Разработка, отладка и испытание простых циклических алгоритмов и программ с заданным числом повторений

Лабораторная работа №3

Цель работы: научиться разрабатывать простые циклические алгоритмы и программы с заданным числом повторений, выполнять их отладку и испытание.

Задания

  1. Откройте файл FACT.PAS. Протестируйте содержащуюся в нем программу и проследите при этом за изменением переменных i и P. Выполните программу для n=20. Объясните полученный результат. Укажите диапазон значений n, для которых n! программа вычисляет правильно. Измените программу так, чтобы ввод значения n повторялся до тех пор, пока не будет введено значение из указанного диапазона. Можно ли для этого использовать оператор цикла с постусловием? Оператор цикла с параметром?
  2. Измените программу FACT, полученную при выполнении задания 4, организовав вычисление произведения в обратном порядке, то есть .
  3. Составьте программу вычисления суммы первых 15 членов ряда 1+2+3+…+15.
  4. Найти сумму натуральных чисел от 2 до 56, кратных 5.
  5. Найти произведение натуральных нечетных чисел от n1 до n2.
  6. В 1626 г. индейцы продали остров Манхэттен за 20 долларов. Если бы эти деньги были помещены в банк на текущий счет, и ежегодный прирост составлял бы 4%, какова была бы величина капитала в 2006 г.?
  7. Найти сумму положительных нечетных чисел, меньших 100.
  8. Дано натуральное число 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
  1. Измените программу, составленную при выполнении предыдущего задания, так, чтобы можно было определять, является ли число палиндромом, независимо от количества цифр в числе.
  2. Вывести на экран все трехзначные числа, сумма цифр которых равна 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?