Программы, разработанные в соответствии с алгоритмами, имеют различный вычислительный характер. Однако среди выполняемых последовательностей операторов выделяют типовые структуры, из которых состоят программы: линейная, разветвляющая, циклическая, вложенных циклов. Сложные программы включают в себя все типы структур.
Организация программ линейной структуры. Программы линейной структуры не содержат никаких условий; операторы такой программы выполняются в той последовательности, в которой они записаны. Для организации рассматриваемых программ требуются операторы ввода информации, присваивания и вывода результатов вычислений.
Операторы присваивания служат для вычисления значений выражения и присваивания его переменной, расположенной слева от символа: =.
Общий вид записи оператора:
а: = b
где a – имя переменной; b – выражение.
Примеры записи операторов:
Х: = 0,25 Х: = Х + 0,25
Т: = - 10,6 А: = Т
Два оператора присваивания задают переменным Х и Т числовые значения. Оператор Х: = Х + 0,25 вычисляет новое значение Х, изменяя предыдущее значение Х: = 0,25 на величину 0,25. В операторе А: = Т; переменная А получает значение Т.
|
|
Переменная и выражение должны принадлежать одному типу. Допускаются два исключения:
1) Переменная действительного типа, а выражения целого или ограниченного целого типа;
2) Выражения ограниченного по отношению к переменной типа и наоборот
Операторы ввода и вывода данных обеспечивают программу исходными данными, необходимыми для решения задачи, и осуществляют вывод результатов решения. Поэтому практически любая программа должна содержать эти операторы, выполненные в языке Паскаль как процедуры.
Для ввода используются операторы:
READ (b1, b2 ,…..bn);
READLN (b1, b2,….., bn);
Где b1, b2,….., bn – имена переменных, подлежащих вводу данных из стандартного входу файла INPUT, в результате которой имена переменных b1, b2,….., bn получают соответствующие значения. Типы вводимых переменных должны соответствовать типам вводимых значений.
При вводе литеральных данных все литеры, включая пробелы и переходы к новой строке, являются значимыми. Пробел воспринимается как литера. Поэтому после считывания последней литеры в строке следующая литера является недоступной. Попытка прочитать литеру приводит к чтению пробела.
Оператор READLN (b1, b2,….., bn); обеспечивает выборку данных из стандартного файла INPUT, но после окончания выборки последней переменной осуществляется переход к началу новой строки файла.
При вводе значений переменных целого и действительного типов операторы READ и REАDLN пропускают пробелы между значениями. Оператор READLN; обеспечивает пропуск одной строки в стандартном файле INPUT и переход к началу новой строки.
|
|
Значения переменных, соответствующие именам переменных в списке ввода, могут принадлежать типу целому, действительному или символьному. Ввод переменных логического типа недопустим. Примеры записи операторов:
REАD (A, B, C);
READLN (A, B, C);
Для ввода информации используются операторы:
WRITE (b1, b2,….., bn);
WRITELN (b1, b2,….., bn)
WRITELN;
Где b1, b2,….., bn – имена переменные, подлежащих выводу.
Оператор в WRITELN (b1, b2,….., bn): выполняет вывод значений, соответствующих именам b1, b2,….., bn, стандартный выходной файл OUTPUT и после вывода последнего значения осуществляет переход к новой строке файла OUTPUT.
Оператор WRITELN обеспечивает пропуск строки в файле и переход к началу следующий строки.
Имена переменных, записанные в операторе вывода, могут принадлежать целому, действительному, символичному или логическому типу.
Примеры записи операторов:
WRITE (A, B, C):
WRITELN (A, B, C):
Ширина поля вывода определяется типом устройства, использующего в данной ЭВМ. Форма представления выводимых переменных определяется типом переменных: значение величин целого типа выводятся в обычной форме; значение величин действительного типа – в виде нормализованного числа действительного типа с порядком; значение логического типа – в виду логических значений TRUE и FALSE; значения символьных переменных – в виде соответствующих символов.
Операторы вывода допускают использование указания о ширине поля, отводимого под значение, в явном виде. Общий вид записки операторов при выводе значений целого типа:
WRITE (b: m);
WRITELN (b; m);
Где b – имя выводимой переменной; m – константа или выражение целого типа.
Пример записи:
WRITE (D: 6, IR: 8);
Значения переменных D и IR размещаются в одной строке и занимают соответственно шесть и восемь позиций. Каждое значение размещается в отведённом поле и занимает крайние правые позиции. При этом не заполненные позиции остаются свободными и образуют пробелы. Если значения переменной не размещаются в отведённом поле, то число позиций увеличивается.
При выводе значений действительно тира с фиксированной точкой указывается ширина поля, отводимого по все значения и дробную часть числа. Общий вид записи операторов имеет следующий вид:
WRITE (b: m: n);
WRITELN (b: m: n);
Где m – поле, отводимое под запись значения; n – часть поля, отводимого под дробную часть числа.
Пример записи:
WRITE(А: 8: 3);
В этом случае под значение А выделяется 8 позиций, три из которых отводятся под дробную часть числа. Если при выводе действительных значений количество позиций, отводимых под дробную часть числа, не указывается, то результат получается в нормализированном виде с десятичном порядком.
При выводе нескольких значений на одной строке для наглядности задаются необходимом количеством пробелов. Дл этого записывают оператор вывода в виде WRITE(´ ´:q); где q – константа целого типа указывающая число пробелов. Например:
WRITE(А, ´ ´: 4, B);
Между значениями А и В обеспечивается гарантированный интервал в четыре пробела.
Приведённые ниже примеры демонстрируют различные виды размещений информации при выводе:
PROGRAM PRIM1 (OUIPUT);
CONST PI=3, 141592;
T=401;
W=TRUE;
SIM=´ D´;
BEGINE
WRITELN(PI: 8: 6);
WRITELN(T: 6, ´ ´: 5, W: 4, ´ ´: 6, SIM:1);
END.