Диапазоны возможных значений, стандартные процедуры и функции, применимые к данным вещественных типов
В табл. 1 приведены характеристики вещественных типов Borland Pascal.
Таблица 1.Параметры вещественного типа
Название | Обозначение | Количество десятичных значащих цифр | Диапазон изменения порядка | Длина внутреннего представления, байт |
Вещественный | Real | 11…12 | -39…+38 | |
Одинарной точности | Single | 7…8 | -45…+38 | |
Двойной точности | Double | 15…16 | -324…+308 | |
Расширенной | Extended | 19…20 | -4951…+4932 | |
«Большое число» | Comp | 19…20 | -263+1…263-1 |
Лекция 6. Операторы языка Pascal (2 часа)
Составной оператор
С одним из наиболее часто используемых операторов языка Турбо Паскаль - оператором присваивания мы уже познакомились. Ниже рассматриваются остальные операторы языка.
Составной оператор - это последовательность произвольных операторов программы, заключенная в операторные скобки - зарезервированные слова begin . . . end. Составные операторы - важный инструмент Турбо Паскаля, дающий возможность писать программы по современной технологии структурного программирования (без операторов перехода GOTO).
Язык Турбо Паскаль не накладывает никаких ограничений на характер операторов, входящих в составной оператор. Среди них могут быть и другие составные операторы - Турбо Паскаль допускает произвольную глубину их вложенности:
begin
.......
begin
.......
begin
......
......
end;
......
end;
......
end;
Фактически, весь раздел операторов, обрамленный словами begin ... end, представляет собой один составной оператор. Поскольку зарезервированное слово end является закрывающей операторной скобкой, оно одновременно указывает и конец предыдущего оператора, поэтому ставить перед ним символ «;» необязательно, и далее во всех примерах мы не будем этого делать. Наличие точки с запятой перед end в предыдущих примерах означало, что между последним оператором и операторной скобкой end располагается пустой оператор. Пустой оператор не содержит никаких действий, просто в программу добавляется лишняя точка с запятой. В основном пустой оператор используется для передачи управления в конец составного оператора.
Организация программ разветвляющейся структуры
Разветвленная структура процесса вычислений предполагает, что конкретная последовательность операций зависит от значений одного или нескольких параметров. Например, если дискриминант квадратного уравнения не отрицателен, то уравнение имеет два корня, а если отрицателен, то действительных корней нет.
При написании программы разветвляющейся структуры можно воспользоваться двумя операторами: условным оператором и оператором выбора.
Условный оператор
Оператор условной передачи управления (рис. 1) используют для программирования ветвлений, т. е. ситуаций, когда возникает необходимость при определенных условиях выполнять различные действия. Условие записывают в виде логического выражения, в зависимости от результата которого осуществляется выбор одной из ветвей: если результат true, то выполняется оператор, следующий за служебным словом then, иначе - оператор, следующий за служебным словом else.
Структура условного оператора имеет следующий вид:
IF <условие> THEN <оператор1> ELSE <оператор2>,
где IF, THEN, ELSE - зарезервированные слова (если, то, иначе); <условие> - произвольное выражение логического типа; <оператор1>, <оператор2> - любые операторы языка Турбо Паскаль.
В каждой ветви допускается запись одного оператора (в том числе и другого if) или составного оператора.
Перед else точка с запятой не ставится никогда, так как в этом случае запись условного оператора продолжается.
Рис. 1. Синтаксическая диаграмма <Оператор условной передачи управления>
рис.2 рис.3
В соответствии с синтаксической диаграммой допускается использовать оператор условной передачи управления с неуказанной (пустой) ветвью else. В некоторых случаях использование укороченных конструкций может привести к неоднозначности, например, не понятно, какому из двух вариантов схем алгоритма (рис. 2) соответствует фрагмент:
if<условие1> then if <условие 2> then <действие 1> else <действие 2>;
В этих случаях используется так называемое «правило вложенности»: альтернатива else всегда относится к ближайшему if, что соответствует варианту алгоритма на рис. 2, а. Если необходимо реализовать вариант алгоритма, изображенный на рис. 3, то используют операторные скобки:
if<условие1> then begin
if <условие 2> then
<действие 1> end else <действие 2>;
Пример 1. Разработать программу, которая вычисляет значение функции, заданной следующим образом:
Программа должна начинаться с ввода значения аргумента. Затем в зависимости от того, в какой интервал попадает введенное значение, вычисляем значение функции по одному из заданных выражений. Текст программы имеет следующий вид.
Program ex; Var x,y:real;
Begin
WriteLn('Введите значение аргумента.');
ReadLn(x);
if abs(x)<=l then y:=abs(x) {первый отрезок}
else
if(abs(x)>l) and (abs(x)<=2) then y:=sqr(x) {второй отрезок}
else y:-4; {третий отрезок}
WriteLn('Ilpu x=', x:8:5, ' y=', y:8:5);
End.
Оператор выбора
Оператор выбора используется для реализации нескольких альтернативных вариантов действий, каждый из которых соответствует своим значениям некоторого параметра.
Структура оператора выбора такова:
CASE <ключ_выбора> OF <список_выбора> [ELSE <операторы>] END
Здесь CASE, OF, ELSE, END - зарезервированные слова (случай, из, иначе, конец);
<ключ_выбора> - ключ выбора;
<список_выбора> - одна или более конструкций вида:
<константа_выбора> : <оператор>;
<константа_выбора> - константа того же типа, что и выражение <ключ_выбopa> ;
<операторы> - произвольные операторы Турбо Паскаля.
Оператор выбора работает следующим образом. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последовательности операторов <список_выбора> отыскивается такой, которому предшествует константа, равная вычисленному значению. Найденный оператор выполняется, после чего оператор выбора завершает свою работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за словом ELSE. Часть ELSE <оператор> можно опускать. Тогда при отсутствии в списке выбора нужной константы ничего не произойдет и оператор выбора просто завершит свою работу.
Пример. Разработать программу, которая вычисляет значение одной из заданных функций в указанной точке.
Предоставим пользователю возможность выбрать функцию через простейшую имитацию меню, в котором каждой функции соответствует некоторое число (код):
Введите код функции:
- y=sin(x)
- y=cos(x)
- у=ехр(х)
В зависимости от значения введенного кода выбирается одна из функций. Ниже представлена программа, реализующая разработанный алгоритм.
Program ex;
Var x,y:real; Kod:byte; Key:boolean;
Begin
WriteLn('Введите код функции:');
WriteLn('l - sin(x)');
WriteLn('2 - cos(x)');
WriteLn('3 - exp(x)');
ReadLn(Kod);
Write('Введите значение аргумента:');
ReadLn(x);
Key:=true; {признак правильности кода}
case Kod of
1: y:=sin(x);
2: y:=cos(x);
3: y:=exp(x);
else Key:=false; {код не соответствует функции}
end;
if Key then WriteLn ('IIpu x= ',x:12:6,'y= ‘,y:12:6)
else WriteLn ('Введен неверный код функции.');
End.
Лекция 7. Организация программ циклической структуры ( 2 часа)
Дата добавления: 2015-12-01; просмотров: 1276;