LÓGICA A PROGRAMAÇÃO...Estrutura condicional simples IF condição THEN comando; O comando só...
Transcript of LÓGICA A PROGRAMAÇÃO...Estrutura condicional simples IF condição THEN comando; O comando só...
LÓGICA A
PROGRAMAÇÃOESTRUTURA CONDICIONAL EM PASCAL
Existem situações em que alguns comandos só devem
ser executados se alguma condição for verificada.
A verificação de que uma condição é satisfeita e, a
partir daí, a decisão em relação à execução ou não de
uma determinada sequência de comandos é
chamada de estrutura de seleção, estrutura de decisão
ou comando de seleção.
Estrutura condicional simples
IF condição THEN
comando;
O comando só será executado se a condição for verdadeira. Uma condição é uma comparação que possui dois valores possíveis: verdadeiro ou falso.
IF condição THEN
BEGIN
comando1;
comando2;
comando3;
END;
O comandos 1, 2 e 3 só serão executados se a condição for verdadeira.
Exemplo 1: programa para determinar o maior de dois números dados.
PROGRAM EXEMPLO1;
VAR
A, B, MAIOR : INTEGER;
BEGIN
WRITE('Digite dois numeros: ');
READLN(A, B);
MAIOR := A;
IF (B > A) THEN
MAIOR:=B;
WRITELN('O maior dos numeros ',A,' e ',B,' e ',MAIOR);
READLN;
END.
Exemplo 2: programa para ordenar os conteúdos de duas variáveis.
PROGRAM EXEMPLO2;
VAR
X, Y, AUX : INTEGER;
BEGIN
WRITE('Digite dois numeros: ');
READLN(X,Y);
WRITELN('Numeros digitados: x = ',X,' y = ',Y);
IF X > Y THEN
BEGIN
AUX := X;
X := Y;
Y := AUX;
END;
WRITELN('Numeros ordenados: x = ',X,' y = ',Y);
READLN;
END.
Estrutura condicional composta
IF condição THEN
comando1
ELSE
comando2;
Se a condição for verdadeira, será executado o comando1; caso contrário,
se a condição for false, será executado o comando2.
Estrutura condicional composta
IF condição THEN
BEGIN
comando1;
comando2;
END
ELSE
BEGIN
comando3;
comando4;
END;
Se a condição for verdadeira, o comando1 e o comando2 serão
executados; caso contrário, se a condição for falsa, o comando3 e o
comando4 serão executados.
Antes do comando ELSE não existe ponto-e-vírgula.
Exemplo3: programa para verificar a paridade de um número.
PROGRAM EXEMPLO3;
VAR
NUM : INTEGER;
BEGIN
WRITE('Digite um numero: ');
READLN(NUM);
IF ODD(NUM) = TRUE THEN
WRITELN(NUM,' e impar')
ELSE
WRITELN(NUM,' e par');
READLN;
END.
Se queremos determinar a paridade um número podemos determinar o
valor de ODD(numero). Se este valor for true, o número é impar; caso
contrário, se for false, o número dado é par.
O valor de ODD(numero) é um valor do tipo boolean (true ou false).
Exemplo4: programa para ordenar três números .dados. PROGRAM EXEMPLO4;
VAR
X, Y, Z, AUX : INTEGER;
BEGIN
WRITE('Digite tres numeros: ');
READLN(X,Y,Z);
WRITELN('Numeros digitados: x = ',X,', y = ',Y,' e z = ',Z);
IF (X > Y) OR (X > Z) {X nÆo ‚ o menor}
THEN IF (Z > Y) {Y ‚ o menor}
THEN
BEGIN {permuta de x e de y}
AUX := X;
X := Y;
Y := AUX;
END
ELSE {Z ‚ o menor}
BEGIN {permuta de x e de z}
Exemplo4: programa para ordenar três números dados. AUX := X;
X := Z;
Z := AUX;
END;
IF (Y > Z) THEN {permuta de y e de z}
BEGIN
AUX := Y;
Y := Z;
Z := AUX;
END;
WRITELN('Numeros ordenados: x = ',X,', y = ',Y,' e z = ',Z);
READLN;
END.
Foi escrita no programa algumas frases explicativas das ações
pretendidas. Estas frases são chamadas comentários e devem ser escritas
entre pares de caracteres chave, { e }. O compilador desconsidera tudo o
que vem entre os dois caracteres. Isso permite ao programador registrar no
próprio programa os comentários que ele achar conveniente. A prática de
se colocar comentários nos programas é muito importante e facilita sua
compreensão.
Estrutura CASE
Em alguns problemas existem comandos mutuamente exclusivos, isto é, se um comando for executado os demais não serão. Quando este for o caso, um comando seletivo é o mais indicado.
CASE seletor OF
lista de alvos1: comando1;
lista de alvos2: comando2;
alvo3: comando3;
alvo4: BEGIN
comando4;
comando5;
END;
END;
Se o seletor atingir a lista de alvos1, o comando1 será executado; se o
seletor atingir a lista de alvos2, o comando2 será executado; se o seletor
atingir o alvo3, o comando3 será executado ou se o seletor atingir o alvo4
então o comando4 e o comando5 serão executados. Se nenhum alvo for
atingido, nada será executado.
CASE seletor OF
lista de alvos1:
BEGIN
comando1;
comando2;
END;
lista de alvos2: comando3;
ELSE
comando4;
END;
Se o seletor atingir a lista de alvos1, o comando1 será executado; se o seletor
atingir a lista de alvos2, o comando2 será executado; se o seletor atingir o
alvo3, o comando3 será executado ou se o seletor atingir o alvo4 então o
comando4 e o comando5 serão executados. Se nenhum alvo for atingido,
nada será executado.
Se o seletor atingir a lista de alvos1, o comando 1 e o comando2 serão
executados; se o seletor atingir a lista de alvos2, o comando 3 será
executado. Se nenhum alvo for atingido, será executado o comando4.
A restrição da estrutura CASE é que o seletor só pode ser uma variável do tipo
CHAR, INTEGER ou BOOLEAN.
Exemplo5: programa que determina o
número de dias de um mês dado.
PROGRAM EXEMPLO5;
VAR
MES, ANO, NUMDIAS : INTEGER;
BEGIN
WRITE('Digite o mes: ');
READLN(MES);
CASE MES OF
4, 6, 9, 11 : NUMDIAS := 30;
2 : BEGIN
WRITE('Digite o ano: ');
READLN(ANO);
IF((ANO MOD 4 = 0) AND (ANO MOD 100 <> 0)) OR (ANO MOD 400 <> 0)
THEN
NUMDIAS := 29
ELSE
NUMDIAS := 28;
END;
ELSE
NUMDIAS:= 31;
END;
WRITELN('O mes ',MES,' tem ',NUMDIAS,' dias');
READLN;
END.