Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
String input, text; // строк класса String
//консольный вывод System.out.println(" Лабораторная работа №6-2" ); System.out.println(" Вариант №0" ); System.out.println(" ПО-11-1" ); System.out.println(" Пупкин Василий" ); System.out.println(); // вызов диалогового окна ввода исходных данных input=JOptionPane.showInputDialog(" Нижняя граница диапазона massiv_min: " ); // преобразование из строкового значения в целое massiv_min=Integer.parseInt(input); input=JOptionPane.showInputDialog(" Верхняя граница диапазона massiv_max: " ); massiv_max=Integer.parseInt(input); input=JOptionPane.showInputDialog(" Размер квадратного массива n: " ); n=Integer.parseInt(input); // формирование строки вывода text=" Значения входных переменных: \nmassiv_min=" + massiv_min + " \nmassiv_max=" + massiv_max + " \nn=" + n; // вызов диалогового окна эхо-печати JOptionPane.showMessageDialog(null, text); //консольный вывод System.out.printf(" massiv_min=%d\nmassiv_max=%d\nn=%d\n", massiv_min, massiv_max, n); System.out.println(); // создание квадратного массива nXn элементов int massiv[][]=new int[n][n]; //консольный вывод System.out.println(" Исходный массив: " ); // создание объекта Rand класса Random - генератора случ. чисел // инициализация генератора случайных чисел, // привязка его к системному времени Random Rand=new Random(); // формирование массива случайным образом for (int i=0; i< n; i++) { // получение случайного числа в диапазоне // от massiv_min до massiv_max for (int j=0; j< n; j++) { massiv[i][j]=Rand.nextInt(massiv_max-massiv_min+1) + massiv_min; //консольный вывод элемента массива System.out.printf(" %5d", massiv[i][j]); } //консольный вывод System.out.println(); } //консольный вывод System.out.println(); // вычисления по заданному алгоритму for (int i=0; i< n; i++) //меняем местами соответствующие элементы { //главной и побочной диагоналей temp = massiv[i][i]; massiv[i][i] = massiv[i][n-i-1]; massiv[i][n-i-1] = temp; } //консольный вывод массива System.out.println(" Выходной массив: " ); for (int i=0; i< n; i++) { for (int j=0; j< n; j++) System.out.printf(" %5d", massiv[i][j]); System.out.println(); } System.out.println(); } } 3.4. На языке PHP:
<! DOCTYPE html> < html> < head> < meta http-equiv=" Content-Type" content=" text/html; charset=UTF-8" > < title> Лабораторная работа №6_2 < /title> < /head> < body BgColor=" silver" text=" blue" > < H2> Лабораторная работа №6_2< /h2> < H3> Массивы< /h3> Вариант №0 < br> ПО-11-1 < br> Пупкин Василий < br> < br> < Form name=" LabRab_6_2" action=" " method=" POST" > Нижняя граница диапазона massiv_min: < br> < input type=" text" name=" massiv_min" size=" 5" > < br> Верхняя граница диапазона massiv_max: < br> < input type=" text" name=" massiv_max" size=" 5" > < br> Размер вектора n: < br> < input type=" text" name=" n" size=" 5" > < br> < input type=" submit" value=" Вычислить" > < br> < /form> <? php // получение значения переменной из формы $massiv_min=$_POST['massiv_min']; $massiv_max=$_POST['massiv_max']; $n=$_POST['n']; if (($n! ='') & & ($massiv_min! ='') & & ($massiv_max! ='')) { //эхо-печать echo " < br> n=$n"; echo " < br> massiv_min=$massiv_min"; echo " < br> massiv_max=$massiv_max< br> "; // инициализация генератора случайных чисел mt_srand(time()); // заполнение массива целыми случайными числами // от vector_min до vector_max for ($i=0; $i< $n; $i++) for ($j=0; $j< $n; $j++) $massiv[$i][$j]=mt_rand($massiv_min, $massiv_max); // вывод исходного массива на экран echo '< br> Исходный массив: < br> '; for ($i=0; $i< $n; $i++) { for ($j=0; $j< $n; $j++) printf(" %'.5d", $massiv[$i][$j]); echo '< br> '; } // меняем местами главную и побочную диагонали for ($i=0; $i< $n; $i++) { $temp = $massiv[$i][$i]; $massiv[$i][$i] = $massiv[$i][$n-$i-1]; $massiv[$i][$n-$i-1] = $temp; } // вывод выходного массива на экран echo '< br> Выходной массив: < br> '; for ($i=0; $i< $n; $i++) { for ($j=0; $j< $n; $j++) printf(" %'.5d", $massiv[$i][$j]); echo '< br> '; } echo '< br> '; } ? > < /body> < /html> 4. Компиляция, отладка, тестирование и получение результата:
Задания на лабораторную работу №6 Размеры исходных векторов и массивов задавать именованными константами. Для задания элементов исходных векторов и массивов использовать генератор случайных чисел с заданным с консоли диапазоном. Вывести на экран исходные и выходные векторы и массивы. Никакие другие массивы (рабочие) кроме исходных и выходных, не использовать. Вариант 1 Задание 1 В целочисленном векторе vectorn найти минимальный и максимальный элементы. Предусмотреть случай, когда таких элементов нет (все элементы вектора равны между собой). Элементы вектора, расположенные между ними, отсортировать по возрастанию. Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 -2 1 3 -5 5 2 0 10 1 Выходные данные: min=-5 n_min=5 max=10 n_max=9 Выходной вектор: 7 -2 1 3 -5 0 2 5 10 1
Задание 2 Вывести на экран построчно элементы всех слоев целочисленного прямоугольного массива matrixnm , начиная с внешнего слоя. Вывод начинать с левого верхнего элемента слоя.
Входные данные для n=3, m=5: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 Выходные данные: 7 -2 -11 3 -5 1 -18 8 -12 9 -15 5 2 0 10 Вариант 2 Задание 1 В целочисленном векторе vectorn найти минимальный и максимальный элементы. Предусмотреть случай, когда таких элементов нет (все элементы вектора равны между собой). Перевернуть элементы вектора, расположенные между ними (выполнить “поплавок”). Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 -5 1 3 -2 5 2 0 10 1 Выходные данные: min=-5 n_min=2 max=10 n_max=9 Выходной вектор: 7 -5 0 2 5 -2 3 1 10 1
Задание 2 В целочисленном массиве matrixnn поменять местами (отразить зеркально) соответствующие элементы, расположенные выше главной и побочной диагоналей и ниже их. Элементы диагоналей не трогать.
Входные данные для n=5: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 -1 -17 2 4 -19 Выходной массив: 7 -17 2 4 -5 5 2 9 10 1 -15 9 -12 8 -18 0 -10 0 -13 4 -1 -2 -11 3 -19 Вариант 3 Задание 1 В целочисленном векторе vectorn найти его вторые по значению минимальный и максимальный элементы и поменять их местами. Предусмотреть случай, когда таких элементов нет.
Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 -5 1 3 -2 5 2 0 10 1 Выходные данные: min_2=-2 n_min_2=5 max_2=7 n_max_2=1 Выходной вектор: -2 -5 1 3 7 5 2 0 10 1
Задание 2 В целочисленном массиве matrixnn поменять местами (отразить зеркально) соответствующие элементы, расположенные левее главной и побочной диагоналей и правее них. Элементы диагоналей не трогать.
Входные данные для n=5: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 -1 -17 2 4 -19 Выходной массив: 7 -2 -11 3 -5 1 2 0 10 5 -18 8 -12 9 -15 4 -10 9 -13 0 -1 -17 2 4 -19 Вариант 4 Задание 1 В целочисленном векторе vectorn найти его вторые по значению минимальный и максимальный элементы. Предусмотреть случай, когда таких элементов нет. Элементы вектора, расположенные между ними, отсортировать по возрастанию.
Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 3 1 -5 -2 5 2 0 10 1 Выходные данные: min_2=-2 n_min_2=5 max_2=7 n_max_2=1 Выходной вектор: 7 -5 1 3 -2 5 2 0 10 1
Задание 2 Целочисленный массив matrixnn повернуть на 90 градусов по часовой стрелке.
Входные данные для n=5: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 -1 -17 2 4 -19 Выходной массив: -1 0 -5 5 7 -17 -10 9 2 -2 2 9 -12 0 -11 4 -13 8 10 3 -19 4 -18 1 -5
Вариант 5 Задание 1 В целочисленном векторе vectorn найти его вторые по значению минимальный и максимальный элементы. Предусмотреть случай, когда таких элементов нет. Перевернуть элементы вектора, расположенные между ними (выполнить “поплавок”).
Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 3 1 -5 -2 5 2 0 10 1 Выходные данные: min_2=-2 n_min_2=5 max_2=7 n_max_2=1 Выходной вектор: 7 -5 1 3 -2 5 2 0 10 1 Задание 2 Заданный k -ый слой элементов целочисленного массива matrixnn повернуть на 90 градусов по часовой стрелке. Номер слоя k задать с консоли.
Входные данные для n=5, k=2: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 -1 -17 2 4 -19 Выходной массив: 7 -2 -11 3 -5 5 -10 9 2 1 -15 9 -12 0 -18 0 -13 8 10 4 -1 -17 2 4 -19 Вариант 6 Задание 1 В целочисленном векторе vectorn найти минимальное положительное и максимальное отрицательное числа, не входящие в этот вектор. Предусмотреть случай, когда таких элементов нет.
Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 3 1 -5 -2 5 2 0 8 1 Выходные данные: min_pol_not=4 max_otr_not=-1
Задание 2 В заданном k -ом слое элементов целочисленного прямоугольного массива matrixnm сдвинуть все элементы на один шаг вправо. Номер слоя k задать с консоли.
Входные данные для n=4, m=5, k=2: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 Выходной массив: 7 -2 -11 3 -5 5 9 2 0 1 -15 -12 8 10 -18 0 -10 9 -13 4
Вариант 7 Задание 1 В целочисленном векторе vectorn найти первый по порядку отрицательный и последний положительный элементы и поменять их местами. Предусмотреть случай, когда все элементы вектора одного знака.
Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 3 1 -5 -2 5 2 0 10 -1 Выходные данные: first_otr=-5 n_first_otr=4 last_pol=10 n_last_pol=9 Выходной вектор: 7 3 1 10 -2 5 2 0 -5 -1
Задание 2 В заданном k -ом слое элементов целочисленного прямоугольного массива matrixnm сдвинуть все элементы на p шагов по часовой стрелке. Номер слоя k и количество шагов p задать с консоли.
Входные данные для n=4, m=5, k=2, p=2: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 Выходной массив: 7 -2 -11 3 -5 5 -12 9 2 1 -15 8 10 0 -18 0 -10 9 -13 4
Вариант 8 Задание 1 В целочисленном векторе vectorn найти второй по порядку отрицательный и предпоследний положительный элементы и поменять их местами. Предусмотреть случай, когда таких элементов в векторе нет.
Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 3 1 -5 -2 5 2 0 10 9 Выходные данные: second_otr=-2 n_second_otr=5 predp_pol=10 n_predp_pol=9 Выходной вектор: 7 3 1 -5 10 5 2 0 -2 9
Задание 2 В целочисленном массиве matrixnn найти максимальный элемент выше главной диагонали и минимальный – ниже ее. Поменять их местами.
Входные данные для n=5: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 -1 -17 2 4 -19 Выходные данные: max=10 i_max=2 j_max=4 min=-17 i_min=5 j_min=2 Выходной массив: 7 -2 -11 3 -5 5 2 0 -17 1 -15 9 -12 8 -18 0 -10 9 -13 4 -1 10 2 4 -19
Вариант 9 Задание 1 В целочисленном векторе vectorn переместить в начало все положительные элементы в порядке их следования, за ними – все отрицательные элементы в порядке их следования, а затем - нули. Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 0 1 -5 -2 5 2 0 -1 9 Выходной вектор: 7 1 5 2 9 -5 -2 -1 0 0 Задание 2 В целочисленном массиве matrixnn найти максимальный элемент выше побочной диагонали и минимальный – ниже ее. Поменять их местами.
Входные данные для n=5: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 -1 -17 2 4 -19 Выходные данные: max=9 i_max=3 j_max=2 min=-19 i_min=5 j_min=5 Выходной массив: 7 -2 -11 3 -5 5 2 0 -17 1 -15 -19 -12 8 -18 0 -10 9 -13 4 -1 10 2 4 9 Вариант 10 Задание 1 В целочисленном векторе vectorn переместить в начало все нулевые элементы, за ними – все отрицательные элементы в порядке их следования, а за ними – все положительные элементы в порядке их следования. Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 0 1 -5 -2 5 2 0 -1 9 Выходной вектор: 0 0 -5 -2 -1 7 1 5 2 9
Задание 2 Целочисленный массив matrixnn сначала транспонировать, а затем его элементы отразить зеркально относительно побочной диагонали. Вывести на экран исходный массив, транспонированный и выходной.
Входные данные для n=5: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 -1 -17 2 4 -19 Выходные данные: Транспонированный массив: 7 5 -15 0 -1 -2 2 9 -10 -17 -11 0 -12 9 2 3 10 8 -13 4 -5 1 -18 4 -19 Выходной массив: -19 4 2 -17 -1 4 -13 9 -10 0 -18 8 -12 9 -15 1 10 0 2 5 -5 3 -11 -2 7 Вариант 11 Задание 1 В целочисленном векторе vectorn вычислить сумму нечетных элементов с четными индексами и сумму четных элементов с нечетными индексами. Предусмотреть случай, когда таких элементов нет.
Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 0 1 -5 -2 5 2 0 -1 9 Выходные данные: s_nechet=9 s_chet=0 Задание 2 В целочисленном прямоугольном массиве matrixnm найти все элементы, соприкасающиеся углами с его максимальным элементом. Входные данные для n=4, m=5: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 Выходные данные max=10 row_max=2 col_max=4 Найденные элементы: -11 -5 -12 -18
Вариант 12 Задание 1 В целочисленном векторе vectorn определить среднее арифметическое положительных и отдельно среднее арифметическое отрицательных элементов вектора, расположенных между минимальным и максимальным его элементами. Предусмотреть случай, когда таких элементов нет (все элементы вектора равны между собой).
Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 0 1 -5 -2 5 2 0 -1 9 Выходные данные: max=9 n_max=10 min=-5 n_min=4 sr_arifm_otr=-1.50 sr_arifm_pol= 3.50 Задание 2 В целочисленном прямоугольном массиве matrixnm найти наименьший элемент, встречающийся более одного раза. Предусмотреть случай, когда такого элемента нет. Входные данные для n=5, m=6: v_min=-20 v_max=10 Исходный массив: 7 -2 -18 3 -5 8 5 2 0 10 1 -2 -15 9 -12 8 -18 9 0 -10 9 -13 4 -16 -1 -17 10 4 -18 -9 Выходные данные: min=-18 count_min=3 Вариант 13 Задание 1 В целочисленном векторе vectorn определить среднее арифметическое положительных и отдельно среднее арифметическое отрицательных элементов вектора, расположенных между вторыми по значению минимальным и максимальным его элементами. Предусмотреть случай, когда таких элементов нет. Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 0 1 -5 -2 5 2 0 -1 9 Выходные данные: max_2=7 n_max_2=1 min_2=-2 n_min_2=5 sr_arifm_otr=-5.00 sr_arifm_pol= 1.00 Задание 2 В целочисленном прямоугольном массиве matrixnm найти наибольший элемент, встречающийся более одного раза. Предусмотреть случай, когда такого элемента нет.
Входные данные для n=5, m=6: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 8 5 2 0 10 1 -2 -15 9 -12 8 -18 9 0 -10 9 -13 4 -16 -1 -17 10 4 -19 -9 Выходные данные: max=10 n_max=2 Вариант 14 Задание 1 В целочисленном векторе vectorn определить количество положительных, отрицательных и нулевых элементов, расположенных между минимальным и максимальным его элементами. Предусмотреть случай, когда таких элементов нет (все элементы вектора равны между собой).
Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 0 1 -5 -2 5 2 0 -1 9 Выходные данные: min=-5 n_min=4 max=9 n_max=10 count_otr=2 count_pol=2 count_null=1 Задание 2 В целочисленном прямоугольном массиве matrixnm найти все элементы, соприкасающиеся углами с его минимальным элементом.
Входные данные для n=4, m=5: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 Выходные данные min=-18 row_min=3 col_min=5 Найденные элементы: 10 -13
Вариант 15 Задание 1 В целочисленном векторе vectorn определить количество положительных, отрицательных и нулевых элементов, расположенных между вторыми по значению минимальным и максимальным его элементами. Предусмотреть случай, когда таких элементов нет (все элементы вектора равны между собой). Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 0 1 -5 -2 5 2 0 -1 9 Выходные данные: max_2=7 n_max_2=1 min_2=-2 n_min_2=5 count_otr=1 count_pol=1 count_null=1 Задание 2 Переставить строки и столбцы целочисленного прямоугольного массива matrixnm таким образом, чтобы его максимальный элемент находился в левом верхнем углу, а минимальный – в правом нижнем. Предусмотреть вариант, когда максимальный и минимальный элементы находятся в одной строке или в одном столбце. В этом случае выдать сообщение “ Перестановка невозможна ”. Перестановки строк и столбцов вывести по шагам.
Входные данные для n=4, m=5: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 Выходные данные: max= 10 row_max=2 col_max=4 min=-18 row_min=3 col_min=5 Первая перестановка: 10 2 0 5 1 3 -2 -11 7 -5 8 9 -12 -15 -18 -13 -10 9 0 4 Вторая перестановка: 10 2 0 5 1 3 -2 -11 7 -5 -13 -10 9 0 4 8 9 -12 -15 -18
Вариант 16 Задание 1 В целочисленном векторе vectorn найти второй по порядку положительный и предпоследний отрицательный элемент. Предусмотреть случай, когда таких элементов нет. Элементы, расположенные между ними, отсортировать по возрастанию. Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 0 1 -5 -2 5 2 -3 -1 9 Выходные данные: pol_2=1 n_pol_2=3 otr_predp=-3 n_otr_predp=8 Выходной вектор: 7 0 1 -5 -2 2 5 -3 -1 9 Задание 2 В квадратном массиве matrixnn ( n – нечетное) повернуть средний наибольший ромб элементов на 90 градусов по часовой стрелке.
Входные данные для n=5: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 -1 -17 2 4 -19 Выходной массив: 7 -2 -15 3 -5 5 -10 9 2 1 2 9 -12 0 -11 0 -13 8 10 4 -1 -17 -18 4 -19 Вариант 17 Задание 1 В целочисленном векторе vectorn найти второй по порядку четный и предпоследний нечетный элементы. Предусмотреть случай, когда таких элементов нет. Элементы, расположенные между ними, отсортировать по убыванию. Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 0 1 -5 -2 2 5 -3 -1 9 Выходные данные: chet_2=-2 n_chet_2=5 nechet_predp=-1 n_nechet_predp=9 Выходной вектор: 7 0 1 -5 -2 5 2 -3 -1 9 Задание 2 В квадратном массиве matrixnn ( n – нечетное) повернуть средний наибольший ромб элементов на 90 градусов против часовой стрелки.
Входные данные для n=5: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 -1 -17 2 4 -19 Выходные данные Выходной массив: 7 -2 -18 3 -5 5 10 8 -13 1 -11 0 -12 9 2 0 2 9 -10 4 -1 -17 -15 4 -19 Вариант 18 Задание 1 В целочисленном векторе vectorn найти два элемента, наиболее близкие к среднему арифметическому всех элементов массива. Предусмотреть случай, когда таких элементов нет (все элементы вектора равны между собой). Элементы, расположенные между ними, отсортировать по возрастанию. Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 1 -1 -5 -2 2 5 -3 0 9 Выходные данные: sr_arifm=1.30 bliz_1=1 n_bliz_1=2 bliz_2=2 n_bliz_2=6 Выходной вектор: 7 1 -5 -2 -1 2 5 -3 0 9 Задание 2 В квадратном массиве matrixnn ( n – нечетное) повернуть k -ый слой среднего наибольшего ромба элементов на 90 градусов по часовой стрелке. Номер слоя k задать с консоли. Входные данные для n=5, k=1: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 -1 -17 2 4 -19 Выходной массив: 7 -2 -15 3 -5 5 -10 0 2 1 2 9 -12 8 -11 0 -13 9 10 4 -1 -17 -18 4 -19 Вариант 19 Задание 1 В целочисленном векторе vectorn найти второй по порядку нечетный и предпоследний четный элементы. Предусмотреть случай, когда таких элементов нет (все элементы вектора равны между собой). Элементы, расположенные между ними, отсортировать по возрастанию.
Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 0 1 5 -2 2 5 -4 -1 9 Выходные данные: nechet_2=1 n_nechet_2=3 chet_predp=2 n_chet_predp=6 Выходной вектор: 7 0 1 -2 5 2 5 -4 -1 9
Задание 2 В квадратном массиве matrixnn ( n – нечетное) повернуть k -ый слой среднего наибольшего ромба элементов на 90 градусов против часовой стрелки. Номер слоя k задать с консоли.
Входные данные для n=5, k=1: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 -1 -17 2 4 -19 Выходные данные: Выходной массив: 7 -2 -18 3 -5 5 10 0 -13 1 -11 9 -12 8 2 0 2 9 -10 4 -1 -17 -15 4 -19 Вариант 20 Задание 1 В целочисленном векторе vectorn найти второй по порядку отрицательный и предпоследний положительный элемент. Предусмотреть случай, когда таких элементов нет. Элементы, расположенные между ними, отсортировать по убыванию.
Входные данные: n=10 v_min=-5 v_max=10 Исходный вектор: 7 0 1 -5 -2 2 5 -3 1 9 Выходные данные: otr_2=-2 n_otr_2=5 pol_predp=1 n_pol_predp=9 Выходной вектор: 7 0 1 -5 -2 5 2 -3 1 9 Задание 2 В квадратном массиве matrixnn ( n – нечетное) определить минимальный и максимальный элементы в k -ом слое среднего наибольшего ромба элементов. Номер слоя k задать с консоли.
Входные данные для n=5, k=1: v_min=-20 v_max=10 Исходный массив: 7 -2 -11 3 -5 5 2 0 10 1 -15 9 -12 8 -18 0 -10 9 -13 4 -1 -17 2 4 -19 Выходные данные: max=10 row_max=2 col_max=4 min=-18 row_min=3 col_min=5 Лабораторная работа № 7 Подпрограммы Тема: Создание программ, использующих пользовательские подпрограммы-функции (процедуры). Цель работы: Освоить создание и работу с подпрограммами-функциями и процедурами. Освоить методы тестирования программ.
Задание на лабораторную работу
- в нормальных условиях, - при граничных условиях, - при некорректных входных данных, - по критерию покрытия решений – результат проверки каждого условия принимал значение истина или ложь хотя бы один раз, - по критерию покрытия условий – все возможные результаты каждой логической операции в условиях были получены хотя бы по одному разу.
Пример оформления работы Задание 1. 1. Создать функцию, определяющую сумму максимальных элементов главной и побочной диагоналей массива massivnn. Перед началом поиска максимального элемента max_1 главной диагонали массива принимаем за него элемент massiv11. После этого сравниваем остальные элементы главной диагонали massivii (i=2, …, n) с текущим максимумом: если очередной элемент больше текущего максимума max_1, то сейчас он – текущий максимум. Перед началом поиска максимального элемента max_2 побочной диагонали массива принимаем за него элемент massivnn. После этого сравниваем остальные элементы побочной диагонали massivij (i=2, …, n; j=n-i+1) с текущим максимумом: если очередной элемент больше текущего максимума max_2, то сейчас он – текущий максимум.
2. Схема алгоритма решения задачи.
2.1. Головная программа:
2.2. Подпрограмма-функция:
3. Код программы
3.1. На языке Паскаль:
Program Variant_0; Uses WinCrt; Const n = 5; {задание размера массива именованной константой} Type TMass=Array [1..n, 1..n] Of Integer; {описание нового типа} Var i, j: Word; summa, v_min, v_max: Integer; massiv: TMass; Function Summa_max(nn: Integer; AA: TMass): Integer; Var i, max_1, max_2: Integer; Begin max_1: =AA[1, 1]; For i: =2 To nn Do If (AA[i, i]> max_1) Then max_1: =AA[i, i]; max_2: =AA[1, nn]; For i: =2 To nn Do If (AA[i, nn-i+1]> max_2) Then max_2: =AA[i, nn-i+1]; Summa_max: =max_1+max_2; End; {функции Summa_max} Begin {головной программы} Randomize; {запуск генератора случайных чисел} WriteLn('Лабораторная работа №7_1'); WriteLn('Вариант №0'); WriteLn('ИС-11-1'); WriteLn('Пупкин Василий'); WriteLn; WriteLn('Задайте диапазон случайных чисел'); Write('v_min='); ReadLn(v_min); Write('v_max='); ReadLn(v_max); For i: =1 To n Do {заполнение массива случайными числами} For j: =1 To n Do massiv[i, j]: =Random(v_max-v_min + 1) + v_min; WriteLn; WriteLn('Исходный массив: '); For i: =1 To n Do {вывод на экран исходного массива} Begin For j: =1 To n Do Write(massiv[i, j]: 5); WriteLn; End; WriteLn; summa: =Summa_max(n, massiv); WriteLn('Сумма максимальных элементов диагоналей: ', summa); End. Популярное:
|
Последнее изменение этой страницы: 2017-03-11; Просмотров: 946; Нарушение авторского права страницы