1 / 34

Linguagem de Programação I Parte IV

Professora: Flávia Balbino da Costa. Linguagem de Programação I Parte IV. Introdução à Programação Estrutura de um algoritmo Operadores e expressões Estruturas de Decisão Estruturas de Repetição Procedimentos e Funções. Conteúdo Programático:.

Download Presentation

Linguagem de Programação I Parte IV

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Professora: Flávia Balbino da Costa Linguagem de Programação IParte IV

  2. Introdução à Programação Estrutura de um algoritmo Operadores e expressões Estruturas de Decisão Estruturas de Repetição Procedimentos e Funções Conteúdo Programático:

  3. 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). PROCEDimentos E FUNÇÕES

  4. 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ÉTODOs:

  5. 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. MÉTODO Top-down:

  6. 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. Vantagens:

  7. 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. Aplicação prática do uso de sub-rotinas:

  8. Sintaxe: Procedimento <nome do procedimento> Var <variáveis> Início <comandos> Fim PROCEDIMENTOS

  9. 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. PROCEDIMENTOS

  10. 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

  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 FimSe FimEnquanto FimAlgoritmo

  13. 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. Variáveis globais e locais:

  14. 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. Variáveis globais e locais:

  15. 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. Escopo de variáveis: 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 1.1 1.2 2.1 Variáveis A, B, C e E 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. 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. Utilização de parâmetros:

  18. 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. Parâmetros formais e reais:

  19. Programa Calculo Procedimento Soma (A, B: Inteiro) Var Z: Inteiro Início Z ← A + B Escreva (Z) Fim Var X,Y: Inteiro Início Leia (X) Leia (Y) Soma (X, Y) FimAlgoritmo Sub-rotina Parâmetros Formais troca troca Parâmetros Reais Programa Principal

  20. 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 Passagem de parâmetros:

  21. 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. Passagem de parâmetros por valor:

  22. 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. Passagem de parâmetros por valor:

  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 Var A: Inteiro Início Escreva (“Fatorial de que número:?”) Leia (A) Fatorial (A) FimAlgoritmo Parâmetro Formal Passagem por valor Parâmetro Real

  24. 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. Passagem de parâmetros por referência:

  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 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) 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 um procedimento que faça 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’ Senão M ← ‘Número ímpar’ FimSe 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. 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. Aplicação prática do uso de sub-rotinas:

  30. Sintaxe: Função <nome da função> (Parâmetros):<tipo de função> Var <variáveis> Início <comandos> Fim funções

  31. 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. funções

  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 Var A: Inteiro Início 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: 2 + 3 + 4 + 5 = 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.

More Related