Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2012, 17:44   #1
V0L40K_21
Пользователь
 
Регистрация: 24.01.2012
Сообщений: 30
По умолчанию Delphi 7

Задача такова...вожу в edit чило может быть и с минусом и программа должна в memo вывести это число словами например edit=35...memo=тридцать пять
V0L40K_21 вне форума Ответить с цитированием
Старый 31.01.2012, 17:56   #2
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

идею тут почерпните... почти все сделано... и немного пищи для ума останется)
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 31.01.2012, 18:06   #3
V0L40K_21
Пользователь
 
Регистрация: 24.01.2012
Сообщений: 30
По умолчанию

Цитата:
Сообщение от VIK_aka_TOR Посмотреть сообщение
идею тут почерпните... почти все сделано... и немного пищи для ума останется)
Спасибо большое!
V0L40K_21 вне форума Ответить с цитированием
Старый 31.01.2012, 18:23   #4
V0L40K_21
Пользователь
 
Регистрация: 24.01.2012
Сообщений: 30
По умолчанию

Цитата:
Сообщение от VIK_aka_TOR Посмотреть сообщение
идею тут почерпните... почти все сделано... и немного пищи для ума останется)
подскажите как довать минус...тоесть отрицательные числа
V0L40K_21 вне форума Ответить с цитированием
Старый 31.01.2012, 18:25   #5
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

сканишь строку сперва на "-" ... и если он есть в самом начале... то значит минус...
тобишь поработать малость с символьным форматом данных... или же попробовать конвертануть в число и проверить на больше нуя или меньше...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 31.01.2012, 18:26   #6
V0L40K_21
Пользователь
 
Регистрация: 24.01.2012
Сообщений: 30
По умолчанию

Цитата:
Сообщение от VIK_aka_TOR Посмотреть сообщение
сканишь строку сперва на "-" ... и если он есть в самом начале... то значит минус...
тобишь поработать малость с символьным форматом данных...
если честно до меня эта тема воопще не дошла
V0L40K_21 вне форума Ответить с цитированием
Старый 31.01.2012, 18:31   #7
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

если делать как там... то если пробелом не будет, то минус будет стоять в самом начале, а значит
Код:
if s[1] = '-' then
memo.text:= "минус " ;
что то подобное..
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 31.01.2012, 18:55   #8
V0L40K_21
Пользователь
 
Регистрация: 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;

кто знает как и где здесь добавить отрицательные?((
V0L40K_21 вне форума Ответить с цитированием
Старый 31.01.2012, 19:03   #9
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

сразу же после этих строк
Код:
begin
s:=Edit1.Text;
тобишь при присваивании переменной текста помещенного в эдит...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 31.01.2012, 19:10   #10
V0L40K_21
Пользователь
 
Регистрация: 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]='-' то ничего не происходит подскажите что не так
V0L40K_21 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не изменяется интерфейс моей программы при переходе с 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