- •Лабораторная работа №7 Алгоритмы обработки одномерных массивов
- •Выполнять действия в соответствии с условием задачи;
- •Программа задачи
- •Задание 7.3. Формирование новых массивов
- •Выполнять действия в соответствии с условием задачи;
- •Программа задачи
- •Задание 7.4. Обработка упорядоченных массивов
- •3) Выполнять действия в соответствии с условием задачи;
- •Программа задачи
Лабораторная работа №7 Алгоритмы обработки одномерных массивов
Цель работы: Изучить типовые алгоритмы обработки одномерных массивов, научиться разрабатывать и отлаживать в среде программирования программы обработки массивов.
Задание
Изучить типовые алгоритмы обработки одномерных массивов.
Разработать алгоритмы, программы и тесты обработки одномерных массивов в соответствии с заданиями, приведенными ниже. Количество решаемых задач указывается преподавателем.
Оформить отчет, который должен содержать для каждой из задач:
условие задачи;
графическую схему алгоритма;
тесты;
листинг с текстом программы и результатами ее выполнения.
Задание 7.1. Вычисление сумм, количеств и произведений элементов массива
Программа должна:
1) вводить размерность и элементы массива;
2) вводить некоторые дополнительные числа;
3) выполнять действия в соответствии с условием задачи;
4) выводить исходные данные и результаты вычислений.
Исходные данные для отладки программы выбрать самостоятельно.
24 |
Найти сумму чисел, принадлежащих промежутку [A,B], и определить количество нулей, стоящих на местах, кратных 4. |
Таблица соответствия переменных
-
Имя переменной в условии
Имя переменной в программе
Тип переменной
Комментарий
w,b
w,b
float
Заданное число
s
s
int
Сумма
а[i]
а[i]
float
Массив
a,x
a,x
int
Заданное число
i
i
int
№ элемента
Программа задачи #include<conio.h> #include<stdio.h> #include<windows.h> #include<math.h> char bufRus[256]; char* Rus(const char*text) { CharToOem(text, bufRus); return bufRus; } main() { float s,w,b; int q,i,n,k,f,a[100]; puts(Rus("введите n")); scanf("%d",&n); puts(Rus("введите w,b")); scanf("%f%f",&w,&b); for(i=0; i<n; i++) { printf(Rus("введите a[%d]="),i); scanf("%d",&a[i]); } puts(Rus("массив a")); for(i=0; i<n; i++) printf("%5d",a[i]); printf("\n"); s=0; q=0; for(i=3; i<n; i+=4) if(a[i]==0) q=q+1; for(i=0; i<n; i++) if(i<=b&&i>=w) { s=s+a[i]; k=k+1; } printf("s=%.2f\n q=%.2d\n",s,q); fflush(stdin); getchar(); return(0); } |
||||||||
Тесты.
|
Тесты.
Массив, x, a |
Число элементов |
Сумма |
|
2 3 6 4 8 6 8 3 6 8 0 1 8 x=8 a=7 |
13 |
11 |
Задание 7.2. Выделение минимального и максимального элементов массива
В каждой из задач данного раздела предполагается, что задан массив чисел. Программа должна: