Задача на одномерные массивы с исп. процедур., ПОМОГИТЕ!!! |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача на одномерные массивы с исп. процедур., ПОМОГИТЕ!!! |
Ashly |
Сообщение
#1
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: 0 |
Задали д.з., как решать ума не приложу, точнее вроде всё понятно, НО задача не решается, помогите пожалуста, опытный человек с разу всё напишет, а я не могу
Формировать одномерный массив С, содержащий повторяющиеся элементы массива А, которых нет в массиве В, элементы в массиве С не должны повторяться. Дополнительный массив не использовать. (Одномерные массивы А и В, содержат не более 20 элементов целого типа.) Задачу решить через процедуры. |
volvo |
Сообщение
#2
|
Гость |
Ashly
У меня вот что получилось: Код 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 - |
Ashly |
Сообщение
#3
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: 0 |
volvo, большое спасибо , но мне немного не поянтно как ты процедуры написал и что они делают немог бы ты объяснить??
|
volvo |
Сообщение
#4
|
Гость |
Ashly
Смотри верхний пост - я добавил комментарии... |
Ashly |
Сообщение
#5
|
Группа: Пользователи Сообщений: 5 Пол: Женский Репутация: 0 |
Спасибо теперь понятно
|
Текстовая версия | 11.01.2025 22:41 |