Помощь - Поиск - Пользователи - Календарь
Полная версия: Создание БД
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Abror
Здрасте не поможете написать прогу?
Есть офис сотрудников указаны фамилию,имя,стаж, номер телефона и зароботная платаю
А) Вывести список сотрудников чей стаж не менее 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
Ну, в принципе это делается так:
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
Помогите пожалуйста с программой: БД: учет абитуриентов дайте текст программы!!!! Please!!!!
Ozzя
NightWoolf
Поищи по форуму.
Задача решалась много миллионов пятьсот тысяч раз
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.