C-tapainen ++/--

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Post Reply
User avatar
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 5:53 pm

C-tapainen ++/--

Post by Jani » Tue Jan 29, 2013 9:12 pm

Värkkäillessäni muistipaloilla tulin ideaan helpottaa työtä ja laskea tavuja eteenpäin tyyliin

Code: Select all

x++
x+=4
Noh, mikäpä olisi parempi tapa toteuttaa työ kuin muistipalat?

Code: Select all

Function Counter(mem = 0, a = 0)
    If mem = 0 Then
        mem = MakeMEMBlock(4)
        PokeInt mem, 0, a
        Return mem
    EndIf
    num = PeekInt(mem, 0)
    PokeInt mem, 0, num + a
    Return num
EndFunction

num1 = Counter() ' Uusi counter, luku 0
num2 = Counter(0, 7) ' Uusi counter, luku 7

Print "    num1++: " + Counter(num1, 1)
Print "   num1+=5: " + Counter(num1, 5)
Print "      num1: " + Counter(num1)
Print ""
Print " num2+=100: " + Counter(num2, 100)
Print "num2+=num1: " + Counter(num2, Counter(num1))
Print "      num2: " + Counter(num2)

DeleteMEMBlock num1
DeleteMEMBlock num2

WaitKey
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition

User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: C-tapainen ++/--

Post by axu » Tue Jan 29, 2013 9:53 pm

En nyt oikein tiedä mitä pitäisi sanoa. Tässä funktiossa on yksi suuri ongelma. Se ei nimittäin mitenkään helpota koodin kirjoittamista. Eikö olisi ihan hyvä pidättyä tyylissä x = x + 1 tai jos haluaa säästää muutaman merkin x + 1?
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image

User avatar
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 5:53 pm

Re: C-tapainen ++/--

Post by Jani » Tue Jan 29, 2013 10:22 pm

axu wrote:En nyt oikein tiedä mitä pitäisi sanoa. Tässä funktiossa on yksi suuri ongelma. Se ei nimittäin mitenkään helpota koodin kirjoittamista. Eikö olisi ihan hyvä pidättyä tyylissä x = x + 1 tai jos haluaa säästää muutaman merkin x + 1?
Onhan siinä se. Kuitenkin omista tottumuksista johtuen oli kyseisen ominaisuuden puute suuri.

Code: Select all

Funktio(Counter(num, 1))
vvvvvvvvvvv
Funktio(num++)
Säästää siinä yhden rivin aina.
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition

User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: C-tapainen ++/--

Post by axu » Tue Jan 29, 2013 10:43 pm

Jani wrote:Onhan siinä se. Kuitenkin omista tottumuksista johtuen oli kyseisen ominaisuuden puute suuri.
Säästää siinä yhden rivin aina.
Ah, niin tietenkin tarkoitat näiden operaattoreiden kutsumista upotettuna muuhun koodiin. Totta, tuotapa en ajatellut. Onhan se joskus kätevää, mutta toisinaan lienee selvempää laittaa eri riveille ne.
EDIT:

Jos parannusehdotusta kaipaat, laadippa vasenkätinenkin operaatio (eli ++x)

Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image

User avatar
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 5:53 pm

Re: C-tapainen ++/--

Post by Jani » Tue Jan 29, 2013 10:49 pm

axu wrote:
Jani wrote:Onhan siinä se. Kuitenkin omista tottumuksista johtuen oli kyseisen ominaisuuden puute suuri.
Säästää siinä yhden rivin aina.
Ah, niin tietenkin tarkoitat näiden operaattoreiden kutsumista upotettuna muuhun koodiin. Totta, tuotapa en ajatellut. Onhan se joskus kätevää, mutta toisinaan lienee selvempää laittaa eri riveille ne.
EDIT:

Jos parannusehdotusta kaipaat, laadippa vasenkätinenkin operaatio (eli ++x)

Eipä se ole kuin vaihtaa

Code: Select all

Return num
vvvvvvvvvv
Return num + a
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition

User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: C-tapainen ++/--

Post by axu » Wed Jan 30, 2013 10:09 am

Jani wrote:Eipä se ole kuin vaihtaa

Code: Select all

Return num
vvvvvvvvvv
Return num + a
Nyt taitaa olla plusmerkki miinusmerkin tilalla ;)
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image

User avatar
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: C-tapainen ++/--

Post by koodaaja » Wed Jan 30, 2013 10:25 am

Kuinka niin? num+a:han tuohon memblockiinkin kirjoitettiin. ++x pitäisi palauttaa x+1, kuten annettu funktio antaa kun a=1. Jokseenkin järkevämmäksi katsoisin ominaisuuden lisäämisen johonkin jälkikäsittelijään, jolloin funktiokutsun sijaan voisi koodiinsa oikeasti kirjoittaa vain muuttuja++ :>

User avatar
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 5:53 pm

Re: C-tapainen ++/--

Post by Jani » Wed Jan 30, 2013 12:46 pm

koodaaja wrote:Kuinka niin? num+a:han tuohon memblockiinkin kirjoitettiin. ++x pitäisi palauttaa x+1, kuten annettu funktio antaa kun a=1. Jokseenkin järkevämmäksi katsoisin ominaisuuden lisäämisen johonkin jälkikäsittelijään, jolloin funktiokutsun sijaan voisi koodiinsa oikeasti kirjoittaa vain muuttuja++ :>
Palautetaan num, mutta kirjoitetaan num + a.
Palauta num + a -> ++x.
Jälkikäsittely on toinen vaihtoehto. :)
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition

User avatar
axu
Devoted Member
Posts: 854
Joined: Tue Sep 18, 2007 6:50 pm

Re: C-tapainen ++/--

Post by axu » Wed Jan 30, 2013 3:29 pm

Eiku hups mitenköhän nyt tuli taas sekoiltua :D Anteeksi tuo edellinen, oikeinhan se tosiaan meni.
Jos tämä viesti on kirjoitettu alle 5 min. sitten, päivitä sivu. Se on saattanut jo muuttua :roll:
Image

Post Reply

Who is online

Users browsing this forum: No registered users and 3 guests