IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на одномерные массивы с исп. процедур., ПОМОГИТЕ!!!
Ashly
сообщение 5.12.2004 19:27
Сообщение #1





Группа: Пользователи
Сообщений: 5
Пол: Женский

Репутация: -  0  +


Задали д.з., как решать ума не приложу, точнее вроде всё понятно, НО задача не решается, помогите пожалуста, опытный человек с разу всё напишет, а я не могу sad.gif

Формировать одномерный массив С, содержащий повторяющиеся элементы массива А, которых нет в массиве В, элементы в массиве С не должны повторяться. Дополнительный массив не использовать. (Одномерные массивы А и В, содержат не более 20 элементов целого типа.) Задачу решить через процедуры.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
volvo
сообщение 5.12.2004 19:54
Сообщение #2


Гость






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.


Сообщение отредактировано: volvo - 5.12.2004 22:54
 К началу страницы 
+ Ответить 
Ashly
сообщение 5.12.2004 22:42
Сообщение #3





Группа: Пользователи
Сообщений: 5
Пол: Женский

Репутация: -  0  +


volvo, большое спасибо rolleyes.gif , но мне немного не поянтно как ты процедуры написал и что они делают unsure.gif немог бы ты объяснить??
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 5.12.2004 22:55
Сообщение #4


Гость






Ashly
Смотри верхний пост - я добавил комментарии...
 К началу страницы 
+ Ответить 
Ashly
сообщение 5.12.2004 23:31
Сообщение #5





Группа: Пользователи
Сообщений: 5
Пол: Женский

Репутация: -  0  +


Спасибо rolleyes.gif теперь понятно
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 28.07.2025 16:13
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"