Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 26.09.2012, 18:59   #1
ArtemK
 
Регистрация: 23.09.2012
Сообщений: 6
Радость Нужно составить задачу на Паскаль. Я сделал, но не до конца. Нужен Ваш совет!

Вам покажется, что задача легкая, но Вы не смейтесь, т.к. я только учусь!
Задача: Составьте программу, которая по введенному вами К - числу грибов печатает фразу "Мы нашли в лесу К грибов!", причем согласовывает окончание слова "гриб" с числом К. Количество грибов может быть любым целым числом: 1, 3, 34, 127 и т.д. Окончание фразы определяется значением последней цифры.
___________________________________ ________________________________
Это вся задача. Собственно, я ее составил, при введении, например, числа 5, программа пишет "Мы нашли 5 грибов!", так же и для 1. Но я не могу составить условия, например, для числа 22. Например, ввели число 22, и он вывел "Мы нашли 22 гриба!". Тут может и такая закономерность, что при введении числа, которое делится на 2, вывести ГРИБОВ, а для остальных - ГРИБА. Но работает, если перебирать некоторые числа, не на всех числах. Пожалуйста, подскажите.
Изображения
Тип файла: jpg 1.jpg (294.6 Кб, 153 просмотров)
ArtemK вне форума
Старый 26.09.2012, 19:20   #2
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Код:
var
  k,k2:integer;
begin
  readln(k);
  k2:=k;
  while k2>9 do
    k2:=(k2 mod 10);
  if (k2 in [2,3,4]) then
    writeln('мы нашли ',k,' гриба');
  if (k2 in [5,6,7,8,9,0]) then
    writeln('мы нашли ',k,' грибов');
  if k2=1 then
    writeln('мы нашли ',k,' гриб');
  readln;
end.
Кстати, проверять по последней цифре не совсем верно, так как возможны варинты вроде "мы нашли 13 гриба", но раз уж такие условия...

Цитата:
Например, ввели число 22, и он вывел "Мы нашли 22 гриба!". Тут может и такая закономерность, что при введении числа, которое делится на 2, вывести ГРИБОВ, а для остальных - ГРИБА.
"Мы нашли двадцать два грибов?" Интересная логика...
Все тривиальное просто

Последний раз редактировалось whatever; 26.09.2012 в 19:25.
whatever вне форума
Старый 26.09.2012, 19:22   #3
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

подсказываю: определяешь окончания только для первого десятка цифр:

1 гриб; 2,3,4 гриба; 5,6,7,8,9,0 - грибов

Далее определяешь последнюю цифру числа: <число> mod 10 -> получаем цифру первого десятка, по которой и определяем окончание.

UPD. Пока писал это - уже ответили, чуть-чуть не успел. Но замечу про второй десяток - числа от 11 до 19:

Код:
readln(k);
k2:=k;
if (K2>=11) and (k2<=19) then 
  writeln ('Мы нашли ',k,' грибов') 
else
  begin
    while k2>9 do
      k2:=(k2 mod 10);
    if (k2 in [2,3,4]) then 
      writeln('мы нашли ',k,' гриба');
    if (k2 in [5,6,7,8,9,0]) then
      writeln('мы нашли ',k,' грибов');
    if k2=1 then
      writeln('мы нашли ',k,' гриб');    
  end;
readln;
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 26.09.2012 в 19:28.
Sciv вне форума
Старый 27.09.2012, 05:10   #4
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от ArtemK Посмотреть сообщение
Вам покажется, что задача легкая, но Вы не смейтесь
АртемК, нечего тут оправдываться )), задача совершенно нормальная (скажу по секрету, большинство задач, с которыми тут приходят, гораздо легче)). Обычно, правда, она формулируется не про грибы, а про ворон (от известного выражения "ворон считать")). Поищи на эти слова, наверняка найдешь несколько решений.
Успехов тебе!

+1 обоим ответившим в тему, Whatever & Sciv
Предпочитаю на "ты".
TinMan вне форума
Старый 27.09.2012, 07:52   #5
ArtemK
 
Регистрация: 23.09.2012
Сообщений: 6
По умолчанию

Ребят, всем СПАСИБО, что помогли!!! )
ArtemK вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен ваш совет Corton Свободное общение 1 11.07.2011 20:03
Нужен просто Ваш совет! BlackFishSQL Общие вопросы Delphi 1 04.06.2011 23:36
мне нужен ваш совет laiali Помощь студентам 2 15.03.2011 15:53
Нужен ваш совет SZero Помощь студентам 3 24.02.2008 17:51
Нужен ваш совет HIP Общие вопросы Delphi 1 20.06.2007 14:32