Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Циклические вычислительные процессы




Цикл – это многократное повторение определённой последовательности действий.

В алгоритмическую структуру «цикл» входят операторы, выполняемые многократно. Такая последовательность команд образует тело цикла.

Циклические алгоритмические структуры бывают двух типов:

1) циклы с параметром, в которых тело цикла выполняется определенное (заранее известное) количество раз;

2) циклы с условием, в которых тело цикла выполняется, пока условие истинно или ложно.

Цикл с параметром

Цикл с параметром используется, когда заранее известно, какое число повторений тела цикла необходимо выполнить (рисунок 6).

 

Рисунок 6 – Цикл с параметром

 

В начале выполнения цикла значение переменной i устанавливается равным in.

При каждом проходе цикла переменная i увеличивается на величину шага.

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

В Паскале цикл с заданным числом повторений реализуется с помощью оператора FOR.

Общий вид оператора FOR

FOR i:= In TO Ik do <тело цикла>;

или

FOR i:= In TO Ik do

begin <тело цикла> end;

где FOR (для),TO (до), do (выполнить) – служебные слова, i – управляющая переменная цикла (параметр цикла), которая должна быть перечисляемого типа (целая, символьная и т.д.)

Чаще всего параметр цикла используют как переменную целочисленного типа, шаг ее равен +1 (или - 1).

Параметр цикла не может быть вещественного типа;

In, Ik – выражения, тип которых соответствует типу управляющей переменной i,

In – начальное значение управляющей переменной цикла,

Ik – конечное значение управляющей переменной цикла,

тело цикла – простой или составной оператор Турбо Паскаля.

Работа оператора FOR

1. Параметру цикла присваивается начальное значение;

2. Начальное значение сравнивается с конечным значением, и, если оно не больше конечного значения, выполняется тело цикла;

3. Параметр цикла изменяет свое значение – увеличивается на шаг (единицу, если параметр цикла имеет целый тип);

4. Циклическая часть выполняется повторно для каждого значения параметра цикла от его начального значения In до конечного значения Ik включительно;

5. Когда параметр цикла превысит конечное значение, оператор FOR прекращает работу и передает управление следующему оператору.

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

Если шаг изменения параметра цикла равен +1, а In>Ik, то циклическая часть не выполнится ни разу.

Пример 3. Пусть имеется фрагмент программы с переменными целого типа:

FOR I:= 1 to 5 do

begin

A:=2*I;

B:= 2*I+1;

writeln (A:3, B:3);

end;

Циклическая часть программы выполняется повторно пять раз, при этом параметр цикла I изменяет свое значение от 1 до 5. В результате выполнения программы переменные получают следующие значения:

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

FOR i:=In downto Ik do

<тело цикла>;

или

FOR i:=In downto Ik do

begin

<тело цикла>;

end;

Пример 4. Пусть имеется фрагмент программы с переменными целого типа:

FOR I:=5 downto 1 do

begin

A:=2*I;

B:=2*I+1;

witeln (A:3, B:3);

end;

В процессе выполнения данного фрагмента программы переменные принимают следующие значения:

Пример 5. Напечатать все буквы латинского алфавита в обратном порядке. Алгоритм решения в виде блок-схемы представлен на рисунке 7.

 

Рисунок 7 – Алгоритм решения задачи

 

Программа на языке Паскаль выглядит следующим образом:

Program Р;

Var i: CHAR;

Begin

FOR i:=’Z’ downto ‘A’ do

Write (‘ ’,I);

End;

 

ВАРИАНТЫ ЗАДАЧ

1 Дано натуральное число N. Вычислить:

2 Дано натуральное число N. Вычислить:

3 Дано натуральное число N. Вычислить произведение первых N сомножителей

4 Дано натуральное число N. Вычислить:

5 Дано натуральное число n. Вычислить:

6 Дано натуральное число n. Вычислить: где n>2.

7 Дано натуральное число n. Вычислить: (n>1).

8 Дано натуральное число n. Вычислить:

9 Вычислить:

10 Дано натуральное число n. Вычислить:

Циклы с условием

В Паскале циклы с неизвестным заранее числом повторений (итерационные циклы) организованы с помощью операторов While и repeat.

Эти операторы, в отличие от оператора FOR, имеют более широкую область применения.

Циклы с предусловием

Цикл с предусловием реализуется в Паскале посредством оператора While. Заголовок оператора While (в переводе «пока») не содержит явных указаний на количество итераций – он содержит логическое выражение, значение которого автоматически вычисляется перед началом выполнения каждой очередной итерации (рисунок 8). Пока логическое выражение «истинно», итерации цикла будут продолжаться; как только после завершения очередной итерации логическое выражение станет «ложным», следующая итерация цикла выполнена не будет, и управление получит оператор программы, следующий после оператора While.

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

 

Рисунок 8 – Цикл с предусловием

 

Паскаль работает с оператором WHILE следующей структуры:

while (x) do

<тело цикла>;

или

while (x) do

begin

<тело цикла>;

end;

где while (пока), do (выполнить) – служебные слова, х – логическое выражение, задающее условие продолжения работы;

<тело цикла> – операторы Турбо Паскаля;

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

Переменные оператора цикла должны быть определены до входа в циклическую часть. Необходимо предусмотреть выход из цикла. Если этого не предусмотреть, например, логическое выражение х – всегда истина, циклические вычисления будут выполнятся бесконечно. В этом случае говорят, что произошло «зацикливание» выполнения программы.

Работа оператора WHILE

1 Проверяется значение логического выражения х.

2 Пока значение х равно истина, выполняется циклическая часть.

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

Пример 6. Найти, сколько слагаемых необходимо, чтобы сумма 2+4+6+… оказалась больше целого положительного числа N.

Решение.

Введем следующие обозначения:

S – текущее значение суммы;

Sl – значение очередного слагаемого;

K – количество слагаемых в сумме.

Алгоритм решения в виде блок-схемы представлен на рисунке 9. Программа рассмотрена ниже.

Program Pr5;

Var N,K, S,Sl: integer;

Begin

Write (‘Укажите положительное число’);

Readln(N);

S:=0;

Sl:=0;

K:=0;

While S<=N do

Begin

Sl:=Sl+2;

S:=S+Sl;

K:=K+1;

End;

Writeln (‘K=’, K);

End.

 

Рисунок 9 – Алгоритм решения задачи примера 6

Пример 7. Даны числа x, e. Вычислить sin x = x с точностью до e.

Для обеспечения требуемой точности e. необходимо в вычисляемую сумму знакочередующегося ряда включить только те слагаемые Un, которые удовлетворяют условию .

Для вычисления очередного члена ряда Un полезно воспользоваться рекуррентной формулой U 1= x;

 

 

Алгоритм решения в виде блок-схемы представлен на рисунке 10.

 

Программа на языке Паскаль:

Program P;

Var x, e, S, U: real;

N: integer;

Begin

Write (‘введите значение х ’);

Readln(х);

Write (‘введите точность’);

Readln(e);

S:=0;

U:= x;

N:=1;

While abs(U)>= e do

Begin

S:=S+ U;

U:= - U *SQR(х)/((2*N+1)*2*N);

N:=N+1;

End;

Writeln (‘sin(x)=’, S:8:4);

End.

 

Рисунок 10 – Алгоритм решения задачи примера 7

 

 

Циклы с постусловием

 

Условие выхода из цикла можно поставить после тела цикла. Такой цикл называется циклом с постусловием (рисунок 11).

Цикл выполняется, пока логическое выражение имеет значение ложь. Как только логическое выражение принимает значение истина, выполнение цикла заканчивается.

Цикл с постусловием выполняется как минимум один раз.

 

Рисунок 11 – Циклы с постусловием

 

Цикл с постусловием в Паскале реализован с помощью операторов Repeat… until, который имеет вид:

repeat

<тело цикла>

until<x>;

где

repeat (повторять) и until(до тех пор) – служебные слова,

<тело цикла> – любые операторы Турбо Паскаля,

х – логическое выражение, задающее условие окончания цикла.

Работа оператора repeatuntil

1 Выполняется тело цикла

2 Проверяется логическое выражение.

Если его значение равно истина, то оператор repeat свою работу прекращает и передает управление следующему за ним оператору.

В противном случае, если логическое выражение ложно, выполняется тело цикла.

Пример 7 с использованием оператора repeat выглядит следующим образом (рисунок 12):

Программа на языке Паскаль:

Program P1;

Var x, е, S, U: real;

N: integer;

Begin

Write (‘введите значение х ’);

Readln(х);

Write (‘введите точность’);

Readln(е);

S:=0;

U:= x;

N:=1;

Repeat

S:=S+ U;

U:= - U *SQR(х)/((2*N+1)*2*N);

N:=N+1;

until abs(U)<= е;

Writeln (‘sin(x)=’, S:8:4);

End.

 

 

Рисунок 12 – Алгоритм решения задачи примера 7

с применением оператора REPEAT

Отличительные особенности операторов цикла с неизвестным числом повторений repeat и while

1 Оператор while работает, когда значение логического выражения – истина, repeat – когда ложь.

2 В операторе repeat тело цикла выполняется хотя бы один раз, даже если значение логического выражения истина; в операторе while, если значение логического выражения ложь, то тело цикла не выполнится ни разу.

Таким образом, для организации циклического вычислительного процесса в языке Турбо Паскаль имеется три оператора:

· for – для организации циклов с заданным числом повторений;

· while, repeat – для организации циклических структур с неизвестным числом повторений.

ВАРИАНТЫ ЗАДАЧИ 1

 

Решить с помощью цикла с предусловием.

Составить программу вычисления значений функции F(x) на отрезке [a; b] с шагом h. Результат представить в виде таблицы, первый столбец которой – значение аргумента, второй – соответствующее значение функции. Исходные данные представлены в таблице 5.

 

Таблица 5 – Исходные данные

Функция a b h
  0.5   0.5
  -3 0.5 0.25
       
  0.1 1.8 0.2
  -5    
  -3 0.3 0.3
       
  -2   0.2
  0.5   0.5
  -4   0.4

 


ВАРИАНТЫ ЗАДАЧИ 2

 

Решить с помощью цикла с постусловием.

Найти наименьший номер последовательности, для которого выполняется условие . Вывести на экран этот номер и все элементы , где i=1,2,…, n, если ɛ=10-3.


1 , a 1=0.

2 , a 1=2.

3 , a 1=0,5.

4 .

5 , a 1=0,5.

6 , a 1=2.

7 , a 1=1, а2 =2.

8 .

9 , a 1=0.

10 , a 1=x.


 

Содержание

Введение…………………………………………………………………………...  
1 Линейные вычислительные процессы………………………………………..  
Варианты задач. Уровень 1………………………………………………………  
Варианты задач. Уровень 2………………………………………………………  
2 Разветвляющиеся вычислительные процессы………………………………..  
2.1 Составной оператор (блок)….………………………………………………..  
2.2 Оператор условного перехода………………………………………………..  
2.3 Оператор безусловного перехода……………………………………………  
2.4 Оператор выбора…..………………………………………………………….  
Варианты задач……………………………………………………………………  
3 Циклические вычислительные процессы………………………………….....  
3.1 Цикл с параметром……………………………………………………………  
Варианты задач……………………………………………………………………  
3.2 Циклы с условием…………………………………………………………….  
3.2.1 Циклы с предусловием ……………………………………………………  
3.2.2 Циклы с постусловием……………………………………………………  
Варианты задачи 1………………………………………………………………..  
Варианты задачи 2………………………………………………………………..  

 

Котликова Вера Яковлевна

 

ВВЕДЕНИЕ В ТУРБО ПАСКАЛЬ

 

Методические указания

к выполнению лабораторных работ

по дисциплинам «Информатика», «Информационные технологии»

для студентов очной и заочной формы обучения

направлений 23.03.03, 23.03.01, 13.03.02, 23.05.01, 23.05.02,

15.03.04, 15.03.05, 27.03.04, 20.03.01, 27.03.01, 15.03.01

 

 

Редактор Н.М. Быкова

 

 
 


Подписано в печать Формат 60*84 1/16 Бумага 65 г/м2

Печать цифровая Усл. печ. л. Уч.–изд. л.

Заказ Тираж 25 Не для продажи

 

 
 

 


РИЦ Курганского государственного университета.

640000, г. Курган, ул. Советская, 63/4.

Курганский государственный университет.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...