a) Uma Sub Rotina que receba os dados dos funcionarios;
b) Uma Sub Rotina que calculase 7% de desconto e 30 reais de bonificaçao
pra calcular o salario liquido.
ps*o salario inicial é o bruto
[CODE=rich]program reg_sub;
uses crt;
type reg=record
cod:integer;
setor:string[20];
salario:real;
end;
var
i:integer;
empregado:array[1..100] of reg;
salarioliq:real;
procedure entrada;
begin
for i:= 1 to 100 do
begin
writeln('Digite O Codigo Do Funcionario ',i,'.');
readln(empregado[i].cod);
writeln('Digite O Setor Do Funcionario ',empregado[i].cod,'.');
readln(empregado[i].setor);
writeln('Digite O Salario Do Funcionario ',empregado[i].cod,'.');
readln(empregado[i].salario);
end;
end;
function cal(salario:real):real;
var
rec:real;
begin
rec:=salario*0.07;
cal:=salario-rec+30;
end;
begin
clrscr;
entrada;
for i:= 1 to 100 do
begin
salarioliq:=cal(empregado[i].salario);
writeln('O Salario liquido Do Funcionario ',empregado[i].cod{i},'e de ',salarioliq,'.');
end;
end.[/CODE]
Bom O problema esta na Function, essa codificaçao a cima é a que ele deu errado na prova que esta funcional e correta pelomenos ao meu ver, bom ele disse que na function a passagem de parametro tinha que ser assim
[CODE=rich]function "cal(empregado[i].salario:real):real;"
var
rec:real;
begin
rec:=salario*0.07;
cal:=salario-rec+30;
end;[/CODE]
var
rec:real;
begin
rec:=salario*0.07;
cal:=salario-rec+30;
end;[/CODE]
e o compilador intende aquela passagem de parametro ali como duas variaveis eu teria que declarar o empregado como registro. assim.
[CODE=rich]function cal(empregado:reg;salario:real):real;[/CODE]
bom mesmo jeito o programa acima que eu fiz esta funcional que realizando
a terefa que era pedida no exercicio
resumindo qeria saber se realmente eu estou completamente enganado ou ele nao tem a menor capacidade de me dar aula de programaçao!,
lembrando a eu só consegui usar empregado[i].salario no programa principal na hora de receber a function para ela rodar...
[CODE=rich]begin
clrscr;
entrada;
for i:= 1 to 100 do
begin
salarioliq:=cal(empregado[i].salario);
writeln('O Salario liquido Do Funcionario ',empregado[i].cod{i},'e de ',salarioliq,'.');
end;[/CODE]