Помощь - Поиск - Пользователи - Календарь
Полная версия: Народ, помогите бедному студенту решить задачу!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Freem
Народ, помогите плиз бедному студенту решить задачу!!!
В бухгалтерии предприятия имеется ведомость сумм заработанных сотрудниками в течение месяца (суммы исчисляются в тыс. руб.). Подсчитать общий заработок каждого сотрудника за весь месяц. То есть вводишь с клавиатуры фамилия сотрудников, затем их зарплаты. И если встречаются несколько одинаковых фамилий, то их зарплаты надо суммировать. Как вот в этом примере:

Исходная ведомость
Фамилия Заработок
Непейвода 800
Тарбеев 300
Тарбеев 425
Непейвода 250
Лесков 850
Тарбеев 100

Итоговая ведомость за месяц:
Фамилия Заработок
Непейвода 1050
Тарбеев 825
Лесков 850


program x_z;
uses crt;
const max=4;
var
a:array[1..max] of string;
b:array[1..max] of integer;
c:array[1..max] of string;
i,j,k,sum:integer;
begin
clrscr;
for i:=1 to max do begin
writeln ('Vvedite phamiliiu ',i,' -ogo rabotnika');
readln (a[i]);
end;
for j:=1 to max do begin
writeln ('VVedite z/p ',j,' -ogo rabotnika');
readln (b[j]);
end;
i:=0;
for k:=1 to max do begin
c[k]:=a[i+k];
for i:=k to max do
if a[i]=c[k] then sum:=sum+b[i];
end;
writeln (a[i],' - ',sum);
readln;
end.


Пытался сделать, но не получилось!!!!!!!!!! Работает неправлильно!!!!!!!!!!!!!! Заранее благодарен!!!!!!!! mega_chok.gif

Tan
Возможно легче сделать запись с полями фамилия, зарплата и создать массив записей ?
Freem
Цитата(Tan @ 8.05.2007 20:46) *

Возможно легче сделать запись с полями фамилия, зарплата и создать массив записей ?


А можно маленько поподробнее???!!
Tan
Вот моя идея в виде спецификации :
Type MyRec = Record 
Surname : string;
Money : integer;
end;
Const N = 5;
var ms : array [1..N] of MyRec;
Freem
Цитата(Tan @ 8.05.2007 20:54) *

Вот моя идея в виде спецификации :
Type MyRec = Record 
Surname : string;
Money : integer;
end;
Const N = 5;
var ms : array [1..N] of MyRec;



Ещё один вопросик:
У меня самая большая проблема - это как организовать алгоритм суммирования зарплат тех работников, которые вводишь с клавиатуры несколько раз.
Tan
Допустим у тебя есть переменная, отвечающая за количество введённых записей (допустим K). Предполагаем ты ввводишь записи, и потом вводишь уже существующую фамилию. В этот момент тебе надо проверить все записи с 1 по K. Как только ты видишь одинаковые фамилии, к полю Money первой встретевшейся такой фамилии прибавляй содержание поля Money этой же фамилии, встретевшейся позже и k := k - 1 для имитации стирания записей. То есть следующую будешь писать поверх той, а если она будет последняя, то в любом случае если ты выведешь на экран записи с 1 по K ты по идее получишь верный ответ.
Freem
Цитата(Tan @ 8.05.2007 21:05) *

Допустим у тебя есть переменная, отвечающая за количество введённых записей (допустим K). Предполагаем ты ввводишь записи, и потом вводишь уже существующую фамилию. В этот момент тебе надо проверить все записи с 1 по K. Как только ты видишь одинаковые фамилии, к полю Money первой встретевшейся такой фамилии прибавляй содержание поля Money этой же фамилии, встретевшейся позже и k := k - 1 для имитации стирания записей. То есть следующую будешь писать поверх той, а если она будет последняя, то в любом случае если ты выведешь на экран записи с 1 по K ты по идее получишь верный ответ.


Большое большое smile.gif спасибо!!!!!!!!!!!!
мисс_граффити
 ! 
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...


по-моему, "помогите бедному студенту" не очень информативно.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.