Здрасте не поможете написать прогу? Есть офис сотрудников указаны фамилию,имя,стаж, номер телефона и зароботная платаю А) Вывести список сотрудников чей стаж не менее 20 лет работы В) Вывести список сотрудников две первые цифры номера которых одинаковы
Часть А я сделал.
Код
program Kursovaya; type group=record surname:string[10]; name:string[10]; year:integer; money:integer; number:string[7]; end; var F:file of group; G:group; i,n:integer; s:string; begin Assign(F,'C:\TP7\kursovaya.pas'); write('Vvedite chislo sotrudnikov'); readln(n); rewrite(F); For i:=1 to n do begin with G do begin readln(surname); readln(name); readln(year); readln(money); readln(number); end; write(F,G); end; reset(F); WHILE NOT EOF (F) do begin read (F,G); IF(G.year>=20) then begin writeln('Staj raboti ne menee 20 let'); writeln(G.surname); writeln(G.name); close(F);end.
Это первая часть проги которую я смог сделать для второй части Мне посоветвали сделать var s:array[1..100]; For i:=1 to n do s[i]:=copy(G.number,1,2) {записать в массив первые две цифры номера и сравнивать их}
А можно еще сделать number:longint; var:array[1..100]; for i:=1 to n do s[i]:=G.number div 100000 ; {так как все номера у меня семизначныеЪ Но я не знаю как сравнивать и как сделать так чтобы выводило фамилии сотрудников чьи номера начинаются с двух первых цифр. Заранее спасибо!
Например 1. петров 123456 2.сидоров 127456 3.иванов 134585 4.козлов 139856 5.баранов 224558 6. Ишаков 129547 Ответ: Номера одинаковые у: Петров, Сидоров,Ишаков Номера одинаковые у: Иванов, Козлов Просьба помочь!! Спасибо
Автор: volvo 14.05.2006 20:45
Ну, в принципе это делается так:
program Kursovaya; var F:file of group; G, Gnext:group; i, err: integer; s:string;
f_pos: longint; check: string; first: boolean;
{ Этот массив - для того, чтобы не выводить информацию, уже выведенную на экран, повторно } was: array[1 .. 99] of boolean;
{ ... остальные переменные ... }
begin Assign(F,'kurs.dat'); rewrite(F); { Вводишь данные и записываешь их в файл }
reset(F); f_pos := 0; while not eof (f) do begin
read (F,G); check := copy(G.number, 1, 2); first := false; val(check, i, err); if was[i] then continue else was[i] := true;
f_pos := filepos(f);
while not eof(f) do begin read(f, Gnext); if copy(Gnext.number, 1, 2) = check then begin if not first then begin write('number: ', check, '... : ', G.surname); first := true end; write(', ', Gnext.surname); end; end; writeln; seek(f, f_pos);
end; close(F); end.
Автор: NightWoolf 11.06.2007 16:30
Помогите пожалуйста с программой: БД: учет абитуриентов дайте текст программы!!!! Please!!!!
Автор: Ozzя 11.06.2007 16:32
NightWoolf Поищи по форуму. Задача решалась много миллионов пятьсот тысяч раз