Студопедия

КАТЕГОРИИ:


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

Программа к задаче 5.2




NEXT a

Операторы

NEXT имя_переменной_цикла

Операторы в цикле

ОПЕРАТОРЫ циклов

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

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

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

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

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

Например:

FOR a = 3 TO 7.5 STEP 0.8

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

В качестве параметров оператора цикла разрешены выражения. Например: 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.

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

Программа к Проверка для N=3
задаче 4.5 (с FOR) 1 цикл 2 цикл 3 цикл  
INPUT n a=3: s=0 FOR i=1 TO n s=s+a a=2*a NEXT i ? 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

Решим задачу 4.5 с применением оператора FOR. Здесь необходимо просум­мировать в переменную S все числа X из множества N чисел.

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

üEXIT FOR

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

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

Программа Проверка для N=5
к задаче 5.1 1 цикл 2 цикл 3 цикл 4 цикл 5 цикл  
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 i ?"Нулей нет" 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

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

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

INPUT "Введите числа X и Y", x, y

IF x<y THEN k=x ELSE k=y 'определение минимального (переменная К) значения из X и Y

FOR i = k TO 1 STEP –1 'перебор чисел от К до 1

IF (x MOD i=0) AND (y MOD i=0) THEN?"НОД="; i: EXIT FOR 'если X и Y делятся нацело на i, НОД=i найден




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


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


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



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




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