1 / 90

Computação I MPCE

Computação I MPCE. Programação Pascal Prof. Dr. Marcelo Duduchi. Objetivos. Como funciona e qual a estrutura básica de um programa Pascal? Quais as estruturas de controle de fluxo de controle existentes no Pascal? Quais as estruturas de dados pré-definidas no Pascal?

lundy
Download Presentation

Computação I MPCE

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

  2. Objetivos • Como funciona e qual a estrutura básica de um programa Pascal? • Quais as estruturas de controle de fluxo de controle existentes no Pascal? • Quais as estruturas de dados pré-definidas no Pascal? • Como trabalhar com subrotinas em Pascal?

  3. Tópicos Abordados (1) • Estrutura de um programa Pascal; • Tipos de dados, variáveis e constantes; • Operadores; • Comandos de leitura e escrita (I/O); • Estruturas de controle seqüencial; • Estruturas de controle de decisão; • Estruturas de controle de repetição;

  4. Tópicos Abordados (2) • Transformação de tipos de dados; • Tipos estruturados homogêneos: unidimensionais e multidimensionais; • Tipos estruturados heterogêneos; • Criação de Novos tipos de dados; • Manipulação de cadeias de caracteres; • Subrotinas (funções e procedimentos); • Passagem de parâmetros;

  5. Estrutura de um programa Pascal ProgramNomedoprograma; usesbiblioteca 1,...,biblioteca n; constconstante 1,...,constante n; typenome do tipo = declaração do tipo; varlista de variáveis: tipo da variável; declaração das procedures e functions; begincomandosend.

  6. Tipos de Dados • Inteiro; • Número em ponto flutuante (real); • Caractere; • Cadeia de Caracteres; • Lógico;

  7. Valores Inteiros • byte: 0 a 255; • shortint -128 a 127; • word 0 a 65.535; • integer -32.768 a 32.767; • longint -2147483648 a 2147483647; respectivamente: 1, 1, 2, 2 e 4 bytes

  8. Valores em Ponto Flutuante • single 1.5E-45 a 3.4E38; • real 2.9E-39 a 1.7E38; • double 5.0E-324 a 1.1E308; • extended 3.4E-4951 a 1.1E4932; • comp 9.2E-18 a 9.2E18; respectivamente:8,12,15,20 e 20 casas; respectivamente:4,6,8,10 e 8 bytes

  9. Um Único Caractere (char) • Ocupa um byte e permite armazenar um caractere da tabela ASCII que possui 256 caracteres; • Pode ser informado entre apóstrofo ou com o caractere # e o número da tabela referente ao caractere; • Exemplo: #70 ou ‘F’

  10. Cadeia de Caracteres (String) • Ocupa até 256 bytes dependendo da declaração e permite armazenar caracteres da tabela ASCII; • seu tamanho pode ser informado entre colchetes na declaração e tem valor referenciado entre apóstrofos; • exemplo: ‘cadeia de caracteres’

  11. Valor lógico (boolean) • Ocupa um byte de memória usado para armazenar os valores lógicos verdadeiro (true) e falso (false); • pode ser manipulado pelos operadores lógicos: NÃO (not), E (and), OU (or) e OU EXCLUSIVO (xor)

  12. Identificadores • Nomes que são criados pelo programador para representar elementos diversos dentro do programa; • São usados no Pascal para denominar programas, novos tipos de dados, constantes, variáveis, funções e procedimentos;

  13. Identificadores • Pode ter qualquer tamanho com 63 primeiros dígitos significativos; • Pode utilizar os caracteres de: ‘0’ a ‘9’, ‘A’ a ‘Z’, ‘a’ a ‘z’ e ‘_’ • Deve ser diferente das palavras reservadas do Pascal; • Não pode começar por número; • Trata Maiúsculas = Minúsculas;

  14. Declaração de Constantes • Deve-se indicar a palavra const seguida do nome, = e o valor a ser armazenado; • Não pode ter seu valor alterado durante o programa; • constnome = valor; • Exemplo: const PI = 3.1416;

  15. Variáveis • Área de memória cujo valor pode ser alterado através de seu nome ou seu endereço; • É utilizada para guardar valores temporários do programa; • Seu conteúdo pode ser alterado durante a execução do programa;

  16. Declaração de Variáveis • Deve-se indicar a palavra var seguida do nome, : e o tipo de dados a ser armazenado por ela; • varnome : tipo de dado; • Exemplos: var nota:integer; var N1, N2, N3:real; var Nome: string[40];

  17. Operadores Lógicos • NÃO: identificado por not; • E: identificado por and; • OU: identificado por or; • OU EXCLUSIVO: por xor;

  18. Operadores Aritméticos • + : adição; • - : subtração; • * : multiplicação; • / : divisão real; • div : divisão inteira; • mod: resto da divisão;

  19. Operadores Relacionais • < , <= : menor e menor ou igual; • > , >= : maior e maior ou igual; • = : valor igual; • < > : valor diferente; • in [ valor inicial .. valor final] : verificar se o valor está entre valor inicial e final citado no comando;

  20. Comando de Escrita (saída) • Pode ser usado só write escrevendo na posição corrente do cursor o conteúdo indicado; • Pode ser usado writeln escrevendo o conteúdo indicado e pulando de linha em seguida; • Formato:write ( valor : tamanho : decimais );

  21. Comando de Escrita (saída) • Exemplos: write(custo:9:2); writeln(‘João’); writeln(‘Valor = ’,x); write(x+y);

  22. Comando de Leitura (entrada) • Pode ser usado read ou readln colocando dentro da variável indicada o valor digitado pelo usuário; • O readln é usado para ler a linha toda até o enter o read permite a inclusão de diversos valores de acordo com o número de variáveis • Formato:read (variável1, variável2);

  23. Comando de Leitura (entrada) • Exemplos: read(a,b,c); readln(nome); readln(turma); • Pode ter sua saída controlada por {$I-} e {$I+} em conjunto com o ioresult;

  24. Comando de Leitura (readkey) • Utilizado quando necessitamos de digitação onde a entrada não necessita de um <enter> no final; • Retorna um valor para a rotina chamadora que deve ser atribuído a alguma variável; • formato: variável : = readkey;

  25. Comando de Leitura (readkey) • Exemplos: x:=readkey; writeln(readkey); entrada:=readkey; Necessita da declaração: “uses CRT”;

  26. Comentários • Às vezes é interessante comentar linhas de código para que este fique documentado. • Para isto usamos seguinte: {comentário } ou (*comentários de diversas linhas*)

  27. Controle de fluxo de execução • Para que se controle a seqüência de comandos a serem executados permitindo que seja criada uma lógica que corresponde ao algoritmo desejado usamos as estruturas de controle: • seqüencial; • de decisão ou condicional; • de repetição ou de loop;

  28. Estrutura de controle seqüencial • Usada para agrupar conjunto de comandos; • Faz com que o bloco seja tratado como um único comando; • Usado em estruturas de controle, funções e procedimentos com “;” e no final do programa com o “.”; • Formato: begincomandosend;

  29. Estrutura de controle de decisão • If é usada quando se deve tomar uma decisão de qual grupo de rotinas o programa deve executar; • Não permite por si só que comandos voltem a executar de forma repetitiva; • Pode ser usada de forma a encadear uma estrutura de decisão dentro de outra (ninho de if ’s);

  30. Estrutura de controle de decisão • Formatos: Ifdecisãothen comando ou bloco de comandos; cuidado: antes do “else” não colocar “;” Ifdecisãothen comando ou bloco de comandos else comando ou bloco de comandos;

  31. Estrutura de controle de decisão • Exemplos: ... If nota >= 5.0 then writeln(‘aprovado’); ... ... readln(nota); If nota >= 5.0 then writeln(‘aprovado’) else writeln(‘reprovado’); ...

  32. Estrutura de controle de decisão • Exemplos: ... If nota >= 5.0 then begin writeln(‘exame:’); readln(nota); end; ... If x <= y then begin writeln(‘pode ser:’); writeln(‘x < ou = y’); end else writeln(‘x é maior’); ...

  33. Estrutura de controle de decisão • Exemplos: ... If x > 3 then begin if y > 3 writeln(‘saída A’) else writeln(‘saída B’); end; • Se X = 2 e Y = 2: • Se X = 2 e Y = 5: • Se X = 5 e Y = 2: • Se X = 5 e Y = 5:

  34. Estrutura de controle de decisão • Exemplos: ... If x > 3 then begin if y > 3 then writeln(‘saída A’) else writeln(‘saída B’); end; • Se X = 2 e Y = 2: Não escreve nada; • Se X = 2 e Y = 5: Não escreve nada; • Se X = 5 e Y = 2: Escreve “saída B”; • Se X = 5 e Y = 5: Escreve “saída A”;

  35. Estrutura de controle de decisão • Exemplos: ... If (x>3) and (y>3) then begin writeln(‘saída A’) else writeln(‘saída B’); end; • Se X = 2 e Y = 2: • Se X = 2 e Y = 5: • Se X = 5 e Y = 2: • Se X = 5 e Y = 5:

  36. Estrutura de controle de decisão • Exemplos: ... If (x>3) and (y>3) then begin writeln(‘saída A’); end else begin writeln(‘saída B’); end; • Se X = 2 e Y = 2: Escreve “saída B”; • Se X = 2 e Y = 5: Escreve “saída B”; • Se X = 5 e Y = 2: Escreve “saída B”; • Se X = 5 e Y = 5: Escreve “saída A”;

  37. Faça um programa que receba duas notas, calcule a média das notas e mostre na tela se o aluno foi aprovado. Program exmedia; uses crt; var soma,nota1,nota2:real; beginwriteln(´Digite as notas das provas´); read (nota1,nota2);   media:=(nota1+nota2)/2; if media>=5 thenwriteln(´Aprovado´) else writeln(´Reprovado´); end.

  38. Faça um programa que tendo como entrada a altura  e o sexo de uma pessoa , construa um algorítimo que calcule seu peso ideal, utilizando as seguintes fórmulas: para homens: (72.7*h)-58; para mulheres: (62,1*h)-44.7; Program expesoideal; uses crt; var sexo:char;     h,peso:real; beginwriteln(´Calcule seu Peso Ideal´); write (´Digite seu sexo (M:masculino , F:feminino)´); readln (sexo); write (´Entre com a sua altura´); readln(h) if sexo=´F´ then    peso:=(62.1*h)-44.7 else    peso:=(72.2*h)-58; writeln(´seu peso ideal é´,peso:2:2); readkey; end.

  39. Estrutura de controle de decisão • Case é usada quando se deve tomar uma decisão entre mais de duas opções para uma variável enumerável; • Usada só com inteiros, caracteres e variáveis do tipo lógico; • Pode ter opção else caso nenhuma das anteriores for aceita; • Possui um end no final sem begin;

  40. Estrutura de controle de decisão • Formato: casevariávelof constante1: comandos1; constante2: comandos2; constante3: comandos3; else comando n; end;

  41. Estrutura de controle de decisão • Exemplo: case idade of 1,2,3:writeln(‘bebê’); 4..12:writeln(‘criança’); 13..22:writeln(‘adolesc.’); else writeln(’adulto’); end;

  42. Estrutura de controle de repetição • while é usado quando o teste deve ser feito no início e não se tem um valor contável determinado; • repeat é usado quando o teste deve ser feito no final; • for é usado quando a iteração utiliza um evento contável tendo controle automático da variável de controle;

  43. Estrutura de controle de repetição • Formato 1: whiledecisãodo comandos; • Formato 2: repeat comandos; untildecisão;

  44. Estrutura de controle de repetição • Exemplo 1: ... ct:=1; while ct<11 do begin writeln(‘4*’,ct,’=’,ct*4); ct:=ct+1; end; ...

  45. Estrutura de controle de repetição • Exemplo 2: ... ct:=1; repeat writeln(‘4*’,ct,’=’,ct*4); ct:=ct+1; until ct >10; ...

  46. Estrutura de controle de repetição • Formato 3: forct:= v.i.tov.f.do comandos; • Formato 4: forct:= v.i.downtov.f.do comandos;

  47. Estrutura de controle de repetição • Exemplo 3: for ct:= 1to 10 do writeln(‘4*’,ct,’=’,ct*4); • Exemplo 4: writeln(‘contagem...’) for ct:= 10 downto 1 do writeln(ct);

  48. Transformação de tipos de dados • Inteiro para caractere: variável caractere:=chr(variável inteira); Ex: ch:=chr(97); { retorna ‘a’ } • Caractere para inteiro: variável inteira:=ord(variável caractere); Ex: varint:=ord(‘A’); { retorna 65 }

  49. Transformação de tipos de dados • String para número: val(cadeia,variável numérica,erro); Ex: val(leitura,num,erro); • Número para string: str(variável numérica:tam:dec,cadeia); Ex: str(num:10:2,valor);

  50. Tópicos a abordar na seqüência... • Tipos estruturados homogêneos: unidimensionais e multidimensionais; • Tipos estruturados heterogêneos; • Manipulação de cadeias de caracteres; • Criação de Novos tipos de dados; • Subrotinas (funções e procedimentos); • Passagem de parâmetros;

More Related