Все о Pascal
Главная
Вход
Регистрация
Суббота, 18.05.2024, 14:18Приветствую Вас, программист Гость | RSS
Меню сайта

Категории раздела
Уроки Pascal [36]
Мемы - "Типичный программист" [1]
Задачи [10]
Заработок в интернете [14]
Олимпиадные задчи [1]

Наш опрос
Оцените мой сайт
Всего ответов: 249

Статистика

Форма входа

Главная » Статьи » Уроки Pascal

Урок 10.

 Лекция 10.Цикл с предварительным условием.
Реализация алгоритмов с использованием повторения. 

автор: Садовский Ефим Моисеевич

1. Повторение.
    Цикл For. Общий вид. Недостатки.

2. Цикл WHILE.
    Практически универсальный цикл (может применяться во всех случаях, когда необходим цикл). Чаще всего применяется тогда, когда нельзя использовать For: то есть неизвестно сколько раз выпол-нять цикл или до какого значения изменяется переменная цикла.
    Общий вид:
Переменная цикла:=начальное значение; /Может быть заменено вводом начального значения с клавиатуры/
while <условие> do
 begin
 команды;
 переменная цикла:=переменная цикла+шаг;
 end;
Команды, стоящие между begin и end, выполняются до тех пор, пока условие истинно.
ВНИМАНИЕ! В цикле While очень легко допустить ошибку! Цикл WHILE выполняется до тех пор, пока условие цикла истинно, поэтому обязательно в какой-то момент условие должно стать ложным, иначе программа будет выполняться бесконечно (будет зациклена). Прерывание выполнения программы – кнопка Stop.
Сравним решение задачи:
Пример 1: Найти сумму чисел от 1 до N, кратных 5.
 
С помощью For:С помощью While:
Program prim1;
 var s,i,n:integer;
 begin
 s:=0;
 write('Введите N');
 readln(n);
 for i:=1 to n do
 if i mod 5=0 then
 s:=s+i;
 writeln('Сумма S=',s);
 end.

 

 

Program prim1;
 var s,i,n:integer;
 begin
 s:=0;
 write('Введите N');
 readln(n);
 i:=5;
 while i<=n do
 begin
 s:=s+i;
 i:=i+5;
 end;
 writeln('Сумма S=',s);
 end.
 

    Обратите внимание на то, что решение с циклом For проще записать, однако цикл For перебирает все значения от 1 до n с шагом 1 и отбирает кратные 5, а цикл While «перепрыгивает» через 5 (шаг между числами, кратными 5). Поэтому начальное значение i=5, а шаг изменения переменной – тоже 5 (заметьте, что он может быть любым, в том числе и дробным!). Если Вы забудете набрать строку i:=i+5; программа при выполнении «зациклится» (цикл буде выполняться бесконечно!).
 С помощью цикла While можно решать задачи, которые нельзя решить с помощью цикла For.

Пример 2: Найти сумму чисел от 1, кратных 5. Складывать до тех пор, пока сумма не станет больше N.

Program prim2;
 var s,i,n:integer;
 begin
 s:=0;
 write('Введите N');
 readln(n);
 i:=5;
 while s<=n do
 begin
 s:=s+i;
 i:=i+5;
 end;
 writeln('Сумма S=',s);
 end.
3. Решение задач.
1. Вычислить сумму 1+2+3+… Складывать до тех пор, пока сумма не станет больше 10000.
2. Найти произведение: 3*7*11*15*... Умножать до тех пор, пока произведение не станет больше N.
3. Найти произведение: П = 23*43*63*83*...
Умножение выполнять до тех пор, пока множитель не станет больше 1000.

К О Н С П Е К Т
Тема: Цикл с предварительным условием. Реализация алгоритмов с использованием повторения.

1. Цикл WHILE (цикл с предварителбным условием).
    Практически универсальный цикл (может применяться во всех случаях, когда необходим цикл).
    Общий вид:
Переменная цикла:=начальное значение; /Может быть заменено вводом начального значения с клавиатуры/
while <условие> do
 begin
 команды;
 переменная цикла:=переменная цикла+шаг;
 end;
(Перевод: While - пока)
Команды, стоящие между begin и end, выполняются до тех пор, пока условие истинно.
ВНИМАНИЕ! В цикле While очень легко допустить ошибку! Цикл WHILE выполняется до тех пор, пока условие цикла истинно, поэтому обязательно в какой-то момент условие должно стать ложным, иначе программа будет выполняться бесконечно (будет зациклена). Прерывание выполнения программы – кнопка Stop.
Пример 1: Найти сумму чисел от 1 до N, кратных 5.
Program prim1;
 var s,i,n:integer;
 begin
 s:=0;
 write('Введите N');
 readln(n);
 i:=5;
 while i<=n do
 begin
 s:=s+i;
 i:=i+5;
 end;
 writeln('Сумма S=',s);
 end.
Пример 2: Найти сумму чисел от 1, кратных 5. Складывать до тех пор, пока сумма не станет больше N.
Program prim1;
 var s,i,n:integer;
 begin
 s:=0;
 write('Введите N');
 readln(n);
 i:=5;
 while i<=n do
 begin
 s:=s+i;
 i:=i+5;
 end;
 writeln('Сумма S=',s);
 end.

pascal, pascal, pascal, pascal while, pascal while, while
Категория: Уроки Pascal | Добавил: yurabobr1 (13.11.2012)
Просмотров: 2000 | Теги: значение, выполняться, сумма, End, кратное, цикл, переменный, найти, пора, условие | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz


  • Copyright MyCorp © 2024