1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

34
1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares

Transcript of 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

Page 1: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

1

Introdução à Linguagem PASCAL

Prof. Luis Otavio Alvares

Page 2: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

2

Histórico da Linguagem PASCAL

• Criada por Niklaus Wirth , em 1969 e 1970, como uma linguagem pequena e eficiente, para encorajar as boas práticas de programação, com o uso de programação estruturada e estruturação de dados

• Foi baseada na linguagem ALGOL• O nome é em homenagem ao matemático e

filósofo francês Blaise Pascal.

Page 3: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

Unidades léxicas (vocabulário) do Unidades léxicas (vocabulário) do PascalPascal• constantes• identificadores• palavras reservadas• símbolos especiais

ConstantesConstantes• numéricas

inteiras ex:ex: 123 - 45 +6789

reais (fracionárias) ex:ex: 1.23 - 4.45 +0.6789

1.23E4 - 1.E+56 +0.67E-22

Page 4: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

ConstantesConstantes

• numéricas

• lógicas true false

• literais strings‘Nome’ ‘a12b/c’

‘12345’ ‘true’

caractere branco: ‘ ’

Page 5: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

IdentificadorIdentificador

Sintaxe de identificador:

< letra > < letras e/ou dígitos e/ou ´_´ >

Unidades léxicas do Pascal

Ex: A12x_3i AnaTerra Valor1

• 63 caracteres significativos• não pode conter espaços brancos• tem que começar por letra

Page 6: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

Unidades léxicas do Pascal

Palavras reservadasPalavras reservadasIdentificadores que não podem ser utilizados como nomes de variáveis pelo programador

Ex: if begin readln for end write

Símbolos especiaisSímbolos especiais

Ex: ; : , { } ( ) . := <= <>

Page 7: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

Estrutura de programas PascalEstrutura de programas Pascal

Program <nome do programa> ;

<declarações, separadas por ponto e vírgula> ; begin <comandos, separados por ponto e vírgula> end.

Cabeçalho: •opcional•nome único no programa

Definir todas as palavras que não fazem parte da linguagem:• nomes de todas as variáveis, com tipo de valor que vai ser armazenado• ...

Page 8: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

8

Exemplo 1

{meu primeiro programa Pascal }

program OiMundo;

begin

write('Oi mundo!'); {mostra}

readln; {espera}

end.

O que está entre { } é um comentário apenas, não é considerado pelo computador

O que está em verde são palavras reservadas do Pascal.

Page 9: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

9

Declarações

• Declaram as variáveis e seus tipos• Os nomes das variáveis devem conter

apenas letras, dígitos e o símbolo _ e iniciar com letra

• Os principais tipos são: integer, real, double, char, string e boolean

• Exemplos

var Valor1, Valor2 : integer; quociente: real; sexo: char; nome: string;

Pascal NÃO diferencia letras maiúsculas de minúsculas!

Page 10: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

10

Entrada e Saída de Dados

Page 11: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

• os dados fornecidos pelo usuário devem concordar com o tipo das variáveis da lista, na ordem definida

Ex: readln(N1,N2,N3);

readln(n1);readln(n2);readln(n3);

Comando de leitura entrada de dados

Sintaxe:

readln ( < lista de variáveis, separadas por vírgulas > )

Page 12: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

• write - o próximo comando de escrita será executado na mesma linha deste, logo após o último valor impresso• writeln - o próximo comando de escrita será executado a partir do início de nova linha• strings - mensagens que se deseja que sejam mostradas - qualquer seqüência de caracteres, entre apóstrofes

Comandos de saída de dados Sintaxe:

write ( < lista de variáveis e strings, sep. por vírgulas > )

writeln ( < lista de variáveis e strings, sep. por vírgulas > )

Page 13: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

• write (´A soma vale : ´, Soma); saída: A soma vale : 1234

• writeln (´A soma vale : ´); writeln ( Soma );

saída: A soma vale : 1234

• writeln (´X=´ , A , ´ - Y=´ , B ); saída: X=12 - Y=7

Exemplos de comandos de saída de dadosExemplos de comandos de saída de dados

• write (´A soma vale : ´); writeln ( Soma );

saída: A soma vale : 1234 Considerando: Soma=1234A=12B=7

Page 14: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

14

Comando de atribuição :=

• Atribui o valor da direita à variável da esquerda• O valor pode ser:

– uma constante,– uma variável ou – uma expressão

• Exemplosx := 4; lemos: x recebe 4

y := x + 2; lemos: y recebe x mais 2

y := y + 4; lemos: y recebe y mais 4

valor := 2.5;

sexo := 'F' constantes devem estar entre aspas simples (apóstrofe)

Page 15: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

o resultado da expressão deve ser compatível com o tipo da variável

Ex: var X:integer; Y:real; C:char; begin

end.

C := 'a'; C := ';';Y := 7 + 3.5; Y := X / 2;

X := 5; X := 5 * 2;

Atribuição

Page 16: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

16Expressões aritméticasExpressões aritméticas

Operador Significado

+ Adição

- Subtração

* Produto

/ Divisão real

div Divisão inteira

mod Resto da divisão inteira

** Potenciação

Sintaxe:

< operando > < operador aritmético > < operando >

Operandos • inteiros• variáveis numéricas• chamadas a funções• expressões aritméticas (podem estar entre parêntesis)

Ex:Ex: A + 1A * 2 + 7.32X div C 2 + cos(X)

Page 17: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

CUIDADO!!!!

17

• OBS: o operador “/” (divisão) exige que a variável que recebe o resultado da divisão seja do tipo real.

Exemplo:

var

X,Y,U: integer;

Z: real;

Begin

X:=2; Y:=3; U:=3;

Z:=X/Y; { Z terá o valor 0.666667}

U:=X/Y; {dá erro de compilação, pois U deveria ser

real}

End.

Page 18: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

18Expressões lógicasExpressões lógicas Sintaxe:

< operando > < operador lógico > < operando > < operador lógico > < expressão lógica >

Operandos • valores lógicos• variáveis booleanas•chamadas a funções• expressões lógicas (podem estar entre parêntesis)

Sintaxe relação:

< expressão > < operador relacional > < expressão >

Operadores relacionais

< > <= >= <> =

Tipos de dados compatíveis

Ex: Idade > 21 Nome = ‘Roberta’

Page 19: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

19Operadores lógicos Operador Tipo Significado

and binário “e”

or binário “ou”

not unário negação

and V F

V V F

F F F

or V F

V V V

F V F

not V F

F V

Sintaxe: 1. < operando > < operador lógico > < operando >

2. not < expressão lógica >

Ex:Ex: ( A > B ) or (A>C) ( Valor >= 0 ) and ( Valor < 10 ) not (A>B)

Os operandos devem estar entre parênteses quando têm operadores relacionais

Page 20: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

Precedência de operadores PascalPrecedência de operadores Pascal

Ordem Precedência Operador

1 Maior not

2 / div mod and

3 + - or

4 Menor = < > <= >= < >

Em dúvida, o melhor é colocar parênteses, para não haver problema

Page 21: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

Funções pré-definidas PascalFunções pré-definidas PascalFunção Argumentos Resultado Ação

abs(X) integer / real integer Valor absoluto

arctan(X) integer / real real Arco tangente

cos(X) integer / real real Cosseno

sin(X) integer / real real Seno

exp(X) integer / real real ex

frac(X) integer / real real Parte fracionária

int(X) integer / real real Parte inteira

trunc(X) integer / real integer Trunca p/ inteiro

round(X) integer / real integer Inteiro + próximo

ln(X) integer / real real Log. neperiano

Pi - real Valor de

sqr(X) integer integer Quadrado

real realsqrt(X) integer / real real Raiz quadrada

Page 22: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

22

Aula prática 1:

- o ambiente de programação- estrutura de programa Pascal- comandos de entrada / saída- programas seqüenciais

Page 23: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

23

O ambiente Dev-Pascal

• O Dev-Pascal é um ambiente de desenvolvimento de programas em Pascal (editor, compilador, bibliotecas...)

• Pode ser baixado de http://www.bloodshed.net/devpascal.html

Page 24: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

24

Usando o Dev-Pascal

• Inicie o Dev-Pascal pelo ícone ou pelo menu

• Crie um novo arquivo, com o comando – Arquivo, Novo Arquivo Fonte – ou clicando no ícone

• Digite o programa da página seguinte

Page 25: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

25

Usando o Dev-Pascal

program OiMundo;begin writeln('Oi mundo!'); readln;end.

Experimente executar sem o comando readln para ver o que acontece

Page 26: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

26

Usando o Dev-Pascal

• Salve o programa com o nome exemplo.pas• Compile o programa pressionando•

• Se houver algum erro de sintaxe, aparece uma ou mais mensagens no rodapé da janela. Neste caso, corrija o programa e repita.

• e depois pressione

para executar o programa

Page 27: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

27

Dicas

• Termine todos os comandos com ;• Quando ocorrer um erro de compilação, dê um

duplo clique sobre a mensagem de erro para destacar o comando errado no programa

• Verifique também a linha anterior, que pode ser a responsável pelo erro, especialmente se faltar o caracter ;

Page 28: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

28

ExemploNa Linguagem Pascal...

Var

n1, n2, n3: integer;

media: real;

begin

readln(n1);

readln(n2);

readln(n3); media:=(n1+n2+n3)/3;

writeln('a media eh: ', media);

readln; {para não desaparecer}

end.

ler n1, n2, n3

Media(n1+n2+n3)/3Mostrar media

Algoritmo

Page 29: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

Exercícios: fazer programas Pascal para:1. Mostrar na tela o produto entre 28 e 43.

2. Mostrar a média aritmética entre 3 números fornecidos pelo usuário.

3. Ler um número inteiro e mostrar seu sucessor e seu antecessor na tela.

4. Ler dois números e mostrar a sua soma. Antes do resultado, deverá aparecer a mensagem: SOMA=.

5. Ler um número e mostrar a terça parte deste número.

6. Ler dois números e mostrar os seguintes resultados:1. Quociente:

2. Resto (para calcular o resto de uma divisão utilize o operador MOD)

7. Leia 4 números e mostre a média ponderada, sabendo-se que os pesos são respectivamente: 1, 2, 3 e 4.

29

Page 30: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

Comandos de decisão (if)

se < expressão lógica >

então < comando >

if < expressão lógica >

then < comando > ;

Algoritmo programa Pascal

if < expressão lógica >

then begin

< comandos >

end;

Page 31: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

31

31

se < expressão lógica >

então < comando >

senão < comando >

if < expressão lógica >

then < comando >

else < comando >;

If < condição >then begin < comandos > endelse begin < comandos > end;

Algoritmo programa Pascal

Page 32: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

32

if < expressão lógica >

then < comando >

else < comando >;

‘‘Ifs’ encadeadosIfs’ encadeados

if < condição 1 >then if < condição 2 > then if < condição 3 > then < comando > else < comando > else < comando >else < comando >; if < condição 1 >

then if < condição 2 > then if < condição 3 > then < comando > else < comando > else < comando >;

Page 33: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

33‘‘Ifs’ encadeados – cuidado !Ifs’ encadeados – cuidado !

if < condição 1 >then if < condição 2 > then if < condição 3 > then < comando > else < comando >else < comando >;

if < condição 1 >then if < condição 2 > then begin if < condição 3 > then < comando >; end else < comando >else < comando >;

Page 34: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares.

34

Exercícios

•Faça um programa Pascal para ler 3 números reais e verificar se o primeiro é maior que a soma dos outros dois. Informar se é maior ou não.

•Faça um programa Pascal que leia 5 números e informe quantos desses números são maiores que 10

•Faça um programa Pascal para ler 3 números reais e verificar se o maior deles é maior que a soma dos outros dois. Informar se sim ou não.

•Faça um programa Pascal para ler três números diferentes e mostrá-los em ordem crescente. Idem para ordem decrescente.

•Faça um programa Pascal para ler os três coeficientes de uma equação de segundo grau e determinar suas raízes.

•Faça um programa Pascal para ler 4 números inteiros e calcular a soma dos que forem par.