Содержание
- 2. Элементы ЯПВУ Операторы цикла Цикл while (с предусловием) Цикл: repeat-until – Pascal do-while – C (с
- 3. Элементы ЯПВУ Цикл с параметром Эта конструкция цикла используется в тех случаях, когда заранее известно точное
- 4. Элементы ЯПВУ Цикл с параметром Работа цикла ДЛЯ: Переменная loop_index устанавливается в заданное начальное значение initial_value,
- 5. For := To [или DownTo] Do ; где For, To [DownTo], Do – ключевые слова для,
- 6. Примеры цикла for Блок-схема алгоритма: Вычислить сумму целых положительных чисел от 1 до N Элементы ЯПВУ
- 7. Примеры цикла for Program Sum; var i, n, s : Integer; begin Write('Введите N = ');
- 8. Элементы ЯПВУ Цикл с предусловием Эта конструкция используется для выполнения цикла, условие завершения которого описывается в
- 9. Элементы ЯПВУ Цикл с предусловием Работа цикла ПОКА: Проверяется логическое условие Р, Если условие Р истинно,
- 10. Элементы ЯПВУ Цикл с предусловием Использование счётчика итераций как условия цикла ПОКА При необходимости выполнить тело
- 11. Элементы ЯПВУ C Оператор цикла while Pascal While Do ; где While и Do – ключевые
- 12. Примеры цикла while Блок-схема алгоритма: Вычислить 25! Элементы ЯПВУ И+ПРГ
- 13. Элементы ЯПВУ C Оператор цикла while Pascal Примеры Вычислить значение 25! Program Factorial; Var n, k
- 14. Элементы ЯПВУ Цикл с постусловием Эта конструкция используется для выполнения цикла, условие завершения которого проверяется в
- 15. Элементы ЯПВУ Цикл с постусловием Работа цикла ПОВТОРЯТЬ-ПОКА: Один раз выполняются действия (операции) заданные в теле
- 16. Цикл repeat-until Цикл do-while Repeat Until ; где Repeat и Until – ключевые слова повторять и
- 17. Примеры цикла repeat-until и do-while Блок-схема: Определить, является ли введенное с клавиатуры целое число простым Элементы
- 18. Цикл repeat-until Цикл do-while Примеры Определить, является ли введенное с клавиатуры целое число простым Program Simple
- 20. Скачать презентацию
Элементы ЯПВУ
Операторы цикла
Цикл while
(с предусловием)
Цикл: repeat-until – Pascal
do-while – C
(с постусловием)
Цикл
Элементы ЯПВУ
Операторы цикла
Цикл while
(с предусловием)
Цикл: repeat-until – Pascal
do-while – C
(с постусловием)
Цикл
(с параметром)
Тело цикла
выполняется n-f/s раз
Тело цикла может
не выполниться
ни разу
Тело цикла обязательно
выполниться
хотя бы один раз
И+ПРГ
Элементы ЯПВУ
Цикл с параметром
Эта конструкция цикла используется в тех случаях, когда
Элементы ЯПВУ
Цикл с параметром
Эта конструкция цикла используется в тех случаях, когда
В псевдокоде для описания цикла с параметром используется следующая конструкция:
ДЛЯ loop_index = initial_value ДО final_value
Тело цикла
ДЛЯ ВСЁ
- loop_index – это переменная цикла – счётчик номера итерации (повтора) цикла,
- initial_value – начальное значение переменной цикла, номер первой итерации,
- final_value – конечное значение переменной цикла, номер последней итерации.
Количество итераций цикла равно разности final_value и initial_value.
Итерации цикла повторяются, пока параметр цикла loop_index находится в диапазоне от initial_value до final_value, можно считать, что при этом условие продолжения цикла – Истинно (И), когда параметр цикла за пределами диапазона, условие – Ложно (Л).
И+ПРГ
Элементы ЯПВУ
Цикл с параметром
Работа цикла ДЛЯ:
Переменная loop_index устанавливается в заданное
Элементы ЯПВУ
Цикл с параметром
Работа цикла ДЛЯ:
Переменная loop_index устанавливается в заданное
При каждом прохождении (итерации) цикла переменная цикла автоматически увеличивается (уменьшается) на 1,
В начале новой итерации переменная loop_index проверяется на соответствие верхнему (нижнему) пределу (final_value),
При достижении переменной loop_index заданного верхнего (нижнего) предела (final_value) цикл завершается и алгоритм переходит к выполнению следующего за ДЛЯ ВСЁ действия.
В виде блок-схемы эта конструкция выглядит так:
В ЯП Pascal и С эта конструкция реализуется с помощью оператора for
И+ПРГ
For <параметр цикла> :=
To [или DownTo] Do
For <параметр цикла> :=
To [или DownTo] Do
<оператор>;
где For, To [DownTo], Do – ключевые слова для, до, выполнить,
- параметр цикла – переменная порядкового типа,
- а, в – начальное и конечное значе-ния (выражения) параметра цикла
если To: a если DownTo: a>b и шаг = -1,
- оператор – одиночный или состав-ной оператор.
Процедура Break; - досрочный выход из цикла,
Процедура Continue; - завершить текущую и начать новую итерацию.
Пример: For i := 1 To n Do
for (<инициализация>;
<условие>; <приращение>)
<оператор>;
где for – ключевое слово для,
- инициализация – присваивание начального значения параметру(-ам) цикла,
- условие – выражение, цикл выпол-няется пока оно истинно,
- приращение – изменение параметра цикла при каждой итерации,
- оператор – одиночный или состав-ной оператор.
Принудительное завершении всего цикла или текущей итерации – операторы: break, continue, return, goto.
Пример: for (i = 1; i <= n; i++)
И+ПРГ
Примеры цикла for
Блок-схема алгоритма: Вычислить сумму целых положительных чисел от
Примеры цикла for
Блок-схема алгоритма: Вычислить сумму целых положительных чисел от
Элементы ЯПВУ
И+ПРГ
Примеры цикла for
Program Sum;
var
i, n, s : Integer;
begin
Write('Введите
Примеры цикла for
Program Sum;
var
i, n, s : Integer;
begin
Write('Введите
ReadLn (n); (* Ввод числа *)
s := 0; (*Начальное значение суммы*)
For i := 1 To n Do (*Цикл суммирования *)
s := s + i;
(* Вывод результата *)
WriteLn ('Сумма = ', s);
End.
Вычислить сумму целых положительных чисел от 1 до N
#include Задание на дом на цикл for: Нарисовать блок-схему алгоритма и написать программы на Pascal и С И+ПРГ
int main ()
{
int i, n, s=0;
printf ("Введите n = ");
scanf ("%d",&n); /* Ввод числа */
/* Цикл подсчета суммы */
for (i = 1; i <= n; i++)
s = s + i;
/* Вывод результата */
printf("Сумма = %d\n", s);
return 0;
}
Найти все делители целого положительного числа.
Напечатать таблицу значений функции Y=X2+1 во введенном диапазоне.
Ввести 5 дробных чисел и после ввода каждого числа вывести среднее арифметическое введённой части последовательности.
Элементы ЯПВУ
Цикл с предусловием
Эта конструкция используется для выполнения цикла, условие завершения
Элементы ЯПВУ
Цикл с предусловием
Эта конструкция используется для выполнения цикла, условие завершения
В псевдокоде для описания цикла с предусловием используется следующая конструкция:
ПОКА условие P истинно
Тело цикла
ПОКА ВСЁ
условие P – логическое условие продолжения цикла (терминальное условие).
Конструкция ПОКА – это цикл с предусловием, т.е. условие проверяется до выполнения действий тела цикла.
Замечания:
а) поскольку условие проверяется в начале цикла, то чтобы задать корректное условие необходимо выполнить определённую логическую обработку данных до проверки условия,
б) стандартный способ прервать цикл ПОКА – сделать условие ложным; это означает, что в теле цикла должны выполняться какие-то операции изменяющие условие цикла, иначе цикл может стать бесконечным.
Принудительное завершении всего цикла или текущей итерации – операторы безусловного перехода: break, continue, return, goto.
И+ПРГ
Элементы ЯПВУ
Цикл с предусловием
Работа цикла ПОКА:
Проверяется логическое условие Р,
Если условие Р
Элементы ЯПВУ
Цикл с предусловием
Работа цикла ПОКА:
Проверяется логическое условие Р,
Если условие Р
Если условие Р по-прежнему истинно, снова повторяется тело цикла,
Если условие Р ложно, управление передаётся к действию, следующему за ключевыми словами ПОКА ВСЁ, и тело цикла больше не выполняется.
В виде блок-схемы эта конструкция выглядит так:
В ЯП Pascal и С эта конструкция реализуется с помощью оператора while
И+ПРГ
Элементы ЯПВУ
Цикл с предусловием
Использование счётчика итераций как условия цикла ПОКА
При
Элементы ЯПВУ
Цикл с предусловием
Использование счётчика итераций как условия цикла ПОКА
При
Использование в качестве условия цикла ПОКА заключительной записи (сигнальной метки) или признака конца файла.
Если необходимо обработать в цикле неизвестное заранее количество элементов (например, список, количество записей в котором неизвестно), то счётчик итераций цикла использовать не получиться.
Часто в конце данных находиться заключительная запись или сигнальная метка – это особая запись или значение, размещённое в конце данных, она означает конец данных и должна содержать значение, которое чётко отличается от других обрабатываемых данных.
Возможен также случай, когда идёт обработка данных размещённых в файле на внешнем устройстве (магнитном диске, флешке и др.). При это сигнальная метка не требуется, так как в каждом файле при его создании или изменении последним символом добавляется маркёр конца файла – EOF – End of File. В качестве условия цикла тогда можно использовать одно из равнозначных выражений:
ПОКА ещё данные
ПОКА ещё записи
ПОКА есть записи
ПОКА не EOF
С такими условиями цикла все действия между операторами ПОКА и ПОКА ВСЁ будут повторяться, пока не будет сделана попытка прочесть данные после символа EOF. Когда это произойдёт, программа получит сигнал, обозначающий что данных в файле больше нет и условие ПОКА – ложно.
И+ПРГ
Элементы ЯПВУ
C
Оператор цикла while
Pascal
While <условие> Do
<оператор>; где
While и
Элементы ЯПВУ
C
Оператор цикла while
Pascal
While <условие> Do
<оператор>; где
While и
условие – выражение логического типа,
оператор – одиночный или составной оператор.
while (<условие>)
<оператор>; где
while – ключевое слово пока,
условие – выражение,
оператор – одиночный или составной оператор.
И+ПРГ
Примеры цикла while
Блок-схема алгоритма: Вычислить 25!
Элементы ЯПВУ
И+ПРГ
Примеры цикла while
Блок-схема алгоритма: Вычислить 25!
Элементы ЯПВУ
И+ПРГ
Элементы ЯПВУ
C
Оператор цикла while
Pascal
Примеры
Вычислить значение 25!
Program Factorial;
Var
n, k
Элементы ЯПВУ
C
Оператор цикла while
Pascal
Примеры
Вычислить значение 25!
Program Factorial;
Var
n, k
(* n – переменная цикла, k – число
факториала, p - значение факториала *)
Begin
Write('Введите число факториала k');
ReadLn (k); (*Ввод числа факториала*)
p := 1; n := 1; (* Начальные значения *)
While (n <= k) Do
Begin
(*Вычисление факториала*)
p := p * n;
(*Приращение переменной цикла*)
n := n + 1;
End;
WriteLn('Значение факториала p = ', p:10);
End.
#include И+ПРГ
int main ()
{
int n, k; float p;
/* n – переменная цикла, k – число
факториала, p - значение факториала */
printf ("Введите число k = ");
scanf ("%d",&k); /* Ввод числа */
p = 1; n = 1; /* Начальные значения */
while (n <= k)
{
/* Вычисление факториала в цикле */
p = p * n;
/*Приращение переменной цикла*/
n++;
}
printf ("Значение факториала p = %G\n ",p);
return 0;
}
Элементы ЯПВУ
Цикл с постусловием
Эта конструкция используется для выполнения цикла, условие завершения
Элементы ЯПВУ
Цикл с постусловием
Эта конструкция используется для выполнения цикла, условие завершения
В псевдокоде для описания цикла с предусловием используется следующая конструкция:
ПОВТОРЯТЬ
Тело цикла
ПОКА условие P истинно [как вариант –ложно]
условие P – логическое условие.
В разных языках программирования (ЯП) логика условия цикла может различаться: в одних ЯП цикл завершается когда условие ложно (С/С++), в других когда – истинно (Pascal).
Конструкция ПОВТОРЯТЬ-ПОКА обеспечивает выполнение алгоритма запрограммированного в теле цикл до проверки условия, таким образом, действия тела цикла будут обязательно выполнены хотя бы один раз.
Принудительное завершении всего цикла или текущей итерации – операторы безусловного перехода: break, continue, return, goto.
И+ПРГ
Элементы ЯПВУ
Цикл с постусловием
Работа цикла ПОВТОРЯТЬ-ПОКА:
Один раз выполняются действия (операции) заданные
Элементы ЯПВУ
Цикл с постусловием
Работа цикла ПОВТОРЯТЬ-ПОКА:
Один раз выполняются действия (операции) заданные
Проверяется логическое условие Р,
Если условие Р истинно [ложно], выполняется переход к началу цикла и снова выполняется тело цикла,
Снова проверяется условие Р, если оно по-прежнему истинно [ложно], то снова повторяется тело цикла,
Если условие Р становиться ложно [истинно], то управление передаётся к действию, следующему за проверкой условиях ПОКА, и тело цикла больше не выполняется.
В виде блок-схемы эта конструкция выглядит так:
В ЯП Pascal эта конструкция реализуется с помощью оператора repeat-until;
в языке С – do-while
И+ПРГ
Цикл repeat-until
Цикл do-while
Repeat <операторы цикла;>
Until <условие>; где
Repeat и
Цикл repeat-until
Цикл do-while
Repeat <операторы цикла;>
Until <условие>; где
Repeat и
операторы цикла – произвольная последовательность операторов,
условие – выражение логического типа.
В этой конструкции при несколь-ких операциях в теле цикла – операторные скобки не требуются, но разрешены.
do <оператор;>
while (<условие>); где
do и while – ключевые слова выполнять и пока,
оператор – одиночный или составной оператор,
условие – выражение.
ИП
Обратить внимание!!! В цикле repeat-until (Pascal) логика повторения итераций цикла противоположна логике повторения остальных циклов Pascal и С: если условие Ложно – цикл повторяется, если Истинно – происходить выход из цикла.
И+ПРГ
Примеры цикла repeat-until и do-while
Блок-схема: Определить, является ли введенное с
Примеры цикла repeat-until и do-while
Блок-схема: Определить, является ли введенное с
Элементы ЯПВУ
И+ПРГ
Цикл repeat-until
Цикл do-while
Примеры
Определить, является ли введенное с клавиатуры целое число простым
Program
Цикл repeat-until
Цикл do-while
Примеры
Определить, является ли введенное с клавиатуры целое число простым
Program
Var
n, d, r : Integer;
(* n – проверяемое число, d – текущий де-литель, r – текущий остаток от деления*)
Begin
Write('Введите целое число n = ');
ReadLn (n);
d := 2; (* Сначала делим на 2 *)
Repeat
(*Остаток от деления на d*)
r := n mod d;
(*n не разделилось нацело на d*)
If r <> 0
Then d := d + 1;
Until r = 0;
If d = n
Then WriteLn (n, ' – простое число');
Else WriteLn (n, ' – не простое число');
End.
#include И+ПРГ
#include
int main ()
{
int n, d, r; /* n – проверяемое число, d – текущий делитель, r – текущий остаток от деления*/
printf ("Введите целое число n = ");
scanf ("%d",&n);
d = 2; /* Сначала делим на 2 */
do
{
r = n % d; /*Остаток от деления на d*/
if (r != 0) d = d + 1; /* не нацело */
}
while ( r != 0);
if (d == n)
{ printf(" - %d",n);
printf("простое число\n"); }
else { printf("%d",n);
printf("не простое число\n"); }
return 0;
}