Subprogramas : Procedimentos (procedures) em Pascal

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Linguagem de Programação I
Linguagem PASCAL Subprogramas
EEL170 COMPUTAÇÃO I Antonio Cláudio Gómez de Sousa 2a série de slides Versão 19/03/2012.
Linguagens de Programação Orientadas a Objetos
Universidade Federal do Pará Serviço Público Federal Centro de Ciências Exatas e Naturais Departamento de Informática Abril/2001.
Estrutura de Dados I Profº.: ABC Sampaio
Prof. Heloise Manica Paris Teixeira
PROGRAMAÇÃO MODULAR (com uso de subprogramas) prof
Introdução à Linguagem PASCAL Prof. Luis Otavio Alvares
Adaptado de material da profa. Maria Aparecida Livi
Tipos de dados Existentes BIT - {0, 1} BIT_VECTOR - {vetor de BIT}
Algoritmos e Estruturas de Dados II
Robson Godoi / Sandra Siebra
Algoritmos e Programação
O Portal do Estudante de Computação
O Portal do Estudante de Computação
O Portal do Estudante de Computação
O Portal do Estudante de Computação
GAUSS COM PIVOTEAMENTO
O Portal do Estudante de Computação
Paradigmas de programação
João Lucas de Oliveira Torres
Ponteiros em Pascal Variáveis ponteiros são aquelas que guardam o endereço de outra, possibilitando o acesso a seu conteúdo. Declaração em Pascal:  var.
Variáveis, Tipos de Dados e Constantes
Programação Orientada a Objetos em Delphi
O Portal do Estudante de Computação
FATORAÇÃO LU.
Prof. Dr. Marcelo Duduchi
Exercícios de revisão.
MÉTODO JACOBI.
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
Estrutura de Dados Unidade 16 Simulação da função Fatorial utilizando recursão – 16.1 Prof. Dr. Roberto Ferrari Jr.
Introdução a Programação COM 100 Aula 07 Procedimentos.
Introdução a Programação COM 100
Listas duplamente encadeadas Estrutura: tDado = integer; { ou real, char, etc.} tPtNo = ^tNo; tNo = record Ant: tPtNo Dado: tDado; Prox: tPtNo; end; var.
Ponteiros em Pascal Variáveis ponteiros são aquelas que guardam o endereço de outra, possibilitando o acesso a seu conteúdo. Declaração em Pascal:  var.
Introdução ao uso de vatores na linguagem PASCAL.
Programação e Estrutura de Dados
Modelos de Paradigmas de programação
Ambiente de Execução - Rotinas
Computação Eletrônica Subprograma. Função O que este programa faz? Program funcao; var n,x: real; begin write('Entre n: '); readln(n); x := cos(n); write(x);
Computação Eletrônica
Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato
Linguagem Pascal Prof. Sérgio Rodrigues.
Lógica Estruturada Aplicada
ARQUIVOS.
Algoritmos e Estruturas de Dados RECURSIVIDADE. O que é recursividade? Recursividade significa algo ser definido em termos de sí próprio. Em termos de.
LINGUAGENS DE PROGRAMAÇÃO
“Introdução a Computação” Capítulo II Estruturas de Dados
VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS (VETORES)
Aula01 – Técnicas de Programação II
Computação Eletrônica
Algoritmos e Programação
Professor Ulisses Vasconcelos
Estruturas de Dados + Algoritmos = Programas
Técnicas de Programação I
Computação Eletrônica Variáveis Reais e Booleanas.
Strings.
Introdução à Programação
AULA 09 PROGRAMAÇÃO I. Estruturas de Dados Heterogêneas 10/08/2010 Programação I 2 Objetivo: Estudar os tipos de dados heterogêneos:  Registros;  Arrays.
Computação Eletrônica Strings. Strings (Cadeias de Caracteres) Um string é um texto. Em Pascal, este texto deve ser delimitado por aspas simples. Exemplo:
Linguagens de Programação Pedro Lopes MÓDULO 4- Subprogramas (Procedimentos e Funções) 2010/2011.
MODULARIZAÇÃO Existem dois tipos de sub-programas –Procedures (procedimentos).Não retorna valores –Functions (funçöes). Retorna valores.
MODULARIZAÇÃO Técnica utilizada e tida como vantajosa na confecção de programas. Consiste em dividir o programa em diversos módulos ou sub-programas, de.
MÓDULO 4- Subprogramas (Procedimentos e Funções)
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
Computação Eletrônica Variáveis Inteiras. A memória A memória pode ser vista como um imenso gaveteiro Em cada gaveta, guardamos uma informação. Por exemplo,
SUB-ROTINAS EM PASCAL PROGRAMAÇÃO MODULARIZADA 252.
Transcrição da apresentação:

Subprogramas : Procedimentos (procedures) em Pascal Prof. Luis Otavio Alvares

Funções/procedimentos devolvem 1 valor o valor calculado é usado diretamente pelo programa Procedimentos podem devolver zero, um ou mais valores valores são passados como parâmetros

Procedures sem parâmetros Exemplo Program teste; Procedure asteriscos; Var I:integer; Begin writeln; for I:=1 to 80 do write(’*’); Writeln; End; {programa principal} ... Asteriscos; {chamada da procedure} Asteriscos; {chamada da procedure}

Procedures com parâmetros Há duas formas de passagem de parâmetros nas procedures em Pascal: Por valor e por referência Na passagem por valor, como o próprio nome indica, somente o valor é passado (é usado para os parâmetros de entrada da procedure). Análogo aos parâmetros de funções. Na passagem por referência, o valor do parâmetro pode ser alterado e vai ser percebido pelo programa que chamou a procedure (é usado para os parâmetros de saída da procedure)

Exemplo Program ExcomFatorial; Procedure Fat(A:integer ; Var X:real); Var I: integer; begin X:= 1; for I:=1 to A do X:= X * I; end; {programa principal} var Valor : integer; f : real; write('digite um numero inteiro: '); readln(Valor); If ( Valor >= 1 ) then begin Fat(Valor, f); writeln('Fatorial de ',Valor,' = ',f:5:0); readln; end.

Procedures - Pascal Declaração Lista de parâmetros formais Ex: Procedure <identificador> [( <lista de parâmetros formais> ) ] ; [ <declaração de variáveis locais>; ] begin < comandos separados por ‘;’ > end; opcionais Lista de parâmetros formais [ var ] < lista de identificadores > : <tipo>; ... Indica passagem de parâmetro por referência- opcional Procedure Teste ( A, B: integer; var C: real ); begin C := A / B; end; Ex:

Exemplo com dois parâmetros de saída Fazer uma procedure que receba como parâmetro o nome de um vetor e forneça como saída o maior elemento do vetor e a sua posição.

program exemploProcedure; type tipoVetor = array[1..10] of integer; procedure maiorElemento(V:tipoVetor; var maior,posicao:integer); var I:integer; begin maior:=V[1]; posicao:= 1; for I:= 1 to 10 do if V[I] > maior then begin maior:=V[I]; posicao:=I; end; var vet:tipoVetor; I,M,P:integer; writeln('informe os 10 valores do vetor: '); for I:=1 to 10 do readln(vet[I]); maiorElemento(vet,M,P); writeln('o maior elemento do vetor eh: ',M,' na posicao ',P); readln; end.

Relembrando...

Procedure Muda; var X : integer; begin X := 1 end; { Muda } var X : integer; {programa principal } X := 0; Muda; write ( X ); end. Procedure Muda (X : integer); begin X := 1 end; { Muda } var X : integer; {programa principal } X := 0; Muda (X); write ( X ); end. Parâmetro por valor Não muda valor da variável do progr. principal Variável local Não muda valor da variável do progr. principal Procedure Muda (var X: integer); begin X := 1 end; { Muda } ar X : integer; {programa principal } X := 0; Muda (X); write ( X ); end. var X : integer; Procedure Muda; begin X := 1 end; { Muda } begin {programa principal } X := 0; Muda; write ( X ); end. Parâmetro por referência Muda valor da variável do progr. principal Variável global Muda valor da variável

Exercício Faça uma procedure que receba como parâmetro de entrada uma matriz 5x5 e forneça como saída o maior e o menor elemento da matriz.

program procedureMatriz; type tipoMatriz = array[1..5,1..5] of integer; procedure maiorMenor(M:tipoMatriz; var maior,menor:integer); var I,K:integer; begin maior:=M[1,1]; menor:=M[1,1]; for I:= 1 to 5 do for K:=1 to 5 do begin if M[I,K] > maior then maior:=M[I,K]; if M[I,K] < menor then menor:=M[I,K]; end; var Mat:tipoMatriz; L,C,M,Menor:integer; for L:= 1 to 5 writeln('informe os valores da linha ',L); for C:=1 to 5 do readln(Mat[L,C]); maiorMenor(Mat,M,Menor); writeln('o maior elemento da matriz eh: ',M); writeln('o menor elemento da matriz eh: ',Menor); readln; end.

Units Units em Pascal são bibliotecas de funções e procedures. Algumas já vem com o compilador, como a unit CRT, que tem funções para a saída em vídeo. As funções e procedures definidas pelo usuário podem ser salvas em uma unit e desta forma utilizadas em qualquer programa.

Exemplo de definição de unit unit minhaUnit; interface Function Fat(X:integer): real; function Pot(base:real;exp:integer):real; implementation var I:integer; begin fat:=1; for I:= 1 to X do Fat:=Fat*I; End; Pot:=1; for I:=1 to exp do Pot:=Pot*base; end; end.

Exemplo de uso de unit {calcula o cosseno de um angulo do 1. quadrante dado em radianos} uses minhaUnit; {é uma declaração} function cos1quad(A:real):real; var I,sinal:integer; cos:real; begin cos:=1; sinal:=-1; I:=2; while I<= 60 {30 termos da serie} do begin cos:=cos+sinal*(Pot(A,I)/fat(I)); sinal:=sinal*-1; I:=I+2; end; cos1quad:=cos; {--- programa principal ---} var angulo: real; write(‘informe o angulo do 1. quadrante em radianos’); readln(angulo); writeln('o cosseno de ',angulo,' eh aproximadamente ', cos1quad(angulo):1:6); readln; end.