Разработка, отладка и испытание простых циклических алгоритмов и программ с заданным числом повторений
Лабораторная работа №3
Цель работы: научиться разрабатывать простые циклические алгоритмы и программы с заданным числом повторений, выполнять их отладку и испытание.
Задания
- Откройте файл FACT.PAS. Протестируйте содержащуюся в нем программу и проследите при этом за изменением переменных i и P. Выполните программу для n=20. Объясните полученный результат. Укажите диапазон значений n, для которых n! программа вычисляет правильно. Измените программу так, чтобы ввод значения n повторялся до тех пор, пока не будет введено значение из указанного диапазона. Можно ли для этого использовать оператор цикла с постусловием? Оператор цикла с параметром?
- Измените программу FACT, полученную при выполнении задания 4, организовав вычисление произведения в обратном порядке, то есть .
- Составьте программу вычисления суммы первых 15 членов ряда 1+2+3+…+15.
- Найти сумму натуральных чисел от 2 до 56, кратных 5.
- Найти произведение натуральных нечетных чисел от n1 до n2.
- В 1626 г. индейцы продали остров Манхэттен за 20 долларов. Если бы эти деньги были помещены в банк на текущий счет, и ежегодный прирост составлял бы 4%, какова была бы величина капитала в 2006 г.?
- Найти сумму положительных нечетных чисел, меньших 100.
- Дано натуральное число n (n 1999). Определить, является ли оно палиндромом («перевертышем»), с учетом четырех цифр. Например, палиндромами являются числа: 2222, 6116, 0440.
Подсказка. Так как число четырехзначное, то переменная оператора For изменяется от 1 до 4. В переменной с именем m хранится «остаток» числа, в первоначальный момент времени он равен введенному числу. В переменной с именем r формируем значение числа – «перевертыша». Основными операциями являются: r:=10*r + m mod 10 (добавление очередной цифры к числу «перевертышу») и m:=m div 10 (изменение проверяемого числа). Изменения переменных i, m и r см. в таблице.
i | m | r |
– | ||
0*10+3994 mod 10=0+4=4 | ||
4*10+399 mod 10=40+9=49 | ||
49*10+39 mod 10 =490+9=499 | ||
499*10+3 mod 10=4990+3=4993 |
- Измените программу, составленную при выполнении предыдущего задания, так, чтобы можно было определять, является ли число палиндромом, независимо от количества цифр в числе.
- Вывести на экран все трехзначные числа, сумма цифр которых равна N.
Пытаться перебирать все трехзначные числа от 100 до 999, затем каким-то образом делением и вычитанием выделять отдельные цифры, искать их сумму, сравнивать с N достаточно сложно. Исходя из того, что трехзначное число состоит из 3 цифр, причем первая изменяется от 1 до 9, а вторая и третья – от 0 до 9.
program primer10;
var i,j,k,n:integer;
begin
write('Введите N=');
readln(n);
for i:=1 to 9 do
for j:=0 to 9 do
for k:=0 to 9 do
if i+j+k=n then writeln(i,j,k);
end.
Оператор writeln(i,j,k) выводит на экран три цифры без пробела, поэтому они на экране выглядят как одно число. Хотя можно было вывести, учитывая, что i-сотни, j-десятки, k-единицы, и так: writeln(i*100+j*10+k).
Задание:
А) Сколько существует «счастливых» четырехзначных билетов? Счастливым считается билет, у которого сумма первых двух цифр равна сумме двух последних.
Б) Сколько раз в написании всех трехзначных чисел встречается цифра N?