Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Оператор цикла с предусловием




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

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

 

While <уcловие> Do <оператор>;

 

здесь

While, Do - кодовые слова (пока [выполняется], делать);

<уcловие> - выражение логического типа;

<оператор>- произвольный оператор паскаля.

 

Если логическое выражение, задающее <уcловие>, имеет значение TRUE, то выполняется <оператор>, после чего повторяется проверка условия. если <уcловие> имеет значение FALSE, оператор While прекращает свою работу. поскольку условие завершения циклического процесса проверяется до выполнения <оператора>, то оператор цикла данного вида называется оператором цикла с предусловием.

 

2. Оператор цикла с постусловием

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

Оператор цикла с постусловием имеет вид

Repeat <тело цикла> until <условие>;

здесь

Repeat, until - кодовые слова (Repeat - повторять

until - до тех пор, пока);

<тело цикла> - произвольная последовательность операторов Pascal;

<условие> - выражение типа Boolean.

при выполнении этого оператора операторы тела цикла (т.е. последовательность операторов, заключенная между Repeat и until) выполняются хотя бы один раз. После выполнения операторов тела цикла проверяется <условие>. Если его значение FALSE, то операторы тела цикла повторяются, в противном случае оператор Repeat... until завершает свою работу. Таким образом, логическое выражение, записанное после кодового слова until задает условие выхода из цикла.

 

3. Оператор цикла с параметром.

 

Если количество повторений операторов тела цикла известно к началу его выполнения, то для организации такого вычислительного процесса можно использовать оператор цикла с параметром. Pascal допускает два вида этого оператора:

 

1) For V: = E1 to E2 do S;

 

где for (для), to (увеличиваясь к), do (делать) - кодовые слова,

V- переменная порядкового типа (любой скалярный кроме real)

V называют параметром цикла;

е1, е2- выражения того же типа, что и V;

S - произвольный оператор, называемый телом цикла.

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

 

2) в некоторых случаях бывает удобно, чтобы параметр цикла принимал не возрастающие, а убывающие значения. для таких случаев в паскале предусмотрен оператор следующего вида:

 

For V: = E1 downto E2 do S;

 

где downto (уменьшаясь к) - кодовое слово;

V- переменная порядкового типа (любой скалярный кроме real)

V называют параметром цикла;

е1, е2- выражения того же типа, что и V;

S - произвольный оператор, называемый телом цикла.

 

Пример 1.

 

{Дан массив целых чисел а1,..., а20. получить сумму тех чисел данной последовательности, которые кратны 5.}

Const n=20;

Type vector = array [1... n] of integer;

Var a: vector; {последовательность целых чисeл}

sum: integer; {cумма чисел, кратных 5}

i: byte;

 

Begin //ввод массива целых чисел из строки;

for i: = 1 to n do

a[i]:=strtoint(sg1.cells[i-1,0]);

//находим сумму элементов, кратных 5

sum:= 0;

for i:=1 to n do

if a[i] mod 5 = 0 then sum: = sum+a[i];

//вывод результата

Edit1.text:=inttostr(sum);

End;

 

 

Пример 2.

 

{даны целые числа а1,..., а20. получить номер первого члена данной последовательности, кратного 5}

Const n=20;

Type vector = array [1... n] of integer;

Var a: vector; {последовательность целых чисeл}

Num:byte; {номер первого члена последовательности, кратного 5}

i: byte;

Begin //ввод массива целых чисел из строки

i: = 0

repeat

i: = i+1;

a [i]:=strtoint(sg1.cells[i-1,0]);

until i=n;

//нахождение номера

Num: = 0;

i:= 0

repeat

i: = i+1;

if a[i] mod 5 = 0 then Num:= i;

until (Num<>0) or (i=n);

//вывод результата

if Num>0 then

showmessage(‘первый элемент, кратный 5 a[‘+inttostr(Num)+‘]= ‘+inttostr(a[Num]));

else showmessage(‘ таких элементов нет’)

End;

 

Пример 3.

{Дана целочисленная матрица А(5х5). Найти сумму положительных элементов каждой строки матрицы.}

Const n=5;

Type vector = array [1... n] of integer;

Matrix= array [1... n,1..n] of integer;

Var a:matrix;

sum:vector; {последовательность целых чисeл}

sum: integer; {cумма чисел, кратных 5}

i,j: byte;

 

Begin //ввод матрицы

for i: = 1 to n do

for j: = 1 to n do

a[i,j]:=strtoint(sg1.cells[j-1,i-1]);

//находим сумму положительных элементов в каждой строке

 

for i:=1 to n do

begin

sum[i]:= 0;

for j:=1 to n do

if a[i,j] > 0 then sum[i]: = sum[i]+a[i,j];

//вывод результата в столбец

for i: = 1 to n do

sg1.cells[0,i-1]:=inttostr(sum[i]);

End;






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных