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

Шрифт:

-
+

Закладка:

Сделать
1 ... 142 143 144 145 146 147 148 149 150 ... 192
Перейти на страницу:
от свойств объекта, на котором ведется печать (в нашем случае объект — форма):

Если вы установите в окне свойств формы свойство FontTransparent равным False, то через пространство между буквами не будет просвечивать поверхность формы.

У оператора Print есть еще кое-какие возможности, но, пожалуй, хватит.

Диалог с компьютером

Напишем программу, которая осуществляла бы такой диалог человека с компьютером:

КОМПЬЮТЕР ВЫВОДИТ НА ЭКРАН: Здравствуй, я компьютер, а тебя как зовут?

ЧЕЛОВЕК ВВОДИТ С КЛАВИАТУРЫ: Коля

КОМПЬЮТЕР ВЫВОДИТ НА ЭКРАН: Очень приятно, Коля. Сколько тебе лет?

ЧЕЛОВЕК ВВОДИТ С КЛАВИАТУРЫ: 16

КОМПЬЮТЕР ВЫВОДИТ НА ЭКРАН: Ого! Целых 16 лет! Ты уже совсем взрослый!

Пусть человек вводит свои реплики при помощи InputBox, а компьютер печатает свои с помощью Print. Для хранения в памяти имени человека выдумаем переменную imya, а для возраста — vozrast.

Вот программа:

Dim imya As String

Dim vozrast As Integer

Private Sub Command1_Click()

   Print "Здравствуй, я компьютер, а тебя как зовут?"

   imya = InputBox("Жду ответа")

   Print "Очень приятно, "; imya; ". Сколько тебе лет?"

   vozrast = InputBox("Жду ответа")

   Print "Ого! Целых"; vozrast; "лет! Ты уже совсем взрослый!"

End Sub

Вам понятно, зачем в операторе Print "Очень приятно, "; imya; ". Сколько тебе лет?" внутри кавычек нужны запятая и точка? Если нет, то попробуйте их убрать и посмотрите на результат.

Диалог будет отличаться только той информацией, которую вводит человек. Так, в другой раз по этой же программе будет осуществлен следующий диалог: КОМПЬЮТЕР: Здравствуй, я компьютер, а тебя как зовут?

ЧЕЛОВЕК: Фантомас!

КОМПЬЮТЕР: Очень приятно, Фантомас!. Сколько тебе лет?

ЧЕЛОВЕК: 100

КОМПЬЮТЕР: Ого! Целых 100 лет! Ты уже совсем взрослый!

Не подумайте, что эта программа очень умная. Она совершенно не анализирует, какую информацию человек ввел с клавиатуры. Поэтому с ней возможен и такой диалог:

КОМПЬЮТЕР: Здравствуй, я компьютер, а тебя как зовут?

ЧЕЛОВЕК: Сгинь с моих глаз!

КОМПЬЮТЕР: Очень приятно, Сгинь с моих глаз!. Сколько тебе лет?

ЧЕЛОВЕК: -2

КОМПЬЮТЕР: Ого! Целых -2 лет! Ты уже совсем взрослый!

Как выводить информацию в текстовое поле

Конечно, оператором присваивания:

Трудность в том, что в операторе присваивания правая часть не может состоять из нескольких элементов, как в операторе Print, это один-единственный элемент, который может быть числом, строкой, числовой или строковой переменной, числовым или строковым выражением, содержимым текстового поля.

Правая часть вычисляется и становится содержимым текстового поля.

Text1.Text="Кошка"+" Собака" (Кошка Собака)

Что же делать, если мы хотим вывести в текстовое поле сразу несколько элементов? Здесь мы должны выстроить их в один элемент. Сделаем же это знаком +. У нас получится одно выражение:

Text1.Text = "Месяц " + Mes + " для меня отпускной." (Месяц май для меня отпускной.)

А вот с примером о поросенке немного посложнее. Попробуем проделать то же самое:

Text1.Text = "Вес поросенка + Ves + "килограммов" (Ошибка "Type mismatch" — Несовпадение типов)

Дело вот в чем. Visual Basic присматривает за тем, чтобы программист не складывал "бочки и селедки". То есть, если складываешь, то уж складывай одни числа, или уж одни строки (как в задаче об отпускном месяце), а строки с числами складывать никак нельзя. Ведь "Вес поросенка =" и "килограммов" это строки, a Ves — это числовая переменная.

Но и здесь есть, конечно, выход. Помните, как в 0 при помощи Val мы приказали компьютеру считать текст числом (другими словами — преобразовали текст в число)? Совершенно аналогично здесь мы прикажем компьютеру считать число текстом (другими словами — преобразуем число в текст). И сделает это функция Str:

Text1.Text = "Вес поросенка =' Str(Ves) + " килограммов" (Вес поросенка = 35 килограммов)

Задание 14: Напишите программу для следующей задачи: Компьютер запрашивает названия двух планет, радиусы их орбит (в миллионах километров) и скорости движения по орбите (в миллионах километров в сутки). После этого он вычисляет продолжительность года на планетах и выдает результат в таком виде: Продолжительность года на планете Земля — 365 суток, а на планете Эоэлла — 12 суток. Результат — в двух вариантах: печать на форме оператором Print и вывод в текстовое поле.

Указание для тех, кто не знает физики и геометрии: Год равен времени одного оборота по орбите, а оно равно длине орбиты, деленной на скорость движения по орбите. Длина орбиты равна 

, где R — радиус орбиты.

Оглядимся вокруг

Ну вот, с переменными величинами мы разобрались. Узнали что-то. А научились ли мы в результате этого знания делать что-нибудь новенькое и интересное? Вроде, нет. Ничего особенно приятного, за исключением, может быть, диалога с компьютером. Нда-а-а… Зачем же все мучения?

Что такое выбор (ветвление)

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

Возьмем игру в воздушный бой. Предположим, самолет на экране летит на автопилоте. Это значит, он должен самостоятельно поддерживать высоту полета между 3000 м и 3200 м. Для этого ему достаточно периодически определять высоту, и если она меньше 3000, лететь вверх, а если больше 3200 — вниз. Естественно, этот выбор делает программа для игры в воздушный бой, сам по себе компьютер ничего выбрать не может. В программе заранее пишутся процедуры для полета вверх и для полета вниз, а выбор между ними делает специальная команда (оператор) выбора, имеющаяся в каждом языке программирования. Вот алгоритм выбора между полетом вверх и вниз:

Определи высоту.

Если высота < 3000, то выполняй процедуру ВВЕРХ.

Если высота > 3200, то выполняй процедуру ВНИЗ.

Продолжай полет.

Здесь команды 2,3 — команды выбора. В общем случае команда выбора содержит условие, от которого зависит, будет ли выполняться какая-нибудь команда или группа команд. Это условие может быть самым разным: нажата или нет любая клавиша, нажата или нет конкретная клавиша, был ли щелчок мышью над таким-то объектом, больше ли одно число другого, правда ли, что с клавиатуры введено такое-то слово и т. д. В нашем случае условие

1 ... 142 143 144 145 146 147 148 149 150 ... 192
Перейти на страницу: