computação i mpce programação pascal prof. dr. marcelo duduchi

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

Upload: internet

Post on 18-Apr-2015

104 views

Category:

Documents


2 download

TRANSCRIPT

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

Computação I MPCE

Programação Pascal

Prof. Dr. Marcelo Duduchi

Page 2: 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? Como trabalhar com subrotinas em

Pascal?

Page 3: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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;

Page 4: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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;

Page 5: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Estrutura de um programa Pascal

Program Nomedoprograma;

uses biblioteca 1,...,biblioteca n;

const constante 1,...,constante n;

type nome do tipo = declaração do tipo;

var lista de variáveis : tipo da variável;

declaração das procedures e functions;

begin comandos end.

Page 6: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Tipos de Dados

Inteiro; Número em ponto flutuante (real); Caractere; Cadeia de Caracteres; Lógico;

Page 7: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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

Page 8: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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

Page 9: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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’

Page 10: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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’

Page 11: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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)

Page 12: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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;

Page 13: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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;

Page 14: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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;

const nome = valor; Exemplo: const PI = 3.1416;

Page 15: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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;

Page 16: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Declaração de Variáveis Deve-se indicar a palavra var

seguida do nome, : e o tipo de dados a ser armazenado por ela;

var nome : tipo de dado; Exemplos: var nota:integer; var N1, N2, N3:real; var Nome: string[40];

Page 17: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Operadores Lógicos

NÃO: identificado por not; E: identificado por and; OU: identificado por or; OU EXCLUSIVO: por xor;

Page 18: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Operadores Aritméticos

+ : adição; - : subtração; * : multiplicação; / : divisão real; div : divisão inteira; mod: resto da divisão;

Page 19: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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;

Page 20: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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 );

Page 21: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Comando de Escrita (saída)

Exemplos: write(custo:9:2); writeln(‘João’);

writeln(‘Valor = ’,x);

write(x+y);

Page 22: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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);

Page 23: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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;

Page 24: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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;

Page 25: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Comando de Leitura (readkey) Exemplos:

x:=readkey;

writeln(readkey); entrada:=readkey;

Necessita da declaração: “uses CRT”;

Page 26: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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 *)

Page 27: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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;

Page 28: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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: begin comandos end;

Page 29: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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);

Page 30: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Formatos:

If decisão then

comando ou

bloco de comandos;

cuidado: antes do “else” não colocar “;”

If decisão then

comando ou

bloco de comandos

else

comando ou

bloco de comandos;

Estrutura de controle de decisão

Page 31: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Exemplos:

...

If nota >= 5.0 then

writeln(‘aprovado’);

...

...

readln(nota);

If nota >= 5.0 then

writeln(‘aprovado’)

else

writeln(‘reprovado’);

...

Estrutura de controle de decisão

Page 32: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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’); ...

Estrutura de controle de decisão

Page 33: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Exemplos:...If x > 3 thenbegin if y > 3 writeln(‘saída A’)

elsewriteln(‘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:

Estrutura de controle de decisão

Page 34: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Exemplos:...If x > 3 thenbegin if y > 3 then writeln(‘saída A’)

elsewriteln(‘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”;

Estrutura de controle de decisão

Page 35: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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:

Estrutura de controle de decisão

Page 36: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Exemplos:...If (x>3) and (y>3) thenbegin

writeln(‘saída A’);endelsebegin

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”;

Estrutura de controle de decisão

Page 37: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Program exmedia; uses crt; var soma,nota1,nota2:real; begin   writeln(´Digite as notas das provas´);   read (nota1,nota2);   media:=(nota1+nota2)/2;   if media>=5 then     writeln(´Aprovado´) else

    writeln(´Reprovado´); end.

Faça um programa que receba duas notas, calcule a média das notas e mostre na tela se o aluno foi aprovado.  

Page 38: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Program expesoideal; uses crt; var sexo:char;     h,peso:real; begin   writeln(´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.

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;

Page 39: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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;

Estrutura de controle de decisão

Page 40: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Formato: case variável of

constante1: comandos1;

constante2: comandos2;

constante3: comandos3;

else

comando n;

end;

Estrutura de controle de decisão

Page 41: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Exemplo: case idade of

1,2,3:writeln(‘bebê’);

4..12:writeln(‘criança’);

13..22:writeln(‘adolesc.’);

else

writeln(’adulto’);

end;

Estrutura de controle de decisão

Page 42: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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;

Estrutura de controle de repetição

Page 43: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Formato 1: while decisão do

comandos;

Formato 2: repeat

comandos;

until decisão;

Estrutura de controle de repetição

Page 44: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Exemplo 1: ...ct:=1;while ct<11 dobegin writeln(‘4*’,ct,’=’,ct*4); ct:=ct+1;end;...

Estrutura de controle de repetição

Page 45: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Exemplo 2: ...

ct:=1;

repeat

writeln(‘4*’,ct,’=’,ct*4);

ct:=ct+1;

until ct >10;

...

Estrutura de controle de repetição

Page 46: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Formato 3: for ct:= v.i. to v.f. do

comandos;

Formato 4: for ct:= v.i. downto v.f. do

comandos;

Estrutura de controle de repetição

Page 47: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Exemplo 3: for ct:= 1 to 10 do

writeln(‘4*’,ct,’=’,ct*4);

Exemplo 4: writeln(‘contagem...’)

for ct:= 10 downto 1 do

writeln(ct);

Estrutura de controle de repetição

Page 48: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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 }

Transformação de tipos de dados

Page 49: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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);

Transformação de tipos de dados

Page 50: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

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;

Page 51: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Tipos estruturados homogêneos Conjunto de elementos do mesmo tipo

que ocupam uma área contínua de memória e são referenciados através de um nome e um índice;

Também denominados de:Vetores, Matrizes, Tabelas, Arrays;

Podem ser:Unidimensionais ou Multidimensionais;

Page 52: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Tipos estruturados homogêneos Declaração (unidimensional):

var nome:array [vi..vf] of tipo de dados;

onde:

nome: rótulo dado ao array;

vi: valor inicial do array;

vf: valor final do array;

tipo de dados: tipo de dados dos elementos do array;

Page 53: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Tipos estruturados homogêneos Utilização (unidimensional):

utilizar o nome seguido da posição entre colchetes que deseja considerar tanto para atribuição de valores quanto para a recuperação:

nome [ posição ]

Page 54: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Tipos estruturados homogêneos Exemplo (unidimensional):

...

var notas:array [1..4] of integer;

...

begin...

For i:=1 to 4 do

read(notas [ i ]);

...

Page 55: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Tipos estruturados homogêneos Declaração (multidimensional):

var nome:array [vi..vf] of tipo de dados;

onde:

nome: rótulo dado ao array;

[vi..vf ]: podem ser substituídos por

[vi1..vf1,vi2..vf2,...,viN..vfN]

tipo de dados: tipo de dados dos elementos do array;

Page 56: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Tipos estruturados homogêneos Utilização (multidimensional):

utilizar o nome seguido das posições entre colchetes que deseja considerar tanto para atribuição de valores quanto para a recuperação.

Não omitir nenhuma dimensão;

nome [ posições entre vírgulas ]

Page 57: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Tipos estruturados homogêneos Exemplo (multidimensional):

var vet:array [1..50,1..4] of real;

...

begin...

for i:=1 to 50 do

for j:=1 to 4 do

read(vet [ i , j ]);

...

Page 58: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

program exmaior; const fim=100; var seq: array[1..fim] of integer;    k,maior:integer; begin     for k:=1 to fim do       readln(seq[k]);     maior:=seq[1];     for k:=2 to fim do       if seq[k]>maior then             maior:=seq[k];     writeln(maior); end.

Faça um programa que receba um conjunto de 100 valores inteiros colocando-os em um vetor e em seguida mostre na tela o maior dos valores do vetor.

Page 59: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Tipos estruturados heterogêneos Conjunto de elementos de tipos

diferentes agrupados por estarem relacionados entre si de acordo com a lógica do programa;

Também denominados de:registros ou records;

São sempre unidimensionais e podem estar atrelados a declaração de vetores e arquivos;

Page 60: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Tipos estruturados heterogêneos

Declaração:

Utilizar o nome, “:”, a palavra reservada record seguido da definição dos elementos que o compõe através da declaração destes da mesma forma que as variáveis com um end no final;

Page 61: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Tipos estruturados heterogêneos Declaração:

var nome: record

nome1:tipo de dados;

nome2:tipo de dados;

...

nomeN:tipo de dados;

end;

Page 62: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Tipos estruturados heterogêneos Exemplo de declaração:

var aluno: record

ca:longint;

nome:string[30];

notafinal:real;

end;

Page 63: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Tipos estruturados heterogêneos Utilização:

utilizar o nome seguido de “.” (ponto) e o nome do elemento do registro que deseja considerar tanto para atribuição de valores quanto para a recuperação;

Não omitir o elemento a referenciar;

nome . elemento

Page 64: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Tipos estruturados heterogêneos Exemplo de utilização:

...

readln(aluno.ca);

readln(aluno.nome);

readln(aluno.notafinal);

...

{considerando a declaração

do exemplo anterior}

Page 65: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Utilizando tipos estruturados

Podemos declarar também:

var classe: array [1..40] of

record

ca:longint;

nome:string[30];

nt1,nt2,nt3,nt4:real;

end;

Page 66: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Utilizando tipos estruturados

E utilizar no programa:

... For i:=1 to 40 do

begin

readln(classe [ i ].ca);

readln(classe [ i ].nome);

readln(classe [ i ].nt1);

end; ...

Page 67: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Utilizando tipos estruturados Ou ainda:

... For i:=1 to 40 do

begin

writeln( (classe [ i ].nt1*0.4+

classe [ i ].nt2*0.4+

classe [ i ].nt3*0.2);

end; ...

Page 68: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Criação de novos tipos de dados Podemos criar nossos próprios tipos

de dados usando:

Type nome= declaração; Exemplo:

Type aluno = record

Nome:string;

nt1,nt2:real;

end;

Page 69: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Estrutura de um programa Pascal

Program Nomedoprograma;

uses biblioteca 1,...,biblioteca n;

const constante 1,...,constante n;

type nome do tipo = declaração do tipo;

var lista de variáveis : tipo da variável;

declaração das procedures e functions;

begin comandos end.

Page 70: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

SubrotinasRotina que executa uma tarefa específica que pode ser:

Procedimento (procedure): Não retorna valor à rotina chamadora de forma explícita;

Função (function): Retorna um único valor à rotina chamadora de forma explícita;

Page 71: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Estrutura de um programa Pascal

Program Nomedoprograma;

uses biblioteca 1,...,biblioteca n;

const constante 1,...,constante n;

type nome do tipo = declaração do tipo;

var lista de variáveis : tipo da variável;

declaração das procedures e functions;

begin comandos end.

Page 72: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Subrotinas (Procedimento)Sintaxe:

procedure nome (parâmetros);

var variáveis locais;

begin

comandos;

end;

Page 73: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Subrotinas (Procedimento)Exemplo:

procedure linha (tamanho:integer);

var i:integer;

begin

for i:= 1 to tamanho do

write(´-´);

writeln;

end;

Page 74: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Subrotinas (função)Sintaxe:

function nome (parâmetros):tipo;var variáveis locais;begin

comandos;nome:=valor de retorno;

end;

Page 75: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Subrotinas (função)Exemplo:

function soma (n1,n2:integer):integer;var total: integer;begin

total:=n1+n2;soma:=total;

end;

Page 76: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Subrotinas (Procedimento)Exercício: alterar a rotina linha para que o

símbolo da linha apresentada possa variar:

Page 77: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Subrotinas (Procedimento)Exercício: alterar a rotina linha para que o

símbolo da linha apresentada possa variar:

procedure linha (tamanho:integer;ch:char);

var i:integer;

begin

for i:= 1 to tamanho do

write(ch);

writeln;

end;

Page 78: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Parâmetros (valor e referência)

Valor (ou cópia): As alterações dentro da rotina não alteram as variáveis da rotina chamadora passadas como parâmetro;

Referência: As alterações dentro da rotina alteram as variáveis da rotina chamadora passadas (basta usar o var antes da declaração dos parâmetros);

Page 79: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Complementos: Expressões inteira s e reais

Aritmética e lógica no pascal: Blaise Pascal (matemático do século XVII);

Base Aritmética: Expressão (ou equação)

Combinação de: Identificadores

Valores

Funções numéricas

Operadores,

que resultam num valor numérico específico,

Page 80: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Complementos: Expressões inteira s e reais

Exemplo de expressão:

Valor numérico: 2 2+2

Operador: +

No pascal uma expressão integra uma instrução de atribuição ou uma instrução lógica.

Page 81: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Complementos: Expressões inteira s e reais

Exemplo de instrução aritmética:

Resultado : = 2+2;

Quando o pascal executa a instrução, o lado direito é calculado e o resultado é atribuído a Resultado.

atribuição

Page 82: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Complementos: Expressões inteira s e reais

Exemplo de instrução lógica:

If Resultado = (2+2) then

Uma expressão aritmética que pertence a uma instrução lógica tem como resultado Verdadeira ou Falsa.

O valor em Resultado não é alterado.

comparação

Page 83: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Complementos: Uso de integer.

program m1;Uses Crt;var x, y, z: real; i, j, k: integer;

begin clrscr; j:=2; i:= j+1; j:= 3 div j; k:= (1+j) div (3+j); writeln(i, ' ', j, ' ', k);

Page 84: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Complementos: Uso de integer

j:=2; x:= j+1; y:= 3 / j; z:= (1+j) div (3+j);

Writeln(x:2:2, ' ', y:2:2, ' ', z:2:2);

Writeln; writeln('Aperte enter ');

readln; end.

Page 85: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Complementos: Hierarquia de operadores

Nível 1: Unário (Subtração e Adição)

Nível 2: Parênteses

Nível 3 Multiplicação e Divisão

Nível 4: Adição e Subtração

Exemplo: A:= 3*4+5; A:= 3*(4+5);

Page 86: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Complementos: Hierarquia de operadores

Nível 1: Unário (Subtração e Adição)

Nível 2: Parênteses

Nível 3 Multiplicação e Divisão

Nível 4: Adição e Subtração

Exemplo: A:= 3*4+5; A:= 3*(4+5);

Page 87: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Complementos: Hierarquia de operadores

mmmm

Page 88: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Complementos: Hierarquia de operadores

Uses Crt;var l1, l2, l3: real;beginclrscr; write('digite l1: '); readln(l1); Write('Digite l2: '); readln(l2); Write('Digite l3: '); readln(l3);if (l1+l2<l3) or (l1+l3<l2) or (l2+l3<l1) then writeln ('triangulo invalido')program triang;

Page 89: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Complementos: Hierarquia de operadores

else begin if (l1=l2) and (l1=l3) and (l2=l3) then writeln('equilatero'); if (l1=l2) or (l1=l3) or (l2=l3) then writeln('isosceles'); if (l1<>l2) and (l1<>l3) and (l2<>l3) then writeln('escaleno');

end; Write('pressione enter'); readln; end.

Page 90: Computação I MPCE Programação Pascal Prof. Dr. Marcelo Duduchi

Complementos: Hierarquia de operadores

program oplogico;Uses Crt;var Byte1, Byte2, Byte3: byte; begin clrscr; byte1:=77; byte2:= 62; byte3:= byte1 and byte2; writeln('byte1= ', byte1, ' byte2= ',byte2, ' byte3= ',byte3); Writeln; writeln('Aperte enter '); readln; end.