Синтез алгоритмических структур / Синтез (2)
.docxЗадание №1
1. Постановка задачи.
Определить, в каком из одномерных массивов А, В и С одинаковой размерности n наибольшее количество положительных элементов.
Для отладки программы значения n, А, В и С выбрать самостоятельно.
Входные данные:
n – размерность массивов, переменная целого типа,
A – массив вещественного типа,
B – массив вещественного типа,
C – массив вещественного типа.
Выходные данные:
An – количество положительных переменных в массиве A, переменная целого типа,
Bn – количество положительных переменных в массиве B, переменная целого типа.
Cn – количество положительных переменных в массиве С, переменная целого типа.
2. Математическая модель задачи
3. Разработка алгоритма
4. Разработка визуальной части проекта
На форме располагаем только командную кнопку Command1. В свойстве Caption запишем «Решить задачу».
5. Код приложения
Private Sub Command1_Click()
Dim A() As Single, An As Integer, B() As Single, Bn As Integer, C() As Single, Cn As Integer, n As Integer, i As Integer
n = InputBox("n=")
ReDim A(1 To n), B(1 To n), C(1 To n)
Print "{A}=";
For i = 1 To n
A(i) = InputBox("A(" & i & ")=")
Print A(i);
Next
Print "{B}=";
For i = 1 To n
B(i) = InputBox("B(" & i & ")=")
Print B(i);
Next
Print "{C}=";
For i = 1 To n
C(i) = InputBox("C(" & i & ")=")
Print C(i);
Next
For i = 1 To n
If A(i) > 0 Then
An = An + 1
End If
If B(i) > 0 Then
Bn = Bn + 1
End If
If C(i) > 0 Then
Cn = Cn + 1
End If
Next
If (An > Bn) And (An > Cn) Then
Print "{A} имеет наибольшее количество элементов: " & An
ElseIf (Bn > An) And (Bn > Cn) Then
Print "{B} имеет наибольшее количество элементов: " & Bn
ElseIf (Cn > An) And (Cn > Bn) Then
Print "{C} имеет наибольшее количество элементов: " & Cn
ElseIf (An = Bn) And (An > Cn) Then
Print "{A} и {B} имеют наибольшее количество элементов: " & An
ElseIf (Bn = Cn) And (Cn > An) Then
Print "{B} и {C} имеют наибольшее количество элементов: " & Bn
ElseIf (An = Cn) And (An > Bn) Then
Print "{A} и {C} имеют наибольшее количество элементов: " & An
Else
Print "Массивы имеют равное количество элементов: " & An
End If
End Sub
6. Отладка приложения
**
Ручной счет:
Наибольшее количество положительных элементов содержится в массиве B
Задание №2
1. Постановка задачи
В матрице А размерности m×k определить номер столбца с наименьшей суммой элементов. Для отладки программы матрицу выбрать самостоятельно.
Входные данные:
m – количество строк матрицы, переменная целого типа,
n – количество столбцов матрицы, переменная целого типа,
A() – массив вещественных чисел.
Выходные данные:
jm – номер столбца с наименьшей суммой, переменная целого типа.
2. Математическая модель задачи
3. Разработка алгоритма
4. Разработка визуальной части проекта
На форме располагаем только командную кнопку Command1. В свойстве Caption запишем «Решить задачу».
5. Код приложения
Private Sub Command1_Click()
Dim A() As Single, m As Integer, k As Integer, S As Single, Sm As Single, i As Integer, j As Integer, jm As Integer
m = InputBox("m=")
k = InputBox("k=")
ReDim A(1 To m, 1 To k)
For i = 1 To m
For j = 1 To k
A(i, j) = InputBox("A(" & i & ", " & j & ")=")
Print A(i, j),
Next
Next
jm = 1
For i = 1 To m
Sm = Sm + A(i, 1)
Next
For j = 2 To k
For i = 1 To m
S = S + A(i, j)
Next
If S < Sm Then
jm = j
Sm = S
End If
Next
Print "Наибольшую сумму имеет столбец " & jm
End Sub
6. Отладка приложения
**
Ручной счет:
Наименьшая сумма у 1 столбца