• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Программирование разветвлений с помощью оператора case

  • Автор темы Автор темы SKRANT
  • Дата начала Дата начала

SKRANT

Ученик
Регистрация
1 Мар 2011
Сообщения
1
Реакции
0
Баллы
0
Программирование разветвлений с помощью оператора case

В паскале задание:составьте программу с использлванием оператора case с выводом исходных данных и результатов.(помогите пожалуйста!!!):
Для произвольного целого числа k напишите фразу "у меня в кармане k рублей ", согласовав окончание слова "рубль" с числом k.:tehnari_ru_117:
 
В паскале задание:составьте программу с использлванием оператора case с выводом исходных данных и результатов.(помогите пожалуйста!!!):
Для произвольного целого числа k напишите фразу "у меня в кармане k рублей ", согласовав окончание слова "рубль" с числом k.:tehnari_ru_117:
И что дальше? С помощью оператора Case расписать, в зависимости от k, все возможности, даваемые означенной суммой - от покупки газеты то приобретения яхты и особняка на Лазурном берегу с обслугой из голливудских кинозвезд? Так?
 
Тут скорее всего речь идёт о правильном окончании слова рубль в зависимости от значения k :)

Алгоритм:
1) вводите k
2) находите остаток от деления k на 100, при необходимости - примените нахождение остатка от деления на 10 и анализируйте его через case, выводя сообщение :))
Не забудьте учесть, что есть несколько вариантов окончания:
0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, ... - рублей
1, 21, 31 ... - рубль
2, 3, 4, 22, 23, 24 ... - рубля
:))
 
А, дошло наконец! Ну тогда - так:
Код:
VAR
 k,m100,m10,d10:Word;

BEGIN
 Write('k= ');
 ReadLn(k);
 m100:=k mod 100;
 d10:=m100 div 10;
 m10:=m100 mod 10;
 WriteLn;
 Write('У меня в кармане ',k);
 Case d10 of
  1: writeln(' рублей');
  else Case m10 of
        1: writeln(' рубль');
        2,3,4: writeln(' рубля');
        else writeln(' рублей');
       end;
 end;
 ReadLn;
END.
 
здравствуйте!помогите пожалуйста!мне нужно объяснить преподу что значат каждые строчки этой программы(что значат и зачем в этой программе)!особенно вот эти :
m100:=k mod 100;
d10:=m100 div 10;
m10:=m100 mod 10;
writeln и readln объяснять не надо
заранее спасибо!
 
здравствуйте!помогите пожалуйста!мне нужно объяснить преподу что значат каждые строчки этой программы(что значат и зачем в этой программе)!особенно вот эти :
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, следует писать "рублей".
Программа реализует описанный алгоритм.
 
спасибо тебе огромное!))))))выручил!
 
Назад
Сверху