Welcome, Guest. Please login or register.


Author Topic: BASIC (Read 168778 times)

Offline szipucsu

  • EP addict
  • *
  • Posts: 7797
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 35.0 Firefox 35.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #735 on: 2015.February.09. 15:46:10 »
Kicsit belepiszkáltam a programba, most már nem kell 4 percet várni az elején, csak 1 percet. Az out 191,12 és a poke 56,201 csodákra képes. :D

Hát még ha Zzzippel lefordítanánk, még gyorsabb lenne, gondolom. A Zzzippel fordításhoz viszont pár apró dolgot módosítani kéne, mert akad benne 2 hely, ahol nem egész számokat kezel.
Az egyik:
Code: [Select]
610 IF RND>.5 THENA szakikat kérdezem: Ezt mivel lehetne helyettesíteni, aminek pontosan ugyanez lenne a hatása? IF RND(10)>5 THEN egyenértékű lenne vele?

A másik, a páros számok felismerése. Páros számra van szüksége valahol a programnak, és ezt a páros számot is RND-ből állítja elő. Először megvizsgálja, páros-e, úgy, hogy elosztja kettővel, és ha az INT függvénnyel megvizsgálva nem páros, újra generál, amíg páros nem lesz. Páros szám generálásához hogyan lehetne kikerülni az INT függvényt?
Code: [Select]
620 LET Q=RND(39)
630 IF Q/2<>INT(Q/2) THEN GOTO 620
Ha jól értem, itt 0 és 38 közötti véletlenszerű páros számot kell generálni. Ha jól számolom, ugyanaz, mint ez:

620 LET Q=RND(20)*2

Jól számolom? Mert ez lehet 0 is és max. 19 is, és ha ezt megszorozzuk 2-vel pont ugyanaz jön ki, mint az előbb.
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline endi

  • EP addict
  • *
  • Posts: 7090
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 40.0.2214.94 Chrome 40.0.2214.94
    • View Profile
    • Honlapom
Re: BASIC
« Reply #736 on: 2015.February.09. 16:00:19 »
de miért ezt a béna programot foltozgatod?
szerintem annyit nem ér :)
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • EP addict
  • *
  • Posts: 7797
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 35.0 Firefox 35.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #737 on: 2015.February.09. 16:03:35 »
de miért ezt a béna programot foltozgatod?
szerintem annyit nem ér :)
Szórakozásból. Miért ne? Úgyse használja senki, de milyen poén, hogy ilyen is van, eddig nem volt. Kísérletezés, sikerélmény. Megörültem, hogy előkerült a szekrény mélyéről és most kicsit elvagyok vele. Értelme nem sok van, az nem baj.
Majd ha a tied kész lesz, azzal is lehet szórakozni.
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline szipucsu

  • EP addict
  • *
  • Posts: 7797
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 35.0 Firefox 35.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #738 on: 2015.February.09. 23:35:17 »
INT függvény nélkül hogyan lehetne megvizsgálni, hogy egy szám páros-e? A Zzzipnél az INT-nek nincs hatása, így lefordított programnál nem működne.
Code: [Select]
840 IF YY/2=INT(YY/2) THENEhelyett mit lehetne beírni?

Favágó módszer:
Code: [Select]
831 LET YY$=STR$(YY)
832 LET LENYY=LEN(YY$)
833 LET LY$=YY$(LENYY:LENYY)
840 IF LY$="0" OR LY$="2" OR LY$="4" OR LY$="6" OR LY$="8" THEN

Gondolom, ez működne, de nincs valami más módszer? Mert ha ez sokszor lefut egymás után, jelentősen megnöveli a futásidőt.
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 35.0 Firefox 35.0
    • View Profile
    • http://lgb.hu/
Re: BASIC
« Reply #739 on: 2015.February.10. 02:07:40 »
INT függvény nélkül hogyan lehetne megvizsgálni, hogy egy szám páros-e? A Zzzipnél az INT-nek nincs hatása,

IS-BASIC-rol fogsincs, meg Zzzip-rol sem, de ugy altalaban barmilyen programnyelven en ugy csinalnek pl ilyet, hogy binaris "es" az 1-el, ha az eredmeny 1, akkor ugye paratlan, kulonben meg paros (mert ugye ha kettes szamrendszerben nezzuk, akkor 0-ra vegzodik minden paros szam, es 1-re a parosak, mas lehetoseg meg incs). Sajnos, nem jottem ra most igy hirtelen, hogy IS-BASIC-ben ezt hogy kell csinalni :( Commodore BAISC-ben a "print 12 and 1" es a "print 13 and 1" rendre 0 es 1 erteket ad, IS-BASIC-ben viszont mindig 1-et. Gyanitom, hogy IS-BASIC-ben ez logikai "es", az itt a baj.

Amugy a vicc az egeszben, hogy ez a paros/paratlan kb a vilag legegyszerubb dolga, megis mennyi problemat vet fel. hat hiaba, BASIC, asm-ban egyszeru lenne :)

Offline IstvanV

  • EP addict
  • *
  • Posts: 4806
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 35.0 Firefox 35.0
    • View Profile
Re: BASIC
« Reply #740 on: 2015.February.10. 09:19:17 »
IS-BASIC-rol fogsincs, meg Zzzip-rol sem, de ugy altalaban barmilyen programnyelven en ugy csinalnek pl ilyet, hogy binaris "es" az 1-el, ha az eredmeny 1, akkor ugye paratlan, kulonben meg paros (mert ugye ha kettes szamrendszerben nezzuk, akkor 0-ra vegzodik minden paros szam, es 1-re a parosak, mas lehetoseg meg incs). Sajnos, nem jottem ra most igy hirtelen, hogy IS-BASIC-ben ezt hogy kell csinalni :( Commodore BAISC-ben a "print 12 and 1" es a "print 13 and 1" rendre 0 es 1 erteket ad, IS-BASIC-ben viszont mindig 1-et. Gyanitom, hogy IS-BASIC-ben ez logikai "es", az itt a baj.

print 12 band 1

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 35.0 Firefox 35.0
    • View Profile
    • http://lgb.hu/
Re: BASIC
« Reply #741 on: 2015.February.10. 09:23:29 »
print 12 band 1

Aha! Koszi. Btw, valaki, van vmi kimerito jellegu IS-BASIC leiras? Operatorok, struktura stb, nem oktato jelleggel, hogy tanuljunk BASIC-ben, hanem programozoknak szolo referencia. Az IS-BASIC nekem eddig nagyon kimaradt ...

Offline Lacika

  • EP addict
  • *
  • Posts: 2918
  • Country: hu
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Firefox 35.0 Firefox 35.0
    • View Profile
    • http://www.ep128.hu
Re: BASIC
« Reply #742 on: 2015.February.10. 09:45:16 »
Aha! Koszi. Btw, valaki, van vmi kimerito jellegu IS-BASIC leiras? Operatorok, struktura stb, nem oktato jelleggel, hogy tanuljunk BASIC-ben, hanem programozoknak szolo referencia. Az IS-BASIC nekem eddig nagyon kimaradt ...

Jobb ötletem nincs, mint a Referencia Kézikönyv, bár erre a "kimerítő" jelző azért túlzás. Sajnos néhány helyen pontatlan (volt eredetileg) és hiányos. Én már javítgattam, kiegészítettem. De ha van még észrevétel, beleírhatom.

Offline endi

  • EP addict
  • *
  • Posts: 7090
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 40.0.2214.94 Chrome 40.0.2214.94
    • View Profile
    • Honlapom
Re: BASIC
« Reply #743 on: 2015.February.10. 10:09:33 »
sőt, van BOR is :)
Vigyázat! Szektás vagyok! :)

Offline szipucsu

  • EP addict
  • *
  • Posts: 7797
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 35.0 Firefox 35.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #744 on: 2015.February.10. 10:41:52 »
sőt, van BOR is :)
A SÖR jobb.

Értem amúgy, mire gondoltok a bináris 0-1 dologgal, de ezt hogyan lehetne megcsinálni BASIC-ben páros szám "detektáláshoz"? Tudja valaki?
Mit kéne a következővel csinálni?
Code: [Select]
840 IF YY/2=INT(YY/2) THENMár gondolkodtam sok mindenen, pl. megszorozzuk kettővel, aztán elosztjuk néggyel. biztos van valami olyan egyszerű műveletsorozat, amire mindig tipikusan eltérő eredmény jön ki páros és páratlan számoknál.
Az a baj, ez az utolsó számjegy detektálása kettes számrendszerben is majdnem annyira "bonyolult", mint az említett favágó módszerem. Ott is az utolsó számjegyet nézi meg, csak ott 0, 2, 4, 6, 8 lehet csak, kettes számrendszerben meg csak 0. Ha a 2, 4, 6, 8 számokat kihagyjuk, nem egyszerűsíti le számottevően a dolgot...


SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline endi

  • EP addict
  • *
  • Posts: 7090
  • Country: hu
  • grafikus, játékfejlesztõ, programozás, scifi, tudományok, vallás
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Chrome 40.0.2214.94 Chrome 40.0.2214.94
    • View Profile
    • Honlapom
Re: BASIC
« Reply #745 on: 2015.February.10. 10:52:03 »
hát if x band 1 (mivel az utolsó bit jelzi hogy páros-e ügyebár)

mondjuk az az érdekes hogy most rájöttem hogy én az or és and műveleteket nem értem a basic-ben :) mármint a tizedesjegyes számábrázolásban

de a legszomorúbb hogy én annak idején nem is tudtam hogy van ez a band és bor :( (joy-nál használtam csak, de nem is gondoltam rá hogy máshol is lehet, vagy hogy mi az igazából...)
Vigyázat! Szektás vagyok! :)

Offline lgb

  • EP addict
  • *
  • Posts: 3496
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux (Ubuntu) Linux (Ubuntu)
  • Browser:
  • Firefox 35.0 Firefox 35.0
    • View Profile
    • http://lgb.hu/
Re: BASIC
« Reply #746 on: 2015.February.10. 11:02:37 »
Az a baj, ez az utolsó számjegy detektálása kettes számrendszerben is majdnem annyira "bonyolult", mint az említett favágó módszerem. Ott is az utolsó számjegyet nézi meg, csak ott 0, 2, 4, 6, 8 lehet csak, kettes számrendszerben meg csak 0. Ha a 2, 4, 6, 8 számokat kihagyjuk, nem egyszerűsíti le számottevően a dolgot...

Miert ne egyszerusitene le? Kettes szamrendszerben megkapjuk az utolso szamjegyet, ha egy binaris AND muveletet vegzunk a kerdeses szam es az 1 kozott. Az eredmeny az utolso szamjegy lesz pont. Nekem csak az nem volt vilagos, hogy IS-BASIC-ben erre milyen operator valo, ezek szerint a BAND :)

Offline szipucsu

  • EP addict
  • *
  • Posts: 7797
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 35.0 Firefox 35.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #747 on: 2015.February.10. 11:11:01 »
Kettes szamrendszerben megkapjuk az utolso szamjegyet, ha egy binaris AND muveletet vegzunk a kerdeses szam es az 1 kozott.
Jaaa, kezdem már érteni. Annyira új nekem is ez, hogy nem tudtam elvonatkoztatni.

De akkor ezt hogyan kéne átírni?
840 IF YY/2=INT(YY/2) THEN

Simán így?
840 IF YY BAND 1 THEN

Ennyi lenne csak?

SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos

Offline Lacika

  • EP addict
  • *
  • Posts: 2918
  • Country: hu
  • OS:
  • Windows NT 6.3 Windows NT 6.3
  • Browser:
  • Firefox 35.0 Firefox 35.0
    • View Profile
    • http://www.ep128.hu
Re: BASIC
« Reply #748 on: 2015.February.10. 11:22:46 »

De akkor ezt hogyan kéne átírni?
840 IF YY/2=INT(YY/2) THEN

Kár cifrázni...:oops:

840 IF REM(YY,2)=0 THEN

De a BAND is jó.
« Last Edit: 2015.February.10. 11:46:13 by Lacika »

Offline szipucsu

  • EP addict
  • *
  • Posts: 7797
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 35.0 Firefox 35.0
    • View Profile
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: BASIC
« Reply #749 on: 2015.February.10. 11:39:24 »
840 IF REM(YY,2)=0 THEN
De a BAND is jó.
Ez már a bőség zavara, már választani is lehet két módszer közül. :D
Melyik műveletet végzi el gyorsabban a gép, lehet ezt tudni? Ha egy cikluson belül jó sokszor elvégzi, akkor lehet jelentősége.

Szerk.: Nekem elsőre a BANDás módszer nem működött, vagy legalábbis pont fordítva működhet, és a páratlant "detektálja".
« Last Edit: 2015.February.10. 11:46:04 by szipucsu »
SOUND SOURCE 3,STYLE 16,LEFT 16,RIGHT 64,SYNC 2
SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 2
SOUND PITCH 25,SYNC 2
Videos