Bom estamos vendo na linguagem pascal usando a IDE do LAZARUS PROCEDIMENTOS e FUNCÕES, ou procedure, e funtion, onde dividimos o programa em partes as quais seram chamdas quando necessario
o que melhora para a organização da programação.
este exemplo foi contruido pelo Professor PAULO ROBERTO na material de LTP1 então vou posta-lo:
o que melhora para a organização da programação.
este exemplo foi contruido pelo Professor PAULO ROBERTO na material de LTP1 então vou posta-lo:
program TesteFunction;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{ you can add units after this };
//Criando as funções
function areaTriangulo(b: Real; H: Real): Real;
begin
Result:= (b*H)/2;
end;
function JurosComp(cai: Real; taxa: Real; tempo:Integer): Real;
{vou precisar de utilizar uma variável interna para realizar este
procedimento, esta variável é chamada de variável auxiliar}
var
i: integer;
begin
//descobrir taxa elevado a tempo
for i:= 1 to tempo do
taxa:= taxa*taxa;
//agora fazer a multiplicação entre capital inicial e taxa
Result:= cai*taxa;
end;
procedure Bascara(a:Real; b:Real; c:Real);
//variáveis auxiliares necessárias
var
delta: Real;
bas1, bas2: real;
begin
//são dois cálculos que serão executados
//primeiro delta
delta:= b*b-4*a*c;
//se o delta for diferente de zero vai ter duas respostas
if delta <> 0 then begin
//calcular duas vezes o positivo e negativo
bas1:= (-b+sqrt(delta))/2*a;
bas2:= (-b-sqrt(delta))/2*a;
Writeln('Positivo = ',bas1,' Negativo = ',bas2);
end else Writeln('O valor do delta é igual a zero!');
end;
var
op: Integer = 0;
//variáveis para eu poder ler fora das funções;
par1, par2, par4: Real;
par3: integer;
{$IFDEF WINDOWS}{$R TesteFunction.rc}{$ENDIF}
begin
repeat
//Usando as funções
WriteLn('Bem vindos ao SuperCalc 1.0 - Escolha sua opção:');
WriteLn('1 - Calcular a area do Triângulo;');
WriteLn('2 - Calcular Juros Compostos;');
WriteLn('3 - Calcular Báscara;');
WriteLn('4 - Sair do Sistema;');
//Leitura de Escolha do Menu
ReadLn(op);
case op of
// Calcular o triângulo
//o case esta sendo usado para determinar onde que operação devera ser executada
1: begin
WriteLn('Digite a base (b) do triângulo:');
ReadLn(par1);
WriteLn('Digite a altura (h) do triângulo:');
ReadLn(par2);
Write('A área do triangulo é: ');
//neste trecho é feita a chamada da function e é passada as variáveis para ela como parâmetro
WriteLn(areaTriangulo(par1,par2):2);
end;
//calcular o juros composto
2: begin
WriteLn('Digite o capital inicial (cai):');
ReadLn(par1);
WriteLn('Digite a Taxa de Juros (taxa):');
ReadLn(par2);
WriteLn('Digite o Tempo (tempo):');
ReadLn(par3);
Write('O juros composto calculado é: ');
WriteLn(JurosComp(par1,par2,par3));
end;
//calcular báscara
3:begin
WriteLn('Digite A:');
ReadLn(par1);
WriteLn('Digite B:');
ReadLn(par2);
WriteLn('Digite C:');
ReadLn(par4);
Write('O resultado de báscara é: ');
//para chamar uma procedure pode ser sem usar um write
Bascara(par1, par2, par4);
end;
4: WriteLn('Obrigado por usar o sistema!');
else
WriteLn('Escolha incorreta tente novamente!');
end;
until op = 4;
end.
Comentários
Postar um comentário