
- •Содержание
- •Пример оформления работы
- •Задание 2.
- •If (c In ['0'..'9']) Then {если очередной элемент - цифра}
- •Val(s,k,error); {преобразуем строку в число}
- •Задания на лабораторную работу №5
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Задание 2.
- •Задания на лабораторную работу №6
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Вариант 17
- •Вариант 18
- •Вариант 19
- •Вариант 20
- •Задание 2.
- •Задания на лабораторную работу №7
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 14
- •Вариант 15
- •Задание 2.
- •Задания на лабораторную работу №8
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Задание 2.
- •Задания на лабораторную работу №9
Вариант 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
Подпрограммы
Тема: Создание программ, использующих пользовательские подпрограммы-функции (процедуры).
Цель работы: Освоить создание и работу с подпрограммами-функциями и процедурами.
Задание на лабораторную работу
-
Получить задание в соответствии с номером своего варианта.
-
Составить схему алгоритма решения задачи.
-
Написать код программы на языке Паскаль в среде Borland Pascal for Windows.
-
Осуществить компиляцию, отладку и тестирование программы.
-
Получить результат.
-
Оформить отчет по лабораторной работе.
Пример оформления работы
Задание 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. Код программы:
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[nn,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.
4. Компиляция, отладка, тестирование и получение результата: