Лабораторная 7
.docxМИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ЖЕЛЕЗНОДОРОЖНОГО ТРАНСПОРТА
Государственное бюджетное образовательное учреждение
высшего образования
«ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ ИМПЕРАТОРА АЛЕКСАНДРА I»
Кафедра «ИНФОРМАТИКА И ИНФОРМАЦИОННАЯ БЕЗОПАСНОСТЬ»
Дисциплина «Информатика»
ОТЧЕТ
о лабораторной работе №7
на тему:
«ПРОИЗВОДНАЯ АЛГОРИТМИЧЕСКАЯ СТРУКТУРА СИНТЕЗ»
Вариант 29
Выполнил студент |
|
Факультета УПЛ-702 |
|
Шептунов Н.А. |
______________ |
|
подпись, дата |
|
|
Санкт-Петербург 2018
Задача 1.
Постановка задачи. Определить, в каком из двух векторов А и В размерности m больше положительных элементов. Проанализировать выполнение программы на примере А= {1; 2; -1; -4; -3; 4; 9; -10:} В= {-1; 2; 4; 0; 1; 8; -9; 7}
Входные данные: m – размерность массивов целого типа {A} – массив вещественного типа {B} – массив вещественного типа
Выходные данные: {A} – массив вещественного типа {B} – массив вещественного типа pola – переменная целого типа polb – переменная целого типа
Математическая модель задачи. pola = 0, polb = 0 pola = pola + 1, если ai ≥ 0 polb = polb + 1, если bi ≥ 0 для всех i Печать "А>B", если pola > polb Печать "А<В", иначе если pola < polb Печать "A=B", иначе
Разработка алгоритма.
Начало
m,{A} ,{B}
{A},{B}
pola=0, polb=0
i=1
i<=m
pola, polb
pola>polb
A=B
Конец
ai>=0
pola=pola+1
pola<polb
bi>=0
polb=polb+1
i=i+1
A>B
A<B
Код приложения.
Private Sub Command1_Click()
Dim a() As Single, b() As Single, m As Integer, i As Integer, pola As Integer, polb As Integer
m = InputBox("m=")
Print "a="
ReDim a(1 To m)
For i = 1 To m
a(i) = InputBox("a(" & i & ")")
Print a(i);
Next
Print "b="
ReDim b(1 To m)
For i = 1 To m
b(i) = InputBox("b(" & i & ")")
Print b(i);
Next
pola = 0
polb = 0
For i = 1 To m
If a(i) >= 0 Then
pola = polа + 1
End If
If b(i) >= 0 Then
polb = polb + 1
End If
Next
Print "pola=" & pola & " polb=" & polb
If pola > polb Then
Print " B A>B"
ElseIf pola < polb Then
Print " B A < B"
Else
Print " A=B"
End If
End If
Отладка приложения.
Задача 2.
Постановка задачи.
Заполнить вектор С значениями элементов матрицы V размерности m*n. Для отладки программы контрольный пример выбрать самостоятельно.
Входные данные: m – размерность массива целого типа n – размерность массива целого типа {V} – массив вещественного типа
Выходные данные: {V} – массив вещественного типа {С} – массив вещественного типа
Математическая модель задачи.
k = 1 Ck = Vi,j, k = k + 1 для всех i и j
Схема алгоритма.
Начало
m, n,{V}
{V}
k=1
i=1
i<=m
Конец
j=1
j<=n
i=i+1
Ck=Vi,j
{C}
k=k+1
j=j+1
Код приложения.
Private Sub Command1_Click()
Dim C() As Single, V() As Single, m As Integer, n As Integer, i As Integer, j As Integer, k As Integer
m = InputBox("m=")
n = InputBox("n=")
Print "V"
ReDim V(1 To m, 1 To n)
For i = 1 To m
For j = 1 To n
V(i, j) = InputBox("V(" & i & " , " & j & ")")
Print V(i, j);
Next
Next
Print "C"
k = 1
ReDim C(1 To m * n)
For i = 1 To m
For j = 1 To n
C(k) = V(i, j)
Print C(k);
k = k + 1
Next
Next
End Sub
Отладка приложения.