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

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

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.07.2011, 12:34   #31
anyx
Форумчанин
 
Регистрация: 10.09.2009
Сообщений: 352
По умолчанию

Цитата:
Сообщение от LN_ Посмотреть сообщение
"Код не мой, но стиль....
Это игрушка.
Скомпилированый файл во вложении."



Это на си++?
Бейсик вроде...

Пасхалка в моей проге.

Код:
    while ((opt = getopt_long(argc, argv, optstring, longopts, NULL)) != -1)
        switch (opt)
        {
            case 'h': // -h или --help
            {
                interactive = false;
                printf(help);
                break;
            }

            // ...

            case 'g': // -g или --egg
            {
                interactive = false;
                printf("BALLS TO YOU!\n");
                break;
            }

            // ...
        }

Последний раз редактировалось anyx; 25.07.2011 в 12:37.
anyx вне форума Ответить с цитированием
Старый 25.07.2011, 12:38   #32
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Сегодня написал в шарпе свои худшие строки за последний год:
Код:
object GetDiff (object a, object b)
{
	Type type = a.GetType ();

	if (type == typeof (byte))
		return Math.Abs ((byte)a - (byte)b);
	if (type == typeof (Int16))
		return Math.Abs ((Int16)a - (Int16)b);
	if (type == typeof (Int32))
		return Math.Abs ((Int32)a - (Int32)b);
	if (type == typeof (Int64))
		return Math.Abs ((Int64)a - (Int64)b);
	if (type == typeof (float))
		return Math.Abs ((float)a - (float)b);
	if (type == typeof (double))
		return Math.Abs ((double)a - (double)b);

	throw new Exception ("Wrong data type " + type);
}
К сожалению, DLR появился только в четвёртом дотнете.

Можно было бы сделать switch, но он принимает не все типы. Проще всего было бы привести к string, но моя функция вызывается во внутреннем цикле, прога и так неслабо жрёт ресурсы.

Последний раз редактировалось ds.Dante; 25.07.2011 в 12:51.
ds.Dante вне форума Ответить с цитированием
Старый 25.07.2011, 12:44   #33
anyx
Форумчанин
 
Регистрация: 10.09.2009
Сообщений: 352
По умолчанию

Цитата:
Сообщение от ds.Dante Посмотреть сообщение
Сегодня написал в шарпе свои худшие строки за последний год:
Код:
object GetDiff (object a, object b)
{
	Type type = a.GetType ();

	if (type == typeof (byte))
		return Math.Abs ((byte)a - (byte)b);
	if (type == typeof (Int16))
		return Math.Abs ((Int16)a - (Int16)b);
	if (type == typeof (Int32))
		return Math.Abs ((Int32)a - (Int32)b);
	if (type == typeof (Int64))
		return Math.Abs ((Int64)a - (Int64)b);
	if (type == typeof (float))
		return Math.Abs ((float)a - (float)b);
	if (type == typeof (double))
		return Math.Abs ((double)a - (double)b);

	throw new Exception ("Wrong data type " + type);
}
К сожалению, DLR появился только в четвёртом дотнете.
Можно же сразу привести к наиболее объёмному типу (double) и просто всегде возвращать
(double)a - (double)b
anyx вне форума Ответить с цитированием
Старый 25.07.2011, 13:04   #34
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Возвращаемое значение у меня должно быть такое же как у аргументов.
ds.Dante вне форума Ответить с цитированием
Старый 25.07.2011, 18:46   #35
anyx
Форумчанин
 
Регистрация: 10.09.2009
Сообщений: 352
По умолчанию

Цитата:
Сообщение от ds.Dante Посмотреть сообщение
Возвращаемое значение у меня должно быть такое же как у аргументов.
А так разве не работает?

Код:
object GetDiff(object a, object b)
{
    return (a.GetType())Math.Abs(a - b);
}
Ещё попробуй dynamic_cast, или как оно там в C# называется...
Короче, C# должен поддерживать обобщённое программирование
anyx вне форума Ответить с цитированием
Старый 25.07.2011, 19:09   #36
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

Код:
template <typename T>
T GetDiff(const T &a, const T &b)
{ return static_cast<T>(abs<T>(a - b)); }
а еще ругают шаблоны в плюсах
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 вне форума Ответить с цитированием
Старый 25.07.2011, 20:00   #37
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

А вот мой QBASIC, ПРОГА, игра в лотерею 6 х 45, весь код, не влазает!!! Я порой то же фигею, тем не менее, выигрывал, пять номеров!
Код:
DATA 1,3,4,9,10,27
DATA 1,2,14,22,36,37
T = 2: W = 2
LOCATE 1, 1, 0: W% = 6: Z% = 300: upr = 1
DIM K(45): X% = 6: DIM C%(300, 45): YY = 1: XY = 0
SCREEN 13: CLS : B% = 1: FOR S% = W% TO Z% STEP W%: LINE (S%, 0)-(S%, 220), 1: NEXT S%: FOR S% = 1 TO 54: LINE (6, S% * 4)-(300, S% * 4), 1: NEXT S%
FOR I% = 1 TO 200: FOR J% = 1 TO 6
READ P%: C%(I%, P%) = I%: K(P%) = K(P%) + 1: PSET (P% * W%, I% + 3), 14: D$ = INKEY$: IF D$ = CHR$(27) THEN LOCATE , , 1: END
NEXT J%:  NEXT I%: LOCATE 20, 35: II% = I%
1 : PSET (X%, I% + 3), 15: AX% = AX% + B%: LOCATE 20, 37: PRINT USING "##"; AX%
LOCATE 21, 38: PRINT "|": LOCATE 22, 37: PRINT USING "##"; K(AX%): ON upr GOTO 3, 2
2 : G = 1: FOR I = 1 TO II% - 1: IF C%(I, AX%) = 0 THEN 4 ELSE LOCATE YY, G: IF C%(I, AX%) - O > 9 THEN PRINT USING "###"; C%(I, AX%) - O; : G = G + 1 ELSE PRINT C%(I, AX%) - O;
O = C%(I, AX%): G = G + 2: IF G > 32 THEN YY = YY + 1: G = 1: PRINT "      "
4 : NEXT: PRINT "-("; I% - O; "/"; : PRINT USING "##.##"; O / K(AX%); : PRINT ")                  ": PRINT : O = 0: YY = 1
3 : D$ = INKEY$: IF D$ = "" THEN 3
IF D$ = CHR$(27) THEN LOCATE 1, 1, 1: END
IF ASC(D$) > 0 THEN 3
IF LEN(D$) = 2 THEN D = ASC(RIGHT$(D$, 1))
IF D = 134 THEN upr = 2: GOTO 2
IF D = 66 THEN 7
IF D = 67 THEN upr = 1: FOR E = 1 TO 3: LOCATE E, 1: PRINT "                                       ": NEXT
IF D = 81 THEN PSET (X%, I% + 3), 0: AX% = AX% - B%: I% = II%: GOTO 1
IF D = 82 THEN XY = 15
IF D < 72 OR D > 80 THEN 3
PSET (X%, I% + 3), XY: XY = 0
IF D = 72 THEN I% = I% - 1: AX% = AX% - B%
IF D = 80 THEN I% = I% + 1: AX% = AX% - B%
IF D = 75 THEN X% = X% - W%: B% = -1: IF AX% < 2 THEN AX% = 46: X% = 270
IF D = 77 THEN X% = X% + W%: B% = 1: IF AX% > 44 THEN AX% = 0: X% = 6
GOTO 1
не нашел 1987 год, ПК - БК-0010-01 , 16 кб - ОЗУ, язык, Фокал
valerij вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите исправить программу(условие, мой код, все присутствует!) djon_limit Общие вопросы C/C++ 1 29.10.2009 19:34
Мой форум Antoha79 О форуме и сайтах клуба 6 24.08.2009 12:29
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? Mclaren Помощь студентам 2 27.04.2009 22:37
Подправьте мой код пожалуйста Volchara Общие вопросы C/C++ 5 06.04.2009 17:05
Почему мой код не завершает процесс? Stilet Win Api 1 24.07.2008 20:28