UFRPE – Deptº de Estatística e Informática Disciplina: Introdução à Computação Prof.: Paulemir G. Campos Linguagem PASCAL Estruturas de Controle Material elaborado pela Profª Alzennyr Cléa da UFRPE. Linguagem PASCAL 1 Tipos de Variáveis Integer (Inteiro): – de -32768 a 32767. Real (Real): – positivos de 3.4x10-38 a 3.4x1038. – Suportam notação científica: • 452.13 = 4.5213e2 Char (caractere): – usam ‘ ‘ para serem designados: 'a' 'B' '+' – valores entre 0 e 255 • é diferente de um número inteiro Boolean (lógico): – podem ser TRUE ou FALSE Linguagem PASCAL 2 Funções sobre Números odd: par ou impar abs: valor absoluto arctan: arco tangente em radianos cos: cosseno de valor em radianos exp: exponencial ln: logaritmo natural round: arredondamento sin: seno de valor em radianos sqr: quadrado sqrt: raiz quadrada trunc: truncagem Linguagem PASCAL 3 Importante: Identação! Qual dos códigos abaixo é mais legível? (1) (2) program visual; const a=5; b=385.3; var alpha,beta:real; begin alpha := a + b; beta:= b / a end. program visual; const a = 5; b = 385.3; var alpha, beta : real; begin alpha := a + b; beta := b / a end. Linguagem PASCAL 4 Tabela Verdade de Operadores Booleanos A B A and B A or B Operadores: not: negação and: conjunção or : disjunção A V F V V F F V F V F V F F F V V V F not A F V Linguagem PASCAL 5 Estruturas de Controle Seqüencial Condicional ou Seletiva (se...então) Repetição (enquanto,repita,para) Linguagem PASCAL 6 Estruturas de Controle: Seqüencial Fluxograma: Pseudocódigo: Início início declare A, B,C: real ler A,B leia (A,B) C (A+B)*B escreva (C) fim. C =(A+B)*B escrever C Linguagem PASCAL Fim 7 Sequencial - Linguagem Pascal program Calculo; var A,B,C: real; begin read (A, B); C:=(A+B)*B; write (C); end. Linguagem PASCAL 8 Estruturas de Controle: Condicional Pseudocódigo: Fluxograma: início Início A=1 declare A, B: inteiro A1 B=2 B2 se A>B então V A5 A>B F senão A=5 A10 A=10 fim-se fim Linguagem PASCAL Fim 9 Condicional - Linguagem Pascal program condicao; var A, B, C, menor: real; begin readln(A,B,C); if (A<B) and (A<C) then menor:=A sem ‘;’ else if B<C then menor:=B else menor:=C; write (menor); end. simples if condicao then bloco; composta if condicao then bloco1 else bloco2; Obs: Quando o bloco contem apenas um comando não é necessário usar os delimitadores begin eLinguagem end PASCAL 10 Condicional - Linguagem Pascal program aprovacao; var nome: string; nota1, nota2, nota3: real; media: real; aprovado: boolean; begin write (‘Digite seu nome: ’); readln (nome); write (‘Digite suas 3 notas: ’); readln (nota1, nota2, nota3); media := (nota1+nota2+nota3)/3; aprovado:=(media>=7); if (aprovado=true) then begin writeln (‘Parabens ’, nome, ‘ voce esta aprovado !’); writeln (‘Sua média foi: ’, media:5:2); end else begin writeln (nome, ‘, você esta reprovado !’); writeln (‘Sua media foi: ’, media:5:2); end; end. Linguagem PASCAL 11 “Se” Mais Completo: CASE CASE <expressão> OF <opção1> : <comando1>; <opção2> : <comando2>; ... ... <opçãoN> : <comandoN>; [ ELSE <comando>; ] END; Linguagem PASCAL 12 Condicional: CASE program Maiusculo; var letra: char; begin readln (letra); case letra of ‘a’..’z’ : letra := chr ( ord (letra) - 32 ); ‘ç’ : letra := ‘Ç’; ‘ñ’ : begin writeln(‘Não usado na língua portuguesa!’); letra:= ‘?’; end; else begin writeln(‘Não está na lista dos aceitos...’); letra:= ‘?’; end; end; write(letra); end. Linguagem PASCAL 13 Estruturas de Controle: Repetição Fluxograma: Pseudocódigo: Início início declare A, B, I, C: inteiro A=1 A1 B=1 B1 I=1 I1 enquanto (I<5) faça CA+B V C=A+B AB A=B BC B=C I I+1 I=I+1 fim-enquanto Linguagem PASCAL fim I<5 F Fim 14 Repetição - Linguagem Pascal while (enquanto) while condição do begin comandos; end; program pergunta; var resp: char; begin resp := ‘X’; while ( resp <> ‘N’ ) and ( resp <>’n’ ) do begin writeln (‘Ola!’); write (‘Novamente (S/N) ? ‘); readln (resp); end; end. Linguagem PASCAL 15 Repetição - Linguagem Pascal while (enquanto) ... readln (Media); { parar com -1 (flag = sinal) } while (Media <> -1) do begin if (Media >= 7.0) then writeln (‘Aprovado’) else writeln (‘Reprovado’); readln (Media); end; ... Linguagem PASCAL 16 Repetição: while (enquanto) - ERROS! ... WHILE (Idade < 20) DO Salario := Salario – Desconto; ... X := 1.0; WHILE (X < 10.0) DO X := X – 0.1; ... Resp := ‘?’; WHILE (Resp <> ‘S’) DO begin Writeln (‘Novamente (S/N) ? ‘); Readln (Resp); end; ... Linguagem PASCAL { Laço Infinito! } {Laço Infinito! } { Laço Infinito! } 17 Repetição: repeat ... until repeat writeln (‘Olá!’); write (‘Novamente (S/N) ? ‘); readln (resp); until ( resp = ‘N’ ) or ( resp =’n’ ) ; ... repeat { -1 pára o programa } readln (Media); if (Media <> -1) then if ( Media >= 7.0 ) then repeat comandos; until condicao; writeln (‘Aprovado’) else writeln (‘Reprovado’); until (Media = -1) ; ... Linguagem PASCAL 18 Repetição: for (para) program media_aluno; var aluno: integer; for var := inicio to fim do begin comandos; end; nota1, nota2: real; begin for aluno := 1 to 5 do begin readln (nota1, nota2); writeln (‘Media = ‘, (nota1+nota2)/2); end; end. Linguagem PASCAL 19 Repetição: for (para) for var := fim downto inicio do begin comandos; end; program letras; var c: char; begin for c:=´Z´ downto ´A´ do write (c); end. Linguagem PASCAL 20