Lógica de Programação e Algoritmos Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com
Procedimentos e Funções Para construirmos grandes programas, necessitamos fazer uso da técnica de modularização. Esta técnica faz com que um grande programa seja dividido em pequenos trechos de código, onde cada qual tem uma função bem definida. Assim, além da facilidade em lidar com trechos menores, ainda podemos fazer uso da reutilização de código, já que estes trechos devem ser bem independentes. Assim, definimos módulo como um grupo de comandos, constituindo um trecho de algoritmo, com uma função bem definida e o mais independente possível em relação ao resto do algoritmo. 2
Procedimentos e Funções A maneira mais intuitiva de trabalharmos com a modularização de problemas é definir-se um módulo principal de controle e módulos específicos para as funções do algoritmo. Módulos de um programa devem ter um tamanho limitado, já que módulos muito grandes são difíceis de serem compreendidos. Os módulos são implementados através de procedimentos ou funções. 3
Procedimentos Sintaxe de definição de um procedimento: Procedimento Nome_Procedimento(< lista de parâmetros >); declare < variáveis locais > início comando 1; comando 2; comando n; fim 4
Procedimentos Os parâmetros podem ser passados por valor ou por referência. Um parâmetro passado por valor, não pode ser alterado pelo procedimento. Os parâmetros por referência são identificados usando-se a palavra VAR antes de sua declaração. Sintaxe da chamada do procedimento: Nome_Procedimento (<lista de parâmetros>); Os valores passados como parâmetros na chamada de um procedimento, devem corresponder sequencialmente à ordem declarada. 5
Funções A função é semelhante ao procedimento, todavia sua diferença consiste no fato de que um procedimento não retorna valor quando é chamado para execução, enquanto que a função retorna um valor. Definição de uma função: Função Nome_Função (< lista de parâmetros >) : tipo de dado; Declare < variáveis locais > Início comando 1; comando 2; comando n; retorne valor; Fim Chamada da função: Variavel <- Nome_Função (<lista de parâmetros>); 6
Procedimentos e Funções Declare soma: inteiro; Inicio Escrever( Entre com dois valores: ); Ler(A, B); soma <- SomaNumeros(A,B); Escrever( A soma dos dois números é:, soma); Fim Função SomaNumeros(N1, N2: inteiro) : inteiro; Declare resultado: inteiro; Início resultado <- N1 + N2; retorne resultado; Fim 7
Exercícios 1) Escreva uma função que converta a temperatura de Fahrenheit para Celsius. Obs: c=(f - 32)* 5/9. 2) Escreva uma função para calcular a área de um retângulo. 3) Escreva uma função para calcular o fatorial de um número. 4) Escreva uma função para calcular o quadrado de um número. 5) Escreva uma função que receba como parâmetro o preço atual de uma mercadoria e calcule o novo preço da mercadoria com reajuste de 20%. 6) Escreva uma função que receba como argumento o ano e retorne 1 se for um ano bissexto e 0 se não for um ano bissexto. Um ano é bissexto se for divisível por 4, mas não pro 100. Um ano também é bissexto se for divisível por 400. 8
7) Desenvolva um algoritmo que crie uma função para calcular o valor de uma potência de um número qualquer, ou seja, ao se informar o número e a sua potência, deverá ser retornado o seu resultado. Ex: potencia(2,3) = 8 Exercícios 8) Faça um algoritmo com as seguintes características: a) Ler as seguintes informações a respeito de um aluno: - Nome caracter - RA inteiro; - B1 real; - B2 real. b) Devemos ler as informações de 40 alunos; c) O algoritmo deverá ter uma função para calcular a média do aluno; 9
d) O algoritmo deverá ter uma função para calcular a média geral da turma; O algoritmo deverá ter uma função de validação do RA a qual deverá retornar um valor lógico (não precisa definir a lógica, só precisamos saber o seguinte: verdadeiro RA válido e falso RA não válido) O algoritmo deverá ter um procedimento de impressão, quando chamado deverá exibir as seguintes informações: ---------------------------------------- Aluno: 888888 Média: xx,xx Situação: Aprovado ou reprovado ---------------------------------------- e) O algoritmo deverá ter um procedimento para exibir a média geral da turma, segundo o layout abaixo: ------------------------------------ Média Geral: xxx,xx Exercícios ------------------------------------ 10
Exercícios f) Sequência lógica: 1. Ler os dados dos alunos; 2. Validar o RA 3. Exibir o seguinte menu: 1 Média do aluno 2 Média geral da turma Sequência do menu: 1 Média do aluno Quando chamada deverá receber como parâmetro o RA do aluno, deverá calcular a média do aluno, a qual deverá ser passada como argumento para o procedimento de exibição de média do aluno. 2 Média geral da turma Quando chamada deverá calcular a média geral da turma, o seu retorno deverá ser passado como argumento para o procedimento de exibição da média geral da turma. 11
Referências Algoritmos Estruturados. FARRER, Harry, BECKER, Christiano G., FARIA, Eduardo C., MATOS, Helton Fábio de, SANTOS, Marcos Augusto dos, MAIA, Miriam Lourenço. Rio de Janeiro: Editora Guanabara, 1989. Lógica de Programação A Construção de Algoritmos e Estruturas de Dados Forbellone, André Luiz Villar. São Paulo, Prentice Hall, 2005: Algoritmos e estruturas de dados. GUIMARÃES, Angelo de Moura, LAGES, Newton A de Castilho. Rio de Janeiro: LTC Livros Técnicos e Científicos Editora, 1985. Programação e lógica com Turbo Pascal. MECLER, Ian, MAIA, Luiz Paulo. Rio de Paulo Janeiro: Campus, 1989. Unicamp - Centro de Computação DSC. Sérgio de Moraes, abril 2000. Algoritmos. SALVETTI, Dirceu Douglas, BARBOSA, Lisbete Madsen. São Paulo: Makron Books, 1998. Concursos Públicos Raciocínio Lógico. SILVA, Joselias Santos da. São Paulo: R&A Editora Cursos e Materiais Didáticos, 1999. Algoritmos e Estruturas de Dados. WIRTH, Niklaus. Rio de Janeiro: Editora Prentice-Hall do Brasil, 1986. Sites na Web: http://www.inf.pucrs.br/~egidio/algo1/ 12