Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VB.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
7.65 Mб
Скачать

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

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

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

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

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

ЧЕЛОВЕК ВВОДИТ С КЛАВИАТУРЫ: 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 лет! Ты уже совсем взрослый!

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

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

Фрагмент программы

Результат в текстовом поле

Text1.Text = 2001

2001

Text1.Text = 3+2

5

Text1.Text = "Кошка"

Кошка

a = "Кошка" : Text1.Text = a

Кошка

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

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

Кошка Собака

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

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

Месяц май для меня отпускной.

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

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

Ошибка "Type mismatch" - Несовпадение типов

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

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

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

Вес поросенка = 35 килограммов

В 7.3 и !!!! показан более простой способ примирить строковые и числовые данные.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]