Vous êtes sur la page 1sur 46

Centro Universitrio do Leste de Minas Gerais

UNILESTEMG





Fundamentos da Computao I



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


Introduo a Hardware e Software....................................................................................................................1
Histrico........................................................................................................................................................1
Conceitos bsicos..........................................................................................................................................1
Computao.......................................................................................................................................................7
Algoritmos.........................................................................................................................................................7
Por que precisamos de Algoritmos?..............................................................................................................7
Classificao dos Dados: Constantes X Variveis........................................................................................9
Tipos Primitivos de Dados..........................................................................................................................10
Formao de Identificadores - Nome de varivel ........................................................................................10
Declarao de Variveis..............................................................................................................................11
Comando de Atribuio...............................................................................................................................11
Comando de Entrada...................................................................................................................................11
Comando de Sada.......................................................................................................................................11
Expresses Aritmticas................................................................................................................................11
Exerccios Variveis e Tipos de Variveis Comandos Bsicos.............................................................12
O uso do operador de adio em variveis do tipo caracter ........................................................................12
ESTRUTURAS DE CONTROLE Estrutura Seqencial .............................................................................13
Exemplos Estrutura Seqencial ................................................................................................................13
Exerccios Estrutura de Seqencial ..........................................................................................................14
ESTRUTURAS DE CONTROLE Estrutura Condicional ...........................................................................17
Expresses Lgicas......................................................................................................................................17
Operadores Lgicos.....................................................................................................................................17
Prioridades...................................................................................................................................................17
Exerccios de Operadores lgicos e relacionais...........................................................................................18
Estrutura Condicional Simples....................................................................................................................18
Estrutura Condicional Composta.................................................................................................................18
Exemplos Estrutura Condicional Simples e Composta............................................................................19
Exerccios Algoritmos com Estrutura de Deciso....................................................................................23
Exerccios Revisionais Estrutura de Deciso...........................................................................................23
ESTRUTURAS DE CONTROLE Estrutura de Repetio..........................................................................28
Comando de Repetio Enquanto................................................................................................................28
Exemplos de Algoritmos com Estrutura de Repetio................................................................................29
Exerccios - Algoritmos com Estrutura de Repetio..................................................................................39
Referncias Bibliogrficas..............................................................................................................................44
1
Fundamentos da Computao I 2
o
Semestre / 2006

I I n nt tr ro od du u o o a a H Ha ar rd dw wa ar re e e e S So of ft tw wa ar re e
Histrico
At os fins da dcada de setenta os computadores estavam associados idia de mquinas grandes, de custo ele-
vado, e inacessveis s pessoas comuns. Embora indivduos de maior poder aquisitivo pudessem adquiri-los, ningum se
dispunha a ocupar um enorme espao fsico (~100m
2
), com uma mquina que pouco tinha a oferecer para o uso domsti-
co. Os chamados mainframes existiam para as empresas e exigiam profissionais altamente capacitados.
Os avanos tecnolgicos levaram criao dos circuitos integrados, mais conhecidos como chips, e atravs de um
processo contnuo de evoluo, permitiram a criao 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 lanado no mercado. A partir desta data o computador passa a fazer parte de to-
dos os ambientes: fbricas, escritrios, residncias, etc...
Conceitos bsicos
Computador
Um computador pode ser definido como uma mquina potencialmente capaz de executar tarefas, necessitando pa-
ra isto de hardware adequado e um software compatvel com o mesmo. Ento podemos dizer que um computador tem
duas partes diferentes que funcionam em conjunto:
Hardware, que em ingls significa equipamento pesado, a parte fsica do computador. Componentes de
memria, perifricos, cabos, placas e chips fazem parte dele;
Software um programa, que, utilizando o hardware, executa as diferentes tarefas necessrias ao processa-
mento de dados. Existem softwares de vrios tipos; os mais importantes so:
Software Bsico
Software Utilitrio
Software Aplicativo

Software Bsico
Responsvel pelo gerenciamento dos componentes de hardware. Tem a funo ainda de interagir entre o
usurio e o hardware para facilitar a utilizao dos recursos do sistema. Estes software so os chamados
sistemas operacionais. Por exemplo: Windows 95, Windows 98, Linux, DOS.

Software Utilitrio:
Se destina a realizar funes rotineiras e repetitivas requeridas pelo tipo de trabalho do usurio. Exemplos:
Editores de Texto: WordPad, Word, Bloco de Notas;
Planilhas: Lotus, Excel;
Editores de Imagens: Paint, Corel Drawn, PhotoShop, Photo Editor;
Editores de Apresentao: Power Point;
Ferramentas de Internet: Internet Explorer, Netscape Navigator, WebMail, OutLook Express;

Software aplicativo:
Software desenvolvido com a funo de coletar dados, armazen-los e emitir relatrios com informaes que
subsidiem o usurios em sua atividade fim.
Cientficos - clculos balsticos
Comerciais - folhas de pagamento, contabilidade
Simulao - trfegos, grafos
Controle De Processos - usinas nucleares, Petrobrs
Fluxo de processamento de dados
Para que um computador funcione so necessrios no mnimo as 3 etapas destacadas a seguir:
Entrada Onde so convertidos impulsos humanos em linguagem de mquina (leitura de dados).
2
Fundamentos da Computao I 2
o
Semestre / 2006

Processamento Onde as informaes so analisadas, trabalhadas e enviadas a sada (execuo dos cl-
culos). A CPU ou UCP (Unidade Central de Processamento) o elemento responsvel 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 execuo e a seqncia que estas devem ser executadas.
ULA (Unidade Aritmtica-Lgica): a parte da CPU encarregada de realizar as operaes elementares, do ti-
po aritmtico e lgico. (veja figura ilustrativa a seguir)

Sada Onde as informaes em linguagem de mquina so convertidas em sinais perceptveis aos sensores hu-
manos (apresentao dos dados).
Perifricos
So dispositivos que so ligados ao computador. Quando esses dispositivos so ligados diretamente placa-me
(dentro do gabinete do computador) dizemos que esses dispositivos so integrados. Quando os dispositivos so ligados
ao desktop (externamente) chamamos de perifricos no integrados.
Exemplos: Perifricos integrados: Disco rgido, unidade de disquetes, Modem (tambm pode ser externo).
Perifricos no integrados: Monitor de vdeo (integrado somente nos laptops), impressoras.
A PLACA-ME
Tambm chamada de mainboard (placa principal) ou motherboard (placa me), 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 importantssimo da Unidade Central de Processamento (CPU ou UCP), em redor do qual se
constri o computador. Existem diversos fabricantes; o mais conhecido a Intel, por ser a que leva a dianteira do desen-
volvimento tecnolgico e tem a maior participao nas vendas, porm existem fabricantes alternativos que podem ser uma
opo vantajosa: AMD e Cyrix oferecem componentes que rivalizam em performance e confiabilidade com os da Intel.
Upgrade
O upgrade, ou atualizao, pode ser um fator determinante na escolha de um motherboard. Algumas placas vm
configuradas para operar apenas com um nico tipo de processador, com poucos slots de expanso, poucos slots de ex-
panso para memria, deixando pouca chance de upgrade, o que no futuro pode acarretar grande decepo.
Outras placas, entretanto, so extremamente versteis, permitindo o uso de uma ampla gama de microprocessado-
res de diversos fabricantes e tm um grande nmero de conectores para colocao de chips de memria. claro que as
placas mais versteis custam mais caro e so mais difceis de se configurar, porm cabe ao montador escolher a que me-
lhor se adapta ao uso em vista.
Bits e Bytes
A menor unidade de informao usada pelo computador o bit. Este tem atribuies lgicas 0 ou 1. Cada um des-
tes estados pode, internamente, ser representado por meios eletro-magnticos (negativo/positivo, ligado/desligado, etc).
UNIDADES DE ENTRADA

UNIDADES DE SADA
MEMRIA AUXILIAR
UCP OU CPU

Memria Principal (RAM)

3
Fundamentos da Computao I 2
o
Semestre / 2006

por isso que mais fcil para armazenar dados em formato binrio. Assim, todos os dados do compu-
tador so representados de forma binria. Mesmo os nmeros so comumente representados na base 2, em vez da base 10,
e suas operaes so feitas na base 2.
Um conjunto de 8 bits chamado de byte. Um byte pode ter at 2
8
=256 configuraes diferentes. O principal
padro usado para representar caracteres (a,b,c,...,A,B,C,...,!,@,#,$,...) o padro ASCII (American Stan-
dard Code for Information Interchange), usada na maioria dos computadores. Cada um destes caracteres representado
por um byte. A tabela 1 apresenta o cdigo de alguns caracteres no cdigo ASCII.
Observe que:
1. As codificaes para letras em maisculas e minsculas so diferentes.
2. A codificao de B a codificao de A somado de 1; a codificao de C a codificao de B so-
mado de 1; assim por diante. Esta codificao permite poder comparar facilmente se um caracter vem an-
tes do outro ou no. Internamente, verificar se o caracter a vem antes do b, verificar se o nmero bi-
nrio correspondente a a menor que o nmero binrio correspondente a b.
3. As letras maisculas vm antes das minsculas.

Caracter Representao 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 denominaes que constam na tabela 2 so comumente usadas na rea de informtica.
Nome Memria
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 milho de bytes ou pouco mais de mil Kbytes (2
10
=1024 Kbytes))
Gigabyte (Gbyte) 2
30
bytes (pouco mais de um bilho de bytes ou pouco mais de mil Mbytes (2
10
=1024 Mbytes))
Tabela 2 Bits e Bytes
Atualmente, configuraes de computador com 128 ou 256 Megabytes de memria RAM, 40 Gigabytes de disco
rgido, disco flexvel de 1,44 Megabytes so muito comuns no mercado. Certamente esta configurao j ser considerada
pequena dentro de um ou dois anos, devido ao contnuo avano da tecnologia nesta rea.
Vejamos alguns exemplos de quanto e esta memria. Uma pgina de um livro, armazenada em formato ASCII,
tem em torno de 50 linhas e 80 caracteres por linha. Assim, um livro de 1000 pginas teria algo em torno de 4.000.000 de
caracteres, que poderiam ser guardados em 4 megabytes. Assim, um disco rgido de 4,2 Gigabytes poderia guardar em
4
Fundamentos da Computao I 2
o
Semestre / 2006

torno de 1.000 livros deste tipo. Isto aparenta uma quantidade bastante grande de dados. Por outro lado, a maio-
ria das aplicaes atuais est fazendo uso cada vez maior de imagens, grficos e sons. Estas aplicaes demandam muita
memria. 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 possveis (dois bytes por ponto), gastaremos algo como 2 Megabytes para armazenar ape-
nas uma imagem deste tipo. A quantidade de memria aumenta quando armazenamos filmes, que usam em torno de 30
imagens por segundo. Apesar do uso de mtodos de compresso sobre estes tipos de dados a necessidade de grande quan-
tidade de memria ainda crucial para muitas aplicaes.
MEMRIA RAM
A memria RAM responsvel por armazenar as informaes utilizveis por vrios subsistemas do computador,
notadamente por programas. A demanda e a oferta por memria sempre caminham juntas. uma memria voltil, ou seja,
os dados sero perdidos ao interromper o fornecimento de energia. Todo programa para ser executado deve antes ser car-
regado para a memria RAM at que o processador possa manipula-lo.
O papel da memria RAM
O processador no possui uma capacidade de armazenamento interna muito grande. Por este motivo, precisa que
os programas fiquem armazenados externamente a ele. Este papel cabe memria (RAM). O processador est sempre em
contato direto com a RAM (usando o DMA-Direc Memory Access), buscando programas (operao chamada leitura) e
armazenando dados (operao chamada escrita).
Quando voc roda um joguinho ou chama um processador de textos, o programa transferido do disco para a
memria (RAM), onde o processador ir ler o programa e execut-lo. Isto significa que, quando mais memria voc tiver
em seu micro, mais programas podero estar rodando simultaneamente.
Graas a um recurso chamado de memria virtual, a memria RAM no acaba. O processador, sempre que neces-
srio, cria no disco rgido um arquivo (chamado arquivo de troca) que simula mais memria 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 no fica
armazenada na memria fica no arquivo de troca, no disco rgido.
Como o processador, para processamento, somente enxerga dados que esto na RAM, ele dever trocar o
contedo da memria RAM com o arquivo de memria virtual do disco rgido (e da o nome arquivo de troca). O disco
rgido, entretanto, muito mais lento que a memria RAM. Quanto mais memria RAM o micro tiver, menos estouros
de memria ocorrem. Com isto, menos vezes o processador ter que utilizar o recurso de memria virtual.
Concluso: Um micro com mais memria RAM parecer mais rpido que um outro que possua menos. Este au-
mento de performance ocorre porque o processador precisar utilizar menos o recurso de memria virtual. Na prtica
dizemos que um micro ser mais rpido se possuir mais memria RAM.
O que o cache de memria
Vimos que o processador conversa diretamente com a memria RAM. Acontece que ela mais lenta que o pro-
cessador. Por isto, toda a vez em que o processador acessa memria, ele fica esperando para que os dados sejam devi-
damente entregues ou armazenados, dependendo se a operao de leitura ou escrita.
No nos parece interessante que o processador fique lento tanto tempo esperando, no mesmo? Ao longo do
tempo, o processador ficar um bom tempo fazendo absolutamente nada. Na prtica, o micro perder performance.
Para fazer com que o processador consiga conversar de igual com a RAM, entra na jogada uma memria mais r-
pida, chamada memria dinmica ou simplesmente DRAM. A memria cache capaz de conversar com o processador
sem que ele precise ficar esperando, o que excelente.
Acontece que este tipo de memria muito grande e cara. No micro temos pequena poro deste tipo de mem-
ria: ao invs de falar diretamente com a memria, o processador fala com o cache, que consegue conversar mesma
velocidade.
Nem sempre quando mais memria cache voc tiver ser melhor. O tamanho ideal de memria cache para o micro
depende, sobretudo, da quantidade de memria RAM que o micro possua instalada.
Memria ROM (Ready Only Memory) - Memria apenas de leitura
Seu contedo gravado durante o processo de fabricao. Este tipo de memria armazena programas e instrues
de controle que so processados no momento em que o computador ligado, para realizar as seguintes funes:
Checar o hardware, ou seja, testar o funcionamento dos principais componentes da mquina, como por exemplo:
placas de memria RAM, drives, teclado, etc;
Carregar o sistema operacional.
5
Fundamentos da Computao I 2
o
Semestre / 2006

Unidade de Disco Rgido
o meio que pode armazenar o sistema operacional, programas, arquivos de textos, imagens, entre outros dados.
conhecido tambm pelas iniciais em ingls HD (Hard Disk Disco Rgido). Sua capacidade de armazenamento e taxa
de leitura e escrita atuais, so impressionantes, tornando o HD pea essencial na performance de muitos programas.
A unidade de medida da capacidade de armazenamento de dados nos HDs a mesma utilizada para a memria
RAM, o byte. Como a capacidade dos HDs muito maior que o da RAM, o prefixo utilizado atualmente o GB (gigaby-
te) e no apenas o MB (megabyte). fcil encontrar discos rgidos novos com capacidade em torno de 20 GB.
Existem duas especificaes para os modelos de HD: IDE (Integrated Drive Eletronics eletrnica integrada de
drives) bastante popular por seu baixo preo e a SCSI (Interface reduzida de sistemas computadorizados) de maior uso no
mbito profissional e corporativo.
Os principais parmetros para anlise de um HD so a velocidade rotacional (tambm chamada de velocidade an-
gular) medida em rpm, o tempo de acesso medido em ms e a taxa de transferncia de dados medida em KB/s. importan-
te observar tambm, um parmetro chamado MTBF (tempo mdio entre falhas) que geralmente dado em horas de uso
contnuo e envolve diversas outras variveis. O MTBF, tambm utilizado por outros equipamentos, indica o quo confi-
vel o equipamento em uso geralmente intenso e sua durabilidade mdia.
Um bom HD tem um baixo tempo de acesso, alta taxa de transferncia de dados e alta velocidade rotacional.
Discos magnticos so dispositivos para armazenamento de dados (que independem de alimentao de energia e
portanto permanecem gravados aps ser desligado o computador, mas podem, a critrio do usurio, ser apagados ou alte-
rados). Os discos magnticos englobam os discos flexveis ou disquetes (floppy disks) e os discos rgidos.
Um disco magntico incorpora eletrnica de controle, motor para girar o disco, cabeas de leitura/ gravao e o
mecanismo para o posicionamento das cabeas, que so mveis. Os discos propriamente ditos so superfcies de formato
circular compostos de finos discos de alumnio ou vidro, revestidos de materiais magnetizveis em ambas as faces.
As informaes so gravadas nos discos em setores, distribudos ao longo de trilha concntricas marcadas
magneticamente como setores circulares no disco.
O processo de marcao magntica das trilhas e setores em um disco faz parte da Formatao do disco. Esta
formatao dependente do sistema operacional que usar o disco.
Dado a grande quantidade de informaes que so armazenadas em um disco rgido, e considerando-se que, devi-
do a desgastes naturais durante o funcionamento, inevitvel que ocorra uma avaria algum dia, importantssimo preve-
nir-se quanto perda dessas informaes realizando-se periodicamente cpias de segurana de seus arquivos, o que
conhecido tecnicamente como back-up.
DISCOS FLEXVEIS
As unidades de discos flexveis (floppy disks ou FDs) surgiram como uma soluo para armazenamento de dados
a baixo custo em microcomputadores e substituram com grandes vantagens o armazenamento em fitas cassete que equi-
pava os primeiros microcomputadores. Os discos flexveis so feitos de polister flexvel 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 informao, tais como enciclopdias. A tec-
nologia utilizada nos acionadores encontrados nos microcomputadores ainda no permite sua regravao 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 msicas enquanto trabalhamos em nossos micros).
DVD Digital Versatile (Video) Disc
Os DVDs so a ltima tecnologia em armazenamento de dados. Sua capacidade chega a aproximadamente 4,7
Gb. Tem uma caracterstica importante, que a regravao. Tendem a substituir as fitas de vdeo. o futuro dos discos
ticos digitais, a evoluo 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. Alm 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, alm de udio em 3 idiomas distintos e 4 conjuntos diferentes de legendas.
6
Fundamentos da Computao I 2
o
Semestre / 2006

INTERNET
O que Internet?
Internet o nome dado a uma rede de computadores espalhados pelo mundo que se comunicam entre si e trocam
informaes. Todos os computadores que "entendem" esta espcie de lngua comum so capazes de se comunicar com
outros em qualquer lugar do mundo. Para se comunicar com um computador que fica na China, por exemplo, no neces-
srio fazer uma ligao internacional. Basta se conectar a um computador em sua cidade.

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 comunicao entre os principais centros
militares de comando e controle que pudesse sobreviver a um possvel 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 prprias residncias.

Por que a Internet importante?
Porque pela primeira vez no mundo um cidado comum ou uma pequena empresa pode (facilmente e a um custo
muito baixo) no s ter acesso a informaes localizadas nos mais distantes pontos do mundo criar, gerenciar e distribuir
informaes.
Com a Internet uma pessoa qualquer (um jornalista, por exemplo) pode, de sua prpria casa, oferecer um servio
de informao 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 endereo da pgina, que permite aos computadores encontrarem o que o usurio 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 informaes pblicas armazenado num computador servidor da Internet. Qualquer pes-
soa pode solicitar estas informaes ao servidor sempre que quiser. Existem sites de notcias, de empresas, de revistas, de
organizaes, 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 J aneiro (Ex: www. mamrio.com.br)
J ornal (Ex: www.jornalatribuna.com.br)
Governo (Ex: www.ac.gov.br)
Supermercado (Ex: www.paodeacucar.com.br)
7
Fundamentos da Computao I 2
o
Semestre / 2006

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

O que e-mail?
E-mail ou correio eletrnico provavelmente a ferramenta mais utilizada da internet. H hoje centenas de milhes
de pessoas usando programas que permitem o envio e recebimento de "cartas eletrnicas" atravs de computadores conec-
tados internet. Diariamente so enviados cerca de um bilho de e-mails em todo o mundo, e este nmero deve subir cada
vez mais.
Exemplo: infocidadania@pop.com.br

O que download?
DOWNLOAD =Descarregar, baixar um arquivo (textos, imagens, msicas, filmes). Fazer o download de algo
significa fazer uma cpia de um arquivo ou de um programa em seu prprio computador.

Como fazer o Download de um Arquivo (Textos, imagens, msicas, filmes)
Clique sobre o arquivo que deseja carregar para o seu micro. O programa exibir uma caixa de dilogo com a op-
o de executar o arquivo, salv-lo em disco ou cancelar a operao.
Em seguida, clique na opo Salvar em Disco. O Windows exibir uma tela e permitir que voc especifique uma
pasta onde o arquivo ser gravado.
C Co om mp pu ut ta a o o
Desde o inicio da existncia do homem ele tem procurado criar mquinas que o auxiliem em seus trabalhos, dimi-
nuindo esforos e economizando tempo. Dentre essas mquinas, o computador tem se mostrado uma das mais versteis,
rpidas e seguras.
O computador capaz de auxiliar em qualquer coisa que lhe seja solicitada, consciente, trabalhador e possui
muita energia, mas no tem iniciativa, nenhuma independncia, no criativo e por isso precisa receber informaes nos
mnimos detalhes.
A finalidade de um computador receber, manipular e armazenar dados. Se visto somente como um gabinete
composto por circuitos eletrnicos, cabos e fontes de alimentao, certamente ele no tem utilidade alguma. O computa-
dor s consegue armazenar dados em discos, imprimir relatrios, gerar grficos, realizar clculos, entre outras funes,
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 operaes com estes dados e
gerar uma resposta que ser expressa em um dispositivo de sada (por exemplo: monitor de vdeo, impressora, etc.).
A Al lg go or ri it tm mo os s
A palavra algoritmo, primeira vista, parece-nos estranha. Embora possua designao desconhecida, fazemos uso
constantemente de algoritmos em nosso cotidiano: a maneira como uma pessoa toma banho um algoritmo. Outros algo-
ritmos freqentemente encontrados so:
Instrues para se utilizar um aparelho eletrodomstico;
Uma receita para preparo de algum prato;
Guia de preenchimento para declarao do imposto de renda;
A maneira como as contas de gua, luz e telefone so calculadas mensalmente; etc.
So vrios os conceitos para algoritmo. Escolhemos alguns para serem apresentados aqui:
Um conjunto finito de regras que prov uma seqncia de operaes para resolver um tipo de problema especfico
[KNUTH]
Seqncia ordenada, e no ambgua, de passos que levam soluo de um dado problema
[TREMBLAY]
Processo de clculo, ou de resoluo de um grupo de problemas semelhantes, em que se estipulam, com generalidade e
sem restries, as regras formais para a obteno do resultado ou da soluo do problema
[AURLIO]
Por que precisamos de Algoritmos?
Vejamos o que algumas pessoas importantes, para a Cincia da Computao, disseram a respeito de algoritmo:
A noo de algoritmo bsica para toda a programao de computadores.
[KNUTH - Professor da Universidade de Stanford, autor da coleo The art of computer programming]
8
Fundamentos da Computao I 2
o
Semestre / 2006

O conceito central da programao e da cincia da computao o conceito de algoritmo.
[WIRTH - Professor da Universidade de Zurique, autor de diversos livros na rea e responsvel pela
criao de linguagens de programao como ALGOL, PASCAL e MODULA-2]
A importncia do algoritmo est no fato de termos que especificar uma seqncia de passos lgicos para que o
computador possa executar uma tarefa qualquer, pois o mesmo por si s no tem vontade prpria, faz apenas o que man-
damos. Com uma ferramenta algortmica, podemos conceber uma soluo para um dado problema, independendo de uma
linguagem especfica e at mesmo do prprio computador.
Caractersticas
Todo algoritmo deve apresentar algumas caractersticas bsicas:
Ter fim;
No dar margem dupla interpretao (no ambguo);
Capacidade de receber dado(s) de entrada do mundo exterior;
Poder gerar informaes de sada para o mundo externo ao do ambiente do algoritmo;
Ser efetivo (todas as etapas especificadas no algoritmo devem ser alcanveis em um tempo finito).
A palavra Algoritmo quer dizer operao ou processo de clculo. Um processo para resolver um dado problema.
Por exemplo: um algoritmo para calcular a soma de dois nmeros informados (digitados) pelo usurio ou algoritmo para a
rea de uma esfera em funo do seu raio.
Um algoritmo uma seqncia ordenada e finita de operaes 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 perodo de tempo, produzindo uma soluo ou indicando que a soluo no pode ser obtida.
Algoritmo no a soluo de um problema, pois, se assim fosse, cada problema teria um nico algoritmo. Algo-
ritmo um caminho para a soluo de um problema, e em geral, os caminhos que levam a uma soluo so muitos.O a-
prendizado de algoritmos no se consegue a no ser atravs de muitos exerccios.
Algoritmo no se aprende:
- Copiando Algoritmos - Estudando Algoritmos
Algoritmos s se aprendem:
- Construindo Algoritmos - Testando Algoritmos
Etapas para soluo de um problema Elaborao de Algoritmos
1. Entender o problema;
2. Uma soluo ou mais para o problema;
3. Um algoritmo que d a soluo 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 nvel
Problema:
Dados trs valores positivos, a, b e c, determine a sua mdia aritmtica
Quais as tarefas a serem executadas para a soluo deste problema?
9
Fundamentos da Computao I 2
o
Semestre / 2006

Soluo em alto nvel:

1. Obter os valores para a, b e c.
2. Calcular a mdia aritmtica.
3
c b a
ma
+ +
=
3. Comunicar os resultados.
4. Terminar.
Estrutura do Algoritmo
algoritmo {nome do algoritmo}
definio das variveis
atribuio de valores s variveis
entrada de dados
LGICA
Sada de dados
fim-algoritmo.
Classificao dos Dados: Constantes X Variveis
Constantes
Uma informao dita constante quando no sofre nenhuma alterao de seu valor no decorrer do tempo. Para di-
ferenciar informaes constantes de outros tipos de informao, iremos delimit-la por um par de aspas ( ).
Por exemplo: 5, No corra , Masculino, 2527.
Variveis
Uma informao classificada como varivel quando tem a possibilidade de ser alterado o seu valor em algum
instante do tempo. Por exemplo. A quantidade de funcionrios de uma empresa.
O peso e idade de um funcionrio.
O computador possui uma rea de armazenamento conhecida como memria. Todas as informaes existentes no
computador esto ou na memria primria (memria RAM), ou na memria secundria (discos, fitas, CD-ROM etc). Ns
iremos trabalhar, neste ano, somente com a memria primria, especificamente com as informaes armazenadas na RAM
(memria de acesso aleatrio).
A memria do computador pode ser entendida como uma seqncia finita de caixas, que num dado momento,
guardam algum tipo de informao, como nmero, uma letra, uma palavra, uma frase etc., no importa, basta saber que l
sempre existe alguma informao.
O computador, para poder trabalhar como alguma destas informaes, precisa saber onde, na memria, o dado es-
t localizado. Fisicamente, cada caixa, ou cada posio de memria, possui um endereo, ou seja, um nmero, que indica
onde cada informao est localizada. Este nmero representado atravs da notao hexadecimal, tendo o tamanho de
quatro, ou mais bytes. Abaixo segue alguns exemplos:
Endereo Fsico Informao
3000: B712 J oo
2000: 12EC 12345
3000: 0004 H
Como pode ser observado, o endereamento das posies de memria atravs de nmeros hexadecimais perfei-
tamente compreendido pela mquina, mas para ns humanos torna-se uma tarefa complicada. Pensando nisto, as lingua-
gens de computador facilitaram o manuseio, por parte dos usurios, das posies de memria da mquina, permitindo
que, ao invs de trabalhar diretamente com os nmeros hexadecimais, fosse possvel dar nomes diferentes a cada posio
de memria. Tais nomes seriam de livre escolha do usurio. Com este recurso, os usurios ficaram livres dos endereos
fsicos (nmeros hexadecimais) e passaram a trabalhar com endereos lgicos (nomes dados pelos prprios usurios).
Desta forma, o Exemplo acima, poderia ser alterado para ter o seguinte aspecto:
10
Fundamentos da Computao I 2
o
Semestre / 2006


Endereo Lgico Informao
Nome J oo
Nmero 12345
Letra H
Como tnhamos falado, os endereos lgicos so como caixas, que num dado instante guardam algum tipo de in-
formao. Mas importante saber que o contedo desta caixa no algo fixo, permanente, na verdade, uma caixa pode
conter diversas informaes, ou seja, como no Exemplo acima, a caixa (Endereo Lgico) rotulada de Nome num dado
momento contm a informao J oo, mas em um outro momento, poder conter uma outra informao, por Exemplo
Pedro. Com isto queremos dizer que o contedo de uma destas caixas (endereo lgico) podem variar, isto podem
sofrer alteraes em seu contedo. Tendo este conceito em mente, a partir de agora iremos chamar de forma genrica, as
caixas ou endereos lgicos, de variveis.
Desta forma podemos dizer que uma varivel uma posio de memria, representada por um Nome simblico
(atribudo pelo usurio), a qual contm, num dado instante, uma informao.
Tipos Primitivos de Dados
A informao a matria-prima que faz com que seja necessria a existncia do computador, pois eles so capa-
zes de manipular e armazenar um grande volume de dados com alta performance. Os tipos primitivos de dados so:
Inteiro
Toda e qualquer informao numrica que pertena ao conjunto dos nmeros inteiros (negativa, nula ou positiva). No
possuem parte decimal. A faixa de valores inteiros possveis 32767 a 32768.
Por exemplo: Hoje dia 15 de fevereiro.
O aluno est cursando a 3 srie.
O professor selecionar 2 alunos para monitoria.
Real
Toda e qualquer informao numrica que pertena ao conjunto dos nmeros reais (negativo, nula ou positiva).
Por exemplo: O funcionrio receber R$ 250,30 por ms.
A temperatura est prxima do 37,5 graus.
Caracter
Toda e qualquer informao composta por um conjunto de caracteres alfanumricos (0..9, a .. z, A..Z) e/ou especiais (por
exemplo: *, $, %, &, #, ?, >,<, !, @). Os nmeros no podem ser utilizados para clculo.
Por exemplo: O nome do funcionrio Mauro Morais.
A mensagem de retorno Cuidado, o micro est doido.
A placa do carro GXW 0345
Lgico
Toda e qualquer informao que pode apenas assumir duas situaes possveis (biestvel). Verdadeiro ou Falso.
Por exemplo: O funcionrio possui dependente.
A lmpada pode estar acessa ou apagada.
Formao de Identificadores - Nome de varivel
Identificador o nome dado as informaes de caracter varivel. O identificador segue determinadas regras:
Devem comear por um caracter alfabtico;
Podem ser seguidos por mais caracteres alfabticos e/ou numricos, ou pelo caracter sublinhado _
No permitido o uso de caracteres especiais;
Exemplos: IDENTIFICADORE VLIDOS: Alpha, Media, X2345, Nome_Aluno, A_10, Curso, Salario,.
IDENTIFICADORES NO VLIDOS: X-Y, Nota/2, PLRTX**, Nome Aluno, A*B, Salrio, @luno.
11
Fundamentos da Computao I 2
o
Semestre / 2006

Declarao de Variveis
Para armazenar corretamente os dados na memria necessrio a sua correta declarao: tipo primitivo do dado e
o seu nome. Devemos obedecer a seguinte sintaxe: VAR lista de variveis : tipo;
Exemplo: VAR X, Y, IDADE, QTFUNCIONARIOS : inteiro;
NOME, ENDERECO, DATA : caracter;
SALARIO, PESO, DOLAR, VALORVENDA : real;
TEMDEPENDENTE, MORAIPATINGA : lgico;
Comando de Atribuio
Um comando de atribuio permite-nos fornecer um valor a uma certa varivel (guardar um objeto numa certa
gaveta), onde o tipo dessa informao deve ser compatvel com o tipo da varivel, isto , somente podemos atribuir um
valor lgico a uma varivel capaz de comport-lo, ou seja, uma varivel declarada do tipo lgico. O comando de atribui-
o possui a seguinte sintaxe: Identificador :=expresso;
Exemplo: VAR A, B : lgico;
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: leia (< varivel>);
Exemplo: leia (x);
leia (A, IDADE, NOTA);
Comando de Sada
O comando de sada de dados obedece a seguinte sintaxe: escreva (<varivel>) ;
escreva (<constante>) ;
escreva (<expresso>) ;
Exemplo: escreva (Y) ;
escreva (B, IDADE, MEDIA) ;
escreva (Bom Dia) ;
escreva (Voc pesa , X * 2, quilos) ;
Expresses Aritmticas
Denominamos expresso aritmtica aquela cujos operadores so aritmticos e cujos operandos so constantes e/ou
variveis do tipo numrico (inteiro e /ou real). Os operadores aritmticos so:
+ adio;
- subtrao;
* multiplicao;
/ diviso;
SQR (quadrado) potenciao ( SQR(5) igual a 5
2
=25)
EXP potenciao geral ( EXP(2,3) igual a 2
3
=8)
SQRT (raiz quadrada) radiciao (SQRT(9) igual a 3;
MOD (resto da diviso inteira) Exemplo: 9 mod 4 1
DIV (quociente da diviso inteira) Exemplo: 27 div 5 5
Devemos obedecer prioridade entre as operaes, conforme a seguir : 1 potenciao, radiciao.
2 multiplicao, diviso.
3 adio, subtrao.
Exemplo. Qual o resultado da expresso abaixo:
10 + 3 * 30 / 9 + SQRT(9) - SQR(2)+2
10 + 90/9 + 3 - 4 +2
23 6 17
12
Fundamentos da Computao I 2
o
Semestre / 2006

Exerccios Variveis e Tipos de Variveis Comandos Bsicos
1) Dar o tipo de cada um dos valores abaixo:
a) 613
b) 613,0
c) -613
d) 613
e) -3,012 * 10
15

f) 17*10
12

g) -28,3 * 10
-23

h) Fim de Questo
2) Faa um algoritmo para atribuir os seguintes valores s variveis:
a) 12345
b) 123456
c) -1122
d) 10
e) J oo Maria da Silva
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 diferena existente nas seguintes atribuies?
a) Letra A
Nome J oo
b) Letra A
Nome J oo
5) Indique qual o resultado ser obtido das seguintes expresses:
a) 1 / 2 + 1 MOD 2
b) (200 / 10 ) MOD 4
c) SQR(5) +3 * 6 +(19 23) / 2
d) 3 * 5 +1 +0,25 * 2
e) 28 / 7 +4 - 3 / 6 - 7

O uso do operador de adio em variveis do tipo caracter
O operador + caso seja usado entre variveis do tipo CHAR ou STRING, causar uma ao conhecida por con-
catenao, ou seja, juntar os caracteres ou STRINGs usados na operao em uma s STRING.
Exemplo: ALGORITMO Concatena;
Var Letra1, Letra2 : CARACTER;
Nome1, Nome2, Nome : CADEIA;
Inicio
Letra1 :=D;
Letra2 := a;
Nome1 :=J oo;
Nome2 :=Silva;
Nome := Nome1 +Letra1 +Letra2 +Nome2;
FIMALGORITMO.
As instrues acima resultaro no armazenamento do Nome J oo Da Silva na varivel rotulada de Nome.
13
Fundamentos da Computao I 2
o
Semestre / 2006


E ES ST TR RU UT TU UR RA AS S D DE E C CO ON NT TR RO OL LE E E Es st tr ru ut tu ur ra a S Se eq q e en nc ci ia al l
Algoritmos seqenciais so algoritmos cuja seqncia lgica realizada passo a passo, sem restries (ou laos).
Este tipo de algoritmo resolve uma classe de problemas simples:
1. Ler valores;
2. Calcular valores;
3. Escrever resultados;
4. Parar.
Os algoritmos so iniciados com a palavra algoritmo e terminados com a palavra fim-algoritno. Aps a declarao
das variveis esto os comando que so executados numa seqncia linear, seguindo-se o texto em que esto escritos de
cima para baixo.
algoritmo nome do algoritmo
definio das variveis
atribuio de valores s variveis
entrada de dados
LGICA
Sada 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 Seqencial
1) Elabore um algoritmo que leia dois nmeros inteiros quaisquer, informados pelo usurio 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 nmero: );
Leia (N1);
Escreva (Digite o segundo nmero: );
Leia (N2);
SOMA := N1 +N2;
PROD :=N1 * N2;
Escreva ( A soma dos nmeros : , SOMA);
Escreva ( O produto dos nmeros : , PROD);
fim-algoritmo.
2) Elabore um Algoritmo que leia as medidas dos lados A e B de um retngulo qualquer e que calcule e escreva a sua
rea..
Algoritmo Exerc02;
14
Fundamentos da Computao I 2
o
Semestre / 2006

Var LA, LB, AREA : real;
Inicio
escreva ( Digite o valor da altura do retngulo: );
leia ( LA );
escreva ( Digite o valor da sua base: );
leia ( LB );
AREA :=LA * LB;
escreva ( O valor da rea de um retngulo : , AREA );
fim-algoritmo.
3) Elabore um Algoritmo que leia as medidas dos lados A e B de um retngulo qualquer e que calcule a sua diagonal.

DIAG
2
=A
2
+B
2

DIAG DIAG= SQRT(A
2
+B
2
)


Algoritmo Exerc03;
Var LA , LB, DIAG : real;
Inicio
escreva ( Digite o valor do lado A do retngulo: );
leia ( LA );
escreva ( Digite o valor do seu lado B : );
leia ( LB );
DIAG := SQRT(SQR( LA) +SQR( LB ));
escreva ( O valor da diagonal do retngulo : , DIAG );
fim-algoritmo.
4) Elabore um Algoritmo que calcule e escreva o volume de uma esfera de raio R que ser informado lado pelo usurio.
Algoritmo Exerc04;
Var R , V : real;
Inicio
escreva (Digite o valor do raio: );
leia (R);
V := ( 4 / 3 ) * 3.1415 * (SQR(R) * R ) ;
escreva ( O valor do volume : , V );
fim-algoritmo.
Exerccios Estrutura de Seqencial
1) Faa um algoritmo para ler a base e a altura de um tringulo e em seguida, calcule e escreva a rea do mesmo. Obs.:
rea =( Base * Altura ) / 2
2) Calcular o permetro e a rea de um quadrado cujo lado informado pelo usurio. Observao: PERIMETRO a
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
.
3) Solicitar ao usurio as 4 notas de um aluno. Calcular e escrever a mdia das notas.
4) Solicitar ao usurio o primeiro valor de uma progresso aritmtica de razo 3. Progresso aritmtica so somas suces-
sivas. Escrever os 5 primeiros nmeros da seqncia.
5) Solicitar ao usurio o valor inicial de uma progresso geomtrica de razo 9. Progresso geomtrica so multiplica-
es sucessivas. Calcular e escrever os 3 primeiros nmeros da seqncia.
6) Construa um algoritmo que leia a idade de uma pessoa. Calcule e escreva quantos dias ela viveu. Calcule e escreva
quantas horas ela viveu. Lembre-se que um ano tem 365 dias e um dia tem 24 horas.
7) Uma empresa possui, para um determinado funcionrio, uma ficha contendo: o nome, nmero de horas trabalhadas e
o n de dependentes de um funcionrio. Considerando que:
a) A empresa paga 12 reais por hora e 40 reais por dependentes.
b) Sobre o salrio so feito descontos de 8,5% para o INSS e 5% para IR.
Faa um algoritmo para ler o Nome, nmero de horas trabalhadas e nmero de dependentes de um funcionrio. Aps
a leitura e os devidos clculos escreva qual o Nome, salrio bruto, os valores descontados para cada tipo de imposto e
finalmente qual o salrio lquido do funcionrio.
15
Fundamentos da Computao I 2
o
Semestre / 2006

8) O preo de um automvel calculado pela soma do preo de fbrica com o preo dos impostos (45% do
preo de fbrica) e a percentagem do revendedor (28% do preo de fbrica). Faa um algoritmo que leia a marca do
automvel e o preo de fbrica e calcule e escreva seu preo final.
9) Sabendo-se que uma pessoa recebe um salrio fixo por ms e que ele tem uma dvida a pagar. Construa um algoritmo
que leia o salrio que a pessoa recebe por ms e leia tambm a dvida que ela possui. Por fim calcule e escreva quanto
vai sobrar do salrio dela depois de pagar a dvida.
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 iro assistir e o nmero 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 preo 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 salrio fixo por ms e que alm do salrio fixo recebeu uma gratificao por
tempo de servio. Construa um algoritmo que leia o salrio que a pessoa recebe por ms e leia tambm a gratificao
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 retngulo. Utilizando o valor desses
dois lados calcule e escreva:
a. O permetro desse retngulo;
b. A rea desse retngulo. (lembre-se a rea dada pela multiplicao da base pela altura);
c. Valor da diagonal deste retngulo (lembre-se diagonal =SQRT (SQR(base) +SQR(altura));
14) Aps a realizao de um senso demogrfico em uma dada regio, descobriu-se que o nmero de habitante cresceu em
25 %. Construa um algoritmo que leia o nmero de habitantes que havia na regio antes do senso. Calcule qual a
nova populao, conforme aumento citado, e escreva o resultado obtido.
15) Deseja-se cobrir o cho de uma cozinha com pisos de cermica. Sabe-se que o formato do cho de um quadrado,
cuja rea dada por L * L (L o lado), e sabe-se tambm que 1 piso cobre 0,3 metros quadrados. Com base nesses
dados calcule e escreva:
A rea do cho a ser coberto pelo piso;
O nmero de pisos gastos para realizar o servio desejado.
Exerccios Revisionais Variveis Comandos Bsicos Estrutura Seqencial
1. Assinalar os identificadores invlidos, 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 aps a execuo do trecho do algoritmo abaixo:
A :=0; A B C
B :=1;
C :=A +B;
A :=A +1;
B :=A +B * C;
C :=A B +4/2 +C*3;
3. Escreva o tipo de dado ideal para se representar as seguintes informaes:
a) A identificao da conta bancria (sem dgito)
b) A altura de uma pessoa em metros
c) A placa de um veculo
d) Se uma pessoa casada ou no
e) A cor de um objeto
f) O estado civil de uma pessoa
4. A ordem das atribuies importante? A :=B e C :=A tem o mesmo efeito de C :=A e A :=B?
16
Fundamentos da Computao I 2
o
Semestre / 2006

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 variveis: MULT, N, X, tipo real; NOME, COR, DIA, tipo caracter e TESTE, tipo lgico; assina-
le os comandos invlidos e escreva a frente por que o comando invlido:
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 expresses e assinale o tipo de cada uma:
I Inteiro ( ) A ( ) 23 +A
R Real ( ) A +B ( ) 23 +A
C Caracter ( ) C D ( ) (A B) +C
( ) A ( ) A B +C
8. Elabore um algoritmo que leia a altura de trs pessoas e que calcule e escreva a mdia da altura das pessoas.
9. Para fabricar uma lixeira so necessrios 1,35 m de ao inox e 10 rebites. Elabore um algoritmo que leia a quantidade
total de lixeiras que devem ser fabricadas e que informe o total de ao inox e de rebites que sero 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 mdia ponderada de 2 notas. (nota1=peso 6 e nota2=peso 4)
12. Sabe-se que o preo da passagem de nibus municipal R$ 1,20 e que todos os estudantes tm 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 so necessrios 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 necessria 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 frmula de converso : F (9 * C +160) / 5.
17
Fundamentos da Computao I 2
o
Semestre / 2006

E ES ST TR RU UT TU UR RA AS S D DE E C CO ON NT TR RO OL LE E E Es st tr ru ut tu ur ra a C Co on nd di ic ci io on na al l
Uma estrutura de controle condicional permite a escolha de um grupo de aes e estruturas a ser executado quan-
do determinadas condies, representadas por expresses lgicas, so ou no satisfeitas.

Expresses Lgicas
Usamos os operadores relacionais para realizar comparaes entre dois valores de mesmo tipo primitivo. Tais va-
lores so representados por constantes, variveis ou expresses aritmticas.
Os operadores relacionais so: = igual
> maior
< menor
>= maior ou igual
<= menor ou igual
<> diferente
O resultado obtido por uma relao sempre um valor lgico (V ou F).
Exemplos: a) 2 * 4 =24/3 V (Verdadeiro)
b) SQRT(64) =SQR(2) * 2 F (Falso)
Operadores Lgicos
Utilizaremos trs conectivos bsicos para a formao de novas proposies a partir de outras j conhecidas. Os
operadores lgicos so:
E - Conjuno
Ou - Disjuno
no - Negao






Prioridades
Entre operadores lgicos ----------------------------
| no
| e ou


Entre todos os operadores | parnteses mais internos
| funes matemticas
| operadores aritmticos
| operadores relacionais
| operadores lgicos

A e B
A ou B
18
Fundamentos da Computao I 2
o
Semestre / 2006


Exerccios de Operadores lgicos e relacionais
1. Indique o resultado lgico das seguintes expresses:
a) (6 <8) OU (3 >7)
b) NO ( 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 NO( 3 <( 2 MOD 2 ) )
f) (200 / 10) MOD 4 =200 / (10 MOD 4)

2. Escreva o resultado das seguintes comparaes:
a) 3 =3.0
b) ' ' =' '
c) 'CASA' <>'casa'
d) FALSE =FALSE
e) 'J OAQUIM' <'J OSE'
f) '22' >'200'

Estrutura Condicional Simples
Permite a escolha de um comando a ser executado:
se (condio) ento
inicio
comando1;
fim;
Ou permite a escolha de um grupo de comandos a serem executados:
se (condio) ento
inicio
comando 1;
comando 2;
.
comando n;
fim;
Veja o exemplo: Obter dois nmeros e calcular a diviso do 1 pelo 2. No permitir diviso por zero.
Algoritmo Exemplo1;
Var A, B, Resp: real;
inicio
escreva( ESTE PROGRAMA DIVIDE DOIS NUMEROS E NO ACEITA DIVISO POR ZERO);
escreva(Informe o nmero correspondente ao divisor da operao);
leia(A);
escreva(Informe o nmero correspondente ao dividendo da operao);
leia(B);
se ( B<>0 ) ento
inicio
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 (condio) ento
inicio
comando1;
fim
19
Fundamentos da Computao I 2
o
Semestre / 2006

Seno
inicio
comando2;
fim;
ou caso de um grupo de comandos
se (condio) ento
inicio
comando 1;
...
comando n;
fim
seno
inicio
comando A;
comando B;
fim;
Exemplos Estrutura Condicional Simples e Composta
1) Obter dois nmeros inteiros e calcular a diviso do primeiro pelo segundo. No permitir diviso por zero. Avisar
quando no for possvel realizar a diviso.
Algoritmo Exerc1;
Var A, B, Resp: inteiro;
inicio
escreva( ESTE PROGRAMA DIVIDE DOIS NUMEROS E NO ACEITA DIVISO POR ZERO);
escreva(Informe o nmero correspondente ao divisor da operao);
leia(A);
escreva(Informe o nmero correspondente ao dividendo da operao);
leia(B);
se (B<>0) ento
inicio
Resp:=A/B;
escreva(A, divido por , B. igual a:, Resp);
fim
seno
inicio
escreva(No possvel realizar a operao);
fim;
fim-algoritmo.
2) Elabore um Algoritmo que leia o sexo e a altura de uma pessoa e que calcule o seu peso ideal conforme a frmula
abaixo: Homens: Peso Ideal =>(72,7 * Altura) - 58
Mulheres: Peso Ideal =>(62,1 * Altura) - 44,7
Algoritmo PesoIdeal;
Var H , PI : real;
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 ) ento
inicio
PI :=( 72.7 * H ) - 58 ;
fim;
seno
inicio
20
Fundamentos da Computao I 2
o
Semestre / 2006

PI :=( 62.1 * H ) - 44.7;
fim;
escreva ( O seu peso ideal : , PI , Kg . );
fim-algoritmo.
E se a pessoa digitar para o sexo valor diferente de M/m ou F/f?
3) Elabore um Algoritmo que leia o sexo e a altura de uma pessoa e que calcule o seu peso ideal conforme a frmula
abaixo: Homens: Peso Ideal =>(72,7 * Altura) - 58
Mulheres: Peso Ideal =>(62,1 * Altura) - 44,7

Algoritmo PesoIdeal2;
Var H , PI : real;
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 ) ento
inicio
PI :=( 72.7 * H ) - 58 ;
escreva ( O seu peso ideal : , PI , Kg . );
fim;
seno
inicio
se ( SEXO =f ) ou ( SEXO =F ) ento
inicio
PI :=( 62.1 * H ) - 44.7;
escreva ( O seu peso ideal : , PI , Kg . );
fim;
seno
inicio
escreva ( Sexo Invlido! );
fim;
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 mdia maior ou igual a 60, caso contrrio, 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) ento
inicio
21
Fundamentos da Computao I 2
o
Semestre / 2006

escreva ( NOME., Aprovado !!! );
fim;
seno
inicio
escreva ( NOME., Reprovado !!! );
fim;
fim-algoritmo.


5) Elabore um algoritmo que leia trs nmeros quaisquer NA, NB e NC, e que determine qual dos trs o maior.
Algoritmo Numeros;
var NA , NB , NC: real;
inicio
escreva ( Digite o primeiro nmero : );
leia ( NA );
escreva ( Digite o segundo nmero: );
leia ( NB );
escreva ( Digite o terceiro nmero : );
leia ( NC );
se ( NA >NB ) e ( NA >NC ) ento
inicio
escreva ( O maior nmero : , NA );
fim
seno
inicio
se ( NB >NA ) e ( NB >NC ) ento
inicio
escreva ( O maior nmero : , NB );
fim
seno
inicio
escreva ( O maior nmero : , NC );
fim;
fim;
fim-algoritmo.
6) Elabore um Algoritmo que leia os coeficientes A, B e C de uma equao do 2 grau e que calcule e escreva as suas
razes reais.
var A , B , C ,DELTA ,R1 , R2: real ;
inicio
escreva (Digite o nmero A: );
leia (A):
escreva (Digite o nmero B: );
leia (B);
escreva ( Digite o nmero C: );
leia (C);
DELTA :=SQR(B) - 4 *A* C ;
se ( DELTA <0 ) ento
inicio
escreva ( No existem razes reais );
fim;
seno
inicio
se ( DELTA =0 ) ento
incio
R1 :=- B / ( 2 * A );
22
Fundamentos da Computao I 2
o
Semestre / 2006

R2 := R1 ;
escreva ( As razes iguais e valem : , R1 , e , R2 );
fim
seno
incio
R1 :=( -B +sqrt( DELTA )) / ( 2 * A );
R2 :=( -B sqrt( DELTA )) / ( 2 * A );
escreva ( As razes so : , R1 , e , R2 );
fim ;
fim;
fim-algoritmo.
7) Elabore um Algoritmo que leia dois nmeros quaisquer N1 e N2 e o sinal da operao a ser realizada entre eles e que
calcule e escreva o resultado desta operao.
Algoritmo Operacao;
Var N1 , N2 , R : real;
SINAL : caracter;
inicio
escreva ( Digite o nmero 1: );
leia ( N1 );
escreva ( Digite o nmero 2: );
leia ( N2 );
escreva ( Digite o sinal da operao: );
leia ( SINAL );
se ( SINAL = + ) ento
inicio
R :=N1+N2 ;
escreva ( A soma : , R );
fim
seno
inicio
se ( SINAL =- ) ento
incio
R :=N1 - N2 ;
escreva ( A subtrao : , R );
fim
seno
inicio
se ( SINAL = * ) ento
incio
R :=N1 * N2 ;
escreva ( O produto : , R );
fim
seno
inicio
se ( SINAL = / ) ento
incio
R :=N1 / N2 ;
escreva ( A diviso : , R );
fim
seno
inicio
escreva ( Sinal Invlido );
fim;
fim;
fim;
fim;
23
Fundamentos da Computao I 2
o
Semestre / 2006

fim-algoritmo.
Exerccios Algoritmos com Estrutura de Deciso
1) Solicitar ao usurio 02 nmeros. Informar o maior entre eles ou se so iguais.
2) Construa um algoritmo que leia trs nmeros e calcule e escreva qual deles o maior e qual deles o menor.
3) Uma pessoa deseja fazer um emprstimo no banco. Conforme norma do banco, s podero fazer emprstimos 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 no fazer um emprstimo.
4) Sabe-se que os funcionrios de uma empresa recebero uns dias de folga. Porm esta folga ser dada em funo do
tempo de servio. Para os funcionrios que tm at 3 anos de casa, ter 5 dias de folga. Para funcionrios com 4 a 8
anos de casa ser dado uma folga de 10 dias. Para funcionrios 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 servio de cada funcionrio. Com base nes-
ta informao escreva quantos dias de folga ele tem direito.
5) 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:
Idade Mensagem
Menos de 10 anos (inclusive) Nome da pessoa uma criana
Mais de 10, porm menos de 18 (inclusive) Nome da pessoa um adolescente
Mais de 18, porm menos de 26 (inclusive) Nome da pessoa um jovem
Mais de 26, porm 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 nmeros inteiros. Se esses dois nmeros forem positivos, ou seja maior que zero,
calcule e escreva a subtrao e a diviso dos mesmos. Casos os dois nmeros sejam negativos, calcule e escreva a
multiplicao e a soma dos mesmos. Caso eles no se enquadrarem em nenhuma dessas situaes, faa uma operao
de potenciao 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.
8) Construa um algoritmo que leia o preo de 3 produtos comprados, em seguida leia a forma de pagamento: vista ou
com um cheque para 30 dias. Pea ao usurio para digitar um (1) quando for comprar vista e zero (0) quando for dar
um cheque para 30 dias. Calcular e escrever o preo total da compra. Seu algoritmo dever calcular e escrever tam-
bm o preo 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%.
9) Construa um algoritmo que leia o nome, a idade, nmero de dependentes, o salrio e o sexo de um funcionrio de
uma empresa. Analise cada questo abaixo. Seu algoritmo dever dar uma soluo a cada uma delas, calculando e es-
crevendo o salrio obtido:
Quando o funcionrio for homem e possuir nmero de dependentes acima de 7 seu salrio dever ter um au-
mento de 25%;
Quando o funcionrio for um homem com idade superior a 55 anos seu salrio receber um aumento de 15%;
Quando o funcionrio for uma mulher, com idade superior a 40 anos ou nmero de dependente acima de 5 de-
ver ter um aumento de 20%;
Os demais funcionrios devero ter um aumento de 5%;
Se o usurio informar um sexo invlido seu algoritmo dever detectar e informar ao usurio
10) Construa um algoritmo que leia o salrio e o tempo de servio de uma pessoa. Quando esta pessoa tiver um salrio
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 salrio 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 salrio e comunique (escreva) a quantidade de dias de folga que ter direito. As demais pes-
soas s tero direito a 15 dias de folga, sem qualquer aumento.
Exerccios Revisionais Estrutura de Deciso
1) Solicitar ao usurio um ano e informar se bissexto ou no.
24
Fundamentos da Computao I 2
o
Semestre / 2006

2) Solicitar ao usurio notas de 4 etapas de um aluno. Escreva o total das notas e se o aluno est aprovado ou
no, sabendo que o mnimo para aprovao 60.
3) Construa um programa que solicite ao usurio o ms em forma numrica (1 a 12) e escreva o nmero de dias que o
ms digitado tem.
4) Solicitar ao usurio o ms em forma numrica [1 a 12]. Escrever no vdeo o ms por extenso.
5) Solicitar ao usurio 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 computao 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 recebero um desconto na mensalidade em funo do nmero de irmos que possuem de
acordo com a tabela:
Nenhum irmo Sem desconto
De 1 a 2 irmos 5%
De 3 a 4 irmos 10%
Acima de 4 irmos 15%
Elabore um algoritmo que calcule e informe, a partir da solicitao do usurio 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 scios, conforme a faixa etria
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 solicitao 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 usurio o preo unitrio 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 lquido
conforme o quadro ao lado:
10) Elabore um algoritmo que leia o nome e o tempo de 2 corredores (em
segundos) e que informe o nome do mais rpido 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 usurio o valor do salrio mnimo e o valor do seu salrio bruto e que calcule e
escreva o valor descontado do INSS, o valor do descontado do IRRF e o salrio lquido. Considerar os descontos con-
forme os quadros abaixo:
13) Uma loja que trabalha com xerox, tem a seguinte tabela de preos:
De 1 a 10 cpias..............R$ 0,12
De 11 a 50 cpias............R$ 0,10
Acima de 50 cpias.........R$ 0,08
A partir da solicitao do usurio do nmero de cpias, 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 salrio um funcionrio de
uma empresa. Construa um algoritmo calcule o aumento recebido e o novo salrio do funcionrio.
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 nmero de dependentes
5 % de aumento Os demais funcionrios
Quantidade de Ingressos % Desconto
At 3 0%
4 a 10 10%
11 a 15 15%
16 ou mais 20%
INSS
Quantidade de Salrios Percentual Descontos
At 3 sem desconto
Acima de 3 at 11 8%
Acima de 11 11%
IRRF
Quantidade de Salrios Percentual Descontos
At 8 sem desconto
Acima de 8 at 15 15%
Acima de 15 25%
25
Fundamentos da Computao I 2
o
Semestre / 2006



15) Elabore uma funo 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
J uvenil A =De 12 at 14 anos
J uvenil B =De 15 at 18 anos
Adulto =De 19 anos acima.
16) Para o programa abaixo identifique as entradas, as sadas 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 Deciso');
WriteLn;
Write('Qual o valor do Salrio Mnimo? ');
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 Salrio Bruto: ',SB:8:2);
QSM :=SB / SM;
WriteLn('Qtde de Salrios Mnimos: ',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 Salrio Liquido e: ',SL:8:2);
ReadKey;
End.
17) Considere o programa acima, para as entradas listadas a seguir indique quais sero os valores de sada.
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
26
Fundamentos da Computao I 2
o
Semestre / 2006


18) Uma loja tem uma promoo que funciona da seguinte maneira: Compras no valor de
at 100 reais tero desconto de 5%
acima de 100 at 250 reais tero desconto de 10%
acima de 250 reais tero 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 frmula IMC =peso / altura2 E que em seguida informe, de acordo com o valor do IMC, a
Situao 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 salrio aos seus funcionrios, varivel de acordo com o cargo, conforme a
tabela abaixo. Elabore um algoritmo que receba o salrio e o cargo de um funcionrio e calcule escreva o novo sal-
rio. Se o cargo do funcionrio no estiver na tabela, ele dever, ento, receber 40% de aumento.
Cargo Percentual
Gerente 10%
Engenheiro 20%
Tcnico 30%
21) Escrever um algoritmos que obtenha as 3 notas de um aluno nas avaliaes e a nota de exerccios que fazem parte da
avaliao. Calcular a mdia de aproveitamento, usando a frmula: MA =(NotaAval1 +NotaAval2 * 2 +NotaAval3 *
3 +NotaExerc)/7. A atribuio de conceitos obedece a tabela:
Mdia 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 mdia 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 polinmio de segundo grau ax2 +bx +c e determina
quando este polinmio igual a zero. Tome cuidado para calcular tudo corretamente e avise o usurio se houverem
situaes de erro.
23) Faa 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 so:
i.Ele deve ser divisvel por quatro.
ii.Se for um ano terminado em 00, deve ser tambm divisvel por 400.
24) Elabore um algoritmo que implemente uma calculadora com as funes de somar, subtrair, multiplicar e dividir. O
programa dever pedir ao utilizador os dois operandos, e perguntar qual a operao pretendida.
25) Elabore um algoritmo que dadas trs temperaturas tiradas numa cidade ao longo do dia, indique qual a mxima e qual
a mnima.
26) Numa empresa, os funcionrios so pagos a R$ 25,00/hora. Pretende-se um algoritmo que a partir da leitura do nme-
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 lquido do funcionrio, bem como os respectivos descontos.
27) Elabore um Algoritmo que calcule o vencimento de um funcionrio, 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 tringulo. Analise esses nmeros conforme as especificaes abaixo
e faa o que se pede:
a. Verificar se um deles um ngulo de 90
0
. Caso isso ocorra esse tiringulo um tringulo retngulo. Exiba essa
informao e calcule a soma dos quadrados (p. ex. S=CO
2
+CA
2
). dos catetos desse tringulo. Ser necessrio
obter o valor do cateto oposto e do cateto adjacente.
27
Fundamentos da Computao I 2
o
Semestre / 2006

b. Quando no existir nenhum ngulo igual a 90, verificar se pelo menos dois ngulos so iguais. Caso
isso ocorra escreva a soma dos mesmos.
c. Caso no ocorra nenhuma das situaes acima calcule a rea deste tringulo. Caso necessrio solicite mais
dados . rea do tringulo (base * altura )/2
29) Construa um programa que leia dois nmeros inteiros. Com esses nmeros faa o que se pede:
a. Caso os dois sejam pares calcule e escreva a soma do quadrado desses nmeros (p. ex. S=A
2
+B
2
). Escrever o
resultado.
b. Caso o primeiro nmero seja par e o segundo impar dever ser calculado a multiplicao desses nmeros.
Escrever o resultado.
c. Caso o primeiro nmero seja impar e o segundo par dever ser calculado a subtrao desses nmeros.
d. Em qualquer outra situao 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 quadriltero (figura geomtrica de 4 lados). Analise se este quadriltero
um retngulo, um quadrado ou penas um quadriltero sem classificao especial. Caso seja um quadrado calcular e
escrever a rea (lado*lado). Caso seja um retngulo calcular e escrever o permetro (soma de todos os lados). OBS:
considere que a ordem da informao dos lados poder ser qualquer uma, logo ter que testar todas as possibilidades.
31) Construa um programa que leia o raio de trs crculos. Analise esses dados conforme as especificaes abaixo e faa o
que se pede:
a. Verificar se os crculos tm o mesmo raio. Caso isso ocorra calcular e
escrever o dimetro desses crculos. Veja a figura ao lado.
b. Quando os dois primeiros crculos tiverem o mesmo raio e a terceiro tiver
raio diferente desses dois primeiros, calcular e escrever o valor do
permetro destes 2 primeiros crculos. Permetro de um crculo dado por:
Permetro =

* Dimetro
c. Caso no ocorra nenhuma das situaes acima calcule a rea de cada
crculo. A rea de um crculo dada por : rea=

R
2

32) Construa um programa que leia 3 ngulos de um tringulo. Analise esses nmeros conforme as especificaes abaixo
e faa o que se pede:
a. Verificar se todos os ngulos so iguais. Caso isso ocorra escreva a soma dos mesmos.
b. Quando eles no forem todos iguais, verificar se um deles um ngulo de 90
0
. Caso isso ocorra esse tringulo
um tringulo retngulo. Exiba essa informao.
c. Caso no ocorra nenhuma das situaes acima calcule a rea deste tringulo. Caso necessrio solicite mais dados.
rea do tringulo (base * altura )/2
Raio
Dimetro
28
Fundamentos da Computao I 2
o
Semestre / 2006

E ES ST TR RU UT TU UR RA AS S D DE E C CO ON NT TR RO OL LE E E Es st tr ru ut tu ur ra a d de e R Re ep pe et ti i o o
Considere o seguinte problema: Elabore um algoritmo que a nota do aluno e que determine escreva "Aprovado"
se o aluno obter nota superior ou igual a 60 e "Reprovado" se o aluno obter nota inferior a 60. Uma soluo para o pro-
blema poderia ser a seguinte:
Algoritmo Resultado;
Var NOTA: inteiro;
Inicio
escreva (Informe a nota do Aluno: );
leia (NOTA);
se (NOTA >=60) ento
inicio
escreva (O aluno foi aprovado);
fim
seno
inicio
escreva (O aluno foi reprovado);
fim;
fim-algoritmo.
O algoritmo acima dever ser chamado ou executado 30 vezes para mostrar o resultado de todos os 30 alunos de
uma turma, pois a execuo do mesmo permite informar a nota de somente um aluno. Podemos alter-lo para que com
somente uma chamada ou execuo o mesmo possa mostrar o resultado de todos os trinta alunos.
Para isso necessrio utilizarmos uma ESTRUTURA DE REPETIO, ou seja, uma estrutura de controle do
fluxo lgico que permite executar diversas vezes um mesmo trecho do algoritmo, porm, sempre verificando antes de
cada execuo se "permitido" repetir o mesmo trecho.
Comando de Repetio Enquanto
Para realizar repeties com teste no incio, podemos utilizar a estrutura ENQUANTO, que permite que um bloco
de comandos ou uma ao primitiva seja repetida enquanto uma determinada (condio) for verdadeira.
Algoritmo Resultado;
Var NOTA, CONTALUNOS : inteiro;
inicio
CONTALUNOS := 1; { inicializar com 1}
enquanto (CONTALUNOS <= 30) faa
inicio
escreva ( Informe a nota do Aluno: );
leia (NOTA);
se (NOTA >=60) ento
inicio
escreva ( O aluno foi aprovado );
fim
seno
inicio
escreva ( O aluno foi reprovado );
fim;
{contar quantos alunos j foram examinados}
CONTALUNOS := CONT ALUNOS +1;
fim-enquanto;
fim-algoritmo.
enquanto (condio) faa
inicio
comando 1;
comando 2;
comando 3;
.
.
comando n;
fim-enquanto;
29
Fundamentos da Computao I 2
o
Semestre / 2006

Exemplos de Algoritmos com Estrutura de Repetio
1) Crie um algoritmo que, aps sua execuo, escreva as seguintes seqncias:
a) 1, 3, 5, 7, ..., 21.
Algoritmo Exemplo_1a;
Var N: inteiro;
inicio
N := 1;
enquanto (N <=21) faa
inicio
escreva (N);
N := N +2;
fim-enquanto;
fim-algoritmo.
b) 0, 2, 4, 6, ..., 14.
Algoritmo Exemplo_1b;
Var N: inteiro;
inicio
N := 0;
enquanto (N <=14) faa
inicio
escreva (N);
N := N +2;
fim-enquanto;
fim-algoritmo.
c) 0, 4, 8, ..., 40.
Algoritmo Exemplo_1c;
Var N : inteiro;
inicio
N := 0;
enquanto (N <=40) faa
inicio
escreva (N);
N := N +4;
fim-enquanto;
fim-algoritmo.
d) 2, 4, 8, ..., 1024.
Algoritmo Exemplo_1d;
Var N: inteiro;
inicio
N := 2;
enquanto (N <=1024) faa
inicio
escreva (N);
N := N * 2;
fim-enquanto;
fim-algoritmo.
2) Elabore um algoritmo que exiba na tela os nmeros mpares de 1 at 100
ALGORITMO Sequencia
Var x : inteiro;
inicio
x := 1;
enquanto (x <100) faca
30
Fundamentos da Computao I 2
o
Semestre / 2006

inicio
escreva ( x , _);
x :=x +2;
fim-enquanto;
fim.algoritmo.
3) Analise os passos abaixo e descreva o que resultar aps a execuo:
a) X :=2;
Y :=3;
TEMP :=X;
X :=Y;
Y :=TEMP;
b) X :=1;
enquanto X <=10 faa
inicio
escreva (X);
X :=X +1;
fim-enquanto;
c) X :=1;
enquanto X <=10 faa
inicio
se (MOD(X/2) =0) ento
inicio
escreva (Nmero Par );
fim
seno
inicio
escreva (Nmero mpar );
fim;
X :=X +1;
fim-enquanto;
4) Elabore um Algoritmo que imprima todos os nmeros pares existentes entre N1 e N2, onde N1 e N2 so nmeros
naturais fornecidos pelo usurio.
Algoritmo Exemplo4;
Var N1, N2, N: inteiro;
inicio
escreva ( Define os nmeros pares entre dois nmeros informados );
escreva ( Digite N1 );
leia (N1);
escreva ( Digite N2 );
leia (N2);
N :=N1;
enquanto (N<=N2) faa
inicio
se (N mod 2) ento
inicio
escreva (N);
fim;
N := N +1;
fim-enquanto;
fim-algoritmo.
E se o primeiro nmero (N1) for maior que o segundo (N2)?
5) Construir um programa que leia a idade de 10 pessoas e conte quantas possuem mais de 50 anos. Exibir o resultado.
Algoritmo Pessoas;
x y TEMP
2 3 2
3 2

X
1
2
3
4
5
6
7
8
9
10
11
X
1 nmero mpar
2 nmero par
3 nmero mpar
4 nmero par
5 nmero mpar
6 nmero par
7 nmero mpar
8 nmero par
9 nmero mpar
10 nmero par
11
31
Fundamentos da Computao I 2
o
Semestre / 2006

Var x, Id, Qtd50, QtdP : inteiro;
inicio
Qtd50 :=0;
x :=1;
enquanto (x <=10) faca
inicio
escreva(Informe a idade da , x , pessoa);
leia (Id);
Se (Id >50) ento
Inicio
Qtd50 := Qtd50 +1;
Fim;
x :=x +1;
fim-enquanto;
escreva ( Existem, Qtd50, pessoas com idade maior que 50 anos);
fimalgoritmo.
6) Elabore um Algoritmo que leia o nome e o salrio bruto de 50 funcionrios. O Algoritmo dever calcular o salrio
lquido (usando a frmula SALRIO-LQUIDO =SALRIO-BRUTO * 0,80). O Algoritmo deve escrever o nome e
o salrio lquido de todos os funcionrios que possuem salrio lquido superior a R$600,00.
Algoritmo Funcionarios;
Var X: inteiro;
NOME: caracter;
SALB, SALLIQ: real;
inicio
X := 1;
enquanto (X <=50) faa
inicio
escreva (Digite o nome: );
leia (NOME);
escreva (Digite o salrio bruto: );
leia (SALB);
SALLIQ := SALB * 0.80 ;
se (SALLIQ >600) ento
inicio
escreva (O funcionrio: , NOME, tem o salrio lquido igual a : , SALLIQ);
fim;
X := X +1;
fim-enquanto;
fim-algoritmo.
7) Elabore um algoritmo para escrever todos os anos bissextos que ocorreram a partir do ano zero, sabendo que este ano
bissexto.
Algoritmo AnoBissexto;
Var ANO: inteiro;
inicio
ANO := 0;
enquanto (ANO <=2006) faa
inicio
escreva ( O ano , ANO, bissexto );
ANO := ANO +4;
fim-enquanto;
fim-algoritmo.

8) Elabore um algoritmo que leia o nome e a populao de 10 cidades e calcule e escreva a populao total das cidades.
Algoritmo Cidades;
Var Nome : caracter;
32
Fundamentos da Computao I 2
o
Semestre / 2006

x, Pop, SomaPop : inteiro;
inicio
SomaPop :=0;
x :=1;
enquanto (x <=10) faca
inicio
escreva(Informe o Nome da , x , cidade);
leia (Nome);
escreva(Informe a populao da , x , cidade);
leia (Pop);
SomaPop :=SomaPop +Pop;
x :=x +1;
fim-enquanto;
escreva ( O populao total das cidades : , SomaPop);
fimalgoritmo.
9) Elabore um algoritmo que leia o nome e a altura de um grupo de 15 pessoas e que calcule e escreva a altura mdia.
Algoritmo Pessoas;
Var Nome : caracter;
x : inteiro;
Alt, SomaAlt, MediaAlt : real;
inicio
SomaAlt :=0;
x :=1;
enquanto (x <=15) faca
inicio
escreva(Informe o Nome da , x , pessoa);
leia (Nome);
escreva(Informe a altura da , x , pessoa);
leia (Alt);
SomaAlt :=SomaAlt +Alt;
x :=x +1;
fim-enquanto;
MediaAlt :=SomaAlt/15;
escreva ( A idade mdia das pessoas : , MediaAlt);
fimalgoritmo.
10) Elabore um algoritmo que leia o sexo e a altura de um grupo de 20 pessoas e calcule a mdia das alturas dos homens e
das mulheres.
Algoritmo AlturaPessoas;
Var X, CONTH, CONTM: inteiro;
SEXO: caracter;
ALTURA, MEDIAALTH,MEDIAALTM, SOMAALTH, SOMAALTM: real;
inicio
CONTH := 0;
CONTM := 0;
SOMAALTH := 0;
SOMAALTM :=0;
X :=1;
enquanto (X <=20) faa
inicio
escreva (Digite SEXO (H, M) : );
leia (SEXO);
escreva ( Digite altura : );
leia (ALTURA);
se (SEXO =M) ento
inicio
33
Fundamentos da Computao I 2
o
Semestre / 2006

CONTM := CONTM +1;
SOMAALTM := SOMAALTM +ALTURA;
fim
seno
inicio
CONTH := CONTH +1;
SOMAALTH :=SOMAALTH +ALTURA;
fim;
X :=X +1;
fim-enquanto;
MEDIAALTH := SOMAALTH / CONTH;
escreva ( A media de altura dos homens : , MEDIAALTH);
MEDIAALTM :=SOMAALTM / CONTM;
escreva ( A media de altura das mulheres : , MEDIAALTM);
fim-algoritmo.
E se no existirem homens ou mulheres para o clculo?
11) Elabore um algoritmo que leia o sexo e a altura de um grupo de 20 pessoas e calcule a mdia das alturas dos homens e
das mulheres. Considere a no existncia de homens ou mulheres para o clculo.
Algoritmo Pessoas;
Var X, CONTH, CONTM: inteiro;
SEXO: caracter;
ALTURA, MEDIAALTH,MEDIAALTM, SOMAALTH, SOMAALTM: real;
inicio
CONTH := 0;
CONTM := 0;
SOMAALTH := 0;
SOMAALTM :=0;
X :=1;
enquanto (X <=20) faa
inicio
escreva (Digite SEXO (H, M) : );
leia (SEXO);
escreva ( Digite altura : );
leia (ALTURA);
se (SEXO =M) ento
inicio
CONTM := CONTM +1;
SOMAALTM := SOMAALTM +ALTURA;
fim
seno
inicio
CONTH := CONTH +1;
SOMAALTH :=SOMAALTH +ALTURA;
fim;
X :=X +1;
fim-enquanto;
se (CONTH =0) ento
inicio
escreva ( No ha homens para calculo );
fim
seno
inicio
MEDIAALTH := SOMAALTH / CONTH;
escreva ( A media de altura dos homens : , MEDIAALTH);
fim;
se (CONTM =0) ento
34
Fundamentos da Computao I 2
o
Semestre / 2006

inicio
escreva ( No existe mulheres para calculo );
fim
seno
inicio
MEDIAALTM := SOMAALTM / CONTM;
escreva ( A media de altura das mulheres : , MEDIAALTM);
fim;
fim-algoritmo.
12) Foi realizada uma pesquisa de algumas caractersticas fsicas da populao de uma certa regio, a qual coletou os
seguintes dados de cada um dos seus 100 habitantes: Sexo (masculino e feminino), Cor dos olhos (azuis, verdes, cas-
tanhos), Cor dos cabelos (louros, castanhos, pretos) e Idade. Faa um Algoritmo que determine e escreva:
A maior idade dos habitantes;
O nmero de indivduos do sexo feminino cuja idade est entre 20 e 40 anos inclusive, e que tenham olhos
verdes e cabelos pretos.
Algoritmo Populacao;
Var IDADE, MAIORIDADE, X, QTHABCAR: inteiro;
SEXO, COROLHOS, CORCAB: caracter;
inicio
X := 1;
QTHABCAR := 0;
MAIORIDADE := 0;
enquanto (X <=100) faa
inicio
escreva ( Digite o sexo ( F ou M) : );
leia (SEXO);
escreva ( Digite a cor dos olhos: );
leia (COROLHOS);
escreva ( Digite idade : );
leia (IDADE);
se (IDADE >MAIORIDADE) ento
inicio
MAIORIDADE := IDADE ;
fim;
se (SEXO =F ) e (COROLHOS = V) e (CORCAB = P ) e (IDADE >=20) e (IDADE <=40)
ento inicio
QTHABCAR := QTHABCAR +1;
fim;
X :=X +1;
fim-enquanto;
escreva ( A maior idade : , MAIORIDADE );
escreva ( O nmero de pessoas com a caractersticas : , QTHABCAR);
fim-algoritmo.
13) Construa um Algoritmo que, dado um conjunto de 20 valores inteiros e positivos, determine qual o menor e o maior
valor do conjunto.
Algoritmo Valores;
Var X, MAIORNUM, MENORNUM, NUMERO : inteiro;
inicio
X :=1;
MAIORNUM := - 3;
MENORNUM := 999999;
enquanto (X <=20) faa
inicio
escreva ( Digite o nmero );
leia (NUMERO);
35
Fundamentos da Computao I 2
o
Semestre / 2006

se (NUMERO >MAIORNUM) ento
inicio
MAIORNUM := NUMERO;
fim;
se (NUMERO < MENORNUM) ento
inicio
MENORNUM := NUMERO;
fim;
X :=X +1;
fim-enquanto;
escreva ( O maior nmero : , MAIORNUM );
escreva ( O menor nmero : , MENORNUM);
fim-algoritmo.
14) Elabore um algoritmo que leia a altura e o sexo de um grupo de 50 pessoas e que determine a maior e a menor altura
do grupo.
Algoritmo Pessoas;
Var SEXO: caracter;
ALTURA, MENORALTURA, MAIORALTURA: real;
X : inteiro;
inicio
MENORALTURA := 5;
MAIORALTURA := 0;
X :=1;
enquanto (X <=50) faa
inicio
escreva ( Digite altura );
leia (ALTURA);
se (ALTURA >MAIORALTURA) ento
inicio
MAIORALTURA := ALTURA;
fim;
se (ALTURA <MENORALTURA) ento
inicio
MENORALTURA := ALTURA;
fim;
X :=X +1;
fim-enquanto;
escreva ( A maior altura do grupo : , MAIORALTURA);
escreva ( A menor altura do grupo : , MENORALTURA);
fim-algoritmo.
15) Construa um algoritmo que leia um conjunto de dados contendo altura, cor dos olhos e sexo (masculino e feminino)
de um grupo de 100 pessoas e que calcule e escreva:
Maior altura entre os homens;
Menor altura entre as mulheres;
Mdia de altura de todo o grupo;
Quantas mulheres de olhos azuis.
Algoritmo Pessoas;
Var QTMULOA, X: inteiro;
SEXO, COROLHOS: caracter;
ALTURA, MAIORALTH, MENORALTM, SOMAALTG: real;
inicio
MAIORALTH := 0;
MENORALTM := 5;
QTMULOA := 0;
X := 1;
36
Fundamentos da Computao I 2
o
Semestre / 2006

SOMAALTG := 0;
enquanto (X <=100) faa
inicio
escreva ( Digite altura : );
leia ( ALTURA);
escreva ( Digite a cor dos olhos: );
leia (COROLHOS);
escreva ( Digite sexo: );
leia (SEXO);
se (ALTURA >MAIORALTURA) e (SEXO =H) ento
inicio
MAIORALTURA := ALTURA ;
fim;
se (ALTURA <MENORALTM) e (SEXO = M ) ento
inicio
MENORALTM := ALTURA;
fim;
QTPESS := QTPESS +1;
SOMAALTG := SOMAALTG +ALTURA;
X :=X +1;
fim-enquanto;
escreva (A maior altura dos homens : , MAIORALTH);
escreva ( A menor altura das mulheres : , MENORALM);
MEDIAALTG :=SOMAALTG / 100;
escreva (A media geral : , MEDIAALTG);
fim;
fim-algoritmo.
16) Elabore um algoritmo que leia os dados (nmero de identificao, cor, peso) dos 20 bois de um frigorfico e que cal-
cule e escreva:
O nmero de identificao e o peso do boi mais gordo;
O boi preto de maior peso e o seu peso;
A mdia de peso de todo o rebanho.
Algoritmo Bois;
Var NUIDENT, NUIDENTPG, NUIDENTGORDO, X: inteiro;
COR: caracter;
PESO, PESOPG, PESOGORDO, SOMAPESO, MEDIAPESO: real;
inicio
SOMAPESO := 0;
X := 1;
PESOPG := 0;
PESOGORDO := 0;
enquanto (X <=200) faa
inicio
escreva ( Digite o numero de identificao: );
leia (NUIDENT);
escreva ( Digite a cor: );
leia (COR);

escreva ( Digite peso: );
leia (PESO);
SOMAPESO := SOMAPESO +PESO;
se (PESO >PESOGORDO) ento
inicio
PESOGORDO := PESO;
NUIDENTGORDO :=NUIDENT;
fim;
37
Fundamentos da Computao I 2
o
Semestre / 2006

se (PESO >PESOGORDO) e (COR =PRETO) ento
inicio
PESOPG := PESO;
NUIDENTPG := NUIDENT;
fim;
X := X +1;
fim-enquanto;
MEDIAPESO := SOMAPESO / 200;
escreva ( A media de peso : , MEDIAPESO );
escreva ( O boi preto mais gordo : , NUIDENTPG , e o seu peso : , PESOPG);
escreva ( O boi mais gordo : , NUIDENTGORDO, e o seu peso : , PESOGORDO);
fim-algoritmo.
17) Elabore um conjunto que leia o nome, o salrio, o nmero do departamento e o sexo de 1000 funcionrios de uma
empresa e que calcule e escreva: o maior salrio e o nome do funcionrio que o possui; o menor salrio e o nome do
funcionrio que o possui; a mdia de salrio dos homens, das mulheres, de todo o grupo e do departamento 01.
Algoritmo Funcionarios;
Var NUDEP, X, NUFUNCH, NUFUNCM, NUFUNCDEP1: inteiro;
SEXO, NOME, NOMEMS, NOMEMENS: caracter;
SALARIO,MAIORSAL,MENORSAL,SOMASAL, SOMASALH, SOMASALM, SOMASALDEP1:real;
inicio
MAIORSAL := 0;
MENORSAL := 10000;
SOMASAL := 0;
SOMASALH := 0;
X := 1;
enquanto (X <= 1000) faa
inicio
escreva ( Digite nome : );
leia (NOME);
escreva ( Digite salrio: );
leia (SALARIO);
escreva ( Digite sexo: );
leia (SEXO);
escreva ( Digite nmero do departamento: );
leia (NUDEP);
se (SALARIO >MAIORSAL) ento
inicio
MAIORSAL := SALARIO;
NOMEMS := NOME;
fim;
se (SALARIO < MENORSAL) ento
inicio
MENORSAL := SALARIO;
NOMEMES := NOME;
fim;
SOMASAL :=SOMASAL +SALARIO;

se (SEXO =h) ou (SEXO =H) ento
inicio
SOMASALH := SOMASALH +SALARIO;
NUFUNCH := NUFUNCH +1;
fim
seno
inicio
SOMASALM :=SOMASALM +SALARIO;
NUFUNCM := NUFUNCM +1;
38
Fundamentos da Computao I 2
o
Semestre / 2006

fim;
se (NUDEP =1) ento
inicio
SOMASALDEP1 := SOMASALDEP1 +SALARIO;
NUFUNCDEP1 := NUFUNCDEP1 +1;
fim;
X := X +1;
fim-enquanto;
escreva ( O maior salrio do grupo : , MAOIRSAL, do funcionrio: , NOMEMS);
escreva ( O menor salrio : , MENORSAL, do funcionrio: , NOMEMES);
MEDIASAL := SOMASAL / 1000;
escreva ( A mdia de salrio do grupo : , MEDIASAL);
se (CONTH =0) ento
inicio
escreva (No h homens para clculo);
fim
seno
inicio
MEDIASALH := SOMASALH / CONTH;
escreva ( A mdia de salrio dos homens : , MEDIASALH);
fim;
se (CONTM =0) entao
inicio
escreva (No existem mulheres para calculo);
fim
senao
inicio
MEDIASALM := SOMASALM / CONTM;
escreva ( A mdia de salrio das mulheres : , MEDIASALM);
fim;
fim-algoritmo.
18) Elabore um algoritmo que leia o nome e a altura de um grupo indeterminado de pessoas e que:
a) Determine e escreva a maior altura e o nome da pessoa que a possui;
b) Determine e escreva a menor altura do grupo.
OBS.: O usurio dever informar a quantidade de pessoas do grupo.
Algoritmo Pessoas;
Var ALT, MAIORALT, MEALT: real;
NOME, NOMEMALT, NOMEMEALT: caracter;
X, QTDPESS : inteiro;
inicio
MEALT :=3;
MAIORALT :=0;
X :=1;
escreva ( Informe a quantidade de pessoas: );
leia (QTDPESS);

enquanto (X <=QTDPESS) faa
inicio
escreva( Digite o nome: );
leia (NOME);
escreva ( Digite a altura: );
leia (ALT);
se (ALT >MAIORALT) ento
incio
NOMEMALT :=NOME;
MEALT :=ALT;
39
Fundamentos da Computao I 2
o
Semestre / 2006

fim;
se (ALT <MEALT) ento
inicio
MEALT :=NOME;
fim;
X :=X +1;
fim-enquanto;
escreva( O nome de maior altura : , NOMEMALT);
escreva( A menor altura : , MEALT, e do(a): , NOMEMEALT);
fim-algoritmo.
19) Elabore um Algoritmo que leia o nome e a altura de um grupo indeterminado de pessoas e que:
a) Determine e escreva a maior altura e o nome da pessoa que a possui;
b) Determine e escreva a menor altura do grupo.
OBS.: O ltimo elemento do conjunto invlido ser aquele que o valor informado para a altura seja igual a 0 (zero).
Algoritmo Pessoas;
Var ALT, MAIORALT, MEALT: real;
NOME, NOMEMALT, NOMEMEALT: caracter;
inicio
MEALT :=3;
MAIORALT :=0;
escreva ( Digite a altura: );
leia (ALT);
enquanto (ALT <>0) faa
inicio
escreva( Digite o nome: );
leia (NOME);
se (ALT >MAIORALT) ento
incio
NOMEMALT :=NOME;
MEALT :=ALT;
fim;
se (ALT <MEALT) ento
inicio
MEALT :=NOME;
fim;
escreva ( Digite a altura: );
leia (ALT);
fim-enquanto;
escreva( O nome de maior altura : , NOMEMALT);
escreva( A menor altura : , MEALT, e do(a): , NOMEMEALT);
fim-algoritmo.
Exerccios - Algoritmos com Estrutura de Repetio
1) Construa um algoritmo que leia um conjunto de dados contendo altura, cor dos olhos e sexo (masculino e feminino)
de um grupo de 20 pessoas e que calcule e escreva:
maior altura entre os homens;
menor altura entre as mulheres;
mdia de altura de todo o grupo;
quantos mulheres de olhos azuis.
2) Determine o resultado do algoritmo abaixo: Algoritmo teste;
Var X,Y: inteiro;
inicio
X :=4; Y :=1;
enquanto X <=9 faa
inicio
40
Fundamentos da Computao I 2
o
Semestre / 2006

Y :=X 2;
X :=X +1;
fim-enquanto;
escreva (X, Y);
fim-algoritmo.
3) Construa um algoritmo que, dado um conjunto de valores inteiros e positivos, determine qual o menor e o maior valor
do conjunto. O final do conjunto de valores conhecido atravs do valor -1, que no deve ser considerado.
4) Elabore um algoritmo que leia o nome, o salrio, o nmero do departamento e o sexo de 80 funcionrios de uma em-
presa e que calcula e escreva:
a) o maior salrio do grupo;
b) a mdia de salrio das mulheres;
c) o menor salrio e o nome do funcionrio que o possui;
d) a mdia de salrio dos departamentos de nmero 03 e 04.
5) Elabore um algoritmo que solicite ao usurio o primeiro elemento de uma PA (A1) e a sua razo. E que calcule e es-
creva a soma dos 30 primeiros elementos da PA.
6) Elabore um algoritmo que solicite as 10 notas de um aluno e que calcule e escreva :
a mdia do aluno;
escreva a mensagem APROVADO se a mdia foi superior a 60 e caso contrrio REPROVADO;
escreva a quantidade de notas inferiores a 50 pontos.
7) Elabore um algoritmo que escreva os nmeros: 3,9,27, ......,243.
8) Elabore um algoritmo que escreva os nmeros: 3,6,9, ... , 60.
9) Elabore um algoritmo que solicite ao usurio o sexo e a altura de 30 pessoas e que calcule e escreva o peso ideal de
acordo com a frmula a seguir: homens : (72,7 * h ) - 58 mulheres : (62,1 * h ) - 44,7
10) Elabore um algoritmo que calcule e escreva uma tabela de graus centgrados em funo de graus Fahrenheit que vari-
em de 50 a 150 de 1 em 1. A frmula : C =5/9 ( F - 32).
11) Construa um algoritmo que, dado um conjunto de valores inteiros e positivos, determine qual o menor valor do con-
junto de 45 nmeros.
12) Elabore um algoritmo que leia o sexo, a cor dos olhos e a altura de um grupo de um grupo de 100 pessoas. O algorit-
mo dever determinar e escrever:
a maior altura das mulheres;
a menor altura das mulheres;
a mdia de altura de todo o grupo;
a mdia de altura dos homens;
quantos homens possuem altura superior a 1,78 m;
13) Elabore um algoritmo que imprima todos os nmeros pares existentes entre 30 e 200.
14) Elabore um algoritmo que leia os dados (nmero de identificao, cor, peso) dos 20 bois de um frigorfico e que cal-
cule e escreva: O nmero de identificao e o peso do boi mais gordo;
O nmero de identificao e o peso do boi preto de mais gordo.
15) Elabore um algoritmo que leia o nome e o salrio bruto de 50 funcionrios. O algoritmo dever calcular o salrio l-
quido (usando a frmula SALRIO-LQUIDO =SALRIO-BRUTO * 0,80). O algoritmo deve escrever o nome e o
salrio lquido de todos os funcionrios que possuem salrio lquido superior a R$600,00.
16) Determine os valores X e Y aps a execuo do algoritmo. Obs: Demonstrar o resultado atravs de chinezinho.
Algoritmo Calcxy;
Var X, Y, INDICE: inteiro;
inicio
X :=0;
Y := 2;
INDICE :=4;
enquanto INDICE <=10 faa
inicio
X :=3 * Y - 5;
Y := INDICE +4;
INDICE :=INDICE +1;
fim-enquanto;
escreva (X, Y);
Valor final de X eY
X =________
Y =_________
41
Fundamentos da Computao I 2
o
Semestre / 2006

fim-Algoritmo.
17) Construa um algoritmo que leia o nome, a idade, nmero de dependentes, o salrio e o sexo de 50 funcionrios de
uma empresa. Analise cada questo abaixo. Seu algoritmo dever dar uma soluo a cada uma delas:
Quando o funcionrio for homem, com idade acima de 44 e possuir nmero de dependentes acima de 7 seu sa-
lrio dever ter um aumento de 25%. Calcule e escreva o seu novo salrio.
Quando o funcionrio for uma mulher, com idade superior a 40 anos ou nmero de dependente acima de 5 de-
ver ter um aumento de 20%. Calcule e escreva o seu novo salrio.
Os demais funcionrios devero ter um aumento de 5%;
Calcule e escreva a mdia das idades funcionrios da empresa.
18) Construa um algoritmo que leia o nome de 20 pases, a rea territorial e a populao de cada um deles. Calcule e es-
creva qual a mdia populacional dos pases que possuem rea menor que 8000 metros quadrados. Calcule e escreva
tambm a soma das reas de todos os pases.
19) Elabore um algoritmo que leia a nota de 20 alunos de uma turma e que:
a) Determine e escreva quantos alunos obtiveram nota igual ou superior a 60 pontos;
b) Determine e escreva quantos alunos obtiveram nota entre 30 e 40 pontos.
42
Fundamentos da Computao I 2
o
Semestre / 2006


20) Dado o algoritmo abaixo, determine os valores finais de X e Y:














Inicio








21) Analise o programa abaixo e faa o rastreio do mesmo:
Algoritmo Exemplo2;
Var N: inteiro;
inicio
Soma:=0;
N:=1;
enquanto (N<=500) faa
inicio
escreva(N);
N :=N * 5;
Soma:=Soma +N;
fim-enquanto;
escreva(Soma );
fim-algoritmo
22) Nas eleies do segundo turno, estavam disputando a vaga de prefeito da cidade de BH dois candidatos, um chamado
A e o outro B. Sabendo-se que o nmero de eleitores de BH chegam a 300.000, construa um algoritmo que seja capaz
de contar o nmero de votos que obteve o candidato A e o candidato B. Para isso ser necessrio perguntar para cada
um dos eleitores o nome do candidato em que votou e contar os votos de cada um. O seu algoritmo dever responder
os resultados encontrados.
23) Construa um algoritmo que leia 10 nmeros e descubra se eles so todos maiores que 10. O seu algoritmo dever
analisar os nmeros e dar apenas uma resposta final.
24) Construa um algoritmo que leia um conjunto de 200 nomes de eleitores, com seus respectivos sexo e idade. Calcule e
escreva quantas pessoas possuem, ao mesmo tempo, sexo feminino e idade entre 16 e 18 anos. Calcule e escreva o se-
xo e o nome de todos os eleitores que tenham mais de 70 anos.
25) Um candidato prefeitura de uma cidade, depois das eleies foi fazer as contas para descobrir quanto foi gasto de
dinheiro em sua campanha. Sabendo que este candidato teve total de 200 despesas e que cada despesa possua um va-
lor diferente, construa um algoritmo que:
a) Leia o nome e o valor de dada uma das despesas e calcule e escreva a despesa total.; (ex: santinhos, R$600,00)
Algoritmo Exemplo;
Var X, Y, NUCHAMADA: inteiro;
inicio
escreva(Digite o num. Chamada:); leia ( NUCHAMADA);
se (NUCHAMADA mod 2 >2) ento
inicio
X :=NUCHAMADA;
fim
seno
inicio
X :=NUCHAMADA +1;
Y :=NUCHAMADA - 3;
fim;
se (X >2) ento
inicio
X :=X +2
fim
seno
inicio
Y :=Y - 5;
fim
escreva (Os valores de X e Y so: , X, Y);
fim-algoritmo.
X=------------ Y=------
N Soma








O que este algoritmo est fazendo?

43
Fundamentos da Computao I 2
o
Semestre / 2006

b) Calcule e escreva tambm qual foi a mdia das despesas;
c) Calcule e escreva o nome da despesa mais cara.
26) Elabore um algoritmo que leia a idade e sexo de 30 pessoas e que:
a) Determine e escreva quantos homens possuem idade acima de 30 anos;
b) Determine e escreva a porcentagem de mulheres do grupo.
27) Elabore um algoritmo que leia a cor dos olhos(V,A, C,P), a idade e o sexo de 30 pessoas e que calcule e escreva:
a) quantidade de homens de olhos azuis;
b) quantidade de mulheres do grupo;
c) maior altura entre as mulheres;
d) porcentagem de mulheres do grupo que possuem olhos ver-
des;
e) porcentagem de pessoas com cada uma das cores dos olhos.
28) Durante as olimpadas uma equipe de 10 atletas disputou uma prova de natao. Sabe-se que : a piscina possui 100
metros de comprimento; o tempo gasto por cada atleta ser informado pelo usurio, e que a velocidade dada pela
frmula Velocidade=distncia percorrida / tempo gasto (v =d/t ). Com esses dados construa um algoritmo que leia o
nome, o peso, a idade, o tempo gasto por cada atleta para atravessar a piscina e calcule e escreva:
a) A velocidade de cada atleta durante a travessia
b) O tempo mdio (mdia do tempo) gasto pelos nadadores que possuam mais de 25 anos e peso abaixo de 55 qui-
los
29) Em um campeonato de vlei de praia estavam disputando o ttulo duas duplas, uma chamada A e a outra B. Sabendo-
se que o nmero de partidas disputadas foram 15, construa um algoritmo que seja capaz de saber quantos pontos cada
uma das duplas obteve no final de 15 partidas. Para isso ser necessrio obter do usurio, a pontuao de cada dupla
em cada partida e computar esses pontos. Depois, o seu algoritmo dever responder os resultados encontrados e in-
formar qual foi a dupla campe.
30) Construa um algoritmo que leia, de um conjunto 5.000 jovens, a idade e grau de escolaridade (1 - para primeiro grau,
2 - para segundo grau, 3 para terceiro grau) de cada um. Depois, calcule e escreva:
a) Quantos jovens possuem, ao mesmo tempo, idade entre 18 e 25 anos e grau de escolaridade igual a 3, ou seja, j
est fazendo o 3 grau.
b) A quantidade de jovens com grau de escolaridade igual a 1, ou seja, j concluiu o 1 grau.
c) A quantidade de jovens com grau de escolaridade igual a 2, ou seja, j concluiu o 2 grau.
d) Aps esta anlise responda se existem mais jovens com 1 ou 2 grau.
31) Analise atentamente o algoritmo abaixo e faa o rastreio do mesmo:
Algoritmo Exerc41;
Var A, B, Id: inteiro;
P: real;
inicio
// necessrio que use valore prximos da realidade
escreva ( Informe sua idade: );
leia ( Id );
escreva ( Informe seu peso: );
leia ( P );
enquanto (id >=1) e (P<=100) faa
inicio
se ( Id <=16) ento
inicio
P :=P +Id;
fim
seno
inicio
se ( Id >16) ento
inicio
Id :=Id - 5;
fim
fim;
P P +5;
fim-enquanto
escreva ( O valor de P e Id: P, Id);
fim-algoritmo.


R RA AS ST TR RE EI I O O
44
Fundamentos da Computao I 2
o
Semestre / 2006

32) Construa um algoritmo que leia um conjunto de nomes de pessoas, com seus respectivos sexo e idade.Pea
ao usurio para fornecer a quantidade de existentes nesse conjunto pessoas deseja informar. Calcule e escreva quantas
pessoas possuem, ao mesmo tempo, sexo feminino e idade maior que 15 anos. Escreva o nome de todas as pessoas
que so do sexo masculino.
33) Elabore um algoritmo que leia um conjunto de nmeros inteiros. O ltimo conjunto de dados no vlido aquele que
o nmero informado - 4. O algoritmo deve:
a) Determine e escreva a mdia dos nmeros;
b) Determine e escreva quantos nmeros so pares.
34) Elabore um algoritmo que leia a idade e o sexo de um grupo indeterminado de pessoas. O ltimo conjunto de dados
no vlido aquele que a idade informada - 1. O algoritmo dever determinar e escrever:
a) a maior idade entre os homens;
b) a menor idade entre as mulheres;
c) a mdia de idade entre as mulheres;
d) a porcentagem de homens do grupo.
35) Um candidato prefeitura de uma cidade, depois das eleies foi fazer as contas para descobrir quanto havia gasto de
dinheiro em sua campanha. Sabendo que este candidato teve um nmero indeterminado de despesas e que cada despe-
sa possua um valor diferente, construa um algoritmo que :
a) leia o valor de dada uma das despesas e calcule e escreva a despesa total.;
b) Calcule e escreva tambm qual foi a mdia das despesas;
c) Utilize como condio de parada o valor 0 para a despesa;
36) Construa um algoritmo que leia o nome de um nmero indeterminado de pases e a populao de cada um deles. Cal-
cule e escreva qual a maior populao e qual menor populao. Utilize como FLAG (condio de parada) a letra x
para o nome do pas.
37) Solicitar ao usurio o tempo gasto na corrida pelos competidores (Flag -1). Exibir no vdeo o tempo gasto pelo vence-
dor e o do que chegou em ltimo lugar.
38) Sabe-se que um nmero indeterminado de funcionrios de uma empresa recebero alguns dias de folga. Porm esta
folga ser dada em funo do tempo de servio. Para os funcionrios que tm at 3 anos de casa, ter 5 dias de folga.
Para funcionrios com 4 a 8 anos de casa ser dado uma folga de 10 das. Para funcionrios com tempo de casa entre
9 e 10 anos ser dado uma folga de 15 dias. Construa um algoritmo que seja capaz de ler o tempo de servio e o nome
de cada um dos funcionrios. Com base nesta informao escreva quantos dias de folga ele ter direito. Utilize como
FLAG (condio de parada) a letra X para o nome do funcionrio.
39) Construa um algoritmo que leia o nome de um nmero indeterminado de pases e a populao de cada um deles. Cal-
cule e escreva qual a maior populao e qual menor populao. Utilize como FLAG (condio de parada) a letra x
para o nome do pas.
R Re ef fe er r n nc ci ia as s B Bi ib bl li io og gr r f fi ic ca as s
Farrer, Hanrry. Algoritmos Estruturados. Guanabara. Rio de J aneiro, 1986.
Guimares, Lages. Algoritmos Estruturados.
Wirth, Niklaus. Programao Sistemtica. Editora Campus. Rio de J aneiro, 1978.
Saliba, Walter Luiz Caram. Tcnicas de Programao - Uma abordagem Estruturada. Editora Makron Books.
So Paulo, 1992.
Forbellone, Andr Luiz Villar. Lgica de Programao - A construo de Algoritmos e Estruturas de Dados.
Editora Makron Books. So Paulo, 1993.