Примеры программ на паскале содержащие цикл

Примеры программ на паскале содержащие цикл thumbnail

При решении задач может возникнуть необходимость повторить одни и те же действия несколько или множество раз. В программировании блоки кода, которые требуется повторять не единожды, оборачиваются в специальные конструкции – циклы. У циклов выделяют заголовок и тело. Заголовок определяет, до каких пор или сколько раз тело цикла будет выполняться. Тело содержит выражения, которые выполняются, если в заголовке цикла выражение вернуло логическую истину (True, не ноль). После того как достигнута последняя инструкция тела, поток выполнения снова возвращается к заголовку цикла. Снова проверяется условие выполнения цикла. В зависимости от результата тело цикла либо повторяется, либо поток выполнения переходит к следующему выражению после всего цикла.

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

Блок схемы циклов

Цикл for

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

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

Цикл for существует в двух формах:

for счетчик:=значение to конечное_значение do
тело_цикла;
for счетчик:=значение downto конечное_значение do
тело_цикла;

Счетчик – это переменная любого из перечисляемых типов (целого, булевого, символьного, диапазонного, перечисления). Начальные и конечные значения могут быть представлены не только значениями, но и выражениями, возвращающими совместимые с типом счетчика типы данных. Если между начальным и конечным выражением указано служебное слово to, то на каждом шаге цикла значение параметра будет увеличиваться на единицу. Если же указано downto, то значение параметра будет уменьшаться на единицу.

Количество итераций цикла for известно именно до его выполнения, но не до выполнения всей программы. Так в примере ниже, количество выполнений цикла определяется пользователем. Значение присваивается переменной, а затем используется в заголовке цикла. Но когда оно используется, циклу уже точно известно, сколько раз надо выполниться.

var
i, n: integer;
 
begin
write (‘Количество знаков: ‘);
readln (n);
 
for i := 1 to n do
write (‘(*) ‘);
 
readln
end.

Цикл while

Цикл while является циклом с предусловием. В заголовке цикла находится логическое выражение. Если оно возвращает true, то тело цикла выполняется, если false – то нет.

Когда тело цикла было выполнено, то ход программы снова возвращается в заголовок цикла. Условие выполнения тела снова проверяется (находится значение логического выражения). Тело цикла выполнится столько раз, сколько раз логическое выражение вернет true. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в заголовке цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация false. Иначе произойдет так называемое зацикливание, одна из самых неприятных ошибок в программировании.

var
i, n: integer;
 
begin
write (‘Количество знаков: ‘);
readln (n);
 
i := 1;
while i <= n do begin
write (‘(*) ‘);
i := i + 1
end;
 
readln
end.

Цикл repeat

Цикл while может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false. Однако такая ситуация не всегда может быть приемлемой. Бывает, что тело цикла должно выполниться хотя бы один раз, не зависимо оттого, что вернет логическое выражение. В таком случае используется цикл repeat – цикл с постусловием.

В цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while, здесь всё наоборот: в случае true происходит выход из цикла, в случае false – его повторение.

var
i, n: integer;
 
begin
write (‘Количество знаков: ‘);
readln (n);
 
i := 1;
repeat
write (‘(*) ‘);
i := i + 1
until i > n;
 
readln
end.

В примере, даже если n будет равно 0, одна звездочка все равно будет напечатана.

Источник

Когда в алгоритме некоторое действие нужно выполнить несколько раз, используются циклы. В программирование цикл — это многократное повторение определенных инструкций. Циклы состоят из заголовка и тела. Заголовок содержит в себе условия, которые определяют работу цикла, а тело – повторяющиеся действия. В ЯП Pascal есть три вида циклов:

цикл с параметром;

цикл с предусловием;

цикл с постусловием.

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

For — цикл с параметром

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

  1. For <счетчик>:=< начальное значение> To <конечное значение> Do <тело цикла>;
  2. For <счетчик>:=<начальное значение> Downto <конечное значение> Do <тело цикла>;

Счетчик – это переменная порядкового типа. Начальное и конечное значение должны быть того же типа, что и счетчик. Тело выполняется до тех пор пока условие истинно.

Формы записи, представленные выше, отличаются словами To и Downto. Если Вы используете цикл с To, то значение счетчика с каждым шагом будет увеличиваться на единицу, а если с Downto, то уменьшаться. Из этого следует, что в первом варианте начальное значение не должно превышать конечное, во втором — верно противоположное. В программе ниже, указанное пользователем количество раз, будут выводиться символы.

Читайте также:  Цикл помощь детям в педиатрии

1
2
3
4
5
6
7
8
9
10

program for_primer;
uses crt;
var i, x: integer;
begin
write(‘X=’);
readln(x);
for i:=1 to x do
write(#3, #6);
readkey;
end.

Здесь тело цикла не заключено в Begin-End, так как оператор всего один. Но если их будет больше, то операторные скобки обязательны. Стоит также отметить, что счетчик по выходу из цикла не будет иметь определенного значения, но если цикл закончиться раньше положенного, то счетчик сохранит последнее, записанное в него значение.

While – цикл с предусловием

Оператор While – начинает описание цикла с предусловием. Такой вид цикла нужен, в тех алгоритмах, где число повторений неизвестно заранее. В общем виде он выглядит так:

While <выражение> Do <тело цикла>;

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

Пример программы написанный с использованием цикла While:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

program while_primer;
uses crt;
var i, x, limit: integer;
begin
write(‘Предел=’);
readln(limit);
write(‘ Числа Фибоначчи: ‘);
i:=1; x:=1;
while i<=limit do
begin
write(i,‘ ‘);
i:=i+x;
x:=i—x;
end;
readkey;
end.

В данном коде использовался составной оператор Begin-End, так как операторов в теле цикла несколько.

Repeat – цикл с постусловием

Главной особенностью цикла с постусловием (часто встречается название: цикл-ДО) является выполнение его тела минимум один раз. Это связано с тем, что условие записывается в конце и соответственно вначале выполнится тело, а затем провериться условие. Формально он выглядит так:

Repeat

<тело цикла>

Until <условие>

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

1
2
3
4
5
6
7
8
9
10
11
12

program repeat_primer;
uses crt;
var i, otvet: integer;
begin
i:=1;
repeat
i:=i+1;
write(i,‘+’,i,‘*2=’);
read(otvet);
until otvet<>i+i*2;
readkey;
end.

Программа продолжает работать до тех пор, пока пользователь не допустит ошибку в ответе. Думаю, Вы заметили, что в примере (непосредственно в цикле) составной оператор Begin-End, несмотря на количество операторов не поставлен. Просто его роль выполняют слова repeat и until.

Для переходных манипуляций с циклом обычно используются три оператора:

Goto – переходит в отмеченную область;

Break – производит безусловный выход из цикла;

Continue – осуществляет переход к новой итерации.

Похожие записи:

  • Pascal. Операторы ввода-вывода
  • Структура программы Pascal.
  • Процедуры и функции Паскаль
  • Pascal. Поиск в массиве.
  • Pascal. Переменные.

Источник

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

Цели :

  1. Образовательная: ознакомить студентов с работой операторов цикла While…do,
    Repeat…until, For…to….do; приобрести практические навыки при решении задач с
    циклом на ЭВМ в среде Turbo Pascal 7.0.
  2. Развивающая: формирование учебно-интеллектуальных умений (выявление
    причинно-следственных связей, обобщение материала ).
  3. Воспитывающая: воспитание конструктивного, технического и логического
    мышления, формирование умений критически оценить ход и результат своего
    труда и труда товарища.

План занятия:

  1. Организационный момент (2 мин.).
  2. Подготовка студентов к усвоению новых знаний (3 мин.).
  3. Теоретический материал (10 мин.).
  4. Закрепление знаний на ЭВМ (20–30 мин.).
  5. Обобщение полученных знаний (5 мин.).
  6. Домашнее задание и его пояснение (5–10 мин.).
  7. Проверочный тест на первичное усвоение знаний (5–10 мин.).
  8. Самостоятельная работа студентов по решению задач (10–20 мин.).
  9. Подведение итогов занятия (5 мин.).

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

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

  • Что такое цикл?
  • Какие бывают виды циклов?

3. Теоретический материал.
На доске цель “Изучить работу операторов цикла” и блок-схемы циклов:

Служебные слова и синтаксис операторов

Цикл “Пока…” или с предусловием

WHILE условие DO оператор;
(или группа операторов в операторных скобках begin end;).

Цикл “Повторять…до…” или с постусловием

REPEAT операторы UNTIL условие;

Цикл с параметром имеет две формы записи

FOR i: = начальное значение TO конечное значение DO оператор;

FOR i: = конечное значение DOWNTO начальное значение DO
оператор;

4. Закрепление знаний на ЭВМ.

Студенты работают с раздаточным материалом и изучают работу операторов цикла
на конкретных математических задачах.

Задача 1: вычислить n! – n-факториал(n! = 1*2*3*…* n ).

Задача 2: Вычислить сумму квадратов чисел от 1 до 8.

Задача 3: Вычислить сумму чисел от 1 до 10

В завершение работы надо ответить на вопросы, записанные на доске:

  • Когда осуществляется выход их цикла?
  • В каком из циклов заранее известно число повторений цикла?

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

6. Домашнее задание (дифференцировано: задачи № 1 и № 2 по шаблону
обязательны; № 3 по желанию –повышенной трудности.).

Составить блок –схемы алгоритмов решения задач и программы на языке Pascal:

  1. Вычислить n! , используя цикл Repeat…until.
  2. Используя цикл While…do вывести на экран квадраты натуральных чисел,
    пока квадрат очередного числа не превысит 64.
  3. *Используя цикл For…to….do вычислить количество и сумму четных чисел на
    промежутке от N до K.
Читайте также:  Контрольная работа по теме циклы на языке

7. Проверочный тест на первичное усвоение знаний.

1-й вариант

1. Выход из цикла While происходит при истинности логического
выражения(условия):

1. Да
2. Нет

2. В цикле For заранее известно число повторений цикла:

1. Да
2. Нет

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

For i:=10 to 10 do 
1.1раз
2.10 раз
3. ни сколько

4. После служебного слова While пишется:

1.<условие>
2.оператор

5. Цикл Repeat называется с постусловием, т.к. сначала идет тело цикла, затем
условие:

1.Нет
2.Да

2-й вариант

1. Выход из цикла Repeat происходит при истинности логического
выражения(условия):

1.Да
2.Нет

2. В цикле While заранее известно число повторений цикла:

1.Да
2.Нет

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

For i:=10 downto 10 do
1.10 раз
2.1 раз
3. ни сколько

4. После служебного слова Repeat пишется:

1. оператор
2. <условие>

5. Цикл While называется с предусловием, т.к. сначала идет условие, затем
тело цикла:

1. Да
2. Нет.

Каждый студент проверяет тест соседа и выставляет ему оценку.

8. Самостоятельная работа на два варианта по решению задач.
Пример задач 1 варианта

  • Используя цикл For… downto вычислить сумму чисел от 36 до 12.
  • Используя цикл For вычислить сумму 7-ми произвольных чисел, введенных с
    клавиатуры.
  • Дано натуральное число n и действительное число х. Вычислить при n = 7
    выражение :
  • 1 + sinx + sinx2 +…. + sinxn .
  • Найти все целые двузначные числа кратные 7.

9. Итоги урока.
Выставить оценки за урок.
Обобщить теоретические знания.

Литература:

  1. Молчанова С. И. Основы программирования. Turbo-Паскаль 7.0 для
    школьников и абитуриентов. – М. :”Аквариум”; ООО “Фирма “Издательство АСТ”, 1999. – 224 c.: ил.
  2. Немнюгин С.А. Turbo Pascal . С-Пб. Издательство“Питер”, 2000. –
    496 c.
  3. Епанешников А. М. Епанешников В.А. Программирование в среде Turbo
    Pascal 7.0. – М .: “ДИАЛОГ – МИФИ”, 1998. – 288 с.

Источник

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

While в Паскале — цикл с предусловием

Пример: Определить количество цифр в введенном целом числе, не превышающем 2000000.

Алгоритм: Отделяем и удаляем последовательно последнюю цифру, наращивая счетчик.

nсчетчик
246
241
22
3

В чем сложность?: Заранее не определено и неизвестно, сколько цифр нужно убрать, т.е. сколько шагов необходимо сделать.
Как выполнить: Надо перестать отделять цифры, когда n = 0, т.е. надо выполнять пока n > 0

Блок-схема решения:

Блок-схема решения цикл while

Блок-схема решения

Решение примера на Паскале:
пример цикла while Паскаль
Цикл while в Паскале применяется для создания повторений с неизвестным заранее их числом. Повторения (итерации) будут осуществляться, пока истинно некоторое условие.

Блок-схема, соответствующая циклу while в Паскале:
блок-схема while в паскале

while условие do {Пока условие истинно выполняется оператор}
оператор;
  • Здесь оператор, стоящий после служебного слова do, образует тело цикла и будет выполняться, пока значение “условия” равно true (истина).
  • Если операторов должно быть несколько, тогда необходимо применять составной оператор.
  • Условие пересчитывается каждый раз при входе в цикл.
  • Непосредственно условием цикла while может быть переменная или логическое выражение.
  • Операторы тела цикла while выполнятся только в том случае, если условие будет истинно, если условие ложно — они игнорируются, и программа продолжается с тех операторов, которые стоят уже после конструкции. Таким образом, это существенное отличие цикла с предусловием от цикла с постусловием.

Рассмотрим использование цикла while в Паскале на решенном примере:

Пример: Печатать «ноль» указанное количество раз

Показать решение:

1
2
3
4
5
6
7
8
9
10
var i,n:integer;
begin
write (‘kolichestvo znakov’);
readln(n);
i:=1;
while i<=n do begin {составной оператор}
write(0);
i:=i+1
end;
end.

Задача 3. Ввести целое число и найти сумму его цифр.
Пример:

Введите целое число:
1234
Сумма цифр числа 1234 равна 10.

  • Можно использовать сложные условия:
  • сложные условия в while

    Задача 4. Вычислять с использованием цикла while квадратные корни из чисел 900, 893, 886, 879 и т.д. до тех пор, пока это можно делать.

    Детальный разбор работы цикла While в Паскале рассмотрен в видеоуроке:

    Пример: найти сумму всех элементов последовательности:

    которые по модулю больше 0,001:
    Примеры программ на паскале содержащие цикл

    Алгоритм:
    Примеры программ на паскале содержащие цикл

    Блок-схема решения:

    Блок-схема решения

    Блок-схема решения

    Решение на Паскале:

    Решение на Паскале

    Решение на Паскале

    Задача 5: Вычислить сумму элементов следующей последовательности с точностью 0,001:

    Результат: S = 1.157

    Вложенные циклы в Паскале

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

    Важно: Главным обстоятельством во вложенных циклах является использование разных переменных для счетчиков внутреннего и внешнего циклов

    Рассмотрим пример:

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

    Показать решение:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    const n = 9; {размер таблицы}
    var i, j :integer;
    begin
    for i:=1 to n do {номера строк}
    begin
    for j:=1 to n do {номера столбцов}
    write(i*j:4);
    writeln; {переход на новую строку}
    end;
    end.

    Произведение в Паскале

    Точно также, как существует сумматор для сложения, для умножения в паскале тоже существует специальная конструкция:

    Произведение вычисляется по рекуррентному выражению:

    P=P*Y,

    где P – промежуточные произведения

    Y — сомножители

    Рассмотрим пример вычисления факториала числа в Паскале с использованием цикла while.

    Пример цикла While в Паскале для вычисления факториала 10! (10!=1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 * 10)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var
    fact, n : integer;
    begin
    fact := 1; {начальное значение факториала =0! }
    n := 1; {начальное значение для условия }
    while n<=10 do {условие }
    begin {начало тела конструкции с составным оператором }
    fact := fact*n; {вычисление факториала n! }
    n := n + 1 {n должно меняться в теле конструкции}
    end; {конец тела цикла }
    writeln(’10!= ’,fact); {вывод результата расчета }
    end.
    Читайте также:  Станислав сергеев цикл меч дедов

    Здесь необходимо обратить внимание на то, что присваивание n := 1 стоит до цикла, если этого не сделать, то условие будет работать некорректно, так как переменная n будет пуста.

    Программа возведения в степень числа в Паскале

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

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

    Таким образом, возведение числа n в степень d можно выразить так:
    nd = n1 * n2 * n3 * … * nd, где нижние индексы просто указывают очередное по счету число n.

    Еще необходимо учесть следующее:

    • число в нулевой степени равняется 1
    • если показатель степени отрицателен, т.е. d , то задача решается по формуле:
      nd = 1 / (n1 * n2 * n3 * … * nd)

    Т.е., решая программу на Паскале, учитываем:

    • в программе на языке Паскаль количество итераций (повторений) цикла while должно быть равно показателю степени числа по модулю;
    • если показатель степени — отрицательное число, то нужно впоследствии единицу разделить на результат.

    Задача 6. Вычислить в Паскале степень числа, используя цикл while.

    Задача 7. Дана последовательность вещественных чисел, признак завершения которой — число 0 (оно не считается элементом последовательности). Найти сумму всех положительных элементов этой последовательности.

    Пример результата:

    Введите член последовательности
    4
    Введите член последовательности
    -1
    Введите член последовательности
    5
    Введите член последовательности
    7
    Введите член последовательности

    Сумма положительных чисел = 16

    Источник

    Паскаль - Урок 6: Циклы while, for, repeat

    Вчера мы узнали о понятии циклы в паскале в общих чертах, сегодня узнаем о каждом из циклов в паскале поподробней и увидим как они задаются. Будем разбирать цикл while с предусловием, цикл for с параметром и цикл repeat – until с постусловием.

    1. Цикл с параметром в Паскале – FOR

    Цикл FOR задаёт определённое условие по которому программа будет работать до его выполнения, допустим нужно нам 5 (или n) раз зациклить программу, то это легко сделать с помощью данного цикла. У цикла FOR есть характерная черта – счетчик который обычно обозначается буквой i или j.

    Внешний вид цикла с параметром в паскале:

    for i:= 1 to n do // присваиваем i сначала одному, потом двум, трем, …, n

    После 1-го прохода переменной i присваиваем 1, после второго присваиваем 2 и так до тех пор, пока не дойдем до n. to – это до .. в порядке возрастания, также есть downto – до .. в порядке убывания.

    Блок – схема цикла с параметром:

    2. Цикл с предусловием в Паскале – WHILE

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

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

    WHILE   DO
            begin
                    
            end;

    – логическое выражение, истинность которого проверяется вначале выполнения циклического оператора;

    – любые выполняемые операторы языка.

    Порядок выполнения цикла:

    Пока условие истинно выполняется тело цикла. Как только условие становится ложно выполнение цикла прекращается.

    Блок – схема цикла с предусловием:

    Паскаль - Урок 6: Циклы while, for, repeat

    Примечание: в прямоугольных блоках показано любое действие, которое выполняется в цикле или после него (шаг цикла), в овалах – начало или конец всей программы или её части. Главную роль в данной блок – схеме играет её центральная часть.

    Пример:

    Задача: вычислить сумму ряда 1+1.5+2+2.5+3+3.5+ .. + 30

    program example-while;

    var
       sum:real;
       n:real;
    BEGIN
       sum:=0;
       n:=1;
       while n

    3. Цикл с постусловием – Repeat – until.

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

    Обратите внимание на то, что данный оператор цикла предполагает наличие нескольких операторов в теле цикла, то есть можно выполнять несколько действий, поэтому служебные слова Begin и End не нужны.

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

    Блок – схема цикла с постусловием:

    Формат записи, структура цикла:

    REPEAT

    UNTIL  ;

    Program test2;
    Var b:Real;
    Begin
    b:=100;
    Repeat b:=b/2;
    Until b

    Выводы:

    1.Цикл с параметром используется переменная, называемая параметром цикла или счётчиком. Перед выполнением цикла параметру (счётчику) устанавливается начальное значение. После выполнения шага цикла значение параметра увеличивается на единицу. Цикл продолжается до тех пор пока параметр не достигнет своего конечного значения, которое указывается после to (downto).

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

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

    Предыдущий урок

    Дата: 2012-01-06 19:31:43   Просмотров: 278158

    Теги: Паскаль Pascal циклы уроки

    Источник