![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 24.01.2012
Сообщений: 30
|
![]()
Задача такова...вожу в edit чило может быть и с минусом и программа должна в memo вывести это число словами например edit=35...memo=тридцать пять
|
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 30.01.2011
Сообщений: 1,578
|
![]()
сканишь строку сперва на "-" ... и если он есть в самом начале... то значит минус...
тобишь поработать малость с символьным форматом данных... или же попробовать конвертануть в число и проверить на больше нуя или меньше...
пишу код не только за печеньки
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 24.01.2012
Сообщений: 30
|
![]() |
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 30.01.2011
Сообщений: 1,578
|
![]()
если делать как там... то если пробелом не будет, то минус будет стоять в самом начале, а значит
Код:
пишу код не только за печеньки
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 24.01.2012
Сообщений: 30
|
![]()
procedure TForm1.Button1Click(Sender: TObject);
const sotni : array [0..9] of string=('','сто','двести','триста', 'четыреста','пятьсот','шестьсот','с емьсот','восемьсот','девятьсот'); desyatki : array [0..9] of string=('','десять','двадцать','три дцать','сорок','пятьдесят','шестьде сят','семьдесят','восемьдесят','дев яносто'); edenici : array [0..9] of string=('','один','два','три','четы ре','пять','шесть','семь','восемь', 'девять'); special : array [0..9] of string=('десять','одиннадцать','две надцать','тринадцать','четырнадцать ','пятнадцать','шестнадцать','семна дцать','восемнадцать','девятнадцать '); var cislo,j,ed,des,sot:integer; s1,s10,s100:string[1]; s:string; begin s:=Edit1.Text; cislo:=StrToInt(s); If ((cislo<0) or (cislo>1000)) then ShowMessage ('Введите число в диапазоне 0..1000'); j:=Length(s); Case j of 1:begin ed:=StrToInt(s); Label1.Caption:=edenici[ed]; end; 2:begin If s[1]='1' then begin s1:=s[2]; ed:=StrToInt(s1); Label1.Caption:=special[ed]; end else begin s10:=s[1]; s1:=s[2]; des:=StrToInt(s10); ed:=StrToInt(s1); Label1.Caption:=desyatki[des]+' '+edenici[ed]; end; end; 3:begin s100:=s[1]; s10:=s[2]; s1:=s[3]; des:=StrToInt(s10); ed:=StrToInt(s1); sot:=StrToInt(s100); If s[2]='1' then Label1.Caption:=sotni[sot]+' '+special[ed] else Label1.Caption:=sotni[sot]+' '+desyatki[des]+' '+edenici[ed]; end; 4:begin end; End; If cislo=1000 then Label1.Caption:='тысяча'; If cislo=0 then Label1.Caption:='ноль'; end; кто знает как и где здесь добавить отрицательные?(( |
![]() |
![]() |
![]() |
#9 |
Участник клуба
Регистрация: 30.01.2011
Сообщений: 1,578
|
![]()
сразу же после этих строк
Код:
пишу код не только за печеньки
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 24.01.2012
Сообщений: 30
|
![]()
procedure TForm1.Button1Click(Sender: TObject);
const desyatki : array [0..9] of string=('','десять','двадцать','три дцать','сорок','пятьдесят','шестьде сят','семьдесят','восемьдесят','дев яносто'); edenici : array [0..9] of string=('','один','два','три','четы ре','пять','шесть','семь','восемь', 'девять'); special : array [0..9] of string=('десять','одиннадцать','две надцать','тринадцать','четырнадцать ','пятнадцать','шестнадцать','семна дцать','восемнадцать','девятнадцать '); var cislo,j,ed,des:integer; s1,s10:string[1]; s:string; begin Label1.Visible:=True; s:=Edit1.Text; cislo:=StrToInt(s); If ((cislo<-100) or (cislo>100)) then ShowMessage ('Введите число в диапазоне 0..100'); j:=Length(s); Case j of 1:begin ed:=StrToInt(s); Label1.Caption:=edenici[ed]; end; 2:begin If s[1]='1' then begin s1:=s[2]; ed:=StrToInt(s1); Label1.Caption:=special[ed]; end else begin s10:=s[1]; s1:=s[2]; des:=StrToInt(s10); ed:=StrToInt(s1); Label1.Caption:=desyatki[des]+' '+edenici[ed]; end; end; End; if s[1]='-' then begin Case j of 1:begin ed:=StrToInt(s); Label1.Caption:='Минус'+edenici[ed]; end; 2:begin If s[2]='1' then begin s1:=s[3]; ed:=StrToInt(s1); Label1.Caption:='Минус'+special[ed]; end else begin s10:=s[2]; s1:=s[3]; des:=StrToInt(s10); ed:=StrToInt(s1); Label1.Caption:='Минус'+desyatki[des]+' '+edenici[ed]; end; end; End; end; If cislo=100 then Label1.Caption:='сто'; If cislo=-100 then Label1.Caption:='минус сто'; If cislo=0 then Label1.Caption:='ноль'; end; сделал вот так...всё работает только если ввести s[1]='-' то ничего не происходит подскажите что не так |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не изменяется интерфейс моей программы при переходе с Delphi 7 на Delphi 2010 | Elvisnya | Общие вопросы Delphi | 3 | 28.04.2011 15:59 |
На Delphi 7 сделать игру кто хочет стать миллионером в delphi 7 | 666dart666 | Помощь студентам | 11 | 04.11.2010 17:57 |
Rad Studio 2011 XE: новое в Delphi, C++ Builder, RadPHP и Delphi Prism | savva-paladin | Софт | 18 | 02.10.2010 20:24 |
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? | redred | Общие вопросы Delphi | 10 | 11.12.2007 10:43 |
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? | dagarik | БД в Delphi | 7 | 22.10.2007 17:54 |