Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
информатика_лабораторные.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Циклы с условием.

Если заранее неизвестно число повторений цикла, то используются циклы с условием. В паскале имеется два типа таких циклов. Циклы While называют циклами с пред-условием. Они имеют вид

WHILE <логич.выражение> DO <оператор>;

Цикл While организует выполнение одного (возможно составного) оператора пока истинно логическое выражение, стоящее в заголовке цикла. Поскольку значение логического выражения проверяется в начале каждой итерации, то тело цикла может не выполниться ни разу. Таким образом, в этом цикле логическое выражение - это условие продолжения работы в цикле.

Другой вариант циклов с условием - это циклы Repeat. Их называют циклами с пост-условием. Они имеют вид

REPEAT

<оператор 1> ... <оператор N>

UNTIL <логич.выражение>

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

При создании циклических алгоритмов Турбо Паскаль позволяет использовать процедуры Continue и Break. Процедура Continue досрочно завершает очередной шаг цикла, передает управление на заголовок. Процедура Break реализует немедленный выход из цикла.

РЕКОМЕНДАЦИИ: Для того, чтобы избежать зацикливания программы необходимо обеспечить изменение на каждом шаге цикла значения хотя бы одной переменной, входящей в условие цикла. После выхода из цикла со сложным условием (с использованием операций and, or, xor) как правило необходима проверка того, по какому условию цикл завершен.

ПРИМЕР: Пары неотрицательных вещественных чисел вводятся с клавиатуры. Посчитать произведение для каждой пары и сумму всех чисел.

program cycle_while;

var x,y,sum:real; otv:char;

begin

sum:=0;

otv='Д';

while (otv='Д') or (otv='д') do

begin

write('Введите числа x,y > 0 ');

readln(x,y);

writeln('Их произведение = ',x*y:8:3);

sum:=sum+x+y;

write('Завершить программу (Д/Н)? ');

readln(otv);

end;

writeln('Общая сумма = ',sum:8:3);

readln

end.

ПРИМЕР: В той же задаче можно использовать другой цикл с условием:

program cycle_repeat;

var x,y,sum:real; otv:char;

begin

sum:=0;

repeat

write('Введите числа x,y > 0 ');

readln(x,y);

writeln('Их произведение = ',x*y:8:3);

sum:=sum+x+y;

write('Завершить программу (Д/Н)? ');

readln(otv);

until (otv='Д') or (otv='д');

writeln('Общая сумма = ',sum:8:3);

readln

end.

Задания к лабораторной работе №14-15

1. Линейное программирование.

  1. На депозит положена сумма в K тенге под p% годовых. Через сколько лет (n) будет накоплена сумма S(n)? Указание.

  2. Вычислить площадь треугольника, если известны три его стороны.

Указание. , где p— полупериметр.

  1. Заданы моменты начала и конца некоторого промежутка времени в часах, минутах и секундах (в пределах одних суток). Найти продолжительность этого промежутка в тех же единицах измерения.

  2. Автомобиль проехал S1 км со скоростью v1 км/ч, S2 км со скоростью v2 км/ч, S3 км со скоростью v3 км/ч. Найти среднюю скорость на всем пути. Указание. , где S —полный путь, t — время, затраченное на весь путь.

  3. Пушка стреляет под углом α° к линии горизонта. Начальная скорость снаряда — v0 м/с. Найти дальность и время полета снаряда.

Указание..

  1. Вычислить длину окружности, площадь круга и объем шара заданного радиуса.

  2. Дано: V — объем куба. Найдите длину ребра и площадь грани.

  3. Найти корень уравнения arctg (1 + ln x) =  .

  4. Животновод в начале каждой зимы повышает отпускную цену на молоко на р%, а каждым летом — снижает на столько же процентов. На сколько изменится цена на молоко через n лет?

  5. Длина отрезка задана в дюймах (1 дюйм = 2,54 см). Перевести значение длины в метрическую меру, то есть выразить ее в метрах, сантиметрах и миллиметрах. Так, например, 21 дюйм = 0 м 53 см 3,4 мм.