Онлайн
библиотека книг
Книги онлайн » Разная литература » Интернет-журнал "Домашняя лаборатория", 2008 №7 - Журнал «Домашняя лаборатория»

Шрифт:

-
+

Закладка:

Сделать
1 ... 137 138 139 140 141 142 143 144 145 ... 192
Перейти на страницу:
а, Ь, у в памяти.

F8. Visual Basic выполняет Debug.Print у + 200, а следующий оператор подсвечивается. В окне Immediate возникает число 217.

F8. Подсветка уходит, так как процедура выполнена. Можно снова жать на кнопку Command1.

Замечание об отладке в пошаговом режиме: При отладке в пошаговом режиме вам часто нужно на экране видеть одновременно окно кода, окно Immediate и саму форму. Но при нажатии на F8 то одно, то другое часто пропадает из вида, будучи закрыто другими окнами. Чтобы этого не происходило, еще до начала отладки расположите окно кода и окно Immediate так, чтобы они не перекрывали друг друга, а главное окно Visual Basic уменьшите до части экрана. Затем после запуска отладки форму перетащите на освободившуюся часть экрана. Тогда окно Visual Basic не будет перекрывать форму и проблема исчезнет.

Итак, компьютер сделал все то, что сделал бы при нажатии Start, но только в медленном темпе.

В любой момент пошагового выполнения программы вы можете вместо F8 нажать Start, которая по такому случаю переименовывается в Continue, и программа продолжит выполняться в обычном режиме.

Оператор присваивания меняет значения переменных величин.

Пока я не рассматривал программы, в которых переменные меняют свою величину. Теперь настало время такую программу рассмотреть:

Dim k As Integer

  Private Sub Command1_Click()

  k = 10: Debug.Print k: k = 25: Debug.Print k: k = 4: Debug.Print k

End Sub

Запишем схематически процесс изменения информации в ячейке к:

Как видите, в процессе работы программы содержимое ячейки к меняется. Так, при выполнении оператора к=25 там вместо значения 10 появляется 25. А куда же девается десятка? Она стирается, то есть компьютер забывает ее безвозвратно. Здесь действует общий принцип работы всех компьютеров:

Если в какое-нибудь место памяти или диска записывается новая информация, то старая информация, записанная там раньше, автоматически стирается, даже если она кому-то и нужна.

Раз теперь вместо 10 в ячейке к находится 25, то оператор Debug.Print к печатает уже 25. (Слова "печатает" и "Print" устарели, они остались от тех времен, когда мониторов еще не было, а вместо них были принтеры. Когда я по старинке говорю, что информация печатается, я подразумеваю, что она появляется на мониторе в том или ином окне.) Следующий оператор к=4 запишет на место 25 четверку, a Debug.Print к ее напечатает. Проверьте.

А что напечатает следующая программа?

Dim f As Integer

Private Sub Command1_Click()

  f=30: f=f+4: Debug.Print f

End Sub

Оператор f=30 запишет в ячейку f число 30. А что сделает странный оператор f=f+4? Не думайте, что это уравнение или что-нибудь в этом роде. Это оператор присваивания, а значит и выполнится он согласно определению оператора присваивания, то есть сначала вычислит правую часть f+4, подставив туда вместо f его значение, взятое из ячейки, и получит 34. Затем число 34 будет записано в ячейку, отведенную под переменную, обозначенную в левой части, то есть опять в ячейку f. При этом старое значение 30 будет стерто. Debug.Print f напечатает 34.

Таким образом, оператор f=f+4 просто увеличивает число в ячейке f на четверку или, другими словами, увеличивает f на 4.

Зачем это нужно? Узнаете позже. Очень даже нужно.

Задание 8:

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

а=100: а=10*а+1: Debug.Print а

а=100: а= — а: Debug.Print а

а=10: b=25: a=b-a: b=a-b: Debug.Print а, b

Еще об именах

Как правильно дать имя объекту, мы говорили в 0. Переменные же величины мы привыкли обозначать буквами (a, s, d…). Большинство языков программирования, в том числе и Visual Basic, позволяет обозначать переменные именами. Вот два равносильных фрагмента программы:

а=3; | Summa=3;

Ь=4-а; | ROBBY=4-Summa;

Debug.Print а, b+50 | Debug.Print Summa, ROBBY+50

В том и другом случае будут напечатаны числа 3 и 51. Очевидно, компьютеру все равно, как мы обозначаем переменные величины или объекты, в смысл имен он не вдумывается и не удивляется, что переменная Summa никакой суммой не является, а просто числом 3.

Многие авторы не рекомендуют использовать в именах русские буквы, говорят, что это опасно. Лично я в связи с этим практически ни разу с большими проблемами не столкнулся. Мой совет: если у вас с английским все ОК, то избегайте русских букв, в противном случае ничего страшного, если вы будете все именовать по-русски.

Примеры правильной записи имен:

a

polnaja_Summmma

tri_plus_dva

s25

а1Ь8 8qqQQQQQQQQQQQQ

oshibka

Это_не_имя

Примеры неправильной записи имен:

polnaja summa — содержится символ (пробел), не являющийся буквой, цифрой или знаком подчеркивания

2as — начинается с цифры

Domby&Son — содержится символ &, не являющийся буквой, цифрой или знаком подчеркивания

Visual Basic игнорирует в именах разницу между строчными и прописными буквами. Так, для него Summa и sUmmA — одно и то же имя. И он присматривает за тем, чтобы в окне кода они были написаны одинаково (но не за всеми русскими именами он так присматривает).

Математика. Запись арифметических выражений

Простые арифметические вычисления лучше делать на калькуляторе, чем на компьютере, а вот сложные — наоборот. В этом разделе вы научитесь правильно вводить в компьютер сложные формулы. Если вы — школьник не самых старших классов, то не все, что здесь написано, будет вам понятно. Не огорчайтесь, при дальнейшем чтении непонятные вещи вам не понадобятся.

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

На уроках математики мы привыкли писать ab+cd, подразумевая: а умножить на b плюс с умножить на d. В Visual Basic это выражение мы обязаны писать так: a*b+c*d. Иначе компьютер подумает, что нужно к переменной, имеющей имя ab, прибавить переменную, имеющую имя cd. Во избежание двусмысленности знак умножения положено писать всегда, в том числе и перед скобками. Например, а * (Ь+с).

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

очень затруднен. Поэтому для обозначения деления и выбрана косая черта. Это выражение на Visual Basic положено записывать так: (а+1)/(Ь+1). Если бы мы не поставили скобок, то выражение получилось бы таким а+1/b+1, а это неправильно, так как компьютер, как и мы, всегда перед сложением

1 ... 137 138 139 140 141 142 143 144 145 ... 192
Перейти на страницу: