Условие задачи : Написать программу, которая после введённого с клавиатуры числа (от 1 до 999), обозначающего денежную единицу, дописывает слово «рубль» в правильной форме. Например, 12 рублей, 21 рубль и т.д.
Сложность : легка .
Довольно интересная задача на мой взгляд, хоть и легкая.
Для начала стоит подумать как вообще правильно формируется слово рубль в зависимости от цифры.
Давайте сначала : 1 рубль , 2 — 4 рубля, 5 — 20 рублей , 21 рубль, 22 — 24 рубля, 25 — 30 рублей.
Думаю что вы увидели как это всё меняется. Теперь давайте напишем эту программу.
Первым делом создадим каркас и объявим переменные под числа.
uses crt ; var number, ost : |
Дальше давайте попросим пользователя ввести число от 1 до 999 :
write ( ‘Введите число от 1 до 999 : ‘ ); readln(number); if (number < 1 ) or (number > 999 ) then Halt ; |
Что делать когда Клавиатура без русской раскладки на MacBook? Есть решение — гравировка в U-store
Тут же я прописал условие на тот случай если пользователь введет число больше чем 999 или меньше чем 1.
Halt у нас завершает программу досрочно.
И сразу же давайте нашей переменной ost присвоим остаток от деления, т.к. именно по остатку мы будем определять какое слово добавлять, но есть и исключение дальше вы увидите какое :
ost := number mod 10 ; |
И теперь пишем основное условие :
if (number >= 5 ) and (number 20 ) or (ost >= 5 ) and (ost 9 ) then writeln if writeln else |
Может есть и какой-то другой способ записи этого условия но я сделал такой. Что мы тут делаем ?
Для начала мы проверяем числа от 5 до 20 ( именно сами числа ) так как только у этого промежутка будут одинаковые слова т.е. слово «рублей», а дальше нам уже будут встречаться такие слова только у тех цифр которые кончаются на 5 .. 9 вот их мы в первое условие и добавляем.
Дальше если первое условие у нас не прошло , т.е. значит что у нас число не от 5 до 20 и не кончается на цифру от 5 .. 9 , мы проверяем кончается ли оно на 1 , если да то выводим слово рубль, если нет то добавляем уже слово «рубля».
Вот и всё . Весь код программы :
uses crt ; var ost,number : write writeln if writeln else readln; end |
Как включить подсветку на любой клавиатуре
Предыдущая
Источник: sprint-olympic.ru
После числа дописать слово «рубль» в правильной форме — Pascal ABC
написать программу, которая после введенного с клавиатуры числа( в диапазоне от 1 до 999) обозначающего денежную единицу, дописывает слово «рубль» в правильной форме. Например n рублей , 21 рубль и тд. если пользователь укажет недопустимое число, программа должна вывести сообщение » ошибка ввода данных. Введите число от 1 до 999″ и написать это через оператор case
Код к задаче: «После числа дописать слово «рубль» в правильной форме»
Листинг программы
var n,k: integer; begin repeat Writeln(‘Введите число от 1 до 999: ‘); Readln(n); until (n>=1) and (n<=999); write(n,’ рубл’); if (n>10)and(n<15) then writeln(‘ей.’)else begin k:=n mod 10; case k of 1: writeln(‘ь.’); 2..4: writeln(‘я.’); 0,5..9: writeln(‘ей.’); end; end; readln; end.
Источник: studassistent.ru
Решения задач на Си в Линyкс
Напишите программу, которая после введенного с клавиатуры числа (в диапазоне от 1 до 999), обозначающего денежную единицу, дописывает слово «рубль» в правильной форме. Например, 12 рублей, 21 рубль и т.д.
/*
Программа дописывает правильную форму слова «рубль»
для введенного числа от 1 до 999.
*/
#include «locale.h»
#include
#include
#include
int main()
<
int dengi, ostatok, i;
char *slovo[15] = ;
char *loc;
loc = setlocale(LC_CTYPE,»ru_RU.UTF-8″);
initscr();
printw(«Введите число от 1 до 999: «);
scanw(«%i»,
if(dengi < 1 || dengi >999)
<
printw(«Число должно быть от 1 до 999.»);
>
else
<
if(dengi >= 100)
ostatok = dengi % 100;
else ostatok = dengi;
Источник: cirishen.blogspot.com