Паскаль. С клавиатуры вводится целое число от 1 до 1000, обозначающая сумму в рублях. Программа должна напечатать эту сумму прописью.Пример: пятнадцать рублей.

Паскаль. С клавиатуры вводится целое число от 1 до 1000, обозначающая сумму в рублях. Программа должна напечатать эту сумму прописью. Пример: пятнадцать рублей.
Гость
Ответ(ы) на вопрос:
Гость
var   m, n: integer;   s1, s2, s3: string;   ms: array[1..9] of string;   md: array[1..9] of string;   m1: array[11..19] of string;   me: array[1..9] of string;   flag: boolean; begin     flag := false; { Пока ничего не выведено }   s1 := 'рубль';   s2 := 'рубля';   s3 := 'рублей';   ms[1] := 'сто'; ms[2] := 'двести'; ms[3] := 'триста'; ms[4] := 'Четыреста';   ms[5] := 'пятьсот'; ms[5] := 'пятьсот'; ms[6] := 'шестьсот'; ms[7] := 'семьсот';   ms[8] := 'восемьсот'; ms[9] := 'девятьсот';   md[1] := 'десять'; md[2] := 'двадцать'; md[3] := 'тридцать'; md[4] := 'сорок';   md[5] := 'пятьдесят'; md[6] := 'шестьдесят'; md[7] := 'семьдесят';   md[8] := 'восемьдесят'; md[9] := 'девяносто';   m1[11] := 'одиннадцать'; m1[12] := 'двенадцать'; m1[13] := 'тринадцать';   m1[14] := 'четырнадцать'; m1[15] := 'пятнадцать'; m1[16] := 'шестнадцать';   m1[17] := 'семнадцать'; m1[18] := 'восемнадцать'; m1[19] := 'девятнадцать';   me[1] := 'один'; me[2] := 'два'; me[3] := 'три'; me[4] := 'четыре'; me[5] := 'пять';   me[6] := 'шесть'; me[7] := 'семь'; me[8] := 'восемь'; me[9] := 'девять';     Write('Введите целое число от 1 до 1000: ');   Readln(m);   if (m < 1) or (m > 1000) then Writeln('Шутки шутим?')   else   if m = 1000 then Writeln('Одна тысяча ' + s3)     else   begin       { сотни }     n := m div 100;     if n > 0 then     begin       Write(ms[n]);       flag := true     end;       { десятки }     m := m mod 100;     if m = 0 then Writeln(' ', s3)     else     begin       if (m > 10) and (m < 20) then       begin         if flag then Write(' ');         Writeln(m1[m], ' ', s3)       end       else       if m > 0 then       begin         n := m mod 10;         m := m div 10;         if m > 0 then         begin           if flag then Write(' ') else flag := true;           Write(md[m])         end;         if n <> 0 then         begin           { единицы }           if flag then Write(' ');           Write(me[n], ' ');           case n of             1: Writeln(s1);             2..4: Writeln(s2);           else Writeln( s3)           end         end         else Writeln(' ', s3)       end     end   end end. Тестовое решение: Введите целое число от 1 до 1000: 314 триста четырнадцать рублей
Не нашли ответ?
Ответить на вопрос
Похожие вопросы