Вы находитесь на странице: 1из 46
Centro Universitário do Leste de Minas Gerais UNILESTEMG Fundamentos da Computação I Autor: Prof. Mauro

Centro Universitário do Leste de Minas Gerais UNILESTEMG

Fundamentos da Computação I

Autor: Prof. Mauro Morais de Miranda Co-autores: Profª Deisymar Botega Tavares Prof. Marcelo Balbino Profª Renata Vieira Dias

Introdução a Hardware e Software

1

Histórico

1

Conceitos básicos

1

Computação

7

Algoritmos

7

Por que precisamos de Algoritmos?

7

Classificação dos Dados: Constantes X Variáveis

9

Tipos Primitivos de Dados

10

Formação de Identificadores - Nome de variável

10

Declaração de Variáveis

11

Comando de Atribuição

11

Comando de Entrada

11

Comando de Saída

11

Expressões Aritméticas

11

Exercícios – Variáveis e Tipos de Variáveis – Comandos Básicos

12

O uso do operador de adição em variáveis do tipo caracter

12

ESTRUTURAS DE CONTROLE – Estrutura Seqüencial

13

Exemplos – Estrutura Seqüencial

13

Exercícios – Estrutura de Seqüencial

14

ESTRUTURAS DE CONTROLE – Estrutura Condicional

17

Expressões Lógicas

17

Operadores Lógicos

17

Prioridades

17

Exercícios de Operadores lógicos e relacionais

18

Estrutura Condicional Simples

18

Estrutura Condicional Composta

18

Exemplos – Estrutura Condicional Simples e Composta

19

Exercícios – Algoritmos com Estrutura de Decisão

23

Exercícios Revisionais – Estrutura de Decisão

23

ESTRUTURAS DE CONTROLE – Estrutura de Repetição

28

Comando de Repetição Enquanto

28

Exemplos de Algoritmos com Estrutura de Repetição

29

Exercícios - Algoritmos com Estrutura de Repetição

39

Referências Bibliográficas

44

IInnttrroodduuççããoo aa HHaarrddwwaarree ee SSooffttwwaarree

1

Histórico

Até os fins da década de setenta os computadores estavam associados à idéia de máquinas grandes, de custo ele- vado, e inacessíveis às pessoas comuns. Embora indivíduos de maior poder aquisitivo pudessem adquiri-los, ninguém se dispunha a ocupar um enorme espaço físico (~ 100m 2 ), com uma máquina que pouco tinha a oferecer para o uso domésti- co. Os chamados mainframes existiam para as empresas e exigiam profissionais altamente capacitados. Os avanços tecnológicos levaram à criação dos circuitos integrados, mais conhecidos como chips, e através de um processo contínuo de evolução, permitiram a criação de computadores cada vez menores e com poder de processamento elevado. O produto mais conhecido gerado por esta tecnologia é o microcomputador (PC – Personal Computer). Em 1981 o primeiro PC-IBM foi lançado no mercado. A partir desta data o computador passa a fazer parte de to- dos os ambientes: fábricas, escritórios, residências, etc

Conceitos básicos

Computador

Um computador pode ser definido como uma máquina potencialmente capaz de executar tarefas, necessitando pa- ra isto de hardware adequado e um software compatível com o mesmo. Então podemos dizer que um computador tem duas partes diferentes que funcionam em conjunto:

Hardware, que em inglês significa equipamento pesado, é a parte física do computador. Componentes de memória, periféricos, cabos, placas e chips fazem parte dele;

Software é um programa, que, utilizando o hardware, executa as diferentes tarefas necessárias ao processa- mento de dados. Existem softwares de vários tipos; os mais importantes são:

Software Básico

Software Utilitário

Software Aplicativo

Software Básico Responsável pelo gerenciamento dos componentes de hardware. Tem a função ainda de interagir entre o usuário e o hardware para facilitar a utilização dos recursos do sistema. Estes software são os chamados sistemas operacionais. Por exemplo: Windows 95, Windows 98, Linux, DOS.

Software Utilitário:

Se destina a realizar funções rotineiras e repetitivas requeridas pelo tipo de trabalho do usuário. Exemplos:

Editores de Texto: WordPad, Word, Bloco de Notas;

Planilhas: Lotus, Excel;

Editores de Imagens: Paint, Corel Drawn, PhotoShop, Photo Editor;

Editores de Apresentação: Power Point;

Ferramentas de Internet: Internet Explorer, Netscape Navigator, WebMail, OutLook Express;

Software aplicativo:

Software desenvolvido com a função de coletar dados, armazená-los e emitir relatórios com informações que subsidiem o usuários em sua atividade fim.

Científicos - cálculos balísticos

Comerciais - folhas de pagamento, contabilidade

Simulação - tráfegos, grafos

Controle De Processos - usinas nucleares, Petrobrás

Fluxo de processamento de dados

Para que um computador funcione são necessários no mínimo as 3 etapas destacadas a seguir:

necessários no mínimo as 3 etapas destacadas a seguir: Entrada – Onde são convertidos impulsos humanos

Entrada – Onde são convertidos impulsos humanos em linguagem de máquina (leitura de dados).

Fundamentos da Computação I

2 o Semestre / 2006

2

Processamento – Onde as informações são analisadas, trabalhadas e enviadas a saída (execução dos cál- culos). A CPU ou UCP (Unidade Central de Processamento) é o elemento responsável por coordenar, controlar ou realizar todas essas tarefas. Principais partes de CPU:

Unidade de controle é a parte da CPU encarregada de comandar o resto das unidades. Interpreta as instru- ções, controla sua execução e a seqüência que estas devem ser executadas.

ULA (Unidade Aritmética-Lógica): é a parte da CPU encarregada de realizar as operações elementares, do ti- po aritmético e lógico. (veja figura ilustrativa a seguir)

MEMÓRIA AUXILIAR

UCP OU CPU Memória Principal (RAM)

UCP OU CPU

Memória Principal (RAM)

UNIDADES DE ENTRADA

UNIDADES DE SAÍDA

Principal (RAM) UNIDADES DE ENTRADA UNIDADES DE SAÍDA Saída – Onde as informações em linguagem de
Principal (RAM) UNIDADES DE ENTRADA UNIDADES DE SAÍDA Saída – Onde as informações em linguagem de

Saída – Onde as informações em linguagem de máquina são convertidas em sinais perceptíveis aos sensores hu- manos (apresentação dos dados).

Periféricos

São dispositivos que são ligados ao computador. Quando esses dispositivos são ligados diretamente à placa-mãe (dentro do gabinete do computador) dizemos que esses dispositivos são integrados. Quando os dispositivos são ligados ao desktop (externamente) chamamos de periféricos não integrados. Exemplos: Periféricos integrados: Disco rígido, unidade de disquetes, Modem (também pode ser externo). Periféricos não integrados: Monitor de vídeo (integrado somente nos laptops), impressoras.

A PLACA-MÃE

Também chamada de “mainboard” (placa principal) ou “motherboard” (placa mãe), é onde se aloja o componente principal do computador, o microprocessador, que, juntamente com os demais componentes da placa, definem a “persona- lidade” do aparelho.

PROCESSADOR

É um componente importantíssimo da Unidade Central de Processamento (CPU ou UCP), em redor do qual se

constrói o computador. Existem diversos fabricantes; o mais conhecido é a Intel, por ser a que leva a dianteira do desen- volvimento tecnológico e tem a maior participação nas vendas, porém existem fabricantes alternativos que podem ser uma opção vantajosa: AMD e Cyrix oferecem componentes que rivalizam em performance e confiabilidade com os da Intel.

Upgrade

O upgrade, ou atualização, pode ser um fator determinante na escolha de um motherboard. Algumas placas vêm

configuradas para operar apenas com um único tipo de processador, com poucos slots de expansão, poucos slots de ex- pansão para memória, deixando pouca chance de upgrade, o que no futuro pode acarretar grande decepção. Outras placas, entretanto, são extremamente versáteis, permitindo o uso de uma ampla gama de microprocessado- res de diversos fabricantes e têm um grande número de conectores para colocação de chips de memória. É claro que as placas mais versáteis custam mais caro e são mais difíceis de se configurar, porém cabe ao montador escolher a que me- lhor se adapta ao uso em vista.

Bits e Bytes

A menor unidade de informação usada pelo computador é o bit. Este tem atribuições lógicas 0 ou 1. Cada um des-

tes estados pode, internamente, ser representado por meios eletro-magnéticos (negativo/positivo, ligado/desligado, etc).

Fundamentos da Computação I

2 o Semestre / 2006

3

É por isso que é mais fácil para armazenar dados em formato binário. Assim, todos os dados do compu-

tador são representados de forma binária. Mesmo os números são comumente representados na base 2, em vez da base 10, e suas operações são feitas na base 2. Um conjunto de 8 bits é chamado de byte. Um byte pode ter até 2 8 = 256 configurações diferentes. O principal

é o padrão ASCII (American Stan-

padrão usado para representar caracteres (’a’,’b’,’c’,

dard Code for Information Interchange), usada na maioria dos computadores. Cada um destes caracteres é representado

por um byte. A tabela 1 apresenta o código de alguns caracteres no código ASCII. Observe que:

,’A’,’B’,’C’,

,’!’,’@’,’#’,’$’,

)

1. As codificações para letras em maiúsculas e minúsculas são diferentes.

2. A codificação de ’B’ é a codificação de ’A’ somado de 1; a codificação de ’C’ é a codificação de ’B’ so- mado de 1; assim por diante. Esta codificação permite poder comparar facilmente se um caracter vem an- tes do outro ou não. Internamente, verificar se o caracter ’a’ vem antes do ’b’, é verificar se o número bi- nário correspondente a ’a’ é menor que o número binário correspondente a ’b’.

3. As letras maiúsculas vêm antes das minúsculas.

Caracter

Representação em ASCII

Valor na base decimal

(

00101000

40

)

00101001

41

*

00101010

42

+

00101011

43

0

00110000

48

1

00110001

49

2

00110010

50

3

00110011

51

A

01000001

65

B

01000010

66

C

01000011

67

D

01000100

68

A

01100001

97

B

01100010

98

C

01100011

99

D

01100100

100

Tabela 1 – Tabela ASCII

As denominações que constam na tabela 2 são comumente usadas na área de informática.

Nome

Memória

Bit

{0,1}

Byte

8 bits

Kilobyte (Kbyte)

2 10 bytes (pouco mais de mil bytes (2 10 = 1024))

Megabyte (Mbyte)

2 20 bytes (pouco mais de um milhão de bytes ou pouco mais de mil Kbytes (2 10 = 1024 Kbytes))

Gigabyte (Gbyte)

2 30 bytes (pouco mais de um bilhão de bytes ou pouco mais de mil Mbytes (2 10 = 1024 Mbytes))

Tabela 2 – Bits e Bytes

Atualmente, configurações de computador com 128 ou 256 Megabytes de memória RAM, 40 Gigabytes de disco rígido, disco flexível de 1,44 Megabytes são muito comuns no mercado. Certamente esta configuração já será considerada pequena dentro de um ou dois anos, devido ao contı nuo avanço da tecnologia nesta área. Vejamos alguns exemplos de quanto e esta memória. Uma página de um livro, armazenada em formato ASCII, tem em torno de 50 linhas e 80 caracteres por linha. Assim, um livro de 1000 páginas teria algo em torno de 4.000.000 de caracteres, que poderiam ser guardados em 4 megabytes. Assim, um disco rígido de 4,2 Gigabytes poderia guardar em

Fundamentos da Computação I

2 o Semestre / 2006

4

torno de 1.000 livros deste tipo. Isto aparenta uma quantidade bastante grande de dados. Por outro lado, a maio- ria das aplicações atuais está fazendo uso cada vez maior de imagens, gráficos e sons. Estas aplicações demandam muita memória. Por exemplo, se você quiser representar uma imagem de tamanho 1000 X 1000 pontos (10 6 pontos), cada ponto com uma cor entre 65000 cores possíveis (dois bytes por ponto), gastaremos algo como 2 Megabytes para armazenar ape- nas uma imagem deste tipo. A quantidade de memória aumenta quando armazenamos filmes, que usam em torno de 30 imagens por segundo. Apesar do uso de métodos de compressão sobre estes tipos de dados a necessidade de grande quan- tidade de memória ainda é crucial para muitas aplicações.

MEMÓRIA RAM

A memória RAM é responsável por armazenar as informações utilizáveis por vários subsistemas do computador,

notadamente por programas. A demanda e a oferta por memória sempre caminham juntas. É uma memória volátil, ou seja, os dados serão perdidos ao interromper o fornecimento de energia. Todo programa para ser executado deve antes ser car- regado para a memória RAM até que o processador possa manipula-lo.

O papel da memória RAM

O processador não possui uma capacidade de armazenamento interna muito grande. Por este motivo, precisa que

os programas fiquem armazenados externamente a ele. Este papel cabe à memória (RAM). O processador está sempre em contato direto com a RAM (usando o DMA-Direc Memory Access), buscando programas (operação chamada “leitura”) e armazenando dados (operação chamada “escrita”). Quando você “roda” um joguinho ou chama um processador de textos, o programa é transferido do disco para a memória (RAM), onde o processador irá ler o programa e executá-lo. Isto significa que, quando mais memória você tiver em seu micro, mais programas poderão estar “rodando” simultaneamente. Graças a um recurso chamado de memória virtual, a memória RAM não acaba. O processador, sempre que neces- sário, cria no disco rígido um arquivo (chamado arquivo de troca) que “simula” mais memória RAM. Em um micro com apenas 32 MB de RAM o microprocessador pode “simular” que o micro possua 64 MB ou até mais. A parte que não fica armazenada na memória fica no arquivo de troca, no disco rígido. Como o processador, para processamento, somente “enxerga” dados que estão na RAM, ele deverá “trocar” o conteúdo da memória RAM com o arquivo de memória virtual do disco rígido (e daí o nome “arquivo de troca”). O disco rígido, entretanto, é muito mais lento que a memória RAM. Quanto mais memória RAM o micro tiver, menos “estouros” de memória ocorrem. Com isto, menos vezes o processador terá que utilizar o recurso de memória virtual.

Conclusão: Um micro com mais memória RAM parecerá mais rápido que um outro que possua menos. Este au- mento de performance ocorre porque o processador precisará utilizar menos o recurso de memória virtual. Na prática dizemos que um micro será mais rápido se possuir mais memória RAM.

O que é o cache de memória

Vimos que o processador conversa diretamente com a memória RAM. Acontece que ela é mais lenta que o pro- cessador. Por isto, toda a vez em que o processador acessa à memória, ele fica esperando para que os dados sejam devi- damente entregues ou armazenados, dependendo se a operação é de leitura ou escrita. Não nos parece interessante que o processador fique lento tanto tempo esperando, não é mesmo? Ao longo do tempo, o processador ficará um bom tempo fazendo absolutamente nada. Na prática, o micro perderá performance. Para fazer com que o processador consiga conversar de igual com a RAM, entra na jogada uma memória mais rá- pida, chamada memória dinâmica ou simplesmente DRAM. A memória cache é capaz de conversar com o processador sem que ele precise ficar esperando, o que é excelente. Acontece que este tipo de memória é muito grande e cara. No micro temos pequena porção deste tipo de memó- ria: ao invés de “falar” diretamente com a memória, o processador fala com o cache, que consegue “conversar” à mesma velocidade. Nem sempre quando mais memória cache você tiver será melhor. O tamanho ideal de memória cache para o micro depende, sobretudo, da quantidade de memória RAM que o micro possua instalada.

Memória ROM (Ready Only Memory) - Memória apenas de leitura

Seu conteúdo é gravado durante o processo de fabricação. Este tipo de memória armazena programas e instruções de controle que são processados no momento em que o computador é ligado, para realizar as seguintes funções:

Checar o hardware, ou seja, testar o funcionamento dos principais componentes da máquina, como por exemplo:

placas de memória RAM, drives, teclado, etc; Carregar o sistema operacional.

Fundamentos da Computação I

2 o Semestre / 2006

5

Unidade de Disco Rígido

É o meio que pode armazenar o sistema operacional, programas, arquivos de textos, imagens, entre outros dados.

È conhecido também pelas iniciais em inglês HD (Hard Disk – Disco Rígido). Sua capacidade de armazenamento e taxa de leitura e escrita atuais, são impressionantes, tornando o HD peça essencial na performance de muitos programas.

A unidade de medida da capacidade de armazenamento de dados nos HDs é a mesma utilizada para a memória

RAM, o byte. Como a capacidade dos HDs é muito maior que o da RAM, o prefixo utilizado atualmente é o GB (gigaby- te) e não apenas o MB (megabyte). É fácil encontrar discos rígidos novos com capacidade em torno de 20 GB.

Existem duas especificações para os modelos de HD: IDE (Integrated Drive Eletronics – eletrônica integrada de drives) bastante popular por seu baixo preço e a SCSI (Interface reduzida de sistemas computadorizados) de maior uso no âmbito profissional e corporativo. Os principais parâmetros para análise de um HD são a velocidade rotacional (também chamada de velocidade an- gular) medida em rpm, o tempo de acesso medido em ms e a taxa de transferência de dados medida em KB/s. É importan- te observar também, um parâmetro chamado MTBF (tempo médio entre falhas) que geralmente é dado em horas de uso contínuo e envolve diversas outras variáveis. O MTBF, também utilizado por outros equipamentos, indica o quão confiá- vel é o equipamento em uso geralmente intenso e sua durabilidade média. Um bom HD tem um baixo tempo de acesso, alta taxa de transferência de dados e alta velocidade rotacional. Discos magnéticos são dispositivos para armazenamento de dados (que independem de alimentação de energia e portanto permanecem gravados após ser desligado o computador, mas podem, a critério do usuário, ser apagados ou alte- rados). Os discos magnéticos englobam os discos flexíveis ou disquetes (“floppy disks”) e os discos rígidos. Um disco magnético incorpora eletrônica de controle, motor para girar o disco, cabeças de leitura/ gravação e o mecanismo para o posicionamento das cabeças, que são móveis. Os discos propriamente ditos são superfícies de formato circular compostos de finos discos de alumínio ou vidro, revestidos de materiais magnetizáveis em ambas as faces. As informações são gravadas nos discos em “setores”, distribuídos ao longo de “trilha” concêntricas marcadas magneticamente como setores circulares no disco.

O processo de marcação magnética das trilhas e setores em um disco faz parte da “Formatação” do disco. Esta

formatação é dependente do sistema operacional que usará o disco. Dado a grande quantidade de informações que são armazenadas em um disco rígido, e considerando-se que, devi- do a desgastes naturais durante o funcionamento, é inevitável que ocorra uma avaria algum dia, é importantíssimo preve- nir-se quanto à perda dessas informações realizando-se periodicamente cópias de segurança de seus arquivos, o que é conhecido tecnicamente como back-up.

DISCOS FLEXÍVEIS

As unidades de discos flexíveis (floppy disks ou FDs) surgiram como uma solução para armazenamento de dados

a baixo custo em microcomputadores e substituíram com grandes vantagens o armazenamento em fitas cassete que equi-

pava os primeiros microcomputadores. Os discos flexíveis são feitos de poliéster flexível e sua capacidade atual de arma- zenamento é geralmente de 1,44 Mbytes.

CD-ROM

Os CD-ROMs prestam-se ao armazenamento de grandes volumes de informação, tais como enciclopédias. A tec- nologia utilizada nos acionadores encontrados nos microcomputadores ainda não permite sua regravação devido ao alto custo envolvido. Os acionadores ou drives de discos CD-ROM podem reproduzir normalmente os CDs de áudio (o que significa que podemos ouvir músicas enquanto trabalhamos em nossos micros).

DVD – Digital Versatile (Video) Disc

Os DVDs são a última tecnologia em armazenamento de dados. Sua capacidade chega a aproximadamente 4,7

Gb. Tem uma característica importante, que é a regravação. Tendem a substituir as fitas de vídeo. É o futuro dos discos óticos digitais, a evolução da tecnologia Compact Disc. Assim como o CD (áudio) e o CD-ROM, o sistema DVD é com- posto de um CD player para ser ligado a TV, ou um DVD-ROM drive para uso em computadores. Além dos discos terem

o mesmo tamanho e espessura dos atuais CDs, o DVD mais simples terá capacidade para 4,7 Gb (capacidade equivalente

a mais do que 7 CD-ROMs), que é suficiente para conter mais de 2 horas de filme com alta qualidade de som e de ima- gem, além de áudio em 3 idiomas distintos e 4 conjuntos diferentes de legendas.

Fundamentos da Computação I

2 o Semestre / 2006

6

INTERNET

O que é Internet?

Internet é o nome dado a uma rede de computadores espalhados pelo mundo que se comunicam entre si e trocam informações. Todos os computadores que "entendem" esta espécie de língua comum são capazes de se comunicar com outros em qualquer lugar do mundo. Para se comunicar com um computador que fica na China, por exemplo, não é neces- sário fazer uma ligação internacional. Basta se conectar a um computador em sua cidade.

Basta se conectar a um computador em sua cidade. De onde surgiu a Internet? A Internet

De onde surgiu a Internet?

A Internet surgiu de projetos conduzidos ao longo dos anos 60 pelo Departamento de Defesa dos Estados Unidos.

Esses projetos visavam o desenvolvimento de uma rede de computadores para comunicação entre os principais centros militares de comando e controle que pudesse sobreviver a um possível ataque nuclear. Nos últimos dois anos, o interesse comercial pelo uso da Internet cresceu bastante, devido ao interesse dos diver- sos setores da sociedade: universidades, empresas, cooperativas, escolas, prefeituras e nas próprias residências.

tivas, escolas, prefeituras e nas próprias residências. Por que a Internet é importante? Porque pela primeira

Por que a Internet é importante? Porque pela primeira vez no mundo um cidadão comum ou uma pequena empresa pode (facilmente e a um custo muito baixo) não só ter acesso a informações localizadas nos mais distantes pontos do mundo criar, gerenciar e distribuir informações. Com a Internet uma pessoa qualquer (um jornalista, por exemplo) pode, de sua própria casa, oferecer um serviço de informação baseado na Internet, a partir de um microcomputador, sem precisar da estrutura que no passado só uma empresa de grande porte poderia manter.

O

que é URL?

É

o endereço da página, que permite aos computadores encontrarem o que o usuário busca, de maneira uniforme.

Veja alguns exemplos de URL:

 

www.ufac.br

www.mama.org.br

www.uol.com.br

O

que é Site?

Um site é um conjunto de informações públicas armazenado num computador servidor da Internet. Qualquer pes- soa pode solicitar estas informações ao servidor sempre que quiser. Existem sites de notícias, de empresas, de revistas, de organizações, de governos, etc. Imagine a Internet como uma grande biblioteca e os sites como livros, que apesar de esta- rem espalhados pelo mundo podem ser abertos na tela do computador a qualquer momento.

Exemplos de Site:

Museu de Arte do Rio de Janeiro (Ex: www. mamrio.com.br) Jornal (Ex: www.jornalatribuna.com.br) Governo (Ex: www.ac.gov.br) Supermercado (Ex: www.paodeacucar.com.br)

Fundamentos da Computação I

2 o Semestre / 2006

Emissora de TV (Ex: www.globo.com.br) Livraria (Ex: www.livrariasaraiva.com.br)

7

O que é e-mail?

E-mail ou correio eletrônico é provavelmente a ferramenta mais utilizada da internet. Há hoje centenas de milhões de pessoas usando programas que permitem o envio e recebimento de "cartas eletrônicas" através de computadores conec- tados à internet. Diariamente são enviados cerca de um bilhão de e-mails em todo o mundo, e este número deve subir cada vez mais.

Exemplo: infocidadania@pop.com.br

O que é download? DOWNLOAD = Descarregar, baixar um arquivo (textos, imagens, músicas, filmes). Fazer o download de algo

significa fazer uma cópia de um arquivo ou de um programa em seu próprio computador.

Como fazer o Download de um Arquivo (Textos, imagens, músicas, filmes) Clique sobre o arquivo que deseja carregar para o seu micro. O programa exibirá uma caixa de diálogo com a op- ção de executar o arquivo, salvá-lo em disco ou cancelar a operação. Em seguida, clique na opção Salvar em Disco. O Windows exibirá uma tela e permitirá que você especifique uma pasta onde o arquivo será gravado.

CCoommppuuttaaççããoo

Desde o inicio da existência do homem ele tem procurado criar máquinas que o auxiliem em seus trabalhos, dimi-

nuindo esforços e economizando tempo. Dentre essas máquinas, o computador tem se mostrado uma das mais versáteis, rápidas e seguras.

O computador é capaz de auxiliar em qualquer coisa que lhe seja solicitada, é consciente, trabalhador e possui

muita energia, mas não tem iniciativa, nenhuma independência, não é criativo e por isso precisa receber informações nos mínimos detalhes.

A finalidade de um computador é receber, manipular e armazenar dados. Se visto somente como um gabinete

composto por circuitos eletrônicos, cabos e fontes de alimentação, certamente ele não tem utilidade alguma. O computa- dor só consegue armazenar dados em discos, imprimir relatórios, gerar gráficos, realizar cálculos, entre outras funções, por meio de programas. Portanto sua tarefa principal é realizar a tarefa de processamento de dados, isto é, receber dados por um dispositivo de entrada (por exemplo: teclado, mouse, scanner, entre outros), realizar operações com estes dados e gerar uma resposta que será expressa em um dispositivo de saída (por exemplo: monitor de vídeo, impressora, etc.).

AAllggoorriittmmooss

A palavra algoritmo, à primeira vista, parece-nos estranha. Embora possua designação desconhecida, fazemos uso

constantemente de algoritmos em nosso cotidiano: a maneira como uma pessoa toma banho é um algoritmo. Outros algo- ritmos freqüentemente encontrados são:

Instruções para se utilizar um aparelho eletrodoméstico;

Uma receita para preparo de algum prato;

Guia de preenchimento para declaração do imposto de renda;

A maneira como as contas de água, luz e telefone são calculadas mensalmente; etc.

São vários os conceitos para algoritmo. Escolhemos alguns para serem apresentados aqui:

“Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico” [KNUTH] “Seqüência ordenada, e não ambígua, de passos que levam à solução de um dado problema” [TREMBLAY] “Processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, as regras formais para a obtenção do resultado ou da solução do problema” [AURÉLIO]

Por que precisamos de Algoritmos?

Vejamos o que algumas pessoas importantes, para a Ciência da Computação, disseram a respeito de algoritmo:

“A noção de algoritmo é básica para toda a programação de computadores”. [KNUTH - Professor da Universidade de Stanford, autor da coleção “The art of computer programming”]

Fundamentos da Computação I

2 o Semestre / 2006

8

“O conceito central da programação e da ciência da computação é o conceito de algoritmo”. [WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e responsável pela criação de linguagens de programação como ALGOL, PASCAL e MODULA-2]

A importância do algoritmo está no fato de termos que especificar uma seqüência de passos lógicos para que o

computador possa executar uma tarefa qualquer, pois o mesmo por si só não tem vontade própria, faz apenas o que man- damos. Com uma ferramenta algorítmica, podemos conceber uma solução para um dado problema, independendo de uma linguagem específica e até mesmo do próprio computador.

Características

Todo algoritmo deve apresentar algumas características básicas:

Ter fim;

Não dar margem à dupla interpretação (não ambíguo);

Capacidade de receber dado(s) de entrada do mundo exterior;

Poder gerar informações de saída para o mundo externo ao do ambiente do algoritmo;

Ser efetivo (todas as etapas especificadas no algoritmo devem ser alcançáveis em um tempo finito).

A palavra Algoritmo quer dizer operação ou processo de cálculo. Um processo para resolver um dado problema.

Por exemplo: um algoritmo para calcular a soma de dois números informados (digitados) pelo usuário ou algoritmo para a área de uma esfera em função do seu raio. Um algoritmo é uma seqüência ordenada e finita de operações bem definidas e eficazes que, quando executadas por um computador, operando sobre dados caracterizando o estado atual do contexto e o estado desejado, sempre termina num determinado período de tempo, produzindo uma solução ou indicando que a solução não pode ser obtida. Algoritmo não é a solução de um problema, pois, se assim fosse, cada problema teria um único algoritmo. Algo- ritmo é um caminho para a solução de um problema, e em geral, os caminhos que levam a uma solução são muitos.O a-

prendizado de algoritmos não se consegue a não ser através de muitos exercícios. Algoritmo não se aprende:

- Copiando Algoritmos

Algoritmos só se aprendem:

- Construindo Algoritmos

- Estudando Algoritmos

- Testando Algoritmos

Etapas para solução de um problema – Elaboração de Algoritmos

1. Entender o problema;

2. Uma solução ou mais para o problema;

3. Um algoritmo que dê a solução projetada no item 2;

4. Escrever um programa;

5. Codificar o programa em alguma linguagem implementada;

6. Testar o programa codificado no item 5:

massa de testes e rastreio ou chinezinho.

Construindo um algoritmo em alto nível

Problema:

Dados três valores positivos, a, b e c, determine a sua média aritmética

Quais as tarefas a serem executadas para a solução deste problema?

Fundamentos da Computação I

2 o Semestre / 2006

Solução em alto nível:

1.

Obter os valores para a, b e c.

 
 

a

+

b

+

c

2.

Calcular a média aritmética.

ma =

 

3

3.

Comunicar os resultados.

4.

Terminar.

Estrutura do Algoritmo

algoritmo {nome do algoritmo} definição das variáveis atribuição de valores às variáveis entrada de dados LÓGICA Saída de dados fim-algoritmo.

Classificação dos Dados: Constantes X Variáveis

9

Constantes

Uma informação é dita constante quando não sofre nenhuma alteração de seu valor no decorrer do tempo. Para di- ferenciar informações constantes de outros tipos de informação, iremos delimitá-la por um par de aspas (‘ ‘).

Por exemplo:

‘5’, ‘Não corra’ , ‘Masculino’, ‘2527’.

Variáveis

Uma informação é classificada como variável quando tem a possibilidade de ser alterado o seu valor em algum instante do tempo. Por exemplo. A quantidade de funcionários de uma empresa. O peso e idade de um funcionário.

O computador possui uma área de armazenamento conhecida como memória. Todas as informações existentes no

computador estão ou na memória primária (memória RAM), ou na memória secundária (discos, fitas, CD-ROM etc). Nós

iremos trabalhar, neste ano, somente com a memória primária, especificamente com as informações armazenadas na RAM (memória de acesso aleatório).

A memória do computador pode ser entendida como uma seqüência finita de caixas, que num dado momento,

guardam algum tipo de informação, como número, uma letra, uma palavra, uma frase etc., não importa, basta saber que lá sempre existe alguma informação.

O computador, para poder trabalhar como alguma destas informações, precisa saber onde, na memória, o dado es-

tá localizado. Fisicamente, cada caixa, ou cada posição de memória, possui um endereço, ou seja, um número, que indica onde cada informação está localizada. Este número é representado através da notação hexadecimal, tendo o tamanho de quatro, ou mais bytes. Abaixo segue alguns exemplos:

Endereço Físico

Informação

3000: B712

‘João’

2000: 12EC

12345

3000: 0004

‘H’

Como pode ser observado, o endereçamento das posições de memória através de números hexadecimais é perfei- tamente compreendido pela máquina, mas para nós humanos torna-se uma tarefa complicada. Pensando nisto, as lingua- gens de computador facilitaram o manuseio, por parte dos usuários, das posições de memória da máquina, permitindo que, ao invés de trabalhar diretamente com os números hexadecimais, fosse possível dar nomes diferentes a cada posição de memória. Tais nomes seriam de livre escolha do usuário. Com este recurso, os usuários ficaram livres dos endereços físicos (números hexadecimais) e passaram a trabalhar com endereços lógicos (nomes dados pelos próprios usuários). Desta forma, o Exemplo acima, poderia ser alterado para ter o seguinte aspecto:

Fundamentos da Computação I

2 o Semestre / 2006

10

Endereço Lógico

Informação

Nome

‘João’

Número

12345

Letra

‘H’

Como tínhamos falado, os endereços lógicos são como caixas, que num dado instante guardam algum tipo de in- formação. Mas é importante saber que o conteúdo desta caixa não é algo fixo, permanente, na verdade, uma caixa pode conter diversas informações, ou seja, como no Exemplo acima, a caixa (Endereço Lógico) rotulada de “Nome” num dado momento contém a informação “João”, mas em um outro momento, poderá conter uma outra informação, por Exemplo “Pedro”. Com isto queremos dizer que o conteúdo de uma destas caixas (endereço lógico) podem variar, isto é podem sofrer alterações em seu conteúdo. Tendo este conceito em mente, a partir de agora iremos chamar de forma genérica, as caixas ou endereços lógicos, de variáveis. Desta forma podemos dizer que uma variável é uma posição de memória, representada por um Nome simbólico (atribuído pelo usuário), a qual contém, num dado instante, uma informação.

Tipos Primitivos de Dados

A informação é a matéria-prima que faz com que seja necessária a existência do computador, pois eles são capa- zes de manipular e armazenar um grande volume de dados com alta performance. Os tipos primitivos de dados são:

Inteiro

Toda e qualquer informação numérica que pertença ao conjunto dos números inteiros (negativa, nula ou positiva). Não possuem parte decimal. A faixa de valores inteiros possíveis é –32767 a 32768.

Por exemplo:

Hoje é dia 15 de fevereiro.

O

aluno está cursando a 3 série.

O

professor selecionará 2 alunos para monitoria.

Real

Toda e qualquer informação numérica que pertença ao conjunto dos números reais (negativo, nula ou positiva).

Por exemplo:

O funcionário receberá R$ 250,30 por mês.

A temperatura está próxima do 37,5 graus.

Caracter

Toda e qualquer informação composta por um conjunto de caracteres alfanuméricos (0 exemplo: *, $, %, &, #, ?, >,<, !, @). Os números não podem ser utilizados para cálculo.

Por exemplo:

O nome do funcionário é Mauro Morais.

A mensagem de retorno é “Cuidado, o micro está doido”.

A placa do carro é GXW 0345

9,

a

z, A

Z)

e/ou especiais (por

Lógico

Toda e qualquer informação que pode apenas assumir duas situações possíveis (biestável). Verdadeiro ou Falso.

Por exemplo:

O funcionário possui dependente.

A lâmpada pode estar acessa ou apagada.

Formação de Identificadores - Nome de variável

Identificador é o nome dado as informações de caracter variável. O identificador segue determinadas regras:

Devem começar por um caracter alfabético;

Podem ser seguidos por mais caracteres alfabéticos e/ou numéricos, ou pelo caracter sublinhado “_”

Não é permitido o uso de caracteres especiais;

Exemplos:

IDENTIFICADORE VÁLIDOS: Alpha, Media, X2345, Nome_Aluno, A_10, Curso, Salario,. IDENTIFICADORES NÃO VÁLIDOS: X-Y, Nota/2, PLRTX**, Nome Aluno, A*B, Salário, @luno.

Fundamentos da Computação I

2 o Semestre / 2006

Declaração de Variáveis

11

Para armazenar corretamente os dados na memória é necessário a sua correta declaração: tipo primitivo do dado e

o seu nome. Devemos obedecer a seguinte sintaxe: VAR

Exemplo: VAR

lista de variáveis : tipo; : inteiro; : caracter;

: real;

X, Y, IDADE, QTFUNCIONARIOS

NOME, ENDERECO, DATA

SALARIO, PESO, DOLAR, VALORVENDA

TEMDEPENDENTE, MORAIPATINGA

: lógico;

Comando de Atribuição

Um comando de atribuição permite-nos fornecer um valor a uma certa variável (guardar um objeto numa certa gaveta), onde o tipo dessa informação deve ser compatível com o tipo da variável, isto é, somente podemos atribuir um valor lógico a uma variável capaz de comportá-lo, ou seja, uma variável declarada do tipo lógico. O comando de atribui- ção possui a seguinte sintaxe: Identificador := expressão;

Exemplo: VAR

A, B : lógico;

X : Inteiro;

 
 

A

:=

verdadeiro;

X

:=

8

+ 13 div 5;

B

:=

5 = 3;

Comando de Entrada

O comando de entrada de dados possui a seguinte sintaxe:

Exemplo: leia (x); leia (A, IDADE, NOTA);

Comando de Saída

O comando de saída de dados obedece a seguinte sintaxe:

Exemplo: escreva (Y) ;

escreva

(B, IDADE, MEDIA) ;

escreva

(“Bom Dia“) ;

escreva

(“Você pesa “ , X * 2, “ quilos“) ;

leia (< variável>);

escreva (<variável>) ; escreva (<constante>) ; escreva (<expressão>) ;

Expressões Aritméticas

Denominamos expressão aritmética aquela cujos operadores são aritméticos e cujos operandos são constantes e/ou variáveis do tipo numérico (inteiro e /ou real). Os operadores aritméticos são:

+

adição;

-

subtração;

*

multiplicação;

/

divisão;

SQR

(quadrado)

potenciação ( SQR(5) é igual a 5 2 = 25)

 

EXP

potenciação geral ( EXP(2,3) é igual a 2 3 = 8)

 

SQRT

(raiz quadrada) radiciação (SQRT(9) é igual a 3;

 

MOD

(resto da divisão inteira)

 

Exemplo: 9 mod 4

1

DIV

(quociente da divisão inteira)

 

Exemplo: 27 div 5

5

Devemos obedecer à prioridade entre as operações, conforme a seguir :

 

potenciação, radiciação.

 

multiplicação, divisão.

adição, subtração.

Exemplo. Qual é o resultado da expressão abaixo:

 
 

10

+

3

*

30 /

9

+

SQRT(9)

-

SQR(2)+2

10

+

90/9

+

3

-

4 + 2

23

– 6

17

 

Fundamentos da Computação I

2 o Semestre / 2006

12

Exercícios – Variáveis e Tipos de Variáveis – Comandos Básicos

1)

Dar o tipo de cada um dos valores abaixo:

 

a) 613

e)

-3,012 * 10 15

b) 613,0

 

f)

17*10 12

c) -613

g)

-28,3 * 10 -23

d) ‘613’

 

h)

‘Fim de Questão’

2)

Faça um algoritmo para atribuir os seguintes valores às variáveis:

 

a)

12345

 

d)

10

b) 123456

e)

‘João Maria da Silva’

 

c) -1122

 

3)

No seguinte algoritmo existe algum erro? Onde? ALGORITMO Teste;

 
 

var

idade

: INTEIRO;

 

letra

: CARACTER;

 

Inicio

 

idade

:= 23;

idade

:= 678;

idade

:= letra;

letra

:= ABC;

letra

:= ‘A’;

letra

:= 2;

 

FIMALGORITMO.

 

4)

Qual a diferença existente nas seguintes atribuições?

 

a)

Letra

‘A’

b)

Letra

A

Nome

‘João’

 

Nome

João

5)

Indique qual o resultado será obtido das seguintes expressões:

 

a) 1 / 2 +

1 MOD 2

d)

3 * 5 +1 +0,25 * 2

b) (200 / 10 ) MOD 4

 

e)

28 / 7 + 4 - 3 / 6 - 7

c) SQR(5) + 3 * 6 +(19 – 23) / 2

O uso do operador de adição em variáveis do tipo caracter

O operador “+” caso seja usado entre variáveis do tipo CHAR ou STRING, causará uma ação conhecida por con- catenação, ou seja, juntar os caracteres ou STRING’s usados na operação em uma só STRING.

Exemplo:

ALGORITMO Concatena;

Var

Letra1, Letra2

:

CARACTER;

Nome1, Nome2, Nome : CADEIA;

Inicio

Letra1 := ‘D’; Letra2 := ‘a’; Nome1 := ‘João’; Nome2 := ‘Silva’; Nome := Nome1 + Letra1 + Letra2 + Nome2; FIMALGORITMO.

As instruções acima resultarão no armazenamento do Nome “João Da Silva” na variável rotulada de “Nome”.

Fundamentos da Computação I

2 o Semestre / 2006

13

EESSTTRRUUTTUURRAASS DDEE CCOONNTTRROOLLEE EEssttrruuttuurraa SSeeqqüüeenncciiaall

Algoritmos seqüenciais são algoritmos cuja seqüência lógica é realizada passo a passo, sem restrições (ou laços). Este tipo de algoritmo resolve uma classe de problemas simples:

1º.

Ler valores;

2º.

Calcular valores;

3º.

Escrever resultados;

4º.

Parar.

Os algoritmos são iniciados com a palavra algoritmo e terminados com a palavra fim-algoritno. Após a declaração das variáveis estão os comando que são executados numa seqüência linear, seguindo-se o texto em que estão escritos de cima para baixo. algoritmo nome do algoritmo definição das variáveis atribuição de valores às variáveis entrada de dados

LÓGICA Saída de dados fim-algoritmo.

Algoritmo

Var

A, B : inteiro; Nome: caracter; Media : real;

Inicio

escreva(‘Digite o nome do aluno’); leia(Nome); escreva(‘Digite a primeira nota’); leia (A); escreva(‘Digite a segunda nota’); leia (B); Media := (A+B)/2; Escreva(Media); fim-algoritmo.

Exemplos – Estrutura Seqüencial

1)

Elabore um algoritmo que leia dois números inteiros quaisquer, informados pelo usuário via teclado, e que calcule e escreva a soma e o produto dos mesmos.

Algoritmo Exerc01;

Var

N1, N2, SOMA : inteiro; PROD : real;

Inicio

Escreva (‘Digite o primeiro número: ’); Leia (N1); Escreva (‘Digite o segundo número: ’); Leia (N2); SOMA := N1 + N2; PROD := N1 * N2; Escreva (‘ A soma dos números é: ’, SOMA); Escreva (‘ O produto dos números é: ’, PROD); fim-algoritmo.

2)

Elabore um Algoritmo que leia as medidas dos lados A e B de um retângulo qualquer e que calcule e escreva a sua área Algoritmo Exerc02;

Fundamentos da Computação I

2 o Semestre / 2006

Var

Inicio

escreva ( ‘ Digite o valor da altura do retângulo: ’ ); leia ( LA ); escreva ( ‘ Digite o valor da sua base: ’ ); leia ( LB ); AREA := LA * LB; escreva ( ‘ O valor da área de um retângulo é: ’ , AREA ); fim-algoritmo.

LA, LB, AREA : real;

14

3)

Elabore um Algoritmo que leia as medidas dos lados A e B de um retângulo qualquer e que calcule a sua diagonal.

DIAG
DIAG

DIAG 2 = A 2 + B 2 DIAG= SQRT(A 2 + B 2 )

Algoritmo Exerc03;

Var

LA , LB, DIAG : real;

Inicio

escreva ( ‘ Digite o valor do lado “A” do retângulo: ’ ); leia ( LA ); escreva ( ‘ Digite o valor do seu lado “B” : ’ ); leia ( LB ); DIAG := SQRT(SQR( LA) + SQR( LB )); escreva ( ‘ O valor da diagonal do retângulo é: ’ , DIAG ); fim-algoritmo.

4)

Elabore um Algoritmo que calcule e escreva o volume de uma esfera de raio R que será informado lado pelo usuário.

Algoritmo Exerc04;

Var

R , V : real;

Inicio

escreva (‘Digite o valor do raio: ’); leia (R);

V :=

escreva (‘ O valor do volume é : ’ , V );

( 4 / 3 ) * 3.1415 * (SQR(R) * R ) ;

fim-algoritmo.

Exercícios – Estrutura de Seqüencial

1)

Faça um algoritmo para ler a base e a altura de um triângulo e em seguida, calcule e escreva a área do mesmo. Obs.:

2)

Área = ( Base * Altura ) / 2 Calcular o perímetro e a área de um quadrado cujo lado é informado pelo usuário. Observação: PERIMETRO é a

3)

soma dos lados de um quadrado, com o mesmo tem os quatro lados iguais temos = 4 * L (onde L é um dos lados) e AREA = L 2 . Solicitar ao usuário as 4 notas de um aluno. Calcular e escrever a média das notas.

4)

Solicitar ao usuário o primeiro valor de uma progressão aritmética de razão 3. Progressão aritmética são somas suces-

5)

sivas. Escrever os 5 primeiros números da seqüência. Solicitar ao usuário o valor inicial de uma progressão geométrica de razão 9. Progressão geométrica são multiplica-

6)

ções sucessivas. Calcular e escrever os 3 primeiros números da seqüência. Construa um algoritmo que leia a idade de uma pessoa. Calcule e escreva quantos dias ela viveu. Calcule e escreva

7)

quantas horas ela viveu. Lembre-se que um ano tem 365 dias e um dia tem 24 horas. Uma empresa possui, para um determinado funcionário, uma ficha contendo: o nome, número de horas trabalhadas e

o nº de dependentes de um funcionário. Considerando que:

a) A empresa paga 12 reais por hora e 40 reais por dependentes.

b) Sobre o salário são feito descontos de 8,5% para o INSS e 5% para IR.

Faça um algoritmo para ler o Nome, número de horas trabalhadas e número de dependentes de um funcionário. Após

a leitura e os devidos cálculos escreva qual o Nome, salário bruto, os valores descontados para cada tipo de imposto e finalmente qual o salário líquido do funcionário.

Fundamentos da Computação I

2 o Semestre / 2006

15

8)

O preço de um automóvel é calculado pela soma do preço de fábrica com o preço dos impostos (45% do

9)

preço de fábrica) e a percentagem do revendedor (28% do preço de fábrica). Faça um algoritmo que leia a marca do automóvel e o preço de fábrica e calcule e escreva seu preço final. Sabendo-se que uma pessoa recebe um salário fixo por mês e que ele tem uma dívida a pagar. Construa um algoritmo

que leia o salário que a pessoa recebe por mês e leia também a dívida que ela possui. Por fim calcule e escreva quanto vai sobrar do salário dela depois de pagar a dívida. 10) Sabendo que uma turma de amigos deseja assistir a um filme e que o ingresso custa R$ 4,00, construa um algoritmo que leia o nome do filme que eles irão assistir e o número de pessoas da turma. Com base nestes dados o seu algorit- mo deve calcular quanto a turma gastará para ir ao cinema. Por fim escreva o nome do filme e o total gasto pela turma com os ingressos. 11) Sabe-se que o preço do passe escolar é 0,85 centavos. Um motorista de um ônibus deseja adquirir um programa que leia a quantidade de passageiros que entram no ônibus e que depois calcule e escreva quanto de dinheiro ele terá arre- cadado. Construa um algoritmo que resolva o problema do motorista, ou seja, leia quantas pessoas entraram no ônibus e depois calcule e escreva quanto foi arrecadado. 12) Sabendo-se que uma pessoa recebe um salário fixo por mês e que além do salário fixo recebeu uma gratificação por tempo de serviço. Construa um algoritmo que leia o salário que a pessoa recebe por mês e leia também a gratificação que ela ganhou. Por fim calcule e escreva quanto ele receberá no total.

13) Construa um algoritmo que leia os dois lados, ou seja, a base e a altura de um retângulo. Utilizando o valor desses dois lados calcule e escreva:

a. O perímetro desse retângulo;

b. A área desse retângulo. (lembre-se a área é dada pela multiplicação da base pela altura);

c. Valor da diagonal deste retângulo (lembre-se diagonal = SQRT (SQR(base) + SQR(altura));

14) Após a realização de um senso demográfico em uma dada região, descobriu-se que o número de habitante cresceu em 25 %. Construa um algoritmo que leia o número de habitantes que havia na região antes do senso. Calcule qual é a nova população, conforme aumento citado, e escreva o resultado obtido.

15) Deseja-se cobrir o chão de uma cozinha com pisos de cerâmica. Sabe-se que o formato do chão é de um quadrado, cuja área é dada por L * L (L é o lado), e sabe-se também que 1 piso cobre 0,3 metros quadrados. Com base nesses dados calcule e escreva:

A área do chão a ser coberto pelo piso;

O número de pisos gastos para realizar o serviço desejado.

Exercícios Revisionais – Variáveis – Comandos Básicos – Estrutura Seqüencial

1. Assinalar os identificadores inválidos, justificando.

a)

A1BC

b)

‘XA1D’

c)

XA,1d

d)

198aberto

e)

TO.inicio

f)

inicio fim

g)

n

h)

X_1

i)

A-6

j)

#casa

2. Determine os valores finais de A, B e C após a execução do trecho do algoritmo abaixo:

A := 0;

B := 1;

C := A + B;

A := A + 1;

B := A + B * C;

C := A – B +4/2 + C*3;

A

B

C

3. Escreva o tipo de dado ideal para se representar as seguintes informações:

a) A identificação da conta bancária (sem dígito)

b) A altura de uma pessoa em metros

c) A placa de um veículo

d) Se uma pessoa é casada ou não

e) A cor de um objeto

f) O estado civil de uma pessoa

4. A ordem das atribuições é importante? A := B e C := A tem o mesmo efeito de C := A e A := B?

Fundamentos da Computação I

2 o Semestre / 2006

16

5. Em quais dos seguintes pares é importante a ordem dos comandos?

a)

X

:= Y

b)

X := Y

c)

X := Z

d)

Z := Y

Y

:= X

Z := X

X := Y

X := Y

6. Sendo as seguintes variáveis: MULT, N, X, tipo real; NOME, COR, DIA, tipo caracter e TESTE, tipo lógico; assina- le os comandos inválidos e escreva a frente por que o comando é inválido:

a) Leia(‘NOME’);

b) MULT := N + 2 * DIA;

c) COR := ‘AZUL’;

d) MULT * 2 := X – N;

e) Escreva(‘NOME’);

f) TESTE := X + N;

7. Sendo A = 12; B = 5,5; C=2,2 e D=5; observe as expressões e assinale o tipo de cada uma:

I – Inteiro

 

(

) A

(

) ’23 +A ’

R

– Real

(

) A + B

(

)

23

+ A

C

– Caracter

(

) ‘C – D’

(

 

(

) ‘A’

(

) (A – B) + C + ‘C’

) ‘A – B’

8. Elabore um algoritmo que leia a altura de três pessoas e que calcule e escreva a média da altura das pessoas.

9. Para fabricar uma lixeira são necessários 1,35 m de aço inox e 10 rebites. Elabore um algoritmo que leia a quantidade total de lixeiras que devem ser fabricadas e que informe o total de aço inox e de rebites que serão gastos.

10. Elabore um algoritmo que calcule e escreva o volume de uma lata, sabe-se que: V = 3,1415 * R 2 * Altura.

11. Escreva um algoritmo para calcular e exibir a média ponderada de 2 notas. (nota1= peso 6 e nota2= peso 4)

12. Sabe-se que o preço da passagem de ônibus municipal é R$ 1,20 e que todos os estudantes têm um desconto de 25%. A empresa de ônibus necessita saber ao final de cada trajeto quanto foi arrecadado. Elabore um algoritmo que calcule e informe o quanto foi arrecadado ao final de cada trajeto.

13. Sabe-se que são necessários 0,2L de tinta para pintar 1m 2 de parede. Construa um algoritmo que, com base nas medi- das de uma parede retangular, escreva a área a ser pintada e a quantidade de tinta necessária para pintar esta parede.

14. Elabore um algoritmo que leia a temperatura em graus Celsius (C) e que calcule-a e escreva-a convertida em graus Fahrenheit (F). A fórmula de conversão é: F (9 * C + 160) / 5.

Fundamentos da Computação I

2 o Semestre / 2006

17

EESSTTRRUUTTUURRAASS DDEE CCOONNTTRROOLLEE EEssttrruuttuurraa CCoonnddiicciioonnaall

Uma estrutura de controle condicional permite a escolha de um grupo de ações e estruturas a ser executado quan- do determinadas condições, representadas por expressões lógicas, são ou não satisfeitas.

Expressões Lógicas

Usamos os operadores relacionais para realizar comparações entre dois valores de mesmo tipo primitivo. Tais va- lores são representados por constantes, variáveis ou expressões aritméticas.

Os operadores relacionais são:=

igual

>

maior

<

menor

>=

maior ou igual

<=

menor ou igual

< >

diferente

O resultado obtido por uma relação é sempre um valor lógico (V ou F).

Exemplos:

a) 2 * 4 = 24/3

V (Verdadeiro)

b) SQRT(64) = SQR(2) * 2

F (Falso)

Operadores Lógicos

Utilizaremos três conectivos básicos para a formação de novas proposições a partir de outras já conhecidas. Os operadores lógicos são:

E

- Conjunção

Ou

- Disjunção

não

- Negação

A e B

A ou B

Ou - Disjunção não - Negação A e B A ou B Prioridades Entre operadores lógicos

Prioridades

Entre operadores lógicos

----------------------------

 

|

não

|

e ou

Entre todos os operadores

|

parênteses mais internos

|

funções matemáticas

|

operadores aritméticos

|

operadores relacionais

|

operadores lógicos

Fundamentos da Computação I

2 o Semestre / 2006

Exercícios de Operadores lógicos e relacionais

1. Indique o resultado lógico das seguintes expressões:

a) (6 < 8) OU (3 > 7)

b) NÃO ( 2 < 3 )

c) SQR(4) – SQRT(9) – 1,5

d) ((10 / 2) MOD 6) > 5 + 1 / 2 + 1 MOD 2

e) (((10 / 2 ) MOD 6 ) > 5 ) OU NÃO( 3 < ( 2 MOD 2 ) )

f) (200 / 10) MOD 4 = 200 / (10 MOD 4)

2. Escreva o resultado das seguintes comparações:

a) 3 = 3.0 '

b) '

c) 'CASA' <> 'casa'

' = '

Estrutura Condicional Simples

Permite a escolha de um comando a ser executado:

se

(condição)

então

inicio

 

comando1;

fim;

d) FALSE = FALSE

e) 'JOAQUIM' < 'JOSE'

f) '22' > '200'

18

Ou permite a escolha de um grupo de comandos a serem executados:

se

inicio

(condição)

comando 1;

comando 2;

.

comando n;

fim;

então

Veja o exemplo: Obter dois números e calcular a divisão do 1° pelo 2°. Não permitir divisão por zero. Algoritmo Exemplo1;

Var

inicio escreva(‘ ESTE PROGRAMA DIVIDE DOIS NUMEROS E NÃO ACEITA DIVISÃO POR ZERO’); escreva(‘Informe o número correspondente ao divisor da operação’);

A, B, Resp: real;

leia(A); escreva(‘Informe o número correspondente ao dividendo da operação’); leia(B);

se

inicio

( B<>0 )

então

Resp := A/B; escreva(A, ‘divido por ‘, B. ‘é igual a:’, Resp);

fim;

fim-algoritmo.

Estrutura Condicional Composta

Permite a escolha entre dois grupos de comandos a serem executados. No primeiro caso somente o comando1 ou somente o comando2 será executado.

Se

(condição)

então

inicio

 

comando1;

fim

Fundamentos da Computação I

2 o Semestre / 2006

Senão

inicio

comando2;

fim;

ou caso de um grupo de comandos (condição)

se

inicio

 

comando 1;

comando n;

fim

senão

inicio

 

comando A;

comando B;

fim;

então

19

Exemplos – Estrutura Condicional Simples e Composta

1)

2)

Obter dois números inteiros e calcular a divisão do primeiro pelo segundo. Não permitir divisão por zero. Avisar quando não for possível realizar a divisão. Algoritmo Exerc1; Var A, B, Resp: inteiro; inicio escreva(‘ ESTE PROGRAMA DIVIDE DOIS NUMEROS E NÃO ACEITA DIVISÃO POR ZERO’); escreva(‘Informe o número correspondente ao divisor da operação’); leia(A); escreva(‘Informe o número correspondente ao dividendo da operação’); leia(B); se (B<>0) então inicio

Resp:= A/B; escreva(A, ‘divido por ‘, B. ‘é igual a:’, Resp);

fim senão inicio escreva(‘Não é possível realizar a operação’); fim; fim-algoritmo.

Elabore um Algoritmo que leia o sexo e a altura de uma pessoa e que calcule o seu peso ideal conforme a fórmula abaixo: Homens: Peso Ideal => (72,7 * Altura) - 58

Mulheres:

Peso Ideal => (62,1 * Altura) - 44,7

Algoritmo PesoIdeal;

Var

SEXO: caracter; inicio escreva ( ‘ Digite a sua altura : ’ ); leia ( H ); escreva ( ‘ Digite o seu sexo (M / F): ’ ); leia ( SEXO ); se ( SEXO = ‘ m’ ) ou ( SEXO = ‘ M ’ ) então

H , PI :

real;

inicio PI := ( 72.7 * H ) - 58 ; fim; senão inicio

Fundamentos da Computação I

2 o Semestre / 2006

3)

PI := ( 62.1 * H ) - 44.7; fim; escreva ( ‘ O seu peso ideal é : ’ , PI , ‘ Kg .’ ); fim-algoritmo.

20

E se a pessoa digitar para o sexo valor diferente de M/m ou F/f?

Elabore um Algoritmo que leia o sexo e a altura de uma pessoa e que calcule o seu peso ideal conforme a fórmula abaixo: Homens: Peso Ideal => (72,7 * Altura) - 58

Mulheres:

Peso Ideal => (62,1 * Altura) - 44,7

Algoritmo PesoIdeal2;

Var

SEXO: caracter; inicio escreva ( ‘Digite a sua altura : ’ ); leia ( H ); escreva ( ‘Digite o seu sexo (M / F): ’ ); leia ( SEXO ); se ( SEXO = ‘m’ ) ou ( SEXO = ‘M’ ) então inicio PI := ( 72.7 * H ) - 58 ; escreva ( ‘ O seu peso ideal é : ’ , PI , ‘ Kg .’ ); fim; senão inicio se ( SEXO = ‘f’ ) ou ( SEXO = ‘F’ ) então inicio PI := ( 62.1 * H ) - 44.7; escreva ( ‘ O seu peso ideal é : ’ , PI , ‘ Kg .’ ); fim; senão inicio escreva ( ‘ Sexo Inválido!’ ); fim;

H , PI :

real;

fim;

fim-algoritmo.

4) Elabore um algoritmo que leia quatro notas: N1, N2, N3 e N4 de um aluno e que calcule e escreva a mensagem “APROVADO” para quem obteve a média maior ou igual a 60, caso contrário, a mensagem deve ser “REPROVADO”. Algoritmo Notas;

Var

N1 , N2, N3 , N4 ,MEDIA : real; NOME : caracter;

inicio escreva ( ‘ Digite a primeira nota do aluno: ’ ); leia ( N1 ); escreva ( ‘ Digite a segunda nota : ’ ); leia ( N2 ); escreva ( ‘ Digite a terceira nota : ’ ); leia ( N3 ); escreva ( ‘ Digite a quarta nota : ’ ); leia ( N4 ); escreva ( ‘ Digite o nome do aluno : ’ ); leia ( NOME ); MEDIA := ( N1+N2+N3+N4 ) / 4 ; se (MEDIA >= 60) então inicio

Fundamentos da Computação I

2 o Semestre / 2006

5)

6)

escreva ( NOME., ‘ Aprovado !!!’ ); fim; senão inicio

escreva ( NOME., ‘ Reprovado !!!’ );

fim;

fim-algoritmo.

Elabore um algoritmo que leia três números quaisquer NA, NB e NC, e que determine qual dos três é o maior. Algoritmo Numeros; NA , NB , NC: real;

var

inicio

escreva ( ‘ Digite o primeiro número : ’ ); leia ( NA ); escreva ( ‘ Digite o segundo número: ’ ); leia ( NB ); escreva ( ‘ Digite o terceiro número : ’ ); leia ( NC ); se ( NA > NB ) e ( NA > NC ) então inicio

escreva (‘ O maior número é: ’ , NA );

fim senão inicio se ( NB > NA ) e ( NB > NC ) então inicio

escreva ( ‘ O maior número é: ’ , NB );

fim

senão

inicio

escreva ( ‘ O maior número é: ’ , NC );

fim;

fim;

fim-algoritmo.

21

Elabore um Algoritmo que leia os coeficientes A, B e C de uma equação do 2 º grau e que calcule e escreva as suas raízes reais.

var

A , B , C ,DELTA ,R1 , R2: real ;

inicio

escreva (‘Digite o número “A”: ’); leia (A):

escreva (‘Digite o número “B”: ’); leia (B); escreva (‘ Digite o número “C”: ’); leia (C); DELTA := SQR(B) - 4 *A* C ; se ( DELTA < 0 ) então inicio

escreva ( ‘ Não existem raízes reais ’ );

fim;

senão

inicio

se ( DELTA = 0 ) então início

R1 := - B / ( 2 * A );

Fundamentos da Computação I

2 o Semestre / 2006

7)

R2 :=

escreva ( ‘ As raízes iguais e valem : ’ , R1 ,’ e ’, R2 );

R1 ;

fim

senão

início

R1 := ( -B + sqrt( DELTA )) / ( 2 * A ); R2 := ( -B – sqrt( DELTA )) / ( 2 * A ); escreva ( ‘ As raízes são : ’ , R1 ,’ e ’, R2 ); fim ;

fim;

fim-algoritmo.

22

Elabore um Algoritmo que leia dois números quaisquer N1 e N2 e o sinal da operação a ser realizada entre eles e que calcule e escreva o resultado desta operação.

Algoritmo Operacao;

Var

N1 , N2 , R : real; SINAL : caracter;

inicio

escreva ( ‘ Digite o número 1: ’ ); leia ( N1 ); escreva ( ‘ Digite o número 2: ’ ); leia ( N2 );

escreva ( ‘ Digite o sinal da operação: ’ ); leia ( SINAL );

se ( SINAL = ‘ + ’ ) inicio

então

R := N1+N2 ;

escreva ( ‘ A soma é : ’ , R );

fim senão inicio ( SINAL = ‘-’ ) início se então R := N1 -
fim
senão
inicio
( SINAL = ‘-’ )
início
se
então
R
:= N1 - N2 ;
escreva ( ‘ A subtração é : ’ , R );
fim
senão
inicio
( SINAL = ‘ * ’ )
início
se
então
R :=N1 * N2 ;
escreva ( ‘ O produto é : ’ , R );
fim
senão
inicio
se ( SINAL = ‘ / ’ )
início
então
R := N1 / N2 ;
escreva ( ‘ A divisão é : ’ , R );
fim
senão
inicio
escreva ( ‘ Sinal Inválido ’ );
fim;
fim;
fim;
fim;

Fundamentos da Computação I

2 o Semestre / 2006

fim-algoritmo.

23

Exercícios – Algoritmos com Estrutura de Decisão

1)

Solicitar ao usuário 02 números. Informar o maior entre eles ou se são iguais. Construa um algoritmo que leia três números e calcule e escreva qual deles é o maior e qual deles é o menor. Uma pessoa deseja fazer um empréstimo no banco. Conforme norma do banco, só poderão fazer empréstimos as pes- soas que tiverem renda superior a 500,00 reais e forem maiores de 21 anos. Construa um algoritmo que leia a renda e a idade de uma pessoa e informe (escreva) se esta pessoa poderá ou não fazer um empréstimo. Sabe-se que os funcionários de uma empresa receberão uns dias de folga. Porém esta folga será dada em função do tempo de serviço. Para os funcionários que têm até 3 anos de casa, terá 5 dias de folga. Para funcionários com 4 a 8 anos de casa será dado uma folga de 10 dias. Para funcionários com tempo de casa a partir de 9 anos será dado uma folga de 15 dias. Construa um algoritmo que seja capaz de ler o tempo de serviço de cada funcionário. Com base nes- ta informação escreva quantos dias de folga ele tem direito. Elabore um algoritmo que leia o nome e a idade de uma pessoa. O algoritmo deverá escrever o nome desta pessoa seguido de uma mensagem. Esta mensagem dependerá da idade da pessoa, veja a lista a seguir:

2)

3)

4)

5)

 

Idade

Mensagem

 

Menos de 10 anos (inclusive)

Nome da pessoa “é uma criança”

Mais de 10, porém menos de 18 (inclusive)

Nome da pessoa “é um adolescente”

Mais de 18, porém menos de 26 (inclusive)

Nome da pessoa “é um jovem”

Mais de 26, porém menos de 50 (inclusive)

Nome da pessoa “é um adulto”

Mais de 50 anos

Nome da pessoa “é um idoso”

6)

Construa um algoritmo que leia dois números inteiros. Se esses dois números forem positivos, ou seja maior que zero, calcule e escreva a subtração e a divisão dos mesmos. Casos os dois números sejam negativos, calcule e escreva a multiplicação e a soma dos mesmos. Caso eles não se enquadrarem em nenhuma dessas situações, faça uma operação de potenciação do primeiro com o segundo.

7)

Construa um algoritmo que leia o nome, o sexo e altura de duas pessoas. Quando a pessoa for do sexo feminino calcu- le e escreva o dobro da altura desta pessoa. Caso ela seja no sexo masculino calcule e escreva a metade da altura desta pessoa. Construa um algoritmo que leia o preço de 3 produtos comprados, em seguida leia a forma de pagamento: à vista ou com um cheque para 30 dias. Peça ao usuário para digitar um (1) quando for comprar à vista e zero (0) quando for dar um cheque para 30 dias. Calcular e escrever o preço total da compra. Seu algoritmo deverá calcular e escrever tam- bém o preço final desta compra sabendo-se que para compras à vista tem-se um desconto de 10 % e para compras com 30 dias no cheque tem-se um aumento de 5%.

8)

9) Construa um algoritmo que leia o nome, a idade, número de dependentes, o salário e o sexo de um funcionário de uma empresa. Analise cada questão abaixo. Seu algoritmo deverá dar uma solução a cada uma delas, calculando e es- crevendo o salário obtido:

Quando o funcionário for homem e possuir número de dependentes acima de 7 seu salário deverá ter um au- mento de 25%;

Quando o funcionário for um homem com idade superior a 55 anos seu salário receberá um aumento de 15%;

Quando o funcionário for uma mulher, com idade superior a 40 anos ou número de dependente acima de 5 de- verá ter um aumento de 20%;

Os demais funcionários deverão ter um aumento de 5%;

Se o usuário informar um sexo inválido seu algoritmo deverá detectar e informar ao usuário

10) Construa um algoritmo que leia o salário e o tempo de serviço de uma pessoa. Quando esta pessoa tiver um salário menor que 150,00 e tempo de casa inferior a 2 anos lhe será dado 7 dias de folga e um aumento de 10%. Calcule e es- creva o novo salário e comunique (escreva) a quantidade de dias de folga que terá direito. Quando a pessoa ganhar mais ou igual a 150,00 e tiver tempo de casa superior a 3 anos lhe será dado 12 dias de folga e um aumento de 8%. Calcule e escreva o novo salário e comunique (escreva) a quantidade de dias de folga que terá direito. As demais pes- soas só terão direito a 15 dias de folga, sem qualquer aumento.

Exercícios Revisionais – Estrutura de Decisão

1)

Solicitar ao usuário um ano e informar se é bissexto ou não.

Fundamentos da Computação I

2 o Semestre / 2006

 

24

2)

Solicitar ao usuário notas de 4 etapas de um aluno. Escreva o total das notas e se o aluno está aprovado ou não, sabendo que o mínimo para aprovação é 60.

 

3)

Construa um programa que solicite ao usuário o mês em forma numérica (1 a 12) e escreva o número de dias que o mês digitado tem.

4)

Solicitar ao usuário o mês em forma numérica [1 a 12]. Escrever no vídeo o mês por extenso.

 

5)

Solicitar ao usuário o consumo em KW. Calcular o valor a ser pago, sabendo que o valor por KW é R$ 0,10 para con- sumo mensal abaixo de 80 KW e de R$ 0,07 para consumo mensal a partir de 80 KW.

6)

Elabore um algoritmo que leia as 4 notas da disciplina de Fundamentos da computação I e que calcule e escreva a nota final do aluno e se ele está: APROVADO (nota final >= 70), em PROVA FINAL (nota final entre 40 e 69), ou REPROVADO (nota final menor que 40).

7)

Os alunos de uma escola receberão um desconto na mensalidade em função do número de irmãos que possuem de acordo com a tabela:

Sem desconto

 

Nenhum irmão De 1 a 2 irmãos De 3 a 4 irmãos Acima de 4 irmãos

5%

10%

15%

 

Elabore um algoritmo que calcule e informe, a partir da solicitação do usuário do valor da mensalidade, o valor do desconto e o valor da mensalidade com o desconto.

8)

Um clube recreativo decidiu conceder um aumento no valor da mensalidade para seus sócios, conforme a faixa etária do associado:

De 0 a 12 anos 5%

 

De 13 a 21 ano

8%

Acima de 21 anos 10% Elabore um algoritmo, que a partir da solicitação da idade e do valor da mensalidade, calcule e escreva o valor do aumento e o novo valor da mensalidade a ser pago pelo associado.

9) Elabore um algoritmo que solicite ao usuário o preço unitário do in- gresso para um show e quantidade de ingressos. O algoritmo deverá calcular e escrever o valor total, o valor do desconto e o valor líquido conforme o quadro ao lado:

Quantidade de Ingressos Até 3

% Desconto

0%

 

4

a 10

10%

11

a 15

15%

16

ou mais

20%

10) Elabore um algoritmo que leia o nome e o tempo de 2 corredores (em segundos) e que informe o nome do mais rápido ou se chegaram juntos. 11) Elabore um algoritmo que leia o nome e a nota de dois alunos e que informe qual deles se saiu melhor na prova, ou se os dois tiveram o mesmo rendimento. 12) Elabore um algoritmo que solicite ao usuário o valor do salário mínimo e o valor do seu salário bruto e que calcule e escreva o valor descontado do INSS, o valor do descontado do IRRF e o salário líquido. Considerar os descontos con- forme os quadros abaixo:

 

INSS

   

IRRF

 

Quantidade de Salários Percentual Descontos

 

Quantidade de Salários

Percentual Descontos

Até 3 Acima de 3 até 11 Acima de 11

 

sem desconto

Até 8 Acima de 8 até 15 Acima de 15

sem desconto

8%

15%

11%

25%

13) Uma loja que trabalha com xerox, tem a seguinte tabela de preços:

 
 

De 1 a 10 cópias De 11 a 50 cópias Acima de 50 cópias

R$

0,12

R$

0,10

R$

0,08

A partir da solicitação do usuário do número de cópias, calcular e escrever o valor a ser pago.

 

14) Construa um algoritmo que leia o sexo, nº de dependentes, tempo de trabalho (em anos) e o salário um funcionário de uma empresa. Construa um algoritmo calcule o aumento recebido e o novo salário do funcionário.

 

20% de aumento Sexo masculino, tempo de trabalho superior a 10 anos e nº de dependentes a partir de 7

 

10% de aumento Sexo masculino, tempo de trabalho inferior a 10 anos e nº de dependentes inferior a 7

15% de aumento Sexo feminino, qualquer tempo de trabalho, qualquer número de dependentes

5 % de aumento Os demais funcionários

 
 

Fundamentos da Computação I

 

2 o Semestre / 2006

 

25

15) Elabore uma função que, dada a idade de um nadador, classifique-o em uma das seguintes categorias:

Infantil A = Até 8 anos

Infantil B = De 9 até 11 anos

Juvenil A = De 12 até 14 anos

Juvenil B = De 15 até 18 anos

Adulto = De 19 anos acima.

16) Para o programa abaixo identifique as entradas, as saídas e o que o programa faz:

Program Salario; Uses Crt; Var SB,SM,VH,INSS,IR,SL,QSM:Real; NH,ND:Integer; Begin

ClrScr; WriteLn('Exemplo Estrutura de Decisão'); WriteLn; Write('Qual o valor do Salário Mínimo? '); ReadLn(SM); WriteLn; Write('Numero de Dependentes: '); ReadLn(ND); Write('Valor por Hora Trabalhada: '); ReadLn(VH); Write('Numero de Horas Trabalhadas no Mes: '); ReadLn(NH); SB := ND * 35.30 + NH * VH; WriteLn('Valor do Salário Bruto: ',SB:8:2); QSM := SB / SM; WriteLn('Qtde de Salários Mínimos: ',QSM:8:2); IF QSM <= 7 THEN INSS := SB * 0.075 ELSE IF QSM <= 10 THEN INSS := SB * 0.1 ELSE INSS := SB * 0.11; WriteLn('Valor do INSS: ',INSS:8:2); IF QSM <= 8 THEN IR := 0 ELSE IF QSM <= 15 THEN IR := (SB-INSS-90*ND)*0.15 ELSE IR := (SB-INSS-90*ND)*0.27; WriteLn('Valor do IR: ',IR:8:2); SL := SB - INSS - IR; WriteLn('Seu Salário Liquido e: ',SL:8:2); ReadKey;

End.

17) Considere o programa acima, para as entradas listadas a seguir indique quais serão os valores de saída.

a) SM = 300 ND = 5 VH = 22 NH = 200

b) SM = 300 ND = 1 VH = 10 NH = 200

c) SM = 300 ND = 3 VH = 14 NH = 200

Fundamentos da Computação I

2 o Semestre / 2006

26

18) Uma loja tem uma promoção que funciona da seguinte maneira: Compras no valor de até 100 reais terão desconto de 5% acima de 100 até 250 reais terão desconto de 10% acima de 250 reais terão desconto de 15% Elabore um algoritmo que a partir do total da compra informe o valor do desconto dado ao cliente e quanto ele deverá pagar. 19) Elabore um algoritmo que leia o peso e a altura de um a pessoa e que calcule e informe seu IMC (Índice de Massa Corporal) conforme a fórmula IMC = peso / altura2 E que em seguida informe, de acordo com o valor do IMC, a

Situação da Pessoa

Até 20

Magro

Acima de 20 até 25

Normal

Acima de 25 até 30

Sobrepeso

Acima de 30

Obesidade

20) Uma empresa concederá um aumento de salário aos seus funcionários, variável de acordo com o cargo, conforme a tabela abaixo. Elabore um algoritmo que receba o salário e o cargo de um funcionário e calcule escreva o novo salá- rio. Se o cargo do funcionário não estiver na tabela, ele deverá, então, receber 40% de aumento.

Cargo

Percentual

Gerente

10%

Engenheiro

20%

Técnico

30%

21) Escrever um algoritmos que obtenha as 3 notas de um aluno nas avaliações e a nota de exercícios que fazem parte da avaliação. Calcular a média de aproveitamento, usando a fórmula: MA = (NotaAval1 + NotaAval2 * 2 + NotaAval3 * 3 + NotaExerc)/7. A atribuição de conceitos obedece a tabela:

Média de Aproveitamento

Conceito

>= 9,0

A

>= 7,5 e < 9,0

B

>= 6,0 e < 7,5

C

< 6,0

D

O algoritmo deve escrever a média de aproveitamento, o conceito correspondente e a mensagem: APROVADO se o

conceito for A,B ou C e REPROVADO se o conceito for D. 22) Escreva um algoritmo que recebe os coeficientes a, b e c de um polinômio de segundo grau ax2 + bx + c e determina quando este polinômio é igual a zero. Tome cuidado para calcular tudo corretamente e avise o usuário se houverem situações de erro. 23) Faça um algoritmo que recebe um ano e verifica se este ano era bissexto, imprimindo uma mensagem. As regras (pouco conhecidas) para um ano ser bissexto são:

i.Ele deve ser divisível por quatro. ii.Se for um ano terminado em 00, deve ser também divisível por 400. 24) Elabore um algoritmo que implemente uma calculadora com as funções de somar, subtrair, multiplicar e dividir. O programa deverá pedir ao utilizador os dois operandos, e perguntar qual a operação pretendida.

25) Elabore um algoritmo que dadas três temperaturas tiradas numa cidade ao longo do dia, indique qual a máxima e qual

a mínima.

26) Numa empresa, os funcionários são pagos a R$ 25,00/hora. Pretende-se um algoritmo que a partir da leitura do núme-

ro de horas de trabalho de um empregado em cada um dos 5 dias da semana. Considerando os descontos de 15% para

o INSS e 10% de IR, calcule os vencimentos bruto e líquido do funcionário, bem como os respectivos descontos.

27) Elabore um Algoritmo que calcule o vencimento de um funcionário, sabendo que este é calculado adicionando a um dado vencimento base, as seguintes parcelas:

1% por cada ano de idade superior a 25 anos. 3% por cada ano de casa. 5% por cada filho ou outro dependente.

28) Construa um programa que leia 3 ângulos de um triângulo. Analise esses números conforme as especificações abaixo

e faça o que se pede:

a. Verificar se um deles é um ângulo de 90 0 . Caso isso ocorra esse tiriângulo é um triângulo retângulo. Exiba essa informação e calcule a soma dos quadrados (p. ex. S= CO 2 + CA 2 ). dos catetos desse triângulo. Será necessário obter o valor do cateto oposto e do cateto adjacente.

Fundamentos da Computação I

2 o Semestre / 2006

27

b. Quando não existir nenhum ângulo igual a 90, verificar se pelo menos dois ângulos são iguais. Caso isso ocorra escreva a soma dos mesmos.

c. Caso não ocorra nenhuma das situações acima calcule a área deste triângulo. Caso necessário solicite mais dados . Área do triângulo é (base * altura )/2

29) Construa um programa que leia dois números inteiros. Com esses números faça o que se pede:

a. Caso os dois sejam pares calcule e escreva a soma do quadrado desses números (p. ex. S= A 2 + B 2 ). Escrever o resultado.

b. Caso o primeiro número seja par e o segundo impar deverá ser calculado a multiplicação desses números. Escrever o resultado.

c. Caso o primeiro número seja impar e o segundo par deverá ser calculado a subtração desses números.

d. Em qualquer outra situação deverá ser a soma dos cubos (p. ex. S= A 3 + B 3 ). Escrever o resultado.

30) Construa um programa que leia 4 lados de um quadrilátero (figura geométrica de 4 lados). Analise se este quadrilátero

é um retângulo, um quadrado ou penas um quadrilátero sem classificação especial. Caso seja um quadrado calcular e

escrever a área (lado*lado). Caso seja um retângulo calcular e escrever o perímetro (soma de todos os lados). OBS:

considere que a ordem da informação dos lados poderá ser qualquer uma, logo terá que testar todas as possibilidades.

31) Construa um programa que leia o raio de três círculos. Analise esses dados conforme as especificações abaixo e faça o que se pede:

a. Verificar se os círculos têm o mesmo raio. Caso isso ocorra calcular e escrever o diâmetro desses círculos. Veja a figura ao lado.

b. Quando os dois primeiros círculos tiverem o mesmo raio e a terceiro tiver raio diferente desses dois primeiros, calcular e escrever o valor do perímetro destes 2 primeiros círculos. Perímetro de um círculo é dado por:

Perímetro = π * Diâmetro

c. Caso não ocorra nenhuma das situações acima calcule a área de cada círculo. A área de um círculo é dada por : Área= π R