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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2009, 19:58   #1
Artur09
Новичок
Джуниор
 
Регистрация: 03.05.2009
Сообщений: 1
По умолчанию Программа: число словами

Здравствуйте! Помогите программу решить пожалуйста. в поле Edit1 вводится число (максимум 999999999) и после нажатия на кнопку Button1 в поле Edit2 записывается это же число, но только словами. Примерно вот так: 123456789 - сто двадцать три четыреста пятьдесят шесть семьсот восемьдесять девять. Т.е. всяких тысяч, миллионов не нужно)

Решить нужно как можно проще, без подпрограмм и прочего..

Вот есть пример для чисел до 999, желательно чтобы примерно так же и остальное было:

Код:
var
  Form1: TForm1;
  a:longint;
  d100,d10,d1:byte;
  s:string;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
a:=StrToInt(Form1.Edit1.Text);
d100:=a div 100;
d10:=a div 10 mod 10;
d1:=a mod 10;
case d100 of
 1:s:=s+'Сто ';
 2:s:=s+'Двести ';
 3:s:=s+'Триста ';
 4:s:=s+'Четыреста ';
 5..9: begin
        case d100 of
         5:s:=s+'Пять';
         6:s:=s+'Шесть';
         7:s:=s+'Семь';
         8:s:=s+'Восемь';
         9:s:=s+'Девять';
         end;
        s:=s+'сот ';
       end;
 end;
if d10=1 then
 begin
 case d1 of
  1:s:=s+'один';
  2:s:=s+'две';
  3:s:=s+'три';
  4:s:=s+'четыр';
  5:s:=s+'пят';
  6:s:=s+'шест';
  7:s:=s+'сем';
  8:s:=s+'восем';
  9:s:=s+'девят';
  0:s:=s+'надцать';
  end;
 if d1<>0 then s:=s+'надцать';
 end;

case d10 of
 2:s:=s+'двадцать ';
 3:s:=s+'триццать ';
 4:s:=s+'сорок ';
 5:s:=s+'пять';
 6:s:=s+'шесть';
 7:s:=s+'семь';
 8:s:=s+'восемь';
 9:s:=s+'девяносто ';
 end;
if (d10>=5) and (d10<=8) then s:=s+'десят ';
if d10<>1 then
 case d1 of
  1:s:=s+'один';
  2:s:=s+'два';
  3:s:=s+'три';
  4:s:=s+'четыре';
  5:s:=s+'пять';
  6:s:=s+'шесть';
  7:s:=s+'семь';
  8:s:=s+'восемь';
  9:s:=s+'девять';
  end;
Form1.Edit2.Text:=s;
end;
Artur09 вне форума Ответить с цитированием
Старый 03.05.2009, 22:20   #2
HoLToFF
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 58
По умолчанию

Попроще, видимо, не получится
Вот нашёл Вам, посмотрите
http://loaduse.fatal.ru/material/alg...ad/chislit.rar
HoLToFF вне форума Ответить с цитированием
Старый 03.03.2019, 20:24   #3
likas
Новичок
Джуниор
 
Регистрация: 03.03.2019
Сообщений: 1
По умолчанию

и как, получилось?
likas вне форума Ответить с цитированием
Старый 10.03.2019, 07:29   #4
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

http://newerow1989.narod.ru/publ/zap...pisju/1-1-0-57
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа, которая отгадывает заданное число vakich Помощь студентам 7 24.02.2009 19:13
программа считывающая пять целых чисел и определяющая, печатающая наибольшее и наименьшее число из них Syber Общие вопросы C/C++ 3 30.06.2008 22:39
Номер телефона словами alexBlack Софт 0 23.05.2008 09:19
Именовать элементы массива не цифрами, а словами. Air Общие вопросы Delphi 15 07.03.2008 18:49
Паскаль.программа, которая определяет каким является введенное число... Integer Помощь студентам 4 18.11.2007 22:17