IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> процедура и файлы
Yurka
сообщение 21.10.2006 12:47
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 143
Пол: Мужской

Репутация: -  0  +


есть такое задание, вроде и несложно, только у меня проблема с процедурами появилась, заштопорился (почти всю ночь на спал), помогите чем сможете...
условие такое: определить зарплати каждого сотрудника за каждый месяц, которые он получил после высчитывания налога. Вывести начальные даные и полученные результаты, использовать двумерный массив.
По этому условию нужно написать три программы: 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.

выдаёт бред, что не так?
и если кто подскажет как третью переработать буду очень благодарен
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.06.2025 6:57
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"