Планирование уроков на учебный год



Уроки 30 - 31
Работа с массивами
Практикум
Практическая работа № 3.6
"Программирование обработки одномерных массивов"
Практическая работа № 3.7
"Программирование обработки двумерных массивов"




Содержание урока

Массивы

Типовые задачи обработки массивов

Работа 3.6. Программирование обработки одномерных массивов

Работа 3.7. Программирование обработки двумерных массивов


Работа 3.6. Программирование обработки одномерных массивов


Задание


Составить программу решения поставленной задачи по обработке одномерного массива (вектора). По возможности, использовать подпрограммы.

Уровень 1


1. Дана последовательность действительных чисел а1, а2, …, аn. Выяснить, будет ли она возрастающей.

2. Дан массив из N действительных чисел. Подсчитать, сколько в нем отрицательных, положительных и нулевых элементов.

3. Даны действительные числа а1, а2, …, аn. Поменять местами первый наибольший элемент с последним наименьшим элементом.

4. В заданном одномерном массиве поменять местами соседние элементы, стоящие на четных местах, с элементами, стоящими на нечетных местах.

5. Задана последовательность {Xi} из N вещественных чисел. Вычислить последовательность {Si} по формуле:

image

где М — среднее арифметическое значение последовательности X.

6. Задана последовательность из N целых чисел. Вычислить сумму тех элементов массива, порядковые номера которых совпадают со значением этого элемента.

7. Определить, сколько процентов от всего количества элементов последовательности целых чисел составляют нечетные элементы.

8. Дан массив Х[N] целых чисел. Не используя других массивов, переставить его элементы в обратном порядке. 9. Задана последовательность из N вещественных чисел. Вычислить сумму чисел, порядковые номера которых являются простыми числами.

10. Последовательность а1, а2, …, а2n состоит из нулей и единиц. Поместить в начало этой последовательности все нули, а затем все единицы.

11. Даны действительные числа а1, а2, …, а2n. Найти:

mах(a1 + а2n, а22n-1, …, аn + аn+1).

12. Дана последовательность действительных чисел a1 ≤ а2 ≤ ... ≤ аn. Вставить действительное число b в нее так, чтобы последовательность осталась неубывающей.

13. Дана последовательность целых чисел а1, а2, …, аn. Указать пары чисел аi, аj, таких что ai + аj = m, где m - заданное целое число.

14. Даны координаты n (n ≤ 30) точек на плоскости: (Х1, У1), ..., (Хп, Yn). Найти номера пары точек, расстояние между которыми наибольшее (считать, что такая пара единственная).

15. Дан массив, состоящий из n натуральных чисел. Образовать новый массив, элементами которого будут элементы исходного, оканчивающиеся на цифру k.

16. Дан массив целых чисел. Найти в этом массиве минимальный элемент m и максимальный элемент М. Получить в порядке возрастания все целые числа из интервала (m; М), которые не входят в данный массив.

17. Даны две последовательности а1, а2, ..., аn и bх, b2, ..., bn (m < п). В каждой из них значения элементов различны. Верно ли, что все элементы второй последовательности входят в первую последовательность?

18. Вывести значения и номера наибольшего, наименьшего и наименее удаленного от среднего арифметического значения элементов данной последовательности вещественных чисел.

Уровень 3


19. Сформировать массив простых чисел, не больших заданного натурального числа N.

20. Сформировать массив простых множителей заданного числа.

21. В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные — в конец с сохранением порядка следования. Дополнительный массив заводить не разрешается.

22. В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: х1, у1, х2, у2, х3, у3, и т. д. Определить:

а) минимальный радиус окружности с центром в начале координат, которая содержит все точки;
б) внутренний и внешний радиусы кольца с центром в начале координат, которое содержит все точки;
в) номера точек, которые могут являться вершинами квадрата;
г) номера точек, которые могут являться вершинами равнобедренного треугольника;
д) номера самых удаленных и наименее удаленных друг от друга точек;
е) три точки, которые являются вершинами треугольника, для которого разность точек вне его и внутри является минимальной.

23. Дана последовательность целых чисел. Найти количество различных чисел в этой последовательности.

24. На плоскости п точек заданы своими координатами, и также дана окружность радиуса R с центром в начале координат. Указать множество всех треугольников с вершинами в заданных точках, пересекающихся с окружностью; множество всех треугольников, содержащихся внутри окружности.

25. Разделить массив на две части, поместив в первую элементы, большие среднего арифметического элементов массива, а во вторую — меньшие (части не сортировать).

26. Даны две последовательности а1 < а2 < ... < аn и b1 < b2 < ... < bm. Образовать из них новую последовательность чисел так, чтобы она тоже была неубывающей.

Примечание. Дополнительный массив не использовать.

image27. Сортировка вставками. Дана последовательность чисел а1, а2, ..., аn. Требуется переставить числа в порядке возрастания. Делается это следующим образом. Пусть а1, а2, ..., ai — упорядоченная по неубыванию последовательность, т. е. а1 < а2 < ... < аi. Берется следующее число ai+1 и вставляется в последовательность так, чтобы новая последовательность была также возрастающей. Процесс производится до тех пор, пока все элементы от i+1 до n не будут перебраны.

Примечание. Место помещения очередного элемента в отсортированную часть найти с помощью двоичного поиска. Двоичный поиск оформить в виде отдельной функции.

image28. Алгоритм сортировки фон Неймана. Упорядочить массив а1, а2, ..., аn по неубыванию с помощью алгоритма сортировки слияниями:

1) каждая пара соседних элементов сливается в одну группу из двух элементов (последняя группа может состоять из одного элемента);

2) каждая пара соседних двухэлементных групп сливается в одну четырехэлементную группу и т. д.

При каждом слиянии новая укрупненная группа упорядочивается.

image29. Шейкер-сортировка. Алгоритм «пузырьковой» сортировки легко улучшить. Разумно запомнить, производился ли на данном проходе какой-либо обмен. Если нет, то алгоритм можно закончить. Еще одно улучшение заключается в том, что периодически меняется направление сортировки, которое борется с некоторой асимметрией «пузырькового» метода. Написать программу, реализующую данный улучшенный алгоритм.

Следующая страница Работа 3.7. Программирование обработки двумерных массивов









Наверх