русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Оператор цикла For


Дата добавления: 2014-02-04; просмотров: 6446; Нарушение авторских прав


Циклы позволяют многократно выполнять отдельный оператор или последовательность операторов, причем при этом нет необходимости записывать в тексте программы одинаковые операторы несколько раз.

Оператор цикла For организует выполнение одного оператора (или несколько операторов) заранее известное число раз. Оператор For может быть представлен в двух форматах:

1. For <параметр цикла>:=<S1> To <S2> Do

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

2. For <параметр цикла>:=<S1> DownTo <S2> Do

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

<параметр цикла> - переменная цикла, которая может быть целочисленного или символьного типа. Параметр цикла изменяется, увеличиваясь до конечного значения (1 формат). Параметр цикла может изменяться в противоположном направлении - убывать (2 формат);

S1 – начальное значение параметра цикла, которое она получает при первом выполнении цикла;

S2 - конечное значение параметра цикла, достигнув которое повторение цикла прекращается;

For…Do – заголовок цикла;

< тело цикла > - оно может быть простым, состоящим из одного оператора или составным оператором.

Например:

For I:=1 To 20 Do Write(‘*’);

20 раз выведется на экран в одной строке «*»

Особенности выполнения оператора For

1. Начальное и конечное значения параметра цикла должны принадлежать к одному и тому же типу данных.

2. В операторе For не допускается изменения параметра цикла на величину, отличную от единицы.

Например:

For I:=10 To 14 Do Write(I:3); {Результат выполнения - V10V11V12V13V14}

For I:=14 DownTo 10 Do Write(I:3); {Результат выполнения - V14V13V12V11V10}

3. В операторе For после Do может находиться составной оператор, в теле которого запрещены операторы, меняющие значение параметра цикла.

Например:

For I:= 1 To 10 Do Begin

Rez:=A/Pi;

I:=I+1; {ошибка, попытка изменить параметр цикла}



End;

4. После нормального завершения оператора For значение параметра цикла равно конечному значению. Если оператор For не выполнялся, значение параметра цикла не определено.

5. Чтобы прервать выполнение оператора For досрочно, необходимо использовать процедуру Break, которая прерывает выполнение циклов. Процедура Continue начинает новую итерацию цикла, даже если предыдущая не была завершена.

Примеры решения задач

1. Найти произведение положительных, сумму и количество отрицательных из 10 введенных целых значений.

USES Crt;

VAR

X: INTEGER; S, K, P: INTEGER; I: BYTE;

Begin

Clrscr; {чистка экрана}

P:=1; S:=0; K:=0;

FOR I:=1 TO 10 DO Begin

WriteLn(‘Введите ‘,I,’ -е значение’); ReadLn(x);

IF X>0 Then P:=P*X; { произведение положительных }

IF X<0 Then Begin

S:=S+X; { сумма отрицательных }

K:=K+1; { количество отрицательных }

End;

End;

WriteLn(‘ Произведение положительных значений = ‘,p);

WriteLn(‘ Сумма отрицательных значений = ‘,s);

WriteLn(‘ Количество отрицательных значений = ‘,k);

END.

2. Из N целых чисел найти минимальное значение.

USES Crt;

VAR MI, X: INTEGER; I,N: BYTE;

BEGIN

WriteLn('Введите количество значений'); ReadLn(n);

WriteLn('Введите первое значение'); ReadLn(mi);

FOR I:=2 TO N DO Begin

WriteLn(‘Введите ‘,I,’ -е значение’); ReadLn(x);

IF X<MI Then MI:=X;

End;

WriteLn(‘Минимальное значение = ‘,MI);

END.

3. Из N целых чисел найти минимальное среди положительных и максимальное среди отрицательных значений.

USES Crt;

VAR

MI, MA, N, I, X: INTEGER; FL, FL1: BYTE;

BEGIN

Clrscr;

WriteLn('Введите количество значений'); ReadLn(N);

FL:=0; FL1:=0;

FOR I:=1 TO N DO Begin

WriteLn('Введите ',I,' значение'); ReadLn(X);

IF (FL=0) AND (X<0) Then Begin

MA:=X; FL:=1;

End;

IF (FL1=0) AND (X>0) Then Begin

MI:=X; FL1:=1;

End;

IF (X<0) AND (X>MA) Then MA:=X;

IF (X>0) AND (X<MI) Then MI:=X;

End;

IF FL=1 Then WriteLn('максимальное среди отрицательных = ',ma)

Else WriteLn('отрицательных нет');

IF FL1=1 Then WriteLn('минимальное среди положительных = ',mi)

Else WriteLn('положительных нет');

END.

Примеры для самостоятельного решения:

1. Найти среднее арифметическое минимального и максимального элементов из 10 введенных.

2. Найти сумму 2/3+3/4+…+n/(n+1).

3. Из n введенных чисел найти максимальное значение среди положительных элементов.

4. Вычислить сумму первых n слагаемых 12+22-32+42+52-62+…(каждое третье слагаемое берется со знаком «минус»).

Оператор цикла Repeat…Until

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

Формат:

Repeat

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

Until <условие>;

Условие – выражение булевского типа. При написании условия допустимы булевские операции (And, Or, Not) и операции отношения. Операторы, заключенные между словом Repeat и Until, являются телом цикла. Вначале выполняется тело цикла, затем проверяется условие выхода из цикла. Если результат выражения –False, тело цикла выполняется еще раз, если результат – True, то происходит выход из цикла.

Особенности выполнения оператора Repeat

1. Тело цикла выполняется, по крайней мере, один раз, так как условие проверяется после выполнения тела цикла.

2. Тело цикла выполняется пока условие False.

3. В теле цикла может находиться произвольное число операторов без операторных скобок Begin …End.

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

Например:

D:=1; S:=0; Repeat S:=S+D; Until (D>100); {бесконечный цикл} D:=1; S:=0; Repeat S:=S+D; D:=D+1; {изменение переменной, влияющей на условие} Until (D>100); {цикл имеет завершение}

5. Чтобы прервать выполнение оператора Repeat досрочно, необходимо использовать процедуру Break, которая прерывает выполнение циклов. Процедура Continue начинает новую итерацию цикла, даже если предыдущая не была завершена.

Примеры решения задач

1. Составить программу ввода отрицательного числа.

Var X:Integer;

Begin

Repeat

Write(‘Введите отрицательное число’);

ReadLn(X);

If X>=0 Then WriteLn(‘Введено неправильное число’);

Until X<0;

End.

2. Просуммировать натуральные числа от 1 до 50 и вывести результат вычислений на экран.

Var I,Sum:Integer;

Begin

Sum:=0;

I:=0;

Repeat

I:=I+1;

Sum:=Sum+I;

Until I=50;

WriteLn(‘Сумма чисел от 1 до 50 = ’),Sum;

End.

3. В подъезде N ступенек. Сколько шагов будет сделано, если шагать через 3 ступеньки (один шаг – три ступеньки).

Var S, KS, N: Byte;

{S-подсчет количества ступенек, KS-количество шагов}

Begin

S:=0; KS:=0;

Repeat

S:=S+3;

KS:=KS+1;

Until I>N;

WriteLn(‘Количество шагов= ’,KS);

End.

Примеры для самостоятельного решения:

1. Составить программу ввода натурального числа в интервале от N до M.

2. начав тренировки, спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней.



<== предыдущая лекция | следующая лекция ==>
Условный оператор Case | Вложенные циклы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.153 сек.