КАТЕГОРИИ: Архитектура-(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
Задача 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 внутри тела цикла
Дата добавления: 2014-01-05; Просмотров: 290; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |