Учебное пособие для студентов всех форм обучения Санкт-Петербург




НазваниеУчебное пособие для студентов всех форм обучения Санкт-Петербург
страница1/3
Дата публикации17.10.2016
Размер9,76 Kb.
ТипУчебное пособие
  1   2   3


Министерство экономического развития и торговли РФ
САНКТ-ПЕТЕРБУРГСКИЙ ТОРГОВО-ЭКОНОМИЧЕСКИЙ ИНСТИТУТ
Кафедра информатики

Учебная практика

на персональном компьютере
Учебное пособие
для студентов всех форм обучения

Санкт-Петербург

2002
Б.Ф. Лосев, Ж. В. Дрегваль, И. С. Кноп, Т. И. Турченюк

Учебная практика на персональном компьютере

Учебное пособие. СПбТЭИ. 2002.
Рецензент Уланов В.А - доцент кафедры “Теория кредита и финансового менеджмента” экономического факультета Санкт-Петербургского Государственного Университета.

Работа рассмотрена и одобрена на заседании кафедры информатики Санкт- Петербургского торгово-экономического института

22 мая 2002 года (протокол N 8).

© Санкт-Петербургский торгово-экономический институт (СПбТЭИ), 2002

РАЗДЕЛ I

ЯЗЫК Quick-BASIC


  1. Алфавит языка Qbasic


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

Первая половина кодировочной таблицы (символы с кодами от 0 до 127) является унифицированной и соответствует американскому стандарту ASCII. Эти части всех кодировочных таблиц, используемых на IBM-совместимых персональных компьютерах, идентичны. Напротив, вторые части различных кодировочных таблиц в принципе отличаются друг от друга. Это обстоятельство - источник определенных осложнений для отечественных пользователей ПК. Именно во второй части разных кодировочных таблиц находятся русские прописные и строчные буквы, символы псевдографики.

Рекомендуется при разработке бейсик-программ как можно шире использовать латинские буквы. В этом случае программа будет успешно работать на любом IBM-совместимом ПК.

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


  1. ^ Типы и структуры данных


В языке Qbasic определены следующие основные типы данных:

  1. числовой (целые стандартные, целые длинные, вещественные стандартные, вещественные длинные). Такой тип могут иметь константы, переменные, функции, элементы массивов и проч.

  2. двоичный, восьмеричный и шестнадцатеричный. К данному типу могут относиться только, так называемые, беззнаковые константы.

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



    1. Константы

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

Среди констант различают абсолютные и именованные константы.

Абсолютная константа представляет собой значение, записанное в тексте программы. Например, в операторах:

n=81

simbol$="** - **"

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

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

Именованная константа определяется в программе с помощью конструкции, напоминающей обычный оператор присваивания. Например, запись вида: %n = 255 описывает такую константу с именем %n, имеющую целое значение 255.

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

Целые стандартные (в дальнейшем - просто "целые") константы могут принадлежать диапазону [-32 768; 32 767]. Они представляются в памяти ПК двухбайтовыми двоичными числами в дополнительном коде. В бейсик-программе такие константы записываются в виде десятичных чисел, заканчивающихся символом %. Например: 102%.

Имеется возможность задания целых констант в виде беззнаковых двоичных, восьмеричных или шестнадцатеричных чисел:

  1. двоичная константа начинается с двух символов &B и может содержать от одной до шестнадцати двоичных цифр;

  2. восьмеричная константа начинается двумя символами &O и не должна превышать своего максимального значения &O177777;

  3. шестнадцатеричная константа начинается с двух символов &H и не должна превосходить максимального значения &HFFFF.

Целые длинные константы находятся в диапазоне [-2 147 483 648;
2 147 483 647]
и представляются в памяти ПК четырехбайтовыми двоичными числами в дополнительном коде. В Qbasic - программе такие константы записываются в виде десятичных чисел, заканчивающихся символом &. Например: 1000000&.

Стандартные вещественные (в дальнейшем - просто "вещественные") константы представляются в памяти ПК в четырехбайтовом стандарте (формат IEEE), а их модуль должен находиться в диапазоне от 1.2E-38 до 3.4E+38 и может насчитывать до семи десятичных цифр. Запись констант такого типа можно заканчивать символом «!». Например: 0.45E-2!, 45!.

Строковые константы представляют собой цепочки любых символов алфавита, заключенные в кавычки. Исключение составляют строковые константы, используемые в операторе DATA, когда кавычки можно не указывать. Максимальная длина строковой константы ограничена – 255 символами.

Если внутри строковой константы необходимо задать кавычку, то вместо внутренних кавычек следует использовать символ апостроф. Например: s$= “Язык 'Бейсик'”.


    1. Простые переменные

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

В отличие от констант простые переменные (в дальнейшем - просто "переменная") являются информационными объектами, значения которых могут изменяться в процессе выполнения программы. Для обозначения каждой переменной используется уникальное имя - идентификатор. Он состоит только из латинских букв, десятичных цифр, точек и должен начинаться с буквы. Длина идентификатора не ограничена, но во внимание принимаются только первых 40 символов.

Большие и малые буквы в идентификаторах не различаются.

Использование символа “точка” позволяет составлять идентификатор из нескольких слов, например, Max.Price, Min.X, Block.Of.Text и проч.

Каждая переменная характеризуется типом принимаемых ею значений. Типы и свойства переменных соответствуют типам и свойствам соответствующих констант.

Значением переменной строкового типа является цепочка любых символов алфавита, количество которых характеризует "длину" значения этой переменной. Эта длина может находиться в интервале от нуля (пустое значение) до 32 767.

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

В качестве специальных символов-указателей типа используются уже известные нам символы:

  • % - целый тип;

  • & - целый длинный тип;

  • ! - вещественный тип (символ! можно опускать);

  • # - вещественный длинный тип;

  • $ - строковый тип.

Неявное объявление типа переменной осуществляется с помощью операторов DEFINT (целый), DEFLNG (целый длинный), DEFSNG (вещественный), DEFDBL (вещественный длинный) и DEFSTR (строковый). Все указанные операторы имеют идентичные конструкции:
DEFINT a1[-a2],b1[-b2]

DEFLNG a1[-a2],b1[-b2]

DEFSNG a1[-a2],b1[-b2]

DEFDBL a1[-a2],b1[-b2]

DEFSTR a1[-a2],b1[-b2]
Например, оператор DEFINT a-g,r,x-z объявляет, что переменные, имена которых начинаются буквами a,b,c,d,e,f,g, буквой r и буквами x,y,z, относятся к целому типу.

Действие указанных операторов на переменные, тип которых задан явным образом, не распространяется. Поэтому при наличии в бейсик-программе оператора DEFINT a-g,r,x-z в ней могут существовать переменные r.long& (целый длинный тип), abba# (вещественный длинный тип), y.string$ (строковый тип). Таким образом, явное описание типа имеет более высокий приоритет по сравнению с неявным описанием, задаваемым с помощью операторов описания типа переменной.


    1. Преобразование типа данных

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

Неявный способ связан с использованием обычного оператора присваивания. Например, оператор s#=5% не только присваивает значение 5 переменной s, но и преобразует тип от целого к вещественному длинному.

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

  1. состоит из четырех функций для преобразования числового аргумента любого типа к требуемому типу: CINT – целый тип, CLNG - целый длинный тип, CSNG - вещественный тип, CDBL - вещественный длинный тип. При переходе от вещественного длинного типа к вещественному типу происходит необходимое округление исходного значения. Получение целого или целого длинного типа для аргумента вещественного или вещественного длинного типа связано с предварительным выполнением операции округления аргумента до ближайшего целого. Если аргумент функции CINT, CLNG или CSNG выходит за пределы допустимого диапазона для значений соответствующего типа, то во время выполнения программы фиксируется переполнение разрядной сетки.

  2. включает в себя две функции, которые реализуют прямое (ASC) или обратное (CHR$) преобразование между каждым символом кодировочной таблицы ASCII и его десятичным кодом из диапазона [0;255]. Аргументом функции ASC может быть строковое выражение ненулевой длины, причем преобразованию подвергается только первый символ соответствующего строкового значения. Например, функция ASC("IBM"+"AT") будет иметь значение 73, т.к. первый символ "I" аргумента "IBM" характеризуется кодом 73 в таблице ASCII. Функция CHR$ выполняет преобразование целого аргумента из диапазона [0,255] в односимвольное значение по таблице ASCII. Так, например, с помощью оператора: print chr$(73);chr$(66);chr$(77) на экран монитора будут выведены подряд три символа "I","B" и "M".

  3. состоит из двух функций, позволяющих преобразовывать числовой аргумент из его машинного представления в строковое значение (STR$) или наоборот (VAL). Аргументом функции VAL является строковое выражение, которое будет преобразовано в машинный формат, соответствующий типу аргумента. При этом исходное строковое значение по внешнему виду должно соответствовать числовому значению. Функция VAL начинает преобразование с крайнего левого символа и продолжает его до тех пор, пока не будет исчерпана строка, либо пока не встретится первый нечисловой символ.


Таблица типов данных

Идентификатор

Описание

Объявление

Тип

переменной

Объём

переменной

%

INTEGER

DEFINT

Целая

2 байта

!

SINGLE

DEFSNG

Обычной

точности

4 байта

#

DOUBLE

DEFDBL

Двойной

точности

8 байта

$

STRING

DEFSTR

Строковая

4 байта



    1. Массивы

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

Правила описания типа для идентификаторов массива полностью соответствуют рассмотренным выше правилам описания типа простых переменных.

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

Двумерные массивы являются аналогами матриц и имеют "прямоугольную" структуру. Первый элемент списка индексов двумерного массива указывает номер строки, а второй – номер столбца, на пересечении которых располагается данный элемент массива. Аналогично определяются массивы большей размерности.

В языке Qbasic максимальной размерностью массива (наибольшее количество элементов в списке индексов) является 8 , т.е. восьмимерный массив. Значение любого индексного выражения перед обращением к памяти компьютера преобразуется к целому типу. При этом минимальное значение индекса может находиться в диапазоне [0; 32766], а максимальное значение - 32 767.

По умолчанию наименьшим значением любого индекса является 0. При необходимости минимальное значение может быть установлено явным способом с помощью оператора OPTION BASE. Например, оператор OPTION BASE 2001 определяет значение 2001 как минимальное для любого индекса в данной бейсик-программе.

Для объявления конкретного массива в программе используется оператор DIM, имеющий формат:

DIM [атрибут] имя ([i1min:]i1max,[i2min:]i2max,...)

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

  1. Статическому (STATIC) массиву память выделяется во время компиляции программы. Такой массив нельзя переопределить или уничтожить в процессе работы программы. По умолчанию массивы, границы которых заданы константами, считаются статическими (например, массив с описанием DIM vect (50,11:20) подразумевается статическим).

  2. Выделение основной памяти для размещения динамических массивов осуществляется во время выполнения программы. Динамические массивы можно многократно переопределять и уничтожать. Если в операторе DIM хотя бы одна граница задана переменной, то такой массив считается динамическим (например, массив с описанием DIM cell(n), где n – переменная, подразумевается динамическим).Удаление из основной памяти динамического массива выполняется оператором ERASE. Например, с помощью оператора : erase cell, array.din из памяти удаляются два динамических массива с именами cell и array.din.

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

Применение оператора ERASE к статическому массиву приводит к обнулению всех элементов этого массива.


  1. Выражения

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

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

Таблица основных арифметических операций Qbasic

Выражение

Выполняемая операция

x1+x2

Сложение x1 и x2

x1-x2

Вычитание из x1 x2

x1*x2

Умножение x1 на x2

x1/x2

Деление x1 на x2

x1\x2

Целая часть от деления x1 на x2

x1^x2

Возведение x1 в степень x2

X1 MOD x2

Остаток от деления x1 на x2


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

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

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

Логические выражения образуются из логических операндов, имеющих одно из двух значений - истина или ложь (кодируются 1 и 0 соответственно). Простейшим логическим выражением является отношение: два выражения соответствующих типов, связанные операцией отношения.
Таблица основных логических операндов

Кодировка знака операции сравнения

Операция сравнения

=

Равно

<>

Не равно

>

Больше

<=

Не больше

<

Меньше

>=

Не меньше


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

Атрибут

Логическая функция

x

y

NOT
отрица-ние

AND
конъюнк-ция

OR
дизъ-нкция

XOR
исключа-ющее “или”

EQV
эквивалент-ность

IMP
импли-кация

0

0

1

0

0

0

1

1

0

1

1

0

1

1

0

1

1

0

0

0

1

1

0

0

1

1

0

1

1

0

1

1



  1. Функции

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

Любая функция реализуется с помощью программы, которая либо является стандартной компонентой системы программирования, либо должна быть сконструирована самим пользователем. Поэтому все функции подразделяются на стандартные (системные) и пользовательские.

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

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

В таблице показаны стандартные математические функции. Вычисленное значение каждой функции имеет вещественный длинный тип. В качестве аргумента функции может быть использовано арифметическое выражение одного из числового типа. Аргумент для тригонометрических функций SIN, COS и TAN должен задаваться в радианах. Значение функции ATN выдается в радианах.
Таблица стандартных математических функций


Функция

Назначение

Функция

Назначение

ABS(x)

Абсолютное значение |x|

LOG(x)

Логарифм натуральный

ATN(x)

Арктангес (x)

LOG10(x)

Логарифм десятичный

CEIL(x)

Ближайшее целое >x

LOG2(x)

Логарифм двоичный

COS(x)

Косинус (x)

RND[(x)]

Случайное число из (0;1)

EXP(x)

Экспонента e^x

SNG(x)

Определение знака

EXP10(x)

Экспонента 10^x показа-тельная функция

EXP2(x)

Экспонента 2^x показа-тельная функция

SQR(x)

Корень квадратный

TAN(x)

Тангенс (x)

INT(x)

Ближайшее целое

SIN(x)

Синус (x)


Таблица стандартных функций для обработки строковых переменных


Функция

Назначение

INSTR([k,]e$,m$)

Поиск вхождения фрагмента m$ в строку e$, начиная с k-ой позиции e$. Если аргумент k отсутствует, поиск ведется с первой позиции строки e$

LEN(e$)

Определение длины строкового значения

LCASE$(e$)

Замена в e$ каждой прописной буквы строчной

LEFT$(e$,n)

Выделение n первых символом из строки e$ (левая подстрока)

MID$(e$,k[,n])

Выделение из строки e$ n символов, начиная с символа номер k. Если аргумент n отсутствует, то выделяются все символы, начиная с k-го

RIGHT$(e$,n)

Выделение n последних символов из строки e$ (правая подстрока)

SPACE$(n)

Создание строки из n пробелов

STRING$(n,q)

Создание строки из n символов с десятичным кодом q

STRING$(n,e$)

Создание строки, состоящей из n первых символов строки e$

UCASE$(e$)

Замена в e$ каждой строчной буквы прописной




  1. ^ Операторы и бейсик-программа

Оператор представляет собой неделимую порцию действия.

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

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

На расположение операторов в тексте программы накладывается вполне естественное правило: сначала должны идти декларативные, а затем - исполняемые операторы (сначала определи, а затем используй).

Программа представляет собой последовательность строк, в каждой из которых находится один или более операторов, разделяемых символом двоеточие. Набор строки программы завершается нажатием клавиши [Enter], что вызывает помещение в конец этой строки специального символа "Возврат каретки".

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

    1. ^ Оператор присваивания

Основным оператором является оператор присваивания, имеющий традиционную конструкцию:

<переменная>=<выражение>

Тип переменной левой части должен соответствовать типу значения выражения: числовой - числовой, логический - логический, строковый - строковый. Тип числовой переменной левой части может не совпадать с числовым типом выражения. В этом случае перед собственно присваиванием выполняется преобразование типа значения выражения к типу переменной левой части оператора. При этом математического округления не производится.

Полезной разновидностью оператора присваивания является оператор SWAP, имеющий формат:

SWAP <переменная1>,<переменная2>

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


    1. ^ Оператор безусловного перехода GOTO

Безусловный оператор имеет формат:

GOTO<метка или номер строки>

Оператор безусловного перехода GOTO нарушает нормальное вы полнение программы и переводит его на строку с указанным номером.


    1. ^ Условный оператор IF/THEN/ELSE/ENDIF

Условный оператор IF позволяет исполнять те или иные действия в зависимости от выполнения логического условия. имеет несколько разновидностей своей конструкции.

  1. Сокращенная форма:

IF<условие>THEN<оператор>

  1. Полная форма:

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

  1. Развернутая полная форма:

IF<условие>THEN

<группа1_операторов>

ELSE

<группа2_операторов>

ENDIF

Ветвь ELSE<группа2_операторов> может отсутствовать. В этом случае оставшаяся часть оператора IF обязательно завершается ключевым словом ENDIF. Возможно использование конструкции из вложенных операторов IF.


    1. ^ Оператор выбора

Использование громоздких конструкций из нескольких вложенных операторов IF приводит к плохо читаемому тексту программы. В этом случае прибегают к более удобной конструкции оператора выбора, имеющей формат:
^ SELECT CASE <параметр>

CASE значение параметра 1

<группа1_операторов>

CASE значение параметра 2

<группа2_операторов>

...

CASE ELSE

<группаN_операторов>

^ END SELECT
Выражение, стоящее после ключевого слова CASE играет роль своеобразного индикатора и может быть числовым или строковым. С помощью операторов CASE конструируются различные условия для анализа значения индикатора.


    1. ^ Операторы цикла

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

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




^ FOR <параметр цикла>=<нач.зн.>TO<кон.зн.>[STEP<шаг>],

<последовательность операторных строк>

NEXT[<параметр цикла>]
где: параметр цикла - простая переменная числового типа;

нач.зн. - начальное значение параметра цикла;

кон.зн. - конечное значение параметра цикла;

шаг - величина изменения параметра цикла.

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

Оператор цикла FOR позволяет изменять параметр цикла по закону арифметической прогрессии. Тело цикла выполняется до тех пор, пока текущее значение параметра цикла не превзойдет конечного значения при положительном шаге или пока текущее значение параметра цикла не сделается меньше конечного значения при отрицательном шаге.




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

<последовательность операторных строк>

WEND

Работа такого цикла начинается с проверки значения логического выражения. Если оно истинно, то выполняется тело цикла. Затем вновь проверяется значение логического выражения. Цикл заканчивает свою работу, как только логическое выражение примет значение ложь.

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




^ DO [WHILE<условие> | UNTIL<условие>]

<последовательность операторных строк>

LOOP [WHILE<условие> | UNTIL<условие>]

В такой конструкции пользователь сам может выбрать вариант проверки условия возобновления цикла - в начале цикла (предусловие) или в конце цикла (постусловие). Можно воспользоваться сразу двумя условиями. Конструкция WHILE<условие> позволяет повторять цикл при истинном значении условия, а конструкция UNTIL<условие> - наоборот, при ложном значение условия.

Примечание: Возможно использование сложных конструкций с вложенными циклами. При этом внутренний цикл должен целиком содержаться внутри внешнего. Если вложенные циклы имеют одинаковую структуру FOR-NEXT, то допускается завершать все эти циклы одним оператором NEXT, в котором соответственно перечислены параметры каждого цикла. Досрочный выход из любого цикла возможен с помощью операторов группы EXIT - EXIT FOR, EXIT DO, EXIT LOOP.



    1. ^ Операторы ввода

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

^ INPUT [;][строковая константа]{;| |,}<список переменных>

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

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

После появления на экране текста запроса пользователь должен набрать на клавиатуре необходимое количество вводимых значений, разделяя их запятыми. Завершается ввод значений нажатием клавиши [Enter]. Количество вводимых значений может не совпадать с количеством элементов в списке переменных. Лишние значения будут проигнорированы, а при нехватке вводимых значений оставшимся без ввода переменным будут присвоены нулевые значения.

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

Для ввода с клавиатуры единственного строкового значения предназначен оператор LINE INPUT в виде:

^ LINE INPUT [;][<строковая константа>;]<строковая переменная>

Этот оператор позволяет ввести строку символов, в которую могут входить символы пробел и запятая. Набор вводимой строки завершается нажатием клавишей [Enter].

Оператор LINE INPUT не выдает приглашение к вводу, заканчивающееся вопросительным знаком. Все остальные атрибуты этого оператора соответствуют оператору INPUT.

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

<строковая переменная>=INPUT$(<длина>)

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

<строковая переменная>=INKEY$

С помощью этой функции удобно организовывать циклы, работающие до тех пор, пока пользователь не нажмет какую-либо клавишу.

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

DATA <список констант>

READ<список переменных>

Запись строковых констант в операторе DATA может производиться без кавычек. Считывание значений из блока данных производится в переменные списка оператора READ слева направо. В программе могут располагаться несколько операторов DATA и несколько операторов READ. Все операторы DATA формируют один общий блок данных.

При необходимости возврата к началу блока данных используется оператор RESTORE.


    1. ^ Операторы вывода

Вывод данных может быть осуществлен в стандартных форматах с помощью соответствующих операторов по трем основным направлениям: на экран (PRINT), на принтер (LPRINT) или в дисковый файл (PRINT#n). При выводе в произвольном формате используются операторы PRINT USING, LPRINT USING и PRINT #n USING соответственно.

Обычно выводу данных на экран предшествует очистка экрана с помощью оператора CLS. Для перевода курсора в исходную позицию экрана, с которой начнется отображение выводимых данных, используется оператор LOCATE вида:
^ LOCATE [<ном.стр.>][,<ном.столб.>][,<признак>]
Эта позиция задается номером строки (от 1 до 25), номером столбца (от 1 до 80), а также признаком видимости (равен 1) или невидимости (равен 0) курсора.

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

PRINT [<список арифметических выражений>]

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

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

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

TAB(<арифметическое выражение>)

Например, оператор

PRINT TAB(5),"Аргумент=";X,TAB(30),"Функция=";SIN(X)

задает вывод текста "Аргумент=", начиная с пятой позиции текущей строки, а вывод текста "Функция=" - с тридцатой позиции. При этом разделитель, стоящий после функции TAB, не имеет никакого дополнительного значения.

Вещественные значения, принадлежащие диапазону [0.1,1E15], выводятся в формате с фиксированной точкой и могут содержать до 16 значащих цифр, из которых верными являются только семь. Остальные вещественные значения выводятся в формате с плавающей точкой и содержат 16 цифр.

Вещественные значения при выводе насчитывают до 16 цифр, из которых лишь семь являются верными. При этом значения в диапазоне [0.1, 1E15] выводятся в формате с фиксированной точкой, а остальные значения - в формате с плавающей точкой. Вещественные длинные значения используют аналогичные форматы, но количество верных цифр увеличивается до 16.

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

^ PRINT USING <шаблон>;<список выражений>

Шаблон представляет собой строковую константу (реже строковое выражение), некоторые символы которой не обозначают сами себя, а являются управляющими символами печати. В нем возможно размещение полей трех типов: истинные строковые константы, числовые и строковые поля. Имеется 12 символов, которые лишены своих исходных значений и которым придан специальный смысл: # . ^ + - * $ , _ \ ! &.

Первые три символа (решетка, точка и стрелка вверх) предназначены для записи в шаблоне обычных числовых полей. Символ # обозначает одну цифровую позицию. Символ точка явно задает местоположение десятичной точки в выводимом числе. Группа ^^^^ из четырех символов стрелка вверх определяет расположение порядка числа при выводе в формате с плавающей точкой.

Знак плюс, записанный в числовом поле, принуждает к выводу перед положительными числами знака плюс. Две звездочки, расположенные в начале числового поля, приводят к замещению при выводе незначащих нулей символом звездочка (обычно незначащие нули замещаются пробелами). Комбинация $$ в начале числового поля вызывает появление знака $ денежной единицы перед старшей цифрой выводимого числа. Запятая в описании числового поля используется для придания длинным числам лучшей читабельности – запятыми выделяются триады десятичных разрядов.

При выводе числового значения в соответствии с заданным числовым полем производится его округление, и оно размещается в этом поле, прижатое к правому его краю. Если выводимое значение не помещается в предназначенное для него поле, то при выводе перед таким значением помещается символ процент.

Для описания строковых полей используются три символа: левая косая черта (\), восклицательный знак (!) и амперсанд (&). Строковое поле вида \n пробелов\ позволяет вывести (n+2) первых символов из выводимого строкового значения. Если длина отображаемого строкового значения меньше длины заданного поля, то недостающие позиции справа заполняются пробелами.

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

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

Похожие:

Учебное пособие для студентов всех форм обучения Санкт-Петербург iconУчебно-методическое пособие для студентов всех форм обучения специальности...

Учебное пособие для студентов всех форм обучения Санкт-Петербург iconУчебное пособие Курс лекций Для студентов высших учебных заведений...
Учебное пособие предназначено для студентов вузов, но может быть полезно и тем, кто самостоятельно изучает экономическую теорию
Учебное пособие для студентов всех форм обучения Санкт-Петербург iconО проекте строительства жилого комплекса: 1 очередь квартала 38-1:...
Санкт-Петербург, В. О., Косая линия, д. 3, корпус офис продаж: Санкт-Петербург, пр. Стачек, д. 67, кор. 1, литера А
Учебное пособие для студентов всех форм обучения Санкт-Петербург iconВиноградов В. С. Сборник упражнений по грамматике испанского языка....
Учебное пособие предназначено для студентов, изучающих испан­ский язык в университетах и других учебных заведениях. Им могут пользовать­ся...
Учебное пособие для студентов всех форм обучения Санкт-Петербург iconОсновы педагогического мастерства Учебное пособие
Учебное пособие к п н. Якушевой С. Д. предназначено для преподавателей и студентов (обучающихся по педагогическим специальностям...
Учебное пособие для студентов всех форм обучения Санкт-Петербург iconМетодические рекомендации по подготовке студентов выпускных курсов...
Студентов выпускных курсов всех форм обучения в гоу впо «Саратовская государственная академия права». Учитывая методологическое значение...
Учебное пособие для студентов всех форм обучения Санкт-Петербург iconОбязательные постановления по морскому порту «большой порт санкт-петербург»...
Федеральное государственное учреждение «администрация морского порта «большой порт санкт-петербург»»
Учебное пособие для студентов всех форм обучения Санкт-Петербург iconПрограмма учебной дисциплины для студентов всех форм обучения по специальностям

Учебное пособие для студентов всех форм обучения Санкт-Петербург iconУполномоченный по правам ребенка в Санкт-Петербурге
Адрес: Санкт-Петербург, переулок Гривцова д. 11 (ст. М "Сенная площадь"). 190000, Санкт-Петербург, box 1163
Учебное пособие для студентов всех форм обучения Санкт-Петербург iconПсихология человека
...
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
dopoln.ru
Главная страница