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

Основы программирования на языке QBASIC(Введение)

Содержание:

Введение

Потребность в разработке средств программирования напрямую связана с совершенствованием технических средств, развитием ЭВМ. На начальных этапах, для машин первого поколения приходилось писать программы на языке компьютера, в машинных кодах. Это очень сложный и долгий процесс. Программист был вынужден вручную писать коды операций и адреса операндов, выраженных в виде последовательностей единиц и нулей. Вероятность ошибки была очень высока, а отследить её было почти невозможно, как и редактировать и модифицировать такую программу. В период перехода к машинам второго поколения (50-е годы) возникла необходимость в создании больших и сложных программ, составление которых в машинных кодах резко снижало эффективность использования новых машин и замедляло процесс их внедрения. Именно на этот период пришлось появление первых алгоритмических языков программирования. Они имели наглядную форму реализации алгоритма, в них использовалась привычная математическая символика. Основным их преимуществом стала возможность их всестороннего применения.

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

История

Всё большее распространение использования компьютеров стало предпосылкой к появлению языка Бейсик.

В 1964 году Джоном Кемени и Томасом Курцем, преподавателями Дартмутского Колледжа, был создан язык Бейсик. Его реализовали студенты колледжа под наставничеством своих преподавателей. Через какое-то время язык оброс множеством диалектом и изначальную версию стали именовать как Dartmouth BASIC.

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

При разработке языка создатели ориентировались на определенные принципы. Новый язык должен был обладать характерными чертами:

  • простота в использовании для начинающих;
  • применимость к широкому спектру областей
  • возможность расширения функциональности для опытных программистов;
  • понятные сообщения об ошибках;
  • высокая скорость выполнения небольших программ;
  • возможность работы без знания аппаратного обеспечения;

Фортран 2 и Алгол 60 стали основой для разработки языка.

Новый язык был более пригодным для работы в режиме разделения времени и, чуть позже, при обработке текста и матричной арифметики. С самого начала Бейсик был компилируемым языком.

Рост

Бейсик уже был реализован на нескольких мини-компьютерах, но настоящий рост его использования начался с момента, когда язык Бейсик появился на микрокомпьютере Альтаир 8800. Множество языков программирования были слишком объёмными и не могли поместиться в небольшую память, установленную в таких машинах. Для такой медленной техники, как бумажная лента (позднее — аудиокассета), и без подходящего текстового редактора такой компактный язык, как Бейсик, был хорошей альтернативой.

В 1975 году Microsoft выпустила Altair BASIC. Для операционной системы CP/M был разработан диалект BASIC-80, который задал темп развития языка.

В 1970—1980 годах Бейсик обрел множество версий и диалектов высокого уровня, большинство которых были несовместимых между собой из-за недостаточной стандартизации, так как для каждого компьютера разрабатывалась собственная версия. Во времена роста использования домашних и учебных компьютеров, Бейсик являлся основным высокоуровневым языком.

Зрелость

Более стремительное развитие языка пришлось на 1970-1980 года.

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

Создавались всё более новые версии Бейсика, такие как IBM Advanced BASIC, GW-BASIC, QuickBASIC. На основе Бейсика создавались и иные средства программной разработки, например, язык Turbo Pascal. Синтаксис Бейсика был использован в некоторых языках для создания совершенно новой системы. Чтобы увеличить производительность Бейсик-программ были разработаны полноценные компиляторы.

В середине 1980-х Бейсик стал основным языком в программируемых калькуляторах.

К концу 1980-х годов персональные компьютеры стали намного мощнее, появилось множество новых возможностей, реализация которых в Бейсик была не удобна. На компьютерах появились недорогие трансляторы промышленных языков (прежде всего — Паскаля и Си) с новыми и удобными программными средствами и полезными библиотеками (например, Borland Pascal с библиотекой Turbo Vision). Хотя многие версии Бейсика ещё использовались и продавались, он не мог справлятся с таким соперничеством.

Общие сведения о языке программирования Qbasic

QBasic — это интегрированная среда разработки (IDE) для реализации языка программирования BASIC, основанная на QuickBasic.

Как и QuickBasic, QBasic — язык структурного программирования, имеющий поддержку подпрограмм и условных циклов. Вместо нумерации строк введены переходы с использованием меток. QBasic имел ограниченную поддержку определяемых типов пользователя (структур) и нескольких простых типов.

QBasic задумывался как альтернатива для GW-BASIC. QBasic 1.0 включался в MS-DOS 5.0 и выше, Windows 95, Windows NT 3.x и Windows NT 4.0. Начиная с версии Windows 2000, компания Microsoft перестала включать QBasic в свои операционные системы.

В основе языка QBasic лежит ранняя версия компилятора QuickBASIC 4.50, но ни компилятор, ни компоновщик не был унаследован. До MS-DOS 7 редактор MS-DOS требовал наличие QBasic.

QBasic предоставлял современную интегрированную среду разработки, имеющую отладчик со множеством особенностей (оперативная оценка выражений, модификация кода и т.д.) в течение довольно продолжительного периода. QBasic может быть совместим почти со всеми версиями DOS и Windows, а если использовать эмулятор DOSBox может выполняться в ОС Linux, FreeBSD.

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

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

возможность легко выполнять такие операции, как управление текстовым и графическим экраном, обработка символьных строк и т.п.

Преимуществом QBASIC является возможность работы в режиме интерпретации, который делает процесс отладки программ намного проще: выполнение практически каждой команды можно проверить сразу после написания, зажав сочетание клавиш Shift +F5.

Программирование на языке QBASIC

Арифметические выражения

Бейсик имеет собственный синтаксис и программы на нем записываются в виде последовательностей символов, среди которых арабские цифры, русские и латинские буквы, знаки препинания (, ; : " ' ?) , знаки операций (* / - + < > <= >= = <> .), специальные символы (% & ! # $ ). Исходные данные и результаты вычислений обозначаются переменными. Идентификатор или имя переменной – это последовательность латинских букв и цифр, начинающаяся с буквы. Для записи чисел используется десятичная система счисления, в десятичных дробях для обозначения разряда ставится точка: 0, - 17, 0.25, - 34.85. Переменные и числа - это распространённые и простые элементы программы. Для составления более сложных выражений из чисел и переменных используются знаки сложения, вычитания, умножения, деления, возведения в степень (+, -, *, /, ^ ). Вычисление значений выражений производится в соответствии с обычными правилами старшинства операций:

1) возведение в степень - ^

2) умножение, деление *, /

3) сложение, вычитание +, -

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

ABS ( х) - модуль х

SQR ( х) - корень квадратный из х

INT ( х ) - целая часть х

SIN ( х) - синус х (аргументом служит радианная мера угла)

COS ( х ) - косинус х

TAN ( x ) - тангенс х

ATN ( x ) - арктангенс х

LOG ( x ) - натуральный логарифм х

EXP ( x ) - экспонента х

SGN (x) - определение знака числа х

Ввод и вывод данных.

Оператор ввода с клавиатуры: INPUT ["текст";] X1, [X2, X3... XN]

Параметры, стоящие в квадратных скобках не обязательны; X1, X2, ... XN – идентификаторы переменных. При выполнении этого оператора на экране появится текст, а значения переменных X1, X2, ... XN будут введены с клавиатуры.

Операторы блока данных

READ X1, X2, X3, ... XN где X1,X2,..XN - это имена переменных

DATA C1, C2, C3, ... CN где C1, C2, ... CN - это значения

При выполнении этих операторов переменной X1 будет присвоено значение C1, X2 присвоено значение C2... Оператор DATA может стоять в любом месте программы. Считывать данные из хранилища DATA позволяют некоторые операторы READ.

Оператор вывода на экран

PRINT S1[ ;S2; S3 ...] где S1, S2 ... SN - списки

Список это :

1) имя переменной, значение которой нужно вывести на печать;

2) арифметическое выражение, значение которого нужно вывести на печать;

3) текст, стоящий в кавычках.

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

1) , - списки отделяются друг от друга шагом табуляции, равным 8 пробелам; 2) ; - списки печатаются вплотную друг к другу.

Чтобы управлять выводом используется специальный оператор: LOCATE X,Y где X - номер строки экрана 1<=X<= 24 , Y - номер столбца экрана 1<=Y<= 80. При помощи этого оператора указывается место для печати.

Операторы перехода

Операторы условного перехода предназначены для реализации на языке QBasic алгоритмических конструкций ветвления. Ветвление – это такая алгоритмическая конструкция, при котором выполнение одного действия зависит от выполнения другого действия или условия. Условие - это логическое выражение, содержащее знаки сравнения  и логические операции.

       Логическая операция NOT (отрицание) выполняется над простым логическим выражением: NOT (a> b ). Логическое выражение может принимать значение истина - TRUE (истина) или ложь - FALSE. Логические функции и выражения используются в операторах ветвления и цикла. Порядок выполнения операций также соответствует привычным правилам: первыми выполняются операции в скобках, далее логическое умножение, затем логическое сложение.

Существует два вида операторов перехода: операторы безусловного перехода и операторы условного перехода.

Оператор безусловного перехода осуществляет переход из одной

строки программы к другой, отмеченной номером или меткой. Общий вид оператора:

GOTO N где N - номер строки или метки оператора, на который происходит переход в программе.

Операторы условного перехода.

https://www.bibliofond.ru/wimg/1/66430.files/image023.gif https://www.bibliofond.ru/wimg/1/66430.files/image024.gif

Полная форма ветвления Неполная форма ветвления Двум формам ветвления, полной и неполной, соответствуют два вида операторов: полной и неполной альтернативы.

I. Полная альтернатива (предусмотрены команды в ветви "ДА" и в ветви "НЕТ").

1) Линейная форма записи (оператор записывается в одной строке) Условие выполняется "ДА"

https://www.bibliofond.ru/wimg/1/66430.files/image025.gif

IF условие THEN блок операторов 1 ELSE блок операторов 2

https://www.bibliofond.ru/wimg/1/66430.files/image026.gif

Условие не выполняется "НЕТ"

Работа оператора: в зависимости от того выполняется или не выполняется условие (условие - логическое выражение, содержащее знаки сравнения и логические операции). Когда выражение условия является истиной, выполняется блок операторов 1, если выражение условия ложно, тогда выполняется блок операторов 2.

2) Блочная форма записи:

II. Условный оператор неполной альтернативы:

IF условие THEN блок операторов

Циклы.

Циклы в языке QBASIC создаются двумя способами:

  • повторение блока операторов заданное количество раз (цикл со счетчиком);
  • повторение блока операторов в цикле, пока выполняется (или не выполняется) определенное условие.

Цикл со счетчиком FOR... NEXT

Оператор цикла выполняет некоторый алгоритм, в котором

различные команды повторяются определенное количество раз. Такой цикл имеет следующий вид:

FOR  K=K1   TO   K2 STEP  K3   - заголовок цикла      

-   тело цикла -

- NEXT K                                       - конец цикла          

FOR - имя оператора; К - переменная управления циклом (целого типа); К1, К2, К3 - начальное, конечное значения и шаг изменения величины К соответственно, могут быть выражены любыми арифметическими конструкциями; ТО, SТЕР - переводится - "до", "шаг"; тело цикла представляет собой небольшую отдельную программу, состоящую из некоторого количества операторов языка Бейсик;   NEXT -  оператор конца цикла.

Схема выполнения цикла выглядит следующим образом:

https://www.bibliofond.ru/wimg/1/66430.files/image029.gif

где                                         

K < K2,  если K3 > 0   

< условие  >  =      <                                         

K > K2 ,если  K3 < 0

Другими словами, операторы FOR и NEXT управляют переменной К, изменяя её значения от К1 до К2 с шагом равным значению К3, и обеспечивают выполнение блока операторов, стоящего между FOR и NEXT для каждого значения К.

При реализации этого цикла следует обратить внимание на некоторые ограничения:

1. Не следует задавать новые значения величин К1, К2, К3 когда процесс операторов FOR и NEXT уже выполняется.

2. Вход в цикл невозможен без оператора FOR.

Цикл WHILE... WEND

Конструкция WHILE... WEND обеспечивает выполнение блока команд до тех пор, пока выражение, заданное в условии WHILE имеет значение "Истина". Оператор цикла WHILE... WEND имеет следующий вид:

WHILE логическое выражение

-- блок команд –

WEND

Когда цикл завершен, выполняется команда следующая после WEND.

Если значение логического выражения условия – "Ложь", выполнение блока операторов не произойдет. Конструкция WHILE...  WEND также позволяет создавать вложенные циклы, каждый из которых содержит свой подцикл WHILE...  WEND. Из этого цикла невозможно выйти до того момента, пока

не будет завершена работа оператора.

Строковые переменные

Язык Бейсик позволяет обрабатывать не только числовые, но также текстовые, символьные данные. Для этого используют символьные (или строковые, литерные) константы, переменные и выражения. Символьная константа - это строка символов, заключенная в кавычки. Значением константы – это последовательная строка символов, из которых она состоит, не считая кавычек. Чтобы задать пустую строку, нужно поставить два знака кавычек подряд. Символьная переменная также имеет идентификатор (имя), в конце которого ставиться знак $. Значение символьной переменной - строка символов. Для строк может выполняться операция сравнения: строки равны, если они имеют одинаковую длину и все их символы соответственно идентичны. Одна строка считается меньше другой, если она совпадает с началом другой строки. В остальных случаях всё зависит от кода первого несовпадающего символа - меньше та строка, у которой он имеет позицию более близкую к началу.

Операции, выполняемые для строковых переменных

а) строке может быть присвоена текстовая константа:

A$="СТРОКА СИМВОЛОВ"

T$="" - присвоение пустой строки

б) печать значений строковых переменных:

PRINT A$, T$

в) склейка двух строк:

T$=A$+B$

P$="СЛОВО: "+P$

C$="СКЛЕЙКА"+" "+"СТРОК"

г) ввод значений строковых переменных с клавиатуры:

INPUT A$, B$

- при вводе строку не обязательно заключать в кавычки.

Функции, выполняемые над символьными переменными:

VAL(A$) - перевод строки в число;

CHR$(L) - выводит символ по коду данного числа;

ASC(S$) - выводит код первого символа строки

SRT$(K) - преобразует число в символьную строку, которая состоит из последовательно расположенных десятичных цифр;

LEN(F$) - выводит длину символьного выражения;

LEFT$( F$, N) - удаляет определенное количество символов слева;

RIGHT$ (F$, N) - удаляет определенное количество символов справа;

MID$(F$, N1, N2) – удаляет из строки определенное количество символов,

Примеры решения задач с помощью программ, реализованных на языке QBASIC

Исходные данные для разработки темы

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

Задание 1. Найти значение выражения:

1.1

1.2

1.3

Задание 2. Найти сумму двух матриц

Задание 3. Найти произведение двух матриц

Задание 4. Вычислить определитель

Задание 5. Решить систему уравнений по формулам Крамера

Реализация решения задач на QBASIC

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

Найти значение выражения

Рис. 1. Алгоритм вычисления

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

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

Найти значение выражения \

Рис.2. Алгоритм вычисления

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

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

Рис.3. Алгоритм вычисления

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

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

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

Найти сумму двух матриц

Начало

Ввод элементов матриц

Вывод результата

Конец

Рис.4. Алгоритм вычисления

Программа нахождения суммы двух матриц

Найти произведение двух матриц

Рис.5. Алгоритм вычисления

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

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

Рис.6. Алгоритм вычисления

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

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

Рис.7. Алгоритм вычисления

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

Основы векторного исчисления

Даны векторы и . Найти скалярное и векторное произведения векторов и угол между ними

Рис.8. Алгоритм вычисления

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

Вывод

Стремительное развитие технических средств, привело к разработке алгоритмических языков, которые упростили процесс программирования ЭВМ. Язык BASIC долгое время был одним из самых удобных алгоритмических языков, он стал основой для создания новых языков высокого уровня, а также имел множество диалектов. Один из диалектов языка BASIC – QBASIC имел понятную структуру и простой синтаксис, благодаря чему был идеальным решением для обучения новичков. Также он отлично справляется со многими задачами, которые необходимо реализовать при помощи компьютера.

Для решения задачи с использованием ЭВМ необходимо разбить весь

процесс на три этапа:

1)постановка задачи,

2)написание алгоритма решения,

3)реализация алгоритма на языке программирования. В данной работе использовалась среда QBASIC.

Решение поставленных задач и их программная реализация помогает овладеть базовыми средствами программирования на языке QBASIC.

Среда Qbasic имеют встроенную систему подсказок, помогающую изучать её синтаксис самостоятельно.

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

Список литературы

1. Могилев А.В. Информатика. – М., 1999. – 816 с.

2. Сафронов И.К. Бейсик в задачах и примерах. –– СПб.: BHV, 2001. – 215 с.

3. Семашко Г.Л. Программирование для всех. – М.: Наука, 1986. – 325 с.

4.Ставнистый Н.Н. Qbasic в математике. Решение задач с помощью компьютера. Ч1. – М.: СОЛОН-Р, 2001. – 143 с.

5. Федоренко Ю. Алгоритмы и программы на QBASIC. - СПб.: Питер, 2002. – 287 с.

6. Хомоненко А.Д. Основы современных компьютерных технологий. – СПб.: КОРОНА принт, 1998. – 448 с.

7. Чернов Б.И. Программирование на алгоритмических языках Бейсик, Фортран, Паскаль. – М.: Просвещение, 1991. – 192 с.