![Page 1: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/1.jpg)
1
Introdução à Linguagem PASCAL
Prof. Luis Otavio Alvares
![Page 2: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/10.jpg)
10
Entrada e Saída de Dados
![Page 11: 1 Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/11.jpg)
• 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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/12.jpg)
• 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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/13.jpg)
• 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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/23.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/28.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/30.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/31.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/32.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/33.jpg)
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](https://reader035.vdocuments.site/reader035/viewer/2022081513/552fc10a497959413d8c08f8/html5/thumbnails/34.jpg)
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.