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

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

    1. Вычисления в цикле

Вычисления в цикле встречаются очень часто и поэтому, несмотря на то, что никакой особой техники тут не требуется, я рассмотрю пример.

      1. Пример

Во дворце 40 залов. Компьютер запрашивает длину, ширину и высоту каждого зала. Вычислить площадь пола и объем каждого зала.

Сначала напишем фрагмент для одного зала:

Dlina = InputBox("Введите длину") 'Начало фрагмента

Shirina = InputBox("Введите ширину")

Visota = InputBox("Введите высоту")

S = Dlina * Shirina 'Площадь пола

V = S * Visota 'Объем

Debug.WriteLine("Площадь пола = " & S & " Объем зала = " & V) 'Конец фрагмента

Для решения задачи этот фрагмент нужно выполнить 40 раз, для чего вполне естественно вложить его внутрь оператора For:

Dim Dlina, Shirina, Visota, S, V As Double

Dim i As Integer

For i = 1 To 40

Dlina = InputBox("Введите длину") 'Начало фрагмента

Shirina = InputBox("Введите ширину")

Visota = InputBox("Введите высоту")

S = Dlina * Shirina 'Площадь пола

V = S * Visota 'Объем

Debug.WriteLine("Площадь пола = " & S & " Объем зала = " & V) 'Конец фрагмента

Next

Полужирным шрифтом я выделил новые по сравнению с предыдущим фрагментом строки.

Чтобы программа подходила для любого числа залов, нужно вместо строки

For i = 1 To 40

написать две строки:

N = InputBox("Сколько залов во дворце?")

For i = 1 To N

Построить диаграмму численности населения городов (см. Рис. 10 .26).

Рис. 10.26

Подробнее: Компьютер запрашивает количество городов на диаграмме. Затем спрашивает название города и число его жителей, после чего строит первый столбец диаграммы с надписью. Затем запрашивает данные о втором городе, строит второй столбец и так далее. Неплохо бы под столбцом указывать число жителей.

      1. Роль ошибок в программе

Пусть во дворце три зала размерами 20*15*4, 30*20*5 и 10*5*3. В этом случае, выполняя программу предыдущего подраздела, мы вводим N=3 и оператор For выполняет цикл три раза.

Мы знаем, что по ошибочной программе компьютер выдает ошибочные результаты. Попробуйте угадать результаты, если в программе мы вместо V=S*visota напишем V=S+visota. Ответ:

Площадь пола = 300 Объем зала = 304

Площадь пола = 600 Объем зала = 605

Площадь пола = 50 Объем зала = 53

Если же вы случайно вместо For i=1 To N напишете For i=2 To N и не заметите этого, то результаты будут такими:

Площадь пола = 300 Объем зала = 1200

Площадь пола = 600 Объем зала = 3000

На этом программа закончит работу и не спросит размеров третьего зала. Вам не кажется странным, что она посчитала 1 и 2 залы, а не 2 и 3? Если кажется, то учтите, что вы ничего не знаете об ошибке в программе, а компьютер не говорит вам, размеры какого по счету зала нужно вводить.

Определите без компьютера, что он напечатает, если

А. Строку For i=1 To N поместить на три строки ниже, а именно – перед строкой S=Dlina*Shirina

Б. Поменять местами строки Debug.WriteLine и Next

Если задания не получаются, введите программы в компьютер и используйте пошаговый режим.