1. Опишем циклическое состояние светофора от начала часа 0 ≤ T < 3 ⇒ зеленый 3 ≤ T < 4 ⇒ желтый 4 ≤ T < 6 ⇒ красный 2. Замечаем, что цикл смены состояний светофора составляет 6 секунд, т.е. взяв остаток от деления заданного T на 6, мы сведем задачу к состоянию, описанному в п.1 3. Операция "Взятие остатка от деления вещественного числа" в QBASIC отсутствует, поэтому будем получать некое k - целочисленное частное от деления T на 6, а потом переопределять T = T - 6*k
'Microsoft QBASIC 1.0 DIM T AS DOUBLE INPUT "Введите T", T T = T - 6 * INT(T / 6) SELECT CASE T CASE IS <= 3 PRINT "Зеленый" CASE IS <= 4 PRINT "Желтый" CASE ELSE PRINT "Красный" END SELECT
Sub num1() s = 0 n = CInt(InputBox("N =")) Range(Cells(1, 1), Cells(2 * (n + 2), n + 2)).Clear ReDim A(n - 1) ReDim B(n - 1)
k = 1 Cells(k, 1).Value = "A" Cells(k + 2, 1).Value = "B" k = k + 1
m = -1 For i = LBound(A, 1) To UBound(A, 1) A(i) = Round(Rnd * 10) - 5 Cells(k, 1 + i).Value = A(i) If A(i) = 0 Then m = m + 1 B(m) = i Cells(k + 2, m + 1).Value = B(m) End If Next End Sub
Sub num2() n = 16 ReDim A(n, n), C(n, n), E(n, n) Range(Cells(1, 1), Cells(2 * (n + 2), n + 2)).Clear
k = 1 Cells(k, 1).Value = "Init"
k = k + 1 Cells(k + n + 1, 1).Value = "Result"
For i = 0 To n For j = 0 To n A(i, j) = Round(Rnd * 10) Cells(k + i, j + 1).Value = A(i, j)
If i = j Then E(i, j) = 1 Else E(i, j) = 0
C(i, j) = 0 For r = 0 To n C(i, j) = C(i, j) + A(i, r) * A(r, j) Next
x = 6 * (C(i, j) + E(i, j)) Cells(k + n + 2 + i, j + 1).Value = x Next Next End Sub
0 ≤ T < 3 ⇒ зеленый
3 ≤ T < 4 ⇒ желтый
4 ≤ T < 6 ⇒ красный
2. Замечаем, что цикл смены состояний светофора составляет 6 секунд, т.е. взяв остаток от деления заданного T на 6, мы сведем задачу к состоянию, описанному в п.1
3. Операция "Взятие остатка от деления вещественного числа" в QBASIC отсутствует, поэтому будем получать некое k - целочисленное частное от деления T на 6, а потом переопределять T = T - 6*k
'Microsoft QBASIC 1.0
DIM T AS DOUBLE
INPUT "Введите T", T
T = T - 6 * INT(T / 6)
SELECT CASE T
CASE IS <= 3
PRINT "Зеленый"
CASE IS <= 4
PRINT "Желтый"
CASE ELSE
PRINT "Красный"
END SELECT
s = 0
n = CInt(InputBox("N ="))
Range(Cells(1, 1), Cells(2 * (n + 2), n + 2)).Clear
ReDim A(n - 1)
ReDim B(n - 1)
k = 1
Cells(k, 1).Value = "A"
Cells(k + 2, 1).Value = "B"
k = k + 1
m = -1
For i = LBound(A, 1) To UBound(A, 1)
A(i) = Round(Rnd * 10) - 5
Cells(k, 1 + i).Value = A(i)
If A(i) = 0 Then
m = m + 1
B(m) = i
Cells(k + 2, m + 1).Value = B(m)
End If
Next
End Sub
Sub num2()
n = 16
ReDim A(n, n), C(n, n), E(n, n)
Range(Cells(1, 1), Cells(2 * (n + 2), n + 2)).Clear
k = 1
Cells(k, 1).Value = "Init"
k = k + 1
Cells(k + n + 1, 1).Value = "Result"
For i = 0 To n
For j = 0 To n
A(i, j) = Round(Rnd * 10)
Cells(k + i, j + 1).Value = A(i, j)
If i = j Then E(i, j) = 1 Else E(i, j) = 0
C(i, j) = 0
For r = 0 To n
C(i, j) = C(i, j) + A(i, r) * A(r, j)
Next
x = 6 * (C(i, j) + E(i, j))
Cells(k + n + 2 + i, j + 1).Value = x
Next
Next
End Sub