Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Рассмотрим следующие задачи

Begin

Else

Begin

Пример

Repeat

Действие оператора.

1) Выполняется группа операторов – Оператор1, Оператор2,..., ОператорN.

2) Вычисляется значение Условия, которое является условием завершения цикла.

3) Если Условие=false, то выполняется следующая итерация цикла, иначе (Условие=true) цикл завершается.

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

 

При написании циклов с постусловием, как и с предусловие, следует помнить:

1. Содержимое тела цикла должно обязательно влиять на условие цикла для избегания зацикливания (в середине тела цикла должно быть изменение параметра цикла);

2. О предварительной корректности условия, как в случае цикла с while беспокоиться не обязательно (к началу цикла необязательны начальные установки переменных, которые управляют условием цикла).

 

 

program Celsius_Repeat_Until;

var C_f, C_L, T, K, shag: real;

i:integer;

begin

writeln('Enter first temperature');

readln(C_f);

writeln('Enter last temperature');

readln(C_L);

writeln('Enter shag');

readln(shag);

For i:=1 to 20 do write('*');

writeln;

writeln('* Celcius *','Kelvin':7,'*':2);

For i:=1 to 20 do write('*');

writeln;

T:=C_f;

K:=T+273.15;

writeln('*',T:6:1,'*':4,K:7:2,'*':2);

T:=Shag+T;

Until T>C_L;

For i:=1 to 20 do write('*');

writeln;

readln

end.

 

 

while true do;

repeat until false;

 

 

Прервать цикл можно специальными операторами (например, процедурами Break или Continue) или дополнительными условиями.


Пример: Напечатать таблицу значений функции y=sin(x), до первого отрицательного значения функции.

program Ex_11;

var x,xn,xk,dx,y:real;

flag:boolean;

begin

writeln('Enter xn, xk, dx');

readln(xn, xk, dx);

x:=xn;

flag:=true;

while (x<=xk+dx/2) and flag do

y:=sin(x);

if y>0

then writeln(x:4:1,y:6:2)

flag:=false;

writeln(x:4:1,'y<0':5);

end;

x:=x+dx

end;

readln

end.

 


СРАВНЕНИЕ РАБОТЫ ОПЕРАТОРОВ WHILE, REPEAT И FOR

Вопрос Цикл с предусловием while Цикл с постусловием repeat... until Цикл со счетчиком for
  Необходима ли инициализация параметра цикла до его выполнения? До начала цикла должны быть сделаны начальные установки переменных, управляющих условием цикла, для корректного входа в цикл До начала цикла необязательны начальные установки переменных, управляющих условием цикла Начальная установка счетчика цикла до заголовка не требуется
  Необходимо ли модифицировать параметр цикла в теле цикла? В теле цикла должны присутствовать операторы, которые изменяют переменные условия таким образом, чтобы цикл через несколько итераций закончился Изменение в теле цикла счетчика не допускается

 


 

Вопрос Цикл с предусловием while Цикл с постусловием repeat... until Цикл со счетчиком for
  Что является условием продолжения цикла? Цикл работает, пока условие истинно (пока True) Цикл работает, пока условие ложно (пока False) Количество итераций цикла неизменяемо и точно определено значениями нижней и верхней границ и шага цикла
  Что является условием завершения цикла? Цикл завершается, когда условие становится ложным (до False) Цикл завершается, когда условие становится истинным (до True)

 

Вопрос Цикл с предусловием while Цикл с постусловием repeat... until Цикл со счетчиком for
  Какое минимальное количество повторений цикла? Цикл может не выполниться ни разу, если начальное значение условия на входе в цикл равно False Цикл обязательно выполняется один раз Цикл может не выполниться ни разу, если шаг цикла будет изменять значение счетчика от нижней границы в направлении противоположном верхней границе
  Нужно ли использовать составной оператор в теле цикла? Если в теле цикла больше чем один оператор, надо использовать операторные скобки Независимо от количества операторов в теле цикла использование операторных скобок не требуется Если в теле цикла больше чем один оператор, надо использовать операторные скобки

 

Вопрос Цикл с предусловием while Цикл с постусловием repeat... until Цикл со счетчиком for
  Каким значением может быть шаг изменения параметра цикла? Шаг счетчика может быть только +1 (если используется ключевое слово to) или –1 (если используется ключевое слово downto) Шаг изменения параметра цикла может быть любым, в зависимости от типа параметра цикла
           

Задача 1. Определить значение переменной P после выполнения следующих операторов:

P:=1; j:=1; while j<6 do j:=j+1; P:=P*j;

 

Задача 2. Определить значение переменной P после выполнения следующих операторов:

P:=1; j:=2; while j>2 do begin P:=P+j; j:=j-1 end;

 

Задача 3. Определить значение переменной P после выполнения следующих операторов:

P:=1; j:=6; while j>6 do j:=j-1; P:=P*j;

 

Задача 4. Определить значение переменной P после выполнения следующих операторов:

P:=1; j:=2; repeat P:=P*j; j:=j-1 until j<=1;

 

Задача 5. Определить значение переменной P после выполнения следующих операторов:

P:=0; K:= –2; For i:=2 to K do P:=P+i;

Задача 6. Определить значение переменной P после выполнения следующих операторов:

P:=1; n:=2; For i:=2 downto n do P:=P*i;


 

Задача 7. Укажите номер строки в которой есть ошибка. Объясните свой ответ.

{01} var k, i:integer; y:real;

{02} begin

{03} k:= 0; y:=1;

{04} for i:= –1 to cos (k) do y:=2*y; //cos(0)=1

{05} writeln(y);

{06} end.


 

Верный ответ: Ошибка в строке 04. По определению цикла For, в качестве конечного значения параметра цикла не может быть использовано выражение cos (k), так как тип его результата Extended не является порядковым

 


Задача 8. Укажите номер строки в которой есть ошибка. Объясните свой ответ.

{01} var j, i:integer;

{02} begin

{03} j:=0;

{04} for i:=j-1 to j+4 do i:= i+1;

{05} writeln(j);

{06} end.


 

Верный ответ: Ошибка в строке 04. Запрещается изменять параметр цикла For внутри тела цикла

<== предыдущая лекция | следующая лекция ==>
Результат работы программы | Оператор циклу з передумовою While, з постумовою REPEAT
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 271; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.022 сек.