Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Примеры программ с циклами





Пример 1. Вычислить и вывести на печать значения функции y = x+ex sin x, если аргумент х изменяется от -1 до 2 с шагом 0, 1.

Составим схему алгоритма (рис. 1).

Она работает следующим образом: в блоке 2 аргументу х присваивается начальное значение, равное -1, в блоке 3 вычисляется значение функции у при х = -1, в блоке 4 значения у и х выводится на экран. В блоке 5 аргумент получает приращение, т.е. увеличивается на 0, 5, в блоке 6 выполняется проверка на достижения аргументом конечного значения, равного 2. Если аргумент х ещё не превысил конечное значение, то

управление передаётся блоку 3, в котором вычисляется новое значение функции у при новом значении х. Если значение х становится больше, чем 2, то вычисления прекращаются, конец программы.

По этому алгоритму можно составить четыре варианта программы.

Схема алгоритма:

 
 

 


 

Рисунок 1 Схема алгоритма

циклической программы

 

Программа, вариант 1

REM Цикл с оператором IF…THEN

CLS ' очистка экрана

х =-1 ' присвоение х начального значения

m: у =х + EXP(х)*SIN(х) ' вычисление у при хнач

PRINT " у ="; у, " х ="; х ' вывод на экран у и х

х =х + 0.1 ' увеличение х на шаг 0, 1

IF х < = 2 THEN m ' если х ещё меньше или равен хкон, то

END ' управление передаётся по метке m, если

' нет, то следующему оператору – END

В программе варианта 1 для организации цикла использован оператор условного перехода IF…THEN (что указано в комментарии – оператор REM).

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

Вариант 2

REM Цикл с оператором FOR…NEXT

CLS ' очистка экрана

FOR х =-1 TO 2 STEP.2 ' задание параметров цикла: хнач, хкон, шага ∆ х

у =х + EXP(х)*SIN(х) ' вычисление у в цикле

PRINT " у ="; у, " х ="; х ' вывод на экран у и х

NEXT x ' возврат к началу цикла

END

Описание программы:

в операторе цикла FOR…задаётся первое значении х=-1, следующим оператором вычисляется значение функции у, затем оно распечатывается на экране (оператор PRINT) вместе со значением х, потом оператор NEXT x передаёт управление назад, оператору FOR…, где к величине х прибавляется шаг, т.е число 0, 2, новое значение х составляет -0, 8, в следующем операторе вычисляется значение у при х=-0, 8, распечатывается, вновь производится возврат в оператор FOR…, вновь увеличивается аргумент х на 0, 2 и становится равным 0, 6 и т.д. Последний раз цикл выполнится при х=2, а потом, т.к. заданный интервал х[-1; 2] уже просчитан, программа переходит к следующему оператору, т.е.END – конец программы.

Вариант 3

REM Цикл с оператором WHILE…WEND

CLS ' очистка экрана

х = -1 ' задание начального значения: хнач = -1

WHILE x < = 2 ' проверка условия: пока х ещё < = хкон = 2

у =х + EXP(х)*SIN(х) ' вычисление у в цикле

PRINT " у ="; у, " х ="; х ' вывод на экран у и х

х = х + 0.2 ' увеличение х на шаг 0.2

WEND ' возврат к началу цикла - WHILE…

END

Описание программы:

Начальное значение х = -1 задаётся до тела цикла WHILE…WEND,

затем в операторе WHILE проверяется достижение конца цикла х = 2. Поскольку х = -1 ещё меньше, чем 2, то программа переходит к следующему оператору, где вычисляется значение у при первом х = -1. затем оно и значение х распечатываются (на экране), потом значение х увеличивает-

ся на шаг (х = х + 0.1) и оператор WEND передаёт управление оператору WHILE, где снова проверяется, достигло ли новое значение х = -0, 8 значения 2. Т.к. -0, 8 ещё меньше 2, то вычисляется у при этом значении х = -0, 8, распечатывается вместе с х, снова х увеличивается на шаг 0, 2, затем WEND возвращает управление началу цикла, где WEND вновь проверяет х = -0, 6 на достижение хкон = 2 и т.д.

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

Вариант 4

REM Цикл с оператором DO…LOOP

CLS ' очистка экрана

х = -1 ' задание начального значения: хнач = -1

DO

у =х + EXP(х)*SIN(х) ' вычисление у в цикле

PRINT " у ="; у, " х ="; х ' вывод на экран у и х

х = х + 0.2 ' увеличение х на шаг 0.2

LOOP UNTIL x > 2 ' проверка превышения конца цикла х > 2

END

Описание программы:

До тела цикла вводится хнач= -1, потом следует оператор " Делать" – что именно: вычислять у, распечатывать его и аргумент х. Затем идёт проверка: делать петлю до того, как величина х станет больше хкон. В условии проверки должен стоять знак " > ", чтобы цикл был просчитан и при последнем значении х = хкон. Если записать LOOP UNTIL x = 2, то последним значением х, которое будет до х = 2, является х = 1, 8, т.е. при х = хкон= 2 цикл просчитан не будет. Если записать LOOP UNTIL x < 2, то все значения х окажутся меньше хкон и цикл просчитается только один раз, при х = хнач= -1, затем он увеличится на шаг и станет равным -0, 8, но это значение является значением до х = 2, поэтому " петля" на слово DO делаться не будет. Поэтому, для того, чтобы цикл был

просчитан и при конечном значении аргумента х, в условии LOOP UNTIL должен быть только знак " > ".

Структура программы такая же, как и для цикла WHILE…WEND, т.е. до тела цикла вводится начальное значение х = -1, а в теле цикла вычисляется и выводится у, а также задаётся приращение аргумента х = х + 0, 1, но:

· проверка достижения хкон выполняется в конце цикла, поэтому он обязательно будет просчитан хотя бы один раз (при х = хнач),

· в условии проверки достижения конечного значения должен стоять знак " > ", чтобы цикл был просчитан и при последнем значении аргумента.

Вариант 5

REM Цикл с оператором DO UNTIL…LOOP

CLS ' очистка экрана

х = -1 ' задание начального значения: хнач = -1

DO UNTIL x > 2 ' проверка превышения конца цикла х > 2

у =х + EXP(х)*SIN(х) ' вычисление у в цикле

PRINT " у ="; у, " х ="; х ' вывод на экран у и х

х = х + 0.2 ' увеличение х на шаг 0.2

LOOP

END

Работа программы происходит также, как и в варианте 4, но, поскольку проверка конца цикла производится в его начале, то он тоже может быть не выполнен ни разу (как и в цикле WHILE…WEND).

Пример 2 Вычислить с помощью оператора цикла и вывести на печать сумму всех значений у = sin3х, где х изменяется от 1 до 10 с шагом 0.1.

S =







Дата добавления: 2014-11-10; просмотров: 501. Нарушение авторских прав; Мы поможем в написании вашей работы!




Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...


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


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Огоньки» в основной период В основной период смены могут проводиться три вида «огоньков»: «огонек-анализ», тематический «огонек» и «конфликтный» огонек...

Упражнение Джеффа. Это список вопросов или утверждений, отвечая на которые участник может раскрыть свой внутренний мир перед другими участниками и узнать о других участниках больше...

Влияние первой русской революции 1905-1907 гг. на Казахстан. Революция в России (1905-1907 гг.), дала первый толчок политическому пробуждению трудящихся Казахстана, развитию национально-освободительного рабочего движения против гнета. В Казахстане, находившемся далеко от политических центров Российской империи...

Выработка навыка зеркального письма (динамический стереотип) Цель работы: Проследить особенности образования любого навыка (динамического стереотипа) на примере выработки навыка зеркального письма...

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

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

Studopedia.info - Студопедия - 2014-2025 год . (0.009 сек.) русская версия | украинская версия