Написать программу в паскале - вводится латинское число (любое) выдать его в текстовой форме, например вводится( MDCLX\/I ), вадать (тысяча шестьсот шесдисят шесть).

4 Сен 2019 в 09:42
236 +1
0
Ответы
1

Программа на Паскале:

program RomanToText;
uses
SysUtils;
procedure RomanToNumber(roman: string; var result: Integer);
var
i: Integer;
begin
result := 0;
for i := Length(roman) downto 1 do
begin
case roman[i] of
'I': result := result + 1;
'V': result := result + 5;
'X': result := result + 10;
'L': result := result + 50;
'C': result := result + 100;
'D': result := result + 500;
'M': result := result + 1000;
end;
if i > 1 then
begin
if (roman[i] = 'V') or (roman[i] = 'X') then
begin
if roman[i - 1] = 'I' then
begin
result := result - 1;
i := i - 1;
end;
end
else if (roman[i] = 'L') or (roman[i] = 'C') then
begin
if roman[i - 1] = 'X' then
begin
result := result - 10;
i := i - 1;
end;
end
else if (roman[i] = 'D') or (roman[i] = 'M') then
begin
if roman[i - 1] = 'C' then
begin
result := result - 100;
i := i - 1;
end;
end;
end;
end;
end;
function NumberToText(number: Integer): string;
const
digits: array[1..13] of string = ('I', 'IV', 'V', 'IX', 'X', 'XL', 'L', 'XC', 'C', 'CD', 'D', 'CM', 'M');
values: array[1..13] of Integer = (1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000);
var
i: Integer;
begin
i := 13;
while number > 0 do
begin
if number >= values[i] then
begin
Result := Result + digits[i];
number := number - values[i];
end
else
i := i - 1;
end;
end;
var
romanNumber: string;
arabicNumber: Integer;
begin
Write('Введите число в римской записи (например, MDCLXVI): ');
Readln(romanNumber);
RomanToNumber(romanNumber, arabicNumber);
writeln('Число в арабской записи: ', arabicNumber);
writeln('Число в текстовой записи: ', NumberToText(arabicNumber));
end.

Эта программа преобразует введенное римское число в арабское число и затем выводит его в текстовой форме.

20 Апр 2024 в 04:24
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир