Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория»
Книгу Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория» читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!
Шрифт:
Интервал:
Закладка:
Do
simvol = InputBox("Введи символ")
If simvol <> "/" Then i = i + 1 'Если это не /, то "посчитай" его
Select Case simvol
Case "W" 'Если это W, то
cW = cW + 1 'увеличь счетчик символов W
Case":" 'Если это:, то
cDv = cDv + 1 'увеличь счетчик символов:
Case "/" 'Если это /, то
Exit Do 'завершай работу цикла
End Select
Loop
procent_W = Round(100 * cW / i) 'Вычисляй процент символов W
procent_Dv = Round(100 * cDv / i) 'Вычисляй процент символов:
Debug.Print procent_W, procent_Dv
End Sub
Задание 51: В компьютер вводится N чисел. Подсчитать из них количество положительных, отрицательных и тех, что превышают число 10,
Задание 52: В компьютер вводятся пары целых чисел. Подсчитать, сколько среди них пар, дающих в сумме число 13. Подсчет закончить после ввода пары нулей.
Сумматоры
Сумматор — это переменная величина, в которой вы подсчитываете сумму чего-либо. Если вы поняли идею счетчика, то понять идею сумматора вам будет нетрудно. Посмотрим, как будет работать следующий фрагмент:
s=0 'Обнуляем сумматор. Это не менее важно, чем обнулить счетчик
m: а = InputBox("Введите очередное число")
s=s+a 'Увеличиваем сумматор
Debug.Print "Сумма="; s
GoTo m
В ячейке s накапливается сумма вводимых чисел а, поэтому назовем эту ячейку сумматором. Отличие сумматора от счетчика в том, что счетчик увеличивается на 1 оператором с=с+1, а сумматор — на суммируемое число оператором s=s+a.
Задача: В компьютер вводится N чисел. Вычислить и один раз напечатать их сумму.
Программа:
Private Sub Command2_Click()
N = InputBox("Сколько чисел будем складывать?")
s = 0
For i = 1 То N
а = InputBox("Введите очередное число")
s = s + а
Next i
Debug.Print "Сумма равна"; s
End Sub
Задание 53: Пусть N=2, a=5 и 3. Тогда по этой программе Visual Basic напечатает 8. Что он напечатает, если:
Вместо s=0 написать s=10.
Вместо s=s+a написать s=s+a+1.
Строки Next и Debug.Print поменять местами.
Строки s=0 и For поменять местами.
Строки For и InputBox поменять местами.
Строки s=s+a и Next поменять местами.
Вместо For i=1 То N написать For i=2 То N.
Задания 54–56: Написать программы для следующих задач:
Во дворце 40 залов. Известны длина и ширина каждого зала.
Вычислить площадь пола всего дворца.
Вычислить средний балл учеников вашего класса по физике.
Вычислить произведение N произвольных чисел. Подсказка: Несмотря на то, что произведение — не сумма, эта программа будет отличаться от программы суммирования всего двумя существенными символами (какими?), а структура обеих программ совершенно одинакова.
Вложение циклов в разветвления и наоборот
Реальная процедура на Visual Basic может представлять собой сложную мозаику из циклических и разветвляющихся частей, вложенных друг в друга. Мы уже видели, как в оператор цикла были вложены операторы ветвления. В свою очередь в них могут быть вложены операторы цикла, и так до бесконечности.
Для тренировки определите, что напечатает следующий фрагмент:
Private Sub Command1_Click()
For i = 1 To 5
a = 9
If i * i = a Then
For k = 5 To 8
Debug.Print k;
Else
Debug.Print 1997
End If
Next i
End Sub
Здесь внутрь For i = 1 To 5 вложен If i * i = a,a внутрь него вложен For к = 5 To 8.
Ответ:
1997
1997
5 6 7 8 1997
1997
Вложенные циклы
Вложенные циклы или цикл внутри цикла — весьма распространенная конструкция при программировании.
Поставим себе задачу — напечатать таблицу умножения. В следующем виде:
Начнем с малого — пусть нужно напечатать
1*1=1
Вот фрагмент программы:
Фрагмент 1
а=1
Ь=1
proizv = а * b
Print а, "*",Ь, "=",proizv
Здесь в операторе Print 5 элементов:
сомножитель а,
символ знака умножения "*",
сомножитель b,
символ "=",
значение произведения proizv
Усложним задачу. Попробуем заставить компьютер напечатать первую строку таблицы:
Замечаем, что здесь нам нужно решить 9 элементарных задач на вычисление произведения, первую из которых решает фрагмент 1. Все они очень похожи и различаются лишь значением второго сомножителя. Таким образом, для решения каждой из 9 задач подошел бы наш фрагмент 1, если бы в нем в операторе Ь=1 вместо единицы стояла нужная цифра. В данном случае идеально подходит оператор For:
Фрагмент 2
а = 1
For b = 1 То 10
proizv = а * Ь
Print а; "*"; Ь; proizv;
Next b
Прокрутите программу в пошаговом режиме.
Следующая ступень усложнения — последняя — напечатать не одну строку таблицы, а девять. Для этого фрагмент 2 должен быть выполнен 9 раз, каждый раз — с новым значением а. Чтобы этого достичь, "обнимем" фрагмент 2 оператором For точно так же, как мы обнимали фрагмент 1.
Фрагмент 3
For а = 1 То 10
For b = 1 То 10
proizv = а * Ь
Print а; "*"; Ь; "="; proizv;
Next b
Next a
Прокрутите программу в пошаговом режиме, для удобства заменив 9 на 4.
Печатается все, что надо, но в одну строчку. Добавим в нужное место пустой Print, чтобы после окончания очередной строки печать начиналась с новой:
Фрагмент 4
For а = 1 То 10
For b = 1 То 10
proizv = а * Ь
Print а; "*"; Ь; "="; proizv;
Next b
Next a
Прокрутите программу в пошаговом режиме. Прочувствуйте то, что пустой Print мы поместили именно в нужное место, строчкой выше или ниже он все бы испортил.
Печатает фрагмент 4 плохо. Акуратных столбцов не получается. Мы не будем добиваться идеальной картинки. Просто поменяем точку
Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.
Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.
- 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
- 2. Просьба отказаться от оскорблений, угроз и запугиваний.
- 3. Просьба отказаться от нецензурной лексики.
- 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.
Надеемся на Ваше понимание и благоразумие. С уважением, администратор knigkindom.ru.
Оставить комментарий
-
Christine26 июнь 01:23 Сначала было тежеловта читать, но потом всё изменилось, я с удовольствием прочитала, спасибо за книгу. Я прочитала весь цикл... Опасное влечение - Полина Лоранс
-
Тамаринда21 июнь 12:33 Редко что-то цепляет, но тут было всё живое, жизненное, чувственное, сильное, читайте, не пожалеете о своём времени...... Хрупкая связь - Ольга Джокер
-
Гость Марина20 июнь 06:08 Книга очень понравилась, хотя и длинная. Героиня сильная личность. Да и герой не подкачал. ... Странная - Татьяна Александровна Шумкова