SlideShare una empresa de Scribd logo
1 de 54
PROCEDIMENTOS
Profª Ms. Engª Elaine Cecília Gatto
Curso de Bacharelado em Engenharia de Computação
Universidade do Sagrado Coração – USC
Bauru/SP
SubAlgoritmos
• DIVIDIR PARA CONQUISTAR:
• Método para resolução de problemas que consiste
em dividir um problema, em problemas menores e
mais fáceis de solucionar.

• PROJETO DESCENDENTE (TOP-DOWN DESIGN):
• Método de projetar a solução de um problema
principal obtendo soluções de seus subproblemas.
• As partes em que se divide um programa devem ser
desenvolvidas independentemente umas das outras
SubAlgoritmos
ALGORITMO
PRINCIPAL

SUBALGORITMO 1

SUBALGORITMO 2

SUBALGORITMO 3

PROGRAMA
PRINCIPAL

SUBPROGRAMA1

SUBPROGRAMA 2

SUBPROGRAMA 3
SubAlgoritmos
• Um subprograma/subalgoritmo pode realizar
as mesmas ações que um programa:
1. Aceitar dados
2. Realizar alguns cálculos
3. Devolver resultados
SubAlgoritmos
• Entretanto, um subprograma é utilizado por um
programa para um propósito específico.
• O programa
subprograma.

principal

chama

ou

invoca

um

• O subprograma, quando invocado, obtém o controle,
executa sua tarefa e devolve o controle ao programa
principal.
• Existem dois tipos de subprogramas: FUNÇÕES e
PROCEDIMENTOS.
SubAlgoritmos

PROGRAMA
PRINCIPAL
--------------------ALGORITMO

Chamada 1

Retorno 1
Chamada 2
Retorno 2

SUBPROGRAMA
-------------------------SUBALGORITMO
SubAlgoritmos
Chamada 1
Retorno 1

SUBPROGRAMA 1

Chamada 2

PROGRAMA
PRINCIPAL

Retorno 2

SUBPROGRAMA 2

SUBPROGRAMA 3

SUBPROGRAMA 2.1
FUNÇÕES
•
FUNÇÕES
•
SUB-ROTINA
• O mesmo que subprogramas ou funções
• São blocos de instruções que realizam tarefas
específicas
• O código é carregado uma vez e pode ser
executado várias vezes
• Os programas
organizados

ficam

menores

e

mais
SUB-ROTINA
• Em linguaguens estruturadas, os programas são
executados linearmente, LINHA APÓS LINHA
• Subrotinas permitem um desvio nesta execução
• A ordem da execução das instruções do
programa é desviada quando existe a chamada
de uma rotina no programa principal
SUB-ROTINA
• Enquanto a subrotina é executada, o
programa principal fica suspenso
• O controle volta ao programa principal
quando a execução da subrotina chega ao seu
fim, por meio da palavra chave RETURN
SUB-ROTINA
• Variáveis locais: variáveis declaradas dentro
das subrotinas. São destruídas assim que a
execução da rotina é finalizada.

• Variaveis globais: variáveis declaradas dentro
do programa principal. Qualquer ponto do
programa pode usá-las. São destruídas
quando a execução do programa é finalizado
SUB-ROTINA
• Passagem por valor: quando um parâmetro é
passado para a função. A variável do
cabeçalho se comportará como uma variável
local da subrotina
• Passagem por referência: quando um
parâmetro é passado para a função. A
variável do cabeçalho se comportará como
uma variável global.
SUB-ROTINA
Algoritmo exemplo1;
Inteiro : sal, aum, novo_sal;
Leia(sal)
Aum  calculo(sal);
Novo_sal  sal + aum;
Escreva(“Novo Salário é: ”, novo_sal);
FIM.
Subrotina calculo(inteiro: sal)
Inteiro : perc, valor;
Leia(perc);
Valor  (sal * perc) / 100;
Retorne valor
Fim_subrotina calculo
SUB-ROTINA
Algoritmo exemplo2;
Inteiro : x, y;
X <-- 1;
Y  2;
Escreva( “ valores iniciais ” );
Escreva( “ x = ”, z, “ y ”, = y );
S1;
Escreva( “ valores depois da execução da s1” );
Escreva( “ x = ”, z, “ y ”, = y );
S2( x, y ); //por valor
Escreva( “ valores depois da execução da s2” );
Escreva( “ x = ”, z, “ y ”, = y );
S3( x, y ); //por referência
Escreva( “ valores depois da execução da s3” );
Escreva( “ x = ”, z, “ y ”, = y );
FIM.
SUB-ROTINA
//subrotina sem parâmetro e sem retorno
Subrotina s1
Inteiro : x, y, z; //variáveis locais
X  8;
Y  10;
Z  5;
Escreva( “Valores impressos dentro da subrotina s1”
);
Escreva( “ x = ”, x, “ y = ”, y, “ z = ”, z );
FIM_Subrotina_S1;
SUB-ROTINA
//subrotina com parâmetro por valor e sem retorno
Subrotina s2 ( inteiro : x, y )
Inteiro : z; //variáveis locais
X  x + 2;
Y  y + 2;
Z  x + y;
Escreva( “ Valores impressos dentro da subrotina
s2” );
Escreva( “ x = ”, x, “ y = ”, y, “ z = ”, z );
FIM_Subrotina_S2;
SUB-ROTINA
//subrotina com parâmetro por referência e sem
retorno
Subrotina s3 ( inteiro : x, y )
Inteiro : a; //variáveis locais
A  x + y;
X  y - 1;
Y  x - 2;
Escreva( “ Valores impressos dentro da subrotina
s2” );
Escreva( “ x = ”, x, “ y = ”, y, “ a = ”, z );
FIM_Subrotina_S2;
Modularização
• Pascal permite o uso de:
• PROCEDURES – procedimentos
• FUNCTIONS – funções
• UNITS – unidades
• São três formas de modularizar um programa
• Procedures e functions devem ter o seu
código escrito antes do BEGIN
PROCEDURES
SEM PASSAGEM DE
PARÂMETROS
• São rotinas chamadas pelo programa
principal para executar alguma operação
especí´fica, mas não retornam valor para
quem as chamou

Procedure nome_da_procedure;
Declaração_de_variáveis_locais;
Begin
Comandos

End;

P
R
O
C
E
D
U
R
E
S
SEM PASSAGEM DE
PARÂMETROS
Program exemplo;
Uses crt;
Var
a, b, s : integer //variáveis globais
Procedure somar;
Begin
s := a + b;
End;

P
R
O
C
E
D
U
R
E
S
SEM PASSAGEM DE
PARÂMETROS
Begin
clrscr;
writeln(‘Digite o primeiro numero’);
readln(a);
writeln(‘Digite o segundo numero’);
readln(b);
somar;
writeln(‘A soma é: ’, s);
readln();

End.

P
R
O
C
E
D
U
R
E
S
SEM PASSAGEM DE
PARÂMETROS
Program exemplo2;
Uses crt;
Procedure somar;
Var
a, b, s : integer;
Begin
writeln(‘digite o primeiro numero’);
readln(a);

P
R
O
C
E
D
U
R
E
S
SEM PASSAGEM DE
PARÂMETROS
Writeln(‘Digite o segundo numero’);
Readln(b);
s := a + b;
Writeln(‘A soma é: ’, s);
End;
Begin
Clrscr;
Somar;
Readln;
End.

P
R
O
C
E
D
U
R
E
S
PASSAGEM DE PARÂMETROS
POR VALOR
Alguns valores são fornecidos à procedure
quando ela é solicitada
Procedure nome_da_procedure(parâmetros :
tipo_dos_dados)
Declaração_de_variáveis_locais;
Begin
Comandos;
End;

P
R
O
C
E
D
U
R
E
S
PASSAGEM DE PARÂMETROS
POR VALOR
Program exemplo1;
Uses crt;
Var
A, b : integer;

Procedure somar(x, y : integer);
Var
S : integer;
begin
s := x + y;
writeln(‘A soma é: ’, s);
end;

P
R
O
C
E
D
U
R
E
S
PASSAGEM DE PARÂMETROS
POR VALOR
Begin
clrscr;
writeln(‘Digite o primeiro número’);
readln(a);
writeln(‘Digite o segundo número’);
readln(b);
somar(a, b);
readln;
End.

P
R
O
C
E
D
U
R
E
S
PASSAGEM DE PARÂMETROS
POR VALOR
Program exemplo2;
Uses crt;
//passando matriz ou vetor como parâmetro
Type x = array[1..5] of integer;
Var
i : integer;
w : x;

P
R
O
C
E
D
U
R
E
S
PASSAGEM DE PARÂMETROS
POR VALOR
Procedure mostrar(y:x);
Begin
Writeln(‘Mostrando o vetor na subrotina’);
For i:=1 to 5 do
Begin
Writeln( y [ i ] );
End;
End;

P
R
O
C
E
D
U
R
E
S
PASSAGEM DE PARÂMETROS
POR VALOR
Begin
clrscr;
writeln(‘digitando os números do vetor: ’);
for i:=1 to 5 do
Begin
readln( w [ i ] );
End;

mostrar(w);
readln;

End.

P
R
O
C
E
D
U
R
E
S
PASSAGEM DE PARÂMETROS
POR REFERÊNCIA
Os parâmetros se comportam como variáveis
globais
Procedure nome_da_procedure(VAR parâmetros :
tipo_dos_dados);
Declaração_de_variáveis_locais;
Begin
Comandos
End;

P
R
O
C
E
D
U
R
E
S
PASSAGEM DE PARÂMETROS
POR REFERÊNCIA
Program exemplo1;
Uses crt;
Var
a, b : integer;
Procedure somar(VAR x, y : integer);
Var
s : integer;

P
R
O
C
E
D
U
R
E
S
PASSAGEM DE PARÂMETROS
POR REFERÊNCIA
Begin
s := x + y;
writlen(‘A soma é: ’, s);
End;
Begin
clrscr;
writeln(‘Digite o primeiro número’);
readln(a);

P
R
O
C
E
D
U
R
E
S
PASSAGEM DE PARÂMETROS
POR REFERÊNCIA
writeln(‘Digite o segundo número’);
readln(b);
somar(a, b);
readln;

End.

P
R
O
C
E
D
U
R
E
S
FUNCTIONS
SEM PASSAGEM DE
PARÂMETRO
•
•
•
•

FUNCTION X PROCEDURE
Function SEMPRE retorna um valor
A PROCEDURE NEM sempre retorna um valor
O OBJETIVO é para ambos é o mesmo

FUNCTION NOME_DA_FUNCTION :
TIPO_DE_DADO_DO_VALOR_RETORNADO;
Declaração_de_variáveis_locais;
Begin
Comandos;
End;

F
U
N
C
T
I
O
N
S
SEM PASSAGEM DE
PARÂMETRO
• Para que ocorra o retorno de algum valor para quem
chamou a function, deve-se atribuir tal valor a uma variável
cujo nome seria igual ao dado à function
Program exemplo1;
Uses crt;
Var
a, b, s : integer;
Function somar : integer;
begin
somar := a + b;
end;

F
U
N
C
T
I
O
N
S
SEM PASSAGEM DE
PARÂMETRO
Begin
Clrscr;
writeln(‘Digite o primeiro número’);
readln(a);
writeln(‘Digite o segundo número’);
readln(b);
s := somar;
writeln(‘ A soma é: ’, s);
readln;
End.

F
U
N
C
T
I
O
N
S
PASSAGEM DE PARÂMETRO
POR VALOR
FUNCTION nome_da_function(parâmetros : tipo_dos_dados)
: tipo_de_dado_do_valor_retornado;
Declaração_de_variáveis_locais;

Begin
Comandos;

End;

F
U
N
C
T
I
O
N
S
PASSAGEM DE PARÂMETRO
POR VALOR
• A chamada a uma FUNCTION acontece
atribuindo seu nome a uma variável ou a um
condição, que receberá o retorno ao término de
sua execução
• No momento da chamada, são informados os
parâmetros que deverão ser levados para a
FUNCTION

F
U
N
C
T
I
O
N
S
PASSAGEM DE PARÂMETRO
POR VALOR
Program exemplo1;
Uses crt;
Var
a, b, s : integer;
Function somar(x, y : integer) : integer;
Begin
Somar := x + y;
End;

F
U
N
C
T
I
O
N
S
PASSAGEM DE PARÂMETRO
POR VALOR
Begin
clrscr;
writeln(‘Digite o primeiro número’);
readln(a);
writeln(‘Digite o segundo número’);
readln(b);
s := somar(a, b);
writeln(‘ A soma é: ’, s);
readln;
End.

F
U
N
C
T
I
O
N
S
PASSAGEM DE PARÂMETRO
POR REFERÊNCIA
Uma function pode receber parâmetros no momento
em que é chamada
Os valors informados são copiados, sequencialmente,
em variáveis descritas em seu cabeçalho
FUNCTION nome_da_function( VAR parâmetros :
tipo_dos_dados ) : tipo_de_dado_do_valor_retornado;
Declaração de variáveis locais;
Begin
Comandos;
End;

F
U
N
C
T
I
O
N
S
PASSAGEM DE PARÂMETRO
POR REFERÊNCIA
Program exemplo1;
Uses crt;
Var
a, b, s : integer;
Function somar(VAR x, y : integer) : integer;
Begin
somar := x + y;
End;

F
U
N
C
T
I
O
N
S
PASSAGEM DE PARÂMETRO
POR REFERÊNCIA
Begin
clrscr;
writeln(‘Digite o primeiro número’);
readln(a);
writeln(‘Digite o segundo número’);
readln(b);
s := somar(a, b);
writeln(‘ A soma é: ’, s);
readln;
End.

F
U
N
C
T
I
O
N
S
PASSAGEM DE PARÂMETRO
POR REFERÊNCIA
• Os parâmetros passados por referência – isso
é identificado pela presença da palavra VAR
no cabeçalho da FUNCTION – qualquer
alteração nos valores de X ou de Y será
também refletida nas variáveis A e B,
respectivamente

F
U
N
C
T
I
O
N
S
UNITS
• É um arquivo (.pas)
• Contém várias procedures e functions
• Torna-se um TPU depois de ser compilado –
isto é, torna-se uma biblioteca
• A biblioteca pode ser chamada por outros
programas por meio do uso da palavra chave
USES
• O nome de uma UNIT deve ser o nome do
arquivo
UNITS
UNIT nome_da_unit;
INTERFACE
Cabeçalho das procedures e das functions;
IMPLEMENTATION
Implementação das procedures e das functions;
END;
UNITS
unit calcula;
interface
procedure somar(a, b : integer);
function multiplicar(a, b, c : integer) : integer;
Implementation

procedure somar(a, b : integer);
var
s : integer;
writeln(‘ A soma é : ’, s);
end;
function multiplicar(a, b, c : integer) : integer;
begin
multiplicar : = a * b * c;
end;
end.
UNITS
• Para criar uma UNIT (biblioteca) é necessário abrir um
arquivo novo, digitar os códigos da biblioteca e salvar o
arquivo com o mesmo nome da UNIT. Esse arquivo
será o .PAS.

• Depois, no menu COMPILAR, o destino da compilação
deve ser alteração para DISK. Somente depois disso
será gerado o arquivo TPU (que é a biblioteca
propriamente dita)
UNITS
Program subrotina;
Uses crt, calcula;
Var
x, y, z, mult : integer;
Begin
Clrscr;
Writeln(‘digite o valor de x’);
Readln(x);
Writeln(‘digite o valor ’);
Readln(y);
somar(x,y);
Writeln(‘digite o valor de z’);
readln(z);
mult := multiplicar(x, y, z);
writeln(‘multiplicação = ’, mult);
Readln;
End.
Exercícios

Más contenido relacionado

La actualidad más candente

Fundamentos de banco de dados 03 arquitetura 3 esquemas e indep de dados
Fundamentos de banco de dados   03 arquitetura 3 esquemas e indep de dadosFundamentos de banco de dados   03 arquitetura 3 esquemas e indep de dados
Fundamentos de banco de dados 03 arquitetura 3 esquemas e indep de dados
Rafael Pinheiro
 

La actualidad más candente (20)

Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados I - Aula 11 - Linguagem de Consulta SQL (Comandos DDL)
 
Linguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e FunçõesLinguagem C - Vetores, Matrizes e Funções
Linguagem C - Vetores, Matrizes e Funções
 
Fundamentos de banco de dados 03 arquitetura 3 esquemas e indep de dados
Fundamentos de banco de dados   03 arquitetura 3 esquemas e indep de dadosFundamentos de banco de dados   03 arquitetura 3 esquemas e indep de dados
Fundamentos de banco de dados 03 arquitetura 3 esquemas e indep de dados
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
Estrutura de Dados - Aula 15 - Pesquisa de Dados (Árvore de Pesquisa)
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Barramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de ComputadoresBarramento do Sistema - Arquitetura e Organização de Computadores
Barramento do Sistema - Arquitetura e Organização de Computadores
 
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoBanco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
 
6 estruturas de dados heterogêneas
6  estruturas de dados heterogêneas6  estruturas de dados heterogêneas
6 estruturas de dados heterogêneas
 
Linguagem C - Strings
Linguagem C - StringsLinguagem C - Strings
Linguagem C - Strings
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
SubProgramas
SubProgramasSubProgramas
SubProgramas
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Javascript aula 01 - visão geral
Javascript   aula 01 - visão geralJavascript   aula 01 - visão geral
Javascript aula 01 - visão geral
 
Arquitetura de Sistemas Operacionais 32 x 64 Bits
Arquitetura de Sistemas Operacionais 32 x 64 BitsArquitetura de Sistemas Operacionais 32 x 64 Bits
Arquitetura de Sistemas Operacionais 32 x 64 Bits
 
Estrutura de dados - Árvores Binárias
Estrutura de dados - Árvores BináriasEstrutura de dados - Árvores Binárias
Estrutura de dados - Árvores Binárias
 
Aula 7 - Expressões Aritméticas e Lógicas
Aula 7 - Expressões Aritméticas e LógicasAula 7 - Expressões Aritméticas e Lógicas
Aula 7 - Expressões Aritméticas e Lógicas
 
Web design responsivo e adaptativo - HTML5/CSS3
Web design responsivo e adaptativo - HTML5/CSS3Web design responsivo e adaptativo - HTML5/CSS3
Web design responsivo e adaptativo - HTML5/CSS3
 
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
Banco de Dados II Aula 07 - Linguagem de Consulta SQL (Comandos DDL)
 
Windows explorer
Windows explorerWindows explorer
Windows explorer
 

Destacado

Estrutura de dados - Variáveis homogêneas e Heterogêneas
Estrutura de dados - Variáveis homogêneas e HeterogêneasEstrutura de dados - Variáveis homogêneas e Heterogêneas
Estrutura de dados - Variáveis homogêneas e Heterogêneas
Adriano Teixeira de Souza
 
Arquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerArquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk Server
Markus Christen
 

Destacado (20)

Módulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de ComputadoresMódulo 5 Arquitetura de Computadores
Módulo 5 Arquitetura de Computadores
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Qualidade de Software - Introdução
Qualidade de Software - Introdução Qualidade de Software - Introdução
Qualidade de Software - Introdução
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de softwareAplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
 
Publish-Subscribe Middlewares
Publish-Subscribe MiddlewaresPublish-Subscribe Middlewares
Publish-Subscribe Middlewares
 
Padrões de Projeto - Observer
Padrões de Projeto - ObserverPadrões de Projeto - Observer
Padrões de Projeto - Observer
 
Questoes resolvidas de termodinmica
Questoes resolvidas de termodinmicaQuestoes resolvidas de termodinmica
Questoes resolvidas de termodinmica
 
Padrão de Projeto Observer
Padrão de Projeto ObserverPadrão de Projeto Observer
Padrão de Projeto Observer
 
Estrutura de dados - Variáveis homogêneas e Heterogêneas
Estrutura de dados - Variáveis homogêneas e HeterogêneasEstrutura de dados - Variáveis homogêneas e Heterogêneas
Estrutura de dados - Variáveis homogêneas e Heterogêneas
 
Padrões de Projeto para Jogos
Padrões de Projeto para JogosPadrões de Projeto para Jogos
Padrões de Projeto para Jogos
 
Arquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerArquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk Server
 
Concurso de Pitch - EDIFPI
Concurso de Pitch - EDIFPIConcurso de Pitch - EDIFPI
Concurso de Pitch - EDIFPI
 
Algoritmos - Introdução à Computação
Algoritmos - Introdução à ComputaçãoAlgoritmos - Introdução à Computação
Algoritmos - Introdução à Computação
 
Programação lógica
Programação lógicaProgramação lógica
Programação lógica
 
Lógica de programação
Lógica de programaçãoLógica de programação
Lógica de programação
 
aula 05 - Logica de programacao
aula 05 - Logica de programacaoaula 05 - Logica de programacao
aula 05 - Logica de programacao
 
aula 10 logica de programacao
aula 10 logica de programacaoaula 10 logica de programacao
aula 10 logica de programacao
 
aula 11 de logica de programacao
aula 11 de logica de programacaoaula 11 de logica de programacao
aula 11 de logica de programacao
 
aula 07 - Logica de programacao
aula 07 - Logica de programacaoaula 07 - Logica de programacao
aula 07 - Logica de programacao
 

Similar a Algoritmos - Procedimentos

Alg aula 08 - modularizacao
Alg   aula 08 - modularizacaoAlg   aula 08 - modularizacao
Alg aula 08 - modularizacao
Thalles Anderson
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
Carlos Santos
 
Aula 6 1 linguagem pascal-parte_1
Aula 6   1 linguagem pascal-parte_1Aula 6   1 linguagem pascal-parte_1
Aula 6 1 linguagem pascal-parte_1
Duane Bertoldo
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
Jocelma Rios
 

Similar a Algoritmos - Procedimentos (20)

Resumo functions e procedures
Resumo functions e proceduresResumo functions e procedures
Resumo functions e procedures
 
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de VariaveisAlgoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
Algoritmos - Aula 15 - Modularizacao e Escopo de Variaveis
 
Algumas notas sobre pascal
Algumas notas sobre pascalAlgumas notas sobre pascal
Algumas notas sobre pascal
 
Alg aula 08 - modularizacao
Alg   aula 08 - modularizacaoAlg   aula 08 - modularizacao
Alg aula 08 - modularizacao
 
Modularização
ModularizaçãoModularização
Modularização
 
Comandos de Controle de Programa em C
Comandos de Controle de Programa em CComandos de Controle de Programa em C
Comandos de Controle de Programa em C
 
(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos(A10) LabMM3 - JavaScript - Subalgoritmos
(A10) LabMM3 - JavaScript - Subalgoritmos
 
Aula 6 1 linguagem pascal-parte_1
Aula 6   1 linguagem pascal-parte_1Aula 6   1 linguagem pascal-parte_1
Aula 6 1 linguagem pascal-parte_1
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
 
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlgoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
 
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetrosAlgoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
Algoritmos e Programação: Subalgoritmos, funções e passagem de parâmetros
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
 
Aula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmosAula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmos
 
Aula 7 aed - sub algoritmos
Aula 7   aed - sub algoritmosAula 7   aed - sub algoritmos
Aula 7 aed - sub algoritmos
 
Aula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmosAula 7 -_aed_-_sub_algoritmos
Aula 7 -_aed_-_sub_algoritmos
 
Visualg
VisualgVisualg
Visualg
 
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
Capítulo 11 Livro Algoritmos e Programação de Computadores Autores JR., Diler...
 
Lógica de programação pascal
Lógica de programação   pascalLógica de programação   pascal
Lógica de programação pascal
 
Algoritmos-SlidesA1_2016_03_01.ppt
Algoritmos-SlidesA1_2016_03_01.pptAlgoritmos-SlidesA1_2016_03_01.ppt
Algoritmos-SlidesA1_2016_03_01.ppt
 
Subalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca LopesSubalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca Lopes
 

Más de Elaine Cecília Gatto

Más de Elaine Cecília Gatto (20)

A influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etariaA influência da Tecnologia em cada faixa etaria
A influência da Tecnologia em cada faixa etaria
 
Inteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à MedicinaInteligência Artificial Aplicada à Medicina
Inteligência Artificial Aplicada à Medicina
 
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
Além do Aprendizado Local e Global: Particionando o espaço de classes em prob...
 
Apresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPCApresentação da minha tese de doutorado no EPPC
Apresentação da minha tese de doutorado no EPPC
 
entrevista r7.pdf
entrevista r7.pdfentrevista r7.pdf
entrevista r7.pdf
 
Como a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptxComo a pesquisa científica impacta o mundo real.pptx
Como a pesquisa científica impacta o mundo real.pptx
 
Empoderamento Feminino
Empoderamento FemininoEmpoderamento Feminino
Empoderamento Feminino
 
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...Explorando correlações entre rótulos para o particionamento do espaço de rótu...
Explorando correlações entre rótulos para o particionamento do espaço de rótu...
 
Community Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCarCommunity Detection for Multi-Label Classification - Seminários UFSCar
Community Detection for Multi-Label Classification - Seminários UFSCar
 
Classificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de CorrelaçõesClassificação Multirrótulo: Aprendizado de Correlações
Classificação Multirrótulo: Aprendizado de Correlações
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Community Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label ClassificationCommunity Detection Method for Multi-Label Classification
Community Detection Method for Multi-Label Classification
 
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdfMulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
Mulheres na Campus Party assumir o feminismo ou não – Blogueiras Feministas.pdf
 
Curtinhas de sábado.pdf
Curtinhas de sábado.pdfCurtinhas de sábado.pdf
Curtinhas de sábado.pdf
 
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
Explorando Correlações entre Rótulos usando Métodos de Detecção de Comu...
 
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
EXPLORANDO CORRELAÇÕES PARA O PARTICIONAMENTO DO ESPAÇO DE RÓTULOS EM PROBLEM...
 
Pipeline desdobramento escalonamento
Pipeline desdobramento escalonamentoPipeline desdobramento escalonamento
Pipeline desdobramento escalonamento
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bitsResumo das Instruções de Desvio Incondicionais MIPS 32 bits
Resumo das Instruções de Desvio Incondicionais MIPS 32 bits
 
Como descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcaçãoComo descobrir e classificar coisas usando machine learning sem compilcação
Como descobrir e classificar coisas usando machine learning sem compilcação
 

Último

ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
LeloIurk1
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
azulassessoria9
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
edelon1
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
FabianeMartins35
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
HELENO FAVACHO
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
CleidianeCarvalhoPer
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
Ana Lemos
 

Último (20)

DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Revolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividadesRevolução russa e mexicana. Slides explicativos e atividades
Revolução russa e mexicana. Slides explicativos e atividades
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 

Algoritmos - Procedimentos

  • 1. PROCEDIMENTOS Profª Ms. Engª Elaine Cecília Gatto Curso de Bacharelado em Engenharia de Computação Universidade do Sagrado Coração – USC Bauru/SP
  • 2. SubAlgoritmos • DIVIDIR PARA CONQUISTAR: • Método para resolução de problemas que consiste em dividir um problema, em problemas menores e mais fáceis de solucionar. • PROJETO DESCENDENTE (TOP-DOWN DESIGN): • Método de projetar a solução de um problema principal obtendo soluções de seus subproblemas. • As partes em que se divide um programa devem ser desenvolvidas independentemente umas das outras
  • 3. SubAlgoritmos ALGORITMO PRINCIPAL SUBALGORITMO 1 SUBALGORITMO 2 SUBALGORITMO 3 PROGRAMA PRINCIPAL SUBPROGRAMA1 SUBPROGRAMA 2 SUBPROGRAMA 3
  • 4. SubAlgoritmos • Um subprograma/subalgoritmo pode realizar as mesmas ações que um programa: 1. Aceitar dados 2. Realizar alguns cálculos 3. Devolver resultados
  • 5. SubAlgoritmos • Entretanto, um subprograma é utilizado por um programa para um propósito específico. • O programa subprograma. principal chama ou invoca um • O subprograma, quando invocado, obtém o controle, executa sua tarefa e devolve o controle ao programa principal. • Existem dois tipos de subprogramas: FUNÇÕES e PROCEDIMENTOS.
  • 6. SubAlgoritmos PROGRAMA PRINCIPAL --------------------ALGORITMO Chamada 1 Retorno 1 Chamada 2 Retorno 2 SUBPROGRAMA -------------------------SUBALGORITMO
  • 7. SubAlgoritmos Chamada 1 Retorno 1 SUBPROGRAMA 1 Chamada 2 PROGRAMA PRINCIPAL Retorno 2 SUBPROGRAMA 2 SUBPROGRAMA 3 SUBPROGRAMA 2.1
  • 10. SUB-ROTINA • O mesmo que subprogramas ou funções • São blocos de instruções que realizam tarefas específicas • O código é carregado uma vez e pode ser executado várias vezes • Os programas organizados ficam menores e mais
  • 11. SUB-ROTINA • Em linguaguens estruturadas, os programas são executados linearmente, LINHA APÓS LINHA • Subrotinas permitem um desvio nesta execução • A ordem da execução das instruções do programa é desviada quando existe a chamada de uma rotina no programa principal
  • 12. SUB-ROTINA • Enquanto a subrotina é executada, o programa principal fica suspenso • O controle volta ao programa principal quando a execução da subrotina chega ao seu fim, por meio da palavra chave RETURN
  • 13. SUB-ROTINA • Variáveis locais: variáveis declaradas dentro das subrotinas. São destruídas assim que a execução da rotina é finalizada. • Variaveis globais: variáveis declaradas dentro do programa principal. Qualquer ponto do programa pode usá-las. São destruídas quando a execução do programa é finalizado
  • 14. SUB-ROTINA • Passagem por valor: quando um parâmetro é passado para a função. A variável do cabeçalho se comportará como uma variável local da subrotina • Passagem por referência: quando um parâmetro é passado para a função. A variável do cabeçalho se comportará como uma variável global.
  • 15. SUB-ROTINA Algoritmo exemplo1; Inteiro : sal, aum, novo_sal; Leia(sal) Aum  calculo(sal); Novo_sal  sal + aum; Escreva(“Novo Salário é: ”, novo_sal); FIM. Subrotina calculo(inteiro: sal) Inteiro : perc, valor; Leia(perc); Valor  (sal * perc) / 100; Retorne valor Fim_subrotina calculo
  • 16. SUB-ROTINA Algoritmo exemplo2; Inteiro : x, y; X <-- 1; Y  2; Escreva( “ valores iniciais ” ); Escreva( “ x = ”, z, “ y ”, = y ); S1; Escreva( “ valores depois da execução da s1” ); Escreva( “ x = ”, z, “ y ”, = y ); S2( x, y ); //por valor Escreva( “ valores depois da execução da s2” ); Escreva( “ x = ”, z, “ y ”, = y ); S3( x, y ); //por referência Escreva( “ valores depois da execução da s3” ); Escreva( “ x = ”, z, “ y ”, = y ); FIM.
  • 17. SUB-ROTINA //subrotina sem parâmetro e sem retorno Subrotina s1 Inteiro : x, y, z; //variáveis locais X  8; Y  10; Z  5; Escreva( “Valores impressos dentro da subrotina s1” ); Escreva( “ x = ”, x, “ y = ”, y, “ z = ”, z ); FIM_Subrotina_S1;
  • 18. SUB-ROTINA //subrotina com parâmetro por valor e sem retorno Subrotina s2 ( inteiro : x, y ) Inteiro : z; //variáveis locais X  x + 2; Y  y + 2; Z  x + y; Escreva( “ Valores impressos dentro da subrotina s2” ); Escreva( “ x = ”, x, “ y = ”, y, “ z = ”, z ); FIM_Subrotina_S2;
  • 19. SUB-ROTINA //subrotina com parâmetro por referência e sem retorno Subrotina s3 ( inteiro : x, y ) Inteiro : a; //variáveis locais A  x + y; X  y - 1; Y  x - 2; Escreva( “ Valores impressos dentro da subrotina s2” ); Escreva( “ x = ”, x, “ y = ”, y, “ a = ”, z ); FIM_Subrotina_S2;
  • 20. Modularização • Pascal permite o uso de: • PROCEDURES – procedimentos • FUNCTIONS – funções • UNITS – unidades • São três formas de modularizar um programa • Procedures e functions devem ter o seu código escrito antes do BEGIN
  • 22. SEM PASSAGEM DE PARÂMETROS • São rotinas chamadas pelo programa principal para executar alguma operação especí´fica, mas não retornam valor para quem as chamou Procedure nome_da_procedure; Declaração_de_variáveis_locais; Begin Comandos End; P R O C E D U R E S
  • 23. SEM PASSAGEM DE PARÂMETROS Program exemplo; Uses crt; Var a, b, s : integer //variáveis globais Procedure somar; Begin s := a + b; End; P R O C E D U R E S
  • 24. SEM PASSAGEM DE PARÂMETROS Begin clrscr; writeln(‘Digite o primeiro numero’); readln(a); writeln(‘Digite o segundo numero’); readln(b); somar; writeln(‘A soma é: ’, s); readln(); End. P R O C E D U R E S
  • 25. SEM PASSAGEM DE PARÂMETROS Program exemplo2; Uses crt; Procedure somar; Var a, b, s : integer; Begin writeln(‘digite o primeiro numero’); readln(a); P R O C E D U R E S
  • 26. SEM PASSAGEM DE PARÂMETROS Writeln(‘Digite o segundo numero’); Readln(b); s := a + b; Writeln(‘A soma é: ’, s); End; Begin Clrscr; Somar; Readln; End. P R O C E D U R E S
  • 27. PASSAGEM DE PARÂMETROS POR VALOR Alguns valores são fornecidos à procedure quando ela é solicitada Procedure nome_da_procedure(parâmetros : tipo_dos_dados) Declaração_de_variáveis_locais; Begin Comandos; End; P R O C E D U R E S
  • 28. PASSAGEM DE PARÂMETROS POR VALOR Program exemplo1; Uses crt; Var A, b : integer; Procedure somar(x, y : integer); Var S : integer; begin s := x + y; writeln(‘A soma é: ’, s); end; P R O C E D U R E S
  • 29. PASSAGEM DE PARÂMETROS POR VALOR Begin clrscr; writeln(‘Digite o primeiro número’); readln(a); writeln(‘Digite o segundo número’); readln(b); somar(a, b); readln; End. P R O C E D U R E S
  • 30. PASSAGEM DE PARÂMETROS POR VALOR Program exemplo2; Uses crt; //passando matriz ou vetor como parâmetro Type x = array[1..5] of integer; Var i : integer; w : x; P R O C E D U R E S
  • 31. PASSAGEM DE PARÂMETROS POR VALOR Procedure mostrar(y:x); Begin Writeln(‘Mostrando o vetor na subrotina’); For i:=1 to 5 do Begin Writeln( y [ i ] ); End; End; P R O C E D U R E S
  • 32. PASSAGEM DE PARÂMETROS POR VALOR Begin clrscr; writeln(‘digitando os números do vetor: ’); for i:=1 to 5 do Begin readln( w [ i ] ); End; mostrar(w); readln; End. P R O C E D U R E S
  • 33. PASSAGEM DE PARÂMETROS POR REFERÊNCIA Os parâmetros se comportam como variáveis globais Procedure nome_da_procedure(VAR parâmetros : tipo_dos_dados); Declaração_de_variáveis_locais; Begin Comandos End; P R O C E D U R E S
  • 34. PASSAGEM DE PARÂMETROS POR REFERÊNCIA Program exemplo1; Uses crt; Var a, b : integer; Procedure somar(VAR x, y : integer); Var s : integer; P R O C E D U R E S
  • 35. PASSAGEM DE PARÂMETROS POR REFERÊNCIA Begin s := x + y; writlen(‘A soma é: ’, s); End; Begin clrscr; writeln(‘Digite o primeiro número’); readln(a); P R O C E D U R E S
  • 36. PASSAGEM DE PARÂMETROS POR REFERÊNCIA writeln(‘Digite o segundo número’); readln(b); somar(a, b); readln; End. P R O C E D U R E S
  • 38. SEM PASSAGEM DE PARÂMETRO • • • • FUNCTION X PROCEDURE Function SEMPRE retorna um valor A PROCEDURE NEM sempre retorna um valor O OBJETIVO é para ambos é o mesmo FUNCTION NOME_DA_FUNCTION : TIPO_DE_DADO_DO_VALOR_RETORNADO; Declaração_de_variáveis_locais; Begin Comandos; End; F U N C T I O N S
  • 39. SEM PASSAGEM DE PARÂMETRO • Para que ocorra o retorno de algum valor para quem chamou a function, deve-se atribuir tal valor a uma variável cujo nome seria igual ao dado à function Program exemplo1; Uses crt; Var a, b, s : integer; Function somar : integer; begin somar := a + b; end; F U N C T I O N S
  • 40. SEM PASSAGEM DE PARÂMETRO Begin Clrscr; writeln(‘Digite o primeiro número’); readln(a); writeln(‘Digite o segundo número’); readln(b); s := somar; writeln(‘ A soma é: ’, s); readln; End. F U N C T I O N S
  • 41. PASSAGEM DE PARÂMETRO POR VALOR FUNCTION nome_da_function(parâmetros : tipo_dos_dados) : tipo_de_dado_do_valor_retornado; Declaração_de_variáveis_locais; Begin Comandos; End; F U N C T I O N S
  • 42. PASSAGEM DE PARÂMETRO POR VALOR • A chamada a uma FUNCTION acontece atribuindo seu nome a uma variável ou a um condição, que receberá o retorno ao término de sua execução • No momento da chamada, são informados os parâmetros que deverão ser levados para a FUNCTION F U N C T I O N S
  • 43. PASSAGEM DE PARÂMETRO POR VALOR Program exemplo1; Uses crt; Var a, b, s : integer; Function somar(x, y : integer) : integer; Begin Somar := x + y; End; F U N C T I O N S
  • 44. PASSAGEM DE PARÂMETRO POR VALOR Begin clrscr; writeln(‘Digite o primeiro número’); readln(a); writeln(‘Digite o segundo número’); readln(b); s := somar(a, b); writeln(‘ A soma é: ’, s); readln; End. F U N C T I O N S
  • 45. PASSAGEM DE PARÂMETRO POR REFERÊNCIA Uma function pode receber parâmetros no momento em que é chamada Os valors informados são copiados, sequencialmente, em variáveis descritas em seu cabeçalho FUNCTION nome_da_function( VAR parâmetros : tipo_dos_dados ) : tipo_de_dado_do_valor_retornado; Declaração de variáveis locais; Begin Comandos; End; F U N C T I O N S
  • 46. PASSAGEM DE PARÂMETRO POR REFERÊNCIA Program exemplo1; Uses crt; Var a, b, s : integer; Function somar(VAR x, y : integer) : integer; Begin somar := x + y; End; F U N C T I O N S
  • 47. PASSAGEM DE PARÂMETRO POR REFERÊNCIA Begin clrscr; writeln(‘Digite o primeiro número’); readln(a); writeln(‘Digite o segundo número’); readln(b); s := somar(a, b); writeln(‘ A soma é: ’, s); readln; End. F U N C T I O N S
  • 48. PASSAGEM DE PARÂMETRO POR REFERÊNCIA • Os parâmetros passados por referência – isso é identificado pela presença da palavra VAR no cabeçalho da FUNCTION – qualquer alteração nos valores de X ou de Y será também refletida nas variáveis A e B, respectivamente F U N C T I O N S
  • 49. UNITS • É um arquivo (.pas) • Contém várias procedures e functions • Torna-se um TPU depois de ser compilado – isto é, torna-se uma biblioteca • A biblioteca pode ser chamada por outros programas por meio do uso da palavra chave USES • O nome de uma UNIT deve ser o nome do arquivo
  • 50. UNITS UNIT nome_da_unit; INTERFACE Cabeçalho das procedures e das functions; IMPLEMENTATION Implementação das procedures e das functions; END;
  • 51. UNITS unit calcula; interface procedure somar(a, b : integer); function multiplicar(a, b, c : integer) : integer; Implementation procedure somar(a, b : integer); var s : integer; writeln(‘ A soma é : ’, s); end; function multiplicar(a, b, c : integer) : integer; begin multiplicar : = a * b * c; end; end.
  • 52. UNITS • Para criar uma UNIT (biblioteca) é necessário abrir um arquivo novo, digitar os códigos da biblioteca e salvar o arquivo com o mesmo nome da UNIT. Esse arquivo será o .PAS. • Depois, no menu COMPILAR, o destino da compilação deve ser alteração para DISK. Somente depois disso será gerado o arquivo TPU (que é a biblioteca propriamente dita)
  • 53. UNITS Program subrotina; Uses crt, calcula; Var x, y, z, mult : integer; Begin Clrscr; Writeln(‘digite o valor de x’); Readln(x); Writeln(‘digite o valor ’); Readln(y); somar(x,y); Writeln(‘digite o valor de z’); readln(z); mult := multiplicar(x, y, z); writeln(‘multiplicação = ’, mult); Readln; End.