Académique Documents
Professionnel Documents
Culture Documents
ALGORITMOS
Estruturas Simples
O professor pode ser excelente, o mtodo de ensino
maravilhoso, mas sem a sua participao caro aluno,
o aprendizado no acontece.
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
Cibele Mattos
Roberta Panzera
Sebastio Varotto
2/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
ltima atualizao: 22/4/2008; 11:51:05
3/115
4/115
1. CONCEITOS BSICOS
Programar basicamente construir algoritmos.
Um receita culinria;
5/115
6/115
M interpretao;
Perda de informao;
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
Exemplos:
Leia (numero1);
numero2 numero1 * 2;
escreva (O dobro do nmero , numero2);
imprima (O triplo do nmero , numero1 * 3);
7/115
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
8/115
Descrio
Representao grfica
Inicio/Fim
Descrio
Representao grfica
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.
fim
9/115
{Incio do algoritmo}
M (N1 + N2)/2
{Fim do algoritmo}
Fim
10/115
11/115
12/115
13/115
)
)
)
)
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. Podese 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.
ltima atualizao: 22/4/2008; 11:51:05
14/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:
15/115
Fluxograma
Pseudocdigo
Programa ALG03;
Inicio
Escreva (Meu primeiro programa);
Fim.
Inicio
Estou aprendendo
a
desenvolver algoritmos
Fim
Inicio
10
Fim
16/115
Fluxograma
Pseudocdigo
Programa ALG06;
Var
x: Inteiro;
Inicio
x 10;
Fim.
Programa ALG07;
Var
y: Inteiro;
Inicio
y 10;
Escreva(y);
Fim.
Inicio
y 10
y = , y
Fim
17/115
Fluxograma
Pseudocdigo
Inicio
N1 2
N2 3
N1 = , N1
N2 = , N2
Fim
Programa ALG10;
Var
N1,N2: Inteiro;
Inicio
N1 2;
N2 3;
Escreva (N1 = , N1, N2 = ,N2);
Fim.
18/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.
Inicio
a 15;
b 3;
Soma = , a + b
Fim
Programa ALG13;
Var
a,b,soma: Inteiro;
Inicio
a 15;
b 3;
soma a + b;
Escreva ( Soma = , soma);
Fim.
19/115
Fluxograma
Pseudocdigo
Programa ALG14;
Var
letra:caracter;
Inicio
letra A;
Escreva(letra);
Fim.
Inicio
Programa ALG15;
Var
n:real;
Inicio
Escreva (Digite um nmero real:);
Leia (n);
Escreva (n);
Fim.
Nn
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.
20/115
Fluxograma
Pseudocdigo
Inicio
num1
num2
1 = , num1
2o = , num2
Fim
21/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.
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
22/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.
- literal de comprimento 6.
23/115
- literal de comprimento 1.
1-2+3=
- literal de comprimento 6.
AbCdeF
- literal de comprimento 7.
- literal de comprimento 1.
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:
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.
ltima atualizao: 22/4/2008; 11:51:05
24/115
Sintaxe da declarao:
Var
<nome_da_varivel> : <tipo_de_dados>;
Regras:
Para um mesmo tipo de dado, podem ser listadas vrias variveis (seus nomes devem
Exemplos:
Var
nome,endereo: caracter;
idade:inteiro;
salrio:real;
tem_filhos:lgico;
2.2.3. Variveis versus alocao de memria
Digamos que o problema a ser resolvido : somar dois nmeros quaiquer, tais como:
25/115
Neste caso, os dados que devem ser armazenados, considerando os valores 2 e 3, so:
TIPO DE DADO
Inteiro
Literal [1] (1 caracter)
Real
Lgico
TAMANHO
2 bytes
1 byte
4 bytes
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:
26/115
27/115
2.2.4. Operadores
28/115
Operador
+
*
/
Operao
Adio
Subtrao
Multiplicao
Diviso (onde o resultado ser um nmero real)
Diviso (onde o resultado ser um nmero inteiro)
DIV
MOD
** ou exp(a, b)
Sqrt (x)
Exp(ln(x)*n)
Exemplo
2 + 5 =7
20 10 = 10
3 * 5 = 15
5 / 2 = 2,5
10 div 2 = 5
7 div 2 = 3
7 mod 2 = 1
5 ** 2 ou exp(5, 2)
Sqrt(5)
Exp(ln(5)*3)
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
Relao
E (And)
E lgico
Ou (Or)
Ou lgico
Descrio
Conjuno (as duas
ao mesmo tempo )
Disjuno Inclusiva
Negao
No (Sei_nada)
Exemplo
(Media > 5) .E. (Freq > 75)
Veja a tabela verdade apresentada a seguir para entender melhor os operadores lgicos,
onde P e Q so variveis do tipo lgico.
P
F
F
V
V
Q
F
V
F
V
P.e. Q
F
F
F
V
P .ou. Q
F
V
V
V
P .ou-X. Q
F
V
V
F
29/115
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
Igualdade
ou <>
Diferente
>
Maior que
Exemplo
Nome = Joo da Silva
Saldo 100,00
Salrio > 3000,00
Idade > 18
ou >=
<
ou <=
Mdia 5,0
Menor que
Aluguel 400
soma e subtrao
4
5
Operador Lgico E
Operador Lgico Ou
(resolvidos
da
a) O que varivel?
b) O que tipo de dado?
ltima atualizao: 22/4/2008; 11:51:05
30/115
2) Relacione as colunas
Tipo de dado
a) Numrico
inteiro
b) Numrico real
c)
Literal
d) Lgico
Descrio
( ) 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.
( ) So chamados de boleanos. Pode assumir dois valores: Falso e Verdadeiro. No
algoritmo seus valores so delimitados pelo ponto (.V.).
( ) So nmeros pertencentes ao conjunto dos nmeros inteiros (Z), podendo
assumir valores negativos, nulos e positivos.
( ) 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
0.7845
+35987
.V.
.F.
32
32.0
-0.0
24.01
1-2+3=
qual?
Tipo de dado
Dado
Tipo de dado
abc
.F.
-0.0
+36
-1
2
Teste
144
AbCdeF
-13.3
)
)
)
)
)
)
Abc
123a
_
A123
A1_v3
AB CDE
(
(
(
(
(
(
)
)
)
)
)
)
3abc
_a
Aa
_1
_a123
etc...
(
(
(
(
(
(
)
)
)
)
)
)
A
acd1
1
A0123
B214
guarda-chuva
31/115
Nome simblico
A
Posio inicial
1
Tipo de dado
Real
b) VAR
Nome simblico
Posio inicial
Tipo de dado
x,y : inteiro;
nome, profissao : literal [20];
rua : literal [30];
numero : inteiro;
renda : real;
) Valor
) abc
) B248
) A/B
) X2
)a
) salrio
) Nome
(
(
(
(
(
(
(
(
)3x4
) 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
32/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.
(
(
(
(
(
)
)
)
)
(
(
(
(
)
)
)
)
33/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 .e. PROFISSO = MDICO
c) NOME <> ANA .ou. PROFISSO = PROFESSOR .e. A+1 >= 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
b) P .e. R
c) Q .e. S
d) Q .e. R
e) P .ou. S
f) P .ou. R
g) Q .ou. S
h) Q .ou. R
i) No P
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) X + 2 3 Y 3B
3
2
3
C
+Y
5( 2W + )
A+ B
Y
c) X 1
4Z
34/115
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).
35/115
Fluxograma
Algoritmo SomaAB;
Var
A, B, S : inteiro;
Incio
Leia (A, B);
S A + B;
Escreva (S);
Fim
Codificao em PASCAL
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.
36/115
Fluxograma
Algoritmo CalcHip;
Var
C1, C2, hip : inteiro;
Incio
Leia (C1, C2);
hip raiz (C1 * C1 + C2 * C2);
Escreva (hip);
Fim
Codificao em PASCAL
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.
37/115
Fluxograma
Algoritmo ConvHMin;
Var
H, M, Mt: inteiro;
Incio
Leia (H, M);
Mt H * 60 + M;
Escreva (Mt);
Fim
Codificao em PASCAL
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.
38/115
Fluxograma
Algoritmo ConvCF;
Var
C, F: real;
Incio
Leia (C);
F 32 + 1.8 * C;
Escreva (F);
Fim
Codificao em PASCAL
Program CalcCF;
Uses WinCrt;
Var
C, F : real;
Begin
Write (Digite Graus Celsius: );
Readln (C);
F := 32 + 1.8 * C;
writeln (Fahrenheit = , F);
End.
39/115
Fluxograma
Algoritmo ReajustaSal;
Var
S, NS, p: real;
Incio
Leia (S, p);
NS S + S * p/100;
Escreva (NS);
Fim
Codificao em PASCAL
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.
40/115
Fluxograma
Algoritmo CalcAreaC;
Var
A, R: real;
Incio
Leia (R);
A R * R * 3.1415;
Escreva (A);
Fim
Codificao em PASCAL
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.
Quando fizer o fluxograma coloque alguns comentrios do lado. Isto ajuda a lembrar o
que cada passo realiza. Veja os exemplos a seguir.
41/115
{ Incio do algoritmo}
{ Incio do algoritmo}
{L valores A e B}
{L Horas e Minutos}
{Converte
{Calcula a soma de A e B}
horas
em
{Mostra minutos}
{Mostra valor calculado}
{Fim do algoritmo}
{Fim do algoritmo}
PREO
R$ 1,20
R$ 1,60
R$ 2,00
R$ 1,20
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.
ltima atualizao: 22/4/2008; 11:51:05
42/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 = *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 :
d=
((x2 x1)
+ ( y 2 y1)
12. Escreva um algoritmo que leia trs nmeros inteiros e positivos (A, B, C) e calcule a
seguinte expresso: D =
R+S
2
2
onde R = ( A + B ) e S = (B + C ) .
2
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.
43/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.
44/115
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.
45/115
Anlise do problema
1) o que tenho?
2) o que quero?
Fim.
28. Crie algoritmos para solucionar os problemas abaixo nas trs formas de representao
conhecidas (Descrio Narrativa, Fluxograma e Pseudocdigo):
a)
b)
c)
d)
e)
f)
g)
h)
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
46/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.
Anlise do problema
Entrada (O que tenho?):
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.
47/115
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
48/115
Anlise do problema
Como (processamento)?
49/115
2.3.2.1. Sintaxe
Como pode ser observado nas sintaxes mostradas a seguir, tem-se a estrutura condicional
simples, composta e aninhada.
Fluxograma
Se (Condio) Ento
Comando_1;
Comando_2;
...
Comando_n;
Fim_se;
Em Pascal
Se fosse um comando s:
If (Condio) Then
begin
Comando_1;
Comando_2;
...
Comando_n;
end;
If (Condio) Then
begin
Comando_1;
end;
---- Ou -----If (Condio) Then
Comando_1;
50/115
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;
51/115
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;
Em Pascal
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;
52/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;
Caso <Varivel>
<valor_1> : <Comando_1>;
<valor_2> : <Comando_2>;
<valor_3> : <Comando_3>;
Fim_caso;
Em Pascal
Case <Varivel> of
<valor_1> : <Comando_1>;
<valor_2> : <Comando_2>;
<valor_3> : <Comando_3>;
End;
53/115
Caso/escolha
Pseudocdigo
Fluxograma
Escolha (Varivel)
Caso (valor_1) : Comando1;
Caso (valor_2) : Comando2;
Seno
Comando3;
Fim_escolha;
Ou desta outra forma:
Caso <Varivel>
<valor_1> : <Comando1>;
<valor_2> : <Comando2>;
Seno
<Comando3>;
Fim_caso;
Em Pascal
Case <Varivel> of
<valor_1> : <Comando_1>;
<valor_2> : <Comando_2>;
Else
<valor_3> : <Comando_3>;
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.
54/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?
1 - Fornece valor das notas (P1 e P2);
Mdia (M) e situao Aprovado
2 - Calcula a mdia aritmtica (M)
3 Como ?
3 - Verifica se M >= 5
Fornece o valor das notas (P1 e P2)
4 - Se sim, mostra mdia (M) e mensagem
Calcula a mdia (M (P1 + P2)/2;
Aprovado.
Mostra resultado (M);
Verifica se aluno foi aprovado (M >= 5)
Mostra somente 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
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.
55/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)
1 - Fornecer valor das notas (P1 e P2);
2 - Calcular a mdia aritmtica (M)
2 O que quero?
3 - Mostra o resultado (M)
Mdia (M) e Aprovado ou Reprovado
4 - Verificar se M >= 5
3 Como ?
5 - Se sim, mostra mensagem Aprovado.
Fornece o valor das notas (P1 e P2)
Calcula a mdia (M (P1 + P2)/2;
6 - Seno mostra mensagem Reprovado.
Mostra o resultado (M);
Verifica se aluno foi aprovado (M >= 5);
Mostra mensagem Aprovadoou 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
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.
Em seguida, considerado tambm que o aluno pode ter ficado para exame (ALG26).
Neste ltimo caso foi utilizada a estrutura condicional encadeada.
ltima atualizao: 22/4/2008; 11:51:05
56/115
Codificao em PASCAL
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.
57/115
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.
58/115
59/115
60/115
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.
61/115
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;
62/115
63/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
infantil A
infantil B
juvenil A
juvenil B
Adulto
FAIXA ETRIA
5 - 7 anos
8 - 10 anos
11-13 anos
14-17 anos
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
ltima atualizao: 22/4/2008; 11:51:05
64/115
crdito de acordo com a tabela abaixo. Mostre uma mensagem informando o saldo mdio e o
valor do crdito.
SALDO MDIO
de 0 a 200
de 201 a 400
de 401 a 600
acima de 601
PERCENTUAL
nenhum crdito
20% do valor do saldo mdio
30% do valor do saldo mdio
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
100
101
102
103
104
105
Cachorro quente
Bauru simples
Bauru c/ovo
Hamburger
Cheeseburger
Refrigerante
PREO UNITRIO
(R$)
1,10
1.30
1,50
1.10
1.30
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
1
2
3
TIPO DE M DIA
aritmtica
ponderada (3,3,4
harmnica
65/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
< 26
26 e < 30
30
GRAU DE OBESIDADE
Normal
Obeso
Obeso Mrbido
66/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
8,0
5,0 e < 8,0
< 5,0
CONCEITO
A
B
C
24. O Botafogo Futebol Clube deseja aumentar o salrio de seus jogadores. O reajuste deve
obedecer a seguinte tabela:
SALRIO ATUAL (R$)
0,00 a 1.000,00
1.000,01 a 5.000,00
acima de 5.000,00
AUMENTO
20%
10%
0%
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.
67/115
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).
Pseudocdigo
Fluxograma
Em Pascal
<Condio>
Comando 1
Comando 2
While <condio> do
Begin
Comando_1;
Comando_2;
Comando_n;
End;
Comando n
68/115
Pseudocdigo
Fluxograma
<varivel> <inicial> ;
<fim>; <passo>
Comando_1
Comando 2
Comando n
Em Pascal
FOR <varivel> := <inicio> TO <fim> DO
Begin
Comando_1;
Comando_2;
Comando_n;
End;
69/115
Pseudocdigo
Fluxograma
repita
Comando_1
Comando_1;
Comando_2
Comando_2;
Comando_n;
At que <condio>;
Comando_n
<Condio>
Em Pascal
REPEAT
Comando_1;
Comando_2;
Comando_n;
UNTIL <condio>;
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
ltima atualizao: 22/4/2008; 11:51:05
70/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.
71/115
Algoritmo endereco;
Var
Nome, telefone, resp : Literal;
Inicio
Resp SIM;
Enquanto (resp=SIM) faa
Leia(nome);
Leia(telefone);
Escreva(Deseja
continuar?
(SIM/NO));
Leia(resp);
Fim_enquanto;
Fim_algoritmo.
Algoritmo endereco;
Var
Nome, telefone : Literal;
Inicio
Leia(nome);
Leia(telefone);
Fim_algoritmo.
Pseudocdigo
COM
SEM
Estrutura Repetio
fim
resp
telefone
nome
(resp=SIM
respSIM
inicio
fim
telefone
nome
inicio
Fluxograma
72/115
Program endereco;
Uses WinCrt;
Var
Nome, telefone: String[20];
resp : String[3];
Inicio
Resp :=SIM;
While (resp=SIM) do begin
Writeln (Digite Nome:);
Readln (nome);
Writeln (Digite Telefone:);
Readln (telefone);
Writeln (Deseja continuar? (SIM/NO));
Read (resp);
End;
End.
Program endereco;
Uses WinCrt;
Var
Nome, telefone: String[20];
Inicio
Writeln (Digite Nome:);
Readln (nome);
Writeln (Digite Telefone:);
Readln (telefone);
End.
PASCAL
ALG31 Algoritmo que entra nome e telefone com e sem a utilizao de estrutura de repetio
COM
73/115
Algoritmo Media;
var
N, SOMA, MEDIA: real;
I: inteiro;
incio
SOMA 0;
para I 1 at 10 faa
leia ( N) ;
SOMA SOMA + N;
fim para;
MEDIA SOMA/10;
Escreva (MEDIA);
Fim_algoritmo.
Program Media;
Uses WinCrt;
var
N, SOMA, MEDIA: real;
I: Integer;
Begin
SOMA := 0;
For I := 1 To 10 Do
Begin
Readln ( N) ;
SOMA := SOMA + N;
End;
MEDIA := SOMA/10;
Writeln (MEDIA:5:2);
End.
PASCAL
SEM
Fluxograma
Program Media;
Uses WinCrt;
var
N1,N2,N3,N4,N5,N6,N7,N8,N9,N10, S: real;
Begin
Readln (N1);
Readln (N2);
Readln (N3);
Readln (N4);
Readln (N5);
Readln (N6);
Readln (N7);
Readln (N8);
Readln (N9);
Readln (N10);
S := N1+N2+N3+N4+N5+N6+N7+N8+N9+N10;
MEDIA := S/10;
Writeln (MEDIA:5:2);
End.
Pseudocdigo
Algoritmo Media;
Var N1,N2,N3,N4,N5,N6,N7,N8,N9,N10, S:
real;
incio
leia (N1); Leia (N2);
Leia (N3); Leia (N4);
Leia (N5); Leia (N6);
Leia (N7); Leia (N8);
Leia (N9); Leia (N10);
S
N1+N2+N3+N4+N5+N6+N7+N8+N9+N10;
MEDIA S/10;
Escreva (MEDIA);
Fim.
Estrutura Repetio
ALG32 Algoritmo que calcula a mdia de 10 notas com e sem a utilizao de estrutura de repetio
Algoritmo valores_1;
Var N: Inteiro;
Incio
N 1;
Enquanto (N <=9 ) faa
Escreva (N);
N N +1;
Fim_enquanto;
Fim_algoritmo.
Algoritmo valores_2;
Var N: Inteiro;
Incio
Para N 1 at 9 com
incremento de 1 faa
Escreva (N);
Fim_Para;
Fim_algoritmo.
Algoritmo valores_3;
Var N: Inteiro;
Incio
N 1;
Repita
Escreva (N);
N N +1;
At que N > 9;
Fim_algoritmo.
Program valores_1;
Uses WinCrt;
Var N: Integer;
Begin
N := 1;
While (N <= 9) do
Begin
Writeln (N);
N := N +1;
End;
End.
Program valores_2a;
Uses WinCrt;
Var N: Integer;
Begin
For N := 1 to 9 do
Begin
Writeln (N);
End;
End.
Ou ----------Program valores_2b;
Uses WinCrt;
Var N: Integer;
Begin
For N := 1 to 9 do
Writeln (N);
End.
Program valores_3;
Uses WinCrt;
Var N: Integer;
Begin
N := 1;
Repeat
Writeln (N);
N := N +1;
Until N > 9;
End.
74/115
75/115
Em uma fazenda existem N bois. Cada Boi traz preso ao seu pescoo um
Cdigo do LancheEspecificao
1. 100
Cachorro quente
2. 101
Bauru simples
3. 102
Bauru c/ovo
4. 103
Hamburger
5. 104
Cheeseburger
6. 105
Refrigerante
Preo Unitrio(R$)
1,10
1,30
1,50
1,10
1,30
1,00
76/115
1.19. Na declarao de imposto de renda devem constar os dados: nome do contribuinte, CPF,
renda anual e nmero de dependentes. Os clculos so feitos da forma a seguir.
i. Desconto de R$ 110,00 por dependente.
ii. Com base na renda lquida (renda anual menos descontos) calculada a
alquota de contribuio de acordo com a tabela:
Renda Lquida
Alquota (%)
At R$ 900,00
Isento
De R$ 901,00 at R$ 5.000,00
5
De R$ 5.001,00 at R$ 10.000,00
10
Acima de R$ 10.001,00
15
Faa um algoritmo para calcular os valores dos impostos a serem pagos por um nmero
indeterminado de contribuintes. No se esquea que, para facilitar seu trabalho, voc deve adotar
um flag.
77/115
2) Elaborar um algoritmo que calcule o dobro de nmeros inteiros lidos at que um desses
nmeros seja negativo.
Pseudocdigo
Programa dobro;
Var num : Inteiro;
Incio
Escreva(Digite um numero:);
Leia(num);
Enquanto (num>0) faa
Escreva(dobro: , num*2);
Escreva(Digite um numero:);
Leia(num);
Fim_enquanto;
Fim.
Fluxograma
Fluxograma
inicio
x1
soma 0
N
Enquanto (x<=N) faa
soma soma + x
xx+1
soma
fim
78/115
Fluxograma
)
)
)
)
)
Fluxograma
Algoritmo agenda;
Var
nome : literal [30];
telefone: literal [11];
resp: literal [1];
Inicio
Resp S;
Enquanto (Resp= S) Faa
Escreva (Entre com o nome e o telefone: );
Leia(nome, telefone);
Escreva(Deseja continuar? (S/N));
Leia (Resp);
Fim_Enquanto;
Fim_algoritmo.
79/115
( ) Algoritmo Exe5_1;
Var
Num : inteiro;
Incio
Escreva (Digite um nmero: );
Leia (Num);
Enquanto Num = 0 faa
Escreva (Dobro = , Num * 2);
Escreva (Digite um nmero: );
Leia (Num);
Fim_enquanto;
Fim.
( ) Algoritmo Exe5_2;
Var
Num : inteiro;
Incio
Escreva (Digite um nmero: );
Leia (Num);
Enquanto Num > 0 faa
Escreva (Dobro = , Num * 2);
Escreva (Digite um nmero: );
Leia (Num);
( ) Algoritmo Exe5_3;
Var
Num : inteiro;
Incio
Escreva (Digite um nmero: );
Leia (Num);
Enquanto Num > 0 faa
Escreva (Dobro = , Num * 2);
Escreva (Digite um nmero: );
Fim_enquanto;
Fim.
( ) Algoritmo Exe5_4;
Var
Num : inteiro;
Incio
Escreva (Digite um nmero: );
Leia (Num);
Enquanto Num > 0 faa
Escreva (Dobro = , Num * 2);
Escreva (Digite um nmero: );
Leia (Num);
Fim_enquanto;
Fim.
Fim.
Fluxograma
inicio
Algoritmo valores;
Var N: Inteiro;
Incio
num 10;
Enquanto (N > 50) faa
Escreva (num);
Fim_enquanto;
Fim_algoritmo.
N 10
N <= 50
NN+2
fim
80/115
Codificao em PASCAL
Program somatorio;
Uses wincrt;
Var
Var
N , Cont , Soma : inteiro;
N , Cont , Soma : integer;
resp: Literal [1];
resp: char;
incio
Begin
resp 'S';
resp:= 'S';
Enquanto resp='S' faca
while resp='S' do
begin
Limpa_tela;
clrscr;
Escreva ( 'Digite o valor de N...: ' ) ;
Write ( 'Digite o valor de N...: ' ) ;
Readln ( N ) ;
Leia ( N ) ;
Cont := 1;
Cont 1;
Soma 0;
Soma := 0;
While Cont <= N do
Enquanto Cont <= N faa
Begin
Soma := Soma + cont ;
Soma Soma + cont ;
Cont := cont +1 ;
Cont cont +1 ;
End;
Fim_enquanto ;
gotoxy(10,5);writeln('Soma = 1 + 2 + 3 +.......+',N,'
Escreva ('Soma = 1 + 2 + 3 +.......+',N,' ...');
...');
Escreva ( 'Soma = ', Soma ) ;
gotoxy(10,10);Writeln ( 'Soma = ', Soma ) ;
Escreva ('Quer continuar "s" ou "n"? ');
gotoxy(5,20);write('Quer continuar "s" ou "n"? ');
Leia (resp);
readln(resp);
Resp Maiscula (resp);
resp:= upcase(resp);
Enquanto (resp<> 'S' ) .e. (resp <> 'N') faa
while (resp<>'S') and (resp<>'N') do
begin
Escreva ('Opo invalida digite "s" ou "n"
gotoxy(5,22);write ('Opo invalida digite "s" ou
!!!!');
"n" !!!!');
Leia (resp);
readln(resp);
Resp maiscula (resp);
resp:=upcase(resp);
Fim_enquanto;
end;
Fim_enquanto;
end;
Limpa_tela;
clrscr;
Escreva ('Foi um prazer irreverssvel programar
com voce!!!!!');
gotoxy(10,10);Writeln ('Foi um prazer irreverssvel
Pressione_uma tecla;
programar com voce!!!!!');
Fecha_janela;
readkey;
Fim_algoritmo.
donewincrt;
End.
81/115
14) Qual a estrutura de repetio que foi utilizada para construir o fluxograma do exerccio
anterior?
( ) ENQUANTO
( ) REPITA
( ) PARA
82/115
15) Faa o teste de mesa abaixo com base no fluxograma do exerccio 13.
n1
n2
op
10
200
20
resp
83/115
programa Um;
inicio
escreva (2+3);
fim_programa.
programa Dois;
inicio
escreva (5+3);
fim_programa.
programa Trs;
var
A, B : inteiro;
inicio
A 2;
B 3;
escreva (A+B);
fim_programa.
programa quatro;
A, B : inteiro;
inicio
leia (A);
leia (B);
escreva ('A+B');
fim_programa.
84/115
( )
Podemos pensar em algoritmo como uma receita, uma seqncia de instrues que do cabo
de uma meta especfica.
( )
( )
Exemplo de algoritmo: pegar a bala; retirar o papel; chupar a bala; jogar o papel no lixo.
( )
Algoritmos devem ser testados aps sua elaborao. Este teste chamado TESTE DE MESA
e significa seguir as instrues do algoritmo para verificar se est correto ou no.
( )
Algoritmo no uma seqncia finita de passos que levam a execuo de uma tarefa.
( )
Exemplo de algoritmo: receba a nota de cada uma das 4 provas; some todas as notas e divida
o resultado por 4; mostre o resultado da diviso.
( )
( )
85/115
Enunciado:
Enunciado:
Programa algo_1;
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 (dia: , dia, mes:, ms, ano: , ano);
Fim.
86/115
c) O que voc entende por Estruturas bsicas de controle (seqncia, seleo e repetio)?
D exemplos dessas estruturas.
( ) verdade
( ) F
( ) falso
( ) A Div 2
( ) 8.5
( )C/3
( ) 34
( ) R. Antnio de Pdua. 20
9) Faa um algoritmo que receba o ano de nascimento de uma pessoa e o ano atual, calcule e
imprima a idade dessa pessoa.
ltima atualizao: 22/4/2008; 11:51:05
87/115
B=8
C = 12
D=2
11) Indique a sada do fluxograma a seguir considerando os valores: Sal = 300,00; Sal =
1000,00 e Sal = 0,0 .
88/115
Cdigo
Cargo
Percentual de aumento
1
Gestor
35%
2
Diretor
30%
3
Secretria
25%
4
Contador
25%
5
Professor
15%
6
Estagirio
10%
7
Pessoal limpeza
10%
.
13) Qual o enunciado que resultou no algoritmo representado pelo fluxograma abaixo?
89/115
16) Dado o pseudocdigo abaixo faa o fluxograma. Trata-se de um algoritmo que l dois
nmeros e imprime uma mensagem dizendo se so iguais ou diferentes.
Pseudocdigo
Fluxograma
Algoritmo CEx16;
Var a,b : inteiro;
Incio
Escreva (Digite o primeiro nmero);
Leia (a);
Escreva (Digite o segundo nmero);
Leia (b);
Se a = b ento
Escreva (Iguais)
Seno
Escreva (diferentes)
Fim_se;
Fim_algoritmo.
17) relacione a coluna da direita com a da esquerda
d)
a)
d)
b)
( ) Se Condio Ento
C1;
C2;
Seno
C3;
C4;
Fim_se;
( ) Se Condio ento
C1
Seno
C2;
Fim_se;
(
)
Ento
Se Condio ( )
Se Condio ento
C1;
C1;
C2;
Fim_se;
Fim_se;
90/115
Nome
simblico
Posio
inicial
Tipo
de dado
19) Converta as expresses aritmticas para uma forma que o computador entenda:
a)
X .( P y ).( A B ).( X + C )
b) b 2 4.a.c
c)
x y
d .A
d)
ab
d
20) Elabore alguns exerccios englobando o contedo da disciplina. Seja criativo. Pode ser:
palavra-cruzada, relacione, falso ou verdadeiro, completar, teste de mesa, etc.
( )
( )
( )
( )
Laos condies e laos contados podem ser aplicados s trs estruturas de repetio
Para, Enquanto e Repita.
A estrutura Escolha pode ser utilizada sempre que o nmero de opes for maior que
trs.
A estrutura Para pode ser utilizada em todas as situaes.
Dentro de uma estrutura de repetio possvel utilizar outras estruturas de repetio
ou deciso.
91/115
23) Elabore alguns exerccios englobando o contedo da disciplina. Seja criativo. Pode ser:
palavra-cruzada; relacione colunas; falso ou verdadeiro; completar a sentena; teste de mesa; e
etc.
Algoritmo 24Ex;
Var
a, b, c, x1,x2 : real;
Incio
Leia (a,c);
Se (a > 0) ento
d b * b 4 * a * c;
Se (d 0) ento
x1 -b + raiz (d);
x2 -b - raiz (d);
escreva (x1, ,x2);
Fim_se;
Fim_se;
Fim_algoritmo;
92/115
26) Dado o fluxograma abaixo, faa o teste de mesa preenchendo a tabela de valores para N = 3.
Fluxograma
Teste de mesa
N
3
-----------------
I <= N
93/115
27) Refazer o fluxograma do exerccio anterior empregando a estrutura de repetio com teste
lgico no final do looping (REPITA).
28) O fluxograma do exerccio 25 pode ter sido elaborado a partir de qual enunciado?
29) Num frigorfico existem 90 bois. Eles tm prendido ao pescoo um carto contendo a
identificao e o peso. Fazer um programa que escreva o nmero e o peso do boi mais gordo e
do boi mais magro.
30) Aps a execuo do programa codificado a partir do algoritmo abaixo qual (is) valor(es)
sero impressos se B = 10.
Algoritmo Ex30;
Var
B, A , X : Inteiro;
Incio
Leia ( B);
A 1;
X 0;
Enquanto ( A < B ) faa
X X+ I;
A A + 2;
Fim_enquanto;
Escreva ( X );
Fim_algoritmo.
X=
Pseudocdigo
94/115
32) Elabore um programa para determinar o valor de K, que dado pela srie abaixo:
K=
1 2 3 4
50
+ + + +L +
2 4 6 8
100
33) Dado o algoritmo abaixo, qual(is) valor(es) devem ser exibidos se o valor de entrada for A=
4 e X= 12, 15, 17 e 6
Algoritmo Ex33;
Var
A, I : Inteiro;
P, X: Real;
Incio
Leia ( A ) ;
I0;
P0;
Repita
Leia ( X );
PPX ;
II+1;
At que ( I = A );
Escreva ( P );
Fim_Algoritmo.
34) Troque a estrutura de repetio PARA do cdigo abaixo para a estrutura de repetio
ENQUANTO.
Para i de 1 at 5 faa
___________________________
Leia (X);
___________________________
S X*X;
___________________________
Escreva (S);
__________________________
Fim_para;
____________________________
35) O que faz o algoritmo abaixo? Faa o teste de mesa utilizando a tabela abaixo.
95/115
inicio
NE, NJ
somaPT 0
somaIT 0
i 1; NE; 1
somaP 0
somaI 0
cont 1
cont <= NJ
Idade,peso
somaP somaP + peso
somaI somaI + idade
cont cont + 1
pesoM somaP/NJ
idadeM somaI/NJ
somaPT somaPT + somaP
somaIT somaIT + somaI
QJ NJ*NE;
pesoMT somaPT / QJ
idadeMT somaIT / QJ
fim
J
1
2
3
4
peso
76
65
68
73
idade
18
21
23
19
pesoM
idadeM
38) Elaborar um algoritmo que efetue a leitura sucessiva de valores numricos e apresentar no
final a soma de todos os valores lidos, a mdia e a quantidade de valores lidos. O programa
dever fazer as leituras dos valores enquanto o usurio estiver fornecendo valores positivos, ou
ltima atualizao: 22/4/2008; 11:51:05
96/115
seja, o programa dever parar quando o usurio fornecer um valor negativo (menor ou igual a
zero).
39) Faa um algoritmo que receba como entrada o nome, a idade e a altura de vrias pessoas.
Como sada o algoritmo deve imprimir os nomes das pessoas com mais de 40 anos. Para encerrar
a entrada de dados, o usurio deve digitar uma idade menor ou igual a zero.
Algoritmo MenorValor;
Var A, B, C,M: real;
incio
Leia ( A,B,C );
Se (A < B) .e. (A < C) ento
MA
Seno
Se (B < C) ento
MB
Seno
M C;
Fim_se;
Fim_se;
Escreva (M);
Fim_algoritmo.
41) Acrescente a estrutura de repetio REPITA ao fluxograma abaixo. A repetio somente
terminar quando n = 999.
97/115
( )
( )
( )
98/115
( )
( )
( )
( )
( )
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.
Os dados necessrios resoluo do problema so entrados apenas via teclado.
C A+B (O valor que est em C somado ao valor em B, e o resultado armazenado
na varivel A.)
TESTE DE MESA utilizado para verificar se instrues do algoritmo esto ou no
corretas.
45) Converta as estruturas de repetio dos dois trechos de algoritmo abaixo. Ou seja, voc
dever acrescentar/retirar/modificar todas as linhas que sejam necessrias para fazer estas
converses.
a) converta para a forma ENQUANTO/FAA
cont 0;
Repita
X Cont * 3;
Cont := Cont + 1;
At (Cont > 10);
46) Faa o teste de mesa completo para o diagrama de blocos abaixo considerando N=3, X = (2,
-1 e 4) e Y = (3, 2 e -4)
99/115
Programa POTENCIA;
Var
i, Pot, X,Y : _________;
R: caractere;
Inicio
R S;
REPITA
Escreva (Base:);
____________
Pot 1;
Escreva (Expoente:);
Leia (Y);
Para i 1 ate _____ com incremento de ___ faa
Pot ____* X;
Fim_para;
Escreva ( X , elevado a , Y, = , Pot);
Escreva (Continua? (S/N));
Leia (R);
AT (____ N);
Fim_programa;
48) Refaa o algoritmo abaixo de tal forma que o valor final seja digitado pelo usurio.
ltima atualizao: 22/4/2008; 11:51:05
100/115
Algoritmo Media_V1;
var
N, SOMA, MEDIA: real;
I: inteiro;
incio
SOMA 0;
para I 1 at 10 faa
leia( N) ;
SOMA SOMA + N;
fim para;
MEDIA SOMA/10;
escreva(MEDIA);
fim.
49) Dados os identificadores abaixo, assinale somente os que so aceitos nas linguagens formais.
(
) VALOR
) SALRIO-LQUIDO
) B248
) Nota_do_aluno
) X2
) NOTA*DO*ALUNO
) A1B2C3
) N23
)3x4
) MARIA
) KM/H
) Cad Clientes
) XYZ
) AH!
) SALA125
) NomeDoCliente
) NOTA
) NOME _DA_EMPRESA
) NoTa
) 3_Ex
50) A biblioteca de uma universidade deseja fazer um algoritmo que leia o nome do livro que
ser emprestado, o tipo de usurio (professor ou aluno), considerando que o professor tem dez
dias para devolver o livro e o aluno somente trs dias, no final imprimir um recibo constando o
nome do livro, tipo de usurio e total de dias para devoluo.
51) Elabore um algoritmo que dado o cdigo do funcionrio, e numero de horas trabalhadas,
calcule seu salrio normal e salrio extra, sabendo que ele ganha R$15,00 por hora normal e R$
30,00 por hora extra e que quando sua jornada for maior que 50 horas as horas excedentes sero
consideradas horas extras, no final imprimir o cdigo do funcionrio, seu salrio normal e seu
salrio extra.
101/115
102/115
Algoritmo Ex54;
Var Cont: inteiro;
A, B, S: real;
Inicio
Cont1;
Repita
Leia (A, B);
S A+B;
Escreva (S);
Cont Cont + 1;
At (Cont > 3);
Fim_algoritmo.
Teste de mesa
Cont
103/115
Algoritmo Ex56;
Var i:____________;
Incio
i ______;
Enquanto (i ___15) faa
Escreva (i);
i i - 0,5;
Fim_enquanto;
Fim_programa.
inicio
Digite a idade
idade
Idade<18
F
V
Menor de
idade
idade<65
Maior de
idade
Maior de
65 anos
fim
58) Dado o fluxograma acima, acrescente uma estrutura de repetio para seja executada a
verificao de idade para vrias pessoas.
104/115
59) Refaa o fluxograma do exerccio anterior substituindo a estrutura condicional pela estrutura
ESCOLHA/CASO.
105/115
2.5. RESUMO
Fluxograma
Pseudocdigo
Pascal
Algoritmo NomeProg;
Program NomeProg;
Variveis
Var
V1,V2: Tipo_de_dado;
V1,V2:Tipo_de_dado;
Inicio
Begin
Fim
Program Exemplo1;
Var
X, Y : real;
Begin
End.
Leia ( X ) ;
Y X + 2;
Write (Informe X: );
Readln (X);
Y:= X + 2;
Escreva ( Y )
ou
If Condio Then
C1;
Se Condio ento
C1;
Fim_se;
Obs: C1
Comando1
igual
Se Condio ento
C1
Seno
C2;
Fim_se;
Se Condio Ento
C1;
C2;
Fim_se;
If X > 0 then
Y := X * X;
a
If Condio Then
C1
Else
C2;
Obs.: Antes de Else no
tem ponto e virgula.
If Condio Then
Begin
C1;
C2;
End;
Obs.: Quando tem mais
de um comando na
estrutura, ou seja, um
bloco de comandos,
obrigatrio o uso de
Begin e End para indicar
comeo e fim do bloco de
comandos.
If X > 0 then
Y:= X * X
Else
Y:= X 4;
If X > 0 then
Begin
Y:= X * X;
X:= X 4;
End;
106/115
Fluxograma
Pseudocdigo
Se Condio Ento
C1;
C2;
Seno
C3;
C4;
Fim_se;
Pascal
If Condio Then
Begin
C1;
C2;
End
Else
Begin
C3;
C4;
End;
For <varivel> :=
<inicio> To <fim>
para <varivel> de Do begin
<inicio> at <fim> com
Comando_1;
incremento de <passo>
Comando_2;
faa
Comando_n;
Comando_1;
End;;
Comando_2;
Comando_n;
Fim_para;
No Pascal o contador
incrementado
automaticamente de Vi a Vf
com passo unitrio. Contagem
regressiva ocorre trocando-se
Vi e Vf de lugar e substituindo
TO por DOWNTO.
Enquanto
<condio>
faa
While <condio> Do
Comando 1;
Begin
Comando 2;
Comando 1;
Comando n;
Comando 2;
Fim_enquanto;
Comando n;
Obs.: Esta estrutura repete os
End;
camandos enquanto a condio for
verdadeira. O contador deve ser
incrementado dentro da estrutura
de repetio.
Repita
Comando_1;
Comando_2;
Comando_n;
At que <condio>;
Obs.: Esta estrutura repete os
comandos at que a condio seja
verdadeira. A diferena entre esta
estrutura e a anterior que esta
executar os comandos pelo
menos uma vez, enquanto a outra
pode no executar nenhuma vez
os comandos.
Repeat
Comando_1;
Comando_2;
Comando_n;
Until condio;
Write ( Informe X: );
Readln ( X );
If X > 0 then
Begin
Y:= X * X;
X:= Y 4 * Y;
End
Else
Begin
Y:= X * X*3;
X:= Y * (X 4);
End;
Write ( Informe A: );
Readln (A);
For I:= 1 to A do
Begin
Write (Informe X: );
Readln ( X );
P:= X * X;
K:= X 4 * P;
y:= X * X*3;
Z:= X * (X 4);
End;
Write ( Informe A: );
Readln (A);
I := 0;
While I < A Do
Begin
Write (Informe X: );
Readln ( X );
P:= X * X;
K:= X 4 * P;
Y:= X * X*3;
I := I + 1;
End;
Write ( Informe A: );
Readln (A);
I := 0;
Repeat
Write ( Informe X: );
Readln ( X );
P:= X * X;
K:= X 4 * P;
Y:= X * X*3;
Z:= X * (X 4);
I := I + 1;
Until I > A;
107/115
Fluxograma
Pseudocdigo
Escolha (Varivel)
Caso (valor_1) : Comando_1;
Caso (valor_2) : Comando_2;
Caso (valor_3) : Comando_3;
Fim_escolha;
Ou desta outra forma:
Caso <Varivel>
<valor_1> : <Comando_1>;
<valor_2> : <Comando_2>;
<valor_3> : <Comando_3>;
Fim_caso;
Escolha (Varivel)
Caso (valor_1) : Comando1;
Caso (valor_2) : Comando2;
Seno
Comando3;
Fim_escolha;
Ou desta outra forma:
Caso <Varivel>
<valor_1> : <Comando1>;
<valor_2> : <Comando2>;
Seno
<Comando3>;
Fim_caso;
Pascal
108/115
Operador
+
*
Operao
Atribuio
Adio
Subtrao
Multiplicao
Diviso (onde o resultado ser um
nmero real)
Diviso (onde o resultado ser um
nmero inteiro)
Resto de uma diviso
/
DIV
MOD
** ou exp(a,
Exponenciao
b)
Raiz quadrada
Sqrt (x)
Exp(ln(x)*n) Exponenciao xn
Exemplo
A7
2 + 5 =7
20 10 = 10
3 * 5 = 15
5 / 2 = 2,5
10 div 2 = 5
7 div 2 = 3
7 mod 2 = 1
ou >=
<
ou <=
Menor que
Menor ou igual que
Ou (Or)
No (Not)
Ou-X (Xor)
=
ou <>
>
Aritmtico
5 ** 2 ou exp(5, 2)
Sqrt(5)
Exp(ln(5)*3)
(Media > 5) .E. (Freq >
Conjuno (as duas ao mesmo tempo )
75)
(Flag = .V.) .Ou. (Cont
Disjuno Inclusiva
> 50)
Negao
No (Sei_nada)
(Sal < 500) Ou-X
Ou Exclusivo
(N_dep > 2)
Igualdade
Nome = Joo da Silva
Diferente
Saldo 100,00
Maior que
Salrio > 3000,00
Idade > 18
Maior ou igual que
Mdia 5,0
E (And)
Classificao
Atribuio
Lgico
Relacional
Veja a tabela verdade apresentada a seguir para entender melhor os operadores lgicos,
onde P e Q so variveis do tipo lgico.
Q
F
P.e. Q
F
P .ou. Q
F
P .ou-X. Q
F
F
F
109/115
3. RESPOSTAS
Procure as respostas para as questes formuladas no arquivo de respostas.
110/115
REFERNCIAS BIBLIOGRFICAS
MANZANO, J.A.N.G., OLIVEIRA, J.F., Algoritmos Estudo Dirigido, Coleo P.D., Editora
rica, So Paulo, 1997.
MANZANO, J.A.N.G., OLIVEIRA, J.F., Algoritmos Lgica para desenvolvimento de
111/115
ANEXOS
A.1. Como ser reprovado em Algoritmos e/ou Laboratrio de
Programao
Por Joo Batista (oliveira @ inf. pucrs.br) e Marcelo (flash @ inf. pucrs.br).
http://www.inf.pucrs.br/~flash/manual/
Siga pelo menos uma das instrues abaixo e sua reprovao estar praticamente garantida nas
disciplinas Algoritmos e Tcnicas de programao! A reprovao ocorrer facilmente e com
tranqilidade!
1. Baixe todas as apostilas da disciplina, e depois carregue na pasta o tempo todo, pois elas
criam um campo magntico onde voc aprende por osmose. NO LEIA nenhuma delas, pois
isso desfaz imediatamente o campo e voc no vai aprender nada!
2. Quando fizer trabalho em grupo, pendure-se em um grupo qualquer e no levante
um dedo pra fazer o trabalho. Lembre-se de que mais tarde voc vai ter de fazer
prova, e no deve estar esgotado de tanto pensar em algoritmos!
3. No entre nunca na biblioteca, nem pra devolver livro dos outros. Voc pode achar algo
interessante pra ler, e isso arruinaria o seu final de semana.
4. O laboratrio de programao deve ser evitado a todo o custo! Alm do desgastante
contato direto com o computador, voc ainda corre o risco de aprender a programar de
verdade, portanto proteja-se!
6. Use a aula pra colocar a conversa em dia, afinal voc nunca sabe quando vai ver seus amigos outra
vez.
6. Se voc for menino, no anote nada e copie o caderno de uma guria. Se voc for guria, no
anote nada e copie de outra guria. Afinal, para ir bem nas provas basta decorar a matria!
112/115
113/115
Formao Acadmica:
Tecnologia em Processamento de Dados
UNESP - Universidade Estadual Paulista
Bauru - SP Brasil
Perodo: 1991 1993
Mestrado em Engenharia Eltrica
Universidade de So Paulo USP
Escola de Engenharia de So Carlos - Depto. de Engenharia Eltrica
So Carlos SP Brasil
Trabalho: "Simulao Computacional da Nitidez de Imagens Radiolgicas para Controle de Qualidade
em Sistemas de Registro de Imagem" (Engenharia Biomdica)
Perodo: 1995 -1997
Bolsa CNPq
Doutorado em Fsica Aplicada
Instituto de Fsica de So Carlos IFSC
Universidade de So Paulo USP
Trabalho: "Simulao do Desempenho das Combinaes cran-Filme em Funo do Feixe de Raios
X Incidente" (Engenharia Biomdica)
Perodo: 1997 2001
Bolsa FAPESP
Ps-Doutorado
Ncleo de Pesquisas Tecnolgicas - NPT
Universidade de Mogi das Cruzes - UMC
Trabalho: "Simulao"
Perodo: 2001 2003
Bolsa FAPESP
Atualmente:
Professor assistente doutor e pesquisadora no Mestrado e Doutorado da Universidade de Mogi das
Cruzes.
ltima atualizao: 22/4/2008; 11:51:05
114/115
115/115