Aula 14 - 09.06.2011
Autor: Diego Ziquinatti | Publicado: 2011-06-08T16:19:00-07:00

Procedimentos e Funções
Forma de organizar o código-fonte que permite reutilizar operações repetitivas.&nbsp;

1) Procedimentos
Não retorna valores, apenas executa algo.
Pode receber parâmetro de entrada ou não.
Estes parâmetros podem ser por valor ou por referência.

Passagem de parâmetros por valor: 
algoritmo "semnome"var
&nbsp;salario: realprocedimento darAumento(s: real)
inicio
&nbsp; s &lt;- s + (s * 0.1)
fimprocedimentoinicio
&nbsp;leia(salario)
&nbsp;darAumento(salario)
&nbsp;escreval("Infelizmente seu salário não foi aumentado: ", salario)fimalgoritmo&nbsp;&nbsp; 
Passagem de parâmetros por referência: 
algoritmo "semnome"
var
&nbsp;salario: real
procedimento darAumento(var s: real)
inicio
&nbsp; s &lt;- s + (s * 0.1)
fimprocedimento
inicio
&nbsp;leia(salario)
&nbsp;darAumento(salario)
&nbsp;escreval("Parabéns! Seu salário foi aumentado: ", salario)
fimalgoritmo&nbsp; 


2) Funções
Além de executar algo, retorna valor.
Pode receber parâmetro de entrada ou não.
Estes parâmetros podem ser por valor ou por referência. 

Exemplo: 
algoritmo "semnome"
var
&nbsp;salario: real
funcao darAumento(s: real): real
inicio
&nbsp; retorne s + (s * 0.1)
fimfuncao
inicio
&nbsp;leia(salario)
&nbsp;escreval("Parabéns! Seu salário foi aumentado: ", darAumento(salario))
fimalgoritmo


[Lista de Exercícios]

FÁCEIS
1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Faça um procedimento que receba um valor inteiro e escreva, dentro do procedimento, se o número é positivo ou negativo.
2)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Faça uma função que receba um valor inteiro e retorne se o valor é positivo ou negativo.
3)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Faça um procedimento que receba um parâmetro por referência do tipo inteiro e o altere internamente para um valor 3 vezes maior caso seja ímpar e 2 vezes menor cada seja par. Mostrar o número ao final do algoritmo.
4)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Faça uma função que receba um número inteiro positivo N como parâmetro e retorne a soma dos N números inteiros existentes entre o número 1 e esse número.
5)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Faça um procedimento que substitua todos os valores negativos de um vetor&nbsp;de 25 números inteiros&nbsp;por zero sempre que a posição i do vetor for menor que zero. Faça outro procedimento que liste os 25 novos valores do vetor. Utilize os dois prccedimentos no algoritmo.
MÉDIOS
6)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Faça uma função que receba, por parâmetro, a altura e o sexo de uma pessoa e retorne o seu peso ideal. Calcular o peso ideal usando as fórmulas a seguir:a)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Homens: Peso Ideal = 72,7 * altura − 58b)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Mulheres: Peso Ideal = 62,1 * altura − 44,7
7)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Faça uma função que, baseado em um vetor X de 15 elementos inteiros,&nbsp;retorne a quantidade de valores pares.
8)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Faça uma função que receba como parâmetro o raio de uma esfera, calcule e mostre no programa principal o seu volume, dado pela seguinte fórmula:


9)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Faça uma função que receba por parâmetro um valor inteiro e positivo N e retorne o valor S.


DIFÍCEIS
10)&nbsp; A prefeitura de uma cidade fez uma pesquisa entre seus habitantes, coletando dados sobre o salário e número de filhos. Faça uma função que leia esses dados para um número não determinado de pessoas e retorne a média de salário da população, a média do número de filhos, o maior salário e o percentual de pessoas com salário até R$ 350,00. Cada cálculo deve ser feito em uma função ou procedimento próprio.
11)&nbsp; Foi realizada uma pesquisa entre 15 habitantes de certa região. De cada habitante foram coletados os dados “nome, idade, sexo, salário e número de filhos”. Faça um programa que leia esses dados em um vetor para cada informação (vetNome, vetIdade, vetSexo, vetSalario, vetNumeroFilhos). Faça funções que&nbsp;retornem a média de salário entre os habitantes, a menor e maior idade do grupo, informando o nome da pessoa, e a quantidade de mulheres com três filhos que recebe até R$ 500,00. Utilize uma função ou procedimento para cada cálculo em separado.
12)&nbsp; Faça uma função que receba um valor inteiro e positivo e calcule e mostre o seu fatorial (http://pt.wikipedia.org/wiki/Fatorial)&nbsp;