Upload
user-tiesco
View
209
Download
8
Embed Size (px)
DESCRIPTION
Linguagem C
Citation preview
Universidade de Mogi das Cruzes
ALGORITMOS Estruturas Simples
O professor pode ser excelente, o mtodo de ensino
maravilhoso, mas sem a sua participao caro aluno,
o aprendizado no acontece.
Mogi das Cruzes, SP
2008
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 2/115
AUTORES
A presente apostila est sendo elaborada com a colaborao dos professores da UMC,
que ministram e/ou ministraram as disciplinas Tcnicas de Programao e/ou Algoritmos para
Estruturas Simples e compostas, a saber:
Marcia A. S. Bissaco
Andra Ono Sakai
Cibele Mattos
Marco Antnio Porto Alvarenga
Marco Antnio Sawada (in memorium)
Roberta Panzera
Sebastio Varotto
Viviane Guimares Ribeiro
Para esclarecimento de dvidas, sugestes ou crticas entre em contato atravs do e-mail
[email protected] ou do telefone 4798-7112.
Se tiver interesse de saber um pouquinho sobre mim, veja os anexos.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 3/115
SUMRIO
1. CONCEITOS BSICOS............................................................................................... 5
1.1. LGICA DE PROGRAMAO E ALGORITMOS.............................................. 5
1.2. FORMAS DE REPRESENTAO DE ALGORITMOS ....................................... 6
1.2. 1. Descrio Narrativa................................................................................. 6
1.2. 2. Pseudocdigo.......................................................................................... 7
1.2. 3. Fluxograma............................................................................................. 8
1.2. 4. Diagrama de Chaplin............................................................................. 10
1.2. 5. Transformao do algoritmo em um programa ...................................... 11
1.3. EXERCCIOS PROPOSTOS ............................................................................... 13
1.3. 1. Responda as questes abaixo................................................................. 13
1.3. 2. Elaborao de algoritmos descritivos..................................................... 14
1.3. 3. Transcrevendo algoritmo em fluxograma para pseudocdigo e vice-versa16
2. PROGRAMAO ESTRUTURADA ........................................................................ 22
2.1. INTRODUO ................................................................................................... 22
2.2. TIPOS DE DADOS, VARIVEIS E OPERADORES.......................................... 22
2.2.1. Tipos de dados ........................................................................................ 22
2.2.1.1. Dados numricos inteiros ............................................................ 23
2.2.1.2. Dados numricos reais................................................................. 23
2.2.1.3. Dados literais .............................................................................. 23
2.2.1.4. Dados lgicos.............................................................................. 24
2.2.2. Variveis................................................................................................. 24
2.2.3. Variveis versus alocao de memria .................................................... 25
2.2.4. Operadores.............................................................................................. 28
2.2.4.1. Operador de atribuio ................................................................ 28
2.2.4.2. Operadores aritmticos e funes ................................................ 28
2.2.4.3. Operadores Lgicos..................................................................... 29
2.2.4.4. Operadores relacionais ................................................................ 30
2.2.4.5. Prioridade para execuo das operaes no computador .............. 30
2.2.5. Exerccios propostos ............................................................................... 30
2.3. TCNICA DE PROGRAMAO ESTRUTURADA.......................................... 35
2.3. 1. Estrutura Seqencial.............................................................................. 35
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 4/115
2.3.1.1. Sintaxe ....................................................................................... 35
2.3.1.2. Exemplos ................................................................................... 35
2.3.1.3. Exerccios propostos................................................................... 42
2.3.2. Estrutura Condicional.............................................................................. 50
2.3.2.1. Sintaxe ....................................................................................... 50
2.3.2.2. Exemplos ................................................................................... 54
2.3.2.3. Exerccios propostos................................................................... 63
2.3.3. Estrutura Repetio................................................................................ 68
2.3.3.1. Sintaxe ....................................................................................... 68
2.3.3.2. Exemplos ................................................................................... 70
2.3.3.3. Exerccios propostos................................................................... 75
2.4. EXERCCIOS PROPOSTOS COMPLEMENTARES .......................................... 84
2.5. RESUMO........................................................................................................... 106
REFERNCIAS BIBLIOGRFICAS........................................................................... 111
ANEXOS...................................................................................................................... 112
A.1. Como ser reprovado em Algoritmos e/ou Laboratrio de Programao.............. 112
A.2. Sobre o autor ..................................................................................................... 114
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 5/115
1. CONCEITOS BSICOS
Programar basicamente construir algoritmos.
1.1. LGICA DE PROGRAMAO E ALGORITMOS
Qualquer problema solucionado seguindo um ou mais caminhos. Para isto, usa-se a
lgica, ou seja, raciocnios coerentes que conduzem a solues eficazes para o problema. Por
exemplo:
1. A gaveta est fechada.
2. A caneta est dentro da gaveta.
3. Portanto, primeiro preciso abrir a gaveta para depois pegar a caneta.
Quando o problema a ser solucionado de processamento de dados (computador),
necessrio usar a lgica de maneira formal, ou seja, adequar os raciocnios a simbolizao usada
na programao, de modo a obter o resultado do que deseja programar com qualidade. Neste
caso, usamos a expresso lgica de programao, que representada por algoritmos.
Os algoritmos fazem parte da nossa vida diria, constantemente estamos fazendo uso
dele. Alguns exemplos so:
Indicaes dadas para se chegar at uma determinada rua;
Um receita culinria;
Uma planta serve ao mesmo propsito num projeto de construo;
Instrues para o uso de medicamentos, equipamentos;
Indicaes de como montar um aparelho.
Algoritmos so, portanto, uma seqncia ordenada e sem ambigidade de passos
executveis (ou seja, instrues/aes), precisamente definidos, que manipulam um conjunto de
dados a fim de resolver um dado problema.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 6/115
1.2. FORMAS DE REPRESENTAO DE ALGORITMOS
Um algoritmo deve possuir aes bem definidas de modo a no dar margem dupla
interpretao. Ele parte de um ponto inicial, passando pelas aes at alcanar o resultado final.
No importando a representao a ser escolhida, para solucionar o problema devem ser
empregadas corretamente as leis do pensamento para obter o resultado esperado.
Um algoritmo pode ser representado atravs de descrio narrativa, fluxograma,
pseudocdigo e diagrama de chaplin, formas de represetao descritas nos itens seguintes.
1.2. 1. Descrio Narrativa
Nesta forma de representao, os algoritmos so expressos diretamente em Linguagem
Natural. Por exemplo, observe a soluo dos problemas apresentados abaixo referente troca de
uma lmpada velha e ao clculo da mdia aritmtica de duas notas.
ALG01 Trocar uma lmpada velha
1. Pegar uma escada; 2. Posicionar a escada embaixo da lmpada; 3. Buscar uma lmpada nova; 4. Subir na escada; 5. Retirar a lmpada velha; 6. Colocar a lmpada nova.
ALG02 Calcular a mdia aritmtica de um aluno
1. Pegar as notas N1 e N2; 2. Calcular a mdia aritmtica (M (N1 + N2)/2); 3. Mostrar o resultado;
A Linguagem Natural muitas vezes PROLIXA (cansativa, longa, irritante) e
IMPRECISA, podendo ocasionar problemas, tais como:
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 7/115
M interpretao;
Perda de informao;
Dificuldade de se transmitir a informao desejada.
Por exemplo, descreva um caminho para sair de onde voc est no momento e ir at a
estao do metr Tiete em So Paulo.
1.2. 2. Pseudocdigo
Nesta forma de representao, os algoritmos so expressos numa linguagem simplificada,
tambm conhecida por portugol ou portugus estruturado.
No momento do desenvolvimento de um algoritmo, preciso saber quais dados sero
recebidos do mundo externo e tambm quais informaes exteriorizar. No interessa, portanto,
saber se os dados entraro via teclado, pela leitura de um arquivo de dados ou por qualquer outro
meio. Para dar entrada ou sada nesses dados, so utilizados os verbos LER, ESCREVER e
IMPRIMIR. O comando ler (ou leia) espera receber um determinado dado (sem importar a
origem). O comando escrever (ou escreva) mostra a informao produzida no vdeo. O comando
imprimir (ou imprima) faz a impresso em papel da informao produzida. A sintaxe dos
comandos :
leia (varivel1, varivel2, ... , varivel n);
escreva (lista de constantes, variveis e/ou expresses );
imprima (lista de constantes, variveis e/ou expresses );
Exemplos:
Leia (numero1);
numero2 numero1 * 2;
escreva (O dobro do nmero , numero2);
imprima (O triplo do nmero , numero1 * 3);
A seguir so apresentados os algoritmos ALG01 e ALG02, que ilustram uma soluo
para a troca de lmpada velha e para o clculo da mdia aritmtica de um aluno,
respectivamente.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 8/115
ALG01 Pseudocdigo do algoritmo para trocar uma lmpada velha
Algoritmo Troca_lmpada; Incio Escreva (Pegar uma escada); Escreva (Posicionar a escada embaixo da lmpada); Escreva (Buscar uma lmpada nova); Escreva (Subir na escada); Escreva (Retirar a lmpada velha); Escreva (Colocar a lmpada nova). Fim
ALG02 Pseudocdigo do algoritmo que calculaa mdia aritmtica de duas notas
Algoritmo CalcMedia; Var N1, N2, M : Numrico; Incio Leia (N1, N2); M (N1 + N2)/2); Escreva (M); Fim.
Note que ambos os algoritmos comeam e terminam com as palavras Algoritmo, incio e
fim, sendo que a palavra algoritmo seguida de um identificador, que corresponde a um nome
representativo do problema a ser solucionado. Em ALG02 tem tambm as palavras chaves Var e
Numrico, que so utilizadas para declarao de variveis e seus tipos de dados que fazerm
parte da soluo do problema. Estas sero esclarecidas mais a frente. Por enquanto, importante
saber que estas palavras chaves compem a sintaxe do pseudocdigo.
1.2. 3. Fluxograma
Nesta forma de representao, os algoritmos so expressos numa linguagem grfica,
sendo que algumas das formas geomtricas que simbolizam algumas das aes mais realizadas
so:
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 9/115
Descrio Representao grfica Descrio Representao grfica
Inicio/Fim
Processamento
Entrada de dados
Deciso
Sada de dados
Repetio
Conectores
Direo do fluxo
Veja a soluo dos problemas da troca da lmpada velha e do clculo da mdia utilizando
o fluxograma.
ALG01 - Trocar uma lmpada velha
inicio
fim
Pegar uma escada; Posicionar a escada embaixo da lmpada;
Buscar uma lmpada nova; Subir na escada;
Retirar a lmpada velha; Colocar a lmpada nova;
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 10/115
ALG02 Calcular a mdia aritmtica
{Incio do algoritmo}
{Entrada de dados, isto , das notas N1 e N2}
{Processamento, isto , clculo da mdia}
{Sada de dados: mostrando resultado}
{Fim do algoritmo}
O fluxograma tambm conhecido pelos profissionais da rea de Tecnologia da
Informao de diagrama de blocos, embora tenham sigificados diferentes.
1.2. 4. Diagrama de Chaplin
Nesta forma de representao, os algoritmos so expressos num diagrama de quadros,
que apresenta uma viso hierrquica e estruturada da lgica do programa. Tem um ponto de
entrada e um ponto de sada e composto pelas estruturas bsicas: seqncia, seleo e
repetio. Veja o exemplo a seguir.
ALG02 Diagrama de chaplin do algoritmo que calcula a mdia aritmtica de duas notas e mostra mensagem Aprovado ou Reprovado
Incio
Fim
N1, N2
M (N1 + N2)/2
M
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 11/115
1.2. 5. Transformao do algoritmo em um programa
Quando o verbo programar mencionado, imediatamente vem mente a palavra
programa (ou software), que na realidade consiste num algoritmo traduzido para uma forma
inteligvel para o computador.
Quem realiza essa traduo um outro programa denominado Linguagem de
Programao, tal como Pascal, Delphi, Visual Basic, C, etc. A funo bsica da Linguagem de
Programao converter um cdigo-fonte, isto , o algoritmo escrito numa sintaxe
compreensvel pelo programador para a Linguagem de Mquina ou Linguagem Binria.
Assim sendo, programa uma combinao de algoritmo mais linguagem de
programao, sendo que para elaborar o algorimto necessrio pensar de forma lgica para
solucionar o problema real que se apresenta (Figura 1).
Figura 1 - Esquema algoritmo-programa
Os programadores devem iniciar o desenvolvimento de um programa elaborando antes o
fluxograma ou pseudocdigo a fim de demonstrar a linha de raciocnio lgico para resoluo do
problema, isto , para estabelecer a seqncia de operaes a ser realizada pelo programa
desejado1.
A codificao do algoritmo pode ser realizada em qualquer Linguagem de Programao.
Lembrando que estas apresentam sintaxes diferentes, mas so similares em muitas outras
particularidades, como por exemplo, o paradigma de programao empregado (programao
estruturada, orientada a eventos ou orientada a objetos). A seguir so apresentadas as
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 12/115
implementaes em PASCAL dos algoritmos ALG01 e ALG02, mencionado o que exibido no
monitor quando cada uma das linhas de cdigo executada pelo computador.
ALG01 Codificao em PASCAL do problema da troca da lmpada
Aparece no monitor durante execuo do programa
Program Troca_lampada; Uses WinCrt; Begin writeln (Pegar uma escada;); writeln (Posicionar a escada embaixo da
lmpada; ); writeln (Buscar uma lmpada nova; ); writeln (Subir na escada; ); writeln (Retirar a lmpada velha; ); writeln (Colocar a lmpada nova.); End.
Nada Nada Nada Pegar uma escada; Posicionar a escada embaixo da lmpada; Buscar uma lmpada nova; Subir na escada; Retirar a lmpada velha; Colocar a lmpada nova. Nada
ALG02 Codificao em PASCAL do clculo da mdia aritmtica de 2 notas
Aparece no monitor durante execuo do programa
Program CalcMedia; Uses WinCrt; Var N1, N2, M : real; Begin Writeln (Digite Nota 1:); Readln (N1); Writeln (Digite Nota 2:); Readln (N2); M := (N1 + N2)/2); Writeln (A mdia = , M:5:2); End.
Nada Nada Nada Nada Nada Digite Nota 1: Digite Nota 2 Nada Nada Nada Nada
Os programas geralmente tm uma estrutura padro que consiste em: Entrada
Processamento Sada. Os dados necessrios resoluo do problema so entrados via teclado
e armazenados na memria do computador em posies denominadas de varivel. O
processamento realizado pela Unidade Lgica e Aritmtica (ULA) e a sada de dados
processados (informaes/valores calculados) ocorre atravs do monitor.
Para desenvolver um programa com entrada, processamento e sada, importante
responder as seguintes perguntas durante a elaborao do algoritmo: O que tenho? O que quero?
Como fazer?
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 13/115
1.3. EXERCCIOS PROPOSTOS
1.3. 1. Responda as questes abaixo
a. O que lgica de programao?
b. O que algoritmo?
c. Como os algoritmos podem ser representados?
d. O que descrio narrativa?
e. D um exemplo de algoritmo representado em descrio narrativa.
f. Qual a desvantagem de se utilizar a descrio narrativa para representar os algoritmos?
g. O que pseudocdigo?
h. D um exemplo de pseudocdigo.
i. O que fluxograma?
j. D um exemplo de utilizao do fluxograma.
k. Fale sobre o diagrama de Chaplin.
l. D exemplo de um algoritmo representado pelo diagrama de Chaplin.
m. Como se transforma um algoritmo num programa?
n. O que linguagem de programao?
o. O que um programa?
p. Como os programadores devem proceder para desenvolver um programa?
q. Como pode ser realizada a codificao de algoritmo para transforma-lo num programa de
computador?
r. Exemplifique a codificao do algoritmo da troca de lmpada velha em PASCAL.
s. Exemplifique a codificao do algoritmo do clculo da mdia em PASCAL.
t. Qual a estrutura bsica de um programa?
u. Durante a fase de elaborao do algoritmo, que perguntas devem ser respondidas?
v. Onde ocorre o processamento dos dados dentro do computador?
w. Como so entrados no computador os dados necessrios resoluo do problema?
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 14/115
x. Cite alguns dispositivos utilizados para entrar dados na memria do computador.
y. Cite alguns dispositivos utilizados para sada das informaes no computador.
z. O que memria?
aa. Coloque falso (F) ou verdadeiro (V)
( ) Programadores no devem iniciar o desenvolvimento de um programa elaborando antes o fluxograma ou o pseudocdigo
( ) Fluxograma ou pseudocdigo so construdos a fim de demonstrar a linha de raciocnio lgico para resoluo do problema
( ) Pascal, Java, Delphi, C e Windows so linguagens de programao ( ) O algoritmo pode ser codificado em qualquer Linguagem de Programao ( ) Os dados necessrios resoluo do problema no so entrados via teclado ( ) Os dados so armazenados na memria do computador em posies denominadas de
varivel.
1.3. 2. Elaborao de algoritmos descritivos
Elabore algoritmos descritivos para ensinar uma pessoa totalmente leiga a realizar as
seguintes tarefas:
1) Chupar bala;
2) Estourar pipoca numa panela usando o fogo.
3) Trocar uma lmpada queimada que est no teto, supondo que temos uma escada com
altura suficiente e uma caixa com lmpadas de diferentes potncias.
4) Estourar pipoca numa panela usando o fogo, utilizando somente os verbos acender,
colocar, desligar e misturar, bem como usar somente os objetos panela, tigela, fogo, sal,
milho de pipoca, pipoca e manteiga.
5) Trocar a lmpada queimada empregando somente os verbos colocar, descer, escolher,
girar e subir. Alm disso, usar tambm apenas os objetos escada, lmpada queimada,
lmpada nova, soquete.
6) Colocar exatamente 4 litros de gua num garrafo que tem capacidade para 5 litros. Pode-
se usar tambm outro garrafo com capacidade de 3 litros e a fonte de gua a vontade.
7) Atravessar trs jesutas e trs canibais para o outro lado de um rio. Para isso, h um barco
com capacidade para duas pessoas. Por medidas de segurana, no se deve permitir que
em alguma margem a quantidade de jesutas seja inferior dos canibais. Qual a soluo
para efetuar a travessia com segurana? Elabore um algoritmo mostrando a resposta,
indicando as aes que concretizam a soluo deste problema.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 15/115
8) Solucionar o problema da Torre de Hani, que envolve um ambiente formado por uma
base com 3 pinos (pA, pB e pC). No pino pA h uma pilha de 3 discos furados com
dimetros diferentes (dP, dM e dG), ordenados de tal forma que o disco maior (dG) est
em baixo e o menor (dP) em cima, formando assim uma torre conforme a figura a seguir:
Figura 2 - Ambiente da Torre de Hani.
O problema consiste em transferir-se a torre do pino pA para o pino pC
obedecendo as seguintes restries:
a) S possvel movimentar um disco por vez para qualquer pino;
b) Um disco maior nunca poder ser colocado sobre um menor;
c) A soluo dever ser encontrada com o menor nmero de passos possvel.
9) Mostrar os passos necessrios para trocar um pneu furado, considerando as seguintes
situaes:
a) Trocar o pneu traseiro esquerdo;
b) Trocar o pneu traseiro esquerdo e, antes, verificar se o pneu reserva est em
condies de uso;
c) Verificar se existe algum pneu furado, se houver verificar o pneu reserva e, ento,
trocar o pneu correto.
Tome como exemplo os algoritmos desenvolvidos para solucionar o problema da troca de
lmpadas. Para cada algoritmo faa um refinamento do anterior, introduzindo novas
aes e alterando o fluxo de execuo de forma compatvel com as situaes
apresentadas.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 16/115
1.3. 3. Transcrevendo algoritmo em fluxograma para pseudocdigo e vice-versa
Fluxograma Pseudocdigo
Programa ALG03; Inicio Escreva (Meu primeiro programa); Fim.
Inicio
Fim
Estou aprendendo
a
desenvolver algoritmos
Inicio
10
Fim
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 17/115
Fluxograma Pseudocdigo
Programa ALG06; Var x: Inteiro; Inicio x 10; Fim.
Programa ALG07; Var y: Inteiro; Inicio y 10; Escreva(y); Fim.
Inicio
Fim
y 10
y = , y
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 18/115
Fluxograma Pseudocdigo
Programa ALG10; Var N1,N2: Inteiro; Inicio N1 2; N2 3; Escreva (N1 = , N1, N2 = ,N2); Fim.
Inicio
N1 = , N1
N2 = , N2
N1 2
N2 3
Fim
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 19/115
Fluxograma Pseudocdigo
Programa ALG11; Var a: Inteiro; b: Real; nome:caracter; teste:lgico; Inicio a 1; b 1.25; nome Maria; teste verdadeiro; Escreva (a); Escreva (b); Escreva (nome); Escreva (teste); Fim.
Programa ALG13; Var a,b,soma: Inteiro; Inicio a 15; b 3; soma a + b; Escreva ( Soma = , soma); Fim.
Inicio
Fim
a 15;
b 3;
Soma = , a + b
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 20/115
Fluxograma Pseudocdigo
Programa ALG14; Var letra:caracter; Inicio letra A; Escreva(letra); Fim.
Programa ALG15; Var n:real; Inicio Escreva (Digite um nmero real:); Leia (n); Escreva (n); Fim.
Programa ALG16; Var num1,num2:real; Inicio Escreva(Digite dois nmeros reais:); Leia(num1,num2); Escreva(Primeiro numero = ,num1); Escreva(Segundo numero = ,num2); Fim.
Inicio
Fim
Digite um nmero real
n
Nn
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 21/115
Fluxograma Pseudocdigo
Inicio
Fim
Digite o primeiro nmero
Digite o segundo nmero
num1
2o = , num2
1 = , num1
num2
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 22/115
2. PROGRAMAO ESTRUTURADA
Algoritmos s se aprende fazendo.
2.1. INTRODUO
Segundo alguns especialistas, qualquer programa de computador pode ser escrito
utilizando apenas trs estruturas bsicas: Seqncia, Condio e Repetio. Isto significa que, na
construo de um algoritmo, deve ser criado um fluxo de aes a ser executado seqencialmente,
ou seja, de cima para baixo e da esquerda para a direita.
Antes, porm, necessrio fazer as seguintes perguntas: quais dados sero utilizados para
solucionar o problema? De que tipo eles so (inteiro, real, literal ou lgico)? Qual o tamanho
desses dados?
Portanto, nos itens seguintes so abordados descrio e exemplos a respeito de tipos de
dados e demais assuntos relacionados. So tambm apresentados exemplos de utilizao das
estruturas bsicas e uma lista de exerccios para fixao dos conceitos.
2.2. TIPOS DE DADOS, VARIVEIS E OPERADORES
Uma relao dos tipos de dados, dos operadores de atribuio, aritmticos, lgicos e
relacionais que podem ser utilizados pelo computador bem como o conceito de varivel so
mostrados a seguir.
2.2.1. Tipos de dados
Uma informao manipulada pelo computador pode ser classificada como instrues ou
dados. Sendo que, uma instruo comanda o funcionamento da mquina e determina como
devem ser tratados dos dados. E os dados, correspondem poro das informaes a serem
processadas pelo computador. Os tipos de dados manipulados pelo computador so trs:
Dados numricos
Dados literais
Dados lgicos
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 23/115
Recordando:
Conjunto dos nmeros naturais (N)
N = { 1, 2, 3, 4, ...}
Conjunto dos nmeros inteiros (Z)
Z = {..., -3, -2, -1, 0, 1, 2, 3, ... }
Conjunto dos nmeros fracionrios (Q)
Q = { p/q | p, q pertencem a Z}
Conjunto dos nmeros reais (R) formado pela unio do conjunto Q.
2.2.1.1. Dados numricos inteiros
Este tipo de dados so nmeros pertencentes ao conjunto dos nmeros inteiros (Z).
Podendo assumir valores negativos, nulo e positivos. Exemplos:
24 nmero inteiro positivo
0 nmero inteiro
-12 nmero inteiro negativo
2.2.1.2. Dados numricos reais
Este tipo de dados so nmeros pertencentes ao conjunto dos nmeros fracionrios (Q).
Podendo assumir valores negativos, nulos e positivos. Exemplos:
24.01 nmero real positivo com duas casas decimais.
144 nmero real positivo com zero casas decimais.
-13.3 nmero real negativo com uma casa decimal.
0 nmero real com zero casas decimais.
2.2.1.3. Dados literais
Este tipo de dados so caracteres tais como: letras, dgitos e/ou smbolos especiais.
Podem ser chamados tambm como: dados alfanumricos, cadeias de caracteres ou
string. No algoritmo, estes dados so delimitados pelo apostrofo (cadeia de caracteres).
Exemplos:
qual ? - literal de comprimento 6.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 24/115
- literal de comprimento 1.
1-2+3= - literal de comprimento 6.
AbCdeF - literal de comprimento 7.
0 - literal de comprimento 1.
2.2.1.4. Dados lgicos
Estes tipos de dados so chamados de booleanos. Eles representam dados lgicos com
Verdadeiro e falso. Nos algoritmo seus valores so delimitados pelo ponto (.V.). Exemplos:
.V. valor lgico verdadeiro
.F. valor lgico falso
2.2.2. Variveis
Varivel um nome (rtulo) dado a uma parte da memria, cujo contedo (valor) pode
ser alterado durante a execuo do programa. Embora seja possvel alterar o valor armazenado
na memria (na varivel), possvel armazenar s um valor de cada vez. A varivel composta
de dois elementos bsicos: a) contedo valor atual da varivel e b) identificador nome dado
varivel.
O identificador deve obrigatoriamente iniciar com uma letra e os caracteres seguintes
com letras ou nmeros. Exemplos:
A 5 (O valor 5 armazenado na varivel A)
B 6 (O valor 6 armazenado na varivel B)
C A+B (O valor que est em A somado ao valor em B, e o resultado armazenado
na varivel C.)
Vale lembrar que quando um valor armazenado numa varivel, o valor antigo ser
perdido.
Identificadores permitidos: A, Nome, N1 e S2N. Identificadores no permitidos: 2N, A
B, N[1], A*2
Todas as variveis usadas em um algoritmo (pseudocdigo) devem ser declaradas antes
de serem usadas. Isto faz necessrio para permitir a reserva de espao na memria.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 25/115
Sintaxe da declarao:
Var
: ;
Regras:
A palavra Var deve aparecer uma nica vez;
Para um mesmo tipo de dado, podem ser listadas vrias variveis (seus nomes devem
ser separados por vrgula);
Variveis de tipos diferentes devem ser declaradas em linhas diferentes.
Exemplos:
Var
nome,endereo: caracter;
idade:inteiro;
salrio:real;
tem_filhos:lgico;
2.2.3. Variveis versus alocao de memria
O particionamento da memria para armazenamento de dados realizado aps anlise do
problema a ser resolvido. necessrio responder as seguintes perguntas:
Qual o problema a resolver?
Quais os dados devem ser armazenados?
Que tipo dado a ser utilizado?
Qual o tamanho dos dados a serem utilizados?
Como resolver o problema?
Digamos que o problema a ser resolvido : somar dois nmeros quaiquer, tais como:
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 26/115
Neste caso, os dados que devem ser armazenados, considerando os valores 2 e 3, so:
Onde 2 o Primeiro nmero escolhido, 3 o Segundo nmero escolhido e 5 o Resultado, ou
seja, o total da soma dos dois nmeros. Ento, posso rotular as partes da memria do
computador, onde os valores 2, 3 e 5 sero armazenados, como sendo Primeiro, Segundo e
Resultado respectivamente.
Estas partes de memria podem receber tambm outros valores tais como: 4, 4 e 8; 289,
97 e 386; 232, 1 e 233; 398, 0 e 398; e etc. Estas partes da memria so, portanto, chamadas de
variveis e sempre que um novo valor for colocado nelas, o contedo anterior perdido ou
sobrescrito.
No exemplo acima, pode-se concluir que os dados so do tipo inteiro.
Portanto, a poro de memria a ser reservada para as variveis rotuladas (Primeiro,
Segundo e Resultado) ter um dimensionamento apropriado para o tipo inteiro.
A memria do computador pode ser particionada para armazenar dados de outros tipos
tambm, tais como dados do tipo real, literal e lgico. A diferena destes tipos de dados consiste
apenas no tamanho da poro de memria a ser reservada, como ilustra tabela a seguir.
TIPO DE DADO TAMANHO Inteiro 2 bytes Literal [1] (1 caracter) 1 byte Real 4 bytes Lgico 1 byte
Lembrando: 1 byte = 8 bits; 1 bit pode assumir apenas um de dois valores (0 ou 1).
Cada tipo de dado pode assumir de um valor mnimo a um valor mximo, como mostra a
tabela abaixo:
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 27/115
Relembrando o exemplo da soma dos dois nmeros, se os nmeros a serem somados
esto dentro da seguinte faixa de valores:
Ento, a poro de memria a ser reservada se enquadra no tipo inteiro.
importante ressaltar tambm que o processo de rotular as partes da memria com nomes, isenta o programador de conhecer os endereos da memria expressos em hexadecimal.
A figura a seguir ilustra o particionamento da memria (a numerao hexadecimal foi substituda
pela decimal apenas para facilitar o entendimento).
Figura 3 - Esquema de memria
Voltando ao problema da soma de dois nmeros, pode-se agora responder a ltima pergunta Como resolver o problema?. A resposta : definir variveis e ....
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 28/115
A figura a seguir ilustra todo o processo.
Figura 4 - Variveis versus mapeamento de memria
2.2.4. Operadores
2.2.4.1. Operador de atribuio
O operador de atribuio () usado para fornecer um valor a uma dada varivel.
Exemplificando:
A 5 (Atribuindo o valor 5 varivel A)
B A (Atribuindo o valor da varivel A, valor igual a 5, varivel B)
A B + C (Atribuindo o valor da soma dos valores nas variveis B e C varivel C)
2.2.4.2. Operadores aritmticos e funes
Para realizar clculos matemticos necessrio saber qual a representao dos smbolos
de operaes matemticas, a saber:
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 29/115
Operador Operao Exemplo + Adio 2 + 5 = 7
- Subtrao 20 10 = 10
* Multiplicao 3 * 5 = 15
/ Diviso (onde o resultado ser um nmero real) 5 / 2 = 2,5
DIV Diviso (onde o resultado ser um nmero inteiro) 10 div 2 = 5 7 div 2 = 3
MOD Resto de uma diviso 7 mod 2 = 1
** ou exp(a, b) Exponenciao 5 ** 2 ou exp(5, 2)
Sqrt (x) Raiz quadrada Sqrt(5)
Exp(ln(x)*n) Exponenciao xn Exp(ln(5)*3)
Exemplificando atravs da elaborao de um algoritmo que resolve:
a) x = ab b) y = a Algoritmo A; Var x, a, b:real; inicio a 10; b 2; x Exp(ln(a)*b); escreva(x); fim.
Algoritmo A; var y, a:real; inicio a 16; y Sqrt(a); escreva(y); fim
2.2.4.3. Operadores Lgicos
Os operadores usados em expresses lgicas so os Operadores Lgicos apresentados na
tabela a seguir.
Operador Relao Descrio Exemplo
E (And) E lgico Conjuno (as duas ao mesmo tempo )
(Media > 5) .E. (Freq > 75)
Ou (Or) Ou lgico Disjuno Inclusiva (Flag = .V.) .Ou. (Cont > 50)
No (Not) Negao lgica Negao No (Sei_nada)
Ou-X (Xor) Ou Exclusivo (Sal < 500) Ou-X (N_dep > 2)
Veja a tabela verdade apresentada a seguir para entender melhor os operadores lgicos,
onde P e Q so variveis do tipo lgico.
P Q P.e. Q P .ou. Q P .ou-X. Q No (P .e. Q) No (P .ou. Q) No (P .ou-X. Q) F F F F F V V V
F V F V V V F F
V F F V V V F F
V V V V F F F V
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 30/115
2.2.4.4. Operadores relacionais
Alm de operaes matemticas, freqente a comparao de informaes. Por
exemplo, se a mdia aritmtica do aluno for maior ou igual a 5 ento o professor toma a deciso
de aprovar o aluno. Para isso, so usados os operadores relacionais listados na tabela a seguir.
Operador Relao Exemplo
= Igualdade Nome = Joo da Silva
ou Diferente Saldo 100,00
> Maior que Salrio > 3000,00
Idade > 18
ou >= Maior ou igual que Mdia 5,0
< Menor que Renda < 10000
ou ,
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 31/115
c) O que voc entende por memria do computador?
d) Quais as regras para compor o nome (rtulo ou identificador) de uma varivel?
e) Quais as regras para a declarao de uma varivel?
2) Relacione as colunas
Tipo de dado Descrio a) Numrico
inteiro ( ) So caracteres tais como: letras, dgitos e/ou smbolos especiais. Pode-se tambm
chamar estes dados de : alfanumricos, cadeia de caracteres ou string. No algoritmo estes dados so delimitados pelo apstrofo.
b) Numrico real ( ) So chamados de boleanos. Pode assumir dois valores: Falso e Verdadeiro. No algoritmo seus valores so delimitados pelo ponto (.V.).
c) Literal ( ) So nmeros pertencentes ao conjunto dos nmeros inteiros (Z), podendo assumir valores negativos, nulos e positivos.
d) Lgico ( ) So nmeros pertencentes ao conjunto dos nmeros fracionrios (Q), podendo assumir valores negativos, nulos e positivos.
3) Classifique os dados abaixo de acordo com seu tipo (inteiro, real, literal ou lgico).
Dado Tipo de dado Dado Tipo de dado 0.7845 abc +35987 .F. .V. -0.0 .F. +36 32 -1 32.0 2 -0.0 Teste 24.01 144 1-2+3= AbCdeF qual? -13.3
4) Na lista seguinte, assinale com V os nomes de variveis vlidos e com I os invlidos.
( ) Abc ( ) 3abc ( ) A ( ) 123a ( ) _a ( ) acd1 ( ) _ ( ) Aa ( ) 1 ( ) A123 ( ) _1 ( ) A0123 ( ) A1_v3 ( ) _a123 ( ) B214 ( ) AB CDE ( ) etc... ( ) guarda-chuva
5) Indique a prioridade na avaliao das expresses
Soma e subtrao Operador lgico E Operador Lgico No Parnteses e funes (resolvidos da esquerda para a direita) Operadores relacionais: >, =,
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 32/115
6) Dadas as declaraes de variveis abaixo, monte as tabelas de smbolos correspondentes.
a) VAR a,b,c : real; delta : real; positivo : lgico; raiz1, raiz2 : real;
Nome simblico Posio inicial Tipo de dado
A 1 Real
b) VAR x,y : inteiro; nome, profissao : literal [20]; rua : literal [30]; numero : inteiro; renda : real;
Nome simblico Posio inicial Tipo de dado
7) Elabore um exerccio sobre o contedo apresentado at o presente momento. Pode ser
criativo.
8) Dado os enunciados abaixo, identifique as variveis necessrias na elaborao do algoritmo.
D nome para essas variveis e identifique os tipos de dados possveis:
8.1) Crie um algoritmo que calcule a soma de dois nmeros inteiros.
8.2) Crie um algoritmo que calcule a mdia de um aluno composta por duas provas.
8.3) Crie um algoritmo que calcule o salrio lquido de um funcionrio, considerado:
a) os dados do funcionrio: nome, RG e telefone.
b) salrio bruto de R$ 2500,00
c) descontos de R$ 300,00
9) Dados os identificadores abaixo, assinale somente os que so aceitos em Algoritmos.
( ) Valor ( ) abc ( ) B248 ( ) A/B ( ) X2 ( ) a ( ) salrio ( ) Nome
( ) 3 x 4 ( ) MARIA ( ) KM/H ( ) 3E ( ) Valor Pago ( ) NoTa ( ) _a123 ( ) Contador
( ) A1B2C3 ( ) 1 ( ) Nota ( ) XYZ ( ) AH! ( ) Nota ( ) _a ( ) acd1
( ) Placa-Carro ( ) SALA125 ( ) NOTA ( ) Algoritmo_1 ( ) Nome_da_empresa ( ) SALRIO-LQUIDO ( ) 1 algoritmo ( ) Nota*do*aluno
( ) notadoaluno ( ) _1 ( ) _ ( ) algo 1 ( ) 123 ( ) Mdia ( ) inicio ( ) vetor
( ) AB CDE ( ) Algoritmo1 ( ) A123 ( ) a123 ( ) 3abc
10) Ligue os valores aos seus tipos de dados correspondentes
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 33/115
11) Indique os tipos de dados (inteiro, real, literal, lgico) que podem ser armazenados nas
variveis abaixo:
Var Nota: Idade: Cidade: Salario: Sexo:
12) Na hora de criar o nome da varivel (identificador) necessrio seguir regras. Indique com V
regra verdadeira e F para regra falsa.
( ) No pode usar smbolos especiais (%, &, *, -, / , etc);
( ) O nico smbolo permitido o ( _ ) underline.
( ) Pode haver espaos; ( ) No pode haver espaos; ( ) No pode iniciar com um nmero; ( ) Pode ter acento agudo ou crase; ( ) Deve iniciar com uma letra; ( ) Pode iniciar com nmero ( ) Pode usar smbolos especiais (%,
&, *, -, / , etc); ( ) Pode usar nmeros para compor o restante
do nome aps iniciar com letra;
13) Sendo P, Q, R e S, variveis numricas, cujo os contedos so iguais a 2, 3, 12 e 4.5,
respectivamente, quais os valores fornecidos por cada uma das expresses abaixo.
a) 100 * Q DIV P + R b) P * R MOD 5 Q/2 c) Q*Q R/4 * P 3 d) S MOD (P+1) Q * R e) S+ R * (3 2*P)/5 + 5*Q
14) Dada as variveis numricas A e B, as variveis literais NOME e PROFISSAO, completar o
quadro a seguir com os resultados lgicos (falso ou verdadeiro) obtidos como resultado das
relaes, tendo em vista os valores atribudos a estas variveis.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 34/115
15) Considerando as variveis do exerccio anterior e mais a varivel lgica TESTE contendo o valor lgico falso, avaliar as expresses a seguir, para cada uma das trs combinaes de valores apresentadas: a) A+1 >= B/4 .ou. NOME ANA
b) A+5 = B/2
d) PROFISSO = CONTADOR .ou. TESTE
e) no TESTE .e. (A+2 >B/6 .ou. no PROFISSO = ENGENHEIRO)
f) no (A+2 >= B .e. TESTE)
16) Sejam as variveis lgicas P, Q, R, S contendo, respectivamente, os valores verdadeiro,
falso, falso, verdadeiro. Indique o resultado das operaes:
a) P .e. S f) P .ou. R b) P .e. R g) Q .ou. S c) Q .e. S h) Q .ou. R d) Q .e. R i) No P e) P .ou. S j) No R
17) Dadas as expresses aritmticas abaixo, escreva-as de forma que o compilador de uma
linguagem de programao como o PASCAL, por exemplo, entenda:
a) 2 (A + B) 7B
b)2
33
3
2 BYX
+
c)Z
Y
CW
BAY
X
4
)2(53
1
2+
++
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 35/115
2.3. TCNICA DE PROGRAMAO ESTRUTURADA
A seguir so apresentadas as estruturas que compem a tcnica de programao
estruturada e alguns exemplos.
2.3. 1. Estrutura Seqencial
Esta estrutura permite a execuo de um grupo de aes sequencialmente.
2.3.1.1. Sintaxe
A seguir apresentada a sintaxe utilizada para elaborar o pseudocdigo e o fluxograma.
Pseudocdigo Fluxograma Comando_1; Comando_2; . . . Comando_n;
2.3.1.2. Exemplos
Os algoritmos ALG01 a ALG17, apresentados acima, so exemplos de algoritmos
elaborados utilizando a estrutura seqencial. Alm deles, observe tambm os algoritmos
apresentados a seguir, que realizam: soma de dois valores (ALG18); clculo da hipotenusa
(ALG19), converso de um valor em horas e em minutos para um valor em minutos (ALG20),
converso da temperatura em graus Celsius para graus Fahreinheit (ALG21), aumento do salrio
de um funcionrio de acordo com certo percentual de aumento (ALG22) e clculo da rea do
crculo (ALG23).
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 36/115
ALG18 Soma de dois nmeros Anlise do problema Descrio narrativa
1 O que tenho? Dois valores (A e B) 2 O que quero? Soma dos dois valores (S) 3 Como ? Fornecer valores A e B; S A + B; Mostra o resultado (S).
1 - Fornecer valores A e B; 2 - S A + B; 3 - Mostra o resultado (S).
Pseudocdigo Fluxograma Algoritmo SomaAB; Var A, B, S : inteiro; Incio Leia (A, B); S A + B; Escreva (S); Fim
Codificao em PASCAL Aparece no monitor quando o programa executado
Program SomaAB; Uses WinCrt; Var A, B, S : integer; Begin Writeln (Digite A:); Readln (A); Writeln (Digite B); Readln (B); S := A + B; writeln (Soma = , S); End.
Nada Nada Nada Nada Nada
Digite A:
Digite B:
Nada Soma =
Nada
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 37/115
ALG19 Clculo da hipotenusa Anlise do problema Descrio narrativa
1 O que tenho? Os catetos Oposto e Adjacente (A e B) 2 O que quero? Hipotenusa (H) 3 Como ? Fornece valores A e B; H raiz (A * A + B * B); Mostra o resultado (H).
1 - Fornece valores A e B; 2 - H raiz (A * A + B * B); 3 - Mostra o resultado (H).
Pseudocdigo Fluxograma Algoritmo CalcHip; Var C1, C2, hip : inteiro; Incio Leia (C1, C2); hip raiz (C1 * C1 + C2 * C2); Escreva (hip); Fim
Codificao em PASCAL Aparece no monitor quando o programa executado
Program CalcHip; Uses WinCrt; Var A, B, H : integer; Begin Writeln (Cateto Oposto); Readln (A); Writeln (Cateto Adjacente); Readln (B); H := sqrt (A * A + B * B); writeln (Hipotenusa = , H:5:2); End.
Nada Nada Nada Nada Nada
Cateto Oposto
Cateto Adjacente
Nada Hipotenusa =
Nada
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 38/115
ALG20 Converso de um valor em Horas e Minutos para apenas minutos Anlise do problema Descrio narrativa
1 O que tenho? Tempo em horas (H) e minutos (M) 2 O que quero? Tempo apenas em minutos (M) 3 Como ? Fornece os valores H e M; Mt H * 60 + M; Mostra o resultado (Mt).
1 - Fornece valores de Horas (H) e Minutos (M);
2 - Mt H * 60 + M; 3 - Mostra o resultado (Mt).
Pseudocdigo Fluxograma Algoritmo ConvHMin; Var H, M, Mt: inteiro; Incio Leia (H, M); Mt H * 60 + M; Escreva (Mt); Fim
Codificao em PASCAL Aparece no monitor quando o programa
executado Program CalcHMin; Uses WinCrt; Var H, M, Mt : integer; Begin Writeln (Horas); Readln (H); Writeln (Minutos); Readln (M); Mt := H * 60 + M; writeln (Minutos = , Mt); End.
Nada Nada Nada Nada Nada Horas
Minutos
Nada
Minutos = Nada
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 39/115
ALG21 Converso de uma temperatura em graus Celsius para Fahrenheit Anlise do problema Descrio narrativa
1 O que tenho? Temperatura em graus Celsius (C) 2 O que quero? Temperatura em graus Fahreinheit (F) 3 Como ? Fornece a temperatura em Celsius; F 32 + 1.8 * C Mostra o resultado (F).
1 - Fornece valor da temperatura em Celsius (C)
2 - F 32 + 1.8 * C; 3 - Mostra o resultado (F).
Pseudocdigo Fluxograma Algoritmo ConvCF; Var C, F: real; Incio Leia (C);
F 32 + 1.8 * C; Escreva (F); Fim
Codificao em PASCAL Aparece no monitor quando o programa executado
Program CalcCF; Uses WinCrt; Var C, F : real; Begin Write (Digite Graus Celsius: ); Readln (C); F := 32 + 1.8 * C; writeln (Fahrenheit = , F); End.
Nada Nada Nada Nada Nada
Digite graus Celsius:
Nada Fahrenheit =
Nada
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 40/115
ALG22 Clculo do novo salrio de um funcionrio segundo um percentual de aumento Anlise do problema Descrio narrativa
1 O que tenho? Salrio atual (S) e percentual de aumento (p) 2 O que quero? Novo salrio (NS) 3 Como ? Fornece os valores do salrio atual (s) e do percentual de aumento (p); NS S + S * p/100; Mostra o resultado (NS).
1 - Fornece valores de salrio atual (S) e o percentual de aumento (p);
2 - NS S + S* p/100; 3 - Mostra o resultado (NS).
Pseudocdigo Fluxograma Algoritmo ReajustaSal; Var S, NS, p: real; Incio Leia (S, p); NS S + S * p/100; Escreva (NS); Fim
Codificao em PASCAL Aparece no monitor quando o programa executado
Program ReajustaSal; Uses WinCrt; Var S, NS, p: real; Begin Writeln (Salrio atual:); Readln (S); Writeln (Reajuste em %); Readln (p); NS := S + S* p/100; writeln (Novo salrio = , NS); End.
Nada Nada Nada Nada Nada
Salrio atual:
Reajuste em %:
Nada Novo salrio =
Nada
ALG23 Clculo da rea do crculo Anlise do problema Descrio narrativa
1 O que tenho? 1 - Fornecer valor do raio (R);
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 41/115
Raio do crculo (R) e valor do Pi 2 O que quero? rea do crculo (A) 3 Como ? Fornecer o valor do raio Encontrar o valor do Pi (3,1415); A R * R * 3.1415; Mostra o resultado (A).
2 - Encontrar o valor do pi (3.1415) 3 - A R * R * 3.1415 4 - Mostrar o resultado (A).
Pseudocdigo Fluxograma
Algoritmo CalcAreaC; Var A, R: real; Incio Leia (R); A R * R * 3.1415; Escreva (A); Fim
Codificao em PASCAL Aparece no monitor quando o programa executado
Program CalcAreaC; Uses WinCrt; Var A, R: real; Begin Writeln (Raio do crculo:); Readln (R); A := R * R * 3.1415; writeln (rea do crculo = , A:5:2); End.
Nada Nada Nada Nada Nada
Raio do crculo
Nada rea do crculo =
Nada
Quando fizer o fluxograma coloque alguns comentrios do lado. Isto ajuda a lembrar o
que cada passo realiza. Veja os exemplos a seguir.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 42/115
ALG18 Soma de dois nmeros ALG20 Converso de um valor em Horas e Minutos para apenas minutos
2.3.1.3. Exerccios propostos
1. Elabore um programa que leia um comprimento em polegadas, calcule e exiba o
comprimento em milmetros, considerando que 1 polegada equivale a 25,4 milmetros.
2. Elabore um programa que leia a massa de uma amostra de carbono, calcule e exiba o nmero
de moles de carbono na amostra. Considere que o mol C igual a 12 e a frmula n de
moles = massa da amostra / 12
3. Elabore um programa que leia a fora F aplicada sobre um corpo e a velocidade V do corpo,
calcule e exiba a potncia P. Considere P = F . V.
4. Numa loja existe um total mensal de vendas. Fazer a leitura do nome da loja e do total de
vendas mensal em um ano. Mostre o nome da loja e os totais de vendas por trimestre.
5. Ler o nome de um cliente de fast food e a quantidade de cada item do menu que ele vai pedir.
Exiba o nome do cliente e o total da compra.
ITEM PREO Hot dog R$ 1,20 Hamburguer R$ 1,60 Cheeseburguer R$ 2,00 Refrigerante em lata R$ 1,20 Batatas fritas R$ 2,5
6. Ler a cotao do dlar no dia e a quantidade de dlares para trocar por real. Exiba a
quantidade em reais.
{ Incio do algoritmo}
{L Horas e Minutos}
{Converte horas em
minutos e soma os minutos}
{Mostra minutos}
{Fim do algoritmo}
{ Incio do algoritmo}
{L valores A e B}
{Calcula a soma de A e B}
{Mostra valor calculado}
{Fim do algoritmo}
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 43/115
7. Calcular o lucro obtido de um investimento, aps um perodo de um ano, para uma taxa
anual. Todos os valores usados para o clculo devero ser escritos pelo programa.
8. A acelerao de um corpo em movimento a mudana da velocidade do corpo em relao a
um intervalo de tempo. {a = (v2 v1)/t}. Escrever um algoritmo que calcule a acelerao de
um corpo em movimento conhecendo-se as velocidades inicial e final, e o intervalo de tempo
medido.
9. Fazer o algoritmo que obtenha as duas notas de um aluno, que calcule e apresente a sua
mdia final (mdia aritmtica).
10. Calcular e apresentar o valor do volume de uma lata de leo. v = pi*r2*h
11. Construa um algoritmo que, tendo como dados de entrada dois pontos quaisquer no plano,
P(x1,y1) e P(x2,y2), escreva a distncia entre eles. A frmula que efetua tal clculo :
( ) ( )( )22 1212 yyxxd += 12. Escreva um algoritmo que leia trs nmeros inteiros e positivos (A, B, C) e calcule a
seguinte expresso: 2
SRD
+= onde ( )2BAR += e ( )2CBS += .
13. Faa um algoritmo que leia a idade de uma pessoa expressa em anos, meses e dias e mostre-a
expressa apenas em dias.
14. Faa um algoritmo que leia as 3 notas de um aluno e calcule a mdia final deste aluno.
Considerar que a mdia ponderada e que o peso das notas : 2, 3 e 5, respectivamente.
15. Faa um algoritmo que leia o tempo de durao de um evento em uma fbrica expressa em
segundos e mostre-o expresso em horas, minutos e segundos.
16. Escrever um algoritmo que l: a percentagem do IPI a ser acrescido no valor das peas, o
cdigo da pea 1, valor unitrio da pea 1, quantidade de peas 1, o cdigo da pea 2, valor
unitrio da pea 2, quantidade de peas 2. O algoritmo deve calcular o valor total a ser pago
e apresentar o resultado. Frmula: valor_total = (valor1*quant1 + valor2*quant2)*(IPI/100 +
1)
17. Elabore um programa que leia um valor de temperatura em graus celsius, calcule e exiba a
temperatura equivalente em graus kelvin, sabendo que: K = C + 273.
18. Elabore um Algoritmo para converter um valor em minutos num formato com dias, horas e
minutos.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 44/115
19. Elabore um Algoritmo que dados dois lados de um tringulo rectngulo calcule a respectiva
hipotenusa
20. Elabore um Algoritmo que dados os litros gastos e os km percorridos por um automvel,
calcule os gastos de combustvel em R$/km e em l/100km (1l custa R$ 1.98).
21. Suponha que um quadrado cujo lado (L) mede 5 cm esteja inscrito em um crculo e um
crculo menor esteja inscrito no quadrado como ilustra a figura abaixo. Os crculos e o
quadrado possuem centro comum. Desenvolver um algoritmo para encontrar a rea
hachurada. AC = raio2 * 3.14, AQ = L2
22. Escrever um algoritmo que converta segundos em minutos e segundos. Por exemplo, 252
segundos equivalem a 4 minutos e 12 segundos.
23. Escrever um algoritmo que calcule a taxa de consumo de um automvel durante um perodo,
conhecendo-se os valores de quilmetros percorridos e a quantidade de gasolina consumida.
24. A acelerao de um corpo em movimento a mudana da velocidade do corpo em relao a
um intervalo de tempo. (a = (v2 v1)/t. Escrever um algoritmo que calcule a acelerao de
um corpo em movimento conhecendo-se as velocidades inicial e final, e o intervalo de tempo
medido.
25. Calcular o lucro obtido de um investimento de R$ 42.5000,00, aps um perodo de um ano,
para uma taxa anual de remunerao de 17.55%. Todos os valores usados para o clculo
devero ser escritos pelo programa.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 45/115
26. O que o algoritmo abaixo faz? Faa o fluxograma correspondente.
Pseudocdigo Fluxograma Algoritmo areas; Var {declarao dos tipos de identificadores} lr1, lr2, lt1, lt2, lt3, ht, rc: reais; ar, pr, at, pt, ac, pc: reais; nicio {Entrada de dados} escreva (Insira valor do 1 lado do retngulo ); leia (lr1); escreva (Insira valor do 2 lado do retngulo ); leia (lr2); escreva (Insira valor do 1 lado do tringulo ); leia (lt1); escreva (Insira valor do 2 lado do tringulo ); leia (lt2); escreva (Insira valor do 3 lado do tringulo ); leia (lt3); escreva (Insira valor da altura do tringulo ); leia (ht); escreva (Insira valor do raio do crculo ); leia (rc); limpar a tela; {calculo da rea e do permetro do retngulo} ar lr1 * lr2; pr 2 * (lr1 + lr2); {calculo da rea e do permetro do triangulo} at lt2 * ht / 2; pt lt1 + lt2 + lt3; { calculo da area e do permetro do crculo} ac pi * rc * rc; pt 2 * pi * rc; {sada de dados} escreva ( A rea do retngulo , ar:5:2); escreva ( O permetro do retngulo , pr:5:2); escreva ( A rea do tringulo , at:5:2); escreva ( O permetro do tringulo , pt:5:2); escreva ( A rea do crculo , ac:5:2); escreva ( O permetro do crculo , pc:5:2); {encerramento do programa} escreva; escreva (Digite qualquer tecla) leia especial; fechar a tela do windows;
fim.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 46/115
27. Analise o algoritmo, responde as questes ao lado.
Pseudocdigo Anlise do problema Programa lanchonete; Var Iqtd1, qtd2, qtd3, qtd4, qtd5: inteiro; Valortotal: real; Nome : literal [20]; Incio { Entrada de Dados} Escreva ( Digite nome do cliente:); Leia (Nome); Escreva ( Digite quantidade de Hot Dogs: ); Leia (qtd1); Escreva (Digite quantidade de Hamburguers: ); Leia (qtd2); Escreva (Digite quantidade de Cheeseburguer:); Leia (qtd3); Escreva (Digite a quantidade de Refrigerante em Latas: ); Leia (qtd4); Escreva (Digite a quantidade de Batata Fritas: ); Leia (qtd5); {Clculos} valortotal qtd1*1.2+qtd2*1,6+qtd3*2+qtd4*1.2+qtd5*2.5; { sada de dados} Escreva (Nome, gastou ...........R$ ,valortotal); Fim.
1) o que tenho?
2) o que quero?
3) Como obtenho o que quero?
28. Crie algoritmos para solucionar os problemas abaixo nas trs formas de representao
conhecidas (Descrio Narrativa, Fluxograma e Pseudocdigo):
a) Imprimir o seu nome. b) Ler e imprimir o seu nome. c) Ler seu nome e idade e imprimi-los. d) Imprimir o produto de 12 e 43. e) Imprimir a mdia aritmtica entre 8, 9 e 7. f) Ler trs valores numricos do tipo inteiro e imprimir a mdia aritmtica entre eles. g) Ler um nmero inteiro e imprimir seu sucessor e seu antecessor. h) Ler o lado de um quadrado e calcular a rea deste quadrado e mostrar o resultado.
29. Diga qual o valor armazenado em cada varivel (TESTE DE MESA) aps a execuo de
cada um dos comandos do algoritmo abaixo.
Algoritmo ALGXX; Var N, A, R, B, C : Inteiro; V, X : real: Incio
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 47/115
A 10; R 3; V 14.0; B 150; C V MOD 2; X B * R; X R / A; X X 2 * A; B B + 3; N 30 + X; B B DIV N; V N V + X * R; Fim.
30. O algoritmo abaixo realiza o clculo do determinante. Identifique Entrada, Sada e
Processamento.
Pseudocdigo Anlise do problema Algoritmo CalcDet; Var a, b, c, D: Inteiro; Incio Leia (a, b,c); D b*b 4*a*c; Escreva (D); Fim.
Entrada (O que tenho?): Sada (O que quero?): Processamento (Como?):
31) Dado o algoritmo abaixo (em pseudocdigo) que separa dia, ms e ano de uma data digitada
no formato ddmmaa e mostra estes valores.
Pseudocdigo Fluxograma Programa A1; Var data, dia, mes, ano: Inteiro; Inicio Escreva(Digite uma data no formato ddmmaa:); Leia (data); dia data div 1000; mes data mod 100000 div 100; ano data mod 100; escreva (dias: , dia, escreva (mes: , mes); escreva (ano: , ano); Fim.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 48/115
32) Dado o Fluxograma abaixo, indique o pseudocdigo correto Pseudocdigo Fluxograma ( ) Algoritmo A2_v1; Var a, b: Real; Inicio Escreva (Digite um nmero :); Leia (a); a a mod 100 div 10; Escreva (b); Fim. ( ) Algoritmo A2_v2; Var a, b: Inteiro; Inicio Escreva (Digite um nmero :); Leia (a); b a mod 100 div 10; Fim. ( ) Algoritmo A2_v3; Var A, B: Inteiro; Inicio Escreva (Digite um nmero :); Leia (A); B A mod 100 div 10; Escreva (B); Fim.
33) Dado o fluxograma do exerccio 2, qual seria o valor de sada se fosse digitado o valor 3200?
a) 2,2 b) 3,2 c) 32 d) 2,0 e) 22 34) Dado o fluxograma abaixo, faa apenas a declarao das variveis em pseudocdigo.
Pseudocdigo (declarao variveis) Fluxograma
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 49/115
35) Dado o enunciado abaixo, faa a anlise do problema proposto.
Problema (enunciado) Anlise do problema Calcular a taxa de consumo de um automvel durante um perodo, conhecendo-se os valores de quilmetros percorridos e a quantidade de gasolina consumida.
O que tenho (entrada)? O que quero (Sada)? Como (processamento)?
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 50/115
2.3.2. Estrutura Condicional
Tambm conhecida como estrutura de tomada de deciso ou seleo, esta estrutura
permite a escolha do grupo de aes a ser executadas quando determinada condio
(expressolgica) ou no satisfeita.
2.3.2.1. Sintaxe
Como pode ser observado nas sintaxes mostradas a seguir, tem-se a estrutura condicional
simples, composta e aninhada.
Estrutura condicional simples Pseudocdigo Fluxograma
Se (Condio) Ento Comando_1; Comando_2; . . . Comando_n;
Fim_se;
Em Pascal
If (Condio) Then begin Comando_1; Comando_2; . . . Comando_n; end;
Se fosse um comando s:
If (Condio) Then begin Comando_1; end;
---- Ou ------ If (Condio) Then Comando_1;
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 51/115
Estrutura condicional composta Pseudocdigo Fluxograma
Se (Condio) Ento Comando_A1; Comando_A2; . . . Comando_An Seno Comando_B1; Comando_B2; . . . Comando_Bn; Fim_se;
Em Pascal
If (Condio) Then Begin Comando_A1; Comando_A2; . . . Comando_An; End Else Begin Comando_B1; Comando_B2; . . . Comando_Bn; End;
Se fosse um comando s:
If (Condio) Then Begin Comando_A1; End Else Begin Comando_B1; End; ---- Ou ------ If (Condio) Then Comando_A1 Else Comando_B1;
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 52/115
Estrutura condicional aninhada (ou encadeada) Pseudocdigo Fluxograma
Se (Condio_1) Ento
Comando_A1; Comando_A2; . . . Comando_An
Seno Se (Condio_2) Ento Comando_B1; Comando_B2; . . . Comando_Bn; Seno Comando_C1; Comando_C2; . . . Comando_Cn;
Fim_se; Fim_se;
Em Pascal
If (Condio_1) Then Begin
Comando_A1; Comando_A2; . . . Comando_An;
End Else If (Condio_2) Then Begin
Comando_B1; Comando_B2; . . . Comando_Bn;
End Else Begin
Comando_C1; Comando_C2; . . . Comando_Cn;
End;
Se fosse um nico comando, ficaria:
If (Condio_1) Then Begin
Comando_A1; End Else If (Condio_2) Then Begin
Comando_B1; End Else Begin
Comando_C1; End;
---- Ou ------ If (Condio_1) Then Comando_A1; Else If (Condio_2) Then Comando_B1; Else Comando_C1;
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 53/115
H tambm uma variao do condicional SE, que utilizada quando uma situao de
igualdade testada para uma mesma varivel.
Caso/escolha Pseudocdigo Fluxograma
Escolha (Varivel)
Caso (valor_1) : Comando_1;
Caso (valor_2) : Comando_2;
Caso (valor_3) : Comando_3;
Fim_escolha;
Ou desta outra forma:
Caso
: ;
: ;
: ;
Fim_caso;
Em Pascal
Case of
: ;
: ;
: ;
End;
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 54/115
Caso/escolha Pseudocdigo Fluxograma
Escolha (Varivel) Caso (valor_1) : Comando1; Caso (valor_2) : Comando2; Seno Comando3; Fim_escolha; Ou desta outra forma: Caso : ; : ; Seno ; Fim_caso;
Em Pascal
Case of
: ;
: ;
Else
: ;
End;
2.3.2.2. Exemplos
A seguir so apresentados alguns exemplos, onde foram utilizadas as estruturas:
condicional simples, condicional composto, condicional encadeado e estrutura Escolha. No
primeiro (ALG24) tem-se o algoritmo do clculo da mdia aritmtica (M), onde so
consideradas apenas duas notas (P1 e P2) e mostrada a mdia e uma mensagem de aprovao
caso M >= 5. Neste caso foi utilizada uma estrutura condicional simples.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 55/115
ALG24 Clculo da mdia aritmtica de duas notas, mostrando mdia e mensagem Aprovado, caso a
mdia seja >= 5. Anlise do problema Descrio narrativa
1 O que tenho? Notas (P1 e P2) 2 O que quero? Mdia (M) e situao Aprovado 3 Como ? Fornece o valor das notas (P1 e P2) Calcula a mdia (M (P1 + P2)/2; Mostra resultado (M); Verifica se aluno foi aprovado (M >= 5) Mostra somente mensagem Aprovado.
1 - Fornece valor das notas (P1 e P2); 2 - Calcula a mdia aritmtica (M) 3 - Verifica se M >= 5 4 - Se sim, mostra mdia (M) e mensagem Aprovado.
Pseudocdigo Fluxograma Algoritmo CalcMedia1; Var P1, P2, M: real; Incio Leia (P1, P2); M (P1 + P2)/2; Escreva (M); Se M >= 5 Ento Escreva (Aprovado); Fim_se; Fim
Codificao em PASCAL Aparece no monitor (programa executado)
Program CalcMedia1; Uses WinCrt; Var P1, P2, M: real; Begin Writeln (Digite P1:); Readln (P1); Writeln (Digite P2:); Readln (P2); M := (P1 + P2)/2; Writeln (M): If M >= 5 then writeln (Aprovado); End.
Nada Nada Nada Nada Nada
Digite P1:
Digite P2:
Nada
Nada Aprovado Nada
No segundo exemplo (ALG25), utilizada uma estrutura condicional composta ao
realizar um refinamento no algoritmo acima acrescentando tambm a mensagem de reprovado.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 56/115
ALG25 Clculo da mdia aritmtica de duas notas, mostrando a mdia e mensagem Aprovado ou Reprovado (M >= 5; aprovao) .
Anlise do problema Descrio narrativa 1 O que tenho? Notas (P1 e P2) 2 O que quero? Mdia (M) e Aprovado ou Reprovado 3 Como ? Fornece o valor das notas (P1 e P2) Calcula a mdia (M (P1 + P2)/2; Mostra o resultado (M); Verifica se aluno foi aprovado (M >= 5); Mostra mensagem Aprovadoou Reprovado
1 - Fornecer valor das notas (P1 e P2); 2 - Calcular a mdia aritmtica (M) 3 - Mostra o resultado (M) 4 - Verificar se M >= 5 5 - Se sim, mostra mensagem Aprovado. 6 - Seno mostra mensagem Reprovado.
Algoritmo CalcMedia1; Var P1, P2, M: real; Incio Leia (P1, P2); M (P1 + P2)/2; Escreva (M); Se M >= 5 Ento Escreva (Aprovado) Seno Escreva (Reprovado); Fim_se; Fim
Codificao em PASCAL Aparece no monitor (programa executado)
Program CalMedia1; Uses WinCrt; Var P1, P2, M: real; Begin Writeln (Digite P1:); Readln (P1); Writeln (Digite P2:); Readln (P2); M := (P1 + P2)/2; Writeln (M): If M >= 5 then writeln (Aprovado) Else writeln (Reprovado); End.
Nada Nada Nada Nada Nada
Digite P1:
Digite P2:
Nada
Nada Aprovado Nada
Reprovado Nada
Em seguida, considerado tambm que o aluno pode ter ficado para exame (ALG26).
Neste ltimo caso foi utilizada a estrutura condicional encadeada.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 57/115
ALG26 Clculo da mdia aritmtica de duas notas, mostrando a mdia e mensagem Aprovado, Reprovado ou Exame (M >= 5 Aprovao; M >=3 Exame) .
Pseudocdigo Fluxograma
Algoritmo CalcMedia3; Var P1, P2, M: real; Incio Leia (P1, P2); M (P1 + P2)/2; Escreva (M); Se M >= 5 Ento Escreva ( Aprovado) Seno Se M >= 3 Ento Escreva (Exame) Seno Escreva (Reprovado); Fim_se; Fim_se; Fim
Codificao em PASCAL Aparece no monitor quando o programa executado
Program CalcMedia3; Uses WinCrt; Var P1, P2, M: real; Begin Writeln (Digite P1:); Readln (P1); Writeln (Digite P2:); Readln (P2); M := (P1 + P2)/2; Writeln (M); If M >= 5 then Writeln ( Aprovado) Else If M >= 3 then Writeln (Exame) Else Writeln (Reprovado); End.
Nada Nada Nada Nada Nada
Digite P1:
Digite P2:
Nada
Nada Aprovado Nada Nada Exame Nada
Reprovado Nada
Dois outros exemplos de utilizao de estrutura condicional simples (ALG27) e
encadeada (ALG28) podem ser vistos em seguida. Eles apresentam um algoritmo que l um
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 58/115
nmero inteiro entre 1 e 7 e mostra no monitor do computador o dia da semana correspondente.
Caso o usurio digite um nmero fora desse intervalo, o algoritmo mostra uma mensagem
informando Nmero invlido.
ALG27 Algoritmo elaborado com estrutura condicional simples e composta que l um nmero e imprime o dia da semana correspondente.
Pseudocdigo Fluxograma
programa DiaSemana_se; Var mes:inteiro; inicio
Escreva ('Digite um numero de 1 a 7:'); Leia (Dia); Se Dia = 1 ento escreva ('Domingo'); Fim_se; Se Dia = 2 ento Escreva ('Segunda'); Fim_se; Se Dia = 3 ento Escreva ('Tera'); Fim_Se; Se Dia = 4 ento Escreva ('Quarta'); Fim_se; Se Dia = 5 ento Escreva ('Quinta'); Fim_se; Se Dia = 6 ento Escreva ('Sexta'); Fim_Se; Se Dia = 7 ento Escreva ('Sbado'); Seno Escreva ('Nmero invlido'); Fim_se;
Fim.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 59/115
ALG28 Algoritmo elaborado com estrutura condicional encadeada que l um nmero e imprime o dia da semana correspondente.
Pseudocdigo programa DiaSemana_se; Var mes:inteiro; inicio Escreva ('Digite um numero de 1 a 7:'); Leia (Dia); se Dia = 1 ento escreva ('Domingo') seno se Dia = 2 ento Escreva ('Segunda') seno se Dia = 3 ento Escreva ('Tera') seno se Dia = 4 ento Escreva ('Quarta') seno se Dia = 5 ento Escreva ('Quinta') seno se Dia = 6 ento Escreva ('Sexta') seno se Dia = 7 ento Escreva ('Sbado') seno Escreva ('Numero invlido'); fim_se; fim_se; fim_se; fim_se; fim_se; fim_se; fim_se; fim.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 60/115
ALG28 Algoritmo elaborado com estrutura condicional encadeada que l um nmero e imprime o dia da semana correspondente.
Fluxograma
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 61/115
O exemplo a seguir mostra o algorimo acima elaborado utilizando a estrutura
Escolha/caso (ALG29) ao invs da estrutura condicional encadeada.
ALG29 Algoritmo elaborado com estrutura ESCOLHA/CASO que l um nmero e imprime o dia da semana correspondente
Pseudocdigo Fluxograma
programa DiaSemana_se; Var Dia : inteiro; inicio Escreva ('Digite um numero de 1 a 7:'); Leia (Dia); Escolha (Dia) Caso (1) : Escreva ('Domingo'); Caso (2) : Escreva ('Segunda') Caso (3) : Escreva ('Tera') Caso (4) : Escreva ('Quarta') Caso (5) : Escreva ('Quinta') Caso (6) : Escreva ('Sexta') Caso (7) : Escreva ('Sbado' Seno Escreva ('Nmero invlido'); Fim_escolha; fim.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 62/115
O exemplo seguinte apresenta apenas um trecho de algoritmo (elaborado com a estrutura
ESCOLHA/CASO), que mostra no monitor a mensagem Um, Dois ou Trs caso o valor
digitado na varivel A seja 1, 2 ou 3 respectivamente (ALG30).
ALG30 Trecho de algoritmo elaborado com estrutura ESCOLHA/CASO que imprime a mensagem Um, Dois e Trscaso seja digitado 1, 2 ou 3 respectivamente.
Pseudocdigo Fluxograma
Escolha (A)
Caso (1): Escreva (Um);
Caso (2): Escreva (Dois);
Caso (3): Escreva (Trs);
Fim_escolha;
Escolha (A)
Caso (1): Escreva (Um);
Caso (2): Escreva (Dois);
Seno
Escreva (Trs);
Fim_escolha;
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 63/115
2.3.2.3. Exerccios propostos
1.Indique a sada dos trechos de algoritmo (fluxograma) a seguir. Considere os seguintes valores:
A = 2, B = 3, C = 5, D = 9. Preste ateno na prioridade dos operadores.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 64/115
2. Faa um algoritmo que leia dois nmeros e apresente-os em ordem crescente. Use estrutura
de desvio condicional simples.
3. Elabore um algoritmo que leia um nmero e diga se ele divisvel por 2 e por 3. Use
estrutura de desvio condicional simples.
4. Faa um algoritmo que leia um n inteiro e mostre uma mensagem indicando se este nmero
par ou mpar e se positivo ou negativo.
5. Elabore um algoritmo que leia um nmero e diga se ele divisvel por 5 ou por 7.
6. Elaborar um algoritmo que l 3 valores (A, B e C), encontra o valor maior e o escreve
juntamente com a mensagem: " o maior ".
7. Elaborar um algoritmo que l 2 valores A e B, verifica e escreve uma mensagem informando
se so mltiplos ou no so mltiplos.
8. Escreva um algoritmo que leia 3 nmeros inteiros e mostre o menor deles.
9. Calcule a mdia aritmtica das 3 notas de um aluno e mostre, alm do valor da mdia, uma
mensagem de "Aprovado", caso a mdia seja igual ou superior a 6, ou a mensagem
"Reprovado", caso contrrio.
10. Elabore um algoritmo que dada a idade de um nadador, classifica-o em uma das seguintes
categorias:
CATEGORIA FAIXA ETRIA infantil A 5 - 7 anos infantil B 8 - 10 anos juvenil A 11-13 anos juvenil B 14-17 anos Adulto maiores de 18 anos
11. Escreva um algoritmo que leia o cdigo de um aluno e suas trs notas. Calcule a mdia
ponderada do aluno, considerando que o peso para a maior nota seja 4 e para as duas
restantes, 3. Mostre o cdigo do aluno, suas trs notas, a mdia calculada e uma mensagem
"APROVADO" se a mdia for maior ou igual a 5 e "REPROVADO" se a mdia for menor
que 5.
12. Um banco conceder um crdito especial aos seus clientes, varivel com o saldo mdio no
ltimo ano. Faa um algoritmo que leia o saldo mdio de um cliente e calcule o valor do
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 65/115
crdito de acordo com a tabela abaixo. Mostre uma mensagem informando o saldo mdio e o
valor do crdito.
SALDO MDIO PERCENTUAL de 0 a 200 nenhum crdito de 201 a 400 20% do valor do saldo mdio de 401 a 600 30% do valor do saldo mdio acima de 601 40% do valor do saldo mdio
13. Escrever um algoritmo para automatizar o caixa da Lanchonete Bom Apetite. Este algoritmo
deve ler o cdigo do item pedido, a quantidade e calcular o valor a ser pago por aquele
lanche. O cardpio da lanchonete o seguinte:
CDIGO ESPECIFICAO PREO UNITRIO
(R$) 100 Cachorro quente 1,10 101 Bauru simples 1.30 102 Bauru c/ovo 1,50 103 Hamburger 1.10 104 Cheeseburger 1.30 105 Refrigerante 1.00
14. Escreva um algoritmo que leia o cdigo de um aluno e suas trs notas. Calcule a mdia
ponderada do aluno, considerando que o peso para a maior nota seja 4 e para as duas
restantes, 3. Mostre o cdigo do aluno, suas trs notas, a mdia calculada e uma mensagem
"APROVADO" se a mdia for maior ou igual a 5 e "REPROVADO" se a mdia for menor
que 5.
15. Um usurio deseja um algoritmo onde possa escolher que tipo de mdia deseja calcular a
partir de 3 notas. Faa um algoritmo que leia as notas, a opo de mdia escolhida pelo
usurio, calcule e mostre a mdia.
OPO TIPO DE M DIA 1 aritmtica 2 ponderada (3,3,4 3 harmnica
16. Joo Papo-de-Pescador, homem de bem, comprou um microcomputador para controlar o
rendimento dirio de seu trabalho. Toda vez que ele traz um peso de peixes maior que o
estabelecido pelo regulamento de pesca do estado de So Paulo (50 quilos) deve pagar um
multa de R$ 4,00 por quilo excedente. Joo precisa que voc faa um diagrama de blocos
que leia a varivel P (peso de peixes) e verifique se h excesso. Se houver, gravar na varivel
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 66/115
E (Excesso) e na varivel M o valor da multa que Joo dever pagar. Caso contrrio mostrar
tais variveis com o contedo ZERO.
17. Elabore um diagrama de bloco que leia as variveis C e N, respectivamente cdigo e nmero
de horas trabalhadas de um operrio. E calcule o salrio sabendo-se que ele ganha R$ 10,00
por hora. Quando o nmero de horas exceder a 50 calcule o excesso de pagamento
armazenando-o na varivel E, caso contrrio zerar tal varivel. A hora excedente de trabalho
vale R$ 20,00. No final do processamento imprimir o salrio total e o salrio excedente.
18. Desenvolva um diagrama que: leia 4 (quatro) nmeros; calcule o quadrado de cada um; se o
valor resultante do quadrado do terceiro for >= 1000, imprima-o e finalize; caso contrrio,
imprima os valores lidos e seus respectivos quadrados.
19. A Secretaria de Meio Ambiente que controla o ndice de poluio mantm 3 grupos de
indstrias que so altamente poluentes do meio ambiente. O ndice de poluio aceitvel
varia de 0,05 at 0,25. Se o ndice sobe para 0,3 as indstrias do 1 grupo so intimadas a
suspenderem suas atividades, se o ndice crescer para 0,4 as industrias do 1 e 2 grupo so
intimadas a suspenderem suas atividades, se o ndice atingir 0,5 todos os grupos devem ser
notificados a paralisarem suas atividades. Faa um diagrama de bloco que leia o ndice de
poluio medido e emita a notificao adequada aos diferentes grupos de empresas.
20. Construa um algoritmo que leia 3 valores inteiros e positivos, encontre o maior valor,
encontre o menor valor, calcule a mdia dos nmeros lidos e mostre os resultados.
21. Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um algoritmo que
calcule seu peso ideal, utilizando as seguintes frmulas: Para homens: (72.7*h) 58; Para
mulheres: (62.1*h) - 44.7 (h = altura).
22. Escreva um algoritmo que determine o grau de obesidade de uma pessoa, sendo fornecido o
peso e a altura da pessoa. O grau de obesidade determinado pelo ndice da massa corprea
(Massa = Peso / Altura2 ) atravs da tabela abaixo:
MASSA CORPREA GRAU DE OBESIDADE < 26 Normal
26 e < 30 Obeso 30 Obeso Mrbido
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 67/115
23. Faa um algoritmo que, dado as trs notas de um aluno, determine e exiba a sua mdia final e
o seu conceito, sabendo-se que: a mdia final calculada pela mdia aritmtica das 3 notas; o
conceito determinado de com base na tabela abaixo:
MDIA FINAL
CONCEITO
8,0 A 5,0 e < 8,0 B
< 5,0 C
24. O Botafogo Futebol Clube deseja aumentar o salrio de seus jogadores. O reajuste deve
obedecer a seguinte tabela:
SALRIO ATUAL (R$) AUMENTO 0,00 a 1.000,00 20%
1.000,01 a 5.000,00 10% acima de 5.000,00 0%
Escrever um algoritmo que leia o nome e o salrio atual de um jogador, e exiba o
nome, o salrio atual e o salrio reajustado.
25. Faa um algoritmo para calcular a conta final de um hspede de um hotel fictcio, contendo:
o nome do hspede, o tipo do apartamento, o nmero de dirias utilizadas, o valor unitrio da
diria, o valor total das dirias, o valor do consumo interno, o subtotal, o valor da taxa de
servio e o total geral. Considere que:
a) Devem ser lidos o nome do hspede, o tipo do apartamento utilizado (A, B, C ou D), o
nmero de dirias utilizadas pelo hspede e o valor do consumo interno do hspede;
b) O valor da diria determinado pela seguinte tabela:
TIPO DO APTO.
VALOR DA DIRIA (R$)
A 150,00
B 100,00
C 75,00
D 50,00
c) O valor total das dirias calculado pela multiplicao do nmero de dirias utilizadas pelo
valor da diria;
d) O subtotal calculado pela soma do valor total das dirias e o valor do consumo interno;
e) O valor da taxa de servio equivale a 10% do subtotal;
f) A total geral resulta da soma do subtotal com a taxa de servio.
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 68/115
2.3.3. Estrutura Repetio
Tambm conhecida como LOOPING, esta estrutura permite repetir um grupo de aes
at que uma dada condio seja satisfeita.
2.3.3.1. Sintaxe
Como pode ser observado nas sintaxes mostradas a seguir, tem-se a estrutura de repetio
com teste no incio (ENQUANTO), com teste no final (REPITA) e laos contados (PARA).
Com teste no incio
Na estrutura de repetio ENQUANTO uma seqncia de comandos executada quando
o teste lgico resulta em verdadeiro e quando o teste lgico resulta em falso a seqncia de
comandos encerrada.
Essa estrutura usada quando no se sabe o nmero de vezes que deseja repetir um
determinado trecho de um programa. Embora ela tambm possa ser usada quando este nmero
conhecido. Veja a sintaxe:
Pseudocdigo Fluxograma Em Pascal
Enquanto faa
Comando_1;
Comando_2;
Comando_n;
Fim_enquanto;
While do
Begin
Comando_1;
Comando_2;
Comando_n;
End;
Com varivel de controle
A estrutura de repetio PARA (com varivel de controle) usada quando o nmero de vezes
que deseja repetir um trecho do programa for conhecido ou quando puder entrar com ele durante sua
execuo. Veja a sintaxe
Comando 1
Comando 2
Comando n
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 69/115
Pseudocdigo Fluxograma
para de at com incremento de faa
Comando_1;
Comando_2;
Comando_n;
Fim_para;
Em Pascal
FOR := TO DO
Begin
Comando_1;
Comando_2;
Comando_n;
End;
Com teste no fim (Repita At que)
Na estrutura de repetio com teste no Fim a repetio do trecho do programa ser
executado para a condio falsa, caso a condio passe a ser verdadeira, o repetio finalizada.
Nesta estrutura, o trecho do programa executado pelo menos uma vez.
; ;
Comando_1
Comando 2
Comando n
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 70/115
Pseudocdigo Fluxograma
repita
Comando_1;
Comando_2;
Comando_n;
At que ;
Em Pascal
REPEAT
Comando_1;
Comando_2;
Comando_n;
UNTIL ;
2.3.3.2. Exemplos
Veja alguns exemplos de algoritmos elaborados com e sem a estrutura de repetio. O
primeiro exemplo (ALG31) mostra um algoritmo elaborado para ler nome e telefone.
O segundo exemplo (ALG32) refere-se a um algoritmo que calcula a mdia global de 10
alunos de uma determinada sala de aula. Veja como a resoluo com e sem a utilizao da
estrutura de repetio.
O terceiro exemplo (ALG33) traz o algoritmo que imprime os nmeros de 1 a 9 com
incremento de 1. Neste exemplo foram empregadas as trs estruturas de repetio para
comparao das similaridades e diferenas.
Os dois primeiros exemplos (ALG31 e ALG32) demonstram a importncia da estrutura
de repetio e o terceiro (ALG33) mostra as diferenas e semelhanas entre as estruturas de
Comando_1
Comando_2
Comando_n
Algoritmos para Estruturas Simples
ltima atualizao: 22/4/2008; 11:51:05 71/115
repetio. Preste muita ateno nas diferenas. Por exemplo, na estrutura PARA no necessrio
inicializar o contador (varivel N) fora do lao de repetio nem incrementar N dentro deste lao
como ocorre com as estruturas ENQUANTO e REPITA. Na estrutura de repetio REPITA a
condio o inverso do ENQUANTO. O REPITA s continua se a condio for falsa e o
ENQUANTO s continua se a condio for verdadeira. Alm disso, no REPITA o bloco de
comandos dentro do lao de repetio executado pelo menos uma vez antes de testar a
condio.
No segundo exemplo utilizada uma varivel para compor uma condio de parada para
o looping, isto , para as repeties. Ela conhecida por FLAG.
Algoritmos para Estruturas Sim
ples
ltim
a atualizao: 22/4/2008; 11:51:05
72/115
ALG31 Algoritmo que entra nome e telefone com
e sem
a utilizao de estrutura de repetio
Estrutura Repetio
Pseudocdigo
Fluxograma
PASCAL
SEM
Algoritmo endereco;
Var
Nom
e, telefone :