Контрольная работа. Образцы выполнения заданий. Алгоритмизация и программирование (на qbasic). Введение
Вид материала | Контрольная работа |
- Контрольная работа по информатике и икт для 10класса. Тема «Алгоритмизация и программирование», 12.22kb.
- Методические указания домашняя контрольная работа №1 по дисциплине «Налогообложение, 681.22kb.
- Контрольная работа и ее краткая характеристика дкр, 446.71kb.
- Рабочая программа по дисциплине "алгоритмизация и программирование" для специальности, 136.39kb.
- Рабочая программа по дисциплине "алгоритмизация и программирование" для специальности, 136.78kb.
- Учебно-методический комплекс по дисциплине «Алгоритмизация и программирование» для, 352.01kb.
- Лабораторная работа, 166.92kb.
- Рабочая программа по дисциплине "алгоритмизация и программирование" для специальности, 140.41kb.
- Контрольная работа оценка выполнения контрольных заданий, задач и тестов; при пропуске, 10.19kb.
- Задания по выполнению контрольных работ по курсу, 79.13kb.
1 2
Модуль 4
Алгоритмизация и программирование
ВЕДЕНИЕ
1.Элементы алгоритмизации Error: Reference source not found
- Понятие алгоритма. Свойства алгоритмов.
- Способы представления алгоритмов.
- Основные структуры алгоритмов.
1.3.1. Следование.
1.3.2. Ветвление.
1.3.3. Циклы.
1.4.Трансляторы, компиляторы , интерпретаторы.
2.Простейшие конструкции языка программирования QBASIC.
( Синтаксис и семантика языка программирования QBASIC.)
2.1. Алфавит
2.2. Структура данных
2.2.1. Целые типы.
2.2.2. Вещественные типы.
2.2.3. Логические данные.
2.2.4. Массив
2.2.5. Символьные данные.
2.2.6. Файл.
2.3. Операторы языка
2.3.1. Оператор присваивания.
2.3.2. Простейшие операторы графики.
2.3.3. Операторы ввода - вывода.
2.3.4. Оператор безусловного перехода .
2.3.5. Блочные операторы.
2.3.5.1. Оператор условной передачи управления
2.3.5.2.Условный оператор IF/THEN/ELSE/END IF.
2.3.5.3. Оператор выбора SELECT CASE.
2.3.6. Процедуры-функции и процедуры
2.4.Вспомогательные алгоритмы и процедуры.
2.5. Контрольная работа.
2.6.Образцы выполнения заданий.
Алгоритмизация и программирование (на QBASIC).
ВВЕДЕНИЕ
Basic(Beginner’s All-purpose Symbolic Instruction Code)- один из первых языков высокого уровня был разработан в 1963 году в Дартмудском колледже для учебных целей .Это язык-долгожитель, число версий его не поддаётся пересчёту.
Basic — язык программирования, на котором Билл Гейтс, будучи в возрасте 13-ти лет, написал свою первую программу для игры в крестики-нолики. Этот язык для главы корпорации Microsoft явился трамплином к тому, чтобы стать и лидером наиболее современных компьютерных технологий, и одним из самых богатых людей в мире . Билл Гейтс сам заработал свои капиталы исключительно благодаря своему уму, дальновидности и предприимчивости.
Важным шагом стала версия языка Quick Basic,реализованная в QBasic и Visual Basic.
Большинство инженеров и научных сотрудников сходятся во мнении, что одинаково хорошо можно выполнить программирование как на языке Turbo Pascal, так и на языке QBasic.
Удалось сгладить многие недостатки QBasic, обусловленные длительным периодом его развития (более 40 лет ), в этом принимали участие большое количество специалистов, принадлежащих разным поколениям.
Знать QBasic полезно, поскольку на нём пишутся DOS-инструкции для конфигурирования компьютера, подпрограммы в многочисленных приложениях Windows. Хорошо зная одну, базовую версию Бейсика — QBasic, в дальнейшем можно свободно переходить к работе с другими версиями этого популярного языка.
В наше время популярным инструментом разработки приложений Windows является язык визуального программирования Visual Basic . Поэтому перед изучением Visual Basic разумно изучить вначале QBasic, который является его составной частью.
Освоить QBasic должен, пожалуй, каждый желающий научиться программировать, ведь он является распространенным языком программирования . Такова действительность — QBasic завоевал мир, сделал он это всерьёз и надолго.
Для глубокого понимания очень полезно «прокручивать» все шаги компьютера у себя в голове, следует уметь читать коды программ. Каждую лекцию и , на первый взгляд, хорошо усвоенную программу обязательно необходимо закреплять практической работой на компьютере. Иначе научиться программировать просто невозможно.
1.Элементы алгоритмизации
1.1.Понятие алгоритма. Свойства алгоритмов.
Слово «алгоритм» появилось как результат латинской транскрипции имени великого ученого IX в. Мухаммеда ибн Мусы Аль-Хорезми , который сформулировал общие правила (алгоритмы) выполнения арифметических операций над десятичными числами.
Алгоритм — это определенная последовательность действий
(команд ,шагов), чёткое предписание конкретному исполнителю , выполнение которого приводит к достижению поставленной цели.
( существуют и другие формулировки).
Основные свойства алгоритма: дискретность , определенность, результативность, массовость.
Программирование — это реализация заданного алгоритма на формальном языке программирования. Программирование позволяет переложить проведение и анализ информационных процессов на современную вычислительную технику.
1.2.Способы представления алгоритмов.
Алгоритм может быть задан способами:
1) на естественном языке ;
2) аналитически (формулой);
3) графически ( в виде блок-схемы);
4) на алгоритмическом языке(РАЯ);
5) на языке программирования.
1.3.Основные структуры алгоритмов .
Основные структуры алгоритмов — это ограниченный набор блоков и стандартных способов их соединения для выполнения типичных последовательностей действий.
Структурный подход предполагает использование только нескольких основных структур (линейных, ветвящихся, циклических), комбинация которых дает все многообразие алгоритмов и программ.
В процессе изготовления программного продукта программист должен пройти определенные этапы.
Рис.1.
Процесс решения задачи на компьютере состоит из этапов:
I . Постановка задачи.
II. Математическая модель.
III. Алгоритмизация задачи.
IV. Программирование.
V .Отладка задачи на компьютере.
VI .Анализ результата.
В конце 60-х — начале 70-х гг. XX столетия появляется дисциплина, которая получила название структурного программирования. Её развитие связано с именами Э.В. Дейкстры , Х.Д. Миллса , Д. Е. Кнута и других ученых. Структурное программирование до настоящего времени остается основой технологии программирования. Соблюдение его принципов позволяет программисту быстро научиться писать ясные , безошибочные, надёжные программы.
В основе структурного программирования заложена теорема, которая была строго доказана в теории программирования. Она утверждает, что алгоритм для решения любой логической задачи можно составить только из структур «следование, ветвление, цикл».
Их называют базовыми алгоритмическими структурами.
1.3.1. Следование
Следование — это линейная последовательность действий:
Рис.2.
Каждый блок может содержать в себе как простую команду, так и сложную структуру, но обязательно должен иметь один вход и один выход.
1.3.2. Ветвление
Ветвление — алгоритмическая альтернатива. Управление передается одному из двух блоков в зависимости от истинности или ложности условия. Затем происходит выход на общее продолжение:
Рис.3.
Неполная форма ветвления имеет место, когда на одной ветви пусто:
Рис.4.
1.3.3. Цикл
Цикл — повторение некоторой группы действий по условию. Различаются следующие типы цикла:
Цикл с предусловием (цикл-пока):
Рис.5.
Пока условие истинно, выполняется серия, образующая тело цикла.
Другой тип циклической структуры — цикл с постусловием (цикл-до):
Рис.6.
Здесь тело цикла предшествует условию цикла. Тело цикла повторяет свое выполнение, если условие ложно. Повторение кончается, когда условие станет истинным.
Теоретически необходимым и достаточным является лишь первый тип цикла — цикл с предусловием. Любой циклический алгоритм можно построить с его помощью. Это более общий вариант цикла, чем цикл-до.
Рассмотренные выше блок-схемы можно изобразить и так:
Рис.7.Базовые алгоритмические структуры: следование , ветвление , цикл- пока.
Кроме базовых алгоритмических структур используют дополнительные структуры, производные от базовых:
• выбор - обозначающий выбор одного варианта из нескольких в зависимости от значения некоторой величины (рис.8 а);
• цикл-до - обозначающий повторение некоторых действий до выполнения заданного условия, проверка которого осуществляется после выполнения действий в цикле (рис8. в);
• цикл с заданным числом повторений (счетный цикл) - обозначающий повторение некоторых действий указанное количество раз (рис. 8, д).
Рис.8. Дополнительные структуры и их реализация через базовые структуры: выбор (а-б), цикл-до (в-г) и цикл с заданным числом повторений (д-е)
На рис. 8,6 ,г и е показано, как каждая из дополнительных структур может быть реализована через базовые структуры.
Перечисленные структуры были положены в основу структурного программирования - технологии, которая представляет собой набор рекомендаций по уменьшению количества ошибок в программах .
Сложный алгоритм состоит из соединенных между собой базовых структур. Соединяться эти структуры могут двумя способами: последовательным и вложенным.
Наряду с блок-схемами для описания алгоритмов часто используются псевдокоды. Учебный алгоритмический язык школьной информатики является примером такого псевдокода. Учебный АЯ (или его ещё называют РАЯ) — структурный псевдокод. . Обучение составлению алгоритмов на этом языке способствует «структурному воспитанию» программиста.
Пример 1. Разработать алгоритм вычисления наибольшего общего делителя двух натуральных чисел.
Существует несколько способов нахождения наибольшего общего делителя двух натуральных чисел. Самым простым из них является так называемый «алгоритм Евклида». Суть этого метода заключается в последовательной замене большего из чисел на разность большего и меньшего. Вычисления заканчиваются, когда числа становятся равными.
На рис. 9. показана блок-схема алгоритма, а рядом приведено его описание на псевдокоде.
Алгоритм Евклида:
Ввести А,В
цикл-пока А ≠ В
если А > В
то А := А - В
иначе В := В - А
все-если
все-цикл
Вывести А
Конец алгоритма.
Рис. 9. Схема алгоритма Евклида
Структурная методика алгоритмизации — это не только форма описания алгоритма, но это ещё и способ мышления программиста. Создавая алгоритм, нужно стремиться составлять его из стандартных структур. Если использовать строительную аналогию, можно сказать, что структурная методика построения алгоритма подобна сборке здания из стандартных секций в отличие от складывания по кирпичику.
1.4.Трансляторы, компиляторы , интерпретаторы.
Точнее надо заголовок записать так-
Трансляторы: компиляторы + интерпретаторы. Поясним, почему.
Составлять программу на языке высокого уровня, конечно, удобно. Набрал текст в редакторе, записал команды по алгоритму решения задачи — и всё.
Но текст программы — это ещё не готовое приложение, это только набор символов, которые «запустить» в работу невозможно.
Для того чтобы набранный на каком-то языке программирования исходный текст приложения ожил, заработал, смог выполнять заложенные в него команды, применяются так называемые трансляторы.
**
Реализовать тот или иной язык программирования на ЭВМ — это значит создать транслятор с этого языка для данной ЭВМ.
Существуют два принципиально различных метода трансляции. Они называются соответственно компиляция и интерпретация. Чтобы понять их различия рассмотрим аналогию: лектор должен выступить перед аудиторией на незнакомом ей языке. Перевод можно организовать двумя способами:
• полный предварительный перевод — лектор заранее передает текст выступления переводчику, тот записывает перевод, размножает его и раздает слушателям ;
• синхронный перевод — лектор читает доклад, переводчик одновременно с ним слово в слово переводит выступление.
Компиляция является аналогом полного предварительного перевода; интерпретация — аналогом синхронного перевода. Транслятор, работающий по принципу компиляции, называется компилятором; транслятор, работающий методом интерпретации,-интерпретатором.
При компиляции в память ЭВМ загружается программа компилятор. Она воспринимает текст программы на ЯПВУ как исходную информацию. После завершения компиляции получается программа на языке машинных команд. Затем в памяти остается только программа на ЯМК которая выполняется, и получаются требуемые результаты.
Интерпретатор в течение всего времени работы программы находится во внутренней памяти. В ОЗУ помещается и программа на ЯПВУ. Интерпретатор в последовательности выполнения алгоритма <<читает» очередной оператор программы, переводит его в команды и тут же выполняет эти команды. Затем переходит к переводу и выполнению следующего оператора. При этом результаты предыдущих переводов в памяти не сохраняются. При повторном выполнении одной и той же команды она снова будет транслироваться.
При компиляции исполнение программы разбивается на два этапа: трансляцию и выполнение. При интерпретации, поскольку трансляция и выполнение совмещены, программа на ЭВМ проходит в один этап. Однако откомпилированная программа выполняется быстрее, чем интерпретируемая. Поэтому использование компиляторов удобнее для больших программ, требующих быстрого счета. Программы на Паскале, Си, Фортране всегда компилируются. Бейсик чаще всего реализован через интерпретатор.
Компиляторы созданы сегодня абсолютно для всех более-менее популярных языков программирования, в том числе и для Бейсика.
Есть и другой подход. Каждая команда исходного текста не переводится в машинный код, а сразу исполняется. Конечно, исполняет её не процессор , он и не подозревает о существовании Бейсика или Фортрана, а способен только обрабатывать числа, кодирующие элементарные инструкции.
Идеальная программа-интерпретатор, которая интерпретирует исходный текст в соответствии с заложенным в инструкции языка смыслом, и покомандно его выполняет.
Для большинства языков программирования созданы и компиляторы, и интерпретаторы(исключением являются языки низкого уровня ,например, Ассемблер, которые не имеет смысла интерпретировать, и языки, обладающие определенной машинной независимостью (компиляция программы уничтожит эту независимость). При использовании одного и того же стандарта языка программирования результат выполнения программы под управлением интерпретатора и результат запуска исполняемого файла, созданного компилятором, полностью совпадут.
Один из главных недостатков компиляторов — это высокая . трудоемкость их создания, для чего требуется многолетняя работа большой группы высококлассных специалистов, а написать интерпретатор вполне по силам программисту среднего класса.
2.Простейшие конструкции языка программирования QBASIC.
2.1. Алфавит
Совокупность допустимых символов образует алфавит: это буквы (прописные и строчные латинские буквы), цифры (арабские цифры то 0 до 9) и специальные символы(знаки операций, знаки пунктуации и зарезервированные слова).
Между группами символов алфавита вставляются разделители.
Из букв и цифр и знаков подчеркивания строятся идентификаторы.
Написание прописных и строчных букв в идентификаторах не различается: слова VAR, vAR и VaR трактуются, как одно слово.
Длина идентификатора может быть любой, но существенны только первые 63 символа.
Знаки операций:
+, -, *, /, \, , >, <, <>, <= , >=, а также арифметические и логические функции (NOT, AND, OR, XOR, IMP и т. д.).
Множество знаков пунктуации складывается из следующих символов:
' выделение комментария;
( ) выделение индексов массивов, алгебраические скобки;
' апостроф;
; и, разделение списка ввода-вывода операторов PRINT и INPUT;
: отделение нескольких операторов друг от друга в одной строке;
= знак присваивания;
, разделение элементов списка; отделение целой части от дробной;
% признак целого числа;
& признак длинного целого числа;
! признак дробного числа;
# признак дробного числа двойной точности;
$ признак символьной строки,
? приглашение оператора PRINT
К зарезервированным словам относятся операторы, имена логических и арифметических функций. Список зарезервированных слов приводится в таблице.
2.2. Структура данных
Под типом данных понимается множество допустимых значений переменных, а также совокупность операций над ними.
В QBASIC можно выделить следующие группы типов:
• целые;
• вещественные;
• логические данные;
• массив;
• символьные данные;
• файлы.
2.2.1. Целые типы.
В QBASIC введено два стандартных целых типа, которые отличаются форматами и диапазонами допустимых значений.
Таблица1
Тип | Значение | Формат |
% - INTEGER | -32768.. 32767 | Знаковый |
& - LONGINT | -2147483648..2147483647 | Знаковый |
Для работы с целыми типами данных используются следующие арифметические функции, результат которых тоже целое число:
Таблица2
ABS(N) | Абсолютная величина N |
А\В | Целая часть от деления |
A MOD В | Остаток от деления |
+ , * , - | Сложение , умножение , вычитание |
| Возведение в степень |
FIX (X) | Получение целой части вещественного числа X |
CINT(X) | Округление до целого вещественного числа X |
CLNG(X) | Округление до длинного целого вещественного числа X |
INT(X) | Получение наибольшего целого числа, которое меньше или равно X |
2.2.2. Вещественные типы.
В QBASIC определено два стандартных вещественных типа, которые отличаются форматами и диапазонами допустимых значений:
Таблица3
Тип | Значение | Число цифр |
!-REAL | -2.9*10-38.1.7*1038 | 32 |
#- DOUBLE | -2.9*10-38..1.7*Ю38 | 64 |
Результат работы функций сложения, умножения, деления, вычитания и возведения в степень вещественных чисел дает вещественное число.
Кроме этого, используются следующие функции, результат которых - вещественное число:
Таблица 4
Функция | Назначение |
ABS(X) | Абсолютное значение X |
ATN(X) | Арктангенс X |
COS(X) | Косинус X |
SIN(X) | Синус X |
TAN(X) | Тангенс X |
EXP(X) | Ех |
LOG(X) | Натуральный логарифм |
SQR(X) | Квадратный корень X |
RND(X) | Получение случайного числа |
CDBL(X) | Представление числа с двойной точностью |
CSNG(X) | Представление числа с одинарной точностью |
2.2.3. Логические данные.
Логические данные, которые имеют значение либо "истина" - 1, либо "ложь" - 0, обрабатываются с помощью логических операций и операций сравнения. К ним относятся:
• NOT - отрицание;
• OR - объединение, или логическое сложение;
• AND - пересечение, или логическое умножение;
• XOR - исключающее ИЛИ или сложение по модулю два;
• EQV - эквивалентность;
• IMP - импликация, или следование.
Результат работы операций задается следующей таблицей истинности (таблицы значений):
2.2.3. Логические данные.
Логические данные, которые имеют значение либо "истина" - 1, либо "ложь" - 0, обрабатываются с помощью логических операций и операций сравнения. К ним относятся:
• NOT - отрицание;
• OR - объединение, или логическое сложение;
• AND - пересечение, или логическое умножение;
• XOR - исключающее ИЛИ или сложение по модулю два;
• EQV - эквивалентность;
• IMP - импликация, или следование.
Результат работы операций задается следующей таблицей истинности (таблицы значений):
Запомнить таблицу можно ,помня следующее:
▫операция отрицания меняет значение операнда на противоположное;
▫для того чтобы результат операции логического умножения был истинен, все операнды должны быть истинны;
▫для того чтобы логическое сложение дало истину, нужно, чтобы хотя бы один операнд был истинен,
▫а сложение по модулю два дает истину, только если операнды имеют разные значения; иногда эту операцию называют выбором альтернативы (или жегалкинским сложением).
▫Для определения результата операции эквивалентности нужно помнить, что он истинен, если операнды равны между собой, и ложен в противном случае. ▫Для операции импликации из ложного операнда следует все что угодно - результат будет истинен, а из истины следует только истина.
▫При обработке логических данных используются также операции сравнения, которые называются логическими отношениями:
=, < >, X, >, <, <= ,>=.
▫Результат операции логического отношения равен минус единице, если задаваемое отношение выполняется, и нулю, если условие ложно.
2.2.4. Массив
Представляет собой заранее известное количество однотипных элементов, снабженных индексами. Массив может быть одномерным или многомерным.
▪Чтобы задать массив, необходимо использовать зарезервированное слово DIM, значения индексов массива и тип элементов массива.
Например, объявление одномерного массива 11 целых чисел может быть задано так: DIM N%(10)
Обратите внимание, что интерпретатор устанавливает минимальное значение индекса, равное нулю.
Например, запись DIM BB(5,7), х(5)
объявляет двумерный массив BB из 48 чисел обычной точности и одномерный массив из шести таких чисел.
▪Оператор OPTION BASE устанавливает минимальное значение индексов массива. Он должен быть указан до объявления массивов:
OPTION BASE n, где n равно единице или нулю.
▪Оператор ERASE отменяет объявление массивов, сделанных оператором DIM:
ERASE список имен массивов.
2.2.5. Символьные данные.
В QBASIC имеется ещё тип данных, который называется символьным. Для того чтобы показать, что вы используете переменную такого типа, необходимо в имени этой переменной справа записать знак $:
например, А$, DF$, STR$.
▪ Этот тип является порядковым, и значения символьных переменных можно сравнивать между собой (>, <, >=, <=):
например ,"vit" < "vita"<”vitaon”.
▪Возможна между ними и конкатенация (+): "мото" + "цикл" = "мотоцикл".
К символьным переменным относятся все прописные латинские буквы :
"А", "В", "С", ..., "Z", строчные :"а", "b", "с", ..., "z", цифры :"0", "1", "2", ..., "9", знаки препинания, всевозможные скобки, русские буквы и т. д.
▪ В программах их значения всегда заключаются в апострофы.
▪Внутри каждого такого ряда коды символов упорядочены:
• "А" < "В"< "С" <...< "Z";
• "а" < "b" < "с" <...< "z";
• "0" < "1" < "2" <...< "9";
• "А" < "Б" < "В" <...< "Я";
• коды всех строчных букв меньше всех прописных.
Для работы с таким типом данных часто используются функции, аргументы которых могут быть символьными переменными.
Таблица 6
Функция | Назначение |
CHR$ (N) | Преобразование кода N в символьное представление |
ASC (Х$) | Преобразование символа Х$ в десятичный код |
LEFT$(X$,N) | Выделение N символов, начиная с самого левого символа в символьном выражении Х$ |
MID$ (X$,N,M) | Выделение М символов, начиная с N-ro символа в символьном выражении Х$ (М может быть опущено) |
RIGHT$(X$,N) | Выделение N символов, начиная с самого правого символа в символьном выражении Х$ |
SWAP X$,Y$ | Обмен символьными выражениями Х$ и Y$ |
STRINGS (N, X$) | Формирование строки из N одинаковых символов |
SPACE$(N) | Формирование строки из N пробелов |
OCT$ (N) | Перевод десятичных чисел в восьмеричное счисление |
HEX$(N) | Перевод десятичных чисел в шестнадцатеричное счисление |
LEN(X$) | Определение длины символьного выражения |
STR$(N) | Переводит число в символьную форму, резервируя перед символьным выражением один пробел для знака |
INSTR(N,X$,Y$) | Поиск подстроки YS в строке Х$ начиная с N-ro символа N можно опустить |
2.2.6. Файл.
Одним из типов данных в QBASIC является файловый тип, который есть последовательность связанных между собой однотипных компонентов - записей, расположенных на внешнем носителе. Запись рассматривается как единое целое.
В QBASIC имеется 2 категории файлов, работа с которыми отличается
• последовательные;
• с произвольным доступом.
2.3.Операторы языка
Операторы языка описывают алгоритмические действия, которые необходимо выполнить для решения задачи. Сама программа представляет собой последовательность таких операторов. Каждый оператор помещается в своей строке, длина которой не превышает 255 байт. Все операторы можно разбить на выполняемые и невыполняемые.
Выполняемые операторы служат для выполнения определенных операций или изменения порядка выполнения операторов в программе.
К невыполняемым операторам относятся операторы управления, такие, как оператор конца программы END, объявления массивов DIM, комментария REM и т. д.
В свою очередь, выполнимые операторы могут быть вычислительными и невычислительными.
Кроме того, в QBASIC используются блочные операторы, состоящие из операторов.
Итак , мы рассмотрим:
- Оператор присваивания
- Операторы графики(простейшие)
- Операторы ввода- вывода информации
- Операторы ветвления
- Циклические операторы
- Процедуры-функции и процедуры
2.3.1. Оператор присваивания.
С помощью оператора присваивания ( = или LЕТ) какой-либо переменной присваивается значение, например:
A= 7
LET H=A+B+Q/C. Оператор LET в программе можно опустить.
2.3.2.Операторы графики
1) Нарисовать точку на экране : PSET (X,Y), C
Здесь х и у – координаты точки на экране, С – её цвет
2)Нарисовать отрезок АВ :
LINE (5, 100)-(550, 220),С
Здесь (5, 100)-координаты А,(550, 220)- координаты В, а С-цвет линии.
3) Нарисовать прямоугольник с диагональю АВ:
LINE (5, 100)-(550, 220),С, В
4) Закрасить прямоугольник с диагональю АВ:
LINE (5, 100)-(550, 220),С, ВF
Другой способ:
PAINT(X,Y),С
(X,Y)-точка внутри замкнутой области прямоугольника, С-цвет заливки.
5) Нарисовать окружность:
CIRCLE(X,Y),R,C
Здесь (X,Y)-координаты центра ,R-радиус окружности,C-цвет.
Для рисования окружности вытянутой вдоль оси ОХ(или ОY) надо указать коэффициент сжатия К(k=1/n для OX и k=n для OY.
Например,
a) CIRCLE(X,Y),R,C,,,1/4
b) CIRCLE(X,Y),R,C,,,4
c) CIRCLE(X,Y),R,C,ф1,ф2
Здесь ф1 –начало дуги и ф2-конец дуги в радианной мере .Например,
REM ' Длина дуги 1-ой четверти окружности
CIRCLE(X,Y),R,C,0,1.57
6) Наконец , чтобы задать графический экран ,существуют разные режимы; оптимальный из них :
SCREEN 9
7) Оператор выбора отображаемого цвета
COLOR [передний план] , [фон]
Например,
COLOR 4, 2 -красные символы на зелёном фоне
COLOR -по умолчанию, фон – чёрный, символы – белые.
Таблица цветов 7
Номер цвета | Название цвета | Номер цвета | Название цвета |
0 | Чёрный | 8 | Серый |
1 | Синий | 9 | Светло-синий |
2 | Зелёный | 10 | Светло-зелёный |
3 | Голубой | 11 | Светло-голубой |
4 | Красный | 12 | Светло-красный |
5 | Пурпурный | 13 | Светло-пурпурный |
6 | Коричневый | 14 | Жёлтый |
7 | Белый | 15 | Ярко-белый |
2.3.3.Операторы ввода- вывода информации
REM-неисполняемый оператор, оператор-комментарий.
Ввод и вывод в QBASIC в основном осуществляются через простейшие операторы INPUT и PRINT.Оператор INPUT производит ввод данных, присваивая значения соответствующим переменным во время ввода.
Оператор ввода информации INPUT
В процессе выполнения программы приходится вводить с клавиатуры недостающую информацию, вести диалог. Значит нужен оператор, который будет запрашивать и ждать ввода этой информации, иначе не будет продолжения работы по программе. Таким оператором является INPUT.
Когда в программе встречается этот оператор, останавливается выполнение программы, на экране появляется знак вопроса и компьютер ждет ввода такого количества данных, какое указано в этом операторе.
Например, при следующей записи необходимо ввести значения трёх переменных.
INPUT A,B,C
RUN
? 5,8,3
Если точка с запятой стоят перед именами переменных, то знак вопроса не выводится.
INPUT; A,B,C -;подавляет знак вопроса
В большинстве случаев приходится пояснять текстовым сообщением о том, какие данные необходимо ввести. Для этого текст сообщения помещается в кавычки, затем ставится разделительный знак (точка с запятой или запятая) и перечисляются имена переменных.
INPUT; “Введите три числа “;A,B,C
RUN
Введите три числа -появляется на экране без знака вопроса
Если вводится фамилия (или какая другая символьная переменная),то
надо указывать знак $. Например, А$, В$; тогда с этими переменными нельзя производить вычисления.
Вводить данные , особенно когда их много, можно и с помощью оператора READ, он работает в паре с оператором DATA одновременно. Например,
DATA 6,9,4,45,3,12,56,41,6,8
READ А
Операторов DATA бывает несколько, и они могут располагаться в любом месте программы.
И данные считываются всё равно последовательно сверху вниз и слева направо. Если данных недостаточно, то выдаётся сообщение об ошибке типа «Нет данных». Можно восстановить все данные, хранящиеся в DATA командой RESTORE.
Например,
READ A,B,C,D
DATA 10.6,0.1,15,1.2
RESTORE: READ E,А
Если арифметическое выражение отсутствует, осуществляется возврат к началу списка. После выполнения этого фрагмента будет присвоено A=10.6,B=0.1,C=15,D=1.2,E=10.6,F=0.1.
Оператор вывода PRINT.
Применяется для вывода данных на экран дисплея оператор PRINT.
Общий вид: PRINT список.
Список может содержать имена переменных , числа, арифметические выражения ,тексты. При отсутствии списка просто осуществляется перевод строки.
При использовании этого оператора можно употреблять в качестве разделителей запятую или точку с запятой:
PRINT А, В; С;
Использование запятой приводит к так называемому "зонному" выводу данных, где под "зоной" понимается расстояние в 14 символов (колонок). При использовании точки с запятой в качестве разделителя данные выводятся последовательно, друг за другом.
Например, для того чтобы вывести на экран 3 символа, нужно написать так:
PRINT "A","B","C"
тогда на экране появится :
A B C
Если вы вводите
PRINT "A";"B";"C"
то на экране появится :
ABC
А вот диалоговая программа:
PRINT”Давайте познакомимся! Как Вас зовут?”
INPUT A$
PRINT “Очень приятно, ”;A$
RUN
Давайте познакомимся! Как Вас зовут?
? Марина
Очень приятно, Марина
Если вы хотите вывести на экран фамилию ИВАНОВ в позицию(10,5), надо применить ещё и оператор LOCATE
LOCATE –оператор перемещения курсора на заданную позицию экрана
(строк – 25, столбцов – 80).
LOCATE номер строки , номер столбца
REM‘Строка 10,позиция 5,печатать на экран ИВАНОВ
LOCATE 10, 5: PRINT " ИВАНОВ "
PRINT USING
PRINT USING формат,список позволяет выводить данные с заданной точностью. Например,
PRINT USING”x=##.#”,.152.15478
RUN
x=0.2
PRINT TAB
PRINT TAB (10);5 ВЫВОДИТ НА ЭКРАН ЧИСЛО 5 в 21-ю позицию строки экрана.
Пример 2.Составить программу ,которая выводила бы на экран ведомость получения зарплаты.
Фамилия,F | Зарплата, S | Премия,P | Налог 13%,PN | К выдаче ,S1 |
| | | | |
Решение
‘ОЧИСТИТЬ ЭКРАН
CLS
‘Задать оптимальный графический режим экрана
SCREEN 9
INPUT "Введите фамилию"; F$
INPUT "Введите размер заработанной платы "; S
INPUT "Введите размер премии"; Р
PN = (S + P) *0.13
S1 = S + P- PN
‘РИСУЕМ ТАБЛИЦУ
LINE (5, 100)-(550, 220),2, В
LINE (10, 170)-(550, 170)
LINE (110, 100)-(110, 220)
LINE (220, 100)-(220, 220)
LINE (330, 100)-(330, 220)
LINE (420, 100)-(420, 220)
‘Оформляем заголовок таблицы
‘Строка 10,позиция 5,печатать на экран ФАМИЛИЯ,F
LOCATE 10, 5: PRINT "ФАМИЛИЯ,F"
‘Строка 10,позиция 16,печатать на экран ЗАРПЛАТА,S
LOCATE 10, 16: PRINT "ЗАРПЛАТА,S"
LOCATE 10, 30: PRINT "ПРЕМИЯ,P"
LOCATE 10, 45: PRINT "НАЛОГ,PN"
LOCATE 10, 55: PRINT "ВЫДАТЬ,S1"
‘Заполнение таблицы
LOCATE 14, 2: PRINT F$
LOCATE 14, 17: PRINT S
LOCATE 14, 30: PRINT P
LOCATE 14, 45: PRINT PN
LOCATE 14, 55: PRINT "ВЫДАТЬ " ;S1
2.3.4. Оператор безусловного перехода GOTO.
Оператор безусловного перехода GOTO нарушает нормальное выполнение программы и переводит его на строку с указанным номером.
Современный стиль программирования не рекомендует использование этого оператора, т. к. он затрудняет чтение и отладку.
2.3.5. Блочные операторы.
К блочным операторам относятся:
• условный оператор IF/THEN/ELSE/END IF;
• оператор выбора SELECT CASE;
• оператор цикла FOR... TO;
• оператор цикла DO LOOP [{WHILE | UNTIL}];
• операторы цикла DO WHILE/UNTIL LOOP и WHILE WEND}
• процедурные блоки SUB и FUNCTION.
2.3.5.1. Оператор условной передачи управления
Оператор условной передачи управления (рис. 10) используют для программирования ветвлений, т. е. ситуаций, когда возникает необходимость при определённых условиях выполнять различные действия. Условие записывают в виде логического выражения, в зависимости от результата которого осуществляется выбор одной из ветвей: если результат true, то выполняется оператор, следующий за служебным словом then, иначе - оператор, следующий за служебным словом else.
В каждой ветви допускается запись одного оператора (в том числе и другого if) или составного оператора.
Рис. 10
Рис.11.Фрагменты алгоритмов
В соответствии с синтаксической диаграммой допускается использовать оператор условной передачи управления с неуказанной (пустой) ветвью else. В некоторых случаях использование укороченных конструкций может привести к неоднозначности, например, не понятно, какому из двух вариантов схем алгоритма (рис. 11.) соответствует фрагмент:
В этих случаях используется так называемое «правило вложенности»: альтернатива else всегда относится к ближайшему if, что соответствует варианту алгоритма на рис. 11, а. Если необходимо реализовать вариант алгоритма, изображенный на рис. 11, б, то вместо действия 2 используют переход на конец программы , а в ПАСКАЛЕ операторные скобки:
Пример3.
Составить программу, которая вычисляет значение кусочно-непрерывной функции:
Программа должна начинаться с ввода значения аргумента.
Затем в зависимости от того, в какой интервал попадает введенное значение, вычисляем значение функции по одному из заданных выражений.
Алгоритм решения данной задачи представлен на рис.12 .
Рис. 12. Блок-схема алгоритма программы примера 2.
2.3.5.2.Условный оператор IF/THEN/ELSE/END IF.
Условный оператор позволяет исполнять те или иные действия в зависимости от выполнения логического условия. Предлагается использовать две разновидности этого оператора:
IF условиеF THEN <оператор 1> : <оператор 2>: <оператор М>
IF <условие> THEN
<действие 1>
ELSE
<действие2>
END IF
или IF условиеF THEN
<оператор 1>
<оператор 2>
….
<оператор М >
END IF
В первом случае, при истинности логического условия F, выполняется последовательность операторов 1...М. Альтернативная конструкция отсутствует или заменена END IF , то есть если условие ложно, ничего
не выполняется.
Неполная форма записи оператора
IF усл THEN опер (или метка перехода)
Метка — это числовое значение, стоящее перед строкой, которой надо передать управление.
В неполной форме может быть опущен оператор ELSE, тогда при невыполнении условия управление передается следующему оператору, стоящему за оператором условного перехода.
На блок-схеме этот оператор обозначается фигурой, которая называется ромб, и имеет два выхода. Один когда поставленное условие выполняется, другой, когда нет.
Условия могут быть простые и сложные, которые состоят из двух или более простых условий. Если надо ,чтобы выполнялись одновременно все условия ,они соединяются логическими связками AND; когда должно выполняться хотя бы одно из перечисленных условий , то- OR.
Пример 4
Составьте программу, которая вводит два числа и выводит наибольшее из них.
Рис.13.
CLS
INPUT А, В
IF A> В THEN PRINT "Наибольшее из чисел A"; A
ELSE
PRINT"Наибольшее из чисел В"; В
Строка с условием выбирает одно из двух вариантов: если введенное значение переменой А окажется больше переменной В, то в результате будет напечатано значение А, иначе значение В.
Пример 5
Определить, является ли введённые числа А, В, С углами треугольника.
IF (А > 0) AND (В > 0) AND (С > 0) AND (А + В + С = 180) THEN
PRINT "ЯВЛЯЮТСЯ УГЛАМИ ТРЕУГОЛЬНИКА"
ELSE
PRINT "НЕ ЯВЛЯЮТСЯ УГЛАМИ ТРЕУГОЛЬНИКА"
ENDIF
2.3.5.3. Оператор выбора SELECT CASE.
С помощью оператора CASE возможен любой вариант из допустимых значений переменной. Он имеет структуру:
SELECT CASE параметр
CASE значение параметра 1
<оператор 1>
CASE значение параметра 2
<оператор 2>
CASE значение параметра Х
<оператор X>
CASE ELSE
<оператор L>
END SELECT
Если при выборе альтернативы необходимо выполнение нескольких операторов , то нужно записать их в одной строке через двоеточие либо каждый в своей строке.
Например,
Программа «Кодирование школьных оценок»
Эта программа показывает, что использование оператора SELECT CASE делает запись программы более компактной, чем при использовании блокового или строчного оператора IF.
REM Пример 6
CLS INPUT "Введи целое положительное из диапазона 1...5"; а
b$ = "Этой цифрой кодируется оценка "