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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2012, 00:51   #1
dimanaprimer
Новичок
Джуниор
 
Регистрация: 06.10.2012
Сообщений: 1
Восклицание Выдать возраст по русски "Вам ___ лет" (Задача в Паскале другим способом)

С клавиатуры вводится число от 1 до 100 .На экран должна выводиться надпись надпись :Мне ... лет/мне ... год/ мне ... года.


program ot1do100;
var k:integer;
begin
writeln('введите число от 1 до 100');
readln(k);
if k=1 then writeln('Мне ', k ,' год');
if (k>=2) and (k<=4) then writeln('мне ',k,' года');
if (k>=5) and (k<=20) then writeln('мне ',k,' лет');
end.

Получилось решить только таким способом. Как это можно сделать проще?
dimanaprimer вне форума Ответить с цитированием
Старый 07.10.2012, 01:34   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

case
Код:
case k of
    1, 21, 31, 41, 51, 61, 71, 81, 91 : writeln('Мне ', k ,' год');
    2..4, 22..24, и т.д. :  writeln('мне ',k,' года');
else 
    writeln('мне ',k,' лет');
end;
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 08.10.2012, 10:13   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну, добавлю ещё один вариант,
на мой взгляд он проще:
Код:
(*
//Написать программу которая в зависимости от веденого с клавиатуры числа в
// соответствие с русским языком напечатает на экране фразу "Вам___лет".
// Например "Вам 20 лет" "Вам 31 год" "Вам 34 года"
*)

var b, c: integer;
begin
  Writeln('Введите ваш возраст');
  Readln(b);
  if b <= 0 then WriteLn('Вам 0 лет')
  else begin
    c := b mod 100;
    if (c >= 10) and (c <= 20) then WriteLn('Вам ', b, ' лет')
    else
      case (b mod 10) of
        1: WriteLn('Вам ', b, ' год');
        2..4: WriteLn('Вам ', b, ' года');
        5..9, 0: WriteLn('Вам ', b, ' лет')
      end;
  end;
  Writeln('Для выхода нажмите <Enter>');
  Readln;
end.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа на Паскале: выдать сумму наименьшим количеством купюр. Vanya77777 Помощь студентам 11 06.10.2011 09:10
Решение другим способом Дмитрий Алексеев Помощь студентам 8 02.02.2011 20:13
Сделать транслитерацию другим способом tema93 Общие вопросы C/C++ 1 01.12.2010 22:12
C#___!! Rikhard Общие вопросы C/C++ 0 29.11.2010 15:20