Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Составим программу для печати произведения двух чисел, которое может превы-шать максимально допустимое целое число.






 

Решение

Процедура multiplication умножает число a на каждую цифру числа b, начиная с цифры единиц. Последняя цифра полученного произведения, сложенная с последней цифрой имеющегося в памяти частичного произведения, печатается, а все прочие цифры запоминаются - передаются как параметры при рекурсивном обращении к процедуре multiplication. В самом конце производится умножение на первую (левую) цифру числа b. На этом умножение заканчивается. Тогда печатается начало результата - накопившееся частичное произведение без последней цифры (s div 10), а после него при возвращении из рекурсии - все остальные цифры произведения (s mod 10) в обратном порядке по сравнению с тем, как они вычислялись при входе в рекурсию.

 

Program Problem4; { Большое произведение }

uses WinCrt;

var

x, y: longint;

{----------------------------------------------------------------------------------------}

Procedure multiplication(a, b, s: longint);

begin

if b < > 0 then

begin

s: = s+a*(b mod 10);

multiplication(a, b div 10, s div 10);

write(s mod 10: 1)

end

else if s < > 0 then write(s)

end;

{----------------------------------------------------------------------------------------}

begin

write('Введите первый множитель '); readln(x);

write('Введите второй множитель '); readln(y);

write(x, '*', y: 1, ' = ');

if ((x < 0) and (y > 0)) or ((x > 0) and (y < 0)) then write('-');

multiplication(abs(x), abs(y), 0);

writeln

end.

 

Ход работы

 

Задача 140. Ежедневно Незнайка учит половину от суммы выученных за два предыдущих дня иностранных слов и еще два слова. Знайка считает, что силы Незнайки иссякнут, когда нужно будет выучить 50 слов в день. Написать программу, определяющую, через сколько дней иссякнут силы у Незнайки, если в первые два дня он выучил по одному слову.

1._______________________________________________________________________

2._______________________________________________________________________

3._______________________________________________________________________

4._______________________________________________________________________

5._______________________________________________________________________

 

Задача 141. Татьяна Ларина, читая очередной французский роман, подсчитала сумму номеров прочитанных страниц. Обозначим эту сумму Q. Написать программу, определяющую номер последней прочитанной страницы.

1._______________________________________________________________________

2._______________________________________________________________________

3._______________________________________________________________________

4._______________________________________________________________________

5._______________________________________________________________________

 

Задача 142. Царевна-лягушка съедает ежедневно на 20% комаров больше, чем в предыдущий день, и еще два комара. Написать программу, определяющую через сколько дней количество съеденных комаров превысит 100, если в первый день было съедено 12 комаров.

1._______________________________________________________________________

2._______________________________________________________________________

3._______________________________________________________________________

4._______________________________________________________________________

5._______________________________________________________________________

 

Задача 143. На каждом следующем дне рождения Винни Пух съедает столько же пищи, что и на двух предыдущих. На двух первых днях рождения у Пятачка и Кролика он съел по 100 г пищи. Написать программу, определяющую, сколько килограммов пищи съест Винни Пух на пятнадцатом дне рождения.

1._______________________________________________________________________

2._______________________________________________________________________

3._______________________________________________________________________

4._______________________________________________________________________

5._______________________________________________________________________

 

Задача 144. Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько клеток будет через 3, 6, 9, 12,..., 24 часа.

1._______________________________________________________________________

2._______________________________________________________________________

3._______________________________________________________________________

4._______________________________________________________________________

5._______________________________________________________________________

 

Задача 145. Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% от нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней?

1._______________________________________________________________________

2._______________________________________________________________________

3._______________________________________________________________________

4._______________________________________________________________________

5._______________________________________________________________________







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.