Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Конвертор, Конвертор 
V
    Опции темы
ziga
Дата 7.5.2007, 08:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 25.4.2007

Репутация: нет
Всего: 1



Стоит такая задача: 
Я ввожу в строку следующее значение <v1> <u1> = <v2> <u2>, где v1 v2 числовые значения u1 u2 их так сказать свойства, пример:
1 minute = 60 second 
7200 second = 2 hour

так вот я ввожу не все значения а только на пример 1 minute = ? second мне надо вынимать числовое значение, выяснить какое у него свойство минута это или час далее после "=" определяется в какое значение надо конвертировать и вместо "?" выводиться значение, 
1 minute = 60 second.

Высказывайте свои идеи, решения, алгоритмы. Спасибо всем кто поможет!

PM MAIL   Вверх
iddqd
Дата 7.5.2007, 08:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 16.11.2005

Репутация: 2
Всего: 2



Насколько много может быть свойств?
Могут ли написать так: ? seconds = 10 minutes ?

А если могут писать только, как в примере и такие же "свойства", то решение очень простое:
1. Делаем сплит строки с разделителями " " и "=".
2. Проверяем, что есть все 4 аргумента: значение, свойство, значение, свойство.
3. В зависимости от первого свойства и значения вписываем второе.


--------------------
PM MAIL   Вверх
ziga
Дата 7.5.2007, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 25.4.2007

Репутация: нет
Всего: 1



Цитата(iddqd @  7.5.2007,  08:15 Найти цитируемый пост)
Могут ли написать так: ? seconds = 10 minutes ?

писать можно только так <v1> <u1> = ? <u2>
но свойства у всех могут быть разные 
5 мин = ? сек
60 сек = ? часов
все возможные ворианты


Цитата(iddqd @  7.5.2007,  08:15 Найти цитируемый пост)
1. Делаем сплит строки с разделителями " " и "=".

Можно поподробнее с примером
PM MAIL   Вверх
iddqd
Дата 7.5.2007, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 16.11.2005

Репутация: 2
Всего: 2



Код

            string expr = "3 hours = ? minutes";
            char[] slitters = { ' ', '=' };
            string[] args = expr.Split(slitters, StringSplitOptions.RemoveEmptyEntries);


Добавлено через 1 минуту и 24 секунды
args[0], args[1], ... получаем нужное значение.
Проверяем что в args[1] и в args[3] и по нужной формуле подставляем.

PS. Не забудь проверить, чт овсе аргументы заданы.


--------------------
PM MAIL   Вверх
ziga
Дата 7.5.2007, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 25.4.2007

Репутация: нет
Всего: 1



Спасибо! Последний вопрос в консольном приложении string конвертиться в int?
PM MAIL   Вверх
iddqd
Дата 7.5.2007, 09:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 16.11.2005

Репутация: 2
Всего: 2



Да.


--------------------
PM MAIL   Вверх
ziga
Дата 7.5.2007, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 25.4.2007

Репутация: нет
Всего: 1



Цитата(iddqd @  7.5.2007,  08:47 Найти цитируемый пост)
Проверяем что в args[1] и в args[3] и по нужной формуле подставляем.

 
Помогите кто нибуть с условием не писать же мне миллион условий:
Если секунды и минуты то
Если секунды и часы то
Если секунды и дни то
Если минуты и сек то ….
.....................

Подскажите какую нибуть умную идею )

PM MAIL   Вверх
stab
Дата 7.5.2007, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

Репутация: 22
Всего: 48



переводи всё в секунды, вычисляй, а потом уже конвертируй в нужные еденицы.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
ziga
Дата 7.5.2007, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 25.4.2007

Репутация: нет
Всего: 1



Цитата(cully @  7.5.2007,  18:53 Найти цитируемый пост)
переводи всё в секунды, вычисляй, а потом уже конвертируй в нужные еденицы. 


Ну я сделал вот так:

Код

        // переводи v1 в секунды
        public double TimeV1(double v1, string u_1)
        {
            if (u_1 == "second") return v1;
            if (u_1 == "minute") return v1 *= 60;
            if (u_1 == "hour") return v1 *= 60 * 60;
            if (u_1 == "day") return v1 *= 24 * 60 * 60;

            return 0;
        }

        // возвращаем v2
        public double TimeV2(double v1, string u_2)
        {
            if (u_2 == "second") return v1;
            if (u_2 == "minute") return v1 = v1 / 60;
            if (u_2 == "hour") return v1 = ((v1 / 60) / 60);
            if (u_2 == "day") return v1 = (((v1 / 24) / 60) / 60);

            return 0;
        }


есть ещё ворианты или этот самый практичный ?
PM MAIL   Вверх
iddqd
Дата 7.5.2007, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 16.11.2005

Репутация: 2
Всего: 2



Вариантов не так уж и много: switch, if.
Делай все в одном методе, не такой уж он и большой.


--------------------
PM MAIL   Вверх
ziga
Дата 8.5.2007, 08:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 273
Регистрация: 25.4.2007

Репутация: нет
Всего: 1



iddqd, cully спасибо за помощь! smile 
PM MAIL   Вверх
Naum
Дата 9.5.2007, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 743
Регистрация: 7.9.2005
Где: Саратов, ул. Поса дского, 298

Репутация: 8
Всего: 15



А можно хранить слово "second", "minute", "metr" smile и т.д и количество базовых единиц в бд.
Бд может быть и текстовый файл. Например,
Цитата

second 1
minute 60
hour 3600

а потом при вводе в консоль искать это слово в файлике и узнавать сколько оно "весит" в базовых единицах.


--------------------
У нас всего два праздника Новый год и ТЯПница.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0483 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.