МИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА
Государственное бюджетное образовательное учреждение высшего образования
«ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ПУТЕЙ СООБЩЕНИЯ ИМПЕРАТОРА АЛЕКСАНДРА I»
Кафедра «ИНФОРМАТИКА И ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ»
Дисциплина: «Информатика»
ОТЧЕТ
по лабораторной работе
«ПРОИЗВОДНАЯ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА ПОИСК»
Выполнил студент Егоров Я. Д.
Факультет ПГС
Группа УЗС-810
Санкт-Петербург 2019
Задача 1
1. Постановка задачи
Найти и напечатать минимальные элементы двух векторов C и D разной размерности. Определить их сумму и разность
Входные данные:
m - размерность вектора c, целое число
n - размерность вектора D, целое число;
С - вектор, массив вещественных чисел; D - вектор, массив вещественных чисел.
Выходные данные:
Cmin - минимальный элемент матрицы C, вещественное число;
Dmin - минимальный элемент матрицы D, вещественное число;
Sum - сумма минимальных элементов, вещественное число;
Raz - разность минимальных элементов, вещественное число.
2.Математическая модель
sum=Cmin+Dmin raz=Cmin-Dmin
1. Разработка алгоритма
2. Разработка визуальной части проекта
Рис. 1
вектор матрица алгоритм
Рис. 2
5.Код приложения
Private Sub Command1_Click()
Dim n As Integer, i As Integer, sum As Integer, raz As Integer
Dim C() As Single, D() As Single, M As Single, Cmin As Integer, Dmin As Integer
n = InputBox("введите размерность N=")
M = InputBox("введите размерность вектора D=")
ReDim C(1 To n)
For i = 1 To n
C(i) = InputBox("C(" & i & ")=")
Print "C(" & i & ") = " & C(i)
Next
ReDim D(1 To M)
For i = 1 To M
D(i) = InputBox("D(" & i & ")=")
Print "D(" & i & ") = " & D(i)
Next
Dmin = D(1)
Cmin = C(1)
For i = 2 To n
If C(i) < Cmin Then
Cmin = C(i)
End If
Next
For i = 2 To M
If D(i) < Dmin Then
Dmin = D(i)
End If
Next
sum = Cmin + Dmin
raz = Cmin - Dmin
Print "мин C = " & Cmin
Print "мин D = " & Dmin
Print "сумма минимальных элементов вектора = " & sum
Print "разность минимальных элементов вектора = " & raz
End Sub
6.Отладка программы
Рис. 3
Задание 2
1.Постановка задачи
Найти наибольший элемент матрицы А размерности mЧn, не превышающий значение ключа поиска F.
Входные данные:
{А} -матрица, массив вещественных чисел,
F- ключ поиска, вещественное число,
m - размерность матрицы, целое число,
n - размерность матрицы, целое число.
Выходные данные:
{А} -матрица, массив вещественных чисел,
Amax -наибольшее не превышающее F, вещественное число.
2. Математическая модель
Flag=false
Для всех i=1,2…m и j= 1, 2, 3, … n если A(i,j)>0 и A(i,j)<F, то Flag=true, присвоить Amax значение A(i,j) и продолжить процесс поиска.
Если по окончании поиска Flag=false вывести сообщение «Искомый элемент не найден»
3. Разработка алгоритма
Рис. 4
4. Разработка визуальной части проекта
Рис. 5
5. Код приложения
Private Sub Command1_Click()
Dim n As Integer
Dim M As Integer
Dim F As Integer
Dim A() As Single
Dim Amax As Single
Dim flag As Boolean
n = InputBox("введите размерность массива n")
M = InputBox("введите размерность массива M")
F = InputBox("введите ключ поиска")
flag = False
ReDim A(1 To M, 1 To n)
For i = 1 To M
For j = 1 To n
A(i, j) = Rnd(10) * 100
Print A(i, j),
Next
Next
Amax = 0
For i = 1 To M
For j = 1 To n
If Amax < A(i, j) And A(i, j) <= F Then
Amax = A(i, j)
flag = True
End If
Next
Next
A(M, n) = Amax
If flag = True Then
MsgBox ("Amax=" & Amax)
Else
Print ("искомый элемент не найден")
End If
End Sub
6. Отладка приложения
при F=50 и F=1
Рис. 6