Помощь - Поиск - Пользователи - Календарь
Полная версия: Массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Катя
Помогите решить задачу по массивам!
Даны два одномерных массива чисел А и В. Сформировать из них массив С, который содержит элементы А, которе есть в В более, чем в одном экземпляре.
Спасибо зарание!
volvo
const
n = 10;
type
arr = array[1 .. n] of integer;
var
a, b, c: arr;
...
begin
...
{ здесь вводим массивы A, B }

count := 0;
for i := 1 to n do begin
in_b := 0;
for j := 1 to n do
if b[j] = a[i] then inc(in_b);

if in_b > 1 then begin
inc(count); c[count] := a[i];
end;
end;

{ ... и распечатываем С }
...
end.
Катя
Спасибо большое! А не мог бы ты мне ещё подсказать?
Мне нужно чтобы размерность и эл-ты массивов вводились пользователем с клавиатуры в самой программе а уже потом был сформирован массив С
volvo
Ну, тогда тебе надо или описывать массивы A, B очень большими, и использовать только какую-то (введенную пользователем) часть, или (что предпочтительно), выделять массивы динамически...

Первый вариант:
const
n = 1000;
type
arr = array[1 .. n] of integer;
var
a, b, c: arr;
size_A, size_B: integer;
...
begin
write('size of A = '); readln(size_A);
write('size of B = '); readln(size_B);

{ здесь вводим массивы A, B }

count := 0;
for i := 1 to size_A do begin
in_b := 0;
for j := 1 to size_B do
if b[j] = a[i] then inc(in_b);

if in_b > 1 then begin
inc(count); c[count] := a[i];
end;
end;

{ ... и распечатываем С }
...
end.


Реализацию второго варианта смотри здесь:
Работа с динамическими массивами
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.