Содержание
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Постановка задания
Задание для всех вариантов звучит так (или, возможно, немного изменено, так как могут быть разные издания учебного пособия):
Составить программу заданной обработки массива целых чисел. В процессе обработки использовать перестановки элементов внутри массива, не создавая новых массивов.
Заполнение исходного массива организовать с помощью генератора случайных чисел, если иное не предусмотрено вариантом задания. Исходный и обработанных массив выводить на экран.
Варианты заданий
№ | Постановка задачи |
1 | Скорректировать массив $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$, переписав в начало массива группу, содержащую наибольшее число подряд идущих положительных элементов. Элементы массива вводить с клавиатуры. |
2 | В массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ все элементы, равные нулю, поставить сразу после максимального элемента данного массива. Элементы массива вводить с клавиатуры. |
3 | В массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ все отрицательные элементы отправить в «хвост» массива. |
4 | В массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ удалить последнюю группу положительных элементов. Группой называется подряд идущие элементы одного знака, число которых больше или равно $2$. |
5 | В массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ все положительные элементы, стоящие перед минимальным положительным элементом, переслать в «хвост» массива. |
6 | В массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ удалить все подряд идущие отрицательные элементы, идущие вслед за минимальным элементом массива. |
7 | В массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ удалить все отрицательные элементы, стоящие перед минимальным элементом массива. |
8 | В массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ удалить все элементы, меньшие, чем элемент массива, расположенные слева от максимального. |
9 | В массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ вставить новый элемент со значением Р вслед за наибольшим из отрицательных элементов этого массива. |
10 | В массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ удалить все элементы, стоящие между минимальным положительным и максимальным отрицательным элементами. |
11 | В массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ удалить все положительные элементы, имеющие четный порядковый номер, идущие после минимального элемента массива. |
12 | В массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ все положительные элементы, начиная со второго положительного, отправить в «хвост» массива. |
13 | В одномерном массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ группу, содержащую наибольшее число равных элементов, заменить на максимальный элемент этого массива. После корректировки массив должен содержать меньше элементов, чем прежде. Элементы массива вводить с клавиатуры. |
14 | В одномерном массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ группу элементов, содержащую наибольшее число подряд идущих отрицательных элементов, переписать в «хвост» массива. Элементы массива вводить с клавиатуры. |
15 | В одномерном массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ все отрицательные элементы, имеющие нечетный порядковый номер, отправить в «хвост» массива, т.е. поместить на место последних элементов. |
16 | В одномерном массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ все группы элементов, содержащие более $3$-х подряд идущих отрицательных элементов, заменить на максимальный элемент. Элементы массива вводить с клавиатуры. |
17 | В одномерном массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ все положительные элементы, имеющие четный порядковый номер, переписать в начало массива. |
18 | В одномерном массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ группу, содержащую наибольшее число равных элементов, заменить на максимальный элемент этого массива. Элементы массива вводить с клавиатуры. |
19 | В одномерном массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ удалить все отрицательные элементы, расположенные между положительными. |
20 | В одномерном массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ исключить из массива группу с наибольшим числом подряд идущих положительных элементов. Элементы массива вводить с клавиатуры. |
21 | В одномерном массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ отрицательные элементы, имеющие четный порядковый номер, переписать в начало массива. |
22 | В одномерном массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ удалить все равные элементы, оставив только один из данных групп равных. Элементы массива вводить с клавиатуры. |
23 | В одномерном массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ группу из наибольшего числа подряд идущих нулей заменить на максимальный элемент массива. Элементы массива вводить с клавиатуры. |
24 | В одномерном массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ группу, содержащую наибольшее число подряд идущих положительных элементов, переписать в «хвост» массива. |
25 | В одномерном массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ все положительные элементы, расположенные между отрицательными, поставить после минимального элемента массива. |
Лабораторная работа №5 предполагает написание программы на языке Pascal. При заказе работы своего варианта вы получите качественно написанную и хорошо прокомментированную программу.
Образец выполнения (вариант №3)
Условие задания
В массиве $А\ =\ (a_{1},\ a_{2},\ …,\ a_{n})$ все отрицательные элементы отправить в «хвост» массива. |
Реализация задачи на языке Pascal
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | program Lab5_variant3; // заголовок программы // раздел описания констант const N = 10; // общее количество элементов одномерного массива // раздел объявления типов type arr = array[1..N] of integer; // тип - одномерный массив целых чисел // раздел объявления переменных var // одномерный массив целых чисел, состоящий из 10 элементов a: arr; i, j: byte; // счетчики циклов и индексы элементов массива // количество отрицательных элементов, которые уже отправлены в "хвост" массива kmin: byte; tmp: integer; // для временного хранения текущего отрицательного элемента // начало главного блока программы begin // выводим информацию об авторе, №варианта и кратко условие задачи writeln; writeln(' Автор - ?????? ?.?., студент гр.????'); writeln(' Вариант №3'); writeln('В массива А = (a1, a2, ..., an) все отрицательные элементы отправить в "хвост" массива.'); writeln; {$R+} // включение контроля границы индексов write('Исходный массив имеет вид: '); // пробегаем по всем элементам массива for i := 1 to N do begin a[i] := -20 + random(41); // генерируем случ. целое число на отрезке [-20; 20] write(a[i]:5); // выводим только что сгенерированное значение на экран end; writeln; // на данный момент еще ни одного отрицательного элементв в "хвост" не переставлено kmin := 0; // сканируем элементы массива справа налево, т е от конца в начало for i := N downto 1 do begin // если текущий элемент массива отрицательный, то if(a[i] < 0) then begin tmp := a[i]; // запоминаем текущий отрицательный элемент // происходит сдвиг элементов, стоящих справа от текущего отрицательного элемента на 1 позицию влево, но при этом "хвоствоые" отр.элементы НЕ двигаются for j := (i + 1) to (N - kmin) do a[j - 1] := a[j]; // в нужную позицию "хвостовой" части вставляется текущий отр.элемент a[N - kmin] := tmp; // общее количество уже обработанных отр.элементов увеличиваем на 1 kmin := kmin + 1; end; end; // печатаем на экран обработанный по алгоритму массив write('Обработанный массив имеет вид: '); for i := 1 to N do write(a[i]:5); writeln; readln; // задержка программы, чтобы можно было просмотреть результат {$R-} // выключения контроля границ индексов end. // конец главного блока программы |
Результаты работы программы
ВНИМАНИЕ | Для получения программы своего варианта пишите на наш электронный адрес proglabs@mail.ru |
Добавить комментарий