Baixe o app para aproveitar ainda mais
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;
Compartilhar