
28.05.2007, 19:18
|
|
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
С нами:
11710201
Репутация:
134
|
|
Сообщение от _-[A.M.D]HiM@S-_
4. Заданы два массива записей, каждый из которых содержит фамилии и адреса сотрудников. Составленная программа должна перенести (в любом порядке) записи с двух массивов в третий, причем с двух одинаковых записей переносится только одна.
Код:
uses crt;
type sotr=record
fam:string;
adr:string;
end;
var a,b:array [1..50] of sotr;
c:array [1..100] of sotr;
i,j,na,nb,nc:integer;
skip:boolean;
begin
clrscr;
write('Введите количество записей первого массива: ');readln(na);
for i:=1 to na do begin
write('Введите фамилию ',i,'-ого сотрудника: ');readln(a[i].fam);
write('Введите адрес ',i,'-ого сотрудника: ');readln(a[i].adr);
c[i].fam:=a[i].fam;
c[i].adr:=a[i].adr;
end;
writeln;
write('Введите количество записей второго массива: ');readln(nb);
for i:=1 to nb do begin
write('Введите фамилию ',i,'-ого сотрудника: ');readln(b[i].fam);
write('Введите адрес ',i,'-ого сотрудника: ');readln(b[i].adr);
end;
writeln;
nc:=na;
for i:=1 to nb do begin
skip:=false;
for j:=1 to nc do
if (b[i].fam=c[j].fam) and (b[i].adr=c[j].adr) then
begin
skip:=true;
break
end;
if skip then continue
else begin
inc(nc);
c[nc]:=b[i];
end;
end;
for i:=1 to nc do begin
writeln('Фамилия ',i,'-ого сотрудника: ',c[i].fam);
writeln('Адрес ',i,'-ого сотрудника: ',c[i].adr);
end;
readln;
end.
|
|
|