Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
38
Добавлен:
03.03.2016
Размер:
82.43 Кб
Скачать

18

ЛАБОРАТОРНАЯ РАБОТА № 3

ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ.

Цель работы:

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

Требования к выполнению работы:

  • Задание состоит из двух частей, программирование каждой из которых можно организовать в одном программном файле, а можно в различных.

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

  • Предусмотреть вывод на печать исходных массивов, промежуточных и результирующих массивов, а также искомых результирующих величин.

  • Значения элементов массивов задавать с помощью генератора случайных чисел.

Теоретические положения

Форма описания одномерного массива:

<тип> v[k],

где vимя массива,

где к – количество элементов в массиве, целое число.

int p[10];

float x[50];

Начальный индекс элемента массива всегда равен 0.

p[0] p[1] … p[9]

x[0] x[1] … x[49]

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

Объявление массивов не является самостоятельным объявлением, а входит в раздел объявления всех переменных.

Пример:

Задан массив действительных чисел А из n-элементов (n≤200). Определить m=(amax + amin)/2.

#include<stdio.h>

#include<math.h>

void main()

{

int i, n;

float a[200], m, amax, amin ;

printf (“Укажите длину массива n”);

scanf(“%d”, &n);

printf (“Введите элементы массива ”);

for(i=0; i<n; i++)

scanf(“%f “,&a[i]);

for(i=0; i<n; i++)

printf(“%8.2f_ _”,a[i]);

amax =-1000;

amin =1000;

for(i=0; i<n; i++)

if(a[i] > amax) amax =a[i];

for(i=0; i<n; i++)

if (a[i] < amin) amin =a[i];

m=( amax - amin)/2;

printf(“\n m=%8.3 \n”,m);

}

Варианты индивидуальных заданий .

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

Таблица 3.1.

Вид задания

Исх.

данные

1

  1. Найти максимальный элемент среди положительных элементов массива А.

  2. Из массива В сформировать массив Р(20), у которого вначале расположены элементы массива В с нечетными индексами, затем с четными.

А(10)

В(20)

2

  1. Первый элемент массива А заменить суммой максимальных элементов массива А и массива В.

  2. Записать элементы массива В с индексами 1, 4, 9, 16…49 подряд в массив Р(7).

А(50)

В(50)

3

  1. Найти минимальный элемент среди положительных элементов массива А.

  2. Сформировать массив С(40), первые 20 элементов которого - элементы массива А, а последующие – элементы массива В, записанные в обратном порядке.

А(20)

В(20)

4

  1. Найти разницу между максимальным и минимальным элементами массива А.

  2. Сформировать массив К(10), каждый элемент которого определяется: K(i)=A(i)-М, где М-среднее арифметическое элементов массива А.

А(30)

В(30)

5

  1. Определить отношения между максимальным и минимальным элементами массива А.

  2. Положительные элементы массива В записать в массив Р в обратном порядке.

А(20)

В(20)

6

  1. Найти разницу между модулями сумм положительных элементов массива А и отрицательных.

  2. Сформировать массив Р(30), у которого Р(i)=min(A(i),B(i)).

А(50)

В(50)

7

  1. Вычислить сумму абсолютных значений элементов.

  2. Элементы массива В расположить в обратном порядке в массиве Р.

А(50)

В(50)

8

  1. Определить процент положительных, отрицательных и нулевых элементов массива А.

  2. Вычислить среднее арифметическое М элементов массива В и количество элементов В(i), превышающих М.

А(50)

В(50)

9

  1. Последний элемент массива А заменить суммой элементов этого же массива.

  2. Сформировать вектор Р по формуле P(i)=A(i)*B(i).

А(20)

В(20)

10

  1. Найти среднее арифметическое элементов массива А.

Каждый третий элемент массива В заменить произведением двух предыдущих.

А(10)

В(30)

11

  1. Последний элемент массива А заменить максимальным значением первых десяти элементов массива В.

  2. Сформировать массив Р, каждый элемент которого равен произведению всех предыдущих элементов массива А, т.е. P(i)=A(1)*А(2)*…*A(i).

А(30)

В(30)

12

  1. Найти отношение между максимальными значениями элементов массива А и массива В.

  2. Сформировать массив Р(50), у которого Р(i)=A(i)+B(i)).

А(50)

В(50)

13

  1. Максимальный элемент массива А заменить минимальным элементом массива В.

  2. Положительные элементы массива В увеличить в два раза. Найти произведение элементов массива В до и после увеличения.

А(50)

В(50)

14

  1. Определить отношения между максимальным и минимальным элементами массива А.

  2. Записать элементы массива В с нечетными индексами в массив Р в обратном порядке.

А(50)

В(50)

15

  1. Максимальный элемент массива А заменить минимальным элементом массива В.

  2. Положительные элементы массива В увеличить в два раза. Найти сумму элементов массива В до и после преобразования.

А(20)

В(10)

16

  1. Первый элемент массива А заменить суммой максимальных элементов массива А и массива В.

  2. Сформировать массив Р, у которого P(i)=min(A(i),B(i)).

А(50)

В(50)

17

  1. Каждый пятый элемент массива А заменить максимальным из четырех предыдущих.

  2. Положительные элементы массива В расположить в обратном порядке в массиве Р.

А(40)

В(40)

18

  1. Определить большее значение из максимальных элементов массива А и массива В.

  2. Каждый пятый элемент массива В заменить суммой положительных элементов из предыдущих четырех.

А(50)

В(50)

19

  1. Каждый третий элемент массива А заменить минимальным из двух предыдущих.

  2. Сформировать массив К(10), каждый элемент которого определяется: K(i)=A(i)-А, где А-среднее арифметическое элементов массива А.

А(40)

В(40)

20

  1. Каждый положительный элемент массива А заменить на сумму всех предыдущих отрицательных.

  2. Сформировать массив Р, у которого P(i)=A(i)/B(i).

А(30)

В(30)

21

1.Сформировать массив Р, каждый элемент которого равен произведению всех положительных предыдущих элементов массива А, т.е. P(i)=A(1)*А(2)*…*A(i).

2.Сформировать вектор Р по формуле P(i)=A(i)+Bсредн.арифм.

А(20)

В(30)

22

1.Определить большее между максимальным элементом массива А и массива В.

2. Каждый третий элемент массива В заменить произведением двух предыдущих.

А(10)

В(30)

23

1. Ненулевые элементы массива А перенести в массив Р.

2. Каждый третий элемент массива В заменить произведением двух предыдущих.

А(10)

В(25)

24

1. Сформировать массив Р, элементы которого определяются P(i)=A(i)-(Аmax+Аmin)/2.

2. Перенести в массив Р положительные элементы из массива А и из массива В.

А(20)

В(10)

25

1.Каждый нулевой элемент массива А заменить на сумму всех предыдущих.

2.Переставить элементы массива А так, чтобы все они сместились влево на один шаг, т.е. на месте А(1) оказался А(2), а на месте А(2) - А(3) и т.д. На месте А(15) должен оказаться А(1).

А(15)

В(15)

Контрольные вопросы

  1. Как выглядит форма объявления одномерных массивов?

  2. Каким образом нумеруются элементы массива?

  3. Каковы требования к индексам элементов массива?

  4. Как выполняется инициализация одномерных массивов?

  5. Какой из типов операторов цикла удобнее использовать при работе с массивами?

  6. Приведите варианты ввода численных значений элементов массива.

  7. Приведите варианты вывода элементов массива на печать.

  8. Приведите алгоритмы определения суммы и произведения элементов массива.

  9. Приведите алгоритмы нахождение максимального и минимального элементов в массиве.

Соседние файлы в папке Лабы по программированию