Студопедия

Главная страница Случайная страница

Разделы сайта

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






Оператор повтора for.






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

Оператор повтора for может быть представлен в двух форматах:

 

for < параметр цикла>: = < S1> to < S2> do < тело цикла>;

for < параметр цикла>: = < S1> downto < S2> do < тело цикла>;

 

где SI и S2 — выражения, определяющие соответственно начальное и конечное значения параметра цикла;

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

for... do — заголовок цикла;

Тело цикла может быть простым или составным оператором. Оператор for обеспечивает выполнение тела цикла до тех пор, пока не будут перебраны все зна­чения параметра цикла от начального до конечного.

На рис.3 представлен алгоритм циклической структуры с параметром.

 

Рис.3. Алгоритм циклической структуры с параметром

 

При первом обращении к оператору for вначале вычисляются выражения SI, S2 и осуществляется присваивание < параметр цикла>: =S1.

После этого циклически повторяются следующие действия.

1. Проверяется условие < параметр цикла> < = S2.

2. Если условие выполнено, то оператор for продолжает работу (выполняется оператор в теле цикла), если условие < параметр цикла> < = S2 не выполнено, то оператор for завершает работу, и управление в программе передается на оператор, следующий за циклом.

3. Значение управляющей переменной изменяется на +1 (если to) или -1 (если downto) и далее с п. 1. Шаг изменения управляющей переменной — единица.

После завершения оператора значение параметра цикла становится неопределенным, если только выполнение оператора не было прервано оператором перехода goto.

 

 

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

 

Порядковый номер студента по списку группы соответствует номеру варианта. По заданию требуется:

1. Определить порядок реализации вычислений.

2. Составить графическую схему алгоритма.

3. Записать программу на языке Turbo Pascal.

4. Выполнить расчеты на ЭВМ.

5. Написать отчет по лабораторной работе.

 

Пример выполнения работы

 

Задание: Вычислить и вывести на экран значение заданной функции

x [-20; 20], h = 4.

Значение функции вычислять многократно при изменении аргумента в указанном диапазоне и с заданным шагом h. Организовать вывод значения аргумента и вычисленного значения функции в виде таблицы:

Таблица функции Y(X)

X … … Y … …

 

Обозначим xo=-20; xk=20; h=4.

Текст программы:

 

Program lab_31;

Const h = 4;

Var x, y, xo, xk, d: real;

n, i: byte;

Begin

Writeln (‘Введите xo, xk’);

Read (xo, xk);

Writeln (‘Таблица функции y(x) ‘);

Writeln (‘ x y(x) ’);

d: = (xk - xo) /h;

n: = trunc (d) + 1;

x: = xo;

For i: = 1 to n do

begin

if x < -10 then y: = 2*exp(0.01*x)

else if (x > = -10) and (x < = 10) then y: = x

else y: = 7*exp(-0.2*x);

Writeln (x: 6: 3, ’ ‘, y: 6: 3);

x: = x + h;

end;

End.

 

Блок-схема алгоритма решения данной задачи при использовании цикла с параметром, представлена на рис.4.

 

 


Рис.4. Блок-схема алгоритма решения задачи

Пример использования оператора цикла repeat…until.

Program lab_32;

Const h = 4;

Var x, y, xo, xk, d: real;

Begin

Writeln (‘Введите xo, xk’);

Read (xo, xk);

Writeln (‘Таблица функции y(x) ‘);

Writeln (‘ x y(x) ’);

x: = xo;

Repeat

if x < -10 then y: = 2*exp(0.01*x)

else if (x > = -10) and (x < = 10) then y: = x

else y: = 7*exp(-0.2*x);

Writeln (x: 6: 3, ’ ‘, y: 6: 3);

x: = x + h;

Until x > xk;

End.

 

Пример использования оператора цикла While…do.

Program lab_33;

Const a = 0.9; deltax = 0.1;

Var x, y, xo, xk, d: real;

Begin

Writeln (‘Введите xo, xk’);

Read (xo, xk);

Writeln (‘Таблица функции y(x) ‘);

Writeln (‘ x y(x) ’);

x: = xo;

While x< =xk do

begin

if x < -10 then y: = 2*exp(0.01*x)

else if (x > = -10) and (x < = 10) then y: = x

else y: = 7*exp(-0.2*x);

Writeln (x: 6: 3, ’ ‘, y: 6: 3);

x: = x + h;

end;

End.

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

 

 


Рис.5. Блок-схема алгоритма решения задачи с постусловием

 

 

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

 


Рис.6. Блок-схема алгоритма решения задачи с предусловием

 

 

варианты заданий

№ вар. Функция Условие Исходные данные Диапазон и шаг изменения аргумента
         
  1 ≤ t ≤ 2 t < 1 t > 2 a = - 0, 5 b = 2 t [0; 3] Δ t = 0.15
  x < 1.3 x = 1.3 x > 1.3 a = 1.5 x [0.8; 2] Δ x = 0.1
  x < 1.2 x = 1.2 x > 1.2 a = 2.8 b = -0.3 c = 4 x [1; 2] Δ x = 0.05
  x < 1.4 x = 1.4 x > 1.4 a = 1.65 x [0.7; 2] Δ x = 0.1
  x > 3.5 x ≤ 3.5 - x [2; 5] Δ x = 0.25

 

         
  x < 1 x = 1 1< x< 2 x > 2 a = 2.3 x [0.2; 2.8] Δ x = 0.2
  x < a x = a x > a a = 2.5 x [1; 5] Δ x = 0.5
  bx < 1 bx = 1 bx > 1 b = 1.5 x [0.1; 1] Δ x = 0.1
  x > 1 x ≤ 1 a = 20.3 x [0.5; 2] Δ x = 0.2
  x < 0.5 x = 0.5 x > 0.5 t = 2.2 x [0.2; 2] Δ x = 0.2
  x < 2.8 2.8 ≤ x< 6 x ≥ 6 a = 2.6 b = -0.39 x [0; 7] Δ x = 0.5

 

         
  x > 1 x ≤ 1 a = 0.9 x [0.8; 2] Δ x = 0.1
  i < 4 4 ≤ i≤ 6 i > 6 a = 2.1 b = 1.8 c = -20.5 i [0; 12] Δ i = 1
  ≥ 0 < 0 a = 0.3 n = 10 i [1; 10] Δ i = 1
  x ≤ 2 2 < x< 5 x ≥ 5 - x [0; 10] Δ x = 1
  x > 0 x < 0 x = 0 - x [-1; 0.6] Δ x = 0.2
  y ≠ 0 y = 0 y = x - 0.5 x [0; 2] Δ x = 0.5
  x < -1 -1 ≤ x≤ 1 x > 1 - x [-1.5; 1.5] Δ x = 0.5

 

         
  t < 0.1 t = 0.1 t > 0.1 a = 2.5 b = 0.4 t [-1; 1] Δ t = 0.2
  ³ 0 < 0 c = 0.5 n = 10 i [1; 10] Δ i = 1
  |x| > 2p/3 |x| £ p/4 p/4< |x| £ 2p/3   - x Î [-p; p] Dx = p/8
  x £ 0 0 < x £ 1 x > 1   -   x Î [-1; 3] Dx = 0.2
  x < 3 x ³ 3   -   x Î [2; 4] Dx = 0.2
  x £ 0 0 < x £ 1 x > 1   - x Î [-p/4; p/2] Dx = p/12
  x < -2 x ³ -2   - x Î [-4; 0] Dx = 0.4

 

         
  x £ 0 0 < x £ p x > p   - x Î [-p; 2p] Dx = p/4
  x < 5 x ³ 5   - xÎ [4.2; 5.85] Dx = 0.15
  x £ -p x > -p   - x Î [-2p; 0] Dx = 0.2p
  x £ -1 -1 < x £ 1 x > 1   - x Î [-2.1; 3] Dx = 0.3
  x £ p/2 x > p/2   - xÎ [p/4; 3p/4] Dx = 0.05p

 

 

СОДЕРЖАНИЕ И ОФОРМЛЕИНЕ ОТЧЕТА

ПО ЛАБОРАТОРНОЙ РАБОТЕ

 

Отчет оформляется в текстовом редакторе MS Word в формате А4 и должен содержать:

1. Название лабораторной работы.

2. Цель работы.

3. Задание.

4. Графическую схему алгоритма с учетом требований ГОСТ 19.701-90.

5. Программу на алгоритмическом языке Turbo Pascal.

6. Результаты выполнения работы.

7. Проверку в математическом процессоре Mathcad.

 

 

ВОПРОСЫ для самоконтроля

 

1. Что такое цикл?

2. Что такое условие и тело цикла?

3. Типы циклов. Формат их записи.

4. В каком случае тело цикла заключается в операторные скобки begin…end?

5. Каковы начальные и конечные значения параметра цикла у операторов For…to…do и For…downto…do?

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.