Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР - 7.docx
Скачиваний:
40
Добавлен:
29.07.2019
Размер:
30.82 Кб
Скачать

Лабораторная работа №7 Алгоритмы обработки одномерных массивов

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

Задание

  1. Изучить типовые алгоритмы обработки одномерных массивов.

  2. Разработать алгоритмы, программы и тесты обработки одномерных массивов в соответствии с заданиями, приведенными ниже. Количество решаемых задач указывается преподавателем.

  3. Оформить отчет, который должен содержать для каждой из задач:

  • условие задачи;

  • графическую схему алгоритма;

  • тесты;

  • листинг с текстом программы и результатами ее выполнения.

Задание 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

9

512


Тесты.

Массив, x, a

Число элементов

Сумма

2

3

6

4

8

6

8

3

6

8

0

1

8

x=8

a=7

13

11


Задание 7.2. Выделение минимального и максимального элементов массива

В каждой из задач данного раздела предполагается, что задан массив чисел. Программа должна: