записи
uses crt;
type spisok2=record
name2:string;
address2:string;
end;
type spisok1=record
name1:string;
address1:string;
end;
var
mas1:array [1..10] of spisok1;
mas2:array [1..10] of spisok2;
key:char;
i,j,k:integer;
number1,number2:integer;
{==================procedure vvod mas1=====================}
procedure vvod1;
begin
textcolor(yellow);
writeln('write next information 1');
i:=0;
repeat
i:=i+1;
with mas1 do
begin
write('name: '); readln(name1);
write('address: '); readln(address1);
writeln('continue? <y> or <n>');
readln(key);
end
until (key='n') or (key='N');
number1:=i;
end;
{==================procedure vvod mas2=====================}
procedure vvod2;
begin
textcolor(green);
writeln('write next information 2');
i:=0;
repeat
i:=i+1;
with mas2 do
begin
write('name: '); readln(name2);
write('address: '); readln(address2);
writeln('continue? <y> or <n>');
readln(key);
end
until (key='n') or (key='N');
number2:=i;
end;
{==================procedure vyvod mas1====================}
procedure vyvod1;
begin
textcolor(yellow);
writeln('---------Name---------Address--------');
for i:=1 to number1 do
begin
with mas1 do
begin
write(' ',name1);
write(' ',address1);
end;
writeln;
end;
end;
{==================procedure vyvod mas2====================}
procedure vyvod2;
begin
textcolor(green);
writeln('---------Name--------Address--------');
for i:=1 to number2 do
begin
with mas2 do
begin
write(' ',name2);
write(' ',address2);
end;
writeln;
end;
end;
{====================procedure vibor======================}
procedure vibor;
begin
textcolor(white);
for j:=1 to number1 do
for k:=1 to number2 do
begin
if mas1[j].name1=mas2[k].name2 then
if mas1[j].address1=mas2[k].address2 then
with mas2[k] do
begin
write(' ',name2);
write(' ',address2);
readln;
end
end;
end;
begin
clrscr;
vvod1;
vvod2;
clrscr;
vyvod1;
vyvod2;
vibor;
readln;
end.
После того, как будут найдены и помещены в 3-й массив все одинаковые значения, провести сортировку в 3-м массиве от 1-го элемента до элемента, номер которого равен значению счётчика. И после сортировки вывести значения на экран.
После того, как будут найдены и помещены в 3-й массив все одинаковые значения, провести сортировку в 3-м массиве от 1-го элемента до элемента, номер которого равен значению счётчика. И после сортировки вывести значения на экран.
Можно и без счетчика - если заполнить этот массив заранее "последними" символами.
Эмм... а чуть поподробней можно? А то я не представляю как здесь (в описанном мной варианте с 3-м массивом) можно без счетчика обойтись. Если нет счетчика - то как, например, при выводе элементов из 3-го массива на экран определить - сколько нужно элементов вывести, а какие не выводить? Ведь число повторов и соответственно число помещенных в массив элементов может быть меньше заданной размерности массива 3 (которую нужно задать, чтобы массив мог вместить все повторы в случае максимального возможного их количества), и тогда число повторов будет содержаться в каких-то N первых элементов, а в остальных будет мусор или какие-то дефолтные значения. Например, что если повторов между 1-м и 2-м массивами вообще не было и выводить на экран ничего не нужно?