Студопедия

КАТЕГОРИИ:


Архитектура-(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)

EXIT FOR




NEXT a

Операторы

NEXT

Операторы

ОПЕРАТОР АРИФМЕТИЧЕСКОГО ЦИКЛА

Принципы построения программ с арифметическими циклами можно проиллюстрировать обобщенной блок-схемой на рисунке 2.4.7.

 

Группа операторов внутри цикла называется телом цикла. Только обрабатывающая часть цикла полезна. Остальные операторы являются обслуживающими, необходимыми для организации цикла. Этот механизм в алгоритмических языках обычно реализует специальный оператор цикла, который мы сейчас рассмотрим. Его применение упрощает программирование и снижает возможность совершения ошибок.

Структура вида:

 

  FOR изменяемая переменная = начальное значение TO конечное значение   STEP шаг

последовательно выполняет операторы, находящиеся между оператором FOR до оператора NEXT столько раз, сколько нужно для того, чтобы изменяемая переменная от начального значения достигла конечного значения с установленным шагом.

Например:

FOR a = 3 TO 7.5 STEP 0.8

Здесь группа операторов от оператора FOR до оператора NEXT будет повторяться столько раз, сколько нужно, чтобы переменная А, изменяясь с шагом 0.8 от значения равного 3, достигла 7.5. Таким образом: A=3; 3.8; 4.6; 5.4; 6.2; 7, т.е. цикл будет выполнен 6 раз.

В качестве параметров оператора цикла разрешены выражения. Например: FOR c=b+2 TO k STEP x–2. Если шаг изменения переменной цикла 1, разрешается его не указывать. Так, операторы

FOR i=4 TO k STEP 1 и FOR i=4 TO k

полностью эквивалентны. Дословно такой оператор интерпретируется следующим образом: “Выполнять операторы цикла от оператора FOR до оператора NEXT столько раз, сколько нужно, чтобы переменная I, изменяясь с шагом 1, достигла значения k.” Цикл завершается в момент, когда переменная цикла становится больше предельного значения цикла (k).

Допускается отрицательный шаг и превышение начального значения цикла над конечным, например

FOR i=20 TO 10 STEP -3

Здесь переменная I последовательно получит значения: 20, 17, 14, 11.

После слова NEXT обычно, но необязательно, указывается имя изменяемой переменной цикла (переменной, следующей непосредственно после слова FOR), что позволяет легко контролировать правильное закрытие циклов. Для простых циклов имя переменной можно не указывать.

Оператор цикла является сильнейшим средством программиста. Он один заменяет несколько операторов в цикле, построенном обычным образом – это операторы задания исходного значения циклической переменной (или счетчика циклов) и операторы ее приращения и анализа. Оператор FOR удобен как для реализации программ с арифметическими циклами, так, во многих случаях, и для программ с итерационными циклами.

На блок-схемах оператор FOR отображается в виде фигуры “прямоу­гольник в ромбе”, которая имеет два выхода. Выход ДА соответствует случаю, когда переменная цикла меньше или равна своему предельному значению – цикл продолжает выполняться. Выход НЕТ – случаю превышения переменной этой границы – цикл завершается. Иногда можно воспользоваться упрощенным обозначением цикла FOR, когда он включается в виде заголовка в прямоугольник, содержащий операторы цикла. К такой форме возможно прибегать, если тело цикла не содержит разветвлений или собственных циклов.

 
 

 

 


Решим задачу 7 с применением оператора FOR. Здесь необходимо просум­мировать в переменную S все числа Х из множества N чисел. Блок-схема приведена на рис. 2.4.8 в обоих возможных вариантах. Как видим, второй гораздо более компактен, однако, как уже говорилось, он возможен не всегда.

 

Программа Проверка для N=3
к задаче 7 1 цикл 2 цикл 3 цикл  
INPUT n a=3: s=0 FOR i=1 TO n s=s+a a=2*a NEXT PRINT s n=3 a=3, s=0 i=1<3 s=0+3=3 a=2*3=6 2<3 3=3 4>3 s=21

Если необходимо выйти из цикла FOR до его естественного завершения (до выполнения всех циклов), можно применить оператор GOTO, но удобнее воспользоваться специальным оператором выхода вида

который передает управление на оператор, следующий непосредственно за оператором NEXT.

Если нужно, не выполняя до конца текущего цикла, начать следующий, следует перейти оператором GOTO непосредственно на оператор NEXT. В задаче 8, например, это оператор IF x<0 THEN s=s+x: GOTO 9

Тест. 2.4.1. Чему будет равно h после завершения программы? 1). 5.8, 2). 6, 3).6.1.

h=0: k=2: m=7

for i=k*2 to m-1 step 0.5

h=h+1

next

  Проверка для N=5
Программа к задаче 8 цикл цикл цикл цикл цикл  
INPUT n kp=0: s=0: p=1 FOR i=1 TO n INPUT x IF x=0 GOTO 7 IF x<0 THEN s=s+x: GOTO 9 kp=kp+1 p=p*x 9 NEXT ?“Нулей нет” 7? s p kp n=4 i=1<5 x=3 x≠0 x>0 kp=1 p=3 2<5 x=-2 x≠0 x<0, s=-2 3<5 x=1 x≠0 x>0 kp=2 p=3 4<5 x=-3 x≠0 x<0, s=-5 5=5 x=2 x≠0 x>0 kp=3
нулей нет
p=6

6>5
 
 


-5,6,3

Задача 8. Для N произвольных чисел Х вычислить и отпечатать: сумму отрицательных чисел S, количество положительных чисел КР, произведение положительных чисел Р. Все вычисления производить до появления первого нуля в последовательности. Если нуль не встретился, кроме S, KP и Р напечатать сообщение НУЛЕЙ НЕТ. Блок-схема алгоритма приведена на рис. 2.4.9. В программе сделана проверка для N=5 и Х=3,–2,1,–3,2. В результате получено S=–5, P=6, KP=3.

Контрольная задача. Имеется N произвольных чисел Х. Составить программу вычисления и напечатать сумму всех положительных чисел S, число отрицательных чисел К и произведение всех чисел, не равных нулю P. Сделать проверочные выкладки для N=5 (аналогичные выполненным выше). В качестве значений Х использовать последовательные цифры натурального ряда с изменяющимися знаками (Х=0, –1, 2, –3, 4, –5).

Задача 9. Для чисел Х и Y найти наибольший общий делитель. Нахождение НОД будем выполнять путем последовательного перебора сверху вниз всех натуральных чисел от максимального из X и Y до 1. Наименьшим делителем считаем первое значение i, которое делит оба числа без остатка.




Поделиться с друзьями:


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


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



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




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