Prof. Antonio Pires de Almeida Junior
 Em linhas gerais, problemas
complexos exigem, para sua solução,
algoritmos complexos, no entanto é
possível dividir um problema grande
em problemas menores, ou seja, usar
o processo de modularidade. Cada
parte menor ou módulo tem um
algoritmo mais simples, o que facilita
chegar à grande solução.
◦ Vem sendo utilizado desde a década de 1950;
◦ Cada módulo possui um único ponto de entrada;
◦ Toda unidade de programa chamadora é
suspensa durante a execução da unidade de
módulo chamda;
◦ Quando a execução da unidade escrava (módulo)
é encerada, o controle de fluxo de execução do
programa volta para a primeira linha de instrução
após a chamada do módulo, quando
procedimento, no caso de função, o retorno
ocorre na mesma linha.
 O método top-down descreve de
forma resumida as ações de um
programa sem preocupar-se com
detalhes que sejam específicos.
 Tem como características:
◦ Antes de iniciar a construção de um
programa de computador, o programador
deve ter em mente as tarefas principais que
ele deve executar. Não é necessário saber
como funcionarão, só somente quantas são.
◦ Conhecida todas as tarefas a serem
executadas, deve-se ter em mente como deve
ser o programa principal, o qual vai controlar
todas as outras tarefas distribuídas em sub-
rotinas.
◦ Definido o programa principal, é indicado
o processo de detalhamento estrutural
para cada sub-rotina. São definidos vários
algoritmos, um para cada rotina em
separado, para que se tenha uma visão do
que deve ser executado em cada módulo
de programa.
 Um módulo de procedimento (sub-
rotina) é um bloco de programas com
início e fim, identificado por um nome
que referencia seu uso em qualquer
parte do programa principal ou do
programa chamador da sub-rotina. Os
procedimentos podem ser definidos
com ou sem parâmetros.
Algoritmo tal;
...
procedimento nome()
declare
// variáveis internas
inicio
//bloco de comandos
Fim procedimento;
....
Inicio
nome();
Fim Algoritmo;
 Muitas vezes é necessário indicar
explicitamente ao subprograma as
condições sob as quais a sua
execução vai ser realizada. Por estas
razões, um subprograma poderá
aceitar parâmetros que determinam
essas condições.
Algoritmo Soma1;
Procedimento soma
declare
A, B, R: inteiro;
inicio
Leia (A, B);
R  A + B;
Escreva (R);
Fim procedimento;
Inicio
soma;
Fim Algoritmo;
Algoritmo Soma2;
Declare
X, Y; inteiro;
Procedimento soma (A, B: inteiro)
declare
R: inteiro;
inicio
R  A + B;
Escreva (R);
Fim procedimento;
Inicio
Leia (X, Y);
soma(X,Y);
Fim Algoritmo;
 O escopo de uma variável, ou sua
abrangência operacional, está
vinculado à forma de sua visibilidade
no programa (uma variável pode ser
global ou local)
 Uma Variável é Global ou pública
quando é declarada no início de um
algoritmo, antes de um conjunto de
sub-rotinas, ou seja, a variável passa
a ser “vista” a todas as sub-rotinas.
Algoritmo TrocaValor;
Declare
A, B: inteiro;
Procedimento troca
Declare
X:inteiro;
Inicio
X  A;
A  B;
B  X;
Fim procedimento ;
Inicio
leia(A, B);
troca;
escreva (A, B);
Fim Algoritmo.
 Uma Variável é Local (ou privada)
quando é declarada em uma sub-
rotina é somente válida dentro dela.
As demais sub-rotinas e mesmo o
trecho principal do programa não
podem usar essa variável, uma vez
que esses trechos não conseguem
“visualizar” a existência dela.
Algoritmo TrocaValor;
Declare
Procedimento troca
Declare
A, B, X:inteiro;
Inicio
leia(A, B);
X  A;
A  B;
B  X;
escreva (A, B);
Fim Procedimento;
Inicio
troca;
Fim Algoritmo.
 O uso de escopos de variáveis é uma
técnica de programação que possibilita
e auxilia a programação estruturada.
 O objetivo maior é economizar o máximo
de memória do computador. Portanto
usar ao máximo variáveis que tenha
escopo local, deixando o escopo global
apenas para aquelas que serão utilizadas
em mais de um trecho de rotina do
programa.
 Exercício 1: Faça um
procedimento que escreva os
valores de uma matriz 5x5;
 Exercício 2: Faça um algoritmo
que irá possuir um procedimento
que liste os valores menores que
10 de um vetor de 30 posições
 Designam-se por função um
subprograma que possui como
características o retorno de um valor.
As funções podem ser definidas com
ou sem parâmetros.
Algoritmo tal;
...
Função nome() :tipoRetorno
Declare
// variáveis internas
Inicio
//bloco de comandos
retorne X;
Fim função;
....
Inicio
A <- nome();
Fim Algoritmo;
Algoritmo Eleva;
Declare
numero: real;
Funcao Quadrado (x: real):real
Inicio
x  x * x;
retorne x;
Fim Funcao;
Inicio
Escreva (“Informe um valor:”);
Leia (numero);
numero  Quadrado(numero);
Escreva (numero);
Fim algoritmo.
 Exercício 1: Faça uma função que
eleve um valor ao cubo;
 Exercício 2: Faça uma função que
calcule a soma de todos
elementos de uma matriz[5,5];
 Ocorre quando o parâmetro formal da
sub-rotina recebe do parâmetro real
do trecho de programa chamador um
determinado conteúdo.
Algoritmo Eleva;
Declare
numero: real;
Funcao Quadrado (x: real):real
Inicio
x  x * x;
retorne x;
Fim função;
Inicio
Escreva (“Informe um valor:”);
Leia (numero);
numero <- Quadrado(numero);
Escreva (numero);
Fim algoritmo;
 Ocorre quando o parâmetro real do
trecho do programa recebe o conteúdo
do parâmetro formal de uma sub-rotina.
Após certo processamento dentro de
uma sub-rotina, o parâmetro formal
reflete a alteração de seu conteúdo no
parâmetro real.
 Utilize a palavra VAR na variável que
quer utilizar “por referência”)
Algoritmo ElevaRaiz;
Declare
numero, quad: real;
Funcao QuadradoRaiz (var x: real):real
Declare
r:real;
Inicio
r  x * x;
x  x^1/2;
retorne r;
Fim Função;
Inicio
Leia (numero);
quad <- QuadradoRaiz(numero);
Escreva (quad);
Escreva (numero);
Fim algoritmo;
 A passagem de parâmetro por
referência é utilizada para obter saída
de um determinado conteúdo de uma
sub-rotina, antes da sub-rotina ser
distribuída da memória junto com
seus conteúdos

sbwjwjenebdnjddjdProcedimento e Função.pdf

  • 1.
    Prof. Antonio Piresde Almeida Junior
  • 2.
     Em linhasgerais, problemas complexos exigem, para sua solução, algoritmos complexos, no entanto é possível dividir um problema grande em problemas menores, ou seja, usar o processo de modularidade. Cada parte menor ou módulo tem um algoritmo mais simples, o que facilita chegar à grande solução.
  • 3.
    ◦ Vem sendoutilizado desde a década de 1950; ◦ Cada módulo possui um único ponto de entrada; ◦ Toda unidade de programa chamadora é suspensa durante a execução da unidade de módulo chamda; ◦ Quando a execução da unidade escrava (módulo) é encerada, o controle de fluxo de execução do programa volta para a primeira linha de instrução após a chamada do módulo, quando procedimento, no caso de função, o retorno ocorre na mesma linha.
  • 4.
     O métodotop-down descreve de forma resumida as ações de um programa sem preocupar-se com detalhes que sejam específicos.  Tem como características:
  • 5.
    ◦ Antes deiniciar a construção de um programa de computador, o programador deve ter em mente as tarefas principais que ele deve executar. Não é necessário saber como funcionarão, só somente quantas são. ◦ Conhecida todas as tarefas a serem executadas, deve-se ter em mente como deve ser o programa principal, o qual vai controlar todas as outras tarefas distribuídas em sub- rotinas.
  • 6.
    ◦ Definido oprograma principal, é indicado o processo de detalhamento estrutural para cada sub-rotina. São definidos vários algoritmos, um para cada rotina em separado, para que se tenha uma visão do que deve ser executado em cada módulo de programa.
  • 7.
     Um módulode procedimento (sub- rotina) é um bloco de programas com início e fim, identificado por um nome que referencia seu uso em qualquer parte do programa principal ou do programa chamador da sub-rotina. Os procedimentos podem ser definidos com ou sem parâmetros.
  • 8.
    Algoritmo tal; ... procedimento nome() declare //variáveis internas inicio //bloco de comandos Fim procedimento; .... Inicio nome(); Fim Algoritmo;
  • 9.
     Muitas vezesé necessário indicar explicitamente ao subprograma as condições sob as quais a sua execução vai ser realizada. Por estas razões, um subprograma poderá aceitar parâmetros que determinam essas condições.
  • 10.
    Algoritmo Soma1; Procedimento soma declare A,B, R: inteiro; inicio Leia (A, B); R  A + B; Escreva (R); Fim procedimento; Inicio soma; Fim Algoritmo; Algoritmo Soma2; Declare X, Y; inteiro; Procedimento soma (A, B: inteiro) declare R: inteiro; inicio R  A + B; Escreva (R); Fim procedimento; Inicio Leia (X, Y); soma(X,Y); Fim Algoritmo;
  • 11.
     O escopode uma variável, ou sua abrangência operacional, está vinculado à forma de sua visibilidade no programa (uma variável pode ser global ou local)
  • 12.
     Uma Variávelé Global ou pública quando é declarada no início de um algoritmo, antes de um conjunto de sub-rotinas, ou seja, a variável passa a ser “vista” a todas as sub-rotinas.
  • 13.
    Algoritmo TrocaValor; Declare A, B:inteiro; Procedimento troca Declare X:inteiro; Inicio X  A; A  B; B  X; Fim procedimento ; Inicio leia(A, B); troca; escreva (A, B); Fim Algoritmo.
  • 14.
     Uma Variávelé Local (ou privada) quando é declarada em uma sub- rotina é somente válida dentro dela. As demais sub-rotinas e mesmo o trecho principal do programa não podem usar essa variável, uma vez que esses trechos não conseguem “visualizar” a existência dela.
  • 15.
    Algoritmo TrocaValor; Declare Procedimento troca Declare A,B, X:inteiro; Inicio leia(A, B); X  A; A  B; B  X; escreva (A, B); Fim Procedimento; Inicio troca; Fim Algoritmo.
  • 16.
     O usode escopos de variáveis é uma técnica de programação que possibilita e auxilia a programação estruturada.  O objetivo maior é economizar o máximo de memória do computador. Portanto usar ao máximo variáveis que tenha escopo local, deixando o escopo global apenas para aquelas que serão utilizadas em mais de um trecho de rotina do programa.
  • 17.
     Exercício 1:Faça um procedimento que escreva os valores de uma matriz 5x5;  Exercício 2: Faça um algoritmo que irá possuir um procedimento que liste os valores menores que 10 de um vetor de 30 posições
  • 18.
     Designam-se porfunção um subprograma que possui como características o retorno de um valor. As funções podem ser definidas com ou sem parâmetros.
  • 19.
    Algoritmo tal; ... Função nome():tipoRetorno Declare // variáveis internas Inicio //bloco de comandos retorne X; Fim função; .... Inicio A <- nome(); Fim Algoritmo;
  • 20.
    Algoritmo Eleva; Declare numero: real; FuncaoQuadrado (x: real):real Inicio x  x * x; retorne x; Fim Funcao; Inicio Escreva (“Informe um valor:”); Leia (numero); numero  Quadrado(numero); Escreva (numero); Fim algoritmo.
  • 21.
     Exercício 1:Faça uma função que eleve um valor ao cubo;  Exercício 2: Faça uma função que calcule a soma de todos elementos de uma matriz[5,5];
  • 22.
     Ocorre quandoo parâmetro formal da sub-rotina recebe do parâmetro real do trecho de programa chamador um determinado conteúdo.
  • 23.
    Algoritmo Eleva; Declare numero: real; FuncaoQuadrado (x: real):real Inicio x  x * x; retorne x; Fim função; Inicio Escreva (“Informe um valor:”); Leia (numero); numero <- Quadrado(numero); Escreva (numero); Fim algoritmo;
  • 24.
     Ocorre quandoo parâmetro real do trecho do programa recebe o conteúdo do parâmetro formal de uma sub-rotina. Após certo processamento dentro de uma sub-rotina, o parâmetro formal reflete a alteração de seu conteúdo no parâmetro real.  Utilize a palavra VAR na variável que quer utilizar “por referência”)
  • 25.
    Algoritmo ElevaRaiz; Declare numero, quad:real; Funcao QuadradoRaiz (var x: real):real Declare r:real; Inicio r  x * x; x  x^1/2; retorne r; Fim Função; Inicio Leia (numero); quad <- QuadradoRaiz(numero); Escreva (quad); Escreva (numero); Fim algoritmo;
  • 26.
     A passagemde parâmetro por referência é utilizada para obter saída de um determinado conteúdo de uma sub-rotina, antes da sub-rotina ser distribuída da memória junto com seus conteúdos