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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2012, 12:11   #11
Sylar9
Форумчанин
 
Регистрация: 22.10.2011
Сообщений: 252
Вопрос

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Можно использовать класс TStringList. В нём нумерация строк есть и конструкция 0 = ноль 1 = один .....
все равно не пойму
Sylar9 вне форума Ответить с цитированием
Старый 15.02.2012, 12:12   #12
Inv1s
Форумчанин
 
Аватар для Inv1s
 
Регистрация: 06.11.2011
Сообщений: 214
По умолчанию

Код:
#include <map>
//Для создание контейнера достаточно написать:
map <key type,data type> map_name;
//Для доступа (или записи) в массив нужно писать:
map_name[key];
Помог, нажми на весы
html, js, php, С++, С#, OpenGl, DirectX, XNA, HLSL
Inv1s вне форума Ответить с цитированием
Старый 15.02.2012, 12:15   #13
Sylar9
Форумчанин
 
Регистрация: 22.10.2011
Сообщений: 252
Вопрос

Цитата:
Сообщение от Inv1s Посмотреть сообщение
Код:
#include <map>
//Для создание контейнера достаточно написать:
map <key type,data type> map_name;
//Для доступа (или записи) в массив нужно писать:
map_name[key];
а проше не как нельзя ?
Sylar9 вне форума Ответить с цитированием
Старый 15.02.2012, 12:15   #14
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Ну, или в моём случае:

Код:
TStringList strin = new TStringList();
С ним работать удобнее (но впрочем, кому как).
Дальше используешь свойства
Код:
strin->Names(int Index) - Имя аргумента
strin->Values(AnsiString Names) - Значение
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 15.02.2012 в 12:19.
Smitt&Wesson вне форума Ответить с цитированием
Старый 15.02.2012, 12:18   #15
Sylar9
Форумчанин
 
Регистрация: 22.10.2011
Сообщений: 252
Вопрос

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Ну, или в моём случае:

Код:
TStringList strin = new TStringList();
С ним работать удобнее (но впрочем, кому как).
просто я так еще не работал
Sylar9 вне форума Ответить с цитированием
Старый 15.02.2012, 12:21   #16
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Sylar9 Посмотреть сообщение
просто я так еще не работал
Это Борландовский стиль.
Если консольный вариант, лучше использовать STL. Можно и через массив структур зделать

Код:
struct value()
{
int number;
strings string;
}
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 15.02.2012 в 12:24.
Smitt&Wesson вне форума Ответить с цитированием
Старый 15.02.2012, 12:23   #17
Sylar9
Форумчанин
 
Регистрация: 22.10.2011
Сообщений: 252
Вопрос

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Это Борландовский стиль.
а что то из vS есть
Sylar9 вне форума Ответить с цитированием
Старый 15.02.2012, 12:26   #18
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Sylar9 Посмотреть сообщение
а что то из vS есть
В VS есть класс TStringList. На счёт AnsiString не скажу, не знаю.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 15.02.2012, 12:42   #19
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

ручками, все ручками. берешь старший разряд, в зависимости от цифры выводишь слово (один/одна, два/две, три и тд), в зависимости от разряда выводишь пояснение (миллион, тысяча).

в универе писал это на матлабе, откопал на почте сырец
Код:
data = {
    { 'одиннадцать', 'двенадцать', 'тринадцать', 'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать', 'восемнадцать', 'девятнадцать' },
    { 'один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь', 'девять' },
    { 'десять', 'двадцать', 'тридцать', 'сорок', 'пятьдесят', 'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто' },
    { 'сто', 'двести', 'триста', 'четыреста', 'пятьсот', 'шестьсот', 'семьсот', 'восемьсот', 'девятьсот' }
};

pos = 2;
arr = {};
flag = 0;
number = '12345';

while length(number) ~= 0

    if pos == 5
        arr{end + 1} = 'тысяч';
        data{2}{1} = 'одна';
        data{2}{2} = 'две';
        pos = 2;
        flag = 1;
    end

    if length(number) > 1 && pos == 2
        val = str2num(number(end-1:end));
        if val > 10 && val < 20
            arr{end + 1} = data{1}{val - 10};
            number = number(1:end - 2);
            pos = pos + 2;
            flag = 0;
            continue;
        end
    end
   
    val = str2num(number(end));
    if val ~= 0
        if flag == 1
            if val == 1
                arr(end) = {'тысяча'};
            elseif val >= 2 && val <= 4
                arr(end) = {'тысячи'};
            end
        end
        arr{end + 1} = data{pos}{val};       
    end
   
    flag = 0;
    number(end) = [];
    pos = pos + 1;
end

num_str = '';
for i = arr(end:-1:1)
    num_str = [num_str i{1} [' '] ];
end

disp(num_str);
меняешь переменную
Код:
number = '12345';
для изменения числа для преобразования (в реале это число может вводить юзер). потестить можешь тут.
http://lavica.fesb.hr/octave/octave-on-line_en.php
принимает числа от 1 до 999999. проверок на невалидный ввод нет.

выводит с правильными окончаниями (одна тысяча, две тысячи, пять тысяч)

могу перевести на си/плюсы за оплату.
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 15.02.2012, 15:15   #20
crymchanin
Пользователь
 
Аватар для crymchanin
 
Регистрация: 01.02.2012
Сообщений: 84
По умолчанию

Цитата:
Сообщение от Sylar9
это разве массив? map<int,std::string>;
Код:
#include <map>
#include <string>
#include <locale>

using namespace std;

int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "Russian");

    map<int, string> numbers;
    numbers[0] = "Нуль";
    numbers[1] = "Один";
    numbers[2] = "Два";
    .....
}
crymchanin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение числа как целого Klubnik Microsoft Office Excel 4 12.01.2012 18:04
запись любого целого числа n (n<3999) арабскими цифрами перевести в запись римскими цифрами (на языке C) qazse Помощь студентам 1 24.11.2011 12:05
Cумма цифр целого числа К Licwin Паскаль, Turbo Pascal, PascalABC.NET 8 01.07.2011 11:38
Вывести числа целого неотр. числа Gonzo Помощь студентам 11 04.05.2010 16:55
сумма цифр целого числа mihsel Microsoft Office Excel 8 13.04.2009 13:57