Лабораторная работа VBA Excel. VISUAL BASIC 18 вариант ПР7. Министерство транспорта российской федерации федеральное агентство железнодорожного транспорта
Скачать 498.75 Kb.
|
МИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА Государственное бюджетное образовательное учреждение высшего образования «ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ ИМПЕРАТОРА АЛЕКСАНДРА I» Кафедра «ИНФОРМАЦИОННЫЕ И ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ» Дисциплина «Информатика» О Т Ч Е Т о лабораторной работе № 6 ПРОИЗВОДНАЯ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА «ПОИСК» Вариант 18 Выполнил студент Иванов И. И. Факультет XXX Группа XXX-000 Санкт-Петербург 2021 Задание 1 1 Постановка задачи Определить значение максимального элемента среди значений элементов вектора W размерности q, находящихся в диапазоне [a; b]. Входные данные: q – размерность вектора, целое число; W – вектор, массив вещественных чисел; a, b – начальное и конечное значения диапазона, вещественные числа. Выходные данные: Мax – максимальный элемент, вещественное число. 2 Математическая модель Max = a; k = 0; для всех i = 1, 2, … q, если Wi >=Max и Wi <= b , то Max = Wi, k = i Если k = 0, то вывести «Элементов в указанном диапазоне нет», иначе вывести Max 3 Разработка алгоритма 4 Разработка визуальной части проекта На форме располагаем только командную кнопку Command1. В свойстве Caption кнопки записываем «Найти максимальный элемент». 5 Код приложения Private Sub Command1_Click() Dim q As Integer, i As Integer Dim W() As Single, Max As Single q = InputBox("Введите размерность массива q =") ReDim W(1 To q) For i = 1 To q W(i) = InputBox("W(" & i & ")=") Print "W(" & i & ") = " & W(i) Next a = InputBox("Введите нижнюю границу диапазона a =") Print "a = " & a b = InputBox("Введите верхнюю границу диапазона b =") Print "b = " & b Max = a k = 0 For i = 1 To q If (W(i) > =Max) and (Wi<=b) Then Max = W(i) k = i End If Next If k=0 Then Print "Элементов в указанном диапазоне нет" Else: Print "Max = " & Max End If End Sub 6 Отладка программы Вводим несколько векторов с различными параметрами поиска максимального элемента. . Ручной счет: для вектора {6,-3,0,2} в диапазоне [-5;-1] максимальный элемент -3; в диапазоне [0;6] максимальный элемент равен 6; в диапазоне [-5;-3] максимальный элемент -3; в диапазоне [3;4] элементов нет. Задание 2 1 Постановка задачи Напечатать индексы первых элементов строк матрицы P, имеющих нулевые значения. Входные данные: {P} – произвольная матрица, массив вещественных чисел; m , n – размерность матрицы, целые числа. Выходные данные: i – индекс строки, целое число; j – индекс столбца, целое число; сообщение «Нулевых элементов в матрице нет». 2 Математическая модель Flag=false Для всех i = 1, 2…m для всех j = 1, 2, …n если Pij = 0, то Flag=true; напечатать i и закончить процесс поиска. Если по окончании поиска Flag=false, то вывести сообщение «Нулевых элементов в строке нет» 3 Разработка алгоритма 5 Код приложения Private Sub Command1_Click() Dim m As Integer, n As Integer, i As Integer, j As Integer Dim P() As Single, flag As Boolean m = InputBox ("Введите количество строк матрицы ") n = InputBox ("Введите количество столбцов матрицы ") ReDim P(1 To m, 1 To n) For i = 1 To m For j = 1 To n P(i, j) = InputBox("P(" & i & "," & j & ")=") Print P(i, j); Next Next flag = False For i = 1 To m For j = 1 To n If P(i, j) = 0 Then Print " Индексы первого нулевого элемента " & i &"-й строки " &i &j flag = True Exit For End If Next Next If flag = False Then Print "Нулевых элементов в матрице нет" End If End Sub 6 Отладка приложения Вводим матрицу размерности m = 3, n = 4 для контрольного примера. Вводим матрицу, в которой нет нулевых элементов: Программа выдает правильные результаты. |