Цель работы— овладение практическими навыками работы с массивами, особенностями их ввода и вывода, приобретение дальнейших навыков по организации программ циклической структуры с использованием приемов программирования.
Задание для самостоятельной подготовки
1. Изучить:
— способы описания размеров массивов на языке программирования;
— способы ввода и вывода массивов;
— реализацию на конкретном языке программирования приемов накопления суммы или произведения, запоминания результатов, нахождения наибольшего и наименьшего.
2. Разработать алгоритм решения в соответствии с заданием.
3. Составить программу решения задачи.
4. Подготовить тест для проверки программы.
Задание к работе
1, Обработать на ЭВМ массив в соответствии с вариантом задания, указанного в таблице 3.
2. Проверить правильность выполнения программы с помощью тестового варианта.
Таблица 3
Вариант
задания
Массив
Действия
Условия и ограничения
Х(100)
Вычислить сумму и количество элементов массива X
0 < xi < 1
А (80)
Вычислить среднее арифметическое значение элемента массива А
ai > 0
Х(7О)
Переписать элементы массива X в массив Y и подсчитать их количество
-1 < xi < 1
B(50)
Определить максимальный элемент массива В и его порядковый номер
xi > 0
б
С (40)
Вычислить минимальный элемент массива С и его номер
xi < 0
D(80)
Найти максимальный и минимальный элементы массива D и поменять их местами
---
Y(20)
Вычислить среднее геометрическое элемента массива Y
yi > 0
Z(30)
Расположить в массиве R сначала положительные, а за тем отрицательные элементы массива 2
---
N{50)
Определить сумму элементов массива N, кратных трем
ni/3*3 = ni
X(N)
Вычислять сумму и количество элементов массива X
xi > 0, N <= 30
A(N)
Найти среднее геометрическое элементов массива А
ai > 0, N <= 50
X(N)
Переписать в массив Y подряд положительные элементы массива X
xi >0, N <=4 0
X(N)
Переписать подряд в массив Y положительные и в массив Z отрицательные элементы массива X
N <= 40
B(K)
Определить максимальный элемент массива В и его порядковый номер
xi <0, K <= 40
C(K)
Определить минимальный элемент массива С и его порядковый номер
-1 <= xi <= 1,
K<=20
Пример выполнения работы
Задание 1. Вычислить на ЭВМ наибольший элемент массива хl, х2, ..., хn, и его порядковый номер; n<130. Проверить правильность программы на тесте при n = 3 и следующих элементах массива (1.5, 4.3, 2.4).
При выполнении задания необходимо использовать прием нахождения наибольшего. Для этого перед циклом следует задать начальное значение наибольшего, равное первому элементу массива, а в цикле сравнивать наибольший с текущим элементом массива; в том случае, если текущий элемент больше наибольшего из предыдущих, то считать его наибольшим. Для нахождения порядкового номера наибольшего элемента массива необходимо перед циклом задать его начальное значение, равное 1, а в цикле всякий раз, когда текущий элемент массива больше наибольшего, считать номером наибольшего номер текущего элемента массива. Схема алгоритма решения представлена на рисунке 4
Рисунок 4. Блок-схема алгоритма.
Блок 2 осуществляет ввод значения массива X, состоящего из п элементов. Блок 3 задает начальные значения Хmax и Nmax.Блок 4 организует цикл, перебирающий элементы массива, начиная со второго и кончая n-м. Блоки 4 и 5 находят наибольший элемент массива и его порядковый номер. Блок 7 за циклом выводит результаты на печать.
Программа имеет вид:
PROGRAM MAX (INPUT, OUTPUT) ;
CONST NN=30;
VAR
N, I, MAХ: INTEGER; ХМАХ: REAL;
X:ARRAY[1.. NN] OF REAL; BEGIN
WRITE('ВВЕДИТЕ ЗНАЧЕНИЕ N' ); READ (N) ;
FOR I: = 1 TO N DO READ(X[I]) ; XMAX:=X[1] ; IMAX:=1;
FOR I:=2 TO N DO IF X[I]>XMAX THEN BEGIN
XMAX:=X[I]; IMAX:=I; END;
WRITE ('XMAX=', XMAX,' ', ' IMAX= ', IMAX ) END.
Контрольные вопросы
1.Указать особенности программ, использующих массивы.
2.Какие операторы языка можно использовать для описания массивов?
3.В чем состоит особенность организации цикла при обработке массивов?
4.В чем состоит особенность использования приемов программирования при обработке массивов?