Написать программу которая после введенного с клавиатуры числа в диапазоне от 1 до 999 обозначающего

Условие задачи : Написать программу, которая после введённого с клавиатуры числа (от 1 до 999), обозначающего денежную единицу, дописывает слово «рубль» в правильной форме. Например, 12 рублей, 21 рубль и т.д.

Сложность : легка .

Довольно интересная задача на мой взгляд, хоть и легкая.

Для начала стоит подумать как вообще правильно формируется слово рубль в зависимости от цифры.

Давайте сначала : 1 рубль , 2 — 4 рубля, 5 — 20 рублей , 21 рубль, 22 — 24 рубля, 25 — 30 рублей.

Думаю что вы увидели как это всё меняется. Теперь давайте напишем эту программу.

Первым делом создадим каркас и объявим переменные под числа.

uses
crt ;
var

number, ost :
integer
;
begin
end
.

Дальше давайте попросим пользователя ввести число от 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
(number,
‘ рублей’
)
else

if
ost =
1
then

writeln
(number,
‘ рубль’
)

else
writeln
(number,
‘ рубля’
);

Может есть и какой-то другой способ записи этого условия но я сделал такой. Что мы тут делаем ?

Для начала мы проверяем числа от 5 до 20 ( именно сами числа ) так как только у этого промежутка будут одинаковые слова т.е. слово «рублей», а дальше нам уже будут встречаться такие слова только у тех цифр которые кончаются на 5 .. 9 вот их мы в первое условие и добавляем.

Дальше если первое условие у нас не прошло , т.е. значит что у нас число не от 5 до 20 и не кончается на цифру от 5 .. 9 , мы проверяем кончается ли оно на 1 , если да то выводим слово рубль, если нет то добавляем уже слово «рубля».

Вот и всё . Весь код программы :

uses
crt ;
var

ost,number :
integer
;
begin
clrscr;

write
(
‘Введите число от 1 до 999 : ‘
); readln(number);
if
(number <
1
)
or
(number >
999
)
then
Halt ;
ost := number
mod
10
;
if
(number >=
5
)
and
(number 20
)
or
(ost >=
5
)
and
(ost 9
)
then

writeln
(number,
‘ рублей’
)
else

if
ost =
1
then

writeln
(number,
‘ рубль’
)

else
writeln
(number,
‘ рубля’
);

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

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru