Лабораторная работа №4

Обработка одномерных массивов с использованием подпрограмм

Цель работы: получение навыков работы с массивами и подпрограммами.

Задания для подготовки к работе

1. Изучите способы описания и использования массивов, базовые алгоритмы обработки массивов.

2. Изучите виды и назначение подпрограмм, правила их описания и вызова.

3. Разбейте задачу соответствующего варианта на подзадачи, таким образом, чтобы решение каждой подзадачи описывалось подпрограммой, а основная программа состояла бы в основном из вызовов подпрограмм.

4. Опишите блок-схему алгоритма решения задачи в укрупненных блоках.

5. Опишите используемые структуры данных, спецификации и блок-схемы подпрограмм, соответствующих укрупненным блокам. Спецификация содержит: заголовок подпрограммы, назначение, входные и выходные параметры.

6. Опишите блок-схему алгоритма решения задачи с использованием блоков «предопределенный процесс».

7. Закодируйте алгоритм.

8. Подберите наборы тестовых данных с обоснованием их выбора.

 

Задания к работе

1. Наберите программу, отладьте ее и протестируйте.

2. Выполните анализ ошибок, выявленных при отладке программы.


Содержание отчета

1. Формулировка задачи.

2. Ответы на пункты 3 – 7 заданий для подготовки к работе.

3. Описание ошибок, выявленных при отладке программы с указанием вида ошибки, и почему она была сделана.

Варианты заданий

1. Дана целочисленная последовательность. Упорядочить по неубыванию часть последовательности, заключенную между первым вхождением максимального значения и последним вхождением минимального.

2. Если данная последовательность не упорядочена ни по неубыванию, ни по невозрастанию, найти среднее геометрическое положительных членов.

3. Дана целочисленная последовательность . Получить упорядоченную по убыванию последовательность, состоящую из всех различных членов данной последовательности.

4. Если число x встречается в данной целочисленной последовательности, то упорядочить по неубыванию часть последовательности после первого вхождения x.

5. Дан массив целых чисел. Получить упорядоченную по возрастанию последовательность из чисел, которые встречаются в данном массиве не менее двух раз.

6. Даны целые числа a 1, a 2,..., an. Пусть max – максимальное из этих чисел, а min – минимальное. Получить в порядке возрастания все числа, заключенные в интервале между min и max данных чисел и не принадлежащие данной последовательности.

7. Даны две последовательности. Получить упорядоченную по невозрастанию последовательность, состоящую из тех членов первой последовательности, которых нет во второй.

8. Определить, можно ли, переставив члены данной последовательности, получить геометрическую прогрессию.

9. Дан массив целых чисел, все элементы которого различны. Вывести в порядке убывания те элементы массива, которые не находятся между минимальным и максимальным.

10. Дана последовательность целых чисел. Получить упорядоченную по возрастанию последовательность, состоящую из чисел данной последовательности, стоящих на нечетных местах и встречающихся в ней только один раз.

11. Дана целочисленная последовательность. Определить количество вхождений каждого числа в последовательность.

12. Если число x встречается в последовательности, то упорядочить по невозрастанию часть последовательности до последнего вхождения x.

13. Дана целочисленная последовательность, содержащая как положительные, так и отрицательные числа. Упорядочить последовательность следующим образом: сначала идут отрицательные числа, упорядоченные по невозрастанию, потом положительные, упорядоченные по неубыванию.

14. Дана последовательность целых чисел. Вывести упорядоченную по невозрастанию последовательность, состоящую из чисел данной последовательности, находящихся между предпоследним и последним отрицательным членом последовательности.

15. Определить, можно ли, получить арифметическую прогрессию, переставив члены данной последовательности.

16. Если возможно, то упорядочить данный массив по убыванию, иначе массив оставить без изменения.

17. Даны два множества целых чисел. Выяснить, является ли одно из них подмножеством другого. Если является, то упорядочить подмножество.

18. Дан массив целых чисел. Упорядочить элементы, стоящие на четных местах по невозрастанию, а на нечетных – по неубыванию.

19. Даны две упорядоченные по невозрастанию последовательности и Получить упорядоченную по невозрастанию последовательность длины n+m из членов данных последовательностей.

20. Даны две упорядоченные по неубыванию последовательности, получить упорядоченную по невозрастанию последовательность, состоящую из членов первой последовательности, которых нет во второй.

21. Дана последовательность a 1, a 2,..., an целых чисел. Получить упорядоченную по невозрастанию последовательность, состоящую из членов данной последовательности, заключенных между первым и последним четными членами данной последовательности.

22. Если члены данной последовательности не упорядочены по невозрастанию, то удалить все последующие вхождения каждого числа.

23. Если в массиве целых чисел нет повторяющихся элементов, то упорядочить его по возрастанию.

24. Из последовательности целых чисел длины n вывести в порядке возрастания все числа, стоящие на четных местах и встречающиеся не менее двух раз.

25. Дана последовательность целых чисел. Исключить из нее все числа, встречающиеся более трех раз.

26. Дана целочисленная последовательность и целое число x. Определить, есть ли x среди членов последовательности, и если нет, то найти члены последовательности, ближайшие к x сверху и снизу.

27. Если в целочисленной последовательности нет других чисел, кроме x, y, z, то упорядочить последовательность по невозрастанию.

28. Упорядочить по невозрастанию только четные числа данного целочисленного массива, нечетные оставить без изменения. Указание: можно использовать вспомогательный массив с номерами четных элементов.

29. Упорядочить по невозрастанию последовательность длины n, заданную общим членом ai= (n div i + n mod i) mod i, i= 1, 2, …, n.

30. Дана целочисленная последовательность . Получить упорядоченную по возрастанию последовательность из чисел, которые входят в данную последовательность по одному разу.

Контрольные вопросы

1. Как описываются массивы в Паскале?

2. Какой тип может быть базовым типом массива и типом индекса?

3. Какие действия определены над массивами как едиными объектами?

4. Как осуществляется ввод и вывод массивов?

5. Что требуется для совместимости по присваиванию массивов?

6. Назовите прямые методы сортировки одномерных массивов. В чем суть каждого из этих способов?

7. Какими способами может быть осуществлен поиск элемента в упорядоченном и неупорядоченном одномерном массиве?

8. Суть однопроходного алгоритма удаления из последовательности членов, удовлетворяющих заданному условию?

9. Какие виды подпрограмм есть в языке Паскаль?

10. Опишите синтаксическую диаграмму структуры подпрограммы.

11. Опишите синтаксическую диаграмму заголовка процедуры.

12. Опишите синтаксическую диаграмму заголовка функции.

13. Для решения каких задач следует использовать функции, а для каких – процедуры?

14. Перечислите виды параметров подпрограмм.

15. Какие виды параметров передаются по значению, а какие – по ссылке?

16. Параметры какого вида следует использовать для передачи подпрограмме входных данных простого типа?

17. Какие параметры называются формальными, а какие – фактическими? Какое соответствие должно быть между ними?

18. Чем отличается вызов процедуры от вызова функции?

19. В каких случаях целесообразно использовать подпрограммы?

20. Изобразите синтаксическую диаграмму структуры описания подпрограммы.

21. В чем разница между параметрами-переменными, параметрами-константами и параметрами-значениями?

22. Перечислите правила обращения к подпрограммам.

23. В каких случаях параметры рекомендуется передавать как параметры-константы?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: