Задача на строки |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Задача на строки |
UtaH |
Сообщение
#1
|
Гость |
Народ, помогите плз решить задачу. Даётся текстовая строка представляющая собой правильную запись целого числа, напр "одиннадцать" .на ввод строки должно выводиться её числовое значение т.е. если вводится "сто двадцать четыре" должно вывестись
124. Загонять case на каждое числительное мне как-то не особо :-[ |
sandman |
Сообщение
#2
|
Пионер Группа: Пользователи Сообщений: 101 Пол: Мужской Репутация: 0 |
давно ничего не писал, но может такая бредовая идея подойдет:
создать 2 массива, в одном из которых будут строковые знаечния (один,два...десять...) а в другом соответсвующие числа, с такими же индексами. example: array['один','два',итакдалее] of string array[1,2,...] of integer далее разбить входящую строку на слова и анализировать каждое слово, просматривая массив строк и на сопоставляя соответствующие элементы числового массива, складывая их в последствии... p.s. что-нибудь из этого понял? ;) -------------------- Плавают разными стилями, тонут-одним (ц) Кирпичи
|
fms |
Сообщение
#3
|
Бывалый Группа: Пользователи Сообщений: 195 Пол: Женский Репутация: 0 |
есть решение наоборот. из числа в текст. т.е. 124="сто двадцать четыре"
если нужно могу выложить. -------------------- непонимающая..
|
APAL |
Сообщение
#4
|
Смотрю... Группа: Пользователи Сообщений: 1 055 Пол: Мужской Реальное имя: Пшеничный Алексей Анатольевич Репутация: 6 |
Может поможет:
Код Function GetNumFromSt(Sc : String) : LongInt; Var Cs : String; N1s,N2s,Ks : Byte; ddd,iii : Integer; Begin N1s:=0; Ks:=0; While (N1s=0) and (Ks<=Length(Sc)) do Begin Inc(Ks); If (Sc[Ks]>='0') and (Sc[Ks]<='9') then N1s:=Ks; End; If N1s=0 then Begin GetNumFromSt:=0; Exit; End; N2s:=N1s; While (Sc[N2s]>='0') and (Sc[N2s]<='9') do Inc(N2s); Cs:=''; Dec(N2s); For Ks:=N1s to N2s do Cs:=Cs+Sc[Ks]; Val(Cs,ddd,iii); GetNumFromSt:=ddd; End; -------------------- |
UtaH |
Сообщение
#5
|
Гость |
Sandman, а если там числа до 999999999?
|
fms |
Сообщение
#6
|
Бывалый Группа: Пользователи Сообщений: 195 Пол: Женский Репутация: 0 |
ну не надо дак не надо.. ;D
-------------------- непонимающая..
|
UtaH |
Сообщение
#7
|
Гость |
FMS,выложи плиз может поможет ;D
|
fms |
Сообщение
#8
|
Бывалый Группа: Пользователи Сообщений: 195 Пол: Женский Репутация: 0 |
знаете.. только там на С. хотя какая разница? переделать можно.. ;D
#include <stdio.h> -------------------- непонимающая..
|
UtaH |
Сообщение
#9
|
Гость |
Спасибо огромное. Щас вот переводить буду :o
|
fms |
Сообщение
#10
|
Бывалый Группа: Пользователи Сообщений: 195 Пол: Женский Репутация: 0 |
2UtaH
удачи.. она тебе пригодится.. ;D -------------------- непонимающая..
|
UtaH |
Сообщение
#11
|
Гость |
Спасибо за помощь на олимпиаде хоть не позорнулась.
2fms: это ты из книжки выписала? |
fms |
Сообщение
#12
|
Бывалый Группа: Пользователи Сообщений: 195 Пол: Женский Репутация: 0 |
2UtaH
неа.. в инете как то нашла.. понравилось.. сохранила.. ну вот и пригодилось.. вроде. ;D -------------------- непонимающая..
|
Текстовая версия | 16.10.2024 14:30 |