доцента кафедры ИВТ Гродненского госуниверситета
канд. техн. наук Ливак Елены Николаевны
Лабораторная работа №5
Обработка массивов
Методические указания к выполнению лабораторной работы
Необходимо
1) разработать приложения, реализующие указанные задания;
2) разработать систему тестов для верификации программы и провести тестирование.
Для самопроверки рекомендуется выполнить задания на обработку элементов массива 1-1; 4-1; 6-1; 8-1; 12-1; а также на сортировку массива 2-2; 1-2; 3-2; 4-2; 10-1.
Для контроля преподавателем необходимо выполнить предложенный преподавателем вариант задания, включающий две задачи.
Следует продемонстрировать преподавателю работу приложения на разработанной системе тестов.
Замечание. Варианты 15, 16, 17, 18 предназначены для студентов, продолжающих обучение программированию на языке Pascal, либо тех, кто хочет усовершенствовать полученные навыки.
Задание 5. Вариант 1
1. Вычислить среднее арифметическое ненулевых элементов массива вещественных чисел. Элементы массива вводятся с клавиатуры.
2. Упорядочить массив целых чисел по неубыванию методом сортировки выбором. Подсчитать количество нулевых элементов массива. Оценить быстродействие алгоритма сортировки.
Задание 5. Вариант 2
1. Определить, сколько раз заданное число встречается в массиве. Элементы массива и заданное число вводятся с клавиатуры.
2. Проверить, упорядочен ли набор данных, введенных с клавиатуры, по возрастанию, если нет, то упорядочить его. Значение первого элемента упорядоченного набора данных изменить на противоположное. Оценить быстродействие алгоритма сортировки.
Задание 5. Вариант 3
1. Ввести текст из 10 символов (массив). Определить симметричен ли он, т.е. читается ли текст одинаково слева направо и справа налево.
2. Упорядочить массив целых чисел по невозрастанию методом сортировки обменом. Оценить быстродействие алгоритма. Подсчитать количество отрицательных элементов массива.
Задание 5. Вариант 4
1. Ввести текст не более 20 символов (массив). Окончание текста - точка. Напечатать данный текст в обратном порядке (посимвольно).
2. Упорядочить массив целых чисел по убыванию методом сортировки вставкой. Оценить быстродействие используемого алгоритма. Подсчитать количество положительных элементов массива.
Задание 5. Вариант 5
1. По массиву коэффициентов многочлена
p(x) = p0xn + p1xn-1 + ... + pn-1x + pn
получить массив коэффициентов многочлена (x +a) p(x)
2. Упорядочить набор данных по убыванию одним из прямых методов сортировки. Оценить быстродействие используемого алгоритма.
Задание 5. Вариант 6
1. Преобразовать массив, введенный с клавиатуры, по правилу: все отрицательные элементы перенести в начало, а все остальные - в конец, сохраняя исходное взаимное расположение среди обеих групп.
2. Ввести два массива вещественных чисел. Упорядочить каждый из них по неубыванию. Объединить элементы массивов в один (новый) так, чтобы полученный массив также оказался упорядоченным.
Задание 5. Вариант 7
1. Пусть температура каждого дня летнего месяца хранится в массиве. Имеется три массива температур - для каждого летнего месяца. Определить месяц с наибольшей среднемесячной температурой.
2. Проверить, составляют ли элементы введенного с клавиатуры набора данных возрастающую последовательность. Если нет, то упорядочить элементы по возрастанию. Оценить быстродействие используемого алгоритма сортировки. Подсчитать количество ненулевых элементов массива.
Задание 5. Вариант 8
1. Дана последовательность из n различных чисел. Найти сумму чисел этой последовательности, расположенных между максимальным и минимальным числами ( в сумму включить и оба эти числа).
2. Проверить, составляют ли элементы введенного с клавиатуры набора данных убывающую последовательность. Если нет, упорядочить элементы по убыванию. Оценить быстродействие используемого алгоритма сортировки. Подсчитать количество положительных элементов массива.
Задание 5. Вариант 9
1. В массиве вещественных чисел поменять местами максимальный и минимальный элементы. Подсчитать количество ненулевых элементов массива.
2. Проверить, составляют ли элементы введенного с клавиатуры набора данных невозрастающую последовательность. Если нет, то упорядочить элементы по невозрастанию. Оценить быстродействие используемого алгоритма сортировки.
Задание 5. Вариант 10
1. Проверить, чередуются ли в массиве положительные и отрицательные элементы. При наличии нулевых элементов проверку не производить, а только сообщить об этом.
2. Данные о датах рождения студентов академической группы вносятся в массив в следующем формате ММДД (например, 12 сентября - 0912; 1 ноября - 1101). Ввести даты рождения студентов некоторой группы и сформировать календарь праздничных дат группы (даты расположить по порядку, начиная с января месяца).
Задание 5. Вариант 11
1. Ввести элементы массива X[1..n]. Вычислить значение выражения
x1 + x1 x2 + x1 x2 x3 + ... + x1 x2 x3... xm ,
где m - либо номер первого отрицательного элемента массива, либо n, если в массиве нет отрицательных элементов.
2. С клавиатуры вводится набор знаменательных дат (только год). Расположите введенные даты в хронологическом порядке.
Задание 5. Вариант 12
1. Определить количество спортсменов в команде баскетболистов, чей рост превышает средний по команде. Количество членов команды и рост каждого игрока вводится с клавиатуры.
2. Модифицировать матрицу таким образом, чтобы строки оказались отсортированными по значению первого элемента.
Задание 5. Вариант 13
1. Вычислить среднюю за неделю температуру воздуха. Предоставить пользователю возможность вводить температуру с клавиатуры.
2. С клавиатуры вводится набор знаменательных дат (только год). Расположите введенные даты в хронологическом порядке.
Задание 5. Вариант 14
1. В массиве хранятся суммы выплаченной заработной платы за год некоторому сотруднику фирмы. Проверить, имел ли место рост заработной платы. Подсчитать среднюю заработную плату сотрудника за год.
2. С клавиатуры вводится набор знаменательных дат (только год). Расположите введенные даты в хронологическом порядке.
Задание 5. Вариант 15
1. В массиве хранятся данные (год рождения) о каждом сотруднике малого предприятия. Определить
a. средний возраст сотрудников;
b. возраст самого молодого сотрудника.
2. Разработайте программу подведения итогов Международного чемпионата по некоторому виду спорта. Для каждой страны-участницы с клавиатуры вводится количество медалей различного достоинства. Программа позволяет подсчитать общее количество завоеванных медалей и соответствующее число очков (за золотую медаль - 7 очков, за серебряную - 6, за бронзовую -5). Результат работы программы - список команд-участниц, упорядоченный по числу набранных очков. В списке должны быть отражены данные о количестве медалей каждого достоинства, общее количество медалей, количество набранных очков.
Задание 5. Вариант 16
1. Определить, образуют ли введенные данные арифметическую прогрессию. Если образуют, то найти сумму данных членов арифметической прогрессии.
2. Разработайте программу, позволяющую вводить годы жизни некоторых знаменитых людей и составляющую список перечисленных знаменитостей в порядке увеличения количества прожитых лет. Спроектируйте пользовательский интерфейс.
Задание 5. Вариант 17
1. В двух массивах хранятся данные о количестве подписчиков на издания “Аргументы и факты” (по месяцам). В одном массиве хранятся данные по Ленинскому району, в другом - по Октябрьскому. Проанализировать количество подписчиков в целом по городу и определить имел ли место ежемесячный рост количества подписчиков, либо количество подписчиков уменьшалось каждый месяц, либо количество подписчиков изменялось попеременно. Спроектировать пользовательский интерфейс.
2. Модифицировать матрицу таким образом, чтобы строки оказались расположенными в порядке возрастания значения первого элемента.
Задание 5. Вариант 18
1. Направление ветра условно обозначается следующими символами: С, Ю, З, В (*** СЗ, ЮЗ, СВ, ЮВ ***). Данные о направлении ветра в первую декаду месяца заносятся в массив. Определить преобладающее направление ветра. (Звездочками обозначено дополнительное задание).
2. Данные о датах рождения студентов академической группы вносятся в массив в следующем формате ММДД (например, 12 сентября - 0912; 1 ноября - 1101). Ввести даты рождения студентов некоторой группы и сформировать календарь праздничных дат группы (даты расположить по порядку, начиная с января месяца).