Показать сообщение отдельно

  #9  
Старый 28.05.2007, 19:18
NetMan
Участник форума
Регистрация: 09.02.2004
Сообщений: 122
С нами: 11710201

Репутация: 134
Wink

Цитата:
Сообщение от _-[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.
 
Ответить с цитированием