Vous êtes sur la page 1sur 15

Aula 03

Universidade Federal de Roraima


Departamento de Matemtica
Introduo Cincia da Computao

Aula Terica 03
Tema 2: Estruturas de Controle
Assunto: Estrutura Condicional. Estrutura Condicional Simples. Estrutura Condicional
Composta

Problema 1: Considere a necessidade de construir um programa, que efetue a leitura de trs


notas de um determinado aluno na disciplina de Matemtica. O programa em questo dever
calcular a mdia e apresent-la, mas alm de calcular e apresentar a mdia, o programa
dever tambm informar se o aluno foi reprovado segundo a verificao de sua mdia. A
mdia dever maior ou igual que sete para ser aprovado.
Observe que aqui ser necessrio verificar a mdia do aluno para ento se tomar uma deciso
no sentido de apresentar a sua real situao: aprovado ou reprovados.

A principal estrutura condicional pode apresentar-se de duas formas:


1. Estrutura condicional simples
2. Estrutura condicional compostas
Estrutura condicional simples

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

Instrues executadas quando


condio for falsa ou aps ser
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

Cdigo na Linguagem Object Pascal


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');
readkey;
end.
Operadores Relacionais
No exemplo anterior, foi utilizado o sinal de < (menor que) para verificar o estado da varivel
quanto ao seu valor, ou seja, a sua condio. Sendo assim, uma condio tambm poder ser
verificada como: diferente; igual; maior que; maior ou igual que e menor ou igual que. Estas
verificaes so efetuadas com a utilizao dos chamados operadores relacionais, conforme
tabela abaixo:

Smbolo
=
<>
>
<
>=
<=

Significado
iguala
diferente de
maior que
menor que
maior ou igual que
menor ou igual que

Desvio Condicional Composto


Anteriormente, foi visto como fazer uso da instruo se ento fim_se (if...then) do tipo
simples. Agora voc aprender a fazer uso da instruo se ento seno fim_se
(if...then...else), que sendo a condio Verdadeira, ser executada a instruo que estiver
posicionada entre a instruo se ento (if...then) e a instruo seno (else). Sendo a condio
Falsa, ser executada a instruo que estiver posicionada logo aps a instruo seno (else).
Caso seja necessrio considerar mais de uma instruo para as condies Verdadeira ou
Falsa, utilizar-se- o conceito de blocos, sendo assim, essa instruo possui a seguinte
estrutura:

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

maior ou igual que sete devemos colocar o mensagem Aluno Aprovado


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 e outro se a
media maior igual que sete.
6. Apresentar o valor da mdia
Diagrama de Bloco
inicio

Aval1, Aval2, Aval3

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

Operador Lgico: OU (OR)


O operador do tipo ou (or) utilizado quando pelo menos um dos relacionamentos lgicos
(quando houver mais de um relacionamento) de uma condio necessita ser verdadeiro.
Abaixo, apresentada a tabela - verdade para esse tipo de operador:

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

'O valor est entre


20 e 90'

'O valor no est


entre 20 e 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.

Orientaes para o estudo individual


a) Estudar pelo livro de texto FreePacal o Captulo 4: A Tomada de Deciso.
b) Fazer os exerccios da pgina 84.
1. Com base nas tabelas verdades de deciso, determine os resultados lgicos das
expresses mencionadas, assinalando se so verdadeiras ou falsas. Considere para as
respostas os seguintes valores: X=1, A=3, B=5, C=8 e D=7.

.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__

2. Indique a sada dos trechos de programa em portugus estruturado, mostrado


abaixo. Para as sadas considere os seguintes valores. A=2 B=3, C=5 e D=9.
a)
se .no. (D > 5) ento
X (A + B) *D
Seno
X (A- B)/ C
fim_se
escreva X
Resposta:
b)
se (A > 2) .e. (B < 7) ento
X (A + 2) * (B - 2)

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.

Vous aimerez peut-être aussi