40
Linguagem PASCAL 1 Definição e Tipos de Dados Linguagem Pascal Professora Lara Popov Zambiasi Bazzi Oberderder

Linguagem PASCAL - professores.chapeco.ifsc.edu.brprofessores.chapeco.ifsc.edu.br/lara/files/2013/10/Apresentação... · Linguagem PASCAL 20 ... de linha após a leitura dos valores

  • Upload
    lemien

  • View
    266

  • Download
    0

Embed Size (px)

Citation preview

Linguagem PASCAL 1

Definição e Tipos de Dados

Linguagem Pascal

Professora Lara Popov Zambiasi Bazzi Oberderder

Linguagem PASCAL 2

Origem

● Linguagem de programação ● largamente utilizada no ensino-

aprendizagem de ● programação de computadores;● Criada por Niklaus Wirth em 1972, na

Universidade Técnica de Zurique, Suiça;● Seu nome homenageia o matemático Blaise

Pascal (1623-1662);● Existem vários compiladores para esta

linguagem, usaremos o pascalzim.

Linguagem PASCAL 3

Algoritmo x Programa

● Algoritmo: “Conjunto de etapas finitas, ordenadamente definidas com o propósito de obter soluções para um determinado problema.”

● Programa: “Formalização de um algoritmo em uma linguagem inteligível pelo computador.”

Linguagem PASCAL 4

Conceitos Básicos

● Qual o tipo de linguagem que o computador entende? Linguagem de máquina.

● Como podemos fazer a tradução de uma linguagem de programação para linguagem de máquina? Usando um compilador ou interpretador.

● Como um programa é executado no computador?– Primeiro ele é carregado na memória e depois

cada instrução é executada de acordo com a lógica do programa.

Linguagem PASCAL 5

Etapas

1) Definição do problema2) Desenvolvimento de um algoritmo3) Transcrição para PASCAL4) Digitação do programa5) Compilação6) Execução

Linguagem PASCAL 6

Passos para construção de algoritmos

● Ler atentamente o enunciado do problema a ser resolvido;

● Identificar quais são as entradas (ou seja, o que é fornecido) para a solução do problema;

● Identificar o que deve ser feito para, a partir das entradas, produzir as saídas. Um algoritmo pode ser visto como uma função

que leva as entradas para saídas.● No processo, tentar achar uma solução prática

para resolver o problema e depois escreve-la na linguagem algorítmica.

Linguagem PASCAL 7

Turbo Pascal

● Compilador que vamos usar: PASCALZIM

● O programa nasceu como ferramenta de apoio ao ensino da linguagem Pascal na Universidade de Brasília

Linguagem PASCAL 8

Fluxogramas X Pascal

● Um programa em Pascal é composto, basicamente, de três partes. São elas:

– Cabeçalho do Programa;– Área de Declarações;– Corpo do Programa.

Linguagem PASCAL 9

Cabeçalho

program nomeProgram;

Linguagem PASCAL 10

Área das Declarações

var

nome: string;

idade : integer;

altura : real;● Também podemos declarar tipos iguais

var

a, b, c : integer;

Linguagem PASCAL 11

Corpo do programa

begin

instruções;

(...)

end;

Linguagem PASCAL 12

program ADICIONA_NUMEROS;

var

X : integer;

A : integer;

B : integer;

begin

readln(A);

readln(B);

X := A + B;

writeln(X);

end.

Cabeçalho do programa

Área das declarações

Corpo do programaEntradaProcessamentoSaída

Linguagem PASCAL 13

Equivalência de termos entre a Linguagem Algorítmica e Pascal:

Termos em PascalLing Algoritmo PASCAL

Se IfEntão ThenSenão ElseEnquanto WhileFaça DoRepita RepeatPara ForAté Until / To

← :=

Linguagem PASCAL 14

Constantes (CONST)

● Valor fixo. Não muda durante a execução de um programa

● Podem ser numéricas, lógicas ou alfanuméricas (literal)

● Ex:– numéricas: 25, +34, -315, -0.53, 7.8E-3, .13– lógicas: true, false– alfanuméricas: A-Z, a-z, 0-9, !, ?, /, *, &, $, %, ...

Linguagem PASCAL 15

Variáveis (VAR)

● São representadas por identificadores● Formado por:

– uma letra, ou – uma letra seguida de letras ou dígitos:

• Ex: A, Nota, matricula, x, a, a1, a2, bd, A32B• Maiúsculas são iguais a minúsculas: AB = aB

Linguagem PASCAL 16

Palavras Reservadas

● Identificadores usados na linguagem and, array, begin, case, const, div, do, downto, else,

end, file, for, function, goto, if, in, label, mod, nil, not, of, or, packed, procedure, program, record, repeat, set, then, to, type, until, var, while, with.

● Identificadores de significado definido input, output, integer, real, read, write, etc...

Linguagem PASCAL 17

● Em pascal, o programador também tem a liberdade de definir um novo tipo;

● Uma vez definido o novo tipo, este passa a ser referenciado pelo seu identificador;

● Exemplo:type Indices = 0..63;

Letras = ´A´..´Z´;Faixa = -3..3;

var codigo: integer;teste: boolean;letra: Letras;

Definição de novos tipos (type)

Linguagem PASCAL 18

Comentários

● Usado apenas para aumentar a clareza do programa, não é analisado pelo computador:

{ comentário } ou (* comentário *)

var matr: string; { nr. de matricula }nota: real; { nota de prova }cod: integer; (* código do curso *)

Linguagem PASCAL 19

Expressões

● Aritméticas● Lógicas● Literais

Linguagem PASCAL 20

Expressões Aritméticas

● Ordem de prioridade:– 1a: *, /, div, mod– 2a: +, -

● div - quociente da divisão inteira● mod - resto inteiro da divisão inteira

exemplo1: x = 11 div 4 = 2, y = 11 mod 4 = 3exemplo2: u = sqrt(p*(p-a)*(p-b)*(p-c))exemplo3: v = exp(b*ln(a)) = eb*ln a

Linguagem PASCAL 21

Expressões Lógicas

● Relações– A<>B, nome=´João´, a<0, x>1

● Operadores lógicos– p and q, p or q, not p

● Ex: (idade>25) and (nome=´Maria´)● Prioridade dos operadores lógicos e aritméticos

– 1a: not– 2a: *, /, div, mod, and– 3a: +, -, or– 4a: =, <>, <, <=, >=, >, in

Linguagem PASCAL 22

Expressões Literais

● Retorna caracter: chr(cod) { cod = código ASCII (American Standard Code for Information Interchange) }

● Retorna código ASCII : ord(ch) {ch = caracter }

● Sucessor do caracter: succ(ch)● Antecessor do caracter: pred(ch)● Ex: chr(65) retorna ‘A’;

ord( 'C' ) retorna 67;succ( 'd' ) retorna ‘e’;pred( 'd' ) retorna ‘c’;

Linguagem PASCAL 23

Comando de Atribuição

● Identificador := expressãovar A, B, X, Y: integer;

K, Media: real;teste: boolean;cor: string;

K:=1;A:=K;Media := (A+B)/2;teste := (X=0) and (Y<>2);cor := ‘verde’;

Linguagem PASCAL 24

Entrada e Saída (E/S)

● As ações que executam estas tarefas são:– Obter dados:

• leia(dado1, …, dadon);– Apresentar dados:

• escreva(dado1, …, dadon);● Exemplos:

– leia(NOME, IDADE);– leia(PRODUTO, QUANTIDADE, VALOR);– escreva(SOMA, MÉDIA);– escreva(“Nome: ”, NOME, “Idade: ”, IDADE);

Linguagem PASCAL 25

E/S

leia(A, B, C)

leiaA, B, C

escreva(A, B, C)Pseudocódigo

Fluxograma

Pascalwrite(A, B, C)

ouwriteln(A, B, C)

read(A, B, C)ou

readln(A, B, C)

escrevaA, B, C

Linguagem PASCAL 26

Fluxogramas Pascalleia read(numero);

oureadln(numero);

escreva Write('Número',numero);ouWriteln('Número',numero);

processamento soma := a+b;

numero

“Número=”,numero

soma = a+b

Linguagem PASCAL 27

Comandos de Entrada e Saída

● Leituraprogram leitura;var n: integer;

nota: real;begin

readln (n, nota); readln (n, nota); read (n, nota); read (n, nota); { a diferença é que o readln gera uma mudança de linha após a leitura dos valores }

end.

Entrada:1 6,5 2 7,03 8,0 4 9,05 5,0 6 4,07 3,0 8 9,5

n, nota ?

Linguagem PASCAL 28

Comandos de Entrada e Saída● Escrita

var n, p: string; x, a: integer;

beginx := 0;read (n,a);x := x + a; p := n;write (p,x);a := x + a;writeln (a);x := x + a;write (n, x, a);

end.

Entrada:Joao 25

Saída ?

Linguagem PASCAL 29

Comandos de Entrada e Saída

● Formatação na escrita

program formata;var a,b: real;

k,l: char;begin

a:=3.2; b:=5.81; k:=‘x’; l:=‘y’; write (a:4:2, k:2, ‘+’, b:5:2, l:2, ‘=‘ , a+b:7:3);

end.

Saída=3.20_x+_5.81_y=__9.010

Obs.: O caracter ‘_’ neste caso simboliza o espaço vazio.

Linguagem PASCAL 30

● Exemplo: Calcular a área do triângulo retângulo:

Mapeando Programas para Pascal

Linguagem PASCAL 31

Linguagem algortimica

Linguagem Algoritmicainício declare base, altura, área: real; leia (base, altura); área ← (altura*base)/2; escreva (área);fim

Linguagem PASCAL 32

Fluxograma

início

“Programa que calcula área do triângulo”

base, altura

area = (base*altura)/2

“Área: ”, area

fim

Linguagem PASCAL 33

Pascalprogram Area_Triangulo;

Var area, altura, base: real;begin write(‘Digite a altura do triangulo: ‘); Readln(altura); write(‘Digite a base do triangulo: ‘); Readln(base); area := altura*base/2; write (‘A área do triângulo é igual a: ‘,area);End.

Observe que as instruções read e write servem para ler dados fornecidos pelo usuário e para escrever informações na tela, respectivamente. Estas duas instruções podem ser seguidas por ln e, neste caso uma linha será pulada na tela após a execução da instrução.

Linguagem PASCAL 34

● Observe que neste primeiro exemplo, não tivemos a oportunidade de verificar o resultado final emitido pelo algoritmo; POR QUE ISTO ACONTECE?

● Podemos resolver tal problema acrescentando a instrução readkey; imediatamente após informarmos o resultado final encontrado pelo algoritmo;– Obs: esta instrução só será reconhecida se logo

após a linha de program for colocada a seguinte instrução: uses crt;

● Feito isto, pode-se percebe que o resultado final aparece numa notação científica nada agradável, isto pode ser alterado através da seguinte mudança:

write (‘A área do triângulo é igual a: ’ ,area:2:2);

Mapeando Programas para Pascal

Linguagem PASCAL 35

● Observe ainda que a cada nova execução do programa aparecem “lixos” na tela, referentes às execuções anteriores. Isto pode ser eliminado com uma instrução apropriada para limpar a tela: clrscr;

(que vem do inglês clear screen)

Linguagem PASCAL 36

● Assim, o algoritmo ficaria da seguinte forma:PascalProgram Area_Triangulo;Uses crt;Var area, altura, base: real;Begin clrscr; write (‘Digite a altura do triangulo: ‘); readln(altura); write (‘Digite a base do triangulo: ‘); readln(base); area := altura*base/2; write (‘A área do triângulo é igual a: ‘,area:2:2); readkey;End.

Linguagem PASCAL 37

Resumindo...

Para solucionar um problema em computação siga os seguintes passos:

1. Assegurar-se do entendimento completo da especificação do problema

2. Formular um esboço geral do algoritmo para a solução do problema, prestando pouca atenção a detalhes específicos. Esta será a primeira tentativa de expressar a estratégia de sua solução. Assegurar a si próprio que a estratégia está correta.

Linguagem PASCAL 38

Resumindo...

3. Identificar e listar qualquer variável que você sinta ser necessária. Esta lista é somente uma primeira aproximação do conjunto final de variáveis; ela pode ser aumentada ou diminuída se necessário.

4. Retornar aos passos iniciais do algoritmo e prosseguir com o detalhamento. Cada vez que um passo é desdobrado em vários outros mais detalhados, verificar se estes novos passos executam a função expressa no passo original.

5. Teste o algoritmo com exemplos.

Linguagem PASCAL 39

Exercícios

Linguagem PASCAL 40

Referências Bibliográficas

● GOMES, Edeyson Andrade. Lógica de Programação com Pascal: Teoria e Prática. Disponível em: http://edeyson.com.br/Arquivos/ProducaoPessoal/Livro%20Algoritmos%20com%20Pascal%20by%20Edeyson%20Gomes.pdf. Acesso em: 21/10/2013.