![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
электрик |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
Помогите решить задачу!
Составьте прогу, к-ая по названию числа<1000, написанному на русском (английском) языке, формирует его цифровую запись за ранее спасибо! |
![]() ![]() |
klem4 |
![]()
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
uses crt;
const
d10:array[1..18] of string =('один','два','три','четыре','пять','шесть','семь','восем','девять',
'одиннадцать',
'двеннадцать','тринадцать','четырнадцать','пятнадцать','шеснадцать','семнадцать','восемданцать','девятнадцать');
d11:array[1..18] of integer =(1,2,3,4,5,6,7,8,9
,11,12,13,14,15,16,17,18,19);
d100:array[1..9] of string =('десять','двадцать','тридцать','сорок','пятдесят','шестьдесят',
'семдесят','восемдесят','девяносто');
d111:array[1..9] of integer=(10,20,30,40,50,60,70,80,90);
d1000:array[1..9] of string=('сто','двесте','тристо','четыресто','пятьсот','шестьсот','семьсот','восемьсот','девятьсот');
d1111:array[1..9] of integer=(100,200,300,400,500,600,700,800,900);
var s:string;
result:integer;
i,j,n,bdigit:integer;
Begin
clrscr;
result:=0;
readln(s);
i:=1;
while i<=length(s) do
begin
while(i<=length(s))and(s[i]=#32) do
inc(i);
if i<=length(s) then
begin
bdigit:=i;
while (i<=length(s))and(not(s[i]=#32)) do
inc(i);
for j:=1 to 18 do
if copy(s,bdigit,i-bdigit)=d10[j] then
inc(result,d11[j]);
for j:=1 to 9 do
if copy(s,bdigit,i-bdigit)=d100[j] then
inc(result,d111[j])
else
if copy(s,bdigit,i-bdigit)=d1000[j] then
inc(result,d1111[j]);
end;
end;
writeln('Result=',result);
readln;
end.
по поводу рациональности можно еще подумать, но идея я думаю ясна. тестировал, вроде все ок. зы за граматические в числительных не бейте, с русским неважно в школе было=) ну а щас уже буквы забывать начинаю :D -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
электрик |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Репутация: ![]() ![]() ![]() |
спасибо!!!!!!!!!!!! Век не забуду!!!
|
![]() ![]() |
![]() |
Текстовая версия | 25.07.2025 1:38 |