Основы программирования на языке QBasic (Что такое QBasic)
Содержание:
Введение
История развития языков программирования насчитывает уже не одно десятилетие, и за это время различными учеными и энтузиастами было разработано уже более 8000 различных языков программирования. Несмотря на то что многие наиболее ранние языки программирования оказали огромное влияние на развитие новых языков, зачастую сходство в их структуре обнаружить очень затруднительно.
Таким образом, даже современные языки семейства Basic за счет многочисленных надстроек и усовершенствованием уже мало чем напоминают своего прародителя разработанного в 1963 году преподавателями Дартмутского Колледжа (США).
Так как диалект QBasic является частью семейства языков программирования, прародителем которых является оригинальный Basic 1963 года, то рассуждать на данную тему в отрыве от основной информации по данному семейству языков будет не корректно.
Что такое QBasic
У истоков всех языков программирования лежат машинные коды. Формально, возможно, даже неправильно называть их именно языком, так как программирование в чистом виде представляло собой не какую-нибудь абстракцию, а жесткое задание инструкций аппаратуре, которые должно было выполнить вполне конкретное компьютерное «железо». Важно отметить, что программа в то время полностью соответствовала своему поведению, иными словами, невозможна была ситуация, когда программа выполняла действия, которые не мог объяснить программист. Отчасти это следствие относительной простоты программ, отчасти -досконального знания архитектуры компьютера самим программистом. Процесс программирования был сложным, но вместе с тем прозрачным.
Первым шагом к абстрагированию программиста от компьютерного «железа» стал язык ассемблера. Впервые появилось некое подобие переносимости программ для семейства машин со схожим набором инструкций возможно было написать одну ассемблерную программу, демонстрировавшую одинаковое поведение для всех представителей этого семейства. Однако наиболее значительный шаг с точки зрения эволюции - появление компилятора как промежуточного звена в цепочке «программист -компьютер». Отныне программист, с одной стороны, освобождался от необходимости досконально изучать архитектуру той машины, с которой работал, а с другой - целиком полагался на «интеллект» компилятора, своеобразного переводчика с языка программирования на язык, понятый машине.
Дальнейшее направление развития языков программирования вполне очевидно - раз появилась возможность абстрагировать программиста от платформы, необходима разработка как можно более универсальных средств такой абстракции. Фортран, Кобол, Бейсик, Паскаль, Си – все это отдельные точки на выбранном маршруте. [1]
Язык Бейсик относится к языкам высокого уровня. Он был разработан как язык программирования в 1963 году профессорами Дартмутского колледжа Джоном Кемени и Томасом Куртцом для специалистов, не являющихся профессиональными программистами. В 1974 году в качестве международного стандарта был утвержден MINIMAL BASIC(Beginer's All-purpose Symbolic Instruction Code -универсальный символический код для начинающих). С тех пор "пережил" несколько версий, сильно мутировал(от уже упомянутого Minimal Basic до объектно-ориентированного Microsoft 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 Отыскать значение выражения
Рис. 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 Отыскать
Рис.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
Рис.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-ух матриц
Рис.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
Итог:
2.1.2 Отыскать произведение 2-ух матриц
Рис.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
Итог:
2.1.3 Вычислить определитель
Рис.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 Решить систему уравнений по формулам Крамера
Рис.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 Базы векторного исчисления
Даны векторы и . Отыскать скалярное и векторное произведения векторов и угол меж ними
Рис.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; ; -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 Выстроить график функции
программа построения графика
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 Выстроить график функции
программа построения графика
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 Выстроить график функции
программа построения графика
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
- Международный валютный фонд: цели, функции, особенности (МЕЖДУНАРОДНЫЙ ВАЛЮТНЫЙ ФОНД: ЕГО ИСТОРИЯ, СУЩНОСТЬ И СТРУКТУРА)
- Роль мотивации в поведении организации (Теоретическое обоснование мотивация деятельности организации)
- Человеческий фактор в управлении организацией (Теоретические основы учета человеческого Фактора в управлении предприятием)
- Особенности коммуникаций в организации (Внутрикорпоративные коммуникации сотрудников)
- Анализ деятельности спортивной организации на примере ООО ФК «Зенит»
- Управление поведением в конфликтных ситуациях (Способы управления конфликтами)
- Финансовая политика и ее реализация в РФ (Исторический аспект)
- Обеспечение мотивации обучения в начальных классах (Понятие об учебной мотивации в психолого-педагогической литературе)
- Менеджмент человеческих ресурсов (Основные теории менеджмента человеческих ресурсов)
- Презумпции и фикции в праве (Определение правовых презумпции)
- Современный банковский маркетинг: методы и тенденции развития (Характеристика банковского маркетинга)
- Формы и системы оплаты труда на предприятии (Теоретические аспекты формирования оплаты труда на предприятии)