
Написать программу в паскале.вводится число от 1 до 1000 вывести его в текстовой форме .


Ответы на вопрос

PascalABC.NET 3.4.2, сборка 1859 от 08.11.2018
Внимание! Если программа не работает, обновите версию!
begin
var n := ReadInteger('n=');
if n >= 1000 then Print('одна тысяча')
else
begin
var d1 := n mod 10;
var d2 := n div 10 mod 10;
var d3 := n div 100;
var s := '';
case d3 of
1: s := 'сто';
2: s := 'двести';
3: s := 'триста';
4: s := 'четыреста';
5: s := 'пятьсот';
6: s := 'шестьсот';
7: s := 'семьсот';
8: s := 'восемьсот';
9: s := 'девятьсот';
end;
if d2 = 1 then
begin
case d1 of
0: s += ' десять';
1: s += ' одиннадцать';
2: s += ' двенадцать';
3: s += ' тринадцать';
4: s += ' четырнадцать';
5: s += ' пятнадцать';
6: s += ' шестнадцать';
7: s += ' семнадцать';
8: s += ' восемнадцать';
9: s += ' девятнадцать';
end;
TrimLeft(s).Println
end
else
begin
case d2 of
0: s += '';
2: s += ' двадцать';
3: s += ' тридцать';
4: s += ' сорок';
5: s += ' пятьдесят';
6: s += ' шестьдесят';
7: s += ' семьдесят';
8: s += ' восемьдесят';
9: s += ' девяносто';
end;
s := TrimLeft(s);
case d1 of
1: s += ' один';
2: s += ' два';
3: s += ' три';
4: s += ' четыре';
5: s += ' пять';
6: s += ' шесть';
7: s += ' семь';
8: s += ' восемь';
9: s += ' девять';
end;
TrimLeft(s).Println
end
end
end.



Для написания программы на языке Pascal, которая будет преобразовывать числа от 1 до 1000 в текстовую форму, нужно разбить задачу на несколько этапов:
- Создать функцию, которая будет преобразовывать числа от 1 до 999 в текстовую форму.
- Создать функцию, которая будет обрабатывать числа от 1 до 1000, включая случаи с числами от 100 до 999.
- В основной части программы получить число от пользователя, вызвать нужную функцию и вывести результат на экран.
Вот готовая программа на Pascal:
pascalprogram NumberToText; uses SysUtils; const Ones: array [1..19] of string = ('один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять', 'десять', 'одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать'); Tens: array [2..9] of string = ('двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто'); Hundreds: array [1..9] of string = ('сто', 'двести', 'триста', 'четыреста', 'пятьсот', 'шестьсот', 'семьсот', 'восемьсот', 'девятьсот'); function NumberToTextLessThanThousand(number: Integer): string; var tempStr: string; begin if number = 0 then Exit('ноль'); if number < 20 then Exit(Ones[number]); tempStr := Hundreds[number div 100]; if (number mod 100) < 20 then tempStr := tempStr + ' ' + Ones[number mod 100] else tempStr := tempStr + ' ' + Tens[(number mod 100) div 10] + ' ' + Ones[number mod 10]; Result := tempStr; end; function NumberToText(number: Integer): string; var tempStr: string; begin if number = 1000 then Exit('тысяча'); tempStr := NumberToTextLessThanThousand(number mod 1000); if number >= 1000 then tempStr := NumberToTextLessThanThousand(number div 1000) + ' тысяч ' + tempStr; Result := tempStr; end; var num: Integer; begin writeln('Введите число от 1 до 1000:'); readln(num); if (num < 1) or (num > 1000) then writeln('Число должно быть от 1 до 1000.') else writeln(NumberToText(num)); readln; end.
Скопируйте этот код в среду программирования на Pascal (например, в Free Pascal) и запустите программу. Она запросит ввод числа от пользователя и выведет его текстовый эквивалент.


Похожие вопросы
Топ вопросов за вчера в категории Информатика








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili