Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Linguagem de Programação I Parte IV
Professora: Flávia Balbino da Costa Linguagem de Programação I Parte IV
2
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
3
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).
4
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:
5
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.
6
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.
7
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.
8
PROCEDIMENTOS Sintaxe: Procedimento <nome do procedimento> Var <variáveis> Início <comandos> Fim
9
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.
10
Solução: Algoritmo Calculo Var Opcao: Caracter Procedimento Rot_Soma
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
11
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
12
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 FimEnquanto FimAlgoritmo
13
Variáveis globais e locais:
No algoritmo anterior foram utilizadas variáveis dentro das sub-rotinas (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.
14
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.
15
Escopo de variáveis: P. P. Rot1 Rot2 1.1 1.2 2.1
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. P. P. Variáveis A e B Rot1 Rot2 Variáveis A, B e C Variáveis A, B e D Variáveis A, B, C e F Variáveis A, B, C e E 1.1 1.2 2.1 Variáveis A, B, D e G
16
Programa Principal Pro Rotina 1 Var A, B: Inteiro Var C: Inteiro Rotina 1.1 Var E: Inteiro Rotina 1.2 Var F: Inteiro Rotina 2 Var D: Inteiro Rotina 2.1 Var G: Inteiro
17
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.
18
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.
19
Programa Calculo Procedimento Soma (A, B: Inteiro) Var Z: Inteiro Início Z ← A + B Escreva (Z) Fim X,Y: Inteiro Leia (X) Leia (Y) Soma (X, Y) FimAlgoritmo Sub-rotina Parâmetros Formais troca troca Parâmetros Reais Programa Principal
20
Passagem de parâmetros:
Ocorre quando é feito uma substituição dos parâmetros formais pelos reais no momento da execução da sub-rotina. Estes parâmetros serão passados por variáveis e duas formas: 1) Por Valor 2) Por Referência
21
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 da sub-rotina não afetará o parâmetro real correspondente.
22
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.
23
Algoritmo Fatorial Procedimento Fatorial (N:Inteiro) Var i,fat: Inteiro Início Fat ← 1 Para i de 1 até N passo 1 faça Fat ← Fat * i FimPara Escreva (Fat) Fim A: Inteiro Escreva (“Fatorial de que número:?”) Leia (A) Fatorial (A) FimAlgoritmo Parâmetro Formal Passagem por valor Parâmetro Real
24
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.
25
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 Fim A, B: Inteiro 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) Passagem por valor (Entrada) 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.
26
Exemplo: 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).
27
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’ M ← ‘Número ímpar’ FimSe Fim
28
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
29
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.
30
funções Sintaxe: Função <nome da função> (Parâmetros):<tipo de função> Var <variáveis> Início <comandos> Fim
31
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.
32
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 A: Inteiro Escreva (“Fatorial de que número:?”) Leia (A) Escreva (‘O fatorial é:’, Fatorial (A)) FimAlgoritmo
33
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. Faça um algoritmo com as funções: par ou ímpar ou zero, cubo e fatorial. 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: = 14
34
Vamos treinar Procedimentos e Funções?
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!”.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.