Псковский государственный политехнический институт


НазваниеПсковский государственный политехнический институт
страница14/30
ТипУчебное пособие
filling-form.ru > Бланки > Учебное пособие
1   ...   10   11   12   13   14   15   16   17   ...   30

§4.8. Оператор цикла с предусловием WHILE


Общий вид оператора:

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

Этот оператор заменяет в блок-схеме цикла только блок «Решение», если он стоит в самом начале цикла. Если используется параметр цикла, то он должен явно изменяться в цикле.

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

В качестве примера составим программу для вычисления суммы при заданной точности ε = 10-3:

Program Sum2;

Const Eps=1e-3;

Var

i:integer;

S,v:real;

Begin

S:=0;

i:=1;

v:=1; {любое число больше Eps}

While v>Eps do

Begin

v:=(i+1)/(i*i*i+8);

S:=S+v;

i:=i+1

end;

WriteLn (‘Сумма=’,S:6:3)

end.

Заметим, что вывод суммы выполняется в виде числа с фиксированной точкой (для большей наглядности) с тремя знаками в дробной части. Если выводить больше значений, то они недействительные, – числовой мусор; если выводить меньше, то тогда зачем считать с такой точностью?

§4.9. Оператор цикла с постусловием REPEAT


Общий вид оператора:

Repeat

<оператор>;

...

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

Этот оператор, как и предыдущий, заменяет блок «Решение», но если он стоит не в начале, а в конце цикла. Поэтому входящие в состав оператора REPEAT внутренние операторы выполнятся хотя бы один раз. Роль операторных скобок здесь играют служебные слова, поэтому использовать составной оператор не требуется.

Существенным отличием от оператора While является то, что внутренние операторы выполняются, пока выражение ложно.

Примеры вычисления кубического корня (уже рассматривался с использованием метки) и бесконечной суммы:

Program S2;

Label L;

Const Eps = 1E-6;

Var a,x,y:real;

Begin

WriteLn ('Введите число для определения кубического корня');

Read (a);

x := a;

Repeat

y := x;

x := 1/3*(a/sqr(y)+2*y);

Until Abs(x-y)
WriteLn ('Значение корня:', x:10:6);

End.

Program Sum3;

Const Eps=1e-3;

Var

i:integer;

S,v:real;

Begin

S:=0;

i:=1;

Repeat

v:=(i+1)/(i*i*i+8);

S:=S+v;

i:=i+1;

Until v
WriteLn ('Сумма=',S:6:3)

end.

§4.10. Оператор выбора CASE


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

CASE <выражение> OF

k1,k2... : <оператор1>;

...

l1,l2... : <операторn>

[ Else

<операторm> ]

End;

Часть Else является расширением Турбо-Паскаля.

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

ki, ..., li – константы выбора. Они должны быть различными и принимать значения выражения. Можно использовать одну или несколько констант, а так же диапазоны.

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

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

У разных термопар характеристики различаются очень сильно. Рассмотрим термопару, позволяющую измерять температуру до 1500 градусов. Допустим, ее график как принятый с 12-разрядного АЦП код от температуры (212 = 4096 отсчетов) выглядит в соответствии с рис. 4.1.



Рис. 4.1. Зависимость кода, принятого с АЦП, от температуры, измеряемой термопарой

Кривая заменяется отрезками прямых с координатами и углами наклона, которые определяются заранее. В зависимости от диапазона кода, принятого с АЦП, используются данные соответствующей прямой.

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

Program Linear;

Var n:word;

t:real;

Begin

WriteLn ('Введите значение кода');

Read(n);

Case n of

0..950: t:=n*0.43;

951..1500: t:=400+n*0.85;

1501..2100: t:=600+n*0.38;

2101..3100: t:=1100+n*0.79;

3101..4095: t:=1250+n*0.53

end;

WriteLn ('Значение температуры =',t:8:2)

end.

Последний оператор With для обслуживания записей рассматривается при описании соответствующей структуры данных.

Контрольные вопросы


  1. Поясните понятие «выражение».

  2. Какая операция обладает высшим приоритетом?

  3. Какие операции обладают вторым после высшего приоритетом?

  4. Какие операции обладают третьим после высшего приоритетом?

  5. Какие операции обладают четвертым после высшего приоритетом?

  6. Какие операции обладают низшим приоритетом?

  7. С какой целью часть выражения заключается в круглые скобки?

  8. Как записываются аргументы у стандартных (и нестандартных) функций?

  9. Каков общий вид оператора присваивания?

  10. Для чего предназначен оператор присваивания?

  11. Какое исключение допускается по совпадению типов имени и выражения в операторе присваивания?

  12. Каков общий вид операторов ввода?

  13. Чем отличается оператор Read от ReadLn?

  14. Каков общий вид операторов вывода?

  15. Чем отличается оператор Write от WriteLn?

  16. Чем отличается список параметров ввода от списка параметров вывода?

  17. Что происходит с выполнением программы, когда встречается оператор Read или ReadLn?

  18. Что содержит список параметров ввода?

  19. Что содержит список параметров вывода?

  20. Как можно отформатировать вывод для любого типа данных

  21. Как можно отформатировать вывод для вещественного типа данных

  22. Каков общий вид составного оператора?

  23. Где используется составной оператор?

  24. Как выглядит пустой оператор?

  25. В каких случаях применяется пустой оператор?

  26. Как выглядит безусловный оператор перехода?

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

  28. В какие области программы запрещены переходы?

  29. Каков общий вид полной формы условного оператора?

  30. Как работает условный оператор в полной форме записи?

  31. Каков общий вид сокращенной формы условного оператора?

  32. Что произойдет, если при использовании сокращенной формы условного оператора логическое выражение примет ложное значение?

  33. В каких случаях используют оператор цикла FOR?

  34. Какова общая форма записи оператора цикла FOR?

  35. Что является параметром цикла в операторе FOR?

  36. Как происходит изменение параметра цикла в операторе FOR?

  37. Что является начальным и конечным значениями параметра цикла в операторе FOR?

  38. Могут ли изменятся параметр цикла, начальное или конечное его значения внутри цикла в операторе FOR?

  39. Каково минимальное количество выполнений оператора внутри цикла FOR?

  40. Какова общая форма записи оператора цикла WHILE?

  41. При каком условии будет выполняться внутренний оператор в операторе цикла WHILE?

  42. Что необходимо предпринять, чтобы внутри цикла WHILE выполнялось несколько операторов?

  43. При наличии параметра цикла, как он должен изменяться в операторе WHILE?

  44. Каково минимальное количество выполнений оператора внутри цикла WHILE?

  45. Какова общая форма записи оператора цикла REPEAT?

  46. Что необходимо предпринять, чтобы внутри цикла REPEAT выполнялось несколько операторов?

  47. При каком условии будет выполняться внутренний оператор в операторе цикла REPEAT?

  48. При наличии параметра цикла, как он должен изменяться в операторе REPEAT?

  49. Каково минимальное количество выполнений оператора внутри цикла REPEAT?

  50. В каком случае используется оператор выбора CASE?

  51. Какова общая форма записи оператора выбора CASE?

  52. Какая часть оператора выбора CASE добавлена в Турбо-Паскале?

  53. Что такое «константы выбора» в операторе CASE?

  54. Каким образом работает оператор выбора CASE?

  55. Каково должно быть соответствие между выражением и константами выбора в операторе CASE?



1   ...   10   11   12   13   14   15   16   17   ...   30

Похожие:

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

Псковский государственный политехнический институт iconПравила приема граждан юргту (нпи), на обучение по программам подготовки...
«Южно-Российский государственный технический университет (Новочеркасский политехнический институт)»

Псковский государственный политехнический институт iconГбоу ао спо «Астраханский государственный политехнический колледж»...
Учебной части гбоу ао спо «Астраханский государственный политехнический колледж» на 2015/16 учебный год

Псковский государственный политехнический институт iconI. Общие положения
Федеральное государственное бюджетное образовательное учреждение высшего образования «Псковский государственный университет»

Псковский государственный политехнический институт iconЗаконное представительство
Составитель: Волков А. В. – старший преподаватель кафедры гражданского права и процесса, Псковский государственный университет

Псковский государственный политехнический институт iconП рограмма производственной практики
Волжский политехнический институт (филиал) волгоградского государственного технического университета”

Псковский государственный политехнический институт iconОбразец заполнения
Прошу зачислить меня слушателем в фгбоу во «Псковский государственный университет» на обучение по дополнительной общеобразовательной...

Псковский государственный политехнический институт iconПоложение о платном обучении в Государственном образовательном учреждении...
Ания «Оренбургский государственный институт менеджмента», (далее: «огим», «институт»), в соответствии с Федеральным законом «О высшем...

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

Псковский государственный политехнический институт iconЗаконодательное регулирование
«Южно – Российский государственный политехнический университет (нпи) имени М. И. Платова»

Вы можете разместить ссылку на наш сайт:


Все бланки и формы на filling-form.ru




При копировании материала укажите ссылку © 2019
контакты
filling-form.ru

Поиск