ЛАБОРАТОРНАЯ РАБОТА 4
ПРОГРАММИРОВАНИЕ ЦИКЛОВ
С УСЛОВИЕМ
ЦЕЛЬ РАБОТЫ:
Овладеть навыками программирования на
языке Паскаль алгоритмов циклической
структуры с использованием операторов
цикла с предусловием и постусловием.
КРАТКИЕ СВЕДЕНИЯ ИЗ ТЕОРИИ
Для программирования циклов ПОКА в Паскале существуют оператор цикла с предусловием WHILE и оператор цикла с постусловием REPEAT.
ПРИМЕР 1: Алгоритм Евклида для подсчета НОД (наибольшего
общего делителя) двух натуральных чисел.
А Л Г О Р И Т М
алг Евклид
арг a,b: цел
рез z: цел
раб х,у: цел
нач
ввод a,b
x:=a; y:=b
нц пока х ¹ у
если х > y
то х:=х-у
иначе у:=у-х
все
кц
z:=x
вывод z
кон
П Р О Г Р А М М А
program Evklid;
var a,b,x,y,z: integer;
begin
writeln ('Введите числа');
readln (a,b);
x:=a; y:=b;
while (x< >y) do
if x > y
then x:=x-y
else y:=y-x;
z:=x;
writeln ('НОД=',z)
end.
ПРИМЕР 2: Вычислить сумму членов ряда
с точностью до члена ряда, меньшего Е.
А Л Г О Р И Т М
алг Сумма ряда
арг Е: вещ
рез S: вещ
раб Z: вещ, n: цел
нач
ввод Е
n:=1; Z:=1/6; S:=0;
нц пока I Z I >= E
S:=S+Z;
n:=n+1;
кц
вывод S
кон
П Р О Г Р А М М А
program Summa;
var n:integer;
S,Z,E: real;
begin
writeln ('ввести точность');
readln (E);
n:=1; Z:=1/6; S:=0;
While abs(z) >=E do
begin
S:=S+Z;
n:=n+1;
Z:=n/((n+1)*(n+2))
end;
writeln ('S=', S:10:2)
end.
Порядок работы
1. Разработать алгоритм и программу примера 1 (табл.7).
Выполнить программу, проанализировать результаты.
2. Разработать алгоритм и программу для вычисления суммы с
заданной точностью (табл.8). Получить результат.
Содержание отчета
Отчет по лабораторной работе должен содержать условия, алгоритмы, тексты программ, исходные данные и результаты по двум примерам.
ТАБЛИЦА 7
НОМЕР ВАРИАНТА |
УСЛОВИЕ |
|
1 |
Для выражения определить наименьшее k, при котором значение выражения становится больше заданного числа P.
|
|
2 |
Найти наибольшую степень двойки, не привы-шающую заданного числа n.
|
|
3 |
Вычислить кубический корень из числа m методом Ньтона по формуле:
Вычисления продолжать пока не станет меньше заданной точности e.
|
xn, e, m |
4 |
Два параллельных зеркала А и В обращены друг к другу. При падении луча на зеркало А он ослабляется на Т[%], а при его падении на зеркало В – на Р[%]. Определить, после скольких отражений луч, попеременно отражаясь то от зеркала А,то от зеркала В, ослабеет более чем в 50 раз. Первоначально он попадает на зеркало А.
|
S – сила света |
5 |
В водохранилище каждые сутки поступает Т [м3] воды, а расходуется R [м3] на орошение полей и испарение, к тому же ежесуточно теряется А (1-EXP(-V)) [м3] воды на просачивание в почву, где А – коэффициент , V – объем воды в водохранилище. Определить, за сколько дней объем воды в водохранилище уменьшится на Р [%] заданного первоначального объема V0.
|
|
6 |
На железнодорожном пути находится N разрозненных вагонов. К ним движется вагон с кинетической энергией W, он сцепляется с ближайшим вагоном, затем вместе с ним движется дальше, сцепляясь с очередным вагоном, и т.д. При каждой сцепке расходуется 20% имеющейся кинетической энергии, еще Р[ Дж ] затрачивается на то, чтобы стронуть с места неподвижный вагон и, если энергия не истрачена полностью, движение продолжается. Определить, сколько вагонов окажутся сцепленными.
|
|
7 |
Найти наибольшую степень 3, не привышающую заданного числа m.
|
|
8 |
Вычислить значения функции для k = 1,2 ... . Вычисления производить до тех пор, пока у >= z. Вводятся x,y,z.
|
|
9 |
Найти число в последовательности Фибоначчи большее (равное) заданному числу М и его порядковый номер. Члены ряда Фибоначчи вычисляются по формуле: F(1) = F(2) = 1 F(k) = F(k-1) + F(k-2), k > 2
|
|
10 |
Найти наименьшее общее кратное двух чисел. Числа вводятся.
|
|
11 |
Извлечь корень степени m из числа х, воспользовавшись итерационной формулой:
Вычисления продолжать пока не станет меньше заданной точности Е. Вводятся m, x, E.
|
|
12 |
Для выражения определить наименьшее k, при котором значение выражения становится больше заданного числа m.
|
Вычислить сумму членов ряда S с точностью E:
ТАБЛИЦА 8
НОМЕР ВАРИАНТА |
УСЛОВИЕ |
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|