Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Понятно о Visual Basic.NET. Самоучитель.Ч2.2005...docx
Скачиваний:
46
Добавлен:
25.11.2019
Размер:
4.02 Mб
Скачать
      1. Сумматоры

Сумматор – это переменная величина, в которой вы подсчитываете сумму чего-либо. Для чего нужны сумматоры? Ну хотя бы для того, чтобы подсчитать общее количество золота, которое вы нашли в нескольких кладах в компьютерной игре.

Если вы поняли идею счетчика, то понять идею сумматора будет нетрудно. Посмотрим, как работает следующий фрагмент:

s = 0 'Обнуляем сумматор. Это не менее важно, чем обнулить счетчик

Do

a = InputBox("Введите очередное число")

s = s + a 'Увеличиваем сумматор

Debug.WriteLine("Сумма= " & s)

Loop

В ячейке s накапливается сумма вводимых чисел a, поэтому назовем эту ячейку сумматором. Отличие сумматора от счетчика в том, что счетчик увеличивается на 1 оператором c=c+1, а сумматор – на суммируемое число оператором s=s+a.

Задача: В компьютер вводится N чисел. Вычислить и один раз напечатать их сумму.

Программа:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

Dim a, s, i, N As Integer

N = InputBox("Сколько чисел будем складывать?")

s = 0

For i = 1 To N

a = InputBox("Введите очередное число")

s = s + a

Next i

Debug.WriteLine("Сумма равна " & s)

End Sub

«Ошибки». Пусть N=2, a =5 и 3. Тогда по вышеприведенной программе VB напечатает 8. Определите без компьютера, что он напечатает, если:

А. Вместо s=0 написать s=10.

Б. Вместо s=s+a написать s=s+a+1.

В. Строки Next и Debug.WriteLine поменять местами.

Г. Строки s=0 и For поменять местами.

Д. Строки For и a=InputBox поменять местами.

Е. Строки s=s+a и Next поменять местами.

Ж. Вместо For i=1 To N написать For i=2 To N.

Во дворце 40 залов. Известны длина и ширина каждого зала. Вычислить площадь пола всего дворца.

Вычислить средний балл учеников вашего класса по физике. Указание: Средний балл находится делением суммы баллов на число оценок.

Вычислить произведение N произвольных чисел. Подсказка: Несмотря на то, что произведение – не сумма, эта программа будет отличаться от программы суммирования всего лишь одним числом и одним значком, а структура обеих программ совершенно одинакова.

    1. Вложенные операторы

Реальная процедура на VB может представлять собой сложную мозаику из циклических и разветвляющихся частей, вложенных друг в друга. Мы уже видели в 7.5.1 как в оператор ветвления был вложен оператор ветвления, а в 10.2.1 – как в оператор цикла был вложен оператор ветвления. В свою очередь в них могут быть вложены другие операторы цикла или ветвления, и так до бесконечности. Вам нужно привыкнуть разбираться в этой матрешке.

      1. Пример

Для тренировки определите без компьютера, что напечатает следующий фрагмент:

a = 9

For i = 1 To 6

If i * i = a Then

For k = 5 To 6

Debug.Write(k)

If 3 > 2 Then a = 16

Next k

Else

Debug.WriteLine(2004)

End If

Next i

Здесь внутрь For i вложен If i*i=a , внутрь которого вложен For k, внутрь которого в свою очередь вложен If 3>2. Обратите внимание на различную величину отступов от левого края листа.

Ответ:

2004

2004

56562004

2004