domingo, 5 de junho de 2011

Exercicio 3 de funções

Program Pzim ;
{Escrever um programa que, utilizado de funções, leia um valor e retorne
a) se é multiplo de 5 ou não  -retorno string;
b) fatorial (1*2*...*n) retorno integer.}

{variaveis globais}
var
r_fatorial, num:integer;
r_multiplo:string;

//inicio da função multiplo
function multiplo(x:integer):string;   // a função recebe um valor de inteiro e retorna ma string
    begin
        if (x mod 5 = 0) then         // verifica se é multiplo de 5, se fim
            multiplo:='O número é multiplo de 5'    //a função multiplo recebe a frase como resposta
        else                                          // se não
            multiplo:='O número NÃO é multiplo de 5'    //recebe a frase informando que não
    end;
   
   
//inicio da função fatorial
function fatorial(y:integer):integer;       // a funçaõ recebe e retorna um valor de inteiro
var
fat,i:integer;
    begin
    fat:=1;
        for i:= 1 to y do
              begin
                    fat:= fat * i;
               end;
     fatorial:=fat;
    end;
   
   
//fim das funçoes
//inicio do algoritmo

{quando fazemos algoritmos com funções e procedimentos devemos primeiro começar perlo algoritmo, depois
é que fazemos as funções e ou procedimentos }

Begin
    writeln('Digite um número: ');    // solicita que seja digitado um numero
    readln(num);                    // recebe o numero digitado
    r_multiplo:=multiplo(num);         // atribui a variavel r_multiplo o valor retornado da função multiplo
    r_fatorial:=fatorial(num);         // atribui a variavel r_fatorial o valor retornado da função fatorial
                        {em função, ao mesmo tempo chamamos a função e atribuimos o resultado
                        a uma varivel, esse resultado pode ter a variavel do mesmo tipo ou de tipo diferente}
    writeln(r_multiplo);    //exibe os resultados
    writeln('O fatorial de ',num, ' é : ',r_fatorial);
End.