Как в pascal abc написать программу, которая преобразует word в string. то есть программа в которой мы вводим цифру, а нам слово
Ответы на вопрос:
ответ:
program num_to_str;
uses
sysutils, math;
const
max000 = 6; {кол-во триплетов - 000}
maxposition = 18; {кол-во знаков в числе }
function iif (i: boolean; s1, s2: char): char; overload;
begin
if i then result : = s1
else result : = s2
end;
function iif (i: boolean; s1, s2: string ): string; overload;
begin
if i then result : = s1
else result : = s2
end;
function num000tostr (s: string; woman: boolean): string; {num000tostr возвращает число для триплета}
const
c100: array ['0'..'9'] of string = ('', 'сто ', 'двести ', 'триста ', 'четыреста ', 'пятьсот ',
'шестьсот ', 'семьсот ', 'восемьсот ' ,'девятьсот ');
c10: array ['0'..'9'] of string = ('','десять ','двадцать ','тридцать ','сорок ','пятьдесят ',
'шестьдесят ','семьдесят ','восемьдесят ','девяносто ');
c11: array ['0'..'9'] of string = ('','один','две','три','четыр','пят','шест','сем',
'восем','девят');
c1: array [false..true, '0'..'9'] of string=(('','один ','два ','три ','четыре ','пять ',
'шесть ','семь ','восемь ','девять '),
('','одна ','две ','три ','четыре ','пять ','шесть ','семь ','восемь ','девять '));
begin{num000tostr}
result : = c100 [s[1]] + iif ((s[2] = '1') and (s[3] > '0'), c11 [s[3]] + 'надцать ',
c10 [s[2]] + c1 [woman, ;
end; {num000tostr}
function numtostr (n: longint): string; {возвращает число прописью}
const
c1000: array [0..max000] of string = ('', 'тысяч', 'миллион', 'миллиард', 'триллион',
'квадраллион','квинтиллион');
c1000w: array [0..max000] of boolean = (false, true, false, false, false, false, false);
w: array [false..true, '0'..'9'] of string [3]= (
('ов ', ' ' ,'а ' ,'а ' ,'а ' ,'ов ' ,'ов ' ,'ов ' ,'ов ' ,'ов '),
(' ' ,'а ', 'и ', 'и ', 'и ', ' ', ' ', ' ', ' ', ' '));
var
s: string;
s000: string [3];
isw, isminus: boolean;
i: integer; //счётчик триплетов
begin
s : = inttostr (n);
result : = ''; i : = 0;
isminus : = (s< > '') and (s[1] = '-');
if isminus then s : = copy (s, 2, length (s) - 1);
while not ((i > = ceil (length (s) / 3)) or (i > = max000)) do begin
s000 : = copy ('00' + s, length (s) - i * 3, 3);
isw : = c1000w [i];
if (i > 0) and (s000 < > '000') then //тысячи и т.д.
result : = c1000 [i] + w [isw,
iif (s000 [2] = '1', char ('0'), char (s000
] + result;
result : = num000tostr (s000, isw) + result;
inc (i)
end;
if result = '' then result : = 'ноль';
if isminus then result : = 'минус ' + result;
end; {numtostr}
var
num: longint;
begin
write ('введите число: ');
readln (num);
writeln (numtostr (num));
readln;
end.
объяснение:
попробуйте эту программу на паскале, возможно что-то подправить будет нужно
m = float(input('m = '))
v = float(input('v = '))
g = float(input('g = '))
h = float(input('h = '))
print(((m*(v*v))/2)+(m*g*h))
Объяснение:
Python 3.8.2
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
WERTO12430.10.2020 14:30
-
KIRILL123132131231.03.2023 02:46
-
LUKARIN05.02.2022 14:46
-
Tuna23407.06.2021 08:24
-
andrstoyan18201.09.2021 19:45
-
маша252125.09.2020 07:26
-
Умник500126.04.2020 03:30
-
зика2225.02.2020 12:04
-
рыжик5925.08.2021 05:04
-
ekaterina123sve26.01.2023 07:48
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.