Лаболаторная работа №8
.docФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА
Федеральное государственное бюджетное образовательное учреждение высшего образования
«Петербургский государственный университет путей сообщения
Императора Александра I»
(ФГБОУ ВО ПГУПС)
Кафедра «Информационные и вычислительные системы»
Дисциплина «Информатика»
ОТЧЕТ
о лабораторной работе №8 на тему:
«Поиск»
Вариант 11
.
Выполнил студент
факультета ПГС
группы УЗС-309 Павлов Д.Е.
Проверил(а):
Санкт-Петербург
2024
Задание №1
1. Постановка задачи:
Определить произведение и количество элементов заданного вектора С, значения которых не превышают величины X. Вычислить среднее геометрическое.
Для отладки программы значения Х и значения элементов вектора С выбрать самостоятельно.
1.2 Входные данные:
n – количество элементов вектора, целого типа
{С} – вектор, вещественного типа
Х – переменная, вещественного типа
1.3 Выходные данные:
{С} – вектор, вещественного типа
p – произведение, вещественного типа
k – количество, целого типа
srg – среднее геометрическое, вещественного типа
2. Математическая модель:
srg = 0, p = 1, k = 0
i=1…n
,
k = k + 1, если
Сi ≤ X
для всех i
Печать "нет <=X", если k = 0
,
иначе
3. Схема алгоритма:
4. Код программы:
Private Sub CommandButton1_Click()
Dim i As Integer, C() As Single, n As Integer, X As Single, k As Integer, p As Single, srg As Single
n = InputBox("n")
X = InputBox("X")
Debug.Print "X=" & X
Debug.Print "C"
ReDim C(1 To n)
For i = 1 To n
C(i) = InputBox("C(" & i & ")")
Debug.Print C(i);
Next
srg = 0
p = 1
k = 0
For i = 1 To n
If C(i) <= X Then
p = p * C(i)
k = k + 1
End If
Next
Debug.Print
If k = 0 Then
Debug.Print "нет <=X"
Else
srg = (Abs(p)) ^ (1 / k)
Debug.Print "P=" & p & " k=" & k & " srg=" & Format(srg, "0.00")
End If
End Sub
5. Отладка программы:
Задание №2
1. Постановка задачи:
Заполнить вектор S размерности k значениями сумм элементов соответствующих строк матрицы Р размерности kхn. Матрицу и вектор напечатать.
Для отладки программы принять k=3, n=4, матрицу выбрать самостоятельно.
1.2 Входные данные:
k - количество строк матрицы, целого типа
n - количество столбцов матрицы, целого типа
{P} – матрица, вещественного типа
1.3 Выходные данные:
{P} – матрица, вещественного типа
{S} – вектор, вещественного типа
2. Математическая модель:
i=1…k
sum=0
j=1…n
для всех j
Si = sum
для всех i
3. Схема алгоритма:
4. Код программы:
Private Sub CommandButton1_Click()
Dim i As Integer, j As Integer, sum As Single, P() As Single, S() As Single, k As Integer, n As Integer
k = InputBox("k")
n = InputBox("n")
Debug.Print "P"
ReDim P(1 To k, 1 To n)
For i = 1 To k
For j = 1 To n
P(i, j) = InputBox("P(" & i & "," & j & ")")
Debug.Print P(i, j);
Next
Debug.Print
Next
Debug.Print
Debug.Print "S"
ReDim S(1 To k)
For i = 1 To k
sum = 0
For j = 1 To n
sum = sum + P(i, j)
Next
S(i) = sum
Debug.Print S(i);
Next
End Sub
5. Отладка программы:
