Professora: Flávia Balbino da Costa
LINGUAGEM DE PROGRAMAÇÃO I
PARTE IV
CONTEÚDO PROGRAMÁTICO:






Introdução à Programação
Estrutura de um algoritmo
Operadores e expressões
Estruturas de Decisão
Estruturas de Repetição
Procedimentos e Funções
PROCEDIMENTOS E FUNÇÕES

Com a utilização de Sub-rotinas é possível dividir um
problema grande em problemas menores.
Dessa forma,
podemos ter algoritmos mais simples com sub-rotinas. A sub-
rotina serve para modularizar um programa.

Como exemplo, em Pascal temos algumas sub-rotinas já
existentes: CLRSCR (sub-rotina que “limpa” a tela) e Readkey
(sub-rotina que ler qualquer caracter do teclado).
MÉTODOS:

Método de Refinamento sucessivo - É o processo de dividir
sub-rotinas em outras.

Método Top-Down- É sabido que a aplicação de sub-rotinas
(módulos de programas) facilita a programação. Porém, a
utilização de sub-rotinas deverá ser feita com a aplicação do
método Top-Down. Este método se caracteriza por:
MÉTODO TOP-DOWN:
1) Antes de iniciar a construção de algoritmo, o programador
deverá ter em mente as principais tarefas que deverá
executar;
2) Conhecidas todas as tarefas a serem executadas, tem-se em
mente como deverá ser o programa principal, que vai
controlar todas as sub-rotinas;
3) Definido o programa principal, é iniciado o processo de
detalhamento de cada sub-rotina.
VANTAGENS:
1) Cada módulo (sub-rotina) é efetuado em separado. Desta
forma, cada um pode ser testado separadamente, garantindo
que o programa completo esteja sem erro ao seu término.
2) Podemos repetir módulos em outros programas.
APLICAÇÃO PRÁTICA DO USO DE SUB-ROTINAS:
1) Procedimento – Um bloco de algoritmo (Programa), com início
e fim, que será identificado por um nome, por meio do qual
será referenciado em qualquer parte do programa principal
ou do programa chamador da sub-rotina.
PROCEDIMENTOS
Sintaxe:
Procedimento <nome do procedimento>
Var
<variáveis>
Início
<comandos>
Fim
PROCEDIMENTOS
Exemplo: Criar um algoritmo que apresente um menu de
seleções no programa principal. Este menu dará ao usuário a
possibilidade de escolher a adição, a subtração de duas
variáveis ou o fim do programa. Escolhida a opção, deverá
ser solicitada a entrada de dois números e processada a
operação, deverá ser exibido o resultado.
Solução:
Algoritmo Calculo
Var
Opcao: Caracter
Procedimento Rot_Soma
Var
A, B, R: Real
Inicio
Escreva (“Rotina de Soma”)
Escreva (“Entre com o valor de A:”)
Leia (A)
Escreva (“Entre com o valor de B:”)
Leia (B)
R←A+B
Escreva (“A + B:”, R)
Fim
Solução:
Procedimento Rot_Subtracao
Var
A, B, R: Real
Inicio
Escreva (“Rotina de Subtração”)
Escreva (“Entre com o valor de A:”)
Leia (A)
Escreva (“Entre com o valor de B:”)
Leia (B)
R←A -B
Escreva (“A - B:”, R)
Fim
Solução:
Início
Opcao ← “0”
Enquanto (Opcao<> “3”) faça
Escreva (“1 – Adição”)
Escreva (“2 – Subtração”)
Escreva (“3 – Fim do Programa”)
Escreva (“Escolha uma opção:”)
Leia (Opcao)
Se (Opcao=“1”) então
Rot_Soma
Senão
Se (Opcao=“2”) então
Rot_Subtracao
FimSe
FimSe
FimEnquanto
FimAlgoritmo
VARIÁVEIS GLOBAIS E LOCAIS:
No algoritmo anterior foram utilizadas variáveis dentro das subrotinas (variáveis A, B e R) e fora (no caso a variável opcao).
Variável Global – quando é declarada no início do algoritmo
principal, podendo ser utilizada em qualquer sub-rotina do
algoritmo principal. Esta variável é visível a todas as sub-rotinas
subordinadas ao algoritmo principal.
VARIÁVEIS GLOBAIS E LOCAIS:
Variável Local – quando é declarada dentro de uma sub-rotina e
é válida somente dentro da sub-rotina à qual está declarada.
Desta forma, as demais sub-rotinas e o algoritmo principal não
poderão fazer uso destas variáveis como acontece com as
variáveis globais, pois não visualizam a existência delas.
ESCOPO DE VARIÁVEIS:
O escopo de uma variável está vinculado a sua visibilidade
(global e local) em relação às sub-rotinas de um programa,
sendo que a sua visibilidade está relacionada à sua hierarquia.
Variáveis A e B
Variáveis A, B e C
Variáveis
A, B, C e E
Variáveis
A, B, C e F
Variáveis A, B e D
Variáveis A, B, D e G
Programa Principal
Var
A, B: Inteiro
Rotina 1
Var
C: Inteiro
Pro
Rotina 1.1
Var
E: Inteiro
Rotina 1.2
Var
F: Inteiro
Rotina 2
Var
D: Inteiro
Rotina 2.1
Var
G: Inteiro
UTILIZAÇÃO DE PARÂMETROS:
Finalidade – Serve como um canal de comunicação bidirecional
entre uma sub-rotina e o programa principal ou uma sub-rotina
hierarquicamente de nível mais alto.
Desta forma, é possível passar valores entre um programa
principal e uma sub-rotina (ou entre sub-rotinas) utilizando
parâmetros que podem ser:
1) Formais;
2) Reais.
PARÂMETROS FORMAIS E REAIS:
Parâmetros Formais – Quando forem declarados por meio de
variáveis juntamente com a identificação da sub-rotina.
Parâmetros Reais – São considerados parâmetros reais, quando
estes substituem os parâmetros formais, quando da utilização
da sub-rotina por um programa principal ou por uma sub-rotina
chamadora.
Programa Calculo
Sub-rotina
Procedimento Soma (A, B: Inteiro)
Var
Z: Inteiro
Início
Z←A+B
Escreva (Z)
Fim
Var
Programa
Principal
X,Y: Inteiro
Início
Leia (X)
Leia (Y)
Soma (X, Y)
FimAlgoritmo
Parâmetros
Reais
Parâmetros
Formais
PASSAGEM DE PARÂMETROS:
Ocorre quando é feito uma substituição dos parâmetros formais
pelos reais no momento da execução da sub-rotina.
parâmetros serão passados por variáveis e duas formas:
1) Por Valor
2) Por Referência
Estes
PASSAGEM DE PARÂMETROS POR VALOR:
Caracteriza-se pela não alteração do valor do parâmetro real
quando o parâmetro formal é manipulado dentro da sub-rotina.
Em outras palavras, o valor passado pelo parâmetro real é
copiado para o parâmetro formal, que no caso assume o papel
de variável local da sub-rotina.
Desta forma, qualquer
modificação que ocorra na variável local
afetará o parâmetro real correspondente.
da sub-rotina não
PASSAGEM DE PARÂMETROS POR VALOR:
Dicas:
1) O processamento é executado dentro da sub-rotina;
2) O resultado fica “preso” na sub-rotina;
3) É somente para entrada de dados da sub-rotina.
Algoritmo Fatorial
Procedimento Fatorial (N:Inteiro)
Var
Parâmetro Formal
i,fat: Inteiro
Início
Fat ← 1
Para i de 1 até N passo 1 faça
Fat ← Fat * i
FimPara
Escreva (Fat)
Passagem por
Fim
valor
Var
A: Inteiro
Início
Escreva (“Fatorial de que número:?”)
Leia (A)
Fatorial (A)
Parâmetro Real
FimAlgoritmo
PASSAGEM DE PARÂMETROS POR REFERÊNCIA:
Caracteriza-se pela ocorrência da alteração do valor do parâmetro
real quando o parâmetro formal é manipulado dentro da sub-rotina.
DICAS:

Qualquer modificação no parâmetro formal implica modificação
no parâmetro real correspondente;

A alteração efetuada é desenvolvida para a rotina chamadora;

Serve para que se tenha saída de um determinado valor de
dentro de uma sub-rotina.
Algoritmo Calc_Fatorial2
Procedimento Fatorial (N:Inteiro, Var Fat: Inteiro)
Var
i: Inteiro
Início
Fat ← 1
Para i de 1 até N passo 1 faça
Fat ← Fat * i
FimPara
Passagem por
Fim
valor (Entrada)
Var
A, B: Inteiro
Início
Escreva (“Fatorial de que número:?”)
Leia (A)
Fatorial (A, B)
Escreva (B)
FimAlgoritmo
OBS1: Não foi preciso
declarar Fat dentro da
sub-rotina, pois esta foi
declarada no enunciado
dela.
Passagem por
referência
(Saída)
OBS2: No enunciado da
sub-rotina, entende-se
que tudo que está
depois de Var será a
variável de passagem
de parâmetro por
referência.
Exemplo:
1.
Faça um algoritmo que tenha três procedimentos que façam
os seguintes cálculos:
 Cubo de um número;
 Fatorial de um número;
 Verifique se este número é par, ímpar ou zero.
Utilize a técnica de passagem de parâmetros por valor (entrada
do número) e por referência (saída: cubo, fatorial e mensagem).
Algoritmo Exemplo
Procedimento Calculo (X:Inteiro, Var Cubo, Fat: Inteiro, Var Mens: Literal)
Var
R, I: Inteiro
Início
Cubo ← X * X * X
Fat ← 1
Para I de 1 até X passo 1 faça
Fat ← Fat * I
FimPara
Se (X = 0) então
M ← ‘Número zero’
Senão
R ← X – 2 * (X / 2)
Se (R = 0) então
M ← ‘Número par’
Senão
M ← ‘Número ímpar’
FimSe
FimSe
Fim
Continuação do Algoritmo Exemplo
Var
Num: Inteiro
C, F: Real
M: Literal
Início
Escreva (“Digite um número:”)
Leia (Num)
Calculo (Num, C, F, M)
Escreva (‘Cubo:’, C)
Escreva (‘Fatorial:’, F)
Escreva (‘Mensagem:’, M)
FimAlgoritmo
APLICAÇÃO PRÁTICA DO USO DE SUB-ROTINAS:
2) Função – Sub-rotinas como os procedimentos, contendo início
e fim e sendo identificado por um nome, por meio do qual
também será referenciada em qualquer parte do programa.
FUNÇÕES
Sintaxe:
Função <nome da função> (Parâmetros):<tipo de função>
Var
<variáveis>
Início
<comandos>
Fim
FUNÇÕES
Observação: A função sempre retorna um determinado valor,
que é retornado no próprio nome da função.
Exemplo: Faça um algoritmo que tenha uma função que calcule
o fatorial de um número.
Algoritmo Calc_Fatorial3
Função Fatorial (N:Inteiro): Inteiro
Var
i, Fat: Inteiro
Início
Fat ← 1
Para i de 1 até N passo 1 faça
Fat ← Fat * i
FimPara
Fatorial ← Fat
Fim
Var
A: Inteiro
Início
Escreva (“Fatorial de que número:?”)
Leia (A)
Escreva (‘O fatorial é:’, Fatorial (A))
FimAlgoritmo
Vamos treinar Procedimentos e Funções?
Faça um algoritmo que faça uso de uma sub-rotina de
função que retorne o valor da soma de dois números
fornecidos como parâmetros.
2.
Faça um algoritmo com as funções: par ou ímpar ou zero,
cubo e fatorial.
3.
Construa um algoritmo que faça a soma entre dois números
informados pelo usuário. A soma tem que ser realizada por
uma sub-rotina (Procedimento ou Função) e seu valor
retornado ao Programa Principal.
Exemplo: números informados: 2 e 5
Realizado: 2 + 3 + 4 + 5 = 14
1.
Vamos treinar Procedimentos e Funções?
4.
5.
6.
Desenvolva um algoritmo que crie uma sub-rotina para
calcular o valor de uma potência de um número qualquer.
Por exemplo, se for mencionado no programa principal a
função potencia(2,3), deverá ser calculado 23 = 8. Este
valor deverá ser retornado ao Programa Principal.
Faça um algoritmo que tenha um procedimento que receba
três números inteiros e retorne o maior deles.
Faça um algoritmo que tenha uma função que verifica se um
valor específico está dentro do intervalo entre dois valores
digitados pelo usuário. Caso esteja contido no intervalo, a
função deverá retornar a mensagem: “Está contido!”, caso
contrário, a função retornará: “Não está contido!”.
Download

Var - Universidade Castelo Branco