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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2011, 21:25   #1
lonely_soul
 
Регистрация: 29.03.2011
Сообщений: 6
По умолчанию Заданное натуральное число записать прописью

помогите написать программу:

Заданное натуральное число не превосходящее 1000 записать прописью, то есть вывести соответствующее колличество числительных,
например 375-"триста семьдесят пять"
lonely_soul вне форума Ответить с цитированием
Старый 29.03.2011, 21:28   #2
Летучий_СкилетиК
Форумчанин
 
Аватар для Летучий_СкилетиК
 
Регистрация: 04.02.2011
Сообщений: 260
По умолчанию

писанины много..., помогу только за денежку, мой скайп maksim366780
Летучий_СкилетиК вне форума Ответить с цитированием
Старый 29.03.2011, 21:29   #3
Акоб
Форумчанин
 
Регистрация: 10.01.2011
Сообщений: 243
По умолчанию

Может вывести так?
375 = 3*100 + 7* 10 + 5?
Код:
int a, b, c;
a = 375 / 100;
b = 375 / 10 % 10;
c = 375 % 10;
Акоб вне форума Ответить с цитированием
Старый 29.03.2011, 21:30   #4
Sauber
Пользователь
 
Регистрация: 21.11.2010
Сообщений: 54
По умолчанию

также могу помочь за денежный эквивалент (402-142-430)

Последний раз редактировалось Sauber; 29.03.2011 в 21:59.
Sauber вне форума Ответить с цитированием
Старый 29.03.2011, 21:56   #5
Акоб
Форумчанин
 
Регистрация: 10.01.2011
Сообщений: 243
По умолчанию

Цитата:
Сообщение от Sauber Посмотреть сообщение
тоже самое) 402-142-430
Простите меня конечно, но что это?
Акоб вне форума Ответить с цитированием
Старый 29.03.2011, 22:00   #6
Sauber
Пользователь
 
Регистрация: 21.11.2010
Сообщений: 54
По умолчанию

это относилось не к Вашему посту, а к предыдущему. Если Вы посмотрите на время сообщений, то увидите что разница очень мала, и в момент написания моего сообщения, Вашего сообщения я не видел.
Sauber вне форума Ответить с цитированием
Старый 29.03.2011, 22:10   #7
Spyman
 
Регистрация: 29.03.2011
Сообщений: 6
По умолчанию

нужно брать число находить все составляющие его цифры (есть много способов)
например находить остаток от деления на 10 записывать его в переменную соответственно для сотен, десятков и единиц. дальше сложнее. я бы использовал один case для сотен (сто, двести, стриста... 10 вариантов) еще case (для чисел X00 -X19) и для чисел больше (X20 - X99) два caseА для десятков и единиц отдельно. Не очень понятно конечно. Если что пиши в личку. За небольшую плату напишу полностью :D .
небольшие знания C#, C++, Pascal, Delphi
готов делать работы за небольшую плату.
Spyman вне форума Ответить с цитированием
Старый 31.03.2011, 21:10   #8
Sinapsik
Пользователь
 
Аватар для Sinapsik
 
Регистрация: 29.03.2011
Сообщений: 28
По умолчанию

Все такие алчные,только за деньги и могут помогать,напишу в Delphi,думаю сможешь изменить
Код:
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;
UPD Писал без проверки,потестил,надо чуть поправить с целыми числами (10,200,600 и т.д.) и добавить массив под числа 11,12,13,14 и т.д.
UPD2 Сам подправил,"спасибо" будет достаточно )))
пы.сы.код может и не особо "правильный" и оптимизированный,но рабочий

Последний раз редактировалось Sinapsik; 31.03.2011 в 22:40.
Sinapsik вне форума Ответить с цитированием
Старый 24.04.2011, 19:34   #9
lonely_soul
 
Регистрация: 29.03.2011
Сообщений: 6
По умолчанию

большое спасибо!
lonely_soul вне форума Ответить с цитированием
Старый 29.04.2011, 12:51   #10
Sinapsik
Пользователь
 
Аватар для Sinapsik
 
Регистрация: 29.03.2011
Сообщений: 28
По умолчанию

Цитата:
Сообщение от lonely_soul Посмотреть сообщение
большое спасибо!
не за что

10 символов, что б их...
Sinapsik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Число прописью kzld Microsoft Office Excel 11 29.05.2013 17:01
Число прописью not4u Microsoft Office Excel 26 20.08.2012 20:40
даны действительное число а, натуральное число n [Паскаль] Анна22 Помощь студентам 2 07.12.2010 20:31
Число прописью. Делфи ilnar Помощь студентам 2 18.01.2010 16:42
является ли заданное натуральное число совершенным Савинова Помощь студентам 3 19.11.2008 09:51