Файл: Основы программирования на языке QBasic (Теоретические основы программирования в среде QBASIC).pdf
Добавлен: 25.04.2023
Просмотров: 114
Скачиваний: 4
СОДЕРЖАНИЕ
Глава 1. Теоретические основы программирования в среде QBASIC
1.2 Системы и технологии программирования
Глава 2. Особенности программирования в среде QBASIC
2.1 Выполнение арифметических операций
2.1.1 Найти значение выражения
2.1.2 Найти значение выражения
2.3.1 Из элементов двух массивов составить один массив
2.3 Основы векторного исчисления
2.3.1 Программа нахождения скалярного и векторного произведения векторов, угла между ними
2.4 Графический режим Qbasic. Построение графика функций
2.4.1 Программа построения графика функции
2.4.2 Программа создания рисунка
Глава 1. Теоретические основы программирования в среде QBASIC
Бейсик (BASIC) – это сокращение английских слов Beginners All-purpose Symbolic Instruction Code, что в переводе означает “многоцелевой язык символических инструкций для начинающих”. Он был разработан профессорами Дартмутского колледжа (США) Т. Куртцем и Дж. Кемени в 1965 году для обучения студентов, незнакомых с вычислительной техникой. Этот язык, напоминающий Фортран, но более простой, быстро стал очень популярным. Особенно его популярность повысилась с появлением персональных компьютеров, где он стал одним из основных языков программирования. Существует множество версий языка Бейсик и все они имеют особенности. В каждой из них можно выделить общее подмножество, в котором отражены характерные (стандартные) грамматика, синтаксис и семантика языка.
1.1 Основы алгоритмизации
Как и все другие алгоритмические языки Qbasic имеет много уровней организации текста от алфавита до программы. Прежде чем описывать синтаксические правила построения конструкций языка и приводить сведения по процедурам и функциям перечислим его структурные элементы от нижнего уровня к верхнему. Начнём с набора неделимых «элементарных» частиц, составляющих его АЛФАВИТ.
Множество символов языка состоит из прописных и строчных букв латинского алфавита, десяти арабских цифр, знаков препинания, символов арифметических операций и нескольких других символов.
Программа, написанная на языке Qbasic, может обрабатывать любые символы. Но это не значит, что каждый из них может использоваться в тексте программы для обеспечения действий или объектов программы. При вводе текста программы можно использовать как прописные, так и строчные буквы.
Приведённый список не полон. Строго говоря, в этот список должны быть включены и невидимые символы, выполняющие функции разделителей, а именно – горизонтальная табуляция, перевод строки, возврат каретки и пробел. Наличие этих символов-невидимок проявляется в структуре текста, то есть в разделении его на аналоги слов и предложений естественного языка и в наличии отступов (абзацев), что важно для удобства чтения языка программистом. Но главное их назначение состоит в разделении его на структурные элементы более высокого уровня, из которых ближайшим к алфавиту является ЛЕКСЕМА.
Лингвистика определяет лексему как единицу словарного фонда языка. Компилирующие и интерпретирующие программы начинают обработку текстов программ с их лексического разбора. Компилирующие и интерпретирующие программы производят разбор текста программы посредством выделения знаков препинания и слов аналогично разбору русскоязычных текстов по частям и членам предложения.
При этом производится классификация лексем по следующим типам:
• специальные символы;
• идентификаторы;
• метки;
• числа;
• символьные строки;
• комментарии.
Особенность всех алгоритмических языков состоит в том, что состав их лексем строго определён только для специальных символов и ключевых слов. Остальные лексемы определяются произвольным выбором программиста (с ограничениями по зарезервированным словам, используемым для обозначения встроенных функций и процедур, и/или исходным данным решаемой задачи).
СПЕЦИАЛЬНЫЕ СИМВОЛЫ. Некоторые символы и их сочетания в языке Qbasic имеют строго определённое значение и поэтому могут считаться специальными символами и ключевыми словами этого языка. По сути дела ключевые слова также являются специальными символами языка. Необходимость использования «многосимвольных» специальных символов связана с ограниченным алфавитом, а удобство этой «многосимвольности» состоит в смысловом значении ключевых слов (с точки зрения их англоязычного происхождения). Как и в естественных языках, зачастую специальные символы имеют по несколько значений. Выбор конкретного значения определяется командой, в состав которой входит это ключевое или зарезервированное слово.
ИДЕНТИФИКАТОРЫ используются в качестве имён разнообразных субъектов (производящих действия) или объектов (предметов этих действий) программы. (Идентификация – это процедура проверки на совпадение). Во избежание путаницы разные действия и объекты программы должны иметь разные имена.
МЕТКИ используются для обозначения положения команды языка Qbasic в программе. Во всех современных алгоритмических языках приняты меры по ограничению использования меток в программах, но полностью исключить их не удаётся. Как наследство от исходного языка метка может быть целым числом. Но можно использовать в качестве метки и имя, за которым следует двоеточие.
ЧИСЛА используются в программе для того, чтобы задать значения числовых исходных данных.
СИМВОЛЬНЫЕ СТРОКИ используются в программе для того, чтобы задать значения символьных исходных данных. Они записываются в виде последовательности символов и должны быть заключены в кавычки для того, чтобы их можно было отличить от других лексем.
КОММЕНТАРИИ – это та часть текста программы, которая отбрасывается в процессе лексического разбора программы, ибо она предназначена не компьютеру, а программисту.
ВЫРАЖЕНИЕ является следующим по уровню структурным элементом языка. Оно описывает способ вычисления числового, строкового или логического значения и состоит из обозначений действий или функций, задающих порядок обработки данных, и обозначений или значений операндов, используемых для вычисления в качестве исходных данных.
В качестве операндов выражения могут использоваться любые объекты программы, которые могут принимать значения, в том числе и другие выражения. Вычисленное значение выражения должно быть использовано для выполнения некоторого законченного действия в программе, которое реализует оператор.
ОПЕРАТОР является главным элементом структуры всех алгоритмических языков, потому что он содержит смысловую информацию о работе программы. Подобно тому, как в естественных языках предложение содержит законченную мысль, оператор содержит приказ компьютеру произвести определённые действия. Аналогично классификации, выделяющей простые и сложные предложения (сложносочинённые и сложноподчинённые), операторы разделяются на простые и структурированные.
К простым операторам относятся те, которые не содержат в себе других операторов:
• оператор присваивания;
• операторы безусловной передачи управления;
• операторы условной передачи управления;
• процедурный оператор.
Среда Qbasic накладывает ограничение на длину строк, обрабатываемых редактором и интерпретатором. Максимальное количество символов в строке (включая комментарии и невидимые символы пробела и табуляции) не должно превышать 255.
Структурированные операторы, как правило, размещаются на нескольких строках, между которыми могут быть записаны вложенные в них операторы (как простые, так и структурированные). По этой причине после обнаружения первой лексемы структурированного оператора компилирующая или интерпретирующая программа в процессе чтения или исполнения текста ведёт поиск завершающей конструкции этого оператора.
Использование перечисленных операторов позволяет разрабатывать вполне работоспособные программы разнообразного назначения и уровня сложности. Но для более эффективной реализации алгоритмов оказался необходимым ещё один промежуточный уровень между оператором и программой, к которому относятся функция и процедура.
ФУНКЦИЯ И ПРОЦЕДУРА – это структуры, выполняющие вспомогательные алгоритмы и тем самым обеспечивающие выполнение основной программы. Они могут создаваться разработчиком прикладной программы в виде текстов, вкладываемых по определённым правилам в текст алгоритмы и называемых подпрограммами. Различие между функцией и процедурой в некотором роде подобно различию между выражением и оператором. Передача управления подпрограмме, вычисляющей функцию, производится по входящему в выражение имени функции. Вычисленное значение возвращается и может быть использовано в выражении или операторе. Для передачи управления подпрограмме, реализующей процедуру, используется процедурный оператор. После завершения процедуры, управление возвращается оператору, следующему за процедурным оператором.
Самой крупной структурой алгоритмического языка является программа.
ПРОГРАММА – это последовательность операторов, полностью задающая компьютеру алгоритм решения задачи. Как завершающий элемент структуры алгоритмического языка программа предназначена для работы в некоторой среде и может взаимодействовать с другими программами.
Для понимания смысла производимых командами действий и облегчения процесса изучения языка описания команд сгруппированы по функциональному принципу в следующем порядке:
• работа с ОЗУ;
• выражения, встроенные функции и процедуры;
• взаимодействие с операционной системой;
• работа с внешними (по отношению к ОЗУ – ЦП) устройствами;
• прерывания.
Для каждой команды описаны правила расположения ключевых и произвольных слов, задающие её СИНТАКСИС.
Алгоритм - ключевое понятие информатики, это то, без чего её просто не может быть.
Доналд Кнут, автор всемирно известного сборника «Искусство программирования» считает, что слово «алгоритм» произошло от имени автора известного арабского учебника по математике - Мухаммед бен Мусса ал - Хорезми (Abu Ja’far Mohammed ibn Musa al-Khowarizmi).
Алгоритм должен иметь точку входа - «начало» и точку окончания выполнения команд «конец», и так как любой алгоритм пишется для исполнителя, то этому исполнителю нужно сообщить (ввести) значения чисел mиn, позволяющих начать работу исполнителя корректно. На структурных схемах ввод или вывод информации указывается в фигуре «параллелограмм». Графически, т.е. с помощью структурной схемы, алгоритм Евклида отображён на рисунке 1.
n->m и r->n
Ввести значение m
Ввести значение n
Найти r-остаток от деленияm на n
r=0
Отобразительn
Да
Нет
Начало
Конец
Рисунок 1. Структурная схема алгоритма Евклида
Как мы можем заметить, в структурной схеме появился ещё участок «Отображение r»-это вывод результата исполнения алгоритма в понятной для человека форме. Таким образом, алгоритм Евклида строится по классической схеме: ввод исходных данных-обработка-вывод результатов.
Принято различать несколько типовых алгоритмических конструкций, которые являются как бы кирпичиками для формирования из них сложных алгоритмов: это линейная, разветвляющаяся и циклическая.
Линейная конструкция предполагает процесс выполнения последовательных шагов, причём данная последовательность не изменяется.
Разветвляющаяся конструкция предполагает выбор шага для выполнения на основе проверки истинности какого-либо условия.
Проверка условия
Условие
ложно
(нет)
Условие
истинно
(да)
Рисунок 3.Обозначение шагов для схемы разветвляющейся алгоритмической конструкции
Циклическая конструкция описывает некоторый процесс, который многократно повторяется.
Взять очередной шар из корзины
Переложить его в другую корзину
+1 в счётчик
Счётчик=20?
Да
Нет
Начало
Конец
Рисунок 4. Структурная схема циклического алгоритма с фиксированным числом повторений
1.2 Системы и технологии программирования
Особое место в ПО компьютера занимают системы программирования. Как правило, система программирования включает в себя три основных компонента:
- язык программирования - язык, на котором пишутся программы;
- транслятор (интерпретатор или компилятор)- программа, «переводящая» язык программирования на язык компьютера;
- библиотеку программ - заранее разработанные программы, реализующие типовые функции и вычислительные методы. В настоящие время таких типовых программ в мире насчитывается несколько тысяч.
В конце 1950-х гг. было создано несколько алгоритмических языков, самыми известными из которых являлись Algol-60 и FORTRAN-IV. Это были языки программирования, которые позволяли описывать алгоритмы без привязки к конкретной модели ЭВМ и использовали элементы естественного языка - английские слова и символы.