Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Операторы ограничения и прерывания цикла





 

 

Данные операторы применяются внутри операторов цикла с параметром или условием. Операторы имеют вид:

Continue; - ограничение цикла,

Break; - прерывание цикла.

 

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

 

For i:= 1 to 3 do begin

Write('Введите ПАРОЛЬ:'); Readln(S); {S и Parol - переменные одного типа}

If S = Parol Then Break { прерывание цикла }

else If i <> 3 Then Continue; { ограничение цикла }

Writeln('Доступ к программе ЗАПРЕЩЕН');

Writeln('Нажмите Enter'); Readln; Halt { прерывание программы }

end; { продолжение программы }

 

 

Оператор перехода к метке

 

 

Оператор перехода служит для передачи управления помеченному оператору и имеет вид:

Goto "метка";

 

 

Меткой может быть целое положительное число или идентификатор. Меткой помечается оператор, которому передается управление, например:

 

M1: Write('Введите x>=0'); Readln(x); If x<0 Then Goto M1;

 

Метки описываются в разделе описания, например: Label M1;

 

Метка не может стоять перед оператором Begin... end;

Следует избегать переходов внутрь операторов цикла.

 

Оператор перехода часто применяется для "досрочного" выхода из операторов цикла. Приведем пример операторов для расчета конечной суммы вклада через 10 месяцев (pr - процентная ставка), при условии досрочного снятия вклада, если начальная сумма "S1" возрасла более чем в два раза:

 

S:= S1; For i:= 1 to 10 do begin

S:= S*(1 + pr/100); If S > 2*S1 Then Goto M1 end;

M1: Writeln(S);

 

Приведем пример программы расчета наибольшего общего делителя двух натуральных чисел по алгоритму Евклида: наибольший обший делитель натуральных чисел "а" и "в" равен наибольшему общему делителю меньшего из чисел ("a" или "b") и остатка от деления большего числа на меньшее.

 

PROGRAM del;

label M1, M2, M3;

var b, a: longint;

Begin

M3: Writeln('Введите два натуральных числа'); readln(a, b);

Writeln; if (a <= 0) or (b <= 0) then goto M3;

{------------------------------------------------ алгоритм -1 ------------------------------------------------}

M1: if a = b then Writeln('наибольший делитель =', a) else

begin if a > b then a:= a-b else b:= b-a;

goto M1 end; Writeln;

{ ---------------------------------------------- алгоритм -2 ------------------------------------------------}

M2: if a > b then a:= a mod b else b:= b mod a;

if (a= 0) or (b= 0) then Writeln('наибольший делитель =',a+b)

else goto M2;

Writeln('Нажмите Enter'); readln;

End.

Блок - схемы алгоритмов

 

 

При обучении программированию используется графическое описание алгоритма решения задачи в виде блок - схемы. Такое представление алгоритма достаточно удобно и наглядно показывает последовательность выполнения операторов прогаммы. Приведем основные обозначения, применяемые в блок - схемах.

               
   
     
   
 
 
 

 


Ввод, Вывод Выполнить Проверить Начало, конец

данных оператор условие программы

 

 

Используя данные обозначения можно составить блок - схемы основных операторов программирования на алгоритмическом языке Паскаль.

 

N Î i1, i2,..., ik N: оператор

Да с меткой N

Оператор выбора: нет

Оператор

 

 

Проверка оператор 1

условия да

Условный оператор: нет

 
 


оператор 2

 

 

 
 


да

i:= N1 i > N2

Оператор цикла с параметром: нет

(значение параметра возрастает)

i:=i+1 оператор

 

 

 

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

       
   
 
 


операторы Проверка да

условия

нет

       
   
 
 


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

Проверка нет

Условия

 
 


да

 
 


оператор

 

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

Приведем пример блок - схемы комбинированного алгоритма для расчнета суммы положительных S1 и отрицательных S2 чисел из N случайных чисел от -100 до 100.

 
 


Begin

 
 


Randomize;

N S1:=0; S2:=0;

i:=1; i > N да S1, S2 End.

нет

i:= i + 1; x:= Random(201) - 100;

Да нет

S2:= S2 + x; x < 0 S1:= S1 + x;

 

 

Соответствующие алгоритму операторы имеют вид:

Begin Randomize;

Writeln('Введите количество случайных чисел'); Readln(N);

S1:=0; S2:=0;

For i:=1 to N do begin x:=Random(201)-100;

if x<0 Then S2:=S2+x else S1:=S1+x end;

Writeln('S1= ', S1, ' S2= ', S2); Readln

End.

 







Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...

ЧТО ТАКОЕ УВЕРЕННОЕ ПОВЕДЕНИЕ В МЕЖЛИЧНОСТНЫХ ОТНОШЕНИЯХ? Исторически существует три основных модели различий, существующих между...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

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





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


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.