70190

ЯЗЫК ПРОГРАММИРОВАНИЯ QuickBASIC

Контрольная

Информатика, кибернетика и программирование

Как и все другие алгоритмические языки Qbasic имеет много уровней организации текста от алфавита до программы. Прежде чем описывать синтаксические правила построения конструкций языка и приводить сведения по процедурам и функциям перечислим его структурные элементы от нижнего уровня к верхнему.

Русский

2014-10-16

236 KB

1 чел.

УРАЛЬСКИЙ ФИЛИАЛ СИБИРСКОГО ГОСУДАРСТВЕННОГО

УНИВЕРСИТЕТА ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ

КОНТРОЛЬНАЯ РАБОТА

ПО ИНФОРМАТИКЕ

ТЕМА: «ЯЗЫК ПРОГРАММИРОВАНИЯ QuickBASIC»

СТУДЕНТ: АФАНАСЕНКО Ю.И.

ГРУППА: С-14

ШИФР: Е014С002

РУКОВОДИТЕЛЬ: КОНДРАТЬЕВ В.П.

ЕКАТЕРИНБУРГ

2002


СОДЕРЖАНИЕ

[1]
ВВЕДЕНИЕ

[2]
СТРУКТУРА ЯЗЫКА QBASIC

[3]
ОПЕРАТОРЫ ЯЗЫКА QBASIC.

[3.1] Простые операторы

[3.2] Составные операторы

[3.3] Процедуры и функции

[3.4] Основные операторы языка QBASIC

[4]
РЕШЕНИЕ УРАВНЕНИЙ МЕТОДОМ ХОРД

[5]
АЛГОРИТМ ПРОГРАММЫ РЕШЕНИЯ УРАВНЕНИЯ

[6]
ПРОГРАММА

[7]
ЛИТЕРАТУРА

[8]
РЕЦЕНЗИЯ ПРЕПОДАВАТЕЛЯ:

[8.1]  


ВВЕДЕНИЕ

Датой рождения наиболее популярного диалогогово языка программирования БЕЙСИК считается  1мая 1964 г. Более чем 35 лет назад сотрудникам Дартмундского колледжа во главе с Дж.Кемени и Т.Куртцем удалось запустить разработанный ими интерпретатор и выполнить первую БЕЙСИК-программу.

Развитие нового алгоритмического языка на первом этапе диктовалось в основном шестью авторскими редакциями (Дартмунд,1965-1975 гг.), разработки которых поддерживались фирмой General Elektric.Массовому распространению БЕЙСИКА содействовал интерес , который проявили к нему такие передовые производители мини-ЭВМ, как Digital Equipment Corporation (PDP/8,PDP/11), Hewlet-Packard (HP-21X,HP-2000), Wang Laboratories (Wang-2200).Среди оригинальных разработок для отечественных ЭВМ того периода наиболее известны реализации БЕЙСИК-компилятора на ЭВМ типа М-20 (Горьковский университет,1970 г.), интерпретирующих систем BASIC-6 на ЭВМ БЭСМ-6 (Вычислительный центр СО АН СССР , 1972 г.) и Бейсик-Гамма на ЭВМ Минск-32 (Институт математики АН БССР, 1974 г.).

Второе поколение Бейсик-систем (1975-1985 гг.) тесно связаны с появлением первых персональных ЭВМ, которые сначала обладали сравнительно малой оперативной памятью (32-64 Кбайта). Для них Бейсик-интерпретатор стал поистине "золотой жилой". Именно с него начал свою карьеру Билл Гейтс,основавший фирму. Microsoft Corporation В середине 70-х годов он разработал интерпретатор BASIC-80,который функционировал на наиболее популярных восьмиразрядных микропроцессорах того времени Zilog-80 и Intel-8080. Игровая ориентация бытовых ПЭВМ привела к появлению таких языковых средств , как элементы машинной графики , процедуры организации звуковых эффектов и взаимодействия с активными внешними устройствами. Для Бейсик-систем того времени уже характерны достаточно развитые процедуры обработки текстовой информации и управления файлами. Наиболее полно эти возможности представлены в одной из лучших версий второго поколения -GW-BASIC.Среди оригинальных отечественных разработок того периода отметим серию интерпретаторов компилирующего типа Бейсик/F, Бейсик/Fs и Бейсик/Fsc,разработанных на Рижском производственном объединнении ВЕФ и доведенных до уровня програмного продукта.

В 1984-1985 гг. наметились два новых подхода к развитию систем программирования на базе Бейсика. Один из них , активно поддерживаемый фирмами Microsoft Corporation и Borland International, был направлен на создание быстрых систем компилирующего типа,обеспечивающих достаточно комфортабельные условия работы для пользователей.Для поддержания Бейсика на современном уровне в его состав включались наиболее распространенные элементы структурного программирования , вводились новые типы данных , предпринимались усилия по организации взаимодействия с внешними процедурами, по раздельной компиляции модулей и использованию библиотек программ. Так появились серии Quick- и Turbo-систем, которые вплотную приблизились по своим возможностям к профессиональным системам программирования на базе языков Паскаль и Си. Второе направление , связанное с принципиальным совершенствованием стуктуры языка и попыткой его стандартизации, было положено авторами Бейсика ,которые 20 лет спустя опубликовали книгу ''Back to BASIC''.В ней была изложена версия , получившая название ''истинного Бейсика '' (True Basic).Среди других версий , которые были реализованны на IBM-PC и примыкали ко второму направлению, следует отметить системы Basic-Standart (поставлялись в комплекте с ПЭВМ Роботрон-1910) и Better-BASIC (разработка американской фирмы Summit Software Technology).

Трезво оценивая обстановку , сложившуюся к концу 2000 г. на рынке програмных продуктов вокруг Бейсик-систем третьего поколения , предпочтение отдается более распространенным реализациям фирм Microsoft Corporation (GW-BASIC, Quick-BASIC) и Borland International (Turbo-BASIC).

  1.  
    СТРУКТУРА ЯЗЫКА QBASIC

Как и все другие алгоритмические языки Qbasic имеет много уровней организации текста от алфавита до программы. Прежде чем описывать синтаксические правила построения конструкций языка и приводить сведения по процедурам и функциям перечислим его структурные элементы от нижнего уровня к верхнему. Начнём с набора неделимых «элементарных» частиц, составляющих его АЛФАВИТ.

Множество символов языка состоит из прописных и строчных букв  латинского алфавита, десяти арабских цифр, знаков препинания, символов арифметических операций и нескольких других символов. Программа, написанная на языке Qbasic, может обрабатывать любые символы. Но это не значит, чтокаждый из них может использоваться в тексте программы для обеспечения действий или объектов программы. Например, возможности употребления русской азбуки ограничиваются выдачей текста на дисплей, принтер, в файл или записью комментариев в текст программы при соблюдении определённых синтаксических правил. При вводе текста программы можно использовать как прописные, так и строчные буквы. Но интепретатор не различает их, так как во внутреннем представлении интепретирующей программы все буквы (кроме строковых данных) приводятся к прописным. Приведённый список не полон. Строго говоря, в этот список должны быть включены и невидимые символы, выполняющие функции разделителей, а именно – горизонтальная табуляция, перевод строки, возврат каретки и пробел. Наличие этих символов-невидимок проявляется в структуре текста, то есть в разделении его на аналоги слов и предложений естественного языка и в наличии отступов (абзацев), что важно для удобства чтения языка программистом. Но главное их назначение состоит в разделении его на структурные элементы более высокого уровня, из которых ближайшим к алфавиту является ЛЕКСЕМА.

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

При этом производится классификация лексем по следующим типам:

  •  специальные символы;
  •  идентификаторы;
  •  метки;
  •  числа;
  •  символьные строки;
  •  комментарии.

Особенность всех алгоритмических языков состоит в том, что состав их лексем строго определён только для специальных символов и ключевых слов. Остальные лексемы определяются произвольным выбором программиста (с ограничениями по зарезервированным словам, используемым для обозначения специальные символы. Некоторые символы и их сочетания в языке Qbasic имеют строго определённое встроенных функций и процедур, и/или исходным данным решаемой задачи) и поэтому могут считаться специальными символами и ключевыми словами этого языка. По сути дела ключевые слова также являются специальными символами языка. Необходимость использования «многосимвольных» специальных символов связана с ограниченным алфавитом, а удобство этой «многосимвольности»  состоит в смысловом значении  ключевых слов ( с точки зрения их англоязычного происхождения). Как и в естественных языках зачастую специальные символы имеют по несколько значений. Выбор конкретного значения определяется командой, в состав которой входит это ключевое или зарезервированное слово.

ИДЕНТИФИКАТОРЫ  используются в качестве имён разнообразных субъектов (производящих действия) или объектов (предметов этих действий) программы. (Идентификация – это процедура проверки на совпадение). Во избежание путаницы разные действия и объекты программы должны иметь разные имена. Разумеется, эти имена в силу требования уникальности ( единственности) не должны совпадать ни с каким из  ключевых или зарезервированных слов. Имя должно начинаться с буквы и может состоять не более чем из 40 символов. Допустимые символы – буквы (AZ, az ), цифры (0 – 9) и точка ( . ). В некоторых случаях имя может заканчиваться одним из следующих пяти символов ( !  #  $  %  & ).

МЕТКИ используются для обозначения положения команды языка Qbasic в программе. Во всех современных алгоритмических языках приняты меры по ограничению использования меток в программах, но полностью исключить их не удаётся. Как наследство от исходного языка метка может быть целым числом (в BASIC все строки программы нумеровались). Но можно использовать в качестве метки и имя, за которым следует двоеточие.

ЧИСЛА  используются в программе для того, чтобы задать значения числовых исходных данных.

СИМВОЛЬНЫЕ СТРОКИ  используются в программе для того, чтобы задать значения символьных исходных данных. Они записываются  в виде последовательности символов и должны быть заключены в кавычки для того, чтобы их можно было отличить от других лексем.

КОММЕНТАРИИ – это та часть текста программы, которая отбрасывается в процессе лексического разбора программы, ибо она предназначена не компьютеру, а программисту.

ВЫРАЖЕНИЕ является следующим по уровню структурным элементом языка. Оно описывает способ вычисления числового, строкового или логического значения и состоит из обозначений действий или функций, задающих порядок обработки данных, и обозначений или значений операндов, используемых для вычисления в качестве исходных данных. В качестве операндов выражения могут использоваться любые объекты программы, которые могут принимать значения, в том числе и другие выражения. Вычисленное значение выражения должно быть использовано для выполнения некоторого законченного действия в программе, которое реализует оператор.

ОПЕРАТОР является главным элементом структуры всех алгоритмических языков, потому что он содержит смысловую информацию о работе программы. Подобно тому, как в естественных языках предложение содержит законченную мысль, оператор содержит приказ компьютеру произвести определённые действия. Аналогично классификации, выделяющей простые и сложные предложения (сложносочинённые и сложноподчинённые), операторы разделяются на простые и структурированные.

К простым операторам относятся те, которые не содержат в себе других операторов:

  •  оператор присваивания;
  •  операторы безусловной передачи управления;
  •  операторы условной передачи управления;
  •  процедурный оператор.

Как правило, в одной строке записывается один простой оператор. В этом случае разделителями простых операторов служит пара символов – возврат каретки и перевод строки. В случае крайней необходимости можно записать несколько простых операторов в одной строке, используя в качестве разделителя между ними двоеточие ( : ).

Среда Qbasic накладывает ограничение на длину строк, обрабатываемых редактором и интерпретатором. Максимальное количество символов в строке (включая комментарии и невидимые символы пробела и табуляции) не должно превышать 255. Структурированные операторы, как правило, размещаются на нескольких строках, между которыми могут быть записаны вложенные в них операторы (как простые, так и структурированные). По этой причине после обнаружения первой лексемы структурированного оператора компилирующая или интерпретирующая программа в процессе чтения или исполнения текста ведёт поиск завершающей конструкции этого  оператора. Поскольку способности человека к такому поиску ограничены, для его же блага настоятельно рекомендуется начало строк части текста, вложенной в структурированный оператор, сдвигать вправо как минимум на две позиции относительно начала строк этого оператора.

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

ФУНКЦИЯ И ПРОЦЕДУРА – это структуры, выполняющие вспомогательные алгоритмы и тем самым обеспечивающие выполнение основной программы. Они могут создаваться  разработчиком прикладной программы в виде текстов, вкладываемых  по определённым правилам в текст алгоритмы ы и называемых подпрограммами. Наиболее часто используемые вспомогательные алгоритмы общего применения реализуются фирмой, разрабатывающей программное обеспечение. Эти встроенные функции и процедуры входят в комплект поставляемых программ. Они, как правило, достаточно разнообразны, существенно облегчают труд программиста и эффективны, поскольку написаны на более близком к машинному языку уровне. Функции и процедуры возникли в результате развития подпрограмм, широко использовавшихся  уже на начальном этапе развития программирования с целью повышения его эффективности. Различие между функцией и процедурой в некотором роде подобно различию между выражением и оператором. Передача управления подпрограмме, вычисляющей функцию, производится по входящему в выражение имени функции. Вычисленное значение возвращается и может быть использовано в выражении или операторе. Для передачи управления подпрограмме, реализующей процедуру, используется  процедурный оператор. После завершения процедуры управление возвращается оператору, следующему за процедурным оператором.

Самой крупной структурой алгоритмического языка является программа.

ПРОГРАММА – это последовательность операторов, полностью задающая компьютеру алгоритм решения задачи. Как завершающий элемент структуры алгоритмического языка программа предназначена для работы в некоторой среде и может взаимодействовать с другими программами.

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

  •  работа с ОЗУ;
  •  выражения, встроенные функции и процедуры;
  •  взаимодействие с операционной системой;
  •  работа с внешними (по отношению к ОЗУ – ЦП) устройствами;
  •  прерывания.

Для каждой команды описаны правила расположения ключевых и произвольных слов, задающие её синтаксис

Для выделения команды из описания синтаксиса её текст набран полужирным равноширинным шрифтом и начинается с первой позиции строки (без отступа от левого края поля страницы). При этом применяются следующие правила:

Прописными буквами записываются ключевые или зарезервированные слова Qbasic. Возможность их умолчания или необходимость выбора варианта их использования обозначается наличием квадратных или фигурных скобок.

KEYWORDS

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

placeholders

Необязательность использования элементов команды обозначается квадратными скобками, в которые они заключаются. В пояснениях приводится информация об исполнении команды в случае умолчания её необязательных элементов.

[optional item]

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

{choice1  | choice2  |  … choiceN}

Многоточие по горизонтали означает возможность многократного повторения предыдущего элемента команды.

item, item, …

Многоточие по вертикали означает возможность использования произвольного количества других команд в обозначенном промежутке.

Beginning  keyword

.

.

.

Ending  keyword

Поскольку квадратные и фигурные скобки, многоточие и вертикальная чёрточка не входят в алфавит языка Qbasic, перечисленные выше условные обозначения не приведут к путанице. В случае ошибки в синтаксисе (но не в смысловом содержании команды!) редактор в среде Qbasic выдаст замечание.

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

Если однострочная команда не умещается на одной книжной строке, то она переносится на другую.

  1.  
    ОПЕРАТОРЫ ЯЗЫКА QBASIC.

Для записи любого алгоритма в принципе достаточно использовать операторы трёх видов: присваивания, безусловной передачи управления и условной передачи управления. Но программа, состоящая из таких операторов, будет содержать много меток (вероятный источник ошибок) и её будет довольно трудно читать и понимать. Аналогично, любое число может быть записано только единицами и нулями, то есть в двоичной системе. Но человеку удобнее пользоваться десятичной системой счисления. Наличие большего количества разновидностей операторов обусловлено желанием разработчиков языка обеспечить программиста средствами разнообразными и удобными для тех или иных особенностей разрабатываемой программы. В качестве примера можно упомянуть составные операторы, позволяющие обходиться без меток. После трансляции или в процессе интерпретации составные операторы на самом деле будут сводиться к командам машинного языка, часть из которых включает в себя адреса других команд (по сути дела те же метки!). Но использование безметочных операторов облегчает жизнь программисту, избавляя его от необходимости забивать свою голову излишними подробностями. Конечно, количество операторов в языке Qbasic существенно превышает упомянутый минимум из трёх операторов. Но их и не так уж много по сравнению с количеством вышеприведённых операций, встроенных функций и процедур.

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

statemenblock

При этом на способы передачи управления внутри блока операторов не накладывается никаких ограничений кроме вышеизложенного условия.

  1.  Простые операторы

Оператор присваивания. Запись значений в ОЗУ (в том числе и после их обработки центральным процессором) обеспечивается оператором присваивания:

[LET]  variable =

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

Если оператор передачи управления использует метку, то в начале той строки текста, в которую передаётся управление, должно быть записано уникальное имя, называемое меткой, за которым следует двоеточие. (В качестве наследства от родоначальника всех диалектов BASIC возможно использовние числовой метки, то есть условного номера в начале строки).

Необходимость выполнения различных участков текста программы обусловила существование как операторов условной передачи управления, так и операторов безусловной передачи управления. Хотя вместо оператора безусловной передачи управления можно использовать оператор условной передачи управления с заведомо выполняемым условием (например, 10).  Таким образом, количество необходимых для написания любой программы видов операторов может быть сведено до двух!

Операторы безусловной передачи управления. В Qbasic имеется четыре разновидности операторов безусловной передачи управления.

Оператор

GOTO  line

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

Другое использование операторов безусловной передачи управления связано с подпрограммами – многократно выполняемыми участками текста программы.

Оператор

GOSUB  line1

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

RETURN  [line2]

В случае умолчания метки выполняется возврат управления к выполнению строки, следующей за последней передавшей управление командой  GOSUB.  При использовании метки   line2  после выполнения подпрограммы происходит передача управления по этой метке.

Использование команд  SUB  и  CALL предпочтительнее использования GOSUB.

В составных операторах повторения или подпрограммах часто бывает необходимо прекратить их выполнение. Для этого используется безметочный оператор безусловного перехода:

EXIT  {DEF | DO | FOR | FUNCTION | SUB}

Этот оператор передаёт управление первому оператору, следующему за тем составным оператором, из которого осуществлён выход, или за оператором, вызвавшим подпрограмму. Ключевые слова соответствуют выходу из составных операторов:

DEF – описания функции DEF  FN,

DO – оператора повторения DO,

FOR - оператора повторения FOR,

FUNCTION – оператора подпрограммы- функции FUNCTION,

SUB – оператора подпрограммы-процедуры SUB.

Операторы условной передачи управления предназначены для изменения естественного порядка исполнения команд при выполнении некоторых условий. По аналогии с операторами безусловной передачи управления имеется два оператора условной передачи управления:

ON   expression%  GOSUB line-list

ON   expression%  GOTO line-list

в которых целочисленное выражение  expression%  может принимать значения от  0  до количества меток в списке   line-list  (а список может содержать до  255  меток). По нулевому значению выражения выполняется оператор в следующей строке, а по другим значениям управление передаётся метке, положение которой в списке соответствует вычисленному номеру.

Использование команды  SELECT  CASE предпочтительнее использования

ONGOSUB  и  ONGOTO  (за исключением команд прерывания).

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

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

  •  указывается не метка, а имя подпрограммы-процедуры  name,
  •  из вызывающей программы подпрограмме могут быть переданы аргументы в соответствии со списком  argumentlist  [CALL] name  [ (  [ argumentlist ] ) ].

В основной программе подпрограмма-процедура должна быть объявлена командой DECLARE ( среда Qbasic создает ее автоматически при вводе текста подпрограммы). По умолчанию CALL список аргументов не заключается в скобки. Имена или значения данных в списке аргументов разделяются запятыми. Для того, чтобы значение аргументов не могло быть изменено процедурой, его имя в списке должно быть заключено в скобки. При использовании массива в качестве аргумента за его именем должна следовать пустая пара скобок

( ).

  1.  Составные операторы

Условный оператор позволяет выполнять различные участки текста в зависимости от некоторых условий, не используя метки. Он существует в двух формах:

Однострочная форма

IF condition THEN  statement  [ELSE statements]

И многострочная форма

IF condition THEN

[statementblock-1]

[ELSEIF condition2 THEN

             [statementblock-2]] …

[ELSE

             [statementblock-n]]

END IF

Где: condition      condition1         condition2  -  любое выражение логического или числового типа, которое может иметь значение истина или ложь, statementblock-1     statementblock-2 … statementblock-n – блок операторов и statements – один или более операторов, разделенных двоеточиями.

В однострочной форме при истинности выражения выполняется блок операторов, следующий за THEN, в противном случае – за ELSE. В однострочном варианте блок операторов может быть пустым, содержать один оператор или несколько операторов, разделенных двоеточиями. Умолчание блока с ELSE означает, что в случае невыполнения условия оператор IF не делает ничего.

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

Следует отметить, что отсутствие ключевого слова END IF в конце многострочной формы не обнаруживается редактором, ибо редактор проверяет синтаксис построчно, но ведет к выдаче интерпретатором сообщения об ошибке. Трудность обнаружения ошибок такого рода в том, что при исполнении интерпретатор может указывать на ошибки в других операторах. Именно поэтому в составных операторах имеет смсл записывать вложенные блоки операторов с отступом (см. выше).

Итак, условный оператор дает возможность выполнения двух (однострочная форма) или трех (многострочная форма) различных блоков операторов в зависимости от заданных программистом условий.

Оператор выбора в отличие от условного оператора дает возможность выполнения большого количества различных блоков операторов:

SELECT CASE testexpression

CASE expressionlist1

      [statementblock-1]

[CASE expressionlist12

      [statementblock-2]

[CASE ELSE

      [statementblock-n]]

END SELECT

Где: testexpression – проверяемое выражение числового или строкового типа, statementblock-1    statementblock-2     statementblock-n – блоки операторов и expressionlist1    expressionlist12 – список из одного или более выражений.

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

В отличие от оператора IF проверочное выражение может быть числовым или строковым. Исполнение блока операторов следующего за тем или иным CASE, определяется по списку выражений, в который должно попасть значение проверочного выражения. Отдельные выражения в списке должны быть разделены запятыми, а тип значения в списке должен соотвествовать типу проверочного выражения. Допускаются выражения с операторами отношения, которым должно предшествовать слово IS. Для записи диапазона значений можно использовать слово ТО наименьшим и наибольшим значениями. Если необходимо выполнить какой-то блок операторов при несовпадении значения проверочного выражения ни с одним списком выражений, то используется ключевое слово CASE ELSE. Следует отметить, что после выполнения выбранного блока операторов управление передается на строку, следующую за END SELECT.

Операторы повторения используются для многократного выполнения некоторого блока операторов. Такой “кругооборот” операторов называется словом “цикл”. Оператор цикла по счетчику:

FOR counter = start TO end  [STEP  increment]

             [statementblock]

NEXT [  [ , counter]  … ]

Повторяющего входящий в него блок операторов заданное количество раз.     Здесь: counter – числовая переменная, используемая в качестве счетчика, start и end – начальное и конечное значения счетчика и increment  - приращение счетчика  при исполнении каждого цикла.

Переменная счетчика должна быть типа INTEGER или LONG. По умолчанию ключевого слова STEP значение шага принимается равным +1. Умолчание имени счетчика цикла после NEXT никак не влияет на работу оператора цикла, но несколько затрудняет чтение программы. Первоначально выполнение блока операторов производится, если начальное значение счетчика меньше конечного при положительном шаге или больше конечного при отрицательном шаге. После каждого выполнения блока значение счетчика изменяется на значение шага. Если после этого оно не вышло за предел конечного значения, то цикл повторяется снова. Значение счетчика цикла может использоваться в выражениях, входящих в блок операторов, но изменение значения счетчика цикла  этими операторами недопустимо. Гораздо большее разнообразие возможностей дают операторы цикла с проверкой условия выхода из цикла до выполнения блока операторов

DO [{WHILE | UNTIL} condition]

      [statementblock]

LOOP

И после выполнения блока операторов

DO

[statementblock]

LOOP [{WHILE | UNTIL} condition]

они повторяются при соблюдении заданного условия (ключевое слово UNTIL). Условие задается выражением condition, имеющим такой же тип и смысл, как в операторе IF.

Эти два вида операторов заменили устаревшую конструкцию с проверкой условия выхода из цикла до выполнения блока операторов

WHILE  condition

.

.

.

WEND

Вместо нее рекомендуется использовать DO … LOOP.

Промежуточной между операторами и программой структурой являются

  1.  Процедуры и функции

Для разработки и написания собственных подпрограмм имеется несколько возможностей, которые соответствуют различным этапам развития языка. Функции и процедуры обладают некоторой “самостоятельностью” относительно основной программы в двух отношениях:

  •  во-первых, они представляют собой часть текста, который может быть использован не только любой другой программой. Но зачастую самой подпрограммой, то есть они занимают некоторый уровень в иерархии потока управления:
  •  во-вторых, они могут обладать своей областью данных в ОЗУ и для работы с ними реализуются специальные способы передачи им данных и получения от них результатов вычислений, то есть они занимают некоторый уровень в иерархии потока данных.

Рассмотрим различные варианты оформления процедур и функций.

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

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

  1.  Основные операторы языка QBASIC

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

Оператор присваивания LET (присвоить) – присваивает переменной определённое значение.

Оператор обмена SWAP – осуществляет обмен значениями между двумя переменными. Он оказывается полезен при составлении программ сортировки числовых и символьных массивов.

Операторы вывода данных на экран монитора CLS и  PRINT

Оператор CLS (Clear Screen) очищает экран.

Оператор РRINT (напечатать) выводит информацию на экран монитора.

Оператор DATA (данные)– помещает константы в стек. Стек представляет собой область оперативной памяти, куда помещаются константы, которые могут потребоваться в процессе выполнения программы.

Оператор READ (читать) - выбирает данные из стека, организованного с помощью оператора DATA.

Оператор RESTORE (восстановить)– изменяет последовательный порядок выбора констант из стека. Если операнд отсутствует, то выборка констант из стека начнется с первого элемента, иначе с того оператора DATA, номер строки или метка которого указаны в операторе RESTORE.

Оператор CONST – описывает одну или несколько констант. Удобно использовать в случаях, когда одна и та же константа используется в нескольких местах программы.

Типы данных.

Оператор DIM – служит для объявления явного типа переменной.

Массивы (индексированные переменные) – представляют собой последовательность однотипных простых переменных. Каждая отдельно взятая переменная называется элементом массива. Каждому элементу массива может быть присвоено одно числовое или символьное значение, поэтому различаются   массивы числовые и символьные. Кроме того, массивы могут быть одномерными и многомерными. Одномерный массив модно представить, как строку или столбец переменных, а двумерный массив – как таблицу или матрицу, в которой переменные расположены в m строках и n столбцах.

Массивы в программе должны быть определены в операторе DIM с указанием их размерности.

Оператор REDIM – описывает или изменяет размер динамического массива, стирая все предыдущие значения.

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

Оператор OPTION BASE (оптимальная база) – устанавливает минимальное значение индексов в массиве.

Оператор TYPE – определяет тип данных, содержащий один или несколько элементов.

Ввод информации.

Оператор INPUT (ввод) – позволяет присвоить значения переменным с клавиатуры во время выполнения программы.

Оператор LINE INPUT (ввод строки) – позволяет ввести с клавиатуры строку символов длиной до 254 символов, включающую любые (в том числе и управляющие) знаки во время выполнения программы.

Функция INPUT $ (n) – позволяет ввести с клавиатуры символьную информацию, которая при ее вводе не отображается на экране дисплея.

Функция INKEY$ - позволяет программным путем остановить выполнение программы до тех пор, пока не будет нажата  какая-либо клавиша. Нажатая клавиша на экране не отображается. Функция INKEY$ анализирует некоторую переменную, которой перед обращением к этой функции присваивается значение пробела, а во время обращения этой переменной присваивается код нажатой клавиши.

Вывод данных на экран монитора.

Оператор LOCATE – устанавливает курсор в нужное место на экране дисплея и позволяет управлять параметрами самого курсора.

Работа с графической информацией.

Оператор SCREEN – устанавливает режим и параметры работы экрана дисплея.

Оператор PSET (Point SET – установить точку) – позволяет изобразить точку в указанной позиции экрана дисплея заданного цвета.

Оператор PRESET (Point RESET – изменить яркость точки) - позволяет изобразить точку в указанной позиции экрана дисплея заданного цвета.

Оператор LINE -  позволяет начертить отрезок (линию) или прямоугольник.

Оператор CIRCLE -  позволяет получить на экране дисплея эллипс (круг).

Операторы работы с экраном монитора.

Оператор VIEW – выделяет на экране монитора «окно», которое становится новым экраном, доступным для работы. В пределах этого «окна» выполняются все графические построения, а остальные точки экрана становятся недоступными.

Оператор WINDOW – устанавливает систему координат окна.

Управляющие операторы языка QBASIC.

Оператор END- заканчивает выполнение программы. При его выполнении закрываются все файлы, которые использовались в программе. Если оператор END отсутствует в программе, то программа заканчивается при выполнении последнего выполняемого оператора.

ОператорGOTO – безусловный переход- обеспечивает безусловный переход в любое именованное место программы.

Оператор IF-THEN-ELSE- условный оператор (если-то-иначе)- обеспечивает принятие двоичного решения.

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

Оператор FOR-TO-NEXT-арифметический цикл- объединяет в один блок группу операторов, предназначенных для многократного выполнения.

Оператор WHILE-WEND(пока-конец) – интерационный цикл 1 – используется для многократного выполнения заданной последовательности операторв, заключённых в этом блоке, если количество циклов заранее не известно.

Оператор DO-LOOP – безусловный цикл – повторяет блок операторов до тех пор, пока не выполнится оператор EXIT DO.

Оператор DO-WHILE(UNTIL)-LOOP – интерационный цикл 2 – повторяет блок операторов, пока условие верно, или до тех пор, пока условие не станет верным.

Оператор DO- LOOP -WHILE(UNTIL) – интерационный цикл 3 - повторяет блок операторов, пока условие верно, или до тех пор, пока условие не станет верным.

Оператор SELECT-CASE-ENDSELECT – структура с условием – выполняет один из нескольких блоков операторов в зависимости от значения выражения.

Оператор GOSUB-RETURN –выполнить подпрограмму.

Операторы GOSUB (Go to SUBroutine – перейти к подпрограмме) и RETURN (возврат) позволяют выделить группу операторов программы в подпрограмму. К такой подпрограмме можно обратиться, начиная с любого её оператора. Такая группа операторов всегда должна заканчиваться оператором RETURN. Операторы подпрограммы выполняются в той последовательности, в которой они записаны, за исключением случаев, когда в неё включены управляющие операторы.

Оператор ON-GOTO –выбрать безусловный переход – используется для передачи управления по списку меток.

Оператор ON-GOSUB –выбрать подпрограмму – выполняет переход на одну из нескольких меток, в зависимости от некоторого выражения.

Оператор ON-ERROR –выполнить подпрограмму обработки ошибок – включает обработку ошибок при обнаружении ошибки во время выполнения программы, передавая управление на подпрограмму обработки ошибок или возобновляя выполнение программы.

Оператор RESUME – продолжить выполнение программы после подпрограммы обработки ошибки.

В зависимости от типа ошибки возможны несколько сценариев продолжения работы программы. Для этого подпрограмма должна предлагать пользователю самому выбрать наиболее приемлемый для него вариант дальнейшего развития событий. Применение одного оператора RESUME позволяет выбрать один из трёх вариантов продолжения.

Оператор STOP-временно остановить выполнение программы.

Оператор STOP останавливает выполнение программы, сохраняя значение всех переменных, открытые файлы и т.п. Был введён тогда, когда ещё не существовало развитой системы отладки программ. Практическое применение этого оператора в настоящее время определить трудно.

Оператор DEF –определить функцию пользователя – позволяет определить функцию пользователя самым простым способом, что облегчает работу и уменьшает количество ошибок.

Оператор FUNCTION –позволяет определять функцию лучшим образом.

  1.  
    РЕШЕНИЕ УРАВНЕНИЙ МЕТОДОМ ХОРД

Метод хорд. При данном методе каждое значение Хn+1  находится как точка пересечения оси абцисс с хордой, проведенной через точки F(А) и F(В),   причем одна из этих точек фиксируется - та,для которой знаки F(Х) и F(Х)'' одинаковы. Если неподвижен конец хорды Х = А, то

А если неподвижен конец хорды x=b, то

Если n+1 - Хn| > , то в первом случае считаем В = Хn+1 ,  во втором А = Хn+1 и повторяем вычисления.

При использовании метода хорд полагается, что корень Х находится на отрезке [А, В] (рис 3.1).

Решение уравнения F(X) = 0 методом хорд

Рис. 3.1

  1.  
    АЛГОРИТМ ПРОГРАММЫ РЕШЕНИЯ УРАВНЕНИЯ

  1.  
    ПРОГРАММА

DECLARE FUNCTION f! (x!)                                       обьявить функцию

CLS                                                                                  очистка экрана

OPEN "REZ3" FOR OUTPUT AS #3                             открыть файл с идентификатором 3

PRINT #3, "решение уравнений методом хорд"          вывод заголовка в файл с ид.3

INPUT "задайте точность eps="; eps                             ввод значения точности с консоли

povtor:               метка

INPUT "задайте границы интервала a,b через запятую"; a, b          ввод с консоли a,b

ya = f(a)

yb = f(b)

IF ya * yb > 0 THEN                                                       условный переход

  PRINT "Повторите ввод"                                            вывести на монитор сообщение

  PRINT "на заданном отрезке корня нет"                   вывести на монитор сообщение

  GOTO povtor                                                                 перейти на метку

END IF                                                                              конец условия

ya = f(a)

yb = f(b)

niter = 0                                                                     присвоить переменной значение=0

DO                                                                                     начало цикла

  niter = niter + 1                                                       увеличить значение переменной на 1

  x = a - f(a) / (f(b) - f(a)) * (b - a)                                     вычислить x

  y = f(x)                                                                             вычислить y

  IF y * ya < 0 THEN ' корень на отрезке a,x                  условный переход

     PRINT #3, "корень на отрезке "; a, x                         вывести в файл сообщение

     PRINT #3, "полагаем b=x " вывести в файл сообщение b = x

     yb = y

  ELSE                                                                                в противном случае

     ' в противном случае корень на x,b

     PRINT #3, "корень на отрезке "; x, b                         вывести в файл сообщение

     PRINT #3, "полагаем a=x "                                         вывести в файл сообщение

     a = x

     ya = y

   END IF                                                                            конец условия

LOOP UNTIL ABS(y) < eps                     проверка на окончание цикла,если нет то к DO

PRINT #3, "приближенное значение корня"; x               вывести в файл сообщение

PRINT "приближенное значение корня"; x                     вывести на монитор сообщение

PRINT #3, "число итераций "; niter                                  вывести в файл сообщение

PRINT "число итераций "; niter                                        вывести на монитор сообщение

FUNCTION f (x)                                                                функция

 'решить уравнение x^3+x-12=0

 f = x ^ 3 + x - 12

END FUNCTION                                                               конец функции

Примечание: текст программы находится на дискете,файл 5.bas.

                      файл результата rez3, файл курсовой работы Курс2.doc.

                        
ГРАФИЧЕСКАЯ ЧАСТЬ.

График функции  f = x3 + x - 12

Рис. 6.1


ЛИТЕРАТУРА

  1.  В.П.Дьяконов.Справочник по алгоритмам и программам на языке бейсик для персональных ЭВМ. М., 1987.
  2.  Ю.Л.Кетков.GW-,Turbo- и Quick BASIC для IBM PC. М.,1992.
  3.  В.И.Кондратьев.Математический пакет MAPLE.Е-брг.,2000.
  4.  Мудров А.Е. Численные методы для ПЭВМ на языках БЕЙСИК, ФОРТРАН, ПАСКАЛЬ. Т., 1991.
  5.  Рабочий конспект, методические указания на CD-ROM.


РЕЦЕНЗИЯ ПРЕПОДАВАТЕЛЯ:

  1.  


 

А также другие работы, которые могут Вас заинтересовать

29651. Национальная Федерация консультантов и аудиторов 33.5 KB
  Предметом деятельности Федерации являются: проведение конгрессов конференций семинаров и других мероприятий для обмена мнениями по актуальным вопросам развития аудиторскоконсультационной деятельности; участие в подготовке нормативноправовых актов регулирующих аудиторскую и консультационную деятельность; организация взаимодействия с органами законодательной и исполнительной власти Российской Федерации по вопросам касающимся профессиональной деятельности Федерации; содействие внедрению в организацияхчленах Федерации...
29652. Организация автоматизированного рабочего места бухгалтера 26 KB
  При проектировании и создании АРМ бухгалтера можно выделить два основных вида обеспечения: техническое и программное. С вводом в эксплуатацию АРМ бухгалтера на базе ПК происходит распределение функций и операций между бухгалтером и персональным компьютером. Кроме того использование в качестве технического средства АРМ бухгалтера современных персональных ЭВМ дает возможность одновременно с децентрализованной обработкой учетных данных обеспечить интеграцию информационной базы сократить время обработки; ликвидировать разрыв во времени между...
29653. Организация бухгалтерского учета на предприятии 29 KB
  Основные правила организации и ведения бухгалтерского учета для всех предприятий едины. Ведение бухгалтерского учета регламентируется законами нормативными актами и положениями по бухгалтерскому учету. Такие вопросы как организация форма и техника ведения бухгалтерского учета предприятие решает самостоятельно.
29654. Организационные документы деятельности бухгалтерской службы 47 KB
  Для этого разрабатывается Положение О бухгалтерии О бухгалтерской службе в котором раскрываются процесс образования права обязанности и организация деятельности бухгалтерии. В состав реквизитов положения о бухгалтерии входят: наименование организации; название вида документа; дата и место составления; наименование структурного подразделения; текст; подпись и визы. Положение О бухгалтерии как правило состоит из 5 основных разделов. Этот пункт можно сформулировать обобщенно например: Бухгалтерия в своей деятельности руководствуется...
29655. Правовые и локальные нормативные акты организации 28 KB
  Некоторые локальные нормативные акты работодатель должен принимать учитывая мнение представительного органа работников что предусмотрено ТК РФ законами и иными нормативными правовыми актами. Перечень локальных нормативных актов принимаемых с учетом мнения представительного органа работников может быть дополнен коллективным договором отраслевыми и иными соглашениями. Локальные нормативные акты не должны ухудшать положение работников по сравнению с трудовым законодательством коллективным договором соглашениями. Если локальный нормативный...
29656. Монизм, дуализм, плюрализм 41.5 KB
  Структурная организация методологического знания прямо связана с теми функциями которые оно выполняет в процесс е научного познания. Рефлексия над процессом научного познания не является совершенно необходимым его компонентом. Рефлексия и осознание нужны тогда когда ставится задача построения нового научного знания или формирования принципиально нового поведенческого акта. Чем же здесь может помочь методология каковы ее функции в процессе конкретнонаучного познания Анализируя различные ответы на этот вопрос можно встретиться как с...
29657. Психологическая наука в противоположность метафизике 41 KB
  Однако масштаб абстракций и обобщений существенно ниже уже и конкретнее в эмпирической психологии чем в философской метафизике или основанной на ней априорной психологии. Примерами метафизических вопросов в психологии могут быть следующие. Номотетический и идиографический подходы в эмпирической психологии Номотетический подход Эмпирическая психология производит эмпирическое знание в рамках прежде всего номотетического подхода связанного с позитивистской и постпозитивистской философией. Идиографическое познание применяется в ряде отраслей...
29658. Эмпирическая и априорная психологии 29 KB
  Ситуация множественности методологических подходов и соответственно средств методологического анализа которые одновременно являются и истинными если это понятие вообще применимо к методологическому знанию адекватными и ложными неадекватными в зависимости от множества привходящих условий провоцирует самые разные установки исследователей и практиков относительно роли методологического знания и целесообразности его использования в конкретном исследовании а также разные методологические эмоции. Сторонники методологического...
29659. Парадигмы, аномалии, кризисы, научные революции 71.5 KB
  Это было время господства ассоцианизма взаимопроникновения идей физиологической психологии и психологии сознания но также и время после выхода основополагающих трудов Г. Эббингауза 1850 – 1909 когда появилась надежда на разработку объективного метода исследования в области психологии. То есть для него в первую очередь неприемлема именно эта характеристика естественнонаучного познания – путь выдвижения гипотез а не собственно экспериментальный метод как это иногда сегодня представляют сторонники описательной психологии функционирующей...