Вы находитесь на странице: 1из 46

Centro Universitário do Leste de Minas Gerais

UNILESTEMG

Fundamentos da Computação I

Autor: Prof. Mauro Morais de Miranda


Co-autores: Profª Deisymar Botega Tavares
Prof. Marcelo Balbino
Profª Renata Vieira Dias
Introdução a Hardware e Software....................................................................................................................1
Histórico ........................................................................................................................................................1
Conceitos básicos ..........................................................................................................................................1
Computação.......................................................................................................................................................7
Algoritmos.........................................................................................................................................................7
Por que precisamos de Algoritmos? ..............................................................................................................7
Classificação dos Dados: Constantes X Variáveis ........................................................................................9
Tipos Primitivos de Dados ..........................................................................................................................10
Formação de Identificadores - Nome de variável........................................................................................10
Declaração de Variáveis ..............................................................................................................................11
Comando de Atribuição...............................................................................................................................11
Comando de Entrada ...................................................................................................................................11
Comando de Saída .......................................................................................................................................11
Expressões Aritméticas................................................................................................................................11
Exercícios – Variáveis e Tipos de Variáveis – Comandos Básicos.............................................................12
O uso do operador de adição em variáveis do tipo caracter ........................................................................12
ESTRUTURAS DE CONTROLE – Estrutura Seqüencial .............................................................................13
Exemplos – Estrutura Seqüencial ................................................................................................................13
Exercícios – Estrutura de Seqüencial ..........................................................................................................14
ESTRUTURAS DE CONTROLE – Estrutura Condicional ...........................................................................17
Expressões Lógicas......................................................................................................................................17
Operadores Lógicos.....................................................................................................................................17
Prioridades...................................................................................................................................................17
Exercícios de Operadores lógicos e relacionais...........................................................................................18
Estrutura Condicional Simples ....................................................................................................................18
Estrutura Condicional Composta.................................................................................................................18
Exemplos – Estrutura Condicional Simples e Composta ............................................................................19
Exercícios – Algoritmos com Estrutura de Decisão ....................................................................................23
Exercícios Revisionais – Estrutura de Decisão ...........................................................................................23
ESTRUTURAS DE CONTROLE – Estrutura de Repetição ..........................................................................28
Comando de Repetição Enquanto................................................................................................................28
Exemplos de Algoritmos com Estrutura de Repetição ................................................................................29
Exercícios - Algoritmos com Estrutura de Repetição..................................................................................39
Referências Bibliográficas ..............................................................................................................................44
1

Introdução a Hardware e Software

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

Conceitos básicos

Computador
Um computador pode ser definido como uma máquina potencialmente capaz de executar tarefas, necessitando pa-
ra isto de hardware adequado e um software compatível com o mesmo. Então podemos dizer que um computador tem
duas partes diferentes que funcionam em conjunto:
¾ Hardware, que em inglês significa equipamento pesado, é a parte física do computador. Componentes de
memória, periféricos, cabos, placas e chips fazem parte dele;
¾ Software é um programa, que, utilizando o hardware, executa as diferentes tarefas necessárias ao processa-
mento de dados. Existem softwares de vários tipos; os mais importantes são:
♦ Software Básico
♦ Software Utilitário
♦ Software Aplicativo

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

Software Utilitário:
Se destina a realizar funções rotineiras e repetitivas requeridas pelo tipo de trabalho do usuário. Exemplos:
¾ Editores de Texto: WordPad, Word, Bloco de Notas;
¾ Planilhas: Lotus, Excel;
¾ Editores de Imagens: Paint, Corel Drawn, PhotoShop, Photo Editor;
¾ Editores de Apresentação: Power Point;
¾ Ferramentas de Internet: Internet Explorer, Netscape Navigator, WebMail, OutLook Express;

Software aplicativo:
Software desenvolvido com a função de coletar dados, armazená-los e emitir relatórios com informações que
subsidiem o usuários em sua atividade fim.
¾ Científicos - cálculos balísticos
¾ Comerciais - folhas de pagamento, contabilidade
¾ Simulação - tráfegos, grafos
¾ Controle De Processos - usinas nucleares, Petrobrás
Fluxo de processamento de dados
Para que um computador funcione são necessários no mínimo as 3 etapas destacadas a seguir:

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

Fundamentos da Computação I 2o Semestre / 2006


2
¾ Processamento – Onde as informações são analisadas, trabalhadas e enviadas a saída (execução dos cál-
culos). A CPU ou UCP (Unidade Central de Processamento) é o elemento responsável por coordenar, controlar
ou realizar todas essas tarefas. Principais partes de CPU:
♦ Unidade de controle é a parte da CPU encarregada de comandar o resto das unidades. Interpreta as instru-
ções, controla sua execução e a seqüência que estas devem ser executadas.
♦ ULA (Unidade Aritmética-Lógica): é a parte da CPU encarregada de realizar as operações elementares, do ti-
po aritmético e lógico. (veja figura ilustrativa a seguir)

MEMÓRIA AUXILIAR

UNIDADES DE ENTRADA UNIDADES DE SAÍDA

UCP OU CPU

Memória Principal (RAM)

¾ Saída – Onde as informações em linguagem de máquina são convertidas em sinais perceptíveis aos sensores hu-
manos (apresentação dos dados).
Periféricos
São dispositivos que são ligados ao computador. Quando esses dispositivos são ligados diretamente à placa-mãe
(dentro do gabinete do computador) dizemos que esses dispositivos são integrados. Quando os dispositivos são ligados
ao desktop (externamente) chamamos de periféricos não integrados.
Exemplos: Periféricos integrados: Disco rígido, unidade de disquetes, Modem (também pode ser externo).
Periféricos não integrados: Monitor de vídeo (integrado somente nos laptops), impressoras.
A PLACA-MÃE
Também chamada de “mainboard” (placa principal) ou “motherboard” (placa mãe), é onde se aloja o componente
principal do computador, o microprocessador, que, juntamente com os demais componentes da placa, definem a “persona-
lidade” do aparelho.
PROCESSADOR
É um componente importantíssimo da Unidade Central de Processamento (CPU ou UCP), em redor do qual se
constrói o computador. Existem diversos fabricantes; o mais conhecido é a Intel, por ser a que leva a dianteira do desen-
volvimento tecnológico e tem a maior participação nas vendas, porém existem fabricantes alternativos que podem ser uma
opção vantajosa: AMD e Cyrix oferecem componentes que rivalizam em performance e confiabilidade com os da Intel.
Upgrade
O upgrade, ou atualização, pode ser um fator determinante na escolha de um motherboard. Algumas placas vêm
configuradas para operar apenas com um único tipo de processador, com poucos slots de expansão, poucos slots de ex-
pansão para memória, deixando pouca chance de upgrade, o que no futuro pode acarretar grande decepção.
Outras placas, entretanto, são extremamente versáteis, permitindo o uso de uma ampla gama de microprocessado-
res de diversos fabricantes e têm um grande número de conectores para colocação de chips de memória. É claro que as
placas mais versáteis custam mais caro e são mais difíceis de se configurar, porém cabe ao montador escolher a que me-
lhor se adapta ao uso em vista.
Bits e Bytes
A menor unidade de informação usada pelo computador é o bit. Este tem atribuições lógicas 0 ou 1. Cada um des-
tes estados pode, internamente, ser representado por meios eletro-magnéticos (negativo/positivo, ligado/desligado, etc).

Fundamentos da Computação I 2o Semestre / 2006


3
É por isso que é mais fácil para armazenar dados em formato binário. Assim, todos os dados do compu-
tador são representados de forma binária. Mesmo os números são comumente representados na base 2, em vez da base 10,
e suas operações são feitas na base 2.
Um conjunto de 8 bits é chamado de byte. Um byte pode ter até 28 = 256 configurações diferentes. O principal
padrão usado para representar caracteres (’a’,’b’,’c’,...,’A’,’B’,’C’,...,’!’,’@’,’#’,’$’,...) é o padrão 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 código de alguns caracteres no código ASCII.
Observe que:
1. As codificações para letras em maiúsculas e minúsculas são diferentes.
2. A codificação de ’B’ é a codificação de ’A’ somado de 1; a codificação de ’C’ é a codificação de ’B’ so-
mado de 1; assim por diante. Esta codificação permite poder comparar facilmente se um caracter vem an-
tes do outro ou não. Internamente, verificar se o caracter ’a’ vem antes do ’b’, é verificar se o número bi-
nário correspondente a ’a’ é menor que o número binário correspondente a ’b’.
3. As letras maiúsculas vêm antes das minúsculas.

Caracter Representação em ASCII Valor na base decimal


... ... ...
( 00101000 40
) 00101001 41
* 00101010 42
+ 00101011 43
... ... ...
0 00110000 48
1 00110001 49
2 00110010 50
3 00110011 51
... ... ...
A 01000001 65
B 01000010 66
C 01000011 67
D 01000100 68
... ... ...
A 01100001 97
B 01100010 98
C 01100011 99
D 01100100 100
... ... ...
Tabela 1 – Tabela ASCII

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


Nome Memória
Bit {0,1}
Byte 8 bits
Kilobyte (Kbyte) 210 bytes (pouco mais de mil bytes (210 = 1024))
Megabyte (Mbyte) 220 bytes (pouco mais de um milhão de bytes ou pouco mais de mil Kbytes (210 = 1024 Kbytes))
Gigabyte (Gbyte) 230 bytes (pouco mais de um bilhão de bytes ou pouco mais de mil Mbytes (210 = 1024 Mbytes))
Tabela 2 – Bits e Bytes
Atualmente, configurações de computador com 128 ou 256 Megabytes de memória RAM, 40 Gigabytes de disco
rígido, disco flexível de 1,44 Megabytes são muito comuns no mercado. Certamente esta configuração já será considerada
pequena dentro de um ou dois anos, devido ao contınuo avanço da tecnologia nesta área.
Vejamos alguns exemplos de quanto e esta memória. Uma página de um livro, armazenada em formato ASCII,
tem em torno de 50 linhas e 80 caracteres por linha. Assim, um livro de 1000 páginas teria algo em torno de 4.000.000 de
caracteres, que poderiam ser guardados em 4 megabytes. Assim, um disco rígido de 4,2 Gigabytes poderia guardar em
Fundamentos da Computação I 2o Semestre / 2006
4
torno de 1.000 livros deste tipo. Isto aparenta uma quantidade bastante grande de dados. Por outro lado, a maio-
ria das aplicações atuais está fazendo uso cada vez maior de imagens, gráficos e sons. Estas aplicações demandam muita
memória. Por exemplo, se você quiser representar uma imagem de tamanho 1000 X 1000 pontos (106 pontos), cada ponto
com uma cor entre 65000 cores possíveis (dois bytes por ponto), gastaremos algo como 2 Megabytes para armazenar ape-
nas uma imagem deste tipo. A quantidade de memória aumenta quando armazenamos filmes, que usam em torno de 30
imagens por segundo. Apesar do uso de métodos de compressão sobre estes tipos de dados a necessidade de grande quan-
tidade de memória ainda é crucial para muitas aplicações.
MEMÓRIA RAM
A memória RAM é responsável por armazenar as informações utilizáveis por vários subsistemas do computador,
notadamente por programas. A demanda e a oferta por memória sempre caminham juntas. É uma memória volátil, ou seja,
os dados serão perdidos ao interromper o fornecimento de energia. Todo programa para ser executado deve antes ser car-
regado para a memória RAM até que o processador possa manipula-lo.
O papel da memória RAM
O processador não possui uma capacidade de armazenamento interna muito grande. Por este motivo, precisa que
os programas fiquem armazenados externamente a ele. Este papel cabe à memória (RAM). O processador está sempre em
contato direto com a RAM (usando o DMA-Direc Memory Access), buscando programas (operação chamada “leitura”) e
armazenando dados (operação chamada “escrita”).
Quando você “roda” um joguinho ou chama um processador de textos, o programa é transferido do disco para a
memória (RAM), onde o processador irá ler o programa e executá-lo. Isto significa que, quando mais memória você tiver
em seu micro, mais programas poderão estar “rodando” simultaneamente.
Graças a um recurso chamado de memória virtual, a memória RAM não acaba. O processador, sempre que neces-
sário, cria no disco rígido um arquivo (chamado arquivo de troca) que “simula” mais memória RAM. Em um micro com
apenas 32 MB de RAM o microprocessador pode “simular” que o micro possua 64 MB ou até mais. A parte que não fica
armazenada na memória fica no arquivo de troca, no disco rígido.
Como o processador, para processamento, somente “enxerga” dados que estão na RAM, ele deverá “trocar” o
conteúdo da memória RAM com o arquivo de memória virtual do disco rígido (e daí o nome “arquivo de troca”). O disco
rígido, entretanto, é muito mais lento que a memória RAM. Quanto mais memória RAM o micro tiver, menos “estouros”
de memória ocorrem. Com isto, menos vezes o processador terá que utilizar o recurso de memória virtual.
Conclusão: Um micro com mais memória RAM parecerá mais rápido que um outro que possua menos. Este au-
mento de performance ocorre porque o processador precisará utilizar menos o recurso de memória virtual. Na prática
dizemos que um micro será mais rápido se possuir mais memória RAM.
O que é o cache de memória
Vimos que o processador conversa diretamente com a memória RAM. Acontece que ela é mais lenta que o pro-
cessador. Por isto, toda a vez em que o processador acessa à memória, ele fica esperando para que os dados sejam devi-
damente entregues ou armazenados, dependendo se a operação é de leitura ou escrita.
Não nos parece interessante que o processador fique lento tanto tempo esperando, não é mesmo? Ao longo do
tempo, o processador ficará um bom tempo fazendo absolutamente nada. Na prática, o micro perderá performance.
Para fazer com que o processador consiga conversar de igual com a RAM, entra na jogada uma memória mais rá-
pida, chamada memória dinâmica ou simplesmente DRAM. A memória cache é capaz de conversar com o processador
sem que ele precise ficar esperando, o que é excelente.
Acontece que este tipo de memória é muito grande e cara. No micro temos pequena porção deste tipo de memó-
ria: ao invés de “falar” diretamente com a memória, o processador fala com o cache, que consegue “conversar” à mesma
velocidade.
Nem sempre quando mais memória cache você tiver será melhor. O tamanho ideal de memória cache para o micro
depende, sobretudo, da quantidade de memória RAM que o micro possua instalada.
Memória ROM (Ready Only Memory) - Memória apenas de leitura
Seu conteúdo é gravado durante o processo de fabricação. Este tipo de memória armazena programas e instruções
de controle que são processados no momento em que o computador é ligado, para realizar as seguintes funções:
¾ Checar o hardware, ou seja, testar o funcionamento dos principais componentes da máquina, como por exemplo:
placas de memória RAM, drives, teclado, etc;
¾ Carregar o sistema operacional.

Fundamentos da Computação I 2o Semestre / 2006


5
Unidade de Disco Rígido
É o meio que pode armazenar o sistema operacional, programas, arquivos de textos, imagens, entre outros dados.
È conhecido também pelas iniciais em inglês HD (Hard Disk – Disco Rígido). Sua capacidade de armazenamento e taxa
de leitura e escrita atuais, são impressionantes, tornando o HD peça essencial na performance de muitos programas.
A unidade de medida da capacidade de armazenamento de dados nos HDs é a mesma utilizada para a memória
RAM, o byte. Como a capacidade dos HDs é muito maior que o da RAM, o prefixo utilizado atualmente é o GB (gigaby-
te) e não apenas o MB (megabyte). É fácil encontrar discos rígidos novos com capacidade em torno de 20 GB.
Existem duas especificações para os modelos de HD: IDE (Integrated Drive Eletronics – eletrônica integrada de
drives) bastante popular por seu baixo preço e a SCSI (Interface reduzida de sistemas computadorizados) de maior uso no
âmbito profissional e corporativo.
Os principais parâmetros para análise de um HD são a velocidade rotacional (também chamada de velocidade an-
gular) medida em rpm, o tempo de acesso medido em ms e a taxa de transferência de dados medida em KB/s. É importan-
te observar também, um parâmetro chamado MTBF (tempo médio entre falhas) que geralmente é dado em horas de uso
contínuo e envolve diversas outras variáveis. O MTBF, também utilizado por outros equipamentos, indica o quão confiá-
vel é o equipamento em uso geralmente intenso e sua durabilidade média.
Um bom HD tem um baixo tempo de acesso, alta taxa de transferência de dados e alta velocidade rotacional.
Discos magnéticos são dispositivos para armazenamento de dados (que independem de alimentação de energia e
portanto permanecem gravados após ser desligado o computador, mas podem, a critério do usuário, ser apagados ou alte-
rados). Os discos magnéticos englobam os discos flexíveis ou disquetes (“floppy disks”) e os discos rígidos.
Um disco magnético incorpora eletrônica de controle, motor para girar o disco, cabeças de leitura/ gravação e o
mecanismo para o posicionamento das cabeças, que são móveis. Os discos propriamente ditos são superfícies de formato
circular compostos de finos discos de alumínio ou vidro, revestidos de materiais magnetizáveis em ambas as faces.
As informações são gravadas nos discos em “setores”, distribuídos ao longo de “trilha” concêntricas marcadas
magneticamente como setores circulares no disco.
O processo de marcação magnética das trilhas e setores em um disco faz parte da “Formatação” do disco. Esta
formatação é dependente do sistema operacional que usará o disco.
Dado a grande quantidade de informações que são armazenadas em um disco rígido, e considerando-se que, devi-
do a desgastes naturais durante o funcionamento, é inevitável que ocorra uma avaria algum dia, é importantíssimo preve-
nir-se quanto à perda dessas informações realizando-se periodicamente cópias de segurança de seus arquivos, o que é
conhecido tecnicamente como back-up.
DISCOS FLEXÍVEIS
As unidades de discos flexíveis (floppy disks ou FDs) surgiram como uma solução para armazenamento de dados
a baixo custo em microcomputadores e substituíram com grandes vantagens o armazenamento em fitas cassete que equi-
pava os primeiros microcomputadores. Os discos flexíveis são feitos de poliéster flexível e sua capacidade atual de arma-
zenamento é geralmente de 1,44 Mbytes.

CD-ROM
Os CD-ROMs prestam-se ao armazenamento de grandes volumes de informação, tais como enciclopédias. A tec-
nologia utilizada nos acionadores encontrados nos microcomputadores ainda não permite sua regravação devido ao alto
custo envolvido. Os acionadores ou drives de discos CD-ROM podem reproduzir normalmente os CDs de áudio (o que
significa que podemos ouvir músicas enquanto trabalhamos em nossos micros).
DVD – Digital Versatile (Video) Disc
Os DVDs são a última tecnologia em armazenamento de dados. Sua capacidade chega a aproximadamente 4,7
Gb. Tem uma característica importante, que é a regravação. Tendem a substituir as fitas de vídeo. É o futuro dos discos
óticos digitais, a evolução da tecnologia Compact Disc. Assim como o CD (áudio) e o CD-ROM, o sistema DVD é com-
posto de um CD player para ser ligado a TV, ou um DVD-ROM drive para uso em computadores. Além dos discos terem
o mesmo tamanho e espessura dos atuais CDs, o DVD mais simples terá capacidade para 4,7 Gb (capacidade equivalente
a mais do que 7 CD-ROMs), que é suficiente para conter mais de 2 horas de filme com alta qualidade de som e de ima-
gem, além de áudio em 3 idiomas distintos e 4 conjuntos diferentes de legendas.

Fundamentos da Computação I 2o Semestre / 2006


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

De onde surgiu a Internet?


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

Por que a Internet é importante?


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

O que é URL?
É o endereço da página, que permite aos computadores encontrarem o que o usuário busca, de maneira uniforme.
Veja alguns exemplos de URL:
www.ufac.br
www.mama.org.br
www.uol.com.br
O que é Site?
Um site é um conjunto de informações públicas armazenado num computador servidor da Internet. Qualquer pes-
soa pode solicitar estas informações ao servidor sempre que quiser. Existem sites de notícias, de empresas, de revistas, de
organizações, de governos, etc. Imagine a Internet como uma grande biblioteca e os sites como livros, que apesar de esta-
rem espalhados pelo mundo podem ser abertos na tela do computador a qualquer momento.
Exemplos de Site:
& Museu de Arte do Rio de Janeiro (Ex: www. mamrio.com.br)
& Jornal (Ex: www.jornalatribuna.com.br)
& Governo (Ex: www.ac.gov.br)
& Supermercado (Ex: www.paodeacucar.com.br)
Fundamentos da Computação I 2o Semestre / 2006
7
& Emissora de TV (Ex: www.globo.com.br)
& Livraria (Ex: www.livrariasaraiva.com.br)

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

O que é download?
DOWNLOAD = Descarregar, baixar um arquivo (textos, imagens, músicas, filmes). Fazer o download de algo
significa fazer uma cópia de um arquivo ou de um programa em seu próprio computador.

Como fazer o Download de um Arquivo (Textos, imagens, músicas, filmes)


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

Computação
Desde o inicio da existência do homem ele tem procurado criar máquinas que o auxiliem em seus trabalhos, dimi-
nuindo esforços e economizando tempo. Dentre essas máquinas, o computador tem se mostrado uma das mais versáteis,
rápidas e seguras.
O computador é capaz de auxiliar em qualquer coisa que lhe seja solicitada, é consciente, trabalhador e possui
muita energia, mas não tem iniciativa, nenhuma independência, não é criativo e por isso precisa receber informações nos
mínimos detalhes.
A finalidade de um computador é receber, manipular e armazenar dados. Se visto somente como um gabinete
composto por circuitos eletrônicos, cabos e fontes de alimentação, certamente ele não tem utilidade alguma. O computa-
dor só consegue armazenar dados em discos, imprimir relatórios, gerar gráficos, realizar cálculos, entre outras funções,
por meio de programas. Portanto sua tarefa principal é realizar a tarefa de processamento de dados, isto é, receber dados
por um dispositivo de entrada (por exemplo: teclado, mouse, scanner, entre outros), realizar operações com estes dados e
gerar uma resposta que será expressa em um dispositivo de saída (por exemplo: monitor de vídeo, impressora, etc.).

Algoritmos
A palavra algoritmo, à primeira vista, parece-nos estranha. Embora possua designação desconhecida, fazemos uso
constantemente de algoritmos em nosso cotidiano: a maneira como uma pessoa toma banho é um algoritmo. Outros algo-
ritmos freqüentemente encontrados são:
• Instruções para se utilizar um aparelho eletrodoméstico;
• Uma receita para preparo de algum prato;
• Guia de preenchimento para declaração do imposto de renda;
• A maneira como as contas de água, luz e telefone são calculadas mensalmente; etc.
São vários os conceitos para algoritmo. Escolhemos alguns para serem apresentados aqui:
“Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico”
[KNUTH]
“Seqüência ordenada, e não ambígua, de passos que levam à solução de um dado problema”
[TREMBLAY]
“Processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e
sem restrições, as regras formais para a obtenção do resultado ou da solução do problema”
[AURÉLIO]

Por que precisamos de Algoritmos?


Vejamos o que algumas pessoas importantes, para a Ciência da Computação, disseram a respeito de algoritmo:
“A noção de algoritmo é básica para toda a programação de computadores”.
[KNUTH - Professor da Universidade de Stanford, autor da coleção “The art of computer programming”]

Fundamentos da Computação I 2o Semestre / 2006


8
“O conceito central da programação e da ciência da computação é o conceito de algoritmo”.
[WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e responsável pela
criação de linguagens de programação como ALGOL, PASCAL e MODULA-2]
A importância do algoritmo está no fato de termos que especificar uma seqüência de passos lógicos para que o
computador possa executar uma tarefa qualquer, pois o mesmo por si só não tem vontade própria, faz apenas o que man-
damos. Com uma ferramenta algorítmica, podemos conceber uma solução para um dado problema, independendo de uma
linguagem específica e até mesmo do próprio computador.
Características
Todo algoritmo deve apresentar algumas características básicas:
• Ter fim;
• Não dar margem à dupla interpretação (não ambíguo);
• Capacidade de receber dado(s) de entrada do mundo exterior;
• Poder gerar informações de saída para o mundo externo ao do ambiente do algoritmo;
• Ser efetivo (todas as etapas especificadas no algoritmo devem ser alcançáveis em um tempo finito).
A palavra Algoritmo quer dizer operação ou processo de cálculo. Um processo para resolver um dado problema.
Por exemplo: um algoritmo para calcular a soma de dois números informados (digitados) pelo usuário ou algoritmo para a
área de uma esfera em função do seu raio.
Um algoritmo é uma seqüência ordenada e finita de operações bem definidas e eficazes que, quando executadas
por um computador, operando sobre dados caracterizando o estado atual do contexto e o estado desejado, sempre termina
num determinado período de tempo, produzindo uma solução ou indicando que a solução não pode ser obtida.
Algoritmo não é a solução de um problema, pois, se assim fosse, cada problema teria um único algoritmo. Algo-
ritmo é um caminho para a solução de um problema, e em geral, os caminhos que levam a uma solução são muitos.O a-
prendizado de algoritmos não se consegue a não ser através de muitos exercícios.
Algoritmo não se aprende:
- Copiando Algoritmos - Estudando Algoritmos
Algoritmos só se aprendem:
- Construindo Algoritmos - Testando Algoritmos
Etapas para solução de um problema – Elaboração de Algoritmos
1. Entender o problema;
2. Uma solução ou mais para o problema;
3. Um algoritmo que dê a solução projetada no item 2;
4. Escrever um programa;
5. Codificar o programa em alguma linguagem implementada;
6. Testar o programa codificado no item 5: massa de testes e rastreio ou chinezinho.

Construindo um algoritmo em alto nível


Problema:
• Dados três valores positivos, a, b e c, determine a sua média aritmética
• Quais as tarefas a serem executadas para a solução deste problema?

Fundamentos da Computação I 2o Semestre / 2006


9
Solução em alto nível:

1. Obter os valores para a, b e c.


a+b+c
2. Calcular a média aritmética. ma =
3
3. Comunicar os resultados.
4. Terminar.
Estrutura do Algoritmo
algoritmo {nome do algoritmo}
definição das variáveis
atribuição de valores às variáveis
entrada de dados
LÓGICA
Saída de dados
fim-algoritmo.

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

Constantes
Uma informação é dita constante quando não sofre nenhuma alteração de seu valor no decorrer do tempo. Para di-
ferenciar informações constantes de outros tipos de informação, iremos delimitá-la por um par de aspas (‘ ‘).
Por exemplo: ‘5’, ‘Não corra’ , ‘Masculino’, ‘2527’.
Variáveis
Uma informação é classificada como variável quando tem a possibilidade de ser alterado o seu valor em algum
instante do tempo. Por exemplo. A quantidade de funcionários de uma empresa.
O peso e idade de um funcionário.
O computador possui uma área de armazenamento conhecida como memória. Todas as informações existentes no
computador estão ou na memória primária (memória RAM), ou na memória secundária (discos, fitas, CD-ROM etc). Nós
iremos trabalhar, neste ano, somente com a memória primária, especificamente com as informações armazenadas na RAM
(memória de acesso aleatório).
A memória do computador pode ser entendida como uma seqüência finita de caixas, que num dado momento,
guardam algum tipo de informação, como número, uma letra, uma palavra, uma frase etc., não importa, basta saber que lá
sempre existe alguma informação.
O computador, para poder trabalhar como alguma destas informações, precisa saber onde, na memória, o dado es-
tá localizado. Fisicamente, cada caixa, ou cada posição de memória, possui um endereço, ou seja, um número, que indica
onde cada informação está localizada. Este número é representado através da notação hexadecimal, tendo o tamanho de
quatro, ou mais bytes. Abaixo segue alguns exemplos:
Endereço Físico Informação
3000: B712 ‘João’
2000: 12EC 12345
3000: 0004 ‘H’
Como pode ser observado, o endereçamento das posições de memória através de números hexadecimais é perfei-
tamente compreendido pela máquina, mas para nós humanos torna-se uma tarefa complicada. Pensando nisto, as lingua-
gens de computador facilitaram o manuseio, por parte dos usuários, das posições de memória da máquina, permitindo
que, ao invés de trabalhar diretamente com os números hexadecimais, fosse possível dar nomes diferentes a cada posição
de memória. Tais nomes seriam de livre escolha do usuário. Com este recurso, os usuários ficaram livres dos endereços
físicos (números hexadecimais) e passaram a trabalhar com endereços lógicos (nomes dados pelos próprios usuários).
Desta forma, o Exemplo acima, poderia ser alterado para ter o seguinte aspecto:

Fundamentos da Computação I 2o Semestre / 2006


10

Endereço Lógico Informação


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

Tipos Primitivos de Dados


A informação é a matéria-prima que faz com que seja necessária a existência do computador, pois eles são capa-
zes de manipular e armazenar um grande volume de dados com alta performance. Os tipos primitivos de dados são:
Inteiro
Toda e qualquer informação numérica que pertença ao conjunto dos números inteiros (negativa, nula ou positiva). Não
possuem parte decimal. A faixa de valores inteiros possíveis é –32767 a 32768.
Por exemplo: Hoje é dia 15 de fevereiro.
O aluno está cursando a 3 série.
O professor selecionará 2 alunos para monitoria.
Real
Toda e qualquer informação numérica que pertença ao conjunto dos números reais (negativo, nula ou positiva).
Por exemplo: O funcionário receberá R$ 250,30 por mês.
A temperatura está próxima do 37,5 graus.
Caracter
Toda e qualquer informação composta por um conjunto de caracteres alfanuméricos (0..9, a .. z, A..Z) e/ou especiais (por
exemplo: *, $, %, &, #, ?, >,<, !, @). Os números não podem ser utilizados para cálculo.
Por exemplo: O nome do funcionário é Mauro Morais.
A mensagem de retorno é “Cuidado, o micro está doido”.
A placa do carro é GXW 0345
Lógico
Toda e qualquer informação que pode apenas assumir duas situações possíveis (biestável). Verdadeiro ou Falso.
Por exemplo: O funcionário possui dependente.
A lâmpada pode estar acessa ou apagada.

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


Identificador é o nome dado as informações de caracter variável. O identificador segue determinadas regras:
ª Devem começar por um caracter alfabético;
ª Podem ser seguidos por mais caracteres alfabéticos e/ou numéricos, ou pelo caracter sublinhado “_”
ª Não é permitido o uso de caracteres especiais;
Exemplos: IDENTIFICADORE VÁLIDOS: Alpha, Media, X2345, Nome_Aluno, A_10, Curso, Salario,.
IDENTIFICADORES NÃO VÁLIDOS: X-Y, Nota/2, PLRTX**, Nome Aluno, A*B, Salário, @luno.

Fundamentos da Computação I 2o Semestre / 2006


11
Declaração de Variáveis
Para armazenar corretamente os dados na memória é necessário a sua correta declaração: tipo primitivo do dado e
o seu nome. Devemos obedecer a seguinte sintaxe: VAR lista de variáveis : tipo;
Exemplo: VAR X, Y, IDADE, QTFUNCIONARIOS : inteiro;
NOME, ENDERECO, DATA : caracter;
SALARIO, PESO, DOLAR, VALORVENDA : real;
TEMDEPENDENTE, MORAIPATINGA : lógico;

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

Comando de Entrada
O comando de entrada de dados possui a seguinte sintaxe: leia (< variável>);
Exemplo: leia (x);
leia (A, IDADE, NOTA);

Comando de Saída
O comando de saída de dados obedece a seguinte sintaxe: escreva (<variável>) ;
escreva (<constante>) ;
escreva (<expressão>) ;
Exemplo: escreva (Y) ;
escreva (B, IDADE, MEDIA) ;
escreva (“Bom Dia“) ;
escreva (“Você pesa “ , X * 2, “ quilos“) ;

Expressões Aritméticas
Denominamos expressão aritmética aquela cujos operadores são aritméticos e cujos operandos são constantes e/ou
variáveis do tipo numérico (inteiro e /ou real). Os operadores aritméticos são:
+ adição;
- subtração;
* multiplicação;
/ divisão;
SQR (quadrado) potenciação ( SQR(5) é igual a 52= 25)
EXP potenciação geral ( EXP(2,3) é igual a 23 = 8)
SQRT (raiz quadrada) radiciação (SQRT(9) é igual a 3;
MOD (resto da divisão inteira) Exemplo: 9 mod 4 Æ 1
DIV (quociente da divisão inteira) Exemplo: 27 div 5 Æ 5
Devemos obedecer à prioridade entre as operações, conforme a seguir : 1º potenciação, radiciação.
2º multiplicação, divisão.
3º adição, subtração.
Exemplo. Qual é o resultado da expressão abaixo:
10 + 3 * 30 / 9 + SQRT(9) - SQR(2)+2
10 + 90/9 + 3 - 4+2
23 – 6 Î 17

Fundamentos da Computação I 2o Semestre / 2006


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

1) Dar o tipo de cada um dos valores abaixo:


a) 613 e) -3,012 * 1015
b) 613,0 f) 17*1012
c) -613 g) -28,3 * 10 -23
d) ‘613’ h) ‘Fim de Questão’
2) Faça um algoritmo para atribuir os seguintes valores às variáveis:
a) 12345 d) 10
b) 123456 e) ‘João Maria da Silva’
c) -1122
3) No seguinte algoritmo existe algum erro? Onde?
ALGORITMO Teste;
var idade : INTEIRO;
letra : CARACTER;
Inicio
idade := 23;
idade := 678;
idade := letra;
letra := ABC;
letra := ‘A’;
letra := 2;
FIMALGORITMO.
4) Qual a diferença existente nas seguintes atribuições?
a) Letra ← ‘A’ b) Letra ← A
Nome ← ‘João’ Nome ← João
5) Indique qual o resultado será obtido das seguintes expressões:
a) 1 / 2 + 1 MOD 2 d) 3 * 5 +1 +0,25 * 2
b) (200 / 10 ) MOD 4 e) 28 / 7 + 4 - 3 / 6 - 7
c) SQR(5) + 3 * 6 +(19 – 23) / 2

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

O operador “+” caso seja usado entre variáveis do tipo CHAR ou STRING, causará uma ação conhecida por con-
catenação, ou seja, juntar os caracteres ou STRING’s usados na operação em uma só STRING.
Exemplo: ALGORITMO Concatena;
Var Letra1, Letra2 : CARACTER;
Nome1, Nome2, Nome : CADEIA;
Inicio
Letra1 := ‘D’;
Letra2 := ‘a’;
Nome1 := ‘João’;
Nome2 := ‘Silva’;
Nome := Nome1 + Letra1 + Letra2 + Nome2;
FIMALGORITMO.
As instruções acima resultarão no armazenamento do Nome “João Da Silva” na variável rotulada de “Nome”.

Fundamentos da Computação I 2o Semestre / 2006


13

ESTRUTURAS DE CONTROLE – Estrutura Seqüencial


Algoritmos seqüenciais são algoritmos cuja seqüência lógica é realizada passo a passo, sem restrições (ou laços).
Este tipo de algoritmo resolve uma classe de problemas simples:
1º. Ler valores;
2º. Calcular valores;
3º. Escrever resultados;
4º. Parar.
Os algoritmos são iniciados com a palavra algoritmo e terminados com a palavra fim-algoritno. Após a declaração
das variáveis estão os comando que são executados numa seqüência linear, seguindo-se o texto em que estão escritos de
cima para baixo.
algoritmo nome do algoritmo
definição das variáveis
atribuição de valores às variáveis
entrada de dados
LÓGICA
Saída de dados
fim-algoritmo.
Algoritmo
Var A, B : inteiro;
Nome: caracter;
Media : real;
Inicio
escreva(‘Digite o nome do aluno’);
leia(Nome);
escreva(‘Digite a primeira nota’);
leia (A);
escreva(‘Digite a segunda nota’);
leia (B);
Media := (A+B)/2;
Escreva(Media);
fim-algoritmo.

Exemplos – Estrutura Seqüencial

1) Elabore um algoritmo que leia dois números inteiros quaisquer, informados pelo usuário via teclado, e que calcule e
escreva a soma e o produto dos mesmos.
Algoritmo Exerc01;
Var N1, N2, SOMA : inteiro;
PROD : real;
Inicio
Escreva (‘Digite o primeiro número: ’);
Leia (N1);
Escreva (‘Digite o segundo número: ’);
Leia (N2);
SOMA := N1 + N2;
PROD := N1 * N2;
Escreva (‘ A soma dos números é: ’, SOMA);
Escreva (‘ O produto dos números é: ’, PROD);
fim-algoritmo.
2) Elabore um Algoritmo que leia as medidas dos lados A e B de um retângulo qualquer e que calcule e escreva a sua
área..
Algoritmo Exerc02;

Fundamentos da Computação I 2o Semestre / 2006


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

DIAG2 = A2 + B2
DIAG DIAG= SQRT(A2 + B2)

Algoritmo Exerc03;
Var LA , LB, DIAG : real;
Inicio
escreva ( ‘ Digite o valor do lado “A” do retângulo: ’ );
leia ( LA );
escreva ( ‘ Digite o valor do seu lado “B” : ’ );
leia ( LB );
DIAG := SQRT(SQR( LA) + SQR( LB ));
escreva ( ‘ O valor da diagonal do retângulo é: ’ , DIAG );
fim-algoritmo.
4) Elabore um Algoritmo que calcule e escreva o volume de uma esfera de raio R que será informado lado pelo usuário.
Algoritmo Exerc04;
Var R , V : real;
Inicio
escreva (‘Digite o valor do raio: ’);
leia (R);
V := ( 4 / 3 ) * 3.1415 * (SQR(R) * R ) ;
escreva (‘ O valor do volume é : ’ , V );
fim-algoritmo.

Exercícios – Estrutura de Seqüencial


1) Faça um algoritmo para ler a base e a altura de um triângulo e em seguida, calcule e escreva a área do mesmo. Obs.:
Área = ( Base * Altura ) / 2
2) Calcular o perímetro e a área de um quadrado cujo lado é informado pelo usuário. Observação: 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 = L2.
3) Solicitar ao usuário as 4 notas de um aluno. Calcular e escrever a média das notas.
4) Solicitar ao usuário o primeiro valor de uma progressão aritmética de razão 3. Progressão aritmética são somas suces-
sivas. Escrever os 5 primeiros números da seqüência.
5) Solicitar ao usuário o valor inicial de uma progressão geométrica de razão 9. Progressão geométrica são multiplica-
ções sucessivas. Calcular e escrever os 3 primeiros números da seqüência.
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 funcionário, uma ficha contendo: o nome, número de horas trabalhadas e
o nº de dependentes de um funcionário. Considerando que:
a) A empresa paga 12 reais por hora e 40 reais por dependentes.
b) Sobre o salário são feito descontos de 8,5% para o INSS e 5% para IR.
Faça um algoritmo para ler o Nome, número de horas trabalhadas e número de dependentes de um funcionário. Após
a leitura e os devidos cálculos escreva qual o Nome, salário bruto, os valores descontados para cada tipo de imposto e
finalmente qual o salário líquido do funcionário.

Fundamentos da Computação I 2o Semestre / 2006


15
8) O preço de um automóvel é calculado pela soma do preço de fábrica com o preço dos impostos (45% do
preço de fábrica) e a percentagem do revendedor (28% do preço de fábrica). Faça um algoritmo que leia a marca do
automóvel e o preço de fábrica e calcule e escreva seu preço final.
9) Sabendo-se que uma pessoa recebe um salário fixo por mês e que ele tem uma dívida a pagar. Construa um algoritmo
que leia o salário que a pessoa recebe por mês e leia também a dívida que ela possui. Por fim calcule e escreva quanto
vai sobrar do salário dela depois de pagar a dívida.
10) Sabendo que uma turma de amigos deseja assistir a um filme e que o ingresso custa R$ 4,00, construa um algoritmo
que leia o nome do filme que eles irão assistir e o número de pessoas da turma. Com base nestes dados o seu algorit-
mo deve calcular quanto a turma gastará para ir ao cinema. Por fim escreva o nome do filme e o total gasto pela turma
com os ingressos.
11) Sabe-se que o preço do passe escolar é 0,85 centavos. Um motorista de um ônibus deseja adquirir um programa que
leia a quantidade de passageiros que entram no ônibus e que depois calcule e escreva quanto de dinheiro ele terá arre-
cadado. Construa um algoritmo que resolva o problema do motorista, ou seja, leia quantas pessoas entraram no ônibus
e depois calcule e escreva quanto foi arrecadado.
12) Sabendo-se que uma pessoa recebe um salário fixo por mês e que além do salário fixo recebeu uma gratificação por
tempo de serviço. Construa um algoritmo que leia o salário que a pessoa recebe por mês e leia também a gratificação
que ela ganhou. Por fim calcule e escreva quanto ele receberá no total.
13) Construa um algoritmo que leia os dois lados, ou seja, a base e a altura de um retângulo. Utilizando o valor desses
dois lados calcule e escreva:
a. O perímetro desse retângulo;
b. A área desse retângulo. (lembre-se a área é dada pela multiplicação da base pela altura);
c. Valor da diagonal deste retângulo (lembre-se diagonal = SQRT (SQR(base) + SQR(altura));
14) Após a realização de um senso demográfico em uma dada região, descobriu-se que o número de habitante cresceu em
25 %. Construa um algoritmo que leia o número de habitantes que havia na região antes do senso. Calcule qual é a
nova população, conforme aumento citado, e escreva o resultado obtido.
15) Deseja-se cobrir o chão de uma cozinha com pisos de cerâmica. Sabe-se que o formato do chão é de um quadrado,
cuja área é dada por L * L (L é o lado), e sabe-se também que 1 piso cobre 0,3 metros quadrados. Com base nesses
dados calcule e escreva:
♦ A área do chão a ser coberto pelo piso;
♦ O número de pisos gastos para realizar o serviço desejado.

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

1. Assinalar os identificadores inválidos, justificando.

a) A1BC b) ‘XA1D’
c) XA,1d d) 198aberto
e) TO.inicio f) inicio fim
g) n h) X_1
i) A-6 j) #casa

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


A := 0; 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 informações:
a) A identificação da conta bancária (sem dígito) d) Se uma pessoa é casada ou não
b) A altura de uma pessoa em metros e) A cor de um objeto
c) A placa de um veículo f) O estado civil de uma pessoa
4. A ordem das atribuições é importante? A := B e C := A tem o mesmo efeito de C := A e A := B?
Fundamentos da Computação I 2o Semestre / 2006
16
5. Em quais dos seguintes pares é importante a ordem dos comandos?
a) X := Y b) X := Y c) X := Z d) Z := Y
Y := X Z := X X := Y X := Y
6. Sendo as seguintes variáveis: MULT, N, X, tipo real; NOME, COR, DIA, tipo caracter e TESTE, tipo lógico; assina-
le os comandos inválidos e escreva a frente por que o comando é inválido:
a) Leia(‘NOME’); d) MULT * 2 := X – N;
b) MULT := N + 2 * DIA; e) Escreva(‘NOME’);
c) COR := ‘AZUL’; f) TESTE := X + N;
7. Sendo A = 12; B = 5,5; C=2,2 e D=5; observe as expressões e assinale o tipo de cada uma:
I – Inteiro ( )A ( ) ’23 +A ’
R – Real ( )A+B ( ) 23 + A
C – Caracter ( ) ‘C – D’ ( ) (A – B) + C
( ) ‘A’ ( ) ‘A – B’ + ‘C’
8. Elabore um algoritmo que leia a altura de três pessoas e que calcule e escreva a média da altura das pessoas.
9. Para fabricar uma lixeira são necessários 1,35 m de aço inox e 10 rebites. Elabore um algoritmo que leia a quantidade
total de lixeiras que devem ser fabricadas e que informe o total de aço inox e de rebites que serão gastos.
10. Elabore um algoritmo que calcule e escreva o volume de uma lata, sabe-se que: V = 3,1415 * R2 * Altura.
11. Escreva um algoritmo para calcular e exibir a média ponderada de 2 notas. (nota1= peso 6 e nota2= peso 4)
12. Sabe-se que o preço da passagem de ônibus municipal é R$ 1,20 e que todos os estudantes têm um desconto de 25%.
A empresa de ônibus necessita saber ao final de cada trajeto quanto foi arrecadado. Elabore um algoritmo que calcule
e informe o quanto foi arrecadado ao final de cada trajeto.
13. Sabe-se que são necessários 0,2L de tinta para pintar 1m2 de parede. Construa um algoritmo que, com base nas medi-
das de uma parede retangular, escreva a área a ser pintada e a quantidade de tinta necessária para pintar esta parede.
14. Elabore um algoritmo que leia a temperatura em graus Celsius (C) e que calcule-a e escreva-a convertida em graus
Fahrenheit (F). A fórmula de conversão é: F ← (9 * C + 160) / 5.

Fundamentos da Computação I 2o Semestre / 2006


17

ESTRUTURAS DE CONTROLE – Estrutura Condicional


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

Expressões Lógicas
Usamos os operadores relacionais para realizar comparações entre dois valores de mesmo tipo primitivo. Tais va-
lores são representados por constantes, variáveis ou expressões aritméticas.
Os operadores relacionais são: = igual
> maior
< menor
>= maior ou igual
<= menor ou igual
<> diferente
O resultado obtido por uma relação é sempre um valor lógico (V ou F).
Exemplos: a) 2 * 4 = 24/3 V (Verdadeiro)
b) SQRT(64) = SQR(2) * 2 F (Falso)

Operadores Lógicos
Utilizaremos três conectivos básicos para a formação de novas proposições a partir de outras já conhecidas. Os
operadores lógicos são:
E - Conjunção
Ou - Disjunção
não - Negação

AeB

Prioridades
A ou B

Entre operadores lógicos ----------------------------Æ


| não
| e ou

Entre todos os operadores | parênteses mais internos


| funções matemáticas
| operadores aritméticos
| operadores relacionais
| operadores lógicos

Fundamentos da Computação I 2o Semestre / 2006


18

Exercícios de Operadores lógicos e relacionais


1. Indique o resultado lógico das seguintes expressões:
a) (6 < 8) OU (3 > 7)
b) NÃO ( 2 < 3 )
c) SQR(4) – SQRT(9) – 1,5
d) ((10 / 2) MOD 6) > 5 + 1 / 2 + 1 MOD 2
e) (((10 / 2 ) MOD 6 ) > 5 ) OU NÃO( 3 < ( 2 MOD 2 ) )
f) (200 / 10) MOD 4 = 200 / (10 MOD 4)

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


a) 3 = 3.0 d) FALSE = FALSE
b) ' ' = ' ' e) 'JOAQUIM' < 'JOSE'
c) 'CASA' <> 'casa' f) '22' > '200'

Estrutura Condicional Simples


Permite a escolha de um comando a ser executado:
se (condição) então
inicio
comando1;
fim;
Ou permite a escolha de um grupo de comandos a serem executados:
se (condição) então
inicio
comando 1;
comando 2;
.
comando n;
fim;
Veja o exemplo: Obter dois números e calcular a divisão do 1° pelo 2°. Não permitir divisão por zero.
Algoritmo Exemplo1;
Var A, B, Resp: real;
inicio
escreva(‘ ESTE PROGRAMA DIVIDE DOIS NUMEROS E NÃO ACEITA DIVISÃO POR ZERO’);
escreva(‘Informe o número correspondente ao divisor da operação’);
leia(A);
escreva(‘Informe o número correspondente ao dividendo da operação’);
leia(B);
se ( B<>0 ) então
inicio
Resp := A/B;
escreva(A, ‘divido por ‘, B. ‘é igual a:’, Resp);
fim;
fim-algoritmo.

Estrutura Condicional Composta


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

Se (condição) então
inicio
comando1;
fim
Fundamentos da Computação I 2o Semestre / 2006
19
Senão
inicio
comando2;
fim;
ou caso de um grupo de comandos
se (condição) então
inicio
comando 1;
...
comando n;
fim
senão
inicio
comando A;
comando B;
fim;

Exemplos – Estrutura Condicional Simples e Composta


1) Obter dois números inteiros e calcular a divisão do primeiro pelo segundo. Não permitir divisão por zero. Avisar
quando não for possível realizar a divisão.
Algoritmo Exerc1;
Var A, B, Resp: inteiro;
inicio
escreva(‘ ESTE PROGRAMA DIVIDE DOIS NUMEROS E NÃO ACEITA DIVISÃO POR ZERO’);
escreva(‘Informe o número correspondente ao divisor da operação’);
leia(A);
escreva(‘Informe o número correspondente ao dividendo da operação’);
leia(B);
se (B<>0) então
inicio
Resp:= A/B;
escreva(A, ‘divido por ‘, B. ‘é igual a:’, Resp);
fim
senão
inicio
escreva(‘Não é possível realizar a operação’);
fim;
fim-algoritmo.
2) Elabore um Algoritmo que leia o sexo e a altura de uma pessoa e que calcule o seu peso ideal conforme a fórmula
abaixo: Homens: Peso Ideal => (72,7 * Altura) - 58
Mulheres: Peso Ideal => (62,1 * Altura) - 44,7
Algoritmo PesoIdeal;
Var 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 ’ ) então
inicio
PI := ( 72.7 * H ) - 58 ;
fim;
senão
inicio
Fundamentos da Computação I 2o Semestre / 2006
20
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 fórmula
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’ ) então
inicio
PI := ( 72.7 * H ) - 58 ;
escreva ( ‘ O seu peso ideal é : ’ , PI , ‘ Kg .’ );
fim;
senão
inicio
se ( SEXO = ‘f’ ) ou ( SEXO = ‘F’ ) então
inicio
PI := ( 62.1 * H ) - 44.7;
escreva ( ‘ O seu peso ideal é : ’ , PI , ‘ Kg .’ );
fim;
senão
inicio
escreva ( ‘ Sexo Inválido!’ );
fim;
fim;
fim-algoritmo.
4) Elabore um algoritmo que leia quatro notas: N1, N2, N3 e N4 de um aluno e que calcule e escreva a mensagem
“APROVADO” para quem obteve a média maior ou igual a 60, caso contrário, a mensagem deve ser
“REPROVADO”.
Algoritmo Notas;
Var N1 , N2, N3 , N4 ,MEDIA : real;
NOME : caracter;
inicio
escreva ( ‘ Digite a primeira nota do aluno: ’ );
leia ( N1 );
escreva ( ‘ Digite a segunda nota : ’ );
leia ( N2 );
escreva ( ‘ Digite a terceira nota : ’ );
leia ( N3 );
escreva ( ‘ Digite a quarta nota : ’ );
leia ( N4 );
escreva ( ‘ Digite o nome do aluno : ’ );
leia ( NOME );
MEDIA := ( N1+N2+N3+N4 ) / 4 ;
se (MEDIA >= 60) então
inicio
Fundamentos da Computação I 2o Semestre / 2006
21
escreva ( NOME., ‘ Aprovado !!!’ );
fim;
senão
inicio
escreva ( NOME., ‘ Reprovado !!!’ );
fim;
fim-algoritmo.

5) Elabore um algoritmo que leia três números quaisquer NA, NB e NC, e que determine qual dos três é o maior.
Algoritmo Numeros;
var NA , NB , NC: real;
inicio
escreva ( ‘ Digite o primeiro número : ’ );
leia ( NA );
escreva ( ‘ Digite o segundo número: ’ );
leia ( NB );
escreva ( ‘ Digite o terceiro número : ’ );
leia ( NC );
se ( NA > NB ) e ( NA > NC ) então
inicio
escreva (‘ O maior número é: ’ , NA );
fim
senão
inicio
se ( NB > NA ) e ( NB > NC ) então
inicio
escreva ( ‘ O maior número é: ’ , NB );
fim
senão
inicio
escreva ( ‘ O maior número é: ’ , NC );
fim;
fim;
fim-algoritmo.
6) Elabore um Algoritmo que leia os coeficientes A, B e C de uma equação do 2º grau e que calcule e escreva as suas
raízes reais.
var A , B , C ,DELTA ,R1 , R2: real ;
inicio
escreva (‘Digite o número “A”: ’);
leia (A):
escreva (‘Digite o número “B”: ’);
leia (B);
escreva (‘ Digite o número “C”: ’);
leia (C);
DELTA := SQR(B) - 4 *A* C ;
se ( DELTA < 0 ) então
inicio
escreva ( ‘ Não existem raízes reais ’ );
fim;
senão
inicio
se ( DELTA = 0 ) então
início
R1 := - B / ( 2 * A );

Fundamentos da Computação I 2o Semestre / 2006


22
R2 := R1 ;
escreva ( ‘ As raízes iguais e valem : ’ , R1 ,’ e ’, R2 );
fim
senão
início
R1 := ( -B + sqrt( DELTA )) / ( 2 * A );
R2 := ( -B – sqrt( DELTA )) / ( 2 * A );
escreva ( ‘ As raízes são : ’ , R1 ,’ e ’, R2 );
fim ;
fim;
fim-algoritmo.
7) Elabore um Algoritmo que leia dois números quaisquer N1 e N2 e o sinal da operação a ser realizada entre eles e que
calcule e escreva o resultado desta operação.
Algoritmo Operacao;
Var N1 , N2 , R : real;
SINAL : caracter;
inicio
escreva ( ‘ Digite o número 1: ’ );
leia ( N1 );
escreva ( ‘ Digite o número 2: ’ );
leia ( N2 );
escreva ( ‘ Digite o sinal da operação: ’ );
leia ( SINAL );
se ( SINAL = ‘ + ’ ) então
inicio
R := N1+N2 ;
escreva ( ‘ A soma é : ’ , R );
fim
senão
inicio
se ( SINAL = ‘-’ ) então
início
R := N1 - N2 ;
escreva ( ‘ A subtração é : ’ , R );
fim
senão
inicio
se ( SINAL = ‘ * ’ ) então
início
R :=N1 * N2 ;
escreva ( ‘ O produto é : ’ , R );
fim
senão
inicio
se ( SINAL = ‘ / ’ ) então
início
R := N1 / N2 ;
escreva ( ‘ A divisão é : ’ , R );
fim
senão
inicio
escreva ( ‘ Sinal Inválido ’ );
fim;
fim;
fim;
fim;
Fundamentos da Computação I 2o Semestre / 2006
23
fim-algoritmo.

Exercícios – Algoritmos com Estrutura de Decisão


1) Solicitar ao usuário 02 números. Informar o maior entre eles ou se são iguais.
2) Construa um algoritmo que leia três números e calcule e escreva qual deles é o maior e qual deles é o menor.
3) Uma pessoa deseja fazer um empréstimo no banco. Conforme norma do banco, só poderão fazer empréstimos as pes-
soas que tiverem renda superior a 500,00 reais e forem maiores de 21 anos. Construa um algoritmo que leia a renda e
a idade de uma pessoa e informe (escreva) se esta pessoa poderá ou não fazer um empréstimo.
4) Sabe-se que os funcionários de uma empresa receberão uns dias de folga. Porém esta folga será dada em função do
tempo de serviço. Para os funcionários que têm até 3 anos de casa, terá 5 dias de folga. Para funcionários com 4 a 8
anos de casa será dado uma folga de 10 dias. Para funcionários com tempo de casa a partir de 9 anos será dado uma
folga de 15 dias. Construa um algoritmo que seja capaz de ler o tempo de serviço de cada funcionário. Com base nes-
ta informação escreva quantos dias de folga ele tem direito.
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 criança”
Mais de 10, porém menos de 18 (inclusive) Nome da pessoa “é um adolescente”
Mais de 18, porém menos de 26 (inclusive) Nome da pessoa “é um jovem”
Mais de 26, porém menos de 50 (inclusive) Nome da pessoa “é um adulto”
Mais de 50 anos Nome da pessoa “é um idoso”
6) Construa um algoritmo que leia dois números inteiros. Se esses dois números forem positivos, ou seja maior que zero,
calcule e escreva a subtração e a divisão dos mesmos. Casos os dois números sejam negativos, calcule e escreva a
multiplicação e a soma dos mesmos. Caso eles não se enquadrarem em nenhuma dessas situações, faça uma operação
de potenciação do primeiro com o segundo.
7) Construa um algoritmo que leia o nome, o sexo e altura de duas pessoas. Quando a pessoa for do sexo feminino calcu-
le e escreva o dobro da altura desta pessoa. Caso ela seja no sexo masculino calcule e escreva a metade da altura desta
pessoa.
8) Construa um algoritmo que leia o preço de 3 produtos comprados, em seguida leia a forma de pagamento: à vista ou
com um cheque para 30 dias. Peça ao usuário para digitar um (1) quando for comprar à vista e zero (0) quando for dar
um cheque para 30 dias. Calcular e escrever o preço total da compra. Seu algoritmo deverá calcular e escrever tam-
bém o preço final desta compra sabendo-se que para compras à vista tem-se um desconto de 10 % e para compras
com 30 dias no cheque tem-se um aumento de 5%.
9) Construa um algoritmo que leia o nome, a idade, número de dependentes, o salário e o sexo de um funcionário de
uma empresa. Analise cada questão abaixo. Seu algoritmo deverá dar uma solução a cada uma delas, calculando e es-
crevendo o salário obtido:
• Quando o funcionário for homem e possuir número de dependentes acima de 7 seu salário deverá ter um au-
mento de 25%;
• Quando o funcionário for um homem com idade superior a 55 anos seu salário receberá um aumento de 15%;
• Quando o funcionário for uma mulher, com idade superior a 40 anos ou número de dependente acima de 5 de-
verá ter um aumento de 20%;
• Os demais funcionários deverão ter um aumento de 5%;
• Se o usuário informar um sexo inválido seu algoritmo deverá detectar e informar ao usuário
10) Construa um algoritmo que leia o salário e o tempo de serviço de uma pessoa. Quando esta pessoa tiver um salário
menor que 150,00 e tempo de casa inferior a 2 anos lhe será dado 7 dias de folga e um aumento de 10%. Calcule e es-
creva o novo salário e comunique (escreva) a quantidade de dias de folga que terá direito. Quando a pessoa ganhar
mais ou igual a 150,00 e tiver tempo de casa superior a 3 anos lhe será dado 12 dias de folga e um aumento de 8%.
Calcule e escreva o novo salário e comunique (escreva) a quantidade de dias de folga que terá direito. As demais pes-
soas só terão direito a 15 dias de folga, sem qualquer aumento.

Exercícios Revisionais – Estrutura de Decisão


1) Solicitar ao usuário um ano e informar se é bissexto ou não.
Fundamentos da Computação I 2o Semestre / 2006
24
2) Solicitar ao usuário notas de 4 etapas de um aluno. Escreva o total das notas e se o aluno está aprovado ou
não, sabendo que o mínimo para aprovação é 60.
3) Construa um programa que solicite ao usuário o mês em forma numérica (1 a 12) e escreva o número de dias que o
mês digitado tem.
4) Solicitar ao usuário o mês em forma numérica [1 a 12]. Escrever no vídeo o mês por extenso.
5) Solicitar ao usuário o consumo em KW. Calcular o valor a ser pago, sabendo que o valor por KW é R$ 0,10 para con-
sumo mensal abaixo de 80 KW e de R$ 0,07 para consumo mensal a partir de 80 KW.
6) Elabore um algoritmo que leia as 4 notas da disciplina de Fundamentos da computação I e que calcule e escreva a
nota final do aluno e se ele está: APROVADO (nota final >= 70), em PROVA FINAL (nota final entre 40 e 69), ou
REPROVADO (nota final menor que 40).
7) Os alunos de uma escola receberão um desconto na mensalidade em função do número de irmãos que possuem de
acordo com a tabela:
Nenhum irmão Æ Sem desconto
De 1 a 2 irmãos Æ 5%
De 3 a 4 irmãos Æ 10%
Acima de 4 irmãosÆ 15%
Elabore um algoritmo que calcule e informe, a partir da solicitação do usuário do valor da mensalidade, o valor do
desconto e o valor da mensalidade com o desconto.
8) Um clube recreativo decidiu conceder um aumento no valor da mensalidade para seus sócios, conforme a faixa etária
do associado:
De 0 a 12 anos Æ 5%
De 13 a 21 ano Æ 8%
Acima de 21 anos Æ 10%
Elabore um algoritmo, que a partir da solicitação da idade e do valor da mensalidade, calcule e escreva o valor do
aumento e o novo valor da mensalidade a ser pago pelo associado.
9) Elabore um algoritmo que solicite ao usuário o preço unitário do in- Quantidade de Ingressos % Desconto
gresso para um show e quantidade de ingressos. O algoritmo deverá Até 3 0%
4 a 10 10%
calcular e escrever o valor total, o valor do desconto e o valor líquido 11 a 15 15%
conforme o quadro ao lado: 16 ou mais 20%
10) Elabore um algoritmo que leia o nome e o tempo de 2 corredores (em
segundos) e que informe o nome do mais rápido ou se chegaram juntos.
11) Elabore um algoritmo que leia o nome e a nota de dois alunos e que informe qual deles se saiu melhor na prova, ou se
os dois tiveram o mesmo rendimento.
12) Elabore um algoritmo que solicite ao usuário o valor do salário mínimo e o valor do seu salário bruto e que calcule e
escreva o valor descontado do INSS, o valor do descontado do IRRF e o salário líquido. Considerar os descontos con-
forme os quadros abaixo:
INSS IRRF
Quantidade de Salários Percentual Descontos Quantidade de Salários Percentual Descontos
Até 3 sem desconto Até 8 sem desconto
Acima de 3 até 11 8% Acima de 8 até 15 15%
Acima de 11 11% Acima de 15 25%
13) Uma loja que trabalha com xerox, tem a seguinte tabela de preços:
De 1 a 10 cópias..............R$ 0,12
De 11 a 50 cópias............R$ 0,10
Acima de 50 cópias.........R$ 0,08
A partir da solicitação do usuário do número de cópias, calcular e escrever o valor a ser pago.
14) Construa um algoritmo que leia o sexo, nº de dependentes, tempo de trabalho (em anos) e o salário um funcionário de
uma empresa. Construa um algoritmo calcule o aumento recebido e o novo salário do funcionário.
• 20% de aumento → Sexo masculino, tempo de trabalho superior a 10 anos e nº de dependentes a partir de 7
• 10% de aumento Æ Sexo masculino, tempo de trabalho inferior a 10 anos e nº de dependentes inferior a 7
• 15% de aumento Æ Sexo feminino, qualquer tempo de trabalho, qualquer número de dependentes
• 5 % de aumento Æ Os demais funcionários

Fundamentos da Computação I 2o Semestre / 2006


25

15) Elabore uma função que, dada a idade de um nadador, classifique-o em uma das seguintes categorias:
• Infantil A = Até 8 anos
• Infantil B = De 9 até 11 anos
• Juvenil A = De 12 até 14 anos
• Juvenil B = De 15 até 18 anos
• Adulto = De 19 anos acima.
16) Para o programa abaixo identifique as entradas, as saídas e o que o programa faz:
Program Salario;
Uses Crt;
Var SB,SM,VH,INSS,IR,SL,QSM:Real;
NH,ND:Integer;
Begin
ClrScr;
WriteLn('Exemplo Estrutura de Decisão');
WriteLn;
Write('Qual o valor do Salário Mínimo? ');
ReadLn(SM);
WriteLn;
Write('Numero de Dependentes: ');
ReadLn(ND);
Write('Valor por Hora Trabalhada: ');
ReadLn(VH);
Write('Numero de Horas Trabalhadas no Mes: ');
ReadLn(NH);
SB := ND * 35.30 + NH * VH;
WriteLn('Valor do Salário Bruto: ',SB:8:2);
QSM := SB / SM;
WriteLn('Qtde de Salários Mínimos: ',QSM:8:2);
IF QSM <= 7 THEN
INSS := SB * 0.075
ELSE
IF QSM <= 10 THEN
INSS := SB * 0.1
ELSE
INSS := SB * 0.11;
WriteLn('Valor do INSS: ',INSS:8:2);
IF QSM <= 8 THEN
IR := 0
ELSE
IF QSM <= 15 THEN
IR := (SB-INSS-90*ND)*0.15
ELSE
IR := (SB-INSS-90*ND)*0.27;
WriteLn('Valor do IR: ',IR:8:2);
SL := SB - INSS - IR;
WriteLn('Seu Salário Liquido e: ',SL:8:2);
ReadKey;
End.
17) Considere o programa acima, para as entradas listadas a seguir indique quais serão os valores de saída.
a) SM = 300 b) SM = 300 c) SM = 300
ND = 5 ND = 1 ND = 3
VH = 22 VH = 10 VH = 14
NH = 200 NH = 200 NH = 200

Fundamentos da Computação I 2o Semestre / 2006


26

18) Uma loja tem uma promoção que funciona da seguinte maneira: Compras no valor de
¾ até 100 reais terão desconto de 5%
¾ acima de 100 até 250 reais terão desconto de 10%
¾ acima de 250 reais terão desconto de 15%
Elabore um algoritmo que a partir do total da compra informe o valor do desconto dado ao cliente e quanto ele deverá
pagar.
19) Elabore um algoritmo que leia o peso e a altura de um a pessoa e que calcule e informe seu IMC (Índice de Massa
Corporal) conforme a fórmula Î IMC = peso / altura2 E que em seguida informe, de acordo com o valor do IMC, a
Situação da Pessoa Até 20 Magro
Acima de 20 até 25 Normal
Acima de 25 até 30 Sobrepeso
Acima de 30 Obesidade
20) Uma empresa concederá um aumento de salário aos seus funcionários, variável de acordo com o cargo, conforme a
tabela abaixo. Elabore um algoritmo que receba o salário e o cargo de um funcionário e calcule escreva o novo salá-
rio. Se o cargo do funcionário não estiver na tabela, ele deverá, então, receber 40% de aumento.
Cargo Percentual
Gerente 10%
Engenheiro 20%
Técnico 30%
21) Escrever um algoritmos que obtenha as 3 notas de um aluno nas avaliações e a nota de exercícios que fazem parte da
avaliação. Calcular a média de aproveitamento, usando a fórmula: MA = (NotaAval1 + NotaAval2 * 2 + NotaAval3 *
3 + NotaExerc)/7. A atribuição de conceitos obedece a tabela:
Média de Aproveitamento Conceito
>= 9,0 A
>= 7,5 e < 9,0 B
>= 6,0 e < 7,5 C
< 6,0 D
O algoritmo deve escrever a média de aproveitamento, o conceito correspondente e a mensagem: APROVADO se o
conceito for A,B ou C e REPROVADO se o conceito for D.
22) Escreva um algoritmo que recebe os coeficientes a, b e c de um polinômio de segundo grau ax2 + bx + c e determina
quando este polinômio é igual a zero. Tome cuidado para calcular tudo corretamente e avise o usuário se houverem
situações de erro.
23) Faça um algoritmo que recebe um ano e verifica se este ano era bissexto, imprimindo uma mensagem. As regras
(pouco conhecidas) para um ano ser bissexto são:
i.Ele deve ser divisível por quatro.
ii.Se for um ano terminado em 00, deve ser também divisível por 400.
24) Elabore um algoritmo que implemente uma calculadora com as funções de somar, subtrair, multiplicar e dividir. O
programa deverá pedir ao utilizador os dois operandos, e perguntar qual a operação pretendida.
25) Elabore um algoritmo que dadas três temperaturas tiradas numa cidade ao longo do dia, indique qual a máxima e qual
a mínima.
26) Numa empresa, os funcionários são pagos a R$ 25,00/hora. Pretende-se um algoritmo que a partir da leitura do núme-
ro de horas de trabalho de um empregado em cada um dos 5 dias da semana. Considerando os descontos de 15% para
o INSS e 10% de IR, calcule os vencimentos bruto e líquido do funcionário, bem como os respectivos descontos.
27) Elabore um Algoritmo que calcule o vencimento de um funcionário, sabendo que este é calculado adicionando a um
dado vencimento base, as seguintes parcelas:
1% por cada ano de idade superior a 25 anos.
3% por cada ano de casa.
5% por cada filho ou outro dependente.
28) Construa um programa que leia 3 ângulos de um triângulo. Analise esses números conforme as especificações abaixo
e faça o que se pede:
a. Verificar se um deles é um ângulo de 900. Caso isso ocorra esse tiriângulo é um triângulo retângulo. Exiba essa
informação e calcule a soma dos quadrados (p. ex. S= CO2 + CA2). dos catetos desse triângulo. Será necessário
obter o valor do cateto oposto e do cateto adjacente.
Fundamentos da Computação I 2o Semestre / 2006
27
b. Quando não existir nenhum ângulo igual a 90, verificar se pelo menos dois ângulos são iguais. Caso
isso ocorra escreva a soma dos mesmos.
c. Caso não ocorra nenhuma das situações acima calcule a área deste triângulo. Caso necessário solicite mais
dados . Área do triângulo é (base * altura )/2
29) Construa um programa que leia dois números inteiros. Com esses números faça o que se pede:
a. Caso os dois sejam pares calcule e escreva a soma do quadrado desses números (p. ex. S= A2 + B2). Escrever o
resultado.
b. Caso o primeiro número seja par e o segundo impar deverá ser calculado a multiplicação desses números.
Escrever o resultado.
c. Caso o primeiro número seja impar e o segundo par deverá ser calculado a subtração desses números.
d. Em qualquer outra situação deverá ser a soma dos cubos (p. ex. S= A3 + B3). Escrever o resultado.

30) Construa um programa que leia 4 lados de um quadrilátero (figura geométrica de 4 lados). Analise se este quadrilátero
é um retângulo, um quadrado ou penas um quadrilátero sem classificação especial. Caso seja um quadrado calcular e
escrever a área (lado*lado). Caso seja um retângulo calcular e escrever o perímetro (soma de todos os lados). OBS:
considere que a ordem da informação dos lados poderá ser qualquer uma, logo terá que testar todas as possibilidades.
31) Construa um programa que leia o raio de três círculos. Analise esses dados conforme as especificações abaixo e faça o
que se pede:
a. Verificar se os círculos têm o mesmo raio. Caso isso ocorra calcular e
escrever o diâmetro desses círculos. Veja a figura ao lado. Raio
b. Quando os dois primeiros círculos tiverem o mesmo raio e a terceiro tiver
raio diferente desses dois primeiros, calcular e escrever o valor do
perímetro destes 2 primeiros círculos. Perímetro de um círculo é dado por:
Perímetro = π * Diâmetro
c. Caso não ocorra nenhuma das situações acima calcule a área de cada
círculo. A área de um círculo é dada por : Área= π R2 Diâmetro
32) Construa um programa que leia 3 ângulos de um triângulo. Analise esses números conforme as especificações abaixo
e faça o que se pede:
a. Verificar se todos os ângulos são iguais. Caso isso ocorra escreva a soma dos mesmos.
b. Quando eles não forem todos iguais, verificar se um deles é um ângulo de 900. Caso isso ocorra esse triângulo é
um triângulo retângulo. Exiba essa informação.
c. Caso não ocorra nenhuma das situações acima calcule a área deste triângulo. Caso necessário solicite mais dados.
Área do triângulo é (base * altura )/2

Fundamentos da Computação I 2o Semestre / 2006


28
ESTRUTURAS DE CONTROLE – Estrutura de Repetiçã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 solução 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) então
inicio
escreva (‘O aluno foi aprovado’);
fim
senão
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 execução do mesmo permite informar a nota de somente um aluno. Podemos alterá-lo para que com
somente uma chamada ou execução o mesmo possa mostrar o resultado de todos os trinta alunos.
Para isso é necessário utilizarmos uma ESTRUTURA DE REPETIÇÃO, ou seja, uma estrutura de controle do
fluxo lógico que permite executar diversas vezes um mesmo trecho do algoritmo, porém, sempre verificando antes de
cada execução se é "permitido" repetir o mesmo trecho.

Comando de Repetição Enquanto


Para realizar repetições com teste no início, podemos utilizar a estrutura ENQUANTO, que permite que um bloco
de comandos ou uma ação primitiva seja repetida enquanto uma determinada (condição) for verdadeira.
Algoritmo Resultado;
Var NOTA, CONTALUNOS : inteiro;
inicio
enquanto (condição) faça CONTALUNOS := 1; { inicializar com 1}
inicio enquanto (CONTALUNOS < = 30) faça
comando 1; inicio
comando 2; escreva ( ‘ Informe a nota do Aluno: ‘);
comando 3; leia (NOTA);
. se (NOTA >= 60) então
. inicio
comando n; escreva ( ‘ O aluno foi aprovado ‘);
fim-enquanto; fim
senão
inicio
escreva ( ‘O aluno foi reprovado ‘);
fim;
{contar quantos alunos já foram examinados}
CONTALUNOS := CONT ALUNOS + 1;
fim-enquanto;
fim-algoritmo.

Fundamentos da Computação I 2o Semestre / 2006


29
Exemplos de Algoritmos com Estrutura de Repetição

1) Crie um algoritmo que, após sua execução, escreva as seguintes seqüências:


a) 1, 3, 5, 7, ..., 21.
Algoritmo Exemplo_1a;
Var N: inteiro;
inicio
N := 1;
enquanto (N < = 21) faça
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) faça
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) faça
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) faça
inicio
escreva (N);
N := N * 2;
fim-enquanto;
fim-algoritmo.
2) Elabore um algoritmo que exiba na tela os números ímpares de 1 até 100
ALGORITMO Sequencia
Var x : inteiro;
inicio
x := 1;
enquanto (x < 100) faca
Fundamentos da Computação I 2o Semestre / 2006
30
inicio
escreva ( x , ‘_’);
x := x + 2;
fim-enquanto;
fim.algoritmo.
3) Analise os passos abaixo e descreva o que resultará após a execução: X
a) X := 2; x y TEMP 1
Y := 3; 2
2 3 2
TEMP := X; 3
3 2
X := Y; 4
Y := TEMP;
5
b) X := 1; 6
enquanto X <= 10 faça 7
inicio
8
escreva (X);
9
X := X + 1;
fim-enquanto; 10
11 X
c) X := 1; 1 número ímpar
enquanto X <= 10 faça 2 número par
inicio 3 número ímpar
se (MOD(X/2) = 0) então 4 número par
inicio 5 número ímpar
escreva (“Número Par “); 6 número par
fim 7 número ímpar
senão
8 número par
inicio
9 número ímpar
escreva (“Número Ímpar “);
fim; 10 número par
X := X + 1; 11
fim-enquanto;

4) Elabore um Algoritmo que imprima todos os números pares existentes entre N1 e N2, onde N1 e N2 são números
naturais fornecidos pelo usuário.
Algoritmo Exemplo4;
Var N1, N2, N: inteiro;
inicio
escreva (‘ Define os números pares entre dois números informados ‘);
escreva (‘ Digite N1 ‘);
leia (N1);
escreva (‘ Digite N2 ‘);
leia (N2);
N := N1;
enquanto (N<= N2) faça
inicio
se (N mod 2) então
inicio
escreva (N);
fim;
N := N + 1;
fim-enquanto;
fim-algoritmo.
E se o primeiro número (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;
Fundamentos da Computação I 2o Semestre / 2006
31
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) então
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 salário bruto de 50 funcionários. O Algoritmo deverá calcular o salário
líquido (usando a fórmula SALÁRIO-LÍQUIDO = SALÁRIO-BRUTO * 0,80). O Algoritmo deve escrever o nome e
o salário líquido de todos os funcionários que possuem salário líquido superior a R$600,00.
Algoritmo Funcionarios;
Var X: inteiro;
NOME: caracter;
SALB, SALLIQ: real;
inicio
X := 1;
enquanto (X <= 50) faça
inicio
escreva (‘Digite o nome: ‘);
leia (NOME);
escreva (‘Digite o salário bruto: ‘);
leia (SALB);
SALLIQ := SALB * 0.80 ;
se (SALLIQ > 600) então
inicio
escreva (‘O funcionário: ‘, NOME, ‘ tem o salário líquido 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) faça
inicio
escreva ( ‘ O ano ‘, ANO, ‘ é bissexto ‘);
ANO := ANO + 4;
fim-enquanto;
fim-algoritmo.

8) Elabore um algoritmo que leia o nome e a população de 10 cidades e calcule e escreva a população total das cidades.
Algoritmo Cidades;
Var Nome : caracter;
Fundamentos da Computação I 2o Semestre / 2006
32
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 população da ‘, x , ‘ ª cidade’);
leia (Pop);
SomaPop := SomaPop + Pop;
x := x + 1;
fim-enquanto;
escreva ( ‘O população 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 média.
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 média das pessoas é: ’, MediaAlt);
fimalgoritmo.
10) Elabore um algoritmo que leia o sexo e a altura de um grupo de 20 pessoas e calcule a média 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) faça
inicio
escreva (‘Digite SEXO (H, M) : ‘);
leia (SEXO);
escreva (‘ Digite altura : ‘);
leia (ALTURA);
se (SEXO = ‘M’) então
inicio

Fundamentos da Computação I 2o Semestre / 2006


33
CONTM := CONTM + 1;
SOMAALTM := SOMAALTM + ALTURA;
fim
senão
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 não existirem homens ou mulheres para o cálculo?
11) Elabore um algoritmo que leia o sexo e a altura de um grupo de 20 pessoas e calcule a média das alturas dos homens e
das mulheres. Considere a não existência de homens ou mulheres para o cálculo.
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) faça
inicio
escreva (‘Digite SEXO (H, M) : ‘);
leia (SEXO);
escreva (‘ Digite altura : ‘);
leia (ALTURA);
se (SEXO = ‘M’) então
inicio
CONTM := CONTM + 1;
SOMAALTM := SOMAALTM + ALTURA;
fim
senão
inicio
CONTH := CONTH + 1;
SOMAALTH := SOMAALTH + ALTURA;
fim;
X := X + 1;
fim-enquanto;
se (CONTH = 0) então
inicio
escreva (‘ Não ha homens para calculo ‘);
fim
senão
inicio
MEDIAALTH := SOMAALTH / CONTH;
escreva ( ‘ A media de altura dos homens é: ‘, MEDIAALTH);
fim;
se (CONTM = 0) então
Fundamentos da Computação I 2o Semestre / 2006
34
inicio
escreva (‘ Não existe mulheres para calculo ‘);
fim
senão
inicio
MEDIAALTM := SOMAALTM / CONTM;
escreva ( ‘ A media de altura das mulheres é: ‘, MEDIAALTM);
fim;
fim-algoritmo.
12) Foi realizada uma pesquisa de algumas características físicas da população de uma certa região, 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. Faça um Algoritmo que determine e escreva:
• A maior idade dos habitantes;
• O número de indivíduos 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) faça
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) então
inicio
MAIORIDADE := IDADE ;
fim;
se (SEXO = ‘F ’) e (COROLHOS = ‘ V’) e (CORCAB = ‘ P ’) e (IDADE >= 20) e (IDADE <= 40)
então inicio
QTHABCAR := QTHABCAR + 1;
fim;
X := X + 1;
fim-enquanto;
escreva ( ‘ A maior idade é : ‘, MAIORIDADE );
escreva ( ‘ O número de pessoas com a características é: ‘ , 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) faça
inicio
escreva (‘ Digite o número ‘);
leia (NUMERO);

Fundamentos da Computação I 2o Semestre / 2006


35
se (NUMERO > MAIORNUM) então
inicio
MAIORNUM := NUMERO;
fim;
se (NUMERO < MENORNUM) então
inicio
MENORNUM := NUMERO;
fim;
X := X + 1;
fim-enquanto;
escreva ( ‘ O maior número é : ‘, MAIORNUM );
escreva ( ‘ O menor número é: ‘, 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) faça
inicio
escreva (‘ Digite altura ‘);
leia (ALTURA);
se (ALTURA > MAIORALTURA) então
inicio
MAIORALTURA := ALTURA;
fim;
se (ALTURA < MENORALTURA) então
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;
• Média 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;
Fundamentos da Computação I 2o Semestre / 2006
36
SOMAALTG := 0;
enquanto (X <= 100) faça
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’) então
inicio
MAIORALTURA := ALTURA ;
fim;
se (ALTURA < MENORALTM) e (SEXO = ‘ M ’) então
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 (número de identificação, cor, peso) dos 20 bois de um frigorífico e que cal-
cule e escreva:
• O número de identificação e o peso do boi mais gordo;
• O boi preto de maior peso e o seu peso;
• A média 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) faça
inicio
escreva (‘ Digite o numero de identificação: ‘);
leia (NUIDENT);
escreva (‘ Digite a cor: ‘);
leia (COR);

escreva (‘ Digite peso: ‘);


leia (PESO);
SOMAPESO := SOMAPESO + PESO;
se (PESO > PESOGORDO) então
inicio
PESOGORDO := PESO;
NUIDENTGORDO := NUIDENT;
fim;
Fundamentos da Computação I 2o Semestre / 2006
37
se (PESO > PESOGORDO) e (COR = ‘PRETO’) então
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 salário, o número do departamento e o sexo de 1000 funcionários de uma
empresa e que calcule e escreva: o maior salário e o nome do funcionário que o possui; o menor salário e o nome do
funcionário que o possui; a média de salário 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) faça
inicio
escreva (‘ Digite nome : ‘);
leia (NOME);
escreva (‘ Digite salário: ‘);
leia (SALARIO);
escreva (‘ Digite sexo: ‘);
leia (SEXO);
escreva (‘ Digite número do departamento: ‘);
leia (NUDEP);
se (SALARIO > MAIORSAL) então
inicio
MAIORSAL := SALARIO;
NOMEMS := NOME;
fim;
se (SALARIO < MENORSAL) então
inicio
MENORSAL := SALARIO;
NOMEMES := NOME;
fim;
SOMASAL := SOMASAL + SALARIO;

se (SEXO = ‘h’) ou (SEXO = ‘H’) então


inicio
SOMASALH := SOMASALH + SALARIO;
NUFUNCH := NUFUNCH + 1;
fim
senão
inicio
SOMASALM := SOMASALM + SALARIO;
NUFUNCM := NUFUNCM + 1;

Fundamentos da Computação I 2o Semestre / 2006


38
fim;
se (NUDEP = 1) então
inicio
SOMASALDEP1 := SOMASALDEP1 + SALARIO;
NUFUNCDEP1 := NUFUNCDEP1 + 1;
fim;
X := X + 1;
fim-enquanto;
escreva (‘ O maior salário do grupo é: ‘, MAOIRSAL, ‘ do funcionário: ‘, NOMEMS);
escreva (‘ O menor salário é: ‘, MENORSAL, ‘ do funcionário: ‘, NOMEMES);
MEDIASAL := SOMASAL / 1000;
escreva (‘ A média de salário do grupo é: ‘, MEDIASAL);
se (CONTH = 0) então
inicio
escreva (‘Não há homens para cálculo’);
fim
senão
inicio
MEDIASALH := SOMASALH / CONTH;
escreva ( ‘ A média de salário dos homens é: ‘, MEDIASALH);
fim;
se (CONTM = 0) entao
inicio
escreva (‘Não existem mulheres para calculo’);
fim
senao
inicio
MEDIASALM := SOMASALM / CONTM;
escreva ( ‘A média de salário 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 usuário 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) faça


inicio
escreva(‘ Digite o nome: ‘);
leia (NOME);
escreva (‘ Digite a altura: ‘);
leia (ALT);
se (ALT > MAIORALT) então
início
NOMEMALT := NOME;
MEALT := ALT;

Fundamentos da Computação I 2o Semestre / 2006


39
fim;
se (ALT < MEALT) então
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 inválido 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) faça
inicio
escreva(‘ Digite o nome: ‘);
leia (NOME);
se (ALT > MAIORALT) então
início
NOMEMALT := NOME;
MEALT := ALT;
fim;
se (ALT < MEALT) então
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.

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


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;
• média 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 faça
inicio

Fundamentos da Computação I 2o Semestre / 2006


40
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 através do valor -1, que não deve ser considerado.
4) Elabore um algoritmo que leia o nome, o salário, o número do departamento e o sexo de 80 funcionários de uma em-
presa e que calcula e escreva:
a) o maior salário do grupo;
b) a média de salário das mulheres;
c) o menor salário e o nome do funcionário que o possui;
d) a média de salário dos departamentos de número 03 e 04.
5) Elabore um algoritmo que solicite ao usuário o primeiro elemento de uma PA (A1) e a sua razão. 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 média do aluno;
• escreva a mensagem “APROVADO” se a média foi superior a 60 e caso contrário “REPROVADO”;
• escreva a quantidade de notas inferiores a 50 pontos.
7) Elabore um algoritmo que escreva os números: 3,9,27, ......,243.
8) Elabore um algoritmo que escreva os números: 3,6,9, ... , 60.
9) Elabore um algoritmo que solicite ao usuário o sexo e a altura de 30 pessoas e que calcule e escreva o peso ideal de
acordo com a fórmula 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 centígrados em função de graus Fahrenheit que vari-
em de 50 a 150 de 1 em 1. A fórmula é: 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 números.
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 média de altura dos homens;
• a menor altura das mulheres; • quantos homens possuem altura superior a 1,78 m;
• a média de altura de todo o grupo;
13) Elabore um algoritmo que imprima todos os números pares existentes entre 30 e 200.
14) Elabore um algoritmo que leia os dados (número de identificação, cor, peso) dos 20 bois de um frigorífico e que cal-
cule e escreva: • O número de identificação e o peso do boi mais gordo;
• O número de identificação e o peso do boi preto de mais gordo.
15) Elabore um algoritmo que leia o nome e o salário bruto de 50 funcionários. O algoritmo deverá calcular o salário lí-
quido (usando a fórmula SALÁRIO-LÍQUIDO = SALÁRIO-BRUTO * 0,80). O algoritmo deve escrever o nome e o
salário líquido de todos os funcionários que possuem salário líquido superior a R$600,00.
16) Determine os valores X e Y após a execução do algoritmo. Obs: Demonstrar o resultado através de chinezinho.
Algoritmo Calcxy;
Var X, Y, INDICE: inteiro; Valor final de X eY
inicio X = ________
X := 0; Y =_________
Y := 2;
INDICE := 4;
enquanto INDICE <= 10 faça
inicio
X := 3 * Y - 5;
Y := INDICE + 4;
INDICE := INDICE + 1;
fim-enquanto;
escreva (X, Y);

Fundamentos da Computação I 2o Semestre / 2006


41
fim-Algoritmo.
17) Construa um algoritmo que leia o nome, a idade, número de dependentes, o salário e o sexo de 50 funcionários de
uma empresa. Analise cada questão abaixo. Seu algoritmo deverá dar uma solução a cada uma delas:
• Quando o funcionário for homem, com idade acima de 44 e possuir número de dependentes acima de 7 seu sa-
lário deverá ter um aumento de 25%. Calcule e escreva o seu novo salário.
• Quando o funcionário for uma mulher, com idade superior a 40 anos ou número de dependente acima de 5 de-
verá ter um aumento de 20%. Calcule e escreva o seu novo salário.
• Os demais funcionários deverão ter um aumento de 5%;
• Calcule e escreva a média das idades funcionários da empresa.
18) Construa um algoritmo que leia o nome de 20 países, a área territorial e a população de cada um deles. Calcule e es-
creva qual a média populacional dos países que possuem área menor que 8000 metros quadrados. Calcule e escreva
também a soma das áreas de todos os países.
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.

Fundamentos da Computação I 2o Semestre / 2006


42

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


Algoritmo Exemplo;
Var X, Y, NUCHAMADA: inteiro;
inicio
escreva(‘Digite o num. Chamada:’); leia ( NUCHAMADA);
se (NUCHAMADA mod 2 > 2) então X=------------ Y=------
inicio
X := NUCHAMADA;
fim
senão
inicio
X := NUCHAMADA + 1;
Y := NUCHAMADA - 3;
fim;
se (X > 2) então
Inicio
inicio
X := X + 2
fim
senão
inicio
Y := Y - 5;
fim
escreva (‘Os valores de X e Y são: ‘, X, Y);
fim-algoritmo.

21) Analise o programa abaixo e faça o rastreio do mesmo:


N Soma
Algoritmo Exemplo2;
Var N: inteiro;
inicio
Soma:=0;
N:= 1;
enquanto (N<= 500) faça
inicio
escreva(N);
N := N * 5;
Soma:= Soma + N; O que este algoritmo está fazendo?
fim-enquanto;
escreva(Soma );
fim-algoritmo
22) Nas eleições 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 número de eleitores de BH chegam a 300.000, construa um algoritmo que seja capaz
de contar o número de votos que obteve o candidato A e o candidato B. Para isso será necessário 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 números e descubra se eles são todos maiores que 10. O seu algoritmo deverá
analisar os números 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 eleições 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 possuía 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)

Fundamentos da Computação I 2o Semestre / 2006


43
b) Calcule e escreva também qual foi a média 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; d) porcentagem de mulheres do grupo que possuem olhos ver-
b) quantidade de mulheres do grupo; des;
c) maior altura entre as mulheres; e) porcentagem de pessoas com cada uma das cores dos olhos.
28) Durante as olimpíadas uma equipe de 10 atletas disputou uma prova de natação. Sabe-se que : a piscina possui 100
metros de comprimento; o tempo gasto por cada atleta será informado pelo usuário, e que a velocidade é dada pela
fórmula Velocidade= distância 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 médio (média do tempo) gasto pelos nadadores que possuíam mais de 25 anos e peso abaixo de 55 qui-
los
29) Em um campeonato de vôlei de praia estavam disputando o título duas duplas, uma chamada A e a outra B. Sabendo-
se que o número 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á necessário obter do usuário, a pontuação 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) Após esta análise responda se existem mais jovens com 1º ou 2º grau.
31) Analise atentamente o algoritmo abaixo e faça o rastreio do mesmo:
Algoritmo Exerc41;
Var A, B, Id: inteiro; RASTREIO
P: real;
inicio
//é necessário que use valore próximos da realidade
escreva ( ‘Informe sua idade: ’);
leia ( Id );
escreva ( ‘Informe seu peso: ’);
leia ( P );
enquanto (id >=1) e (P<=100) faça
inicio
se ( Id <=16) então
inicio
P := P + Id;
fim
senão
inicio
se ( Id >16) então
inicio
Id := Id - 5;
fim
fim;
PÅ P + 5;
fim-enquanto
escreva ( ‘O valor de P e Id:’ P, Id);
fim-algoritmo.
Fundamentos da Computação I 2o Semestre / 2006
44
32) Construa um algoritmo que leia um conjunto de nomes de pessoas, com seus respectivos sexo e idade.Peça
ao usuário 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 são do sexo masculino.
33) Elabore um algoritmo que leia um conjunto de números inteiros. O último conjunto de dados não válido é aquele que
o número informado é - 4. O algoritmo deve:
a) Determine e escreva a média dos números;
b) Determine e escreva quantos números são pares.
34) Elabore um algoritmo que leia a idade e o sexo de um grupo indeterminado de pessoas. O último conjunto de dados
não válido é aquele que a idade informada é - 1. O algoritmo deverá determinar e escrever:
a) a maior idade entre os homens; c) a média de idade entre as mulheres;
b) a menor idade entre as mulheres; d) a porcentagem de homens do grupo.
35) Um candidato à prefeitura de uma cidade, depois das eleições foi fazer as contas para descobrir quanto havia gasto de
dinheiro em sua campanha. Sabendo que este candidato teve um número indeterminado de despesas e que cada despe-
sa possuía 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 também qual foi a média das despesas;
c) Utilize como condição de parada o valor 0 para a despesa;
36) Construa um algoritmo que leia o nome de um número indeterminado de países e a população de cada um deles. Cal-
cule e escreva qual é a maior população e qual é menor população. Utilize como FLAG (condição de parada) a letra x
para o nome do país.
37) Solicitar ao usuário o tempo gasto na corrida pelos competidores (Flag -1). Exibir no vídeo o tempo gasto pelo vence-
dor e o do que chegou em último lugar.
38) Sabe-se que um número indeterminado de funcionários de uma empresa receberão alguns dias de folga. Porém esta
folga será dada em função do tempo de serviço. Para os funcionários que têm até 3 anos de casa, terá 5 dias de folga.
Para funcionários com 4 a 8 anos de casa será dado uma folga de 10 das. Para funcionários 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 serviço e o nome
de cada um dos funcionários. Com base nesta informação escreva quantos dias de folga ele terá direito. Utilize como
FLAG (condição de parada) a letra X para o nome do funcionário.
39) Construa um algoritmo que leia o nome de um número indeterminado de países e a população de cada um deles. Cal-
cule e escreva qual é a maior população e qual é menor população. Utilize como FLAG (condição de parada) a letra x
para o nome do país.

Referências Bibliográficas

Farrer, Hanrry. Algoritmos Estruturados. Guanabara. Rio de Janeiro, 1986.

Guimarães, Lages. Algoritmos Estruturados.

Wirth, Niklaus. Programação Sistemática. Editora Campus. Rio de Janeiro, 1978.

Saliba, Walter Luiz Caram. Técnicas de Programação - Uma abordagem Estruturada. Editora Makron Books.
São Paulo, 1992.

Forbellone, André Luiz Villar. Lógica de Programação - A construção de Algoritmos e Estruturas de Dados.
Editora Makron Books. São Paulo, 1993.

Fundamentos da Computação I 2o Semestre / 2006

Вам также может понравиться