Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет 651.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.05 Mб
Скачать

Министерство образования и науки РФ

Федеральное государственное бюджетное образовательное учреждение

Высшего профессионального образования

«Уфимский государственный нефтяной технический университет»

Кафедра «Вычислительной техники и инженерной кибернетики»

ОТЧЁТ

по лабораторной работе № 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).

  1. Анализ задачи.

Исходными данными являются значения количества элементов в массиве 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.

При решении данной задачи могут быть следующие ситуации:

  1. Не будет нужных элементов;

  2. Будет единственный элемент с наименьшим значением;

  3. Будет множество элементов с наименьшим значением (в пределе все нужные элементы в рассматриваемой части имеют одинаковое значение).

При выборочном упорядочивании элементов массива сначала выделим весь массив.

Запишем элементы всего массива.

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

Не каждые третьи элементы всего массива не меняют своё положение в массиве.