Лабораторная работа 2
Простые циклы с заданным числом повторений
Цель работы: Формирование первичных умений в разработке простых циклических программ с заданным числом повторений.
Что нужно знать для выполнения работы
1. Структура цикла, назначение и порядок следования его отдельных частей.
2. Структуры: «цикл-пока» и «цикл-повторить».
3. Операторы цикла «while … do», «repeat … until», «for … do».
Примеры выполнения задания лабораторной работы
Пример 1
Составьте программу, находящую сумму значений функции sin(x) для х, изменяющегося от 0 до 10 с шагом /3.
Схема алгоритма
S:=0
x:=0
Нет
Да
S:=S+sin(x)
x:=x+/3
Рис. 2.1 Схема алгоритма программы примера 1 (вариант 1 «цикл-пока»)
S:=0
x:=0
S:=S+sin(x)
x:=x+/3
Да
Нет
Рис. 2.2 Схема алгоритма программы примера 1 (вариант 2 «цикл-повторить»)
Приведенные схемы удобно изображать с использованием символов «начало цикла» и «конец цикла».
S:=0
x:=0
S:=S+sin(x)
x:=x+/3
Рис. 2.3 Схема алгоритма программы примера 1 (вариант 3 «цикл-пока»)
S:=0
x:=0
S:=S+sin(x)
x:=x+/3
Рис. 2.4 Схема алгоритма программы примера 1 (вариант 4 «цикл-повторить»)
Текст программы
program lr2_1_1;
{Нахождение суммы значений функции sin(x) для
х, изменяющегося от 0 до 5*пи}
uses
crt;
const
p:real=pi;
var
x,s:real;
begin
clrscr;
s:=0;
x:=0;
while x<=5*p do
begin
s:=s+sin(x);
x:=x+p/3;
end;
writeln(' x=',x:4:2,' s=',s:6:2);
readkey;
end.
program lr2_1_2;
{Нахождение суммы значений функции sin(x) для
х, изменяющегося от 0 до 5*пи.
Использование цикла-повторить}
uses
crt;
const
p:real=pi;
var
x,s:real;
begin
clrscr;
s:=0;
x:=0;
repeat
s:=s+sin(x);
x:=x+p/3;
until x>5*p;
writeln(' x=',x:4:2,' s=',s:6:2);
readkey;
end.
Пример 2
Найти n-й член ряда Фибоначчи. Члены ряда Фибоначчи можно вычислить по формуле a1 = a2 = 1, ai = ai-1 + ai-2, для i > 2.
Приведем вариант решения данной задачи с использованием трех переменных для вычисления членов ряда.
a:=1
b:=1
c:=a+b
a:=b
b:=c
Рис. 2.5 Схема алгоритма программы примера 2
Текст программы
program lr2_2_1;
{Найти n-ый член ряда Фибоначчи}
uses
crt;
var
i,n,a,b,c :word;
begin
clrscr;
write('n= ');
readln(n);
a:=1;b:=1;
for i:=3 to n do
begin
c:=a+b;
a:=b;
b:=c;
end;
writeln('F(n)= ',c:8);
readkey;
end.
Задания
Выделить повторяющиеся действия (цикл). Выбрать управляющую переменную цикла. Составить список переменных программы. Составить схему и программу для решения задачи. В программе предусмотреть вывод заголовка. Выполнить программу вручную, заполняя таблицу выполнения. Проверить работу программы на ЭВМ.
1. Вычислить S= 2n , где nN.
m
2. Вычислить S= (-1)nn2, где mN.
n=1
3. Напечатать таблицу стоимости порций сыра весом 50, 100, 150, ..., 1000 г (цена 1кг 280р.)
4. Вычислить приближенно площадь фигуры, ограниченной функцией у=x2 и прямой у=25, разбивая интервал изменения x на 100 частей и суммируя площади прямоугольников с основанием, равным 0,10 интервала изменения x, и высотой, определяемой значением функции в середине основания (высота прямоугольника в точке x равна 25-x2).
5. Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за N дней.
6. Определить суммарный объем (л) 12 вложенных друг в друга шаров со стенками 5 мм. Внутренний диаметр внутреннего шара равен 10 см. Считать, что шары вкладываются друг в друга без зазоров.
7. Вычислить сумму 1 + 1/2 + 1/3 + … + 1/n.
8. Пусть n-натуральное число и пусть n!! означает 1*3*...*n для нечетного n и 2*4*...*n для четного n. Для заданного натурального n вычислить n!!
9. Вычислить сумму
n
1/ i!
i=1
10. Найти n-ый член ряда Фибоначчи, элементы которого вычисляются по формулам: a1=a2=1; ai=ai-1 + ai-2, (i>2).
Примечание. Для нахождения членов ряда использовать только две переменные а и b.
11. Найти сумму n-членов ряда Фибоначчи (см. 10).
12.Для любых вещественных положительных a и h находит в последовательности 1, 1 + h, 1 + 2h,… первое значение, большее а.
13. Проверить формулу 1 + 2 + 3 +…+ n = n(n + 1)/2.
14. Проверить формулу 12 + 22 + 32 +…+ n2 = n(n + 1)(2n + 1)/6.
15. Вычислить сумму
n
1/ 2i
i=1
16. Вычислить число сочетаний из n по m Сnm = n! /(m!(n-m)!).
17. Вычислить число размещений из n по m Аnm = n(n-1)…(n-m+1).
18. Найти знакопеременную сумму цифр данного натурального числа n.
19. Вычислить сумму
n
1/ i3
i=1
20. Вычислить сумму
n
(-1)n 2i
i=1
21. Вычислить сумму
n
(-1)n / (2i)
i=1
22. Вычислить произведение Р = 1 . 3 . 5 . 7 . … . (2n+1) для заданного n.
23. Вычислить произведение Р = 2 . 4 . 6 . 8 . … . 2n для заданного n.
24. Вычислить сумму S = 1 . 3 + 3 . 5 + 5 . 7 + … + (2n-1) (2n+1) для заданного n.
25. Вычислить произведение S=(1 + 3) . (5 + 7) . … . ((2n-1) + (2n+1)) для заданного n.
26. Вывести на экран элементы последовательности an =an-1 + nd для n, изменяющегося от 1 до k, a0=0; k и d заданные натуральные числа.
27. Вычислить сумму
А =1+(1+2)+(2+3)+(3+4)+…+((n-1)+n)
28. Вычислить сумму первых n натуральных чисел.
29. Составить таблицу умножения для заданного числа N, которая содержит результаты умножения 1*N, 2*N, ..., N*N.
30. Напечатать таблицу значений функции y=x3 при изменении x в интервале от A до B с шагом H.
Задания второго уровня
1. Вычислить значение интеграла по формуле трапеций с заданным числом разбиений.
2. Вычислить значение интеграла по формуле Симпсона с заданным числом разбиений.
3. Решить задачу Коши для обыкновенного дифференциального уравнения на отрезке [0; 1] при условии у(0) = 0 методом Эйлера, разбивая отрезок интегрирования на n частей.
4. Решить задачу Коши для обыкновенного дифференциального уравнения на отрезке [0; 1] при условии у(0) = 0 усовершенствованным методом Эйлера, разбивая отрезок интегрирования на n частей.
5. Найти n-ый член ряда Фибоначчи, элементы которого вычисляются по формулам: a1=a2=1; ai=ai-1 + ai-2, (i>2).
Примечание. Для нахождения членов ряда не использовать операторов цикла, т.е. программа должна быть линейной.