- •59. Модули
- •58. Процедуры и функции пользователя
- •56. Операторы цикла с предусловием (while)
- •52. Оператор безусловного перехода
- •49. Для обмена информацией между пользователем и пк все данные организуются в файлы.
- •48. Процедуры и функции для работы с типизированными файлами.
- •47. Типизированные файлы
- •46. Файлы
- •43. Объединение разнородных элементов (Запись)
- •42. Типы данных
- •41. Определение множества
- •40. Множество — тип и структура данных в информатике, является реализацией математического объекта множество.
- •35. Одномерные массивы. Формирование и вывод одномерных массивов
- •30. Символьный тип
- •29. Арифметические операции
- •28. Вещественный тип данных
- •25. Раздел описания констант в языке Турбо Паскаль
- •23. Структура программы на языке Pascal
- •22. Понятие языка программирования
56. Операторы цикла с предусловием (while)
Оператор цикла с предусловием (начинающийся с ключевого сло-
ва while) содержит в себе выражение, которое управляет повторным
выполнением оператора (который может быть составным оператором).
┌─────┐ ┌─────────┐ ┌──┐ ┌────────┐
оператор ───>│while├──>│выражение├──>│do├──>│оператор├──>
while └─────┘ └─────────┘ └──┘ └────────┘
Выражение, с помощью которого осуществляется управление пов-
торением оператора, должно иметь булевский тип. Вычисление его
производится до того, как внутренний оператор будет выполнен.
Внутренний оператор выполнятся повторно до тех пор, пока выраже-
ние принимает значение Тruе. Если выражение с самого начала при-
нимает значение False, то оператор, содержащийся внутри оператора
цикла с предусловием, не выполняется.
Примерами операторов цикла с предусловием могут служить сле-
дующие операторы:
while Data[I] <> X do I := I + 1;
While I > 0 do
begin
if Odd(I) then Z := Z * X;
I := I div 2;
X := Sqr(X);
end;
while not Eof(InFile) do
begin
Readln(InFile,Line);
Process(Line);
end;
55. Цикл в Паскале. При решении задач может возникнуть необходимость повторить одни и те же действия несколько или множество раз. В программировании блоки кода, которые требуется повторять не единожды, оборачиваются в специальные конструкции – циклы. У циклов выделяют заголовок и тело. Заголовок определяет, до каких пор или сколько раз тело цикла будет выполняться. Тело содержит выражения, которые выполняются, если в заголовке цикла выражение вернуло логическую истину (True, не ноль). После того как достигнута последняя инструкция тела, поток выполнения снова возвращается к заголовку цикла. Снова проверяется условие выполнения цикла. В зависимости от результата тело цикла либо повторяется, либо поток выполнения переходит к следующему выражению после всего цикла.
В языке программирования Паскаль существует три вида циклических конструкций.
53.
Оператор выбора (вариант, переключатель) реализует выбор одной из возможных альтернатив, т.е. вариантов продолжения программы.
Формат записи:
Case S of K1: OP1; K2: OP2; . . . Kn: OPn; Else OP; End;
где: Case – выбор, вариант; of - из; S – селектор, выражение порядкового типа; Ki – константы выбора, константа, тип которой совпадает с типом селектора; OPi – любой оператор в том числе пустой; Оператор выбора реализует следующую конструкцию:
Работа оператора выбора в Паскале: Вычисляется выражение селектора. Вычисленное значение последовательно сравнивается с константами альтернатив и передается управление оператору константа выбора, которого совпадает с вычисленным значением селектора. Выполняется оператор и передается управление за пределы оператора выбора. Если вычисленное значение селектора не совпадает ни с одной из констант, то управление передается на ветвь Else, наличие которой, не обязательно в этом случае управление передается за пределы оператора выбора.
Рис. 9.6. Структурная схема оператора выбора.
Структуру оператора выбора можно реализовать с помощью вложенных условных операторов, но это ухудшает наглядность программы. Рекомендуется не более 2-3 уровней вложений. Пример 9.6. Составить программу вычисления функции y для заданного значения x.
где: a=2,8; ; 0?x<0,5; Dx=0,01.
Текст программы
program gcase; uses crt; var a,b,x,y :real; n :integer; begin clrscr; a:=2.8; b:=5.1E-2; writeln('Результат':20); writeln('n':3,'x':10,'y':15); x:=0; repeat n:=trunc(10*x+1); write(n:3); case n of 1:y:=1+exp(a*x); 2:y:=a+ln(a+b); 3:y:=b*sqr(x); 4:y:=a-sqrt(abs(a*b/2)); 5:y:=1+a*b*x; end; writeln(' ':10,x:5:3,' ':5,y:9); x:=x+0.05; until x>=0.5; Readln; end.