Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет работы №4 (913).docx
Скачиваний:
4
Добавлен:
01.03.2025
Размер:
78.82 Кб
Скачать

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

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

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

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

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

Отчет По лабораторной работе №4

Вариант № 913

по дисциплине «Информатика»

Студент гр. БСТ 12-01 _________________ А.А.Аетов

(подпись, дата)

Ст. преподаватель _________________ М.А.Салихова

(подпись, дата)

УФА

2012

Постановка задачи

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

Часть 1. Вычислить значения 39 элементов одномерного целочисленного массива f в интервале (-7,8) с использованием генератора случайных чисел.

Для получения целого случайного числа x на отрезке [a, b] в языке Паскале используется следующий оператор:

x := a + ROUND((b-a)RANDOM (100)100).

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

Часть 2. Вычислить среднегеометрическое значение положительных элементов третьей четверти массива.

Среднегеометрическое значение элементов заданного массива A = {a1, a2, a3, …, an} вычисляется по формуле

где i-порядковый номер элемента массива.

Часть 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, а =-3, в = 4. Запишем 16 случайных целых чисел от -3 до 4 – это значения элементов массива F для тестового расчёта.

1, 0, -3, 2, 0, -3, 4, 3, 2, 0, 0, 4, 0, -2, -1, -1

Для вычисления среднегеометрического значения сначала нужно выделить в общем виде положительные элементы массива. Положительные элементы удовлетворяют выражению f[i]>0. Запишем эти элементы. Также они не должны быть равны нулю.

X5 x6 x7 x8

2 0 0 4

Среднегеометрическое значение этих элементов равно 2.828.

Для определения элемента самого близкого к заданному числу С сначала выделим элементы второй половины массива. Первый будет [n/2+1]. Нечетный по номеру I mod 2 = 1

Запишем элементы второй половины массива:

X9 x10 x11 x12 X13 x14 x15 x16

2 0 0 4 0 -2 -1 -1

Ближайшее число 2 при C =5.

При выборочном упорядочивании элементов массива сначала выделим нужную часть массива. Первый элемент последней четверти массива имеет номер [3*n/4]+1 Они должны быть положительными.

Запишем элементы второй четверти

Элементы x13 x14 x15 x16

Значения элементов 0 -2 -1 -1

Упорядоченные элементы

  1. Алгоритм решения задачи

При разработке алгоритме будем использовать метод декомпозиции: решение задачи сначала опишем в виде основного алгоритма, использующего вспомогательные алгоритмы решения задач частей задания. Затем опишем вспомогательные алгоритмы – модули решения задач каждой части. При разработке и описании алгоритмов используются элементарные структуры алгоритмов, составляющие основу структурного программирования.

    1. Основной алгоритм.

При разработке основного алгоритма нужно учесть обязательные требования, сформулированные в постановке задачи и рекомендации по разработке сложных программ:

  1. Необходимо задачу решать в общем виде, для любых допустимых значений исходных данных.

  2. Предусмотреть возможность выполнения 3 вариантов расчёта. Введём вспомогательную переменную Vr для управления вариантом расчёта: если Vr =0 – тестовый расчёт, Vr = 1 – без Randomize, любое другое значение Vr – расчёт с Randomize.

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

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