Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

записи

46K
31 октября 2009 года
Inna Lazareva
16 / / 04.10.2009
помогите дописать программу.... она выбирает одинаковые значения из двух массивов и отдельно выводит их на экран, а мне надо результат отсортировать по алфавиту и никак не получается....

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.
12K
31 октября 2009 года
Ghox
297 / / 26.07.2009
Можно так сделать. Выбираемые из двух массивов одинаковые значения не сразу выводить на экран, а завести для них третий массив, в который помещать эти значения. При этом нужна также переменная-счетчик, в которой будет храниться количество найденных и помещенных в третий массив одинаковых элементов. Вначале значение счетчика = 0, после нахождения очередного повтора увеличивать на 1, брать из массива 3 элемент с номером = значению счетчика и записывать в этот элемент найденное повторяющееся значение.

После того, как будут найдены и помещены в 3-й массив все одинаковые значения, провести сортировку в 3-м массиве от 1-го элемента до элемента, номер которого равен значению счётчика. И после сортировки вывести значения на экран.
399
01 ноября 2009 года
KIV
432 / / 20.01.2009
А код кто оформлять будет?
46K
03 ноября 2009 года
Inna Lazareva
16 / / 04.10.2009
ну типо я)))
399
03 ноября 2009 года
KIV
432 / / 20.01.2009
А имею ввиду заключить код в BB-теги CODE.
16K
05 ноября 2009 года
OlbanyRok
75 / / 14.07.2007
Цитата: Ghox
Можно так сделать. Выбираемые из двух массивов одинаковые значения не сразу выводить на экран, а завести для них третий массив, в который помещать эти значения. При этом нужна также переменная-счетчик, в которой будет храниться количество найденных и помещенных в третий массив одинаковых элементов. Вначале значение счетчика = 0, после нахождения очередного повтора увеличивать на 1, брать из массива 3 элемент с номером = значению счетчика и записывать в этот элемент найденное повторяющееся значение.

После того, как будут найдены и помещены в 3-й массив все одинаковые значения, провести сортировку в 3-м массиве от 1-го элемента до элемента, номер которого равен значению счётчика. И после сортировки вывести значения на экран.



Можно и без счетчика - если заполнить этот массив заранее "последними" символами.

12K
05 ноября 2009 года
Ghox
297 / / 26.07.2009
Цитата: OlbanyRok
Можно и без счетчика - если заполнить этот массив заранее "последними" символами.


Эмм... а чуть поподробней можно? А то я не представляю как здесь (в описанном мной варианте с 3-м массивом) можно без счетчика обойтись. Если нет счетчика - то как, например, при выводе элементов из 3-го массива на экран определить - сколько нужно элементов вывести, а какие не выводить? Ведь число повторов и соответственно число помещенных в массив элементов может быть меньше заданной размерности массива 3 (которую нужно задать, чтобы массив мог вместить все повторы в случае максимального возможного их количества), и тогда число повторов будет содержаться в каких-то N первых элементов, а в остальных будет мусор или какие-то дефолтные значения. Например, что если повторов между 1-м и 2-м массивами вообще не было и выводить на экран ничего не нужно?

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог