Салаватский филиал угнту



Скачать 404.02 Kb.
страница3/9
Дата10.07.2019
Размер404.02 Kb.
Название файлаРуководство по выполнению лабораторных работ по курсу.RTF
ТипРуководство
1   2   3   4   5   6   7   8   9
Программирование арифмерических циклов.
Часто при программировании математических задач приходится сталкиваться с ситуацией, когда в процессе расчета необходимо повторять ряд действий.

Так в частности, в задании к данной лабораторной работе предлагается рассчитать и напечатать таблицу значений функции.

При заданном виде функции и выбранного диапазона значений , решение этой задачи предполагает использование операторов цикла языка Бэйсик.

Проще всего для программной реализации поставленной задачи применить оператор цикла For-Next ,в заголовке которого последовательно указываются начальное и конечное значения выбранного диапазона, а также значение шага по параметру расчета.

Формат оператора For - Next:

For <параметр цикла>=<начальное значение> To <конечное значение> Step <щаг по параметру>

ТЕЛО ЦИКЛА

Next <параметр цикла>

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

Кроме оператора For -Next для программной реализации можно применить и другие операторы цикла языка Бэйсик. Для нижеприведенных операторов цикла в рамках решаемой задачи приходится предусматривать самостоятельное изменение переменной расчета на величину заданного шага и контроль диапазона.

Формат оператора While - Wend:

While <условие>

ТЕЛО ЦИКЛА

Wend.


Оператор While - Wend повторяет выполнение тела цикла до тех пор, пока выполняется <условие>. При нарушении условия действие оператора завершается и программа продолжает свою работу с оператора, записанным за Wend.

Абсолютно идентичен выше приведенному и оператор Do Loop с предусловием типа While.

Формат оператора:

Do While <условие>

ТЕЛО ЦИКЛА

Loop


По своему действию очень близок к этому оператору и оператор Do-Loop с предусловие Until. Разница заключается в том , что после ключевого слова Until записывается не условие продолжения цикла ( как в случае While), а условие его окончания.

Другая форма оператора Do - Loop - оператор с постусловием.Формат этого оператора:

Do

ТЕЛО ЦИКЛА



Loop While <условие>.

Вместо ключевого слова While можно использовать Until. В этом случае <условие > определяет условие выхода из цикла Do -Loop.

Различие двух этих модификаций (с пред- и пост-условиями) оператора Do - Loop заключается в следующем. Так если условие повторения цикла не выполняется в самом начале, то оператор Do - Loop с предусловие не выполнит тело цикла ни разу. Оператор с постусловием выполнит тело цикла один раз, так как условие повторения выполнения цикла проверяется в этом случае после выполнения последнего оператора тела.
Задание: рассчитать и напечатать таблицу значений функции
y = |x+2| + lnx ,для х [0.1,2.2],x=0.2

Алгоритм решения задачи предусматривает лишь размешение в теле цикла операторов вычисления функции и печати полученных результатов.

Для программной реализации можно использовать любой из вышерассмотренных операторов цикла. Приведем для примера использование операторов For-Next,While -Wend и Do - Loop с постусловием.

Вариант 1

for x=0.1 to 2.2 step .2

y=abs(x+2)+log(x)

print using “ ##.## ###.####”;x,y

next x


Вариант 2

x=0.1


while x<=2.2

y=abs(x+2)+log(x)

print using “ ##.## ###.####”;x,y

x=x+0.2


wend

Вариант 3

x=0.1

do

y=abs(x+2)+log(x)



print using “ ##.## ###.####”;x,y

x=x+0.2


loop while x<=2.2

Вариант 4

x=0.1

do

y=abs(x+2)+log(x)



print using “ ##.## ###.####”;x,y

x=x+0.2


loop until x>2.2

Иногда в печатаемой таблице отсутствует результат ,соответствующий последнему значению из диапазона. Это может возникать из-за погрешностей представления десятичных чисел в машинной двоичной форме. В этом случае следует брать крайнее значение расчетного диапазона слегка больше предлагаемого.

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

Продемонстрируем вложенные циклы на примере вычисления элементов квадратной матрицы.

Необходимо вычислить и напечатать элементы квадратной матрицы размером N*N,заданных по формуле

ai,j=i3-3j , i=1,...,N j=1,...,N

Первый индекс матрицы (i) обозначает номер строки, второй -номер столбца.

Для вычисления элементов иатрицы необходимо организовать цикл по всем строкам ( i от 1 до N). Для каждой текущей строки нужно пройти по всем столбцам ( j от 1 до N). Для каждого текущего i и j рассчитать и напечатать элемент матрицы.

Input “N=“;N

For i=1 To N:For j=1 To N

a(i,j)=i^3-j^(1/3)

Print “a”;i;j”=“;a(i,j)

Next j:Next i

Отметим , что внутренний цикл (по J) закрывается ранее внешнего (по i).






Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9


База данных защищена авторским правом ©nedocs.ru 2017
обратиться к администрации

    Главная страница