Académique Documents
Professionnel Documents
Culture Documents
Aula Terica 03
Tema 2: Estruturas de Controle
Assunto: Estrutura Condicional. Estrutura Condicional Simples. Estrutura Condicional
Composta
Para solucionar o problema proposto ser necessrio trabalhar uma nova instruo: se ento
fim_se. A instruo se ento fim_se tem por finalidade tomar uma deciso. Sendo a condio
Verdadeira , sero executadas todas as instrues que estejam entre a instruo se ento e a
instruo fim_se. Sendo a condio Falsa, sero executadas as instruo que estejam aps o
comando fim_se
Diagrama de Bloco
Observe no diagrama de bloco a existncia das letras S e N. O S representa sim e est
posicionado para indicar que um determinado bloco de operaes ser executado quando a
condio atribuda verdadeira. O N representa no e ser executado quando foi falsa.
Aula 03
S
Condio
Instrues executadas
quando a condio e
verdadeira
Pseudocdigo
se <condio> ento
Instrues para seqncia verdadeira
fim_se
Cdigo na Linguagem Objeto Pascal
if <condio> then Instruo verdadeira
Caso venha a existir mais de uma instruo verdadeira para uma determinada condio, estas
devero estar inseridas em um bloco, como indicado abaixo:
if <condio> then
begin
Instrues para seqncia verdadeira
end;
utilizados begin e o end para trabalhar com bloco de instrues. Quando a seqncia de
instrues constituda por um nico comando, o begin e o end podem ser omitidos.
Soluo ao problema1 indicado ao inicio.
Algoritmo
1. Ler a nota da primeira avaliao
2. Ler a nota da segunda avaliao
3. Ler a nota da terceira avaliao
4. Calcular a mdia das notas da primeira, segunda e terceira avaliao.
5. Apresentar uma mensagem no caso que a media fosse menor que sete.
6. Apresentar o valor da mdia
Aula 03
Diagrama de Bloco
Inicio
Aval1, Aval2,
Aval3
Media(Aval1+Aval2+Aval3)/3
N
Media < 7
Aluno
Reprovado
Media
Fim
Pseudocdigo
Programa Media
Var
Aval1, Aval2, Aval3, Media : real
inicio
leia Aval1
leia Aval2
leia Aval3
Media(Aval1+Aval2+Aval3)/3
se Media < 7 ento escreva Aluno Reprovado fim_se
escreva Media
Fim
Aula 03
Smbolo
=
<>
>
<
>=
<=
Significado
iguala
diferente de
maior que
menor que
maior ou igual que
menor ou igual que
Aula 03
Diagrama de Bloco
Condio
Instruo
executada
quando a condio
falsa
Instruo executada
quando a condio
verdadeira
Pseudocdigo
se (<condio>) ento
<instrues para condio verdadeira>
seno
<instrues para condio falsa>
fim_se
Cdigo na Linguagem Objeto Pascal
if condio then instruo else instruo
Caso venha a existir mais de uma instruo verdadeira ou falsa para uma determinada
condio, estas devero estar inseridas em um bloco, como indicado abaixo:
if condio then
begin
instruo1
instruo2
.........................
end
else
begin
instruo1
instruo2
.........................
end;
Agora voltamos ao exemplo anterior adicionando a seguinte mensagem, se aluno tem media
Aula 03
Media(Aval1+Aval2+Aval3)/3
N
Media < 7
Aluno Reprovado
Aluno Aprovado
Media
Fim
Psedocdigo
Programa Media
Var
Aval1, Aval2, Aval3, Media : real
inicio
leia Aval1
leia Aval2
leia Aval3
Aula 03
Media(Aval1+Aval2+Aval3)/3
se Media < 7 ento escreva Aluno Reprovado seno Aluno Aprovado fim_se
escreva Media
Fim
Cdigo na Linguagem Object Pascal
Agora vamos acrescentar ao exemplo anterior, que se aluno tem media superior a sete
mostrar um mensagens dizendo Aluno Aprovado. Ento devemos modificar if then para if
then else
program Media1;
uses crt;
var
A1,A2,A3,Media : real;
begin
clrscr;
write('1 Avaliao: ');readln(A1);
write('2 Avaliao: ');readln(A2);
write('3 Avaliao: ');readln(A3);
Media:=(A1+A2+A3)/3;
Writeln('Resultado Final ',Media:7:2);
if Media<7 then writeln('Aluno Reprovado') else writeln('Aluno Aprovad');
readkey;
end.
Operadores Lgicos
Pode ser voc necessite, em algum momento, trabalhar com o relacionamento de duas
condies ao mesmo tempo na mesma instruo se, efetuando desta forma teste mltiplos.
Para este caso necessrio trabalhar com a utilizao dos operadores lgicos. Os operadores
lgicos so trs .e, .ou e .no (and, or e not).
Operador Lgico: E (AND)
Operador do tipo e (and) utilizado quando dois ou mais relacionamentos lgicos de
uma determinada condio necessitam ser verdadeiros. Abaixo, apresentada a tabela verdade para esse tipo de operador:
Condio 1
Falsa
Verdadeiro
Falsa
Verdadeiro
Condio 2
Falsa
Falsa
Verdadeiro
Verdadeiro
Resultado
Falso
Falso
Falso
Verdadeiro
O operador e (and) faz com que somente seja executada uma determinada operao se todas
as condies mencionadas forem simultaneamente verdadeiras, gerando assim um resultado
lgico verdadeiro.
Aula 03
Condio 1
Falsa
Verdadeiro
Falsa
Verdadeiro
Condio 2
Falsa
Falsa
Verdadeiro
Verdadeiro
Resultado
Falso
Verdadeiro
Verdadeiro
Verdadeiro
O operador ou (or) faz com que seja executada uma determinada operao se pelo menos
uma das condies mencionadas gerar um resultado lgico verdadeiro.
Operador Lgico: NO (NOT)
O operador do tipo no (not) utilizado quando se necessita estabelecer que uma
determinada condio deve ser no verdadeira ou deve ser no falsa. O operador no (not) se
caracteriza por inverter o estado lgico de uma condio. Abaixo, apresentada a tabela verdade para esse tipo de operador:
Condio
Verdadeira
Falso
Resultado
Falso
Verdadeira
O operador no (not) faz com que seja executada uma determinada operao, invertendo o
resultado lgico da condio.
Problema 2
Dado um nmero apresentar um mensagens se encontra-se no intervalo entre 20 e 90. Em
caso contrario tambm
Algoritmo
1. Ler um nmero
2. Verificar se encontra-se entre 20 e 90
3. Apresentar um mensagens se encontra-se
Aula 03
Diagrama de Bloco
Inicio
Numero
Numero >= 20
.E.
Numero <= 90
Fim
Pseudocdigo
Programa Intervalo
var
Numero : real
inicio
leia Numero
se Numero >= 20 .e. Numero <=90 ento escreva 'O valor est entre 20 e 90'
seno escreva 'O valor no est entre 20 e 90'
fim_se
fim
Aula 03 10
Cdigo na Linguagem Object Pascal
program intervalo;
uses crt;
var
x : real;
begin
clrscr;
write('Entre o valor: ');readln(x);
if (x>=20) and (x<=90) then writeln('No intervalo') else writeln('Fora do intervalo');
readkey;
end.
Estrutura de Controle com Mltipla Escolha
Note que ao se trabalhar com uma seqncia grande de desvios condicionais encadeados ou
mesmo seqenciais, pode-se deixar o programa difcil de ser interpretado. Porm, existe uma
forma mais adequada e eficiente para atender este tipo de situao, que a estrutura de
controle com mltipla escolha, denominada estrutura case...of, que possui a sintaxe:
case varivel of
opo1 : intruo1
opo2 : intruo2
opoN : intruoN
else
intruo
end;
ou
case varivel of
opo1 :begin
intruo1
intruo2
..............
intruoN
end;
opo2 : begin
intruo1
intruo2
..............
intruoN
end;
......................................
opoN : begin
intruo1
intruo2
..............
Aula 03 11
intruoN
end;
else
intruo
end;
Exemplo: Dado a informao de um nmero inteiro entre 1 e 7 fazer corresponder com os dia
da semana. Por exemplo 1 com Domingo, 2 com Segunda feira at 7 com o Sbado.
Diagrama de Bloco
Inicio
N
S
N=1
N
Domingo
N=2
Segunda Feira
Fim
Cdigo em Pascal
program Dia_Semana;
uses crt;
var
n : integer;
begin
clrscr;
write('Dia da semana: ');readln(n);
{case n of
1 : writeln('Domingo');
2 : writeln('Segunda-Feira');
Aula 03 12
3 : writeln('Tera-Feira');
4 : writeln('Quarta-Feira');
5 : writeln('Quinta-Feira');
6 : writeln('Sexta-Feira');
7 : writeln('Sbado');
else
writeln('Valor errado');}
readkey;
end.
.no. (X>3)
(X<1) .e. .no (B>D)
.no. (X>3) .ou. (C<7)
.no. (D<0) .e. (C>5)
(A>B) .ou. (C>B)
(X>=2)
(X<=1 .e. (B>D)
(D<0) .ou. (C>5)
.no. (D>3) .ou. .no. (B<7)
(A>B) .ou. .no. (C>B)
V___
V___
V___
V___
V___
V___
V___
V___
V___
V___
F__
F__
F__
F__
F__
F__
F__
F__
F__
F__
Aula 03 13
seno
X (A + D) / D * (C +D)
fim_se
escreva X
Resposta:
c)
se (A = 2). ou. (B < 7) ento
X (A + 2) * (B - 2)
seno
X (A + E) / D * (C + D)
fim_se
escreva X
Resposta:
d)
se (A > 2) .ou. .no. (B < 7) ento
X A + E - 2
Seno
X A-E
fim_se
escreva X
Resposta:
e)
se .no. (A > 2) .ou. .no. (B < 7) ento
XA+B
seno
X A / B
fim_se
escreva X
Resposta:
f)
se .no. (A > 3) .e. no. (B < 5) ento
X A + D
seno
X+ D / B
fim_se
escreva X
3. Desenvolver o Algoritmo, Diagrama de Bloco e Pseudocdigo para resolver os
seguintes problemas. Implement-los utilizando os compiladores Portugol e o Free
Aula 03 14
Pascal.
a. Efetuar a leitura de trs valores inteiros (variveis A, B e C) e apresent-los em ordem
crescente.
b. Efetuar a leitura de trs valores (variveis A, B e C) e efetuar o clculo das razes da
equao do segundo grau. Apresentar as duas razes, caso os valores informados permita
2
calcul-las. Forma Geral da Equao de Segundo Grau: ax + bx + c = 0
c. Ler quatros valores referentes a quatro notas escolares de um aluno e imprimir uma
mensagem dizendo que o aluno foi aprovado, se o valor da mdia escolar for maior ou igual a
5. Se o aluno no foi aprovado, indicar uma mensagem informando esta condio. Apresentar
junto com uma das mensagens o valor da mdia do aluno para qualquer condio.
d. Ler quatros valores referentes a quatro notas escolares de um aluno e imprimir uma
mensagem dizendo que o aluno foi aprovado, se o valor da mdia escolar for maior ou igual a
7. Se o aluno no foi aprovado, solicitar que seja informada a nota de exame, somar com o
valor da mdia e obter nova mdia. Se a nova mddia for maior ou igaul a 5, apresentar uma
mensagem informando que o aluno no foi aprovado em nenhuma das circunstncias. Se o
aluno no foi aprovado em nenhuma das circunstncias anteriores, apresentar uma mensagem
informando sua reprovao. Apresentar junto com as mensagens o valor da mdia obtida pelo
aluno.
e. Ler dois valores numricos reais e apresentar a diferena do maior pelo menor.
4) Outros Exerccios
a.Desenvolver um programa que efetue a leitura de dois valores numricos inteiros, efetue a
adio dos valores e apresente o seu resultado, caso o valor somado seja maior que 10.
b.Dada a leitura de dos nmeros reais, o usurio deve escolher uma operao entre adio,
subtrao, multiplicao, diviso e apresentar o resultado.
c.Fazer um programa que leia dois valores inteiros e independentemente da ordem em que
foram fornecidos, estes devero ser impressos na ordem crescente, ou seja, se forem
fornecidos 5 e 3, respectivamente, devero ser apresentados 3 e 5. O programa em questo
dever efetuar a troca dos valores entre as duas variveis.
d.Desenvolver um programa que efetue a leitura de trs valores para os lados de um
tringulo, considerando lados como: A, B e C. Esse programa dever verificar se os lados
fornecidos formam realmente um tringulo. Se for esta condio verdadeira, dever ser
indicado qual tipo de tringulo foi formado: issceles, escaleno ou equiltero".
e.Fazer um programa que pedir como entrada um valor numrico do tipo inteiro que esteja
entre 1 e 12. Em seguida, o programa dever apresentar o nome do ms correspondente ao
valor informado. Caso seja informado um valor de um ms inexistente, o programa dever
avisar o usurio do erro cometido.
f.Construir um programa que faa a leitura de dois valores numricos do tipo inteiro e efetue
a adio destes valores. Caso o resultado obtido seja menor ou igual a 10, esse dever ser
Aula 03 15
apresentado somando-se a ele mais 5. Caso o valor somado seja maior que 10, esse dever
ser apresentado subtraindo-se 7.
g. Fazer um programa que leias trs valores inteiros (variveis A, B e C )determine e imprima
o menor deles.
h.Efetuar a leitura de quatros valores e apresente o maior valor, menor valor, a media e somas
dos cubos.Elaborar um programa que efetue a leitura de um nmero inteiro e apresente uma
mensagem se o nmero par ou impar.