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

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

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

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

Добавлен: 30.03.2023

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

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

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

Введение

История развития языков программирования насчитывает уже не одно десятилетие, и за это время различными учеными и энтузиастами было разработано уже более 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 Отыскать значение выражения 

Рис. 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