условие такое: определить зарплати каждого сотрудника за каждый месяц, которые он получил после высчитывания налога. Вывести начальные даные и полученные результаты, использовать двумерный массив.
По этому условию нужно написать три программы: 1-ую просто с обработкой массива, 2 -ую использовав процедуры и функции (причём сама программа должна иметь только вызовы процедур), 3-ью использовав для хранения начальных результатов ы промежуточных значений типизированые файлы.
Вот первая:
uses crt;
const
M=12;
Var
zp:array [1..100,1..M] of real;
i,j,k,P:word;
Begin
clrscr;
write ('k-stvo sotrud K=');
readln(K);
for i:=1 to K do
for j:=1 to M do
begin
write ('zar_plata ',i,' sotrud za ',j, ' meciac Zp=' );
readln(zp[i,j]);
end;
write ('nalog v % P=');
readln(P);
writeln ('zar_platu bez naloga');
writeln;
write ('nomer m ');
for j:=1 to m do
write(j,' m ');
writeln;
for i:=1 to K do
begin
write (i,'sotrud ');
for j:=1 to M do
begin
write (zp[i,j]:0:1 );
write(' ');
end;
writeln;
end;
writeln;
writeln ('zar_platu posle naloga');
writeln;
write ('nomer m ');
for j:=1 to m do
write(j,' m ');
writeln;
for i:=1 to K do
begin
write (i,'sotrud ');
for j:=1 to M do
begin
write (zp[i,j]-((zp[i,j]/100)*P):0:1);
write(' ');
end;
writeln;
end;
readkey
End.
тут вроде как всё нормально, на её основе я сделал вторую:
uses crt;
const
M=12;
Type
masiv=array [1..100,1..m] of real;
procedure vvod(var zp:masiv; K:integer);
var
i,j:integer;
begin
write ('k-stvo sotrud K=');
readln(K);
for i:=1 to K do
for j:=1 to M do
begin
write ('zar_plata ',i,' sotrud za ',j, ' mecyac Zp=' );
readln(zp[i,j]);
end;
End;
Procedure Nalog(var Zp:masiv; K:integer);
var
P:real;
j,i:integer;
Begin
write ('nalog v % P=');
readln(P);
writeln;
writeln ('zar_platu posle naloga');
writeln;
write ('nomer m ');
for j:=1 to M do
write(j,' mic ');
writeln;
for i:=1 to K do
begin
write (i,' sotrud ');
for j:=1 to M do
begin
write (zp[i,j]-((zp[i,j]/100)*P):0:1);
write(' ');
end;
writeln;
end;
End;
Procedure Vuvod(var Zp:masiv;K:integer);
var
j,i:integer;
Begin
writeln ('zar_platu bez naloga');
writeln;
write ('nomer m ');
for j:=1 to m do
write(j,' mic ');
writeln;
for i:=1 to K do
begin
write (i,' sotrud ');
for j:=1 to M do
begin
write (zp[i,j]:0:1 );
write(' ');
end;
writeln;
end;
End;
VAR
a:masiv;
kl:integer;
BEGIN
clrscr;
vvod(a,kl);
vuvod(a,kl);
nalog(a,kl);
readkey
END.
выдаёт бред, что не так?
и если кто подскажет как третью переработать буду очень благодарен