Ввести массив записей, каждый из которых содержит сведения о фамилиях, адресе и номере телефона. Составить программу, которая переносит эти данные в массив записей, который не содержит сведений о номерах телефонов. Упорядочить массив за фамилиями — Pascal(Паскаль)

uses crt;
type
telefon=record
        fam:string[20];
        adr:string[20];
        tel:string[20];
        end;
adres=record
      fam:string[20];
      adr:string[20];
      end;
var
t:array[1..100] of telefon;
a:array[1..100] of adres;
n,i,j:byte;
x:adres;
begin
clrscr;
write('Количество записей n=');
readln(n);
writeln('Введите записи:');
for i:=1 to n do{создание первого массива}
 begin
  writeln('Запись ',i);
  write(' Фамилия: ');readln(t[i].fam);
  write(' Адрес: ');readln(t[i].adr);
  write(' Телефон: ');readln(t[i].tel);
 end;
clrscr;
writeln('Список абонентов:':30);{вывод на экран}
writeln('-----------------------------------------');
writeln('|  Фамилия  |    Адрес    |   Телефон   |');
writeln('-----------------------------------------');
for i:=1 to n do
   begin
    gotoXY(1,whereY);write('| ',t[i].fam);
    gotoXY(13,whereY);write('| ',t[i].adr);
    gotoXY(27,whereY);write('| ',t[i].tel);
    gotoXY(41,whereY);write('|');
    writeln;
  end;
writeln('-----------------------------------------');
readln;
clrscr;
for i:=1 to n do{создание второго массива}
 begin
  a[i].fam:=t[i].fam;
  a[i].adr:=t[i].adr;
 end;
for i:=1 to n-1 do{сортировка обменом по алфавиту}
for j:=i+1 to n do
if a[i].fam>a[j].fam then
 begin
  x:=a[i];
  a[i]:=a[j];
  a[j]:=x;
 end;
writeln('Список адресов, упорядоченный по фамилиям:');{вывод на экран}
writeln('---------------------------');
writeln('|  Фамилия  |    Адрес    |');
writeln('---------------------------');
for i:=1 to n do
   begin
    gotoXY(1,whereY);write('| ',a[i].fam);
    gotoXY(13,whereY);write('| ',a[i].adr);
    gotoXY(27,whereY);write('|');
    writeln;
  end;
writeln('---------------------------');
readln
end.

Leave a Comment

5 + 2 =