Другие языки программирования и технологии

Программа в Pascal

Хочу написать программу, которая при вводе определенного числа например 10 выдавала такое: 10 вопросов. А если я например введу число 2 то она выдавала такое: 2 вопроса. И при вводе числа которое оканчивается на 1 она выдавала такое: 1 вопрос. то есть программа которая правильно ставит окончания. Подскажите идею как такое можно организовать.
Доброго времени суток.

Реагировать надо на две последние цифры - число единиц и число десятков. Сделать можно так (InN - входное число) .

N01 := InN mod 10; {число единиц}
N10 := (InN mod 100) div 10; {число десятков}

А теперь можно сформировать индекс для расстановки окончаний

if (N01 = 0) or (N01 > 4) or (N10 = 1) then idx := 3 else
if (N01 > 1) and (N01 < 5) then idx := 2 else idx := 1;

И, наконец, можно приступить к решению поставленной задачи. В массив из 3 строк записываем значение для 1, для 2 и для 5. Вот так.

const
Cent : array[1..3] of String = ('копейка','копейки','копеек')

Можете заменить копейки на любое значение. Пользоваться так

Endings := Cent[idx];

Удачи!

PS Десятки анализировать нужно для того, чтобы правильно обрабатывались числа от 10 до 19.
АБ
Антон Безверхний
59 613
Лучший ответ
если число = 1 тогда бла-бла-бла
иначе если число больше 1 и меньше 5 тогда бла-бла-бла
иначе бла-бла-бла
Чтобы программа реагировала не на все число, а на его окончание, можно группировать по окончанию строки, тогда надо вводить число в строковую переменную и обрабатывать последний символ функцией, например, if s[length(s)]='1' then s:=s+' вопрос'; writeln(s).
Михаил Эм
Михаил Эм
1 153
используй операцию mod 10 и смотри остаток от деления и в зависимости от него
через case

1 - вопрос
2,3,4 -вопроса
5,6,7,8,9,0 - вопросов
Берик Калиев
Берик Калиев
1 152
мне кажется надо сгруппировать например:
1 - окончания нет
2-4 - окончание о
5-...-окончание ов