Программирование циклических алгоритмов
Лабораторная работа, 11 Декабря 2011, автор: пользователь скрыл имя
Краткое описание
Цель работы:
Познакомиться с операторами цикла, научиться составлять программы с использованием операторов повторения.
Вложенные файлы: 1 файл
20111102200853.docx
— 143.99 Кб (Скачать файл)Лабораторная работа №5
ПРОГРАММИРОВАНИЕ
ЦИКЛИЧЕСКИХ АЛГОРИТМОВ.
Цель работы:
Познакомиться с операторами цикла, научиться составлять программы с использованием операторов повторения.
5.1 Оператор цикла FOR
Общие сведения:
Оператор FOR используется, когда известно число повторений в цикле.
Существует два варианта оператора:
- for <переменная>:=<нач. значение> to <кон. значение> do<оператор>;
где переменная - переменная порядкового типа, причем она последовательно принимает значения от начального до конечного с шагом 1.
- for <переменная>:=<нач. значение> downto <кон. значение> do <оператор>;
где переменная
принимает последовательно убывающие
значения с шагом -1.
Следует запомнить и то, что для обоих вариантов записи цикла с параметром справедливо: если начальное и конечное значения равны, то тело цикла выполнится один раз.
I – параметр цикла
N
– начальное значение
К
– конечное значение параметра
Выполняется следующим образом:
- Параметру присваивается начальное значение N;
- Проверка: Если значение параметра не больше (не меньше) конечного значения K, то переход на п.3 иначе п.6.
- Выполняется тело цикла
- Параметр цикла увеличивается (уменьшается) на 1
- Переход на п.2
- Выход из цикла
Нельзя
изменять параметр в теле цикла. При
использовании кратных (вложенных)
циклов применять разные переменные
в качестве параметров. Определять
до цикла значения всех используемых
в нем переменных. Не ставить точку
с запятой после do.
Пример №1
Наводнение
продолжалось ровно сутки. В первый час
вода в реке поднялась на 1 дюйм, во второй
- на 2, в третий - на 3, и т.д. На сколько дюймов
поднимется уровень воды за сутки? (Дана
программа вычисления суммы 24 членов
ряда: 1+2+3+...+24):
var k,s: integer;
begin
s:=0;
for k:= 1 to 24 do
s:=s+k;
writeln('сумма=', s);
end.
Пример №2
Вывести
на экран натуральные числа от
1 до 9 в обратном порядке.
Program z;
Var i:integer;
Begin
For i:=9 downto 1 do
Writeln(i);
End.
Параметр
цикла может и не использоваться в теле
цикла, так что основное его назначение
– это управление числом повторений цикла.
Например, значение y= x n, где n>=0 – целое,
можно вычислить по следующему алгоритму:
предварительно положить y=1, а затем n раз
домножить это значение на x:
Пример №3
Readln(n);
Readln(x);
Y:= 1;
For i:= 1 to n do y:= y*x;
Как видно, здесь параметр цикла i служит лишь для того, чтобы тело цикла (оператор y:= y* x) выполнилось нужное число раз.
Если
необходимо последовательно выполнять
несколько операторов в теле цикла,
их следует объединить в составной
оператор с помощью операторных
скобок BEGIN...END.
Порядок выполнения работы:
- Изучить описание лабораторной работы.
- Разобрать примеры программ
- Решить задачу по индивидуальному варианту (номер варианта совпадает с номером в списке журнала
- Продемонстрировать результаты выполнения работы преподавателю.
Варианты заданий:
- Вывести на экран все простые числа в диапазоне от 2 до N. Протестировать программу для N=100.
- Вводятся 10 чисел, посчитать среди них количество положительных.
- Даны два целых числа A и B (A < B). Вывести в порядке убывания все целые числа, расположенные между A и B (не включая числа A и B), а также количество N этих чисел.
- Вывести на экран таблицу перевода из градусов по шкале Цельсия в градусы по Фаренгейту для значений от 15°С до 30°С с шагом в 1°С. Перевод осуществляется по формуле: F=C*1.8+32.
- Дано вещественное число — цена 1 кг конфет. Вывести стоимость 1, 2, ... , 10 кг конфет.
- Даны два целых числа A и B (A < B). Найти сумму квадратов всех целых чисел от A до B включительно
- Вычислите:
99-98+97-96+95-94+....+5-4+3-
2+1. - Даны два целых числа A и B (A < B). Найти произведение всех целых чисел от A до B включительно.
512 рыцарей собрались на турнир,
Чтоб самого достойного узнал волшебный мир,
Они сразились по двое и до исхода дня
Из каждой пары рыцарей один упал с коня.
И если будут рыцари все так же продолжать,
То сколько дней осталось им друг с другом воевать?
- Наловил дед рыбы полный воз. Рыба – крупные лещи. Едет домой и видит, лисичка свернулась калачиком, лежит на дороге. Дед – с воза, подошел, а лисичка не шелохнется. Дед решил, что лиса мертвая: «Вот славная находка! Будет старухе воротник на шубу». Взял он лису положил на воз, а сам пошел впереди. А лисица улучила время и стала выбрасывать из воза все по рыбке да по рыбке. Сначала лиса действовала осторожно, а затем смелее. В первую минуту она выбросила 1 леща, во вторую – 2, в третью – 4 и т.д., через 7 минут она выбросила всю рыбу, и сама потихоньку удрала. Сколько лещей досталось лисе?
- Дано вещественное число — цена 1 кг конфет. Вывести стоимость 0.1, 0.2, ... , 1 кг конфет.
- В 1626 году индейцы продали остров Манхеттен за 20 долларов. Если бы эти деньги были помещены в банк на текущий счет и ежегодный прирост составлял бы 4%, какова была бы стоимость капитала в 2003 году?
- Дано вещественное число — цена 1 кг конфет. Вывести стоимость 1.2, 1.4, ... , 2 кг конфет.
- Даны целые числа K и N (N > 0). Вывести N раз число K.
- Вывести целые числа и их квадраты от 1 до 20;
- Готовясь к соревнованиям, лыжник в первый день побежал 10 км, затем каждый день увеличивал расстояние на 10%. Сколько километров пробежал он за неделю тренировок? На какой день он пробежал больше 15 км?
- Напечатать буквы от 'Z' до 'A'.
- Найти сумму чисел от 100 до 200, кратных 17. Подсчитать количество таких чисел.
- На день рождения к Алле Пугачевой пришли гости. Первый гость подарил ей 5 роз, а каждый последующий дарил на 5 роз больше. Сколько певице подарили цветов, если последний гость подарил ей 100 роз?
- Даны два целых числа A и B (A < B). Вывести в порядке убывания все целые числа, расположенные между A и B (не включая числа A и B), а также количество N этих чисел.
- Даны два целых числа A и B (A < B). Вывести в порядке возрастания все целые числа, расположенные между A и B (включая сами числа A и B), а также количество N этих чисел.
- Гражданин 1 марта открыл счет в банке, вложив 1000 руб. Через каждый месяц размер вклада увеличивается на 2% от имеющейся суммы. Определить прирост суммы вклада за 1,2,...,6 месяц.
- Даны два целых числа A и B (A < B). Найти сумму всех целых чисел от A до B включительно.
- Дано целое число N (> 0). Найти произведение 1.1 · 1.2 · 1.3 · ... (N сомножителей).
- Дано вещественное число A и целое число N (> 0). Используя один цикл, найти сумму 1+ A + A2 + A3 + ... + AN .
- Найти произведение первых k натуральных чисел, кратных трём.
- Вывести целые числа и их квадраты от 20 до 1.
- Однажды умный бедняк попросил у скупого богача приюта на две недели, причем сказал: ’За это я заплачу тебе в первый день 1 рубль, во второй – 2, в третий -3 и т.д., но ты будешь мне подавать милостыню: в первый день 1 копейку, во второй –2, в третий–4 и т.д. увеличивая милостыню каждый день вдвое. Богач с радостью согласился. Сколько барыша принесла эта сделка богачу?
- Найти сумму чисел от 100 до 200, кратных 3. Подсчитать среднее геометрическое этих чисел
- Дано вещественное число A и целое число N (> 0). Найти A в степени N: AN = A·A· ... ·A (числа A перемножаются N раз).
- Найти сумму чисел от 1 до 200, кратных 7. Подсчитать среднее арифметическое этих чисел.
5.2 ОПЕРАТОР ПОВТОРА WHILE
цикл
с предусловием (цикл ПОКА)
Оператор повтора
while состоит из заголовка и тела
цикла. Ключевые слова while и do обозначают
"до тех пор, пока" и "выполняй"
соответственно.
while <Условие выполнения цикла> do
{ Инструкции }
end;
В
операторе while проверка <Условие выполнения
цикла> производится в самом начале оператора
— если значение условия равно true (истина),
то выполняются инструкции цикла, находящиеся
между begin и end и снова вычисляется выражение
<Условие выполнения цикла>. Так продолжается
до тех пор, пока значение <Условие выполнения
цикла> не станет равно false (ложь).
Пример №1
Рассмотрим фрагмент программы суммирования чисел от 1 до 10.
…
s:= 0; i:= 1;
while i<=10 do { находим сумму чисел от 1 до 10 }
begin
s:=s+1;
i:=i+1; { изменение переменной управления циклом }
end;
…
Оператор
цикла WHILE организует выполнение
одного оператора неизвестное заранее
число раз. Выход из цикла осуществляется,
если некоторое логическое выражение
окажется ложным. Так как истинность логического
выражения проверяется в начале каждого
повтора, тело цикла
может не выполняться
ни разу.
Пример №2
Найти сумму цифр в записи данного натурального числа;
Program SUM;
Var a,b,s,k:Integer;
Begin
Readln(a);
s:=0;
While a<>0 do
begin
b:=b mod 10;
s:=s+b;
a:=trunc(a/10); { a := a div 10 }
end;
Writeln(s);
End.
Следует знать:
• число повторений операторов (инструкций) цикла while определяется в ходе работы программы и, как правило, заранее неизвестно;
• после слова while записывается условие продолжения выполнения инструкций цикла, в этом отличие цикла while от цикла repeat;
•
условие — это выражение
• для успешного завершения цикла while в его теле обязательно должны присутствовать инструкции, оказывающие влияние на условие выполнения инструкций цикла;
• цикл while — это цикл с предусловием, т. е. инструкции тела цикла вообще могут быть не выполнены, если проверяемое условие ложно с самого начала;
• исходя из последнего утверждения цикл while считают самым универсальным видом цикла;
• цикл while обычно применяется в тех же задачах, что и repeat (в зависимости от личного вкуса программиста). Удобнее всего использовать его в тех случаях, когда возможны ситуации невыполнения цикла;
•
в операторе цикла while точка с
запятой никогда не ставится после
зарезервированного слова do.Общие сведения:
5.3 ОПЕРАТОР ПОВТОРА REРЕАТ
цикл
с постусловием (цикл ДО)
Оператор цикла REPEAT организует выполнение цикла, состоящего из любого числа операторов, с неизвестным заранее числом повторений. Тело цикла выполняется хотя бы один раз. Выход из цикла осуществляется при истинности некоторого логического выражения. Оператор
rереаt
состоит из заголовка (rереаt),
тела и условия окончания (
repeat
{ Инструкции )
until <Условие выхода из цикла>;
Вначале
выполняется тело цикла — инструкции,
которые находятся между rереаt и
until, затем проверяется значение
условия выхода из цикла. В том
случае, если оно равно falsе (ложь), т.
е. не выполняется — инструкции цикла
повторяются еще раз. Так продолжается
до тех пор, пока условие не станет
true (истина).
Пример №2