Minha mãe piraria: Subprogramas!


Em PASCAL podemos definir blocos de execução internos a um programa, chamados subprogramas. Cada bloco executa uma tarefa determinada. Isto favorece a legibilidade e manutenção do programa, além de auxiliar no domínio da complexidade quando definimos o programa, já que podemos tratar partes do problema de forma isolada.  Subprogramas têm parâmetros que podem ser de entrada, saída, ou ambos.
    Há dois tipos de subprogramas em Pascal: os procedimentos (PROCEDURES) e as funções (FUNCTIONS).

Diferenças entre Funções e Procedimentos

    1. As funções são avaliadas e retornam um valor  ao programa que as chama, além dos possíveis parâmetros de saída. 
    2. Um procedimento não retorna valor nenhum, a função obrigatoriamente retorna um valor a uma determinada variável. 
    3. Uma função é ativada quando é avaliada uma expressão que a contém, isto é, as funções são utilizadas da mesma forma que as funções predefinidas, como SQR, ORD, LN etc. 
    4. Um procedimento é ativado através de um comando de chamada do procedimento.

Escopo

Variáveis Globais: São as variáveis declaradas no programa que são conhecidas em todo programa e inclusive nos subprogramas contidos nele.
Variáveis Locais: São as variáveis declaradas em um subprograma, que são conhecidas em todo o subprograma, mas não no programa que contém o subprograma.  Caso um subprograma contenha a definição de um outro subprograma (chamemos de "subsubprograma),  as variáveis declaradas no programa e no subprobrama serão visïveis no subsubprograma, mas o contrário não é verdadeiro. No escopo do programa  não podemos chamar o subsubprograma, assim como não podemos acessar as variáveis do subprograma.
Uso de mesmos nomes: se um subprograma definir nomes de variáveis iguais ao do programa principal, ao referenciar uma variável vale a do escopo local.

Parâmetros

    No cabeçalho de um subprograma (Funções ou procedimentos) definimos que tipo de dados que serão passados como parâmetros. Há duas formas de passagem de parâmetros de um programa para um subprograma: passagem por valor ou passagem por referência. 
  • Passagem por valor: o parâmetro formal comporta-se como uma variável local do subprograma, de maneira que as alterações feitas nessa variável dentro do subprograma não tenham efeito sobre o parâmetro real, que pertence ao programa que fez a chamada. Assim, o subprograma só utiliza o valor da variável para um determinado fim, tendo o poder de alterá-la só dentro do subprograma, depois da execução desse subprograma, a variável volta a ter o valor que tinha antes da execução do subprograma.
  • Passagem por referência: o parâmetro formal comporta-se como se fosse uma variável global, e todas as alterações feitas nesta variável são feitas efetivamente no parâmetro real. Assim, a variável pode ser alterada pelo subprograma e continuar com o valor alterado. 

Exercício Proposto: 

Um hotel cobra 300,00 por diária e mais uma taxa adicional de serviços. Se a diária for menor que 15 dias a taxa e de R$20,00. Se o numero de diárias for igual a 15 a taxa é de R$ 14,00 e se o numero for maior que 15 a taxa é se 12,00. Considerando-se que se tenha 200 pessoas e para cada pessoa tenha-se um registro contendo seu nome e o numero de diárias. Faça um algoritmo que imprima o nome e o total a pagar de cada pessoa e imprimir também o total ganho pelo hotel e o numero total de diárias.

Resolução:


O programa rodou direitinho! Espero que gostem e até mais! :)

Nenhum comentário :

Postar um comentário

Topo