Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на одномерные массивы с исп. процедур.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Ashly
Задали д.з., как решать ума не приложу, точнее вроде всё понятно, НО задача не решается, помогите пожалуста, опытный человек с разу всё напишет, а я не могу sad.gif

Формировать одномерный массив С, содержащий повторяющиеся элементы массива А, которых нет в массиве В, элементы в массиве С не должны повторяться. Дополнительный массив не использовать. (Одномерные массивы А и В, содержат не более 20 элементов целого типа.) Задачу решить через процедуры.
volvo
Ashly
У меня вот что получилось: blink.gif
Код

const
 n = 20;
type
 arrType = array[1 .. n] of integer;

{ Эта функция подсчитывает в передаваемом ей массиве Х
  количество вхождений числа num... }
function countArr(num: integer;
        x: arrType): integer;
 var i, count: integer;
 begin
   count := 0;
   for i := 1 to n do
     inc( count, byte(x[i] = num) );
   countArr := count
 end;

{ Эта процедура добавляет элемент num к массиву,
передаваемому в нее как Х (элемент добавляется с индексом index) }
procedure addToArr(var x: arrType;
         var index: integer; num: integer);
 begin
   inc(index);
   x[index] := num;
 end;

{ Процедура для печати массива X }
procedure Print(x: arrType; n: integer);
 var i: integer;
 begin
   for i := 1 to n do
     write(x[i]:4);
   writeln
 end;

{ константы заданы для удобства отладки }
const
 a: arrType =
   (1, 1, 3, 3, 4, 5, 6, 7, 7, 7, 8, 5, 4, 4, 3, 3, 2, 0, 9, 2);
 b: arrType =
   (0, 0, 0, 0, 0, 0, 0, 0, 7, 1, 10, 14, 14, 13, 12, 14, 18, 0, 0, 0);

var
 c: arrType;
 i, index: integer;
begin
 for i := 1 to n do
   {если текущий элемент встречается в массиве А не один раз ...}
   if countArr(a[i], a) > 1 then
    { ... и он не встречается в массиве В и в массиве С ...}
     if (countArr(a[i], b) = 0) and (countArr(a[i], c) = 0)
      { ... то добавить его к массиву С}
       then addToArr(c, index, a[i]);

 { печатаем результат - массив С... }
 Print(c, index)
end.
Ashly
volvo, большое спасибо rolleyes.gif , но мне немного не поянтно как ты процедуры написал и что они делают unsure.gif немог бы ты объяснить??
volvo
Ashly
Смотри верхний пост - я добавил комментарии...
Ashly
Спасибо rolleyes.gif теперь понятно
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.