Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Активизм > Форумные конкурсы

Форумные конкурсы Конкурсы под эгидой форума

Ответ
 
Опции темы
Старый 19.02.2007, 14:34   #1
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Смущение Простенький программерский конкурс...

Предлагаю сделать серию простеньких форумных конкурсов.
Как вариант начала серии предлагаю вот такой конкурс:

Конкурс на самую оригинальную функцию toggle'a переменной (0/1).
Начальнай вариант:

 
Function toggle(a)
    a=1-a
end function
Можно сделать данный конкурс турнирным - лучшие 50 проходят во второй тур, оттуда лучшие 10 - в третий и т.д.
В качестве приза предлагаю либо медаль, либо награду "За оригинальность"

Ну, кто хочет подобную серию?
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Старый 19.02.2007, 15:54   #2
jimon
 
Сообщений: n/a
Re: Простенький программерский конкурс...

Ize'g0re
такую toggle придумали уже давно
в бейсиках ето not ... типа a = not a
а в С++ ето "!" .. a = !a;
 
Ответить с цитированием
Старый 19.02.2007, 17:55   #3
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Простенький программерский конкурс...

Ize'g0re
Дай Бог, чтобы хоть один, кроме твоего, приудумали, а ты про 50 говоришь)
(Offline)
 
Ответить с цитированием
Старый 19.02.2007, 19:38   #4
Serendipity
Знающий
 
Регистрация: 05.01.2007
Сообщений: 229
Написано 5 полезных сообщений
(для 3 пользователей)
Re: Простенький программерский конкурс...

Мда.. задачка не оригинальна.
может лучше предложить знак float/real/double/что-там-у-вас поменять ручками.
Мне пришлось однажды.. когда из-за неявных преобразования на выходе из функции я получал float с потеряным знаком..
(Offline)
 
Ответить с цитированием
Старый 20.02.2007, 01:57   #5
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Простенький программерский конкурс...

a xor $1000000000000000
(Offline)
 
Ответить с цитированием
Старый 21.02.2007, 02:29   #6
Serendipity
Знающий
 
Регистрация: 05.01.2007
Сообщений: 229
Написано 5 полезных сообщений
(для 3 пользователей)
Re: Простенький программерский конкурс...

Да-да, я так и сделал.. я вспомнил.. попутно с этим я еще пытался вручную делить float на степень двойки...вот это уже задача поинтереснее.

кстати предложение Диплоимата еще ия вляется решением по конкурсу..
a=a xor 1
так как в компьютерах нет узла, вы полняющего операцию XOR, она заменима несколькими стандартными (И,ИЛИ,НЕ) - это к Имперсоналису
(Offline)
 
Ответить с цитированием
Старый 21.02.2007, 10:51   #7
jimon
 
Сообщений: n/a
Re: Простенький программерский конкурс...

Serendipity
xor ето самая быстрая операция, и по скорости она сравнима с И,ИЛИ,НЕ
узел есть в ALU

просто раньше ... a = a xor a был самый быстрый способ обнулить переменую
помойму даже в асемблере щиталось что сделать xor быстрее чем присвоить ноль

ps. дело в том что ALU обычно имеет частоту больше чем сам процессор
и даже если для операции требуется на 3 такта больше .. то разницы для программы как таковой нету
хотя в разных процесорах по разному
 
Ответить с цитированием
Старый 21.02.2007, 13:50   #8
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Re: Простенький программерский конкурс...

я вообщето имел в виду ЛЮБУЮ ОРИГИНАЛЬНУЮ идею... можно даже через If Endif делать, да мало ли через какой ещё геморрой! главный и единственный критерий - ОРИГИНАЛЬНОСТЬ! скорость, доступность, прочиеусловия не учитываются...
Ну, кто ещё хочет предложить вариант тоггла?
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Старый 21.02.2007, 15:53   #9
Chrono Syndrome
 
Сообщений: n/a
Re: Простенький программерский конкурс...

Ну, допустим, вот:
Procedure Toggle(a)
ProcedureReturn (A + 1) % 2
EndProcedure
 
Ответить с цитированием
Старый 21.02.2007, 18:29   #10
Chrono Syndrome
 
Сообщений: n/a
Re: Простенький программерский конкурс...

Все, ребята, встречайте победителя ...
#MemorySize = 2 - 1
Global Dim Memory.B(#MemorySize)
Procedure Interpret(Buffer.S)
Define I, Ptr, Mode, Level, *EndAddress = @Buffer + Len(Buffer) - 1
Enumeration
#Normal : #Skip : #ReverseSkip
EndEnumeration
For I = @Buffer To *EndAddress
Select PeekB(I)
Case '+' : If Mode = #Normal : Memory(Ptr) + 1 : EndIf
Case '-' : If Mode = #Normal : Memory(Ptr) - 1 : EndIf
Case '>' : If Mode = #Normal : Ptr + 1
If Ptr > #MemorySize : Ptr = 0 : EndIf
EndIf
Case '<' : If Mode = #Normal : Ptr - 1
If Ptr < 0 : Ptr = #MemorySize : EndIf
EndIf
Case '[' : Select Mode
Case #Normal : If Memory(Ptr) = 0 : Mode = #Skip : EndIf
Case #Skip : Level + 1
Case #ReverseSkip 
If Level = 0 : Mode = #Normal : Else : Level - 1 : EndIf
EndSelect
Case ']' : Select Mode
Case #Normal : If Memory(Ptr) <> 0 : Mode = #ReverseSkip : EndIf
Case #Skip 
If Level = 0 : Mode = #Normal : Else : Level - 1 : EndIf
Case #ReverseSkip : Level + 1
EndSelect
EndSelect
If Mode = #ReverseSkip 
If I = *Buffer : Break : Else : I - 2 : EndIf
EndIf
Next I
EndProcedure
; -=-=-=-=-=-=-=-=-=-=-=-=-
Procedure Toggle(A)
Memory(0) = A
Interpret(">[-]<[[-]>]+")
ProcedureReturn Memory(0)
EndProcedure
P.S. Пока писала эту хрень, в голове родился еще один вариантик (поскромнее, конечно =)) ...
: Toggle
>R 0 1 R>
IF DROP ELSE NIP THEN
;
 
Ответить с цитированием
Старый 21.02.2007, 18:40   #11
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Простенький программерский конкурс...

Brainf**k) Да, его сложно переплюнуть.
(Offline)
 
Ответить с цитированием
Старый 21.02.2007, 18:47   #12
Chrono Syndrome
 
Сообщений: n/a
Re: Простенький программерский конкурс...

Да, его сложно переплюнуть.
Хех, сложно но можно =). Про Malbolge слышал ?
 
Ответить с цитированием
Старый 22.02.2007, 13:40   #13
Taugeshtu
scientist.alien
 
Аватар для Taugeshtu
 
Регистрация: 12.02.2007
Сообщений: 2,098
Написано 1,030 полезных сообщений
(для 2,593 пользователей)
Re: Простенький программерский конкурс...

А, пардон, на каком языке это писалось?(я с математикой практически не знаком, так что идентифицировать команды не смог...)
Я кроме select case ничего знакомого не увидел...
__________________
Public service announcement: вы можете заблокировать отображение сообщений определённого пользователя, добавив его ник в список игнорируемых.
Tau lab.
We LOVE you. We MADE you.
(Offline)
 
Ответить с цитированием
Старый 22.02.2007, 14:06   #14
Chrono Syndrome
 
Сообщений: n/a
Re: Простенький программерский конкурс...

А, пардон, на каком языке это писалось?(я с математикой практически не знаком, так что идентифицировать команды не смог...)
Я кроме select case ничего знакомого не увидел...
Первые 2 - PureBASIC v4.0
Последняя - Win32FORTH v6.11.10
 
Ответить с цитированием
Старый 23.02.2007, 01:15   #15
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Простенький программерский конкурс...

2Jimon
ИМХО:
a=a xor a , врядли будет работать быстрее чем a=0, т.к. в любрм соучае идет присваивание, а вто обнуление регистра процессора, типа
XOR EAX , будет наверняка быстрее чем любоке присваивание переменной ему.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простенький HTTP запрос <-TzX-> Основной форум 0 10.07.2009 21:45
Сеть, простенький вопрос jimon Болтовня 2 21.11.2007 20:10
Предлагаю конкурс.... Raiter Форумные конкурсы 50 15.06.2007 20:58
Конкурс начался! SubZer0 MJRG 0 01.03.2007 03:08
Программерский поезд jimon Юмор 7 16.01.2007 20:20


Часовой пояс GMT +4, время: 19:19.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com