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



              


15.2.2. Мощь одномерных массивов - часть 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 чисел Фибоначчи.




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