Сейчас на форуме: (+9 невидимых)

 eXeL@B —› Крэки, обсуждения —› Помогите с задачей!
Посл.ответ Сообщение

Ранг: 0.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 декабря 2004 04:11
· Личное сообщение · #1

Народ, здравия желаю! Я тут посмотрел, как помогают бедствующим, оптимизмом наполняет сердце!
Но все же прошу помощи у более опытных. Не сочтите меня наглым и все такое.... Просто, как все знают сгораю... нужен, короче хелп.
Дела такие. Нужно составить алгоритм на Pascal одной задачи:

"Задан массив С сведений о служащих некоторой фирмы. Массив имеет следующую структуру: имя служащего, номер служащего, дата рождения, дата найма. Определить список служащих, проработавших в фирме более пяти лет, рассортировать список по уменьшению даты рождения."

Вот у меня уже есть наработки, но немогу сделать сортировку данных. Посмотрите и исправьте, кто может мои ляпы. Тут одни советовали, но так советовали, что и сами не поняли что советовали...

program lab;
uses CRT;
Const m=4;

Type Tgroup=record {<<-Запись о фирме A}
Nam: String;
Numb: word;
Birth: word;
Naim: Word;
End;

Var BD:array [1..m] of TGroup; {<<-База данных}
k, i, j : integer;
stop: boolean;

Procedure Tablica; {<<-Отрисовка таблицы}
Begin TextColor(3);
For I:=1 to 75 do Begin
GotoXY(I+1,1); Writeln(Chr(205));
GotoXY(I+1,11); Writeln(Chr(205));
GotoXY(I+1,3); Writeln(Chr(205));
GotoXY(I+1,5); Writeln(Chr(196));
GotoXY(I+1,7); Writeln(Chr(196));
GotoXY(I+1,9); Writeln(Chr(196));
end;
For J:=1 to 10 do Begin
GotoXY(1,J+1); Write(Chr(186));
GotoXY(76,J+1); Write(Chr(186));
GotoXY(21,J+1); Write(Chr(179));
GotoXY(39,J+1); Write(Chr(179));
GotoXY(57,J+1); Write(Chr(179));
end;
GotoXY(21,1); Writeln(Chr(209));
GotoXY(39,1); Writeln(Chr(209));
GotoXY(57,1); Writeln(Chr(209));
GotoXY(76,1); Writeln(Chr(187));
GotoXY(1,1); Writeln(Chr(201));
GotoXY(1,11); Writeln(Chr(200));
GotoXY(21,11); Writeln(Chr(207));
GotoXY(39,11); Writeln(Chr(207));
GotoXY(57,11); Writeln(Chr(207));
GotoXY(76,11); Writeln(Chr(189));
Begin
TextColor(15);
GotoXY(5,2);
Write('Имя служащего');
GotoXY(23,2);
Write('Номер служащего');
GotoXY(42,2);
Write('Дата рождения');
GotoXY(62,2);
Write('Дата найма');
GotoXY(1,2);
End;
end;

Procedure Vvod; {<<-Ввод данных}
begin
clrScr;
Tablica;
{For i:=1 to m do}
TextColor(9);
GotoXY(3,4);
Readln(BD[i].Nam);
GotoXY(3,6);
Readln(BD[i].Nam);
GotoXY(3,8);
Readln(BD[i].Nam);

gotoxy(20,1); {<<-Номер служащего}
TextColor(9);
gotoxy(30,4);
Readln(BD[i].Numb);
gotoxy(30,6);
Readln(BD[i].Numb);
Gotoxy(30,8);
Readln(BD[i].Numb);

gotoxy(40,1); {<<-Датa рождения}
TextColor(9);
gotoxy(43,4);
Readln(BD[i].Birth);
gotoxy(43,6);
Readln(BD[i].Birth);
gotoxy(43,8);
Readln(BD[i].Birth);

gotoxy(62,1); {<<-Датa найма}
TextColor(9);
gotoxy(62,4);
Readln(BD[i].Naim);
gotoxy(62,6);
Readln(BD[i].Naim);
gotoxy(62,8);
Readln(BD[i].Naim);
end;




procedure Sort;
Var S_nam: string;
S_numb, S_birth: word;
S_naim: word;
Begin
Repeat Stop:=true;
For i:=1 to m do
If BD[i].Birth > BD[i+1].Birth then
Begin
S_Birth:=BD[i].Birth;
BD[i].Birth:=BD[i+1].Birth;
BD[i+1].Birth:=S_Birth;

S_Numb:=BD[i].Numb;
BD[i].Numb:=BD[i+1].Numb;
BD[i+1].Numb:=S_Numb;
Stop:=False;
end;
until stop;
end;


Procedure Vivod; {<<-Вывод на экран сортировки}
Begin
Writeln;
Writeln;
for i:=1 to 4 do
begin
writeln(BD[i].Nam);
writeln(BD[i].Numb);
writeln(BD[i].Birth);
writeln(BD[i].Naim);
end;
end;

Begin {<<-Тело программа}
Tablica;
Vvod;
Sort;
Vivod;
readln;
end.

Только прошу не смеяться. Начинающий, значит я.




Ранг: 536.4 (!), 171thx
Активность: 0.660.13
Статус: Администратор
Создатель CRACKL@B

Создано: 07 декабря 2004 05:38
· Личное сообщение · #2

Немного ты не на тот форум пришёл, всё же тут не программированием занимаемся. Что касается сортировки. Что ты сортировать хочешь ? по какому полю ? Может есть смысл поискать в яндексе по фразе "алгоритм сортировки данных".

-----
Всем не угодишь




Ранг: 0.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 12 декабря 2004 15:52
· Личное сообщение · #3

Если очень нужно, напиши на мыло - сделаю тебе сортировку.
guest_asv@mail.ru.


 eXeL@B —› Крэки, обсуждения —› Помогите с задачей!
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати