Статистика
Всего в нашей базе более 4 327 664 вопросов и 6 445 979 ответов!

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

10-11 класс

рублях. Программа должна напечатать эту сумму прописью.
Пример: пятнадцать рублей.

Artyom4ik15 03 марта 2017 г., 16:51:41 (7 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
Альоха
03 марта 2017 г., 19:19:28 (7 лет назад)

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
триста четырнадцать рублей



+ 0 -
Kati3836
03 марта 2017 г., 21:33:42 (7 лет назад)

О-го! Вот это ж Вам спасибо огроменное!

+ 0 -
Look099
03 марта 2017 г., 22:10:00 (7 лет назад)

А короче не получается... Можно было чуть процедурами сэкономить.. но и только

+ 0 -
Ashmurina
03 марта 2017 г., 23:11:06 (7 лет назад)

Да я знаю.) Честно говоря, просто не верил, что кому-то будет не лень возиться с такой объемной чужой задачей. Еще раз спасибо!

+ 0 -
Katia55
04 марта 2017 г., 1:06:56 (7 лет назад)

Я особо не возился, просто взял свою, которая в Экселе работает, на VBA написанная, выкинул оттуда тысячи, миллионы и миллиарды и переписал на Паскаль.

Ответить

Другие вопросы из категории

Дан массив вещественных чисел.Вывести на экран новое состояние массива в котором ко всем нулевым элементам прибавить n из всех положительных элементов

вычесть a, ко всем отрицательным элементам прибавить b. В паскале. Значение a b n вводятся с клавиатуры

Читайте также

ПАСКАЛЬ.1)дан целочисленный массив из 30 элементов.элементы массива могут принимать целые значения от 0 до 1000.опишите на русском языке или на одном из

языков программирования алгоритм,позволяющий найти среднее арифметическое нечетных трехзначных чисел,записанных в этом массиве.если ни одного такого числа нет,нужно вывести сообщение об этом.
2)дан целочисленный массив из 30 элементов.элементы массива могут принимать целые значения от 0 до 100.опишите на русском языке или на одном из языков программирования алгоритм,позволяющий найти и вывести произведение элементов массива,которые имеют четное значение и не оканчиваются на 0.

паскаль,1) вывести все четные числа от 1 до 15

2)вывести на экран числа от 2 до 9 с шагом 0,2

1. Пользователем вводится целое число. Вывести на экран последовательность целых чисел от единицы до этого числа.

2.Вывести на экран 10 строк, содержащие символ *, причем количество * в каждой строке должно быть равно номеру строки.
3.Пользователем вводится 2 целых числа. Вывести на экран сумму положительных четных чисел, находящихся в границах диапазона, указанного пользователем.
4. В результате работы программы формируется массив, состоящий из 10 элементов и заполненный случайными числами от 0 до 100. Вывести на экран этот же массив в порядке возрастания.
5.Вводится строка, содержащая буквы и цифры разного регистра (т.е. строчные и прописные буквы). В результате работы программы на экран выводится строка следующего вида: цифры в порядке возрастания, строчные буквы по алфавиту, прописные буквы по алфавиту.

Программа 12. Написать программу, которая бы по номеру дня недели (целому числу от 1 до 7) выдавала бы количество уроков в вашей группе (или сообщение

«выходной»).

Программа 13. Пользователь вводит действительное число. Требуется определить: 1. положительное это число или отрицательное; 2. целое это число или нецелое; 3. четное это число или нечетное; Выбор варианта определяется пользователем.

Для кодирования номеров автомобилей принята следующая структура данных: Номер региона (двузначное число от 00 до 99), серия (комбинация из трех букв из

набора «А, В, Е, К, М, Н, О, Р, С, Т, У, Х»), номер (трехзначное число от 000 до 999). При создании базы данных автомобильных номеров Петя решил хранить каждый номер в виде массива из 8 символов (два символа на номер региона, три символа на серию и три символа на номер), кодируя каждый символ с помощью однобайтной кодировки ASCII. Вася решил уменьшить объем хранимых данных и принял решение хранить каждый номер в виде трех чисел – одно число для номера региона, одно число для серии (представив все возможные серии в виде натуральных чисел) и одно число для номера. Каждое число Вася будет хранить отдельно, используя для его кодирования минимально возможное число бит. На сколько бит уменьшится объем памяти, необходимый для хранения одного произвольного номера, в варианте кодирования Васи по сравнению с вариантом кодирования Пети? В ответе укажите целое число.



Вы находитесь на странице вопроса "Паскаль. С клавиатуры вводится целое число от 1 до 1000, обозначающая сумму в", категории "информатика". Данный вопрос относится к разделу "10-11" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.