Лабораторная работа №5.
“Обработка одномерных массивов”
Цель работы: Освоение методов обработки одномерных массивов, разработки алгоритмов, построения и отладки программ, ввода и вывода на печать одномерных массивов.
Теоретическая часть
5.1.1. Описание одномерных массивов в языке программирования C++.
Массивы объявляются непосредственно в разделе описания переменных. Описание статического одномерного массива имеет следующую структуру:
тип имя_массива[размер];
где:
тип – указание на любой стандартный или нестандартный тип, которому будут принадлежать элементы массива;
имя_массива – идентификатор массива;
размер – целочисленная константа, определяющая максимальное количество элементов массива;
int A[100];
#define N 50;
...
float B[N];
Обращение к элементам массива в программе происходит по индексу, например:
A[i]
X[2]
Y[i*2-1]
Следует обратить внимание, что в языке C++ нумерация элементов массива начинается с 0.
5.1.2 Пример составления алгоритма и программы на языке C++ для обработки одномерного массива.
Задание:
Дан массив действительных чисел А из 20 элементов. Определить m = (amax + amin)/100.
Решение.
Для обработки массива A сначала необходимо ввести его элементы. Выполним ввод элементов массива с клавиатуры. Для обозначения размерности массива A введем переменную N. После ввода всех элементов массива для наглядности выведем их на экран.
Для определения числа m сначала в одном цикле выполним поиск максимального и минимального элемента массива, а затем после цикла найдем величину m и выведем ее значение на экран.
Блок-схема алгоритма решения данной задачи выглядит следующим образом:
Текст программы на языке С++ выглядит следующим образом:
#include <stdio.h>
#include <conio.h>
#define N 30
int main()
{ int i;
float A[N];
float m, Amax, Amin;
//clrscr();
printf("Введите элементы массива \n");
for(i=0;i<N;i++) scanf("%f",&A[i]);
//clrscr();
for(i=0;i<N;i++) printf("%8.2f",A[i]);
Amax=A[0];
Amin=A[0];
for(i=1;i<N;i++)
{
if (A[i] > Amax) Amax=A[i];
if (A[i] < Amin) Amin=A[i];
}
m=(Amax + Amin)/100;
printf("\nAmax=%.2f\nAmin=%.2f\nm=%.2f",Amax,Amin,m);
getch();
return 0;
}
Практическая часть
5.2.1 Требования к выполнению работы:
Составить блок-схему алгоритма и программу для решения индивидуального задания.
Предусмотреть вывод на печать исходных массивов, подробных конечных результатов. При необходимости возможен вывод также промежуточных результатов.
Значения элементов массивов задавать путем ввода с клавиатуры.
Порядок выполнения работы.
1. Выполнить анализ задания, сформулировать постановку задачи.
2. Составить блок-схему алгоритма.
3. Составить программу на языке С++. Предусмотреть ввод исходных данных и вывод результатов на экран.
4. Выполнить проверку работоспособности программы на различных исходных данных.
5. Выполнить анализ полученных результатов.
Варианты индивидуальных заданий.
Варианты индивидуальных заданий выбираются из таблицы 5 в соответствии с номером студента в списке группы в журнале преподавателя.
Таблица 5. Варианты индивидуальных заданий
№ п/п | Вид задания |
Найти минимальный элемент среди положительных элементов массива вещественных чисел А(20). | |
Найти сумму положительных элементов массива вещественных чисел B(45) и сумму отрицательных элементов. | |
Вычислить сумму абсолютных значений элементов массива целых чисел С(15). | |
Найти максимум первых 10 элементов массива целых чисел А(20) и минимум последних 10 элементов. | |
Определить отношение между максимальным и минимальным элементами массива вещественных чисел M(25). | |
Найти разницу между максимальным и последним отрицательным элементом массива целых чисел А(45). | |
Найти разницу между абсолютными значениями максимального и минимального элементов массива целых чисел D(25). | |
Определить процент положительных и отрицательных элементов массива вещественных чисел B(30). | |
Найти суммы четных элементов (элементов с четным номером) массива вещественных чисел A(22) и нечетных элементов. | |
Найти количество элементов массива целых чи-сел C(50), больших, чем половина максимума. | |
Найти произведение элементов массива целых чисел A(20), больших, чем среднее арифметическое элементов массива. | |
Найти количество элементов массива вещественных чисел B(40), значения которых находятся в интервале [–max/2; max/2]. | |
Найти средние арифметические первых 15 элементов массива целых чисел D(30) и последних 15 элементов. | |
Найти среднее арифметическое положительных элементов массива вещественных чисел V(25). | |
Определить количество элементов массива вещественных чисел C(40), больших, чем модуль минимального значения массива. | |
Определить разницу между максимальным и средним арифметическим значением массива вещественных чисел F(20). | |
Найти произведения элементов с четным индексом массива целых чисел Т(30) и с нечетным индексом. | |
Найти количество элементов массива целых чисел A(25), меньших, чем среднее арифметическое первых 10 элементов массива. | |
Найти количество элементов массива целых чисел C(40) с четными и нечетными значениями. | |
Найти произведение элементов массива целых чисел D(40), расположенных между максимальным и минимальным элементами. | |
Найти количество элементов массива вещественных чисел А(30), меньших, чем среднее арифметическое отрицательных элементов массива. | |
Найти сумму элементов массива целых чисел X(15), расположенных до последнего положительного элемента | |
Найти сумму элементов массива вещественных чисел M(45), расположенных после первого нулевого элемента. | |
Найти произведение элементов массива вещественных чисел K(25), расположенных после максимального по модулю элемента. | |
Найти сумму модулей элементов массива целых чисел Y(50), расположенных до минимального элемента. | |
В массиве целых чисел D(30) найти среднее арифметическое положительных элементов, расположенных в первой половине массива, и среднее арифметическое отрицательных элементов, расположенных во второй половине массива. | |
Найти количество элементов массива действи-тельных чисел F(35), больших, чем среднее арифметическое первых 15 элементов массива. |
5.3 Контрольные вопросы и практические задания:
1. Как выглядит форма объявления одномерных массивов?
2. Каким образом нумеруются элементы массива?
3. Каковы требования к индексам элементов массива?
4. Какой из типов операторов цикла удобнее использовать при работе с массивами?
5. Приведите варианты ввода численных значений элементов массива.
6. Приведите варианты вывода элементов массива на печать.
7. Приведите алгоритмы определения суммы и произведения элементов массива.
8. Приведите алгоритмы нахождение максимального и минимального элементов в массиве.
9. Приведите алгоритмы нахождение среднего значения элементов массива.