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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разбитие целого числа на цифры. Первая программа на C# 
:(
    Опции темы
Veon
Дата 9.2.2009, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

int cur = ch - '0';
                if (cur % 2 == 0)


Ну тогда уж можно и
Код

                if (ch % 2 == 1)



Код 0 - 48, код 1 - 49 и т.д. smile

К чему бы еще придраться..
Код

Console.WriteLine("Количество четных цифр " + a.ToString() + " в числе " + buf);

Код

Console.WriteLine("Количество четных цифр {0} в числе {1} ", a, buf);

smile

Это сообщение отредактировал(а) Veon - 9.2.2009, 16:56
PM   Вверх
diadiavova
Дата 9.2.2009, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Это понятно. Правда не понятно почему ch % 2 == 1, если чётным числам соответствуют чётные коды и наоборот.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Partizan
Дата 9.2.2009, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



diadiavova А, ну ок smile 

з.ы. /me думает закончится ли троллинг на 4 странице



--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Veon
Дата 9.2.2009, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да устроили code review smile
PM   Вверх
diadiavova
Дата 9.2.2009, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Цитата(Partizan @  9.2.2009,  16:55 Найти цитируемый пост)
з.ы. /me думает закончится ли троллинг на 4 странице

Это не троллинг, а срач. При троллинге всегда есть пострадавшие.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
crin
Дата 9.2.2009, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

static void Main(string[] args)
{
    string buf;
    Console.WriteLine("Введите целое число");
    buf = Console.ReadLine();
    int a = 0;
    int b = 0;
    int i = 0;
    if (buf[0] == '-')
        i++;

    for (; i < buf.Length; i++)
    {
        int cur = ch - '0';
        if (cur & 1 == 0)
            a++;
        else
            b++;  
    }
    Console.WriteLine("Количество четных цифр " + a.ToString() + " в числе " + buf);
    Console.WriteLine("Количество не четных цифр " + b.ToString() + " в числе " + buf);
    Console.ReadLine();
}


Это сообщение отредактировал(а) crin - 9.2.2009, 17:14
PM MAIL   Вверх
Partizan
Дата 9.2.2009, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



crin

Код

if (cur & 1 == 0)


это круто =)


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
PashaPash
Дата 9.2.2009, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

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



Цитата(diadiavova @  9.2.2009,  15:54 Найти цитируемый пост)
PashaPash, А дело не в коде, а в подходе к решению конкретной задачи. Ты используешь шаблонный подход со стандартными алгоритмами, а я подхожу к вопросу более гибко smile 

Нафиг гибкость, она неэффективна. В написании софта не место творчеству smile
Цитата(diadiavova @  9.2.2009,  17:09 Найти цитируемый пост)
Это не троллинг, а срач. При троллинге всегда есть пострадавшие. 

А ты еще не страдаешь?
Цитата(crin @  9.2.2009,  17:10 Найти цитируемый пост)
if (cur & 1 == 0)

Скобок не хватает и 
            bool b1 = (a % 2 == 0);
0000002e  mov         eax,dword ptr [rsp+20h] 
00000032  cdq              
00000033  and         eax,1 
....
;)



--------------------
PM MAIL WWW   Вверх
diadiavova
Дата 9.2.2009, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Цитата(PashaPash @  9.2.2009,  20:09 Найти цитируемый пост)
Нафиг гибкость, она неэффективна. В написании софта не место творчеству

Тогда твоих критериев эффективности я не понимаю.
 
Цитата(PashaPash @  9.2.2009,  20:09 Найти цитируемый пост)
А ты еще не страдаешь?


Интересно: с чего бы это? Да и я вообще к происходящему в интернетах отношусь весьма спокойно, так что, если ты хоте вывести кого-нибудь из себя, то жертву выбрал явно неудачно(я уже не говорю о том, что у тебя порой у самого нервы здают, а это уже не троллинг, а мазохизм).


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Partizan
Дата 9.2.2009, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



Цитата

00000033  and         eax,1 


PashaPash, аааааа  smile 

Ща в мозгу операцию провернул опять...каюсь...протупил   smile 


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Veon
Дата 9.2.2009, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(PashaPash @  9.2.2009,  18:09 Найти цитируемый пост)
00000033  and         eax,1 

Зря ты так, обломал великих оптимизаторов :(

Странно что еще не предлогали

Код

foreach (char c in str)
{
    if ("02468".IndexOf(cur) >= 0)
    ....
}


Ведь судя по этому

Цитата(diadiavova @  9.2.2009,  09:24 Найти цитируемый пост)
На васике выглядит так

Select Case buf
    Case "0"c," 2"c, "4"c, "6"c, "8"c
        a+=1
    Case "1"c," 3"c, "5"c, "7"c, "9"c
        b+=1
End Select

То бишь  -  2 инструкции кейс вместо 10.


Это 1 инструкия  smile 

Это сообщение отредактировал(а) Veon - 9.2.2009, 23:01
PM   Вверх
Partizan
Дата 9.2.2009, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



Ладно, ребят...заканчиваем....
топик исчерпан... smile
Посмеялись и хватит smile


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Veon
Дата 9.2.2009, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ок, топик конечно давно превратился в стёб. Но такой вопрос.

Домашний комп почти как на работе, только проц e8300 а не e8400, дома стоит 2008 server 64 bit, на работе 2003 server 32 bit
Результат с методом в массиве
дома        16-17 мс
На работе    15 мс
Рузультат с методом в 10 case
дома        14 мс
на работе    45-46 мс
Каким макаром? Что влияет на предсказание ветвлений? smile
Результат с массивом вполне совпадает с разницей в частоте.
PM   Вверх
diadiavova
Дата 10.2.2009, 00:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



Veon, О примере на васике. О количестве инструкций речи вообще не было. Я написал только о том, что на васике тот же самый код занимает меньше писанины. А поскольку, пишу я именно на нём(шарп не люблю) для меня это существенно.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
PashaPash
Дата 10.2.2009, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

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



Цитата(Veon @  9.2.2009,  22:52 Найти цитируемый пост)
Зря ты так, обломал великих оптимизаторов :(

Странно что еще не предлогали

На домашней машине у меня там and eax,80000001h вместо cdq/and 1. так что оптимизация имеет право на жизнь, в разумных пределах. 
Цитата(Veon @  9.2.2009,  23:56 Найти цитируемый пост)
Каким макаром? Что влияет на предсказание ветвлений?

Битность и AnyCpu. Ну и прочие неявные показатели - разница между 2008 и 2003 например. smile


--------------------
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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