Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаболаторная работа №8

.doc
Скачиваний:
0
Добавлен:
20.05.2026
Размер:
59.9 Кб
Скачать

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Петербургский государственный университет путей сообщения

Императора Александра 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. Отладка программы: