Buscar

Aula_003 - Áreas de um Programa Pascal

Prévia do material em texto

1
Aula 3
Professores:
Dante Corbucci Filho
Alexandre Plastino
Conteúdo:
- Áreas de um Programa Pascal;
- Compilando e Executando Programas;
- Corrigindo Erros de Compilação;
2
Formato Geral de um Programa Pascal
Program Nome_do_Programa(Input{Teclado}, Output{Vídeo},...);
 Uses ...;
 Label ...;
 Const ...;
 Type ...;
 Procedure ...;
 Function ...;
 Var 
 ...;
Begin
 ...;
End. 
BLOCO
DECLARAÇÕES
3
Área de Declaração de Utilização de Bibliotecas
Diagrama sintático:
uses Identificador ;
,
Exemplos:
 uses crt;
 uses crt, grafica;
4
Formato de um programa Pascal
Diagrama sintático:
;
,
Bloco .
( )
 Declarações
program
 Identificador
 Identificador
5
Área de Declaração de Rótulos
Diagrama sintático:
;
,
Inteiro sem sinalLabel
Exemplos:
 Label 50; 
 Label 7, 18, 285;
6
Área de Declaração de Constantes
Diagrama sintático:
Exemplos:
 Const 
 C_Total_de_Cartas = 52;
 Const 
 C_Tamanho_Semana = 7;
 C_Tamanho_Mes = 4*C_Tamanho_Semana+2;
Const Identificador Expressão ;=
7
Área de Declaração de Tipos
Diagrama sintático:
Exemplos:
 Type 
 T_Dominio = 1.. C_Total_de_Cartas;
 T_Imagem = (Ouro, Espadas, Copas, Paus);
 T_Vetor = Array[T_Dominio] of T_Imagem;
 T_Arquivo = File of T_Vetor;
Identificador ;=Type Tipo
8
Tipagem Pascal
1. Não Estruturados e Embutidos ("Built-in"): 
 Integer (Byte, Word, LonInt, QWord), Boolean, Char, Real (Double, Extended);
2. Não Estruturados e Definidos pelo Programador: 
 Enumerados e Sub-Intervalo;
3. Estruturados e Embutidos: 
 String e Text;
4. Estruturados e Definidos pelo Programador: 
 Agregados Homogêneos: Array[...] of ..., File of ...; Set of ...;
 Agregados Heterogêneos: Record ... End;
5. Dinâmicos:
 Ponteiros;
9
Área de Declaração de Variáveis
Diagrama sintático:
Exemplos:
 Var 
 X, Y, Z: real;
 Nome: String;
 Dias: 1..31;
 Baralho : T_Vetor;
 Historico: T_Arquivo;
Identificador ;Tipo:
,
Var
10
Sub-Programação: Declaração de Procedimentos
Diagrama sintático:
Exemplos:
 Procedure Desenhar(F{e}: T_Figura); 
 Begin
 End;
 Procedure Ler_Vetor(Var Vet{s}: T_Vetor_Numerico; Total{e}: Byte);
 Var Indice: Integer;
 Begin
 For Indice:= 1 to Total do readln(Input, Vet[Indice]);
 End;
;;procedure Identificador Bloco
Lista de Parâmetros Declarações
11
Sub-Programação: Declaração de Funções
Diagrama sintático:
Exemplos:
 Function Fatorial(N{e}: Integer):Real; 
 Begin {"Stub"}
 End;
 Function Menu:Char;
 Begin
 ...
 Menu:= UpCase(Readkey);
 End;
Identificadorfunction : ;;Tipo Bloco
Lista de Parâmetros Declarações
12
Sub-Programação: Lista de Parâmetros
Diagrama sintático:
Exemplos:
 (Num {e}: Integer) 
 (Var Vet {e/s}: T_Vetor)
 (Mat {e}: T_Matriz; Var Maior{s}, Menor{s}: T_Elemento)
 
 onde, {e}, {s} e {e/s} são comentários.
Identificador Tipo(
var ,
: )
;
13
Área de Comandos (Bloco)
Diagrama sintático:
Exemplo:
 Begin
 write(output, ’Diga sua idade: ’);
 readln(Input, Idade);
 while Idade<100 do
 begin
 writeln(output, ’Viva mais um ano’);;;;;; {???}
 Idade:= Idade+1;
 end;
 writeln(output, ’Chegaste a seu destino’)
 End
Begin End
;
Comando ou Estrutura de Controle
14
Preparando um programa para Execução
Indicamos o editor Kate na plataforma Linux qualquer para 
escrever nossos programas Pascal (fonte). 
Todo arquivo de programa fonte deve ter a extensão ’.pas’.
 Execute o compilador 
 para traduzir seu 
 programa
 Edite seu programa
e salve-o em arquivo
 Corrija seus erros 
 de Compilação
Programa 
Fonte
Fonte
Revisado
.pas
Lista de Erros
sucesso
falha
15
Preparando um programa para Execução
O Compilador/Carregador/Ligador a ser utilizado é o 
FreePascal 
Acessível em www.freepascal.com
Programa
Objeto
Carregador/Ligador 
Carrega os outros 
arquivos objeto e liga-os 
ao Programa Objeto
Programa 
Executável
sucesso
 Outros 
Arquivos 
 Objeto
.tpu
".exe"
 propriedade
16
Compilando e Executando o seu Programa 
Edite o arquivo teste.pas a seguir:
 Program teste(output{vídeo});
 Begin
 writeln(output, ’teste acaba de ser executado’);
 End.
Kate
16
Compilando e Executando o seu Programa 
Edite o arquivo teste.pas a seguir:
 Program teste(output{vídeo});
 Begin
 writeln(output, ’teste acaba de ser executado’);
 End.
Ao chamar o compilador através do comando:
 fpc teste.pas <enter>
Kate
16
Compilando e Executando o seu Programa 
Edite o arquivo teste.pas a seguir:
 Program teste(output{vídeo});
 Begin
 writeln(output, ’teste acaba de ser executado’);
 End.
Ao chamar o compilador através do comando:
 fpc teste.pas <enter>
A seguinte mensagem aparecerá na tela:
 Compiling teste.pas
 Assembling teste
 Linking teste
 3 Lines compiled, 1.2 sec
Kate
16
Compilando e Executando o seu Programa 
Edite o arquivo teste.pas a seguir:
 Program teste(output{vídeo});
 Begin
 writeln(output, ’teste acaba de ser executado’);
 End.
Ao chamar o compilador através do comando:
 fpc teste.pas <enter>
A seguinte mensagem aparecerá na tela:
 Compiling teste.pas
 Assembling teste
 Linking teste
 3 Lines compiled, 1.2 sec
Para executar o programa basta chamar:
 ./teste <enter>
Na sua tela a seguinte mensagem será escrita:
 teste acaba de ser executado
Kate
17
Compilando e Corrigindo o seu Programa 
Edite o arquivo errado.pas a seguir:
 1 Program errado(input{teclado}, output{vídeo});
 2 Begin
 3 write(output, ’Diga sua idade: ’);
 4 readln(Input, Idade);
 5 while Idade<100 do
 6 begin
 7 writeln(output, ’Viva mais um ano’); 
 8 Idade:= Idade+1;
 9 end;
 10 writeln(output, ’Chegaste a seu destino’)
 11 End.
18
Compilando e Corrigindo o seu Programa 
Ao chamar o compilador através do comando:
 fpc errado.pas <enter>
A seguinte mensagem aparecerá na tela:
 Free Pascal Compiler version 1.0.10 [2003/06/26] for i386
 Copyright (c) 1993-2003 by Florian Klaempfl
 Target OS: Linux for i386
 Compiling errado.pas
 errado.pas(4, 18) Error: Identifier not found IDADE
 errado.pas(5, 10) Error: Identifier not found IDADE
 errado.pas(8, 10) Error: Identifier not found IDADE
 errado.pas(8, 18) Error: Identifier not found IDADE
 errado.pas(11, 4) Fatal: There were 4 errors compiling module, stopping
19
Compilando e Corrigindo o seu Programa 
Edite o arquivo errado.pas a seguir:
 1 Program errado(input{teclado}, output{vídeo});
 2 Var 
 3 Idade: Byte;
 4 Begin
 5 write(output, ’Diga suaidade: ’);
 6 readln(Input, Idade);
 7 while Idade<100 do
 8 begin
 9 writeln(output, ’Viva mais um ano’);
10 Idade:= Idade+1;
11 end;
12 writeln(output, ’Chegaste a seu destino’)
13 End.
20
Compilando e Corrigindo o seu Programa 
Ao chamar o compilador através do comando:
 fpc errado.pas <enter>
A seguinte mensagem aparecerá na tela:
 Free Pascal Compiler version 1.0.10 [2003/06/26] for i386
 Copyright (c) 1993-2003 by Florian Klaempfl
 Target OS: Linux for i386
 Compiling errado.pas
 Assembling errado
 Linking errado
 12 Lines compiled, 0.3 sec
21
Executando o Programa
Para executar o programa basta chamar:
 ./errado <enter>
Na sua tela a seguinte mensagem será escrita:
 Diga sua idade: 
Digamos que você digite noventa e quatro anos:
: Diga sua idade: 94 <enter>
Na tela você receberá as mensagens:
 Viva mais um ano
 Viva mais um ano
 Viva mais um ano
 Viva mais um ano
 Viva mais um ano
 Viva mais um ano
 Chegaste a ser destino
22
Notas e Advertências de Compilação
Edite o arquivo teste.pas a seguir:
 Program teste(output{vídeo});
 Var
 inutil: real;
 Begin
 writeln(output, ’teste acaba de ser executado’);
 End.
22
Notas e Advertências de Compilação
Edite o arquivo teste.pas a seguir:
 Program teste(output{vídeo});
 Var
 inutil: real;
 Begin
 writeln(output, ’teste acaba de ser executado’);
 End.
Ao chamar o compilador através do comando:
 fpc teste.pas <enter>
22
Notas e Advertências de Compilação
Edite o arquivo teste.pas a seguir:
 Program teste(output{vídeo});
 Var
 inutil: real;
 Begin
 writeln(output, ’teste acaba de ser executado’);
 End.
Ao chamar o compilador através do comando:
 fpc teste.pas <enter>
A seguinte mensagem aparecerá na tela:
 Compiling teste.pas
 teste.pas(3,3) Note: Local variable INUTIL not used
 Assembling teste
 Linking teste
 5 Lines compiled, 1.2 sec
23
Notas e Advertências de Compilação
Edite o arquivo teste.pas a seguir:
 Program teste(output{vídeo});
 Var
 inutil: real;
 Begin
 writeln(output, inutil);
 writeln(output, ’teste acaba de ser executado’);
 End.
23
Notas e Advertências de Compilação
Edite o arquivo teste.pas a seguir:
 Program teste(output{vídeo});
 Var
 inutil: real;
 Begin
 writeln(output, inutil);
 writeln(output, ’teste acaba de ser executado’);
 End.
Ao chamar o compilador através do comando:
 fpc teste.pas <enter>
23
Notas e Advertências de Compilação
Edite o arquivo teste.pas a seguir:
 Program teste(output{vídeo});
 Var
 inutil: real;
 Begin
 writeln(output, inutil);
 writeln(output, ’teste acaba de ser executado’);
 End.
Ao chamar o compilador através do comando:
 fpc teste.pas <enter>
A seguinte mensagem aparecerá na tela:
 Compiling teste.pas
 teste.pas(5,19) Warning: Variable INUTIL does not seem to be initialized
 Assembling teste
 Linking teste
 6 Lines compiled, 1.3 sec
24
Edite, Compile e Execute os Programas da Aula 2 
Program operacoes(input{teclado}, output{vídeo});
 Var 
 X, Y: integer; 
 Resultado: real; Op: char; 
 Begin
 write(output, ’Entre com dois inteiros positivos: ’);
 readln(input, X, Y);
 write(output, ’Informe a operação (+, -, * ou /): ’);
 readln(input, Op);
 Resultado:= -1;
 Case Op of 
 ’+’: Resultado := X + Y;
 ’-’: Resultado := X - Y;
 ’*’: Resultado := X * Y;
 ’/’: Resultado := X / Y
 else writeln(output, ’Operação inexistente’)
 end;
 if Resultado<>-1 then writeln(output, X, Op, Y, ’ = ’, Resultado) 
 End.
25
Program operacoes(input{teclado}, output{vídeo});
 Var X, Y: integer; 
 Resultado: real; Op: char; 
 ok: boolean;
 Begin
 write(output, ’Entre com dois inteiros positivos: ’);
 readln(input, X, Y);
 write(output, ’Informe a operação (+, -, * ou /): ’);
 readln(input, Op);
 ok:= true;
 Case Op of 
 ’+’: Resultado := X + Y;
 ’-’: Resultado := X - Y;
 ’*’: Resultado := X * Y;
 ’/’: Resultado := X / Y
 else ok:= false 
 end;
 if ok then writeln(output, X, Op, Y, ’ = ’, Resultado:5:2) 
 else writeln(output, ’Operação inexistente’);
 End.
26
Edite, Compile e Teste os Programas da Aula 2 
Edite o arquivo operacoes.pas no seu editor.
Ao chamar o compilador através do comando:
 fpc operacoes.pas <enter>
A seguinte mensagem aparecerá na tela:
 Free Pascal Compiler version 1.0.10 [2003/06/26] for i386
 Copyright (c) 1993-2003 by Florian Klaempfl
 Target OS: Linux for i386
 Compiling operacoes.pas
 Assembling operacoes
 Linking operacoes
 19 Lines compiled, 1.1 sec
27
Para executar o programa basta chamar:
 ./operacoes <enter>
Na sua tela a seguinte mensagem será escrita:
 Entre com os dois inteiros positivos: 
Digamos que você digite os números quatro e cinco, seguido da tecla enter:
: Entre com os dois inteiros positivos: 4 5 <enter>
Na sua tela a seguinte mensagem será escrita:
 Informe a operação (+, - * ou /): 
Digamos que você escolha a operação de divisão, seguida da tecla enter:
 Informe a operação (+, - * ou /): / <enter>
Na tela você receberá a mensagem:
 4/5 = 0.80
Edite, Compile e Teste os Programas da Aula 2 
28
Aula 3
Professores:
Dante Corbucci Filho
Alexandre Plastino
Conteúdo:
- Áreas de um Programa Pascal;
- Compilando e Executando Programas;
- Corrigindo Erros de Compilação;

Continue navegando