Сейчас на форуме: (+9 невидимых) |
eXeL@B —› Крэки, обсуждения —› Помогите с задачей! |
Посл.ответ | Сообщение |
|
Создано: 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. Только прошу не смеяться. Начинающий, значит я. |
|
Создано: 07 декабря 2004 05:38 · Личное сообщение · #2 |
|
Создано: 12 декабря 2004 15:52 · Личное сообщение · #3 |
eXeL@B —› Крэки, обсуждения —› Помогите с задачей! |