Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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. Получить задание в соответствии с номером своего варианта.
  2. Составить схему алгоритма решения задачи.
  3. Написать код программы на языке Паскаль в среде Borland Pascal for Windows.
  4. Осуществить компиляцию, и отладку программы. Провести структурное тестирование программы (тестирование как белого ящика): составить тестовые наборы для тестирования

- в нормальных условиях,

- при граничных условиях,

- при некорректных входных данных,

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

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

  1. Получить результат.
  2. Оформить отчет по лабораторной работе.

 

Пример оформления работы

Задание 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; Просмотров: 896; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.428 с.)
Главная | Случайная страница | Обратная связь