introdução à linguagem pascal prof. luis otavio alvares
DESCRIPTION
Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares. 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 dado s - PowerPoint PPT PresentationTRANSCRIPT
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.
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
ConstantesConstantes
• numéricas
• lógicas true false
• literais strings‘Nome’ ‘a12b/c’
‘12345’ ‘true’
caractere branco: ‘ ’
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
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: ; : , { } ( ) . := <= <>
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• ...
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.
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!
10
Entrada e Saída de Dados
• 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 > )
• 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 > )
• 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
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)
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
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)
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.
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’
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
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
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
22
Aula prática 1:
- o ambiente de programação- estrutura de programa Pascal- comandos de entrada / saída- programas seqüenciais
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
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
25
Usando o Dev-Pascal
program OiMundo;begin writeln('Oi mundo!'); readln;end.
Experimente executar sem o comando readln para ver o que acontece
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
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 ;
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
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
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;
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
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 >;
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 >;
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.