Другие языки программирования и технологии
Программа в 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.
Реагировать надо на две последние цифры - число единиц и число десятков. Сделать можно так (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.
если число = 1 тогда бла-бла-бла
иначе если число больше 1 и меньше 5 тогда бла-бла-бла
иначе бла-бла-бла
иначе если число больше 1 и меньше 5 тогда бла-бла-бла
иначе бла-бла-бла
Чтобы программа реагировала не на все число, а на его окончание, можно группировать по окончанию строки, тогда надо вводить число в строковую переменную и обрабатывать последний символ функцией, например, if s[length(s)]='1' then s:=s+' вопрос'; writeln(s).
используй операцию mod 10 и смотри остаток от деления и в зависимости от него
через case
1 - вопрос
2,3,4 -вопроса
5,6,7,8,9,0 - вопросов
через case
1 - вопрос
2,3,4 -вопроса
5,6,7,8,9,0 - вопросов
мне кажется надо сгруппировать например:
1 - окончания нет
2-4 - окончание о
5-...-окончание ов
1 - окончания нет
2-4 - окончание о
5-...-окончание ов
Похожие вопросы
- Проблема с программой в Pascal ABC,Встречено ';',а ожидалось ':'. Если менять, то вылетает ещё ошибка с if
- где ошибка в программе turbo pascal (фото внутри)
- Напишите программу на Pascal. В цистерне N литров молока.
- Программа в pascal abc
- Подскажите пожалуйста, какая ошибка в программе на Pascal ABC.NET?
- При введении программы на Pascal ABC выдается ошибка "нельзя вводить данные типа "массив", массивы вводятся поэлементно
- Помогите составить программу на pascal
- Помогите ламеру написать программу на Pascal.
- Люди помогите написать программы для Pascal очень срочно и очень нужно
- помогите найти ошибка в программе на PASCAL тема: "файлы".