Você está na página 1de 34

Algoritmos e Estruturas de Dados I

Rafael Sachetto (sachetto@ufsj.edu.br) Leonardo Rocha (lcrocha@ufsj.edu.br)


21 de fevereiro de 2011

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 1 / 28

Os comandos em um programa PASCAL deve ser executados sequencialmente, na ordem que aparecem escritos no programa.
PROGRAM CABE C ALHO (INPUT, OUTPUT); VAR D1; D2; . . DM; BEGIN C1; C2; . . CN; END.
Estruturas de Controle Rafael Sachetto e Leonardo Rocha 2 / 28

Exemplo

program Calculo (input, output); var a, b, c: real; begin read(a, b); c := (a + b) * b; writeln(A: , a:3:2, B: , b:3:2, C: , c:3:2); end.

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 3 / 28

Estrutura Condicional Simples


I PASCAL

if condicao then begin sequencia de comandos; end;


I PORTUGOL

se condi c ao ent ao comandos m se

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 4 / 28

Exemplo PASCAL

program Calculo (input, output); var a, b, c: real; begin read(a, b, c); if a + b < c then begin writeln(A soma de A com B e menor que c); end; end.

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 5 / 28

Exemplo PORTUGOL

Algoritmo declare a, b, c num erico leia a, b, c ao se a + b < c ent escreva MENSAGEM m se m algoritmo.

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 6 / 28

Estrutura Condicional Composta


I PASCAL

if condicao then begin sequencia de comandos; end else begin outra sequencia de comandos; end;
I PORTUGOL

c ao ent ao se condi comandos sen ao comandos Estruturas de Controle


Rafael Sachetto e Leonardo Rocha 7 / 28

Exemplo PASCAL
program Alternativas (input, output); var a, b, x, y: real; begin read(a, b); if a = b then begin x := 1.5; y := 2.5; end else begin x := -1.5; y := -2.5; end; write(x, y); end.
Estruturas de Controle Rafael Sachetto e Leonardo Rocha 8 / 28

Exemplo PORTUGOL

Algoritmo declare a, b, x, y num erico leia a, b ao se a = b ent x := 1,5; y := 2,5; sen ao x := -1,5; y := -2,5; m se escreva x,y m algoritmo.

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 9 / 28

Exerc cio
Fazer um programa que leia tr es valores inteiros, determine e imprima o menor valor

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 10 / 28

Exerc cio
Fazer um programa que leia tr es valores inteiros, determine e imprima o menor valor
program MenorValor (input, output); var a, b, c, menor : real; begin read(a, b, c); if (a < b) and (a < c) then begin menor := a; end else if b < c then begin menor := b; end else begin menor := c; end; writeln(menor:1:2); end.

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 10 / 28

Exemplos
Dados tr es valores x, y e z, vericar se eles podem ser o comprimento dos lados de um tri angulo e, se forem, vericar se e um tri angulo equilatero, isosceles ou escaleno.

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 11 / 28

Exemplos
Dados tr es valores x, y e z, vericar se eles podem ser o comprimento dos lados de um tri angulo e, se forem, vericar se e um tri angulo equilatero, isosceles ou escaleno.
I Propriedade: O comprimento de cada lado do tri angulo e

menor que a soma dos comprimentos dos outros dois lados;

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 11 / 28

Exemplos
Dados tr es valores x, y e z, vericar se eles podem ser o comprimento dos lados de um tri angulo e, se forem, vericar se e um tri angulo equilatero, isosceles ou escaleno.
I Propriedade: O comprimento de cada lado do tri angulo e

menor que a soma dos comprimentos dos outros dois lados;


I Deni c ao 1: Chama-se tri angulo equil atero ao tri angulo

que tem o comprimento dos tr es lados iguais;

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 11 / 28

Exemplos
Dados tr es valores x, y e z, vericar se eles podem ser o comprimento dos lados de um tri angulo e, se forem, vericar se e um tri angulo equilatero, isosceles ou escaleno.
I Propriedade: O comprimento de cada lado do tri angulo e

menor que a soma dos comprimentos dos outros dois lados;


I Deni c ao 1: Chama-se tri angulo equil atero ao tri angulo

que tem o comprimento dos tr es lados iguais;


I Deni c ao 2: Chama-se tri angulo is osceles ao tri angulo que

tem os comprimentos de dois lados iguais. Portanto, todo tri angulo equil atero tamb em e is osceles;

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 11 / 28

Exemplos
Dados tr es valores x, y e z, vericar se eles podem ser o comprimento dos lados de um tri angulo e, se forem, vericar se e um tri angulo equilatero, isosceles ou escaleno.
I Propriedade: O comprimento de cada lado do tri angulo e

menor que a soma dos comprimentos dos outros dois lados;


I Deni c ao 1: Chama-se tri angulo equil atero ao tri angulo

que tem o comprimento dos tr es lados iguais;


I Deni c ao 2: Chama-se tri angulo is osceles ao tri angulo que

tem os comprimentos de dois lados iguais. Portanto, todo tri angulo equil atero tamb em e is osceles;
I Deni c ao 3: Chama-se tri angulo escaleno ao tri angulo que

tem o comprimento dos tr es lados diferentes;


Estruturas de Controle Rafael Sachetto e Leonardo Rocha 11 / 28

program Triangulos (input, output); var x, y, z: real; begin read(x,y,z); if (x < y+x) and (y < x+z) and (z < y+x) then begin if (x = y) and (x = z) then begin writeln(Triangulo equilatero); end else if (x = y) or (x = z) or (y = z) then begin writeln(Triangulo isosceles); end else begin writeln(Triangulo escaleno); end; end else begin writeln(Nao existe triangulo); end; Estruturas de Controle Rafael Sachetto e Leonardo Rocha 12 / 28 end.

Estrutura de Repeti c ao - Enquanto (while)


I PASCAL

while condicao do begin sequencia de comandos; end;


I PORTUGOL

ca enquanto condicao fa comandos m enquanto

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 13 / 28

Exemplo PASCAL

program SomaPares; var soma, par : integer; begin soma := 0; par := 100; while par <= 200 do begin soma := soma + par; par := par + 2; end; writeln(soma); end.

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 14 / 28

Exemplo PORTUGOL

Algoritmo SomaPares declare soma, par num erico soma := 0; par := 100; ca enquanto par 200 fa soma := soma + par; par := par + 2; m enquanto escreva soma; m algoritmo.

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 15 / 28

Estrutura de Repeti c ao - Para (for)


I PASCAL

for vari a vel := valor-inicial to valor-final do begin sequencia de comandos; end;


I PORTUGOL

e nal fa ca para variavel de inicio at comandos m para

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 16 / 28

Exemplo PASCAL

program SomaPares; var soma, n : integer; begin soma := 0; for n := 50 to 100 do begin soma := soma + 2*n; end; writeln(soma); end.

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 17 / 28

Exemplo PORTUGOL

Algoritmo SomaPares declare soma, n num erico soma := 0; e 100 fa ca para n de 50 at soma := soma + 2*n; m para escreva soma; m algoritmo.

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 18 / 28

Estrutura de Repeti c ao - Para (for)


I PASCAL

for vari a vel := valor-final downTo valor-inicial do begin sequencia de comandos; end;
I PORTUGOL

e inicio fa ca para variavel de nal at comandos m para

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 19 / 28

Exemplo PASCAL

program SomaPares; var soma, n : integer; begin soma := 0; for n := 100 downTo 50 do begin soma := soma + 2*n; end; writeln(soma); end.

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 20 / 28

Exemplo PORTUGOL

Algoritmo SomaPares declare soma, n num erico soma := 0; e 50 fa ca para n de 100 at soma := soma + 2*n; m para escreva soma; m algoritmo.

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 21 / 28

Exemplo
Fazer um programa que escreva o alfabeto

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 22 / 28

Exemplo
Fazer um programa que escreva o alfabeto program Alfabeto; var c : char; begin for c := A to Z do begin write(C) end; writeln(); c:=A; while c <= Z do begin write(c); inc(c); end; inc(c); Estruturas de Controle writeln(c);

Rafael Sachetto e Leonardo Rocha 22 / 28

Estrutura de Repeti c ao - repita (repeat)


I PASCAL

repeat sequencia de comandos; until condi c ~ a o;

I PORTUGOL

e inicio fa ca para variavel de nal at comandos m para

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 23 / 28

Exemplo PASCAL

program SomaPares; var soma, par: integer; begin soma := 0; par := 100; repeat soma := soma + par; par := par + 2 until Par > 200; writeln(soma) end.

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 24 / 28

Aula Pr atica - Estruturas de Controle


I Receber 5 idades, calcular a m edia e mostrar a m edia

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 25 / 28

Aula Pr atica - Estruturas de Controle


I Receber 5 idades, calcular a m edia e mostrar a m edia

program Idades (input, output); var SomaIdade, Media : Real; Idade, Cont : Integer; begin SomaIdade := 0; Cont := 1; while (Cont <= 5) do begin write(Digite uma idade: ); Read(Idade); SomaIdade := SomaIdade + Idade; Cont := Cont + 1; end; Media := SomaIdade / 5; writeln (A media das idades eh: , Media); end.

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 26 / 28

Aula Pr atica - Estruturas de Controle


I Receber um n umero e imprimir a tabuada deste n umero

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 27 / 28

Aula Pr atica - Estruturas de Controle


I Receber um n umero e imprimir a tabuada deste n umero

Program Tabuada; Var Res, Num, Cont:Integer; Begin Res := 0; write (Digite um n umero: ); read (Num); writeln (A tabuada de multiplicacao eh: ); for Cont := 0 to 10 do begin Res := Num*Cont; writeln(Num, x, Cont, =, Res); end; end.

Estruturas de Controle

Rafael Sachetto e Leonardo Rocha 28 / 28