Файл: Основы программирования на языке QBasic (Бейсик (BASIC).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 28.04.2023

Просмотров: 401

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

' Программа содержит сообщения на разных языках ' Текущий язык — французский ' Русский язык:

' CONST HELLO = "привет"

' Английский язык:

' CONST HELLO = "hello"

' Французский язык:

CONST HELLO = "salut"

3.9 Задание начальных значений в программе

Константы удобно применять, если с их помощью надо описать относитель­но небольшое число значений. А когда требуется обработать тысячу значе­ний, заранее подготовленных (перечисленных через запятую) и набранных в редакторе? Их можно включить в программу с помощью оператора DATA, который подготавливает эти данные для автоматического присваивания их переменным.

DATA 10, 100, 3, 99

Чтобы эти данные оказались в переменных, надо использовать оператор READ {список-переменных}

READ xl, х2

Интерпретатор поймет, что надо взять очередные два значения (так как указано две переменные) из оператора DATA (сначала будут взяты числа 10 и 100), и присвоить их переменным х1 и х2. При следующем обращении к оператору READ будут использованы следующие значения. Например, опе­ратор READ х3 считает в переменную х3 значение 3 и т. д.

В любой момент можно перейти к присваиванию значений из оператора DATA с самого начала, использовав оператор RESTORE. То есть, если в даль­нейшем выполнить операторы:

RESTORE READ x2

то переменная x2 получит первое значение 10.

3.10 Вывод информации на экран

Чтобы вывести информацию на экран, используется оператор PRINT. О нем уже немного рассказывалось в разделе, посвященном работе с окном Immediate.

Оператор PRINT может выводить в строке одно или несколько значений: чисел, строк, переменных и выражений. Если эти значения разделяются точкам с запятой, то данные печатаются подряд друг за другом (если это числа, то через один пробел). Если они разделяются запятыми, то данные выводятся в следующей области вывода (эти области следуют в строке пос­ледовательно друг за другом и имеют стандартную ширину 14 символов).

Например, при выполнении операторов

Y% = 5

PRINT "у="; Y% на экран выведется

У= 5

а при выполнении операторов

Y% = 5

PRINT "у=", Y% выведется

У= 5

Помимо строк, выражений и символов «,» и «;» в операторе PRINT можно также точно указывать, с какой позиции в строке начать вывод очередной порции информации. Для этого надо воспользоваться конструкцией


TAB({позиция})

например:

PRINT TAB(5); "Эта строка выводится с пятой позиции"

Кроме того, между частями выводимого текста можно вставлять нужное число пробелов с помощью команды 8РС({число-пробелов}):

PRINT "Здесь вставлено 10"; SPC(10); "пробелов"

3.11 Ввод информации от пользователя

Мало уметь только выводить данные на экран. Надо уметь также вводить всевозможную информацию в программу. Для этого предназначен опера­тор INPUT. Он записывается так:

INPUT {подсказка}; {список-переменных}

и по форме очень похож на PRINT. Работает оператор ввода следующим образом: сначала на экран выводится строка-подсказка (ее можно не ука­зывать), а потом список переменных, в которые будут вводиться набирае­мые человеком значения (после ввода числа или строки надо нажать клавишу ENTER). Например, чтобы ввести значение 5 для переменной Х%, надо указать в программе оператор ввода:

INPUT "Ввести значение X: "; Х%

Когда этот оператор будет выполняться, на экране покажется подсказка: Ввести значение X: ?

За знаком ? надо ввести 5 и нажать клавишу ENTER. Выполнение программы продолжится.

В операторе INPUT можно указывать несколько переменных, например:

INPUT Х%, S$

При вводе с клавиатуры нескольких значений в одном операторе эти зна­чения надо разделять запятыми, то есть при выполнении данного опера­тора на подсказку QBasic надо ввести, например:

? 5, строка

4. Примеры

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

Настройка велосипедного компьютера

На современных гоночных и горных велосипедах часто устанавливают спе­циальные спортивные компьютеры, которые фиксируют скорость движе­ния, время, пройденное расстояние и ряд других параметров. Для того, чтобы скорость и расстояние показывались правильно, такие компьютеры надо предварительно настроить на размер колеса, на котором установлен датчик оборотов — и скорость, и расстояние вычисляются в зависимости от длины велосипедной покрышки. Это делается установкой так называе­мого колесного фактора (Wheel Factor), аналогичного длине покрышки в миллиметрах и вычисляемого по формуле:


{диаметр колеса, мм} * 3,1416 (пи)

Данный фактор обычно приводится в инструкции для большинства стан­дартных покрышек, однако в них не учитывается возможность прогиба покрышки под весом велосипедиста, который может достигать 1-2 см и занижать значение колесного фактора. Для более точного определения зна­чения данного фактора попробуете внести наиболее подходящую, на свой взгляд, поправку и затем воспользоваться следующей программой, пере­считывающей диаметр покрышки (традиционно задаваемой в дюймах, 1 дюйм = 25,4 мм) в колесный фактор.

DIM WheelFactor AS DOUBLE, D AS DOUBLE, P AS INTEGER

INPUT "Ввести диаметр колеса в дюймах и поправку в миллиметрах:", D, Р

D = D * 25.4 - Р

WheelFactor = 3.1416 * D

PRINT " WheelFactor= "; WheelFactor

END

Решение системы линейных уравнений

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

ах + by = е сх + dy = f

Коэффициенты a, b, с, d, е и f известны, требуется определить значения пере­менных х и у. Эти значения рассчитываются по правилу Крамера:

х = (е * d - b * f) / (а * d - b * с) у = (а * f - е * с) / (а * d - b * с) а вычисляющая их программа на Бейсике представлена ниже:

' программа решения системы линейных уравнений ' с двумя неизвестными по правилу Крамера

DIM

a

AS

DOUBLE,

b

AS

DOUBLE,

e AS

DOUBLE

DIM

c

AS

DOUBLE,

d

AS

DOUBLE,

f AS

DOUBLE

DIM

X

AS

DOUBLE,

У

AS

DOUBLE

CLS

PRINT ' пустая строка PRINT "аХ + bY = е"

PRINT "сХ + dY = f"

PRINT ' пустая строка

INPUT " ввести коэффициенты а, b и е (через запятую): ", а, Ь, е

INPUT " ввести коэффициенты с, d и f (через запятую): ", с, d, f

х = (e*d-b*f) / (а * d - b * с) у = (а * f - е * с) / (a*d-b*c)

PRINT ' пустая строка PRINT "X = х PRINT "Y = "; у

PRINT ' пустая строка

PRINT "Проверка. aX + bY = "; a*x + b*y PRINT "Проверка. cX + dY = *; c*x + d*y END

В качестве контрольного примера попробуйте решить систему 10Ох + 10у = -5 -20х - Зу = 0

Запустите программу, ввести значения 100,10, -5 и -20, -3, 0.


Программа напечатает: х= -.15 Y= 1

Проверка. aX + bY = -4.999999999999999 Проверка. cX + dY = -1.110223024625157D-16

Погрешность возникает из-за слишком большой разрядности чисел типа DOUBLE.

Вычисление скорости полета в Махах

Скорость полета самолета может определяться в км/ч, а может и в Махах — скоростях звука (330 м/с, при преодолении самолетом этого порога мы обычно слышим сильный грохот). Однако скорость в Махах нельзя опре­делить простым пересчетом скорости в км/ч, потому что она нелинейно зависит от высоты полета и обычной скорости движения.

Вычисление Махов происходит по следующей ужасающей формуле (М — Махи, V — скорость, км/ч, Н — высота полета, м):

М - квадратный корень из (5 * (((((1 + 0,2 * (V / 1225,1) в квадрате) в степени 3,5 - 1) * (1 - 6,875 * 10 в -6-й степени * Н / 0,3048) в степени -5,2656) + 1) в степени 0,286) - 1)

А вот программа, пересчитывающая скорость и высоту в Махи:

DIM М AS SINGLE, V AS INTEGER, H AS INTEGER

INPUT "ввести скорость полета {км/ч) и высоту полета (м): ", V, Н

М = SQR(5 * ((((1 + .2 * (V / 1225.1) Л 2) Л 3.5 - 1)

* ((1 - 6.875Е-06 * Н / .3048) Л -5.2656) + 1) Л .286 - 1))

PRINT М; "Махов"

END

В качестве контрольного примера укажите скорость полета 1000 (км/ч) и 10000 (м). Программа напечатает скорость в Махах:

1.384566 Махов

Заключение

Решение какой-либо задачи с помощью ЭВМ распадается на три основных этапа: постановка задачи, составление алгоритма решения, программная реализация алгоритма на ЭВМ. В данной работе реализованы все указанные выше этапы в среде программирования QBasic.

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

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

В среде QBasic существует несколько экранных режимов. Основной исходный экран представляет поле редактирования текста программы. Встроенный текстовый редактор выполняет две функции – редактирования текста и синхронной интерпретации строки. В этой связи строки в некоторых программах не нумеровались. Результаты работы программы, комментарии и сообщения интерпретатора представлялись в текстовом экране (по умолчанию режим SCREEN 0). При работе с графикой изображения строились в графическом экране, который имеет несколько режимов.