IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> цифры, написать число из название самого числа
электрик
сообщение 22.05.2005 13:52
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 19
Пол: Мужской

Репутация: -  0  +


Помогите решить задачу!
Составьте прогу, к-ая по названию числа<1000, написанному на русском (английском) языке, формирует его цифровую запись
за ранее спасибо!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 22.05.2005 15:30
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


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";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
электрик
сообщение 24.05.2005 8:04
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 19
Пол: Мужской

Репутация: -  0  +


спасибо!!!!!!!!!!!! Век не забуду!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.06.2025 21:38
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"