Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР10-С++-26-апреля-2012.doc
Скачиваний:
24
Добавлен:
15.09.2019
Размер:
2.35 Mб
Скачать

2.5.1.2. Пример для варианта 30

Отсортировать массив по невозрастанию методом обменов рядом стоящих элементов с минимально необходимым (переменным) числом просмотров, направленных слева направо.

2.5.1.3. Программа

/*Сортировка методом попарного сравнения */

#include <stdio.h>

#include <conio.h>

#include <math.h>

#include <iostream.h>

#define m 9

int main()

{

int k, i,x;

float a[m],b, c;

// Ввод массива a

for (k=0; k<=m; k++)

{

cout <<"Введите " << k << "-ый элемент массива a: ";

cin >> a[k];

}

// Сортировка массива a по возрастанию

do

{

i = 0;x =0;

for (k=1; k<=m; k++)

{b = a[i]; c = a[k];

if (c < b) {a[i] = c; a[k] = b; x = x + 1;}

i= i + 1;

}

}

while (x>0);

// Вывод отсортированного массива a

for (k=0; k<=m; k++)

{

cout <<"k = " << k << " a[k] = " << a[k] << endl;

}

cout << "Нажмите любую клавишу..." ;

getch();

return 0;

}

2.5.1.4. Тестирование

2.5.2. Задание 8. Комбинированные задания

2.5.2.1. Условие задания

Объявить массив целых чисел и заполнить его случайными значениями. Размер массива и диапазон значений его элементов заданы в Вашем варианте индивидуального задания. В индивидуальных заданиях указано также, какую обработку массива следует произвести.

     Для всех вариантов задания следует иметь в виду следующее:

– 0 считается положительным числом, если в задании не оговорен какой-то другой его статус;

– когда речь идет о какой-то последовательности чисел, имеется в виду последовательность с длиной, большей 1;

– в тех случаях, когда задание требует выполнения каких-то вычислений, разрешается выполнять их с той точностью, которую обеспечивают операции целочисленной арифметики.

Варианты заданий

Размерность массива

Диапазон значений

Что нужно сделать

1

50

-100 - 100

Заменить все элементы с отрицательным значением на значение минимального не равного 0 положительного элемента

2

200

-50 - 50

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

3

200

0 - 100

Подсчитать количество участков, которые образуют непрерывные последовательности чисел с неуменьшающимися значениями

4

200

-50 - 50

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

5

100

-100 - 100

Вывести начальные индексы всех непрерывных последовательностей неотрицательных чисел, длина которых больше 5

6

100

-100 - 100

Найти ту непрерывную последовательность положительных чисел, сумма элементов в которой максимальная

7

100

-100 - 100

Разместить все элементы с положительными значениями в левой части массива, элементы с отрицательными значениями - в правой, а нули - между ними

8

100

-100 - 100

Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов

9

200

0 - 100

Найти непрерывный участок из 10 элементов, сумма которых максимальна

10

200

0 - 100

Найти значение 3-го по величине элемента и значения всех элементов массива, которые его превышают, заменить на найденное значение

11

100

-50 - 50

Найти количество пар соседних элементов, которые имеют одинаковые абсолютные значения, но противоположные знаки

12

200

-100 - 100

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

13

200

0 - 100

Найти непрерывный участок из 10 элементов, который имеет наибольшее среднее значение элементов

14

100

-50 - 50

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

15

200

-100 - 100

Во всех последовательностях положительных чисел ограничить снизу значения тех элементов, значения которых меньше среднего для этой последовательности

16

100

-50 - 50

Заменить все элементы с положительными значениями абсолютным значением отрицательного элемента с максимальным абсолютным значением

17

200

-50 - 50

Вывести начальные индексы всех непрерывных последовательностей чисел с неувеличивающимися значениями

18

100

-50 - 50

Вывести начальные индексы всех непрерывных знакопеременных последовательностей чисел

19

200

-50 - 50

Подсчитать количество всех, непрерывных последовательностей положительных чисел, длина которых больше 7

20

200

-50 - 50

Найти из непрерывных последовательностей отрицательных чисел ту, которая имеет наибольшее абсолютное значение среднего арифметического ее элементов

21

100

-100 - 100

Разместить все элементы с нулевыми значениями в левой части массива, элементы с отрицательными значениями - за ними, а за ними - элементы с положительными значениями

22

100

-100 - 100

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

23

100

-100 - 100

Заменить каждый элемент на среднее арифметическое его и его соседей слева и справа.

24

200

-50 - 50

Найти непрерывные участки, на которых сумма элементов равна 0

25

200

-50 - 50

Для каждого положительного элемента определить, есть ли в массиве отрицательный элемент с противоположным значением; если да, заменить эти элементы на 0

26

200

-50 - 50

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

27

200

-50 - 50

Определить среднюю длину непрерывных участков положительных чисел

28

100

-50 - 50

Поменять местами 1-й положительный элемент с последним положительным элементом, 2-й - предпоследним и т.д.

29

100

-50 - 50

Во всех последовательностях отрицательных чисел поменять местами эле

30

100

-50 - 50

Во всех последовательностях отрицательных чисел ограничить значения тех элементов, абсолютное значение которых превышает абсолютное среднее для этой последовательности