
- •«Обработка одномерных массивов данных»
- •Часть 1. Вычислить значения 36 элементов одномерного целочисленного массива t в интервале (-6,9) с использованием генератора случайных чисел.
- •Часть 2. Вычислить среднеарифметическое значение нечетных по номеру элементов первой половины массива.
- •Часть 3. Определить максимальное значение среди отрицательных элементов второй трети массива.
- •Часть 4. Упорядочить каждые третьи элементы всего массива по убыванию абсолютных значений.
- •Алгоритм решения задачи
- •3.1 Основной алгоритм
- •3.2 Алгоритм получения элементов вектора
- •3.3 Алгоритм вычисления среднеарифметического значения нечетных по номеру элементов первой половины массива
- •3.4 Алгоритм определения максимального значения элемента среди отрицательных элементов второй трети массива.
- •3.5 Упорядочение массива
- •4. Таблицы переменных задачи
- •Текст программы на Паскале
- •6. Результаты расчета
Министерство образования и науки РФ
Федеральное государственное бюджетное образовательное учреждение
Высшего профессионального образования
«Уфимский государственный нефтяной технический университет»
Кафедра «Вычислительной техники и инженерной кибернетики»
ОТЧЁТ
по лабораторной работе № 4
по информатике
«Обработка одномерных массивов данных»
Вариант № 651
Студент гр. БГБ-13-04 ________________ Тюлькин
(подпись, дата)
Преподаватель ________________ К.В. Крамарева
(подпись, дата)
Уфа - 2013
Постановка задачи
Разработать программу получения и обработки одномерного массива, состоящую из 4 частей.
Часть 1. Вычислить значения 36 элементов одномерного целочисленного массива t в интервале (-6,9) с использованием генератора случайных чисел.
Для получения целого случайного числа x на отрезке [a, b] в языке Паскале используется следующий оператор:
x := a + ROUND((b-a)RANDOM (100)100).
Чтобы при каждом новом запуске программы получить новую последовательность случайных чисел, необходимо в начале программы исполнить оператор RANDOMIZE.
Часть 2. Вычислить среднеарифметическое значение нечетных по номеру элементов первой половины массива.
Среднеарифметическое значение элементов заданного множества А = {a1, a2, …, an} вычисляется по формуле
где n-количество элементов в массиве.
Часть 3. Определить максимальное значение среди отрицательных элементов второй трети массива.
Определить элемент массива – это значит найти его положение (индекс) в массиве и его значение. Если требуемому условию удовлетворяют несколько элементов, то нужно установить индекс и значение каждого из них.
Часть 4. Упорядочить каждые третьи элементы всего массива по убыванию абсолютных значений.
В исходном массиве упорядочиваются только те элементы, которые удовлетворяют заданным условиям, при этом остальные элементы своё положение сохраняют и вспомогательный массив не используется.
Для проверки правильности упорядочения всего массива или его части выводить все его элементы.
Обязательные требования к программе.
1. Программу разработать для решения задачи в общем виде, для произвольных значений исходных данных: количества элементов n (2<=n<=100) и отрезка [a, b] (b>=a).
2. Решение каждой части в программе реализовать в виде процедуры.
3. Предусмотреть 3 варианта исполнения программы:
Тестовый расчёт
Решение задачи для одной и той же последовательности случайных значений элементов массива при новом запуске программы для одних и тех же исходных данных (Randomize не используется).
Решение задачи для новой последовательности случайных значений элементов массива при новом запуске программы (c Randomize).
Анализ задачи.
Исходными данными являются значения количества элементов в массиве n и отрезок [a, b].
Порядок решения задачи: сначала нужно получить одномерный массив (часть 1), затем можно вычислить параметр массива (часть 2) или найти нужный элемент (часть 3). Упорядочение массива (часть 4) нужно выполнить в последнюю очередь, так как перестановка элементов массива при упорядочении может повлиять на вычисление параметра массива и определение нужного элемента.
Тестовый расчёт.
Возьмём любые исходные данные, например n=16, a =-4, b = 4. Запишем 16 случайных целых чисел от -4 до 4 – это значения элементов массива T для тестового расчёта.
2, 2, -2, -1, -4, -3, 2, 0, 3, -2, -4, 3, 1, 3, 3, 1
Для вычисления среднеарифметического значения значения сначала нужно выделить в общем виде номера элементов первой половины массива. Номер последнего элемента первой половины массива вычисляется по формуле [n/2]. Использование данной операции при определении номеров элементов в большинстве случаев позволяет равномерно разделить массив на части:
[16/2] = 8.
Запишем элементы первой половины массива
x1 x2 x3 x4 x5 x6 x7 x8
2 2 -2 -1 -4 -3 2 0
Выделим подчёркиванием нужные элементы: нечётные по номеру, ненулевые значения.
Нужных элементов k = 4, их сумма 2+(-2)+(-4)+2=-2.
Cреднеарифметическое значение Sa =-2/4=-0,5.
При вычислении Sa могут возникнуть следующие проблемы:
Не будет нужных элементов ( n = 0 ).В этом случае нужно принять Sa = 0.
Для определения максимального значения сначала выделим элементы второй трети массива: номер первого элемента второй половины [n/3] + 1 = [16/3]+1 = 5 + 1 = 6, номер последнего [2*n/3] = [2*16/3] = 10.
Запишем элементы второй трети массива:
x6 x7 x8 x9 x10
-3 2 0 3 -2
Выделим подчёркиванием нужные элементы: отрицательные элементы. Нужных элементов 2, максимальное значение равно -2.
При решении данной задачи могут быть следующие ситуации:
Не будет нужных элементов;
Будет единственный элемент с наименьшим значением;
Будет множество элементов с наименьшим значением (в пределе все нужные элементы в рассматриваемой части имеют одинаковое значение).
При выборочном упорядочивании элементов массива сначала выделим весь массив.
Запишем элементы всего массива.
2 2 -2 -1
-4 -3 2 0
3 -2 -4 3
1 3 3 1
Выделим подчёркиванием нужные элементы: каждые третьи элементы всего массива.
Запишем выделенные элементы по убыванию абсолютных значений:
-3, 3, 3, 3,-2.
Упорядочим элементы массива:
2 2 -3 -1
-4 3 2 0
3 -2 -4 3
1 3 -2 1
Не каждые третьи элементы всего массива не меняют своё положение в массиве.