ОБЪЕКТИВНОСТЬ БЕЗ КОМПРОМИССОВОбъективность Без Компромиссов В Мире Компьютеров
НОВОСТИ САЙТАТЕСТИРУЕМ ВМЕСТЕИНТЕРНЕТ и ПОВСЯКО-РАЗНОСОФТ ПРОЕКТЫНАШИ ССЫЛКИ
ГЛАВНАЯ >> ИНТЕРНЕТ и ПО >> ПРОГРАММИРОВАНИЕ: Visual Basic 2010 - это просто. "Угадай-ка"

НАЗВАНИЕ СТАТЬИ: Visual Basic 2010 - это просто. "Угадай-ка"
АВТОРСТВО: Алексей Набережный
ДАТА НАПИСАНИЯ: Июнь 2010 года
ДАТА ПЕЧАТНОЙ ПУБЛИКАЦИИ: Август 2010 года ( ISSN 0235-3520 )
ДАТА ПОСЛЕДНЕЙ РЕДАКЦИИ: Июнь 2010
Алекс Н.

Спросите толкового программиста с чего он начинал. В списке ответов будут Basic, Pascal, C, но вряд ли вы услышите что-то приставкой Visual и вот почему. В процессе так называемого визуального программирования большую часть кода создает компьютерная программа. Пользователю остается водить мышкой по экрану и вписывать значения в отведенные окошки. В таком режиме очень сложно научиться программировать «от и до». На ум приходит сравнение с кулинарной темой. С одной стороны, можно сделать итальянскую лазанью, используя шаблонный полуфабрикат, но с другой - такой подход малопригоден в учебных целях у будущих поваров.
Однако начинать программировать можно и на Visual Basic, главное не отвлекаться на графический интерфейс и создавать первые программы в виде консольных приложений. Учебников и самоучителей на тему программирования в консоли вы не найдете, так постараемся научиться азам на страницах этого сайта. Причем, в понятном формате.
Для старта скачаем последнюю редакцию Visual Studio 2010 (бесплатная версия Express доступна по адресу www.microsoft.com/express/downloads/ ) и установим на пользовательский ПК. Начнем знакомство с классическими алгоритмическими конструкциями на примере игры «Угадай-ка». Пусть компьютер загадывает число от 0 до 100, а мы попытаемся его угадать за 7 попыток. Домашний ПК будет нам помогать фразами «перелет» и «недолет».

Скачаем Visual Studio 2010 Express
Visual Studio 2010

Итак, Пуск – Программы - Microsoft Visual Studio 2010 Express - Microsoft Visual Studio 2010 Express. В открывшемся окошке идем в Файл – Создать Проект, в списке выбираем строку «Консольное приложение». Задаем имя проекта (по умолчанию, оно ConsoleApplication1). И даже тут мы видим четыре «бесплатных» строчки будущей программы:

Module Module1
	Sub Main()
	End Sub
End Module

Теперь в главную процедуру (между второй и третьей строчками) вставляем код нашей игры – чуть ниже мы его разберем по кусочкам.

10:     Dim i, n, p As Integer
20:     Randomize()
30:     n = Math.Round(Rnd() * 100)
40:     Console.WriteLine("Сейчас я загадаю целое число от 0 до 100,")
50:     Console.WriteLine("а ты попытаешься его угадать за 7 попыток.")
60:     For i = 1 To 7
70:         Console.WriteLine("--------------------------------------")
80:         Console.Write("Это твоя " + Str(i) + "-я попытка. Вводи число: ")
90:         p = Console.ReadLine
100:        If p = n Then
110:            Console.WriteLine("МОЛОДЕЦ! ТЫ УГАДАЛ!")
120:            Exit For
130:        ElseIf p > n Then
140:            Console.WriteLine("Перелет")
150:        Else
160:            Console.WriteLine("Недолет")
170:        End If
180:    Next i
190:    If i = 8 Then
200:        Console.WriteLine("--------------------------------------")
210:        Console.WriteLine("УВЫ, ТЫ ПРОИГРАЛ! Я ЗАГАДАЛ ЧИСЛО " + Str(n) + ".")
220:    End If
230:    Console.ReadKey()

В этом месте неискушенный новичок покрутит пальцем у виска, а бывалый программист искренне улыбнется. Цифры слева – это классика. Строки кода на языке Basic нумеровались с 1964 года, когда в первом руководстве по языку программирования Beginner's All Purpose Symbolic Instruction Code (BASIC) были представлены три команды:

10 LET X=(7+8)/3
20 PRINT X
30 END

Сейчас это больше атавизм, ведь в прошлом веке наличие строковой нумерации обусловливалось определенными целями. Мы будем использовать нумерацию, чтобы было удобнее разбирать код по кирпичикам.
Строка 10. С помощью оператора DIM объявляется имя и тип одной или нескольких переменных. В нашем случае мы объявили три целочисленных переменных: i – будем использовать в цикле, n – загаданное число, p – наши варианты загаданного числа.
Строки 20 и 30 мы объясним в обратном порядке. Функция RND() возвращает случайное вещественное число (типа Single) в диапазоне от 0 до 1. Мы умножили случайное число на 100, чтобы расширить диапазон – от 0 до 100. А вот функция Math.Round() по сути лишняя в нашей программе, но пусть будет. Она округляет получившееся число до целого значения. Однако переменная n объявлена, как целочисленная, а значит, при выполнение программы дробная часть загаданного числа обрезалась бы автоматически. Чуть не забыли, функция Randomize() инициализирует подлинную генерацию случайных чисел, иначе «задуманное» число всегда будет одним и тем же.
Строки 40 и 50 обеспечивают вывод приветственных фраз на экран в консольном режиме.
Строки с 60 по 180 ключевые в нашем коде – это циклическая конструкция. Команды с 70 по 170 – называются телом цикла. Нашему циклу суждено повторится 7 раз – те самые 7 попыток отгадать задуманное число. С каждым проходом (итерацией) цикла значение счетчика i будет увеличиваться с 1 до 7 в строке 180. Заметим, что значение переменной i будет играть важную роль в строке 190, но об этом чуть позже.
Обратите внимание на уже знакомый оператор в строке 80. Здесь выводимая строка формируется динамически, в зависимости от значения переменной i. А функция Str(i) превращает числовую переменную в обычную строку, чтобы вы увидели информативную фразу «Это твоя 1-я попытка. Вводи число: ».
Пользователь вводит значение в переменную p в 90-й строке. Если здесь ввести не число, а какой либо другой символ, получится ошибка. В дальнейшем мы научимся обрабатывать подобные варианты событий, а пока не будем столь дотошными.
Конструкция с 100 по 170 строку называется ветвлением. В зависимости от выполнения того или иного условия, выполняются те или иные команды. Допустим вы – угадали и введенное P равняется задуманному N, тогда компьютер выполнит операторы из 110 и 120 строки. Кстати, Exit For нужен, чтобы в случае победы завершить выполнение запущенного цикла 60-180 и передать управление оператору в строке 190.
Строка 140 будет задействована в работе алгоритма, если введенное P окажется больше задуманного N. А строка 160 исполнится, если введенное P окажется меньше задуманного N. Правда все просто?

Наша первая программа на Visual Studio 2010
Visual Studio 2010

Конструкция с ветвлением в строках с 190 по 220 сработает, если на выходе с цикла значение счетчика i будет равно 8. Поясним, если бы вы угадали задуманное число на последней 7-й попытке, то значение i равнялось бы 7. А если оно равно 8, то значит цикл завершился сам собой, «счастливый» оператор Exit For из строки 120 не выполнялся.
Ну и последний оператор из строки 230 ожидает ввода в консоль любого одного(!) символа. Если бы не он, то написанное консольное приложение отработало бы без ошибок и сразу же закрылось. Кстати, попробуйте вместо Console.ReadKey() написать оператор GoTo 30. Запустите отладку приложения клавишей F5. Что получилось в итоге? Если недопоняли, встаньте курсором на GoTo и нажмите кнопку F1 – помощь вам в помощь.
А в следующий раз мы запрограммируем еще более интересную консольную игру - "Камень, ножницы, бумага".

>> НАВЕРХ СТРАНИЦЫ <<

Rambler's Top100 Рейтинг@Mail.ru