Root /ArchiveAbout
()

Выводим строку-описание

Выводим строку-описание

Сase15. Мастям игральных карт присвоены порядковые номера: 1 — пики, 2 — трефы, 3 — бубны, 4 — червы. Достоинству карт, старших десятки, присвоены номера: 11 — валет, 12 — дама, 13 — король, 14 — туз. Даны два целых числа: N — достоинство (6 ≤ N ≤ 14) и M — масть карты (1 ≤ M ≤ 4). Вывести название соответствующей карты вида «шестерка бубен», «дама червей», «туз треф» и т. п.

var
  N, M: byte;

begin
  write('N = ');
  readln(N); { <-- вводим достоинство карты }
  write('M = ');
  readln(M); { <-- вводим номер масти карты }
  { Перебираем возможные достоинства карт: }
  case N of
    6: write('Шестерка');
    7: write('Семерка');
    8: write('Восьмерка');
    9: write('Девятка');
    10: write('Десятка');
    11: write('Валет');
    12: write('Дама');
    13: write('Король');
    14: write('Туз')
    else N := 0 { <-- Ошибка ввода }
  end;
  if N <> 0 then
    { Перебираем возможные масти карт: }
    case M of
      1: writeln(' пики');
      2: writeln(' треф');
      3: writeln(' бубен');
      4: writeln(' червей')
      else writeln('Ошибка ввода!')
    end
  else writeln('Ошибка ввода!');
  readln
end.

**type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 Сase16. Дано целое число в диапазоне 20–69, определяющее возраст (в годах). Вывести строку-описание указанного возраста, обеспечив правильное согласование числа со словом «год», например: 20 — «двадцать лет», 32 — «тридцать два года», 41 — «сорок один год».

var
  N, a, b: byte;

begin
  writeln('Введите возраст от 20 до 69:');
  readln(N); { <-- вводим возраст }
  writeln;
  a := N mod 10; { <== число единиц возраста }
  b := N - a; { <== число десятков возраста }
  { Проверяем число десятков: }
  case b of
    20: write('Двадцать');
    30: write('Тридцать');
    40: write('Сорок');
    50: write('Пятдесят');
    60: write('Шестдесят')
   { Если нужного десятка нет, то создаем индикатор 
   (любое число с интервала [10..255]): }
    else a := 10
  end;
  { Проверяем вторую цифру числа: } 
  case a of
    10: writeln('Ошибка ввода!');
    0: writeln(' лет');
    1: writeln(' один год');
    2: writeln(' два года');
    3: writeln(' три года');
    4: writeln(' четыре года');
    5: writeln(' пять лет');
    6: writeln(' шесть лет');
    7: writeln(' семь лет');
    8: writeln(' восемь лет');
    9: writeln(' девять лет')
  end;
  readln
end.

**type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 A **mod** B - остаток при целочисленном делении А на В Сase17. Дано целое число в диапазоне 10–40, определяющее количество учебных заданий по некоторой теме. Вывести строку-описание указанного количества заданий, обеспечив правильное согласование числа со словами «учебное задание», например: 18 — «восемнадцать учебных заданий», 23 — «двадцать три учебных задания», 31 — «тридцать одно учебное задание».

var
  N, a: byte;
  S, T: string; { S - правильное согласование количества,
                  T - согласование «учебное задание» } 
begin
  writeln('Введите число от 10 до 40:');
  readln(N); { <-- вводим количество учебных заданий }
  { Далее перебираем числа от 10 до 40 и формируем
  правильное согласование «учебное задание»: }
  case N of
    10..20, 25..30, 35..40:
      T := ' учебных заданий';

    22..24, 32..34:
      T := ' учебных задания';

    21,31:
      T := ' учебное задание'
    else N := 0 { <-- Выходим за границы 10..40 }
  end;
  if N <> 0 then begin
    { Формируем количество от 11 до 19: } 
    case N of
      11: S := 'Одинадцать';
      12: S := 'Двенадцать';
      13: S := 'Тринадцать';
      14: S := 'Четырнадцать';
      15: S := 'Пятнадцать';
      16: S := 'Шестнадцать';
      17: S := 'Семнадцать';
      18: S := 'Восемнадцать';
      19: S := 'Девятнадцать'
      else begin { <-- Если число больше 19 }
        a := N mod 10; { <-- находим число единиц }
        N := N - a { <-- число десятков }
      end
    end;
    { Число десятков: } 
    case N of
      10: S := S + 'Десять';
      20: S := S + 'Двадцать';
      30: S := S + 'Тридцать';
      40: S := S + 'Сорок'
    end;
    { Формируем согласование с единицами: } 
    case a of
      1: S := S + ' одно';
      2: S := S + ' два';
      3: S := S + ' три';
      4: S := S + ' четыре';
      5: S := S + ' пять';
      6: S := S + ' шесть';
      7: S := S + ' семь';
      8: S := S + ' восемь';
      9: S := S + ' девять'
    end;
    { Выводим результат как сумму предложений 
    количества и учебного задания: }
    writeln(' ', S + T)
  end
  else writeln('Ошибка ввода!');
  readln
end.

**type** byte;: Представляет 8-битовое целое число без знака.Диапазон значений: 0..255 **type** string;: Представляет текст как последовательность знаков Юникода. A **mod** B - остаток при целочисленном делении А на В Сase18. Дано целое число в диапазоне 100–999. Вывести строку-описание данного числа, например: 256 — «двести пятьдесят шесть», 814 — «восемьсот четырнадцать».

var
  N, N1, N2, N3: word;
  S: string;

begin
  writeln('Введите число от 100 до 999:');
  readln(N); { <-- вводим число }
  writeln;
  N1 := N div 100; { <== Сотни }
  N2 := N div 10 mod 10; { <== Десятки }
  N3 := N mod 10; { <== Единицы }
  { Формируем сотни: }
  case N1 of
    1: S := ' сто';
    2: S := ' двести';
    3: S := ' триста';
    4: S := ' четыриста';
    5: S := ' пятьсот';
    6: S := ' шестьсот';
    7: S := ' семьсот';
    8: S := ' восемьсот';
    9: S := ' девятьсот'
    else N1 := 0; { <== Выходим за пределы [100..999] }
  end;
  if N1 <> 0 then begin
    { Формируем десятки (кроме первого): } 
    case N2 of
      2: S := S + ' двадцать';
      3: S := S + ' тридцать';
      4: S := S + ' сорок';
      5: S := S + ' пятьдесят';
      6: S := S + ' шестьдесят';
      7: S := S + ' семьдесят';
      8: S := S + ' восемьдесят';
      9: S := S + ' девяносто'
    end;
    { Формируем единицы: }
    if N2 = 1 then { <-- Первый десяток }
      case N3 of
        0: S := S + ' десять'; 
        1: S := S + ' одинадцать';
        2: S := S + ' двенадцать';
        3: S := S + ' тринадцать';
        4: S := S + ' четырнадцать';
        5: S := S + ' пятнадцать';
        6: S := S + ' шестнадцать';
        7: S := S + ' семнадцать';
        8: S := S + ' восемнадцать';
        9: S := S + ' девятнадцать'
      end
    else
      case N3 of
        1: S := S + ' один';
        2: S := S + ' два';
        3: S := S + ' три';
        4: S := S + ' четыре';
        5: S := S + ' пять';
        6: S := S + ' шесть';
        7: S := S + ' семь';
        8: S := S + ' восемь';
        9: S := S + ' девять'
      end;
    writeln(' ', S); { <-- Выводим результат }
  end
  else writeln('Ошибка ввода!');
  readln
end.

**type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535 **type** string;: Представляет текст как последовательность знаков Юникода. A **div** B - целочисленное деление А на В A **div** B - целочисленное деление А на В A **mod** B - остаток при целочисленном делении А на В A **mod** B - остаток при целочисленном делении А на В