здравствуйте!помогите пожалуйста!мне нужно объяснить преподу что значат каждые строчки этой программы(что значат и зачем в этой программе)!особенно вот эти :
m100:=k mod 100;
d10:=m100 div 10;
m10:=m100 mod 10;
writeln и readln объяснять не надо
заранее спасибо!
Хорошо.
Итак, суть задания: выяснить, какое окончание слова с корнем "рубл" нужно применить в зависимости от суммы денег.
Прежде всего, заметим, что количество тысяч и сотен нас не интересует: с точки зрения грамматики 45321, 721 или просто 21 - одно и то же. Все три суммы звучат, как "та-та-та двадцать один рубль". А потому будем иметь дело только с остатком от деления количества денег на 100. В Паскале это записывается, как
m100:=k mod 100;
В приведенном примере m100=21.
Далее анализируем этот остаток.
Для дальнейшего решения задачи нам понадобятся две величины: результат целочисленного деления числа m100 на 10 (обозначим его d10) и остаток от деления числа m100 на 10 (его обозначим m10). Найдем их:
d10:= m100 div 10;
m10:= m100 mod 10;
Если m100 составляет 10, 11, 12, 13, 14, 15, 16, 17, 18 или 19, то следует писать "рублей". Приведенные числа объединяет то, что результат целочисленного деления m100 на 10 (т.е. d10) равен 1. Так и запишем:
Case d10 of
1: writeln(' рублей');
Если же d10 отличен от 1, то тут опять возникает ветвление. Сделаем его по остаткам m10. Эти остатки составляют:
1 для чисел 1, 21, 31, 41, 51, 61, 71, 81, 91. В этом случае следует писать "рубль".
2, 3, 4 для чисел 2, 3, 4, 22, 23, 24, 32, 33, 34, 42, 43, 44, 52, 53, 54, 62, 63, 64, 72, 73, 44, 82, 83, 84, 92, 93, 94. Во всех этих случаях следует писать "рубля".
Во всех прочих случаях, т.е. когда остатки составляют 0, 5, 6, 7, 8 и 9, следует писать "рублей".
Программа реализует описанный алгоритм.