ПОНЯТНО О Visual Basic NET (том 2)


           

с массивами. Теперь решим задачу


Первая ступенька:   i = 2 ® a(3) = 10 ® a(2) = 100 ® a(2 + 6) = a(2) + a(5 - 2) ® i = 0 ® Debug.WriteLine( a(0 + 3) + a(2) + a(0 + 8))
Вторая ступенька:   i = 2 ® a(3) = 10 ® a(2) = 100 ® a(8) = a(2) + a(3) ® i = 0 ® Debug.WriteLine( a(3) + a(2) + a(8))
Третья ступенька:   i = 2 ® a(3) = 10 ® a(2) = 100 ® a(8) = 110 ® i = 0 ® Debug.WriteLine( 10 + 100 + 110)
Цикл – мощное оружие при работе с массивами. Теперь решим задачу про суммарную длину удавов в предположении, что удавов не 3, а 1000:
Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
        Dim Число_удавов As Integer = 1000
        'Верхняя граница индекса может быть выражена переменной величиной:
        Dim dlina(Число_удавов) As Integer
        Dim summa, i As Integer
        'Вводим с клавиатуры длины тысячи удавов, хоть это и утомительно и никто так не делает.
        'Здесь на первом выполнении цикла i=1 и поэтому компьютер вводит число в ячейку dlina(1),
        'на втором -  i=2 и поэтому компьютер  вводит число в ячейку dlina(2) и т.д.
        For i = 1 To Число_удавов
            dlina(i) = InputBox("Введите длину " &  i & "-го удава")
        Next
        'Определяем суммарную длину тысячи удавов:
        summa = 0
        For i = 1 To Число_удавов
            summa = summa + dlina(i)
        Next
        Debug.WriteLine(summa)
End Sub
Отлаживая эту программу, возьмите, конечно, вместо числа 1000 какое-нибудь маленькое число.
Пример. Продолжаем привыкать к индексам. Решим еще одну задачу. Дан ряд из 10 произвольных чисел: a(1), a(2), ... , a(10). Подсчитать и напечатать суммы каждой из восьми троек стоящих рядом чисел.
первая тройка:          a(1)+a(2)+a(3)  
вторая тройка:          a(2)+a(3)+a(4) 
третья тройка:          a(3)+a(4)+a(5)
  ......
восьмая тройка:        a(8)+a(9)+a(10)
Вот программа:
Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
        Dim a() As Integer = {0, 5, 3, 4, 0, 20, 10, 23, 2, 9, 1000}
        Dim i As Integer
        For i = 1 To 8
            Debug.WriteLine(a(i) + a(i + 1) + a(i + 2))
        Next
End Sub
Вот что она напечатает:
12
7
24
30
53
35
34
1011
Следующие два задания очень важны, так как это ваши первые задания по массивам.
Задание 102.      
Напишите с использованием массива программу вычисления среднегодовой температуры. Подсчитайте также количество теплых дней в году (когда температура выше  20 градусов). Узнайте, каким по порядку идет самый жаркий день. (Для отладки в компьютере годом можно считать неделю.)
Задание 103.      
Вычислить и распечатать первые 139 чисел Фибоначчи.

Содержание  Назад  Вперед