Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Основы программирования на языке QBasic (Что такое QBasic)

Содержание:

Введение

История развития языков программирования насчитывает уже не одно десятилетие, и за это время различными учеными и энтузиастами было разработано уже более 8000 различных языков программирования. Несмотря на то что многие наиболее ранние языки программирования оказали огромное влияние на развитие новых языков, зачастую сходство в их структуре обнаружить очень затруднительно.

Таким образом, даже современные языки семейства Basic за счет многочисленных надстроек и усовершенствованием уже мало чем напоминают своего прародителя разработанного в 1963 году преподавателями Дартмутского Колледжа (США).

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

Что такое QBasic

У истоков всех языков программирования лежат машинные коды. Формально, возможно, даже неправильно называть их именно языком, так как программирование в чистом виде представляло собой не какую-нибудь абстракцию, а жесткое задание инст­рукций аппаратуре, которые должно было выполнить вполне конкретное компьютерное «железо». Важно отметить, что программа в то время полностью соответствовала сво­ему поведению, иными словами, невозможна была ситуация, когда программа выпол­няла действия, которые не мог объяснить программист. Отчасти это следствие относи­тельной простоты программ, отчасти -досконального знания архитектуры компьютера самим программистом. Процесс программирования был сложным, но вместе с тем про­зрачным.

Первым шагом к абстрагированию программиста от компьютерного «железа» стал язык ассемблера. Впервые появилось некое подобие переносимости программ для семейства машин со схожим набором инструкций возможно было написать одну ассемблерную программу, демонстрировавшую одинаковое поведение для всех пред­ставителей этого семейства. Однако наиболее значительный шаг с точки зрения эволю­ции - появление компилятора как промежуточного звена в цепочке «программист -компьютер». Отныне программист, с одной стороны, освобождался от необходимости досконально изучать архитектуру той машины, с которой работал, а с другой - целиком полагался на «интеллект» компилятора, своеобразного переводчика с языка програм­мирования на язык, понятый машине.

Дальнейшее направление развития языков программирования вполне очевидно - раз появилась возможность абстрагировать программиста от платформы, необходима разработка как можно более универсальных средств такой абстракции. Фортран, Кобол, Бейсик, Паскаль, Си – все это отдельные точки на выбранном маршруте. [1]

Язык Бейсик относится к языкам высокого уровня. Он был разработан как язык программи­рования в 1963 году профессорами Дартмутского колледжа Джоном Кемени и Томасом Куртцом для специалистов, не являющихся профессиональными программистами. В 1974 году в качестве международного стандарта был утвержден MINIMAL BASIC(Beginer's All-purpose Symbolic Instruction Code -универсальный символический код для начинающих). С тех пор "пережил" несколько версий, сильно мутировал(от уже упомянутого Minimal Basic до объектно-ориентированного Micro­soft Visual Basic, который представляет собой систему с широчайшим набором сервисных средств, обеспечивающих самую современную технологию программирования в прогрессив­ной среде Windows), но в большей своей части ухитрился остаться все-таки Бейсиком, то есть простым языком программирования для персональных микро ЭВМ. Учитывая общую принци­пиальную особенность всех языков программирования их совместимость снизу вверх, ста­новится понятным тот факт, что язык Бейсик по объему использования занимает лидирующее место в сфере разработки прикладных программ. [2]

QBasic – это диалект языка программирования Basic получивший основное распространение в начале 90-х годов 20-го века, и относится к семейству языков Microsoft Basic, разработку которых соответственно вела компания Microsoft.

Вопреки расхожему мнению хотя QBasic и разрабатывался на основе более раннего продукта компании Microsoft (QuickBasic 4.5), он является самостоятельным продуктом, имеющим ряд отличий. Тем не менее в угоду сходствам позже данные диалекты были объединены в общее подмножество называемое «QBasic».

В отличии от QuickBasic данный диалект был сокращен, и распространялся в составе дисковых операционных систем MS-DOS версий 5.0 и выше, благодаря чему собственно говоря он и смог завоевать популярность как один из самых доступных языков программирования того времени. [3]

QBasic по сравнению с QuickBASIC имел ряд ограничений: включал только интерпретатор, существовало ограничение в его функциональности, создание программ ограничивалось определенным размером и т.д. Поскольку он не содержал компилятора, то не было возможности создавать исполняемые файлы, но программы, написанные на QBasic, могли компилироваться при помощи QuickBASIC 4.5, BASIC PDS 7.x, VBDOS 1.0. [4]

Выполнение арифметических операций

Основные базовые операторы (команды) языка Бейсик определяют ввод и вывод данных, присвоение, изменение порядка выполнения команд и циклические конструкции.

INPUT <список объектов ввода> - ввод данных;

PRINT < список объектов вывода> - вывод данных;

LET a= <арифметическое, логическое или символьное выражение> (служебное слово LET можно не писать) - присвоение;

IF <условие> THEN <оператор1>

ELSE <оператор2> - условный оператор;

GOTO <номер строки> -безусловный переход;

FOR х= 1 ТО n STEP h <оператор>

NEXTx - циклическая конструкция.

Часто используют, так называемый, внутренний ввод данных посредством операторов READ - DATA.

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

RUN - команда запуска программы на выполнение;

LIST - команда вывода текста программы на экран дисплея;

SAVE - команда сохранения текста программы в виде файла;

LOAD - загрузка ранее сохраненной программы из существующего файла.

Этих операторов и команд обычно хватает, чтобы написать и отладить любую вычисли-тельную программу.

1.1 Отыскать значение выражения https://www.bestreferat.ru/images/paper/21/67/8376721.pnghttps://www.bestreferat.ru/images/paper/22/67/8376722.png

https://www.bestreferat.ru/images/paper/40/67/8376740.png

https://www.bestreferat.ru/images/paper/41/67/8376741.png

Рис. 1. метод вычисления

1.1.1 программа, составленная с присвоением значений переменным

10 a = 6: b = 4: с = 3

20 d = a

30 IF d = 0 GOTO 60

40 END

50 PRINT (c * (a ^ 3 * b) — c ^ 2) * (c ^ 3 / a)

60 PRINT «а не обязано быть 0»

70 GOTO 10

1.1.2 программка, работающая в диалоговом режиме

10 INPUT «Введитеa,b,c»; a, b, c

20 d = a

30 IF d = 0 GOTO 60

40 END

50 PRINT (c * (a ^ 3 * b) — c ^ 2) * (c ^ 3 / a)

60 PRINT «а не обязано быть 0»

70 GOTO 10

Итог: 11623,5

1.2 Отыскать

https://www.bestreferat.ru/images/paper/42/67/8376742.png

https://www.bestreferat.ru/images/paper/43/67/8376743.png

Рис.2. метод вычисления

1.2.1 программа, составленная с присвоением значений переменным

10 a = 6: b = 4: с = 3

20 d = 9 – a^2

30 IF d = 0 GOTO 60

40 END

50 PRINT (a^2 + 3 * b ^ 3 * c) – (5 * c / (9 – a^2))

60 PRINT «а не обязано быть 3 либо -3»

70 GOTO 10

1.2.2 программка, работающая в диалоговом режиме

10 INPUT «Введитеa,b,c»; a, b, c

20 d = 9 – a^2

30 IF d = 0 GOTO 60

40 END

50 PRINT (a^2 + 3 * b ^ 3 * c) – (5 * c / (9 – a^2))

60 PRINT «а не обязано быть 3 либо -3»

70 GOTO 10

Итог: 612,5555

https://www.bestreferat.ru/images/paper/44/67/8376744.png

https://www.bestreferat.ru/images/paper/45/67/8376745.png

Рис.3. метод вычисления

1.3.1 программа, составленная с присвоением значений переменным

10 a = 6: b = 4: с = 3

20 d = 8 – a^3

30 IF d = 0 GOTO 60

40 END

50 PRINT (5 * a^2 * b ^ 3 * c) + (3 * c^2 / (8 – a^3))

60 PRINT «а не обязано быть 2 либо -2»

70 GOTO 10

1.3.2. программка, работающая в диалоговом режиме

10 INPUT «Введитеa,b,c»; a, b, c

20 d = 8 – a^3

30 IF d = 0 GOTO 60

40 END

50 PRINT (5 * a^2 * b ^ 3 * c) + (3 * c^2 / (8 – a^3))

60 PRINT «а не обязано быть 2 либо -2»

70 GOTO 10

Итог: 34559,87

2. Решение задач

2.1 Матрицы и определители

2.1.1 Отыскать сумму 2-ух матриц

https://www.bestreferat.ru/images/paper/46/67/8376746.png

https://www.bestreferat.ru/images/paper/49/67/8376749.png

https://www.bestreferat.ru/images/paper/47/67/8376747.png

https://www.bestreferat.ru/images/paper/48/67/8376748.png

Рис.4. метод вычисления

программа нахождения суммы 2-ух матриц

CLS

PRINT BBЕDИTЕ(A)

INPUT «BBЕDИTЕ a11,a12,a13»; a11, a12, a13

INPUT «BBЕDИTЕ a21,a22,a23»; a21, a22, a23

INPUT «BBЕDИTЕ a31,a32,a33»; a31, a32, a33

CLS

PRINT BBЕDИTЕ(B)

INPUT «BBЕDИTЕ b11,b12,b13»; b11, b12, b13

INPUT «BBЕDИTЕ b21,b22,b23»; b21, b22, b23

INPUT «BBЕDИTЕ b31,b32,b33»; b31, b32, b33

CLS

PRINT a11 + b11; a12 + b12; a13 + b13

PRINT a21 + b21; a22 + b22; a23 + b23

PRINT a31 + b31; a32 + b32; a33 + b33

END

Итог: https://www.bestreferat.ru/images/paper/50/67/8376750.png

2.1.2 Отыскать произведение 2-ух матриц

https://www.bestreferat.ru/images/paper/51/67/8376751.png

https://www.bestreferat.ru/images/paper/53/67/8376753.png

https://www.bestreferat.ru/images/paper/52/67/8376752.png

Рис.5. метод вычисления

программа нахождения произведения 2-ух матриц

CLS

PRINT BBЕDИTЕ(A)

INPUT «BBЕDИTЕ a11,a12,a13»; a11, a12, a13

INPUT «BBЕDИTЕ a21,a22,a23»; a21, a22, a23

INPUT «BBЕDИTЕ a31,a32,a33»; a31, a32, a33

CLS

PRINT BBЕDИTЕ(B)

INPUT «BBЕDИTЕ b11,b12,b13»; b11, b12, b13

INPUT «BBЕDИTЕ b21,b22,b23»; b21, b22, b23

INPUT «BBЕDИTЕ b31,b32,b33»; b31, b32, b33

CLS

PRINT a11 * b11 + a12 * b21 + a13 * b31; a11 * b12 + a12 * b22 + a13 * b32; a11 * b13 + a12 * b23 + a13 * b33 PRINT a21 * b11 + a22 * b21 + a23 * b31; a21 * b12 + a22 * b22 + a23 * b32; a21 * b13 + a22 * b23 + a23 * b33 PRINT a31 * b11 + a32 * b21 + a33 * b31; a31 * b12 + a32 * b22 + a33 * b32; a31 * b13 + a32 * b23 + a33 * b33 END

Итог: https://www.bestreferat.ru/images/paper/54/67/8376754.png

2.1.3 Вычислить определитель

https://www.bestreferat.ru/images/paper/55/67/8376755.png

https://www.bestreferat.ru/images/paper/58/67/8376758.png

https://www.bestreferat.ru/images/paper/56/67/8376756.png

https://www.bestreferat.ru/images/paper/59/67/8376759.png

https://www.bestreferat.ru/images/paper/57/67/8376757.png

Рис.6. метод вычисления

программа вычисления определителя

PRINTBBЕDИTЕ(A)

INPUT «BBЕDИTЕ a1,b1,c1»; a1, b1, c1

INPUT «BBЕDИTЕ a2,b2,c2»; a2, b2, c2

INPUT «BBЕDИTЕ a3,b3,c3»; a3, b3, c3

PRINT a1 * b2 * c3 + b1 * c2 * a3 + a2 * b3 * c1 — a3 * b2 * c1 — b3 * c2 * a1 — a2 * b1 * c3

Итог: -163

2.1.4 Решить систему уравнений по формулам Крамера

https://www.bestreferat.ru/images/paper/51/67/8376751.png

https://www.bestreferat.ru/images/paper/53/67/8376753.png

https://www.bestreferat.ru/images/paper/60/67/8376760.png

https://www.bestreferat.ru/images/paper/63/67/8376763.png

https://www.bestreferat.ru/images/paper/61/67/8376761.png

https://www.bestreferat.ru/images/paper/63/67/8376763.png

https://www.bestreferat.ru/images/paper/62/67/8376762.png

Рис.7. метод вычисления

программа решения системы уравнений по формулам Крамера

10 INPUT «BBЕDИTЕ KОЭФФИЦИЕHTЫ ПЕРВОГО УРАВНЕНИЯ»; a1, b1, c1, d1

20 INPUT «BBЕДИTЕ КОЭФФИЦИЕНТЫ второго УРАВНЕНИЯ»; a2, b2, c2, d2

30 INPUT «BBЕДИТЕ КОЭФФИЦИЕНТЫ ТРЕТЬЕГО УРАВНЕНИЯ»; a3, b3, c3, d3

40 d = a1 * b2 * c3 + b1 * c2 * a3 + a2 * b3 * c1 — a3 * b2 * c1 — b3 * c2 * a1 — a2 * b1 * c3

50 IF d = 0 GOTO 90

60 PRINT «x= «; (d1 * b2 * c3 + b1 * c2 * d3 + d2 * b3 * c1 — d3 * b2 * c1 — b3 * c2 * d1 — d2 * b1 * c3) / d

70 PRINT «y= «; (a1 * d2 * c3 + d1 * c2 * a3 + a2 * d3 * c1 — a3 * d2 * c1 — d3 * c2 * a1 — a2 * d1 * c3) / d

80 PRINT «z= «; (a1 * b2 * d3 + b1 * d2 * a3 + a2 * b3 * d1 — a3 * b2 * d1 — b3 * d2 * a1 — a2 * b1 * d3) / d

90 END

Итог: x=0,32; y=0,36; z=0,44

2.2 Базы векторного исчисления

Даны векторы https://www.bestreferat.ru/images/paper/29/67/8376729.png и https://www.bestreferat.ru/images/paper/30/67/8376730.png. Отыскать скалярное и векторное произведения векторов и угол меж ними

https://www.bestreferat.ru/images/paper/64/67/8376764.png

https://www.bestreferat.ru/images/paper/68/67/8376768.png

https://www.bestreferat.ru/images/paper/65/67/8376765.png

https://www.bestreferat.ru/images/paper/68/67/8376768.png

https://www.bestreferat.ru/images/paper/66/67/8376766.png

https://www.bestreferat.ru/images/paper/53/67/8376753.png

https://www.bestreferat.ru/images/paper/67/67/8376767.png

Рис.8. метод вычисления

программа нахождения скалярного и векторного произведения векторов, угла между ними

INPUT «BBЕДИТЕ КООРДИНАТЫ ПЕРВОГО ВЕКТОРА»; x1, y1, z1

INPUT «BBЕДИТЕ КООРДИНАТЫ второго ВЕКТОРА «; x2, y2, z2

ska = x1 * x2 + y1 * y2 + z1 * z2

PRINT «СКАЛЯРНОЕ ПРОИЗВЕДЕНИЕ = «; ska

x3 = y1 * z2 — z1 * y2

y3 = x1 * z2 — z1 * x2

z3 = x1 * y2 — y1 * x2

PRINT «BEKTOPHOE ПPOUЗBEДEHИE a*b= «; x3, y3, z3

a = (x1 ^ 2 + y1 ^ 2 + z1 ^ 2) ^ (1 / 2)

b = (x2 ^ 2 + y2 ^ 2 + z2 ^ 2) ^ (1 / 2)

ugl = ska / (a * b)

PRINT «КОСИНУС УГЛА МЕЖДУ ВЕКТОРАМИ РАВЕН»; ugl

Итог: -14; https://www.bestreferat.ru/images/paper/69/67/8376769.png; -0,367658

3. Графический режим
Qbasic

3.1 Построение проекции

Задание. Отыскать размер пластинки и выстроить ее проекции.

программа выполнения

m = 71

L = 51

H = 8

R = 9

SCREEN 12

WINDOW (0, 0)-(120, 90)

LINE (90, 90)-(90, 0)

LINE (0, 30)-(120, 30)

LINE (90 -1.1 * m, 30 + .1 * m)-(90 — .1 * m, 30 + .1 * m + L), , B

LINE (90 -1.1 * m, 30 — .1 * m — H)-(90 — .1 * m, 30 — .1 * m), , B

LINE (90 +.1 * m, 30 + .1 * m)-(90 + .1 * m + H, 30 + .1 * m + L), , B

CIRCLE (90- 1.1 * m + .1 * m + R, 30 + L — R), R

CIRCLE (90- .1 * m — .1 * m — R, 30 + .1 * m + .1 * m + R), R

CIRCLE (90- .1 * m — .1 * m — R, 30 + .1 * m + L — .1 * m — R), R

CIRCLE (90- 1.1 * m + .1 * m + R, 30 + .2 * m + R), R PRINT » ОБЪЕМРАВЕН»; m * L * H

3.2 Построение графиков функций

3.2.1 Выстроить график функции https://www.bestreferat.ru/images/paper/70/67/8376770.png

программа построения графика

SCREEN 12

WINDOW (-7, -6)-(7, 80)

X1 = -7: X2 = 4

H = (X2 — X1) / 100

Y1 = 3 * X1 ^ 2 + 8 * X1 + 3

PSET (X1, Y1)

FOR X = X1 TO X2 STEP H

Y = 3 * X ^ 2 + 8 * X + 3

LINE -(X, Y)

NEXT

3.2.2 Выстроить график функции https://www.bestreferat.ru/images/paper/71/67/8376771.png

программа построения графика

SCREEN 12

WINDOW (-1, -6)-(1, 40)

X1 = -2: X1 = 2

H = (X2 — X1) / 100

Y1 = 192 * X1 ^ 2 + 144 * X1 + 27

PSET (X1, Y1)

FOR X = X1 TO X2 STEP H

Y = 192 * X ^ 2 + 144 * X + 27

NEXT

3.2.3 Выстроить график функции https://www.bestreferat.ru/images/paper/72/67/8376772.png

программа построения графика

DEFFNA (X) = 3 / (8 * X + 3) ^ 2 SCREEN 12

WINDOW (-5, -5)-(5, 5)

X1 = -5: Y1 = FNA(X1)

X2 = -.4

X3 = -.3: Y3 = 27

X4 = 5

H = (X2 — X1) / 100

PSET (X1, Y1)

FOR X = X1 TO X2 STEP H

Y = FNA(X)

LINE -(X, Y)

NEXT

H = (X4 — X3) / 100

PSET (X3, Y3)

FOR X = X3 TO X4 STEP H

Y = FNA(X)

LINE -(X, Y)

NEXT

3.3 Геометрические преобразования

Выполнить поочередно геометрические преобразования:

— перенос;

— масштабирование;

— поворот относительно данной точки.

программа выполнения геометрических преобразований

SCREEN 12

WINDOW (-50, -10)-(20, 20)

X1 = -1

Y1 = 3

X2 = -9

Y2 = 1

DX = 1

DY = 3

SX = 5

SY = 3

LINE (X1, Y1)-(X2, Y2)’

LINE (X1 + DX, Y1 + DY)-(X2 + DX, Y2 + DY)’

LINE (X1 * SX, Y1 * SY)-(X2 * SX, Y2 * SY)’

LINE (8, 2)-(0, 0)

LINE ((X1 * COS(PI / 4) — Y1 * SIN(PI / 4)), (Y1 * SIN(PI / 4) + Y1 * COS(PI / 4)))-((0 * COS(PI / 4) — 0 * SIN(PI / 4)), (0 * SIN(PI / 4) + 0 * COS(PI / 4)))’

Выводы и заключение

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

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

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

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

Огромную помощь в данной работе оказала система помощи « help» (подсказок), имеющая контекстную структуру с возможностью копирования примеров из текста подсказок, что позволило освоить работу с языком программирования QBasic фактически без сторонней помощи.

Таким образом, основная цель курсовой работы по овладению основами программирования в среде Qbasic выполнена.

Перечень литературы

1. Е.Б. Боб. Л.В. Латников. А.М. Мальцев. А.Е. Потехин

Научный руководитель - д.т.н., профессор А.А. Шалыто

«ЭВОЛЮЦИЯ МЕТОДОВ И ТЕХНОЛОГИЙ ПРОГРАММИРОВАНИЯ»// «НАУЧНО-ТЕХНИЧЕСКИЙ ВЕСНИК ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ» - 2008.-№48.-с.191

2. B.К. АЛИЕВ «ЯЗЫКИ БЕЙСИК» - изд."СОЛОН - Р" - 2009г. – с.8.

3. Очков В.Ф., Рахаев М.А. «Этюды на языках QBasic,QuickBasic,Basic Compiler» - изд. «Финансы и статистика» - 1995г. – c.5

4. Очков В.Ф., Рахаев М.А. «Этюды на языках QBasic,QuickBasic,Basic Compiler» - изд. «Финансы и статистика» - 1995г. – c.335

5. Могилев А.В., Пак Н.И., Хённер Е.К. «Информатика» – 2004г. – с.290