Welcome, Guest. Please login or register.


Author Topic: Általános BASIC Kérdések (Read 423861 times)

Offline szipucsu

  • Global Moderator
  • EP addict
  • *
  • Posts: 9898
  • Country: hu
    • Támogató Támogató
    • Webnyelv.hu - Tanuljunk nyelveket!
Re: Általános BASIC Kérdések
« Reply #375 on: 2012.December.04. 22:57:38 »
Quote from: Tuby128
Ha lesz fiam akkor az IS-BASIC lesz az első nyelv amit meg fog tanulni.
Én azért a magyart javasolnám előbb. :D
100 SOUND SOURCE 2,STYLE 128,PITCH 25.2,SYNC 1
110 SOUND PITCH 25,SYNC 1
120 ! Videos

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
Re: Általános BASIC Kérdések
« Reply #376 on: 2012.December.04. 23:04:58 »
Sokat gondolkodtam azon, hogy vajon mikor írtam az első programomat. 6 évesen (első osztályos korom) előtt vagy után. Elsőben tanítják az írást olvasást én én úgy emlékszem nem volt előképzettségem.
 Mintha már egy for-ciklusos programot meg tudtam volna írni korábban is (azzal hogy kimásoltam a TIPPEK és TRÜKKÖK c. könyvből). De ebben nem vagyok egészen biztos.
 Szerintem a kazettákat is a borítójuk színéről és a betűk mintájából tudtam, hogy mi lehet rajtuk és úgy töltöttem be őket. A Sorcery az jó volt, mert azt előre kellett csak tekerni, pont az első volt a kazin.

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: Általános BASIC Kérdések
« Reply #377 on: 2012.December.04. 23:22:18 »
Quote from: Tuby128
Akkor ezek szerint a BASIC a hibás,
Kipróbáltam! A Commodora BASIC-ben is működik ez a megoldás és Turbo PAscal-ban is!
A FOR-NEXT sor csak egyszer kerül kiértékelésre.

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
Re: Általános BASIC Kérdések
« Reply #378 on: 2012.December.04. 23:32:13 »
Én itt a PC-n próbáltam ki egy C programkódot:

int i;  // olyan mint a NUMERIC I
int x=10; // LET X=10
for(i=0; i<x; i=i+1) 
// FOR I=0 ...  // Feltétel, addig marad a cikluban amíg igaz I<X // növekmény mint STEP +1
   {
   printf("%d\n",i);  // PRINT I
   x=x+1;  //LET X=X+1
   }  // NEXT

Ennek az lett az eredménye, hogy sosem ért véget a ciklusom mert X értéke mindig együtt növekedett I-vel, amit minden kiértékeléskor figyelembe is vett.

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
Re: Általános BASIC Kérdések
« Reply #379 on: 2012.December.04. 23:36:09 »
Az lesz itt a titok nyitja, hogy még Basic-ben és Pascal-ban azt adod meg, hogy mettől meddig menjen, addig C-ben azt, hogy mi a feltétel. A feltételt muszáj mindig kiértékelni, azt viszont, hogy pontosan meddig menjen, elég csak egyszer.

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: Általános BASIC Kérdések
« Reply #380 on: 2012.December.05. 07:24:24 »
Amúgy a szinusz függvényt használja a mozgáshoz?

Körív mentén mozog a sárga labda, így azt szinte szükségszerűen használni kell.
Még meg lehetne nézni hogyan lehetne ezt megvalósítani teknőcgrafikával, bár nem hiszem, hogy itt egyszerűsődne attól a megoldás. (Ha csak a vonalat rajzolnánk meg, akkor egyszerűbb lenne, de így nem).

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: Általános BASIC Kérdések
« Reply #381 on: 2012.December.05. 07:28:03 »
Más 8 bites gépeken ezt gondolom, BASIC-ben nem igazán lehet megcsinálni, mert tudtommal csak az EP-n lehet sok videólapot megnyitni és váltogatni azokat.

Tudtommal nem lehet megoldani.
A Spectrum Világokban volt példa maximum 4 fázisú animációra, de ott csak a rajzolás ment BASIC-ből, a "mozgatást" gépi kódú program végezte.

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: Általános BASIC Kérdések
« Reply #382 on: 2012.December.05. 07:29:13 »
Ennek az lett az eredménye, hogy sosem ért véget a ciklusom mert X értéke mindig együtt növekedett I-vel, amit minden kiértékeléskor figyelembe is vett.

Azt megállapíthatjuk: a C-nek más a filozófiája, mint a Turbo Pascal-nak, és a BASIC nyelvjárásoknak, úgy általában.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Általános BASIC Kérdések
« Reply #383 on: 2012.December.05. 10:11:41 »
Quote from: Lacika
Azt megállapíthatjuk: a C-nek más a filozófiája, mint a Turbo Pascal-nak, és a BASIC nyelvjárásoknak, úgy általában.

Ez bizta. Sot elegge "keplekeny" is, pl  szamtalan modon irhato:

for(i=0; i<x; i=i+1)

for(i=0; i<x; i++)

C-ben szeretjuk a rovidebb irasmodot.

for(i=0,egyebvar=2;i<x;i++)

Tobb minden is bezsufolhato oda :)

i=0 ; for(;i<x;i++)

Akar hianyozhat is vmi, es megcsinalod pl elotte.

for(i=0;i<x;) {
  ....
  i++;
}

vagy mashol csinaljuk az i noveleset ...

i=0;
for(;i<x;) {
 i++;
}

esetleg mast is mashol csinalunk :)


stb stb, sot meg ez is valid:

for(;;) {....}

csak ez epp vegtelen ciklus, bar nyilvan break-el "kilephetsz" belole.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Általános BASIC Kérdések
« Reply #384 on: 2012.December.05. 10:17:02 »
Quote from: Zozosoft
Én azóta is várom, mikor lesz kész verzió kiadva! :oops:

Kesz verzio?! Soha. Alap: egy software sosem keszul el, max rafogjak, hogy kesz :) Nade komolytalanra forditva a szot: ha tenyleg erdekel, kipakolom vhova a jelenlegi allapotot. Mert az a baj, hogy nincs annyi EP-s tapasztalatom feltetlen, hogy lassam, valahol valamit rosszul csinal, ami egy-ket basic programot megetettem vele, az nekem "ranezesre" jonak tunik, de ettol meg boven lehet benne hiba ... Ami jelenleg viszont tuti hianyzik: kene konvertalni az Ep-n hasznalhato karakterkeszleteket UTF8-ra, es ezt allithatora kene, mert ugye EP-n tobb charset is volt divatban foleg ha "extra" karaktereket is hasznalt az ember mint mondjuk egy ekezetes betu, vagy hasonlo ...

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: Általános BASIC Kérdések
« Reply #385 on: 2012.December.05. 10:19:45 »
Ez bizta. Sot elegge "keplekeny" is, pl  szamtalan modon irhato:

Az i++ - úgy tudom - hamarabb lefut, mint az i=i+1
Az ilyen gyorsműveleteket +/-1 hiányolom is a fullextrás IS BASIC-ből, pedig ezek gyakran használt műveletek.

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: Általános BASIC Kérdések
« Reply #386 on: 2012.December.05. 10:43:43 »
Quote from: Lacika
Az i++ - úgy tudom - hamarabb lefut, mint az i=i+1
Az ilyen gyorsműveleteket +/-1 hiányolom is a fullextrás IS BASIC-ből, pedig ezek gyakran használt műveletek.

Hat, C esetben nehez "hamarabb futasrol" beszelni mert ugye nem interpretalt, hanem forditoval mux. Az i++ elvileg tomorebb megfogalmazas mint az i=i+1, amde van olyan gyanum, hogy normalis compiler amugy is optimalizalja es tok uazt a kodot fogja forditani erre a ket esetre, csak a forditon mulik. Ja, es meg az i+=1 alakorol nem is beszeltunk :) Most gcc-vel megneztem, ez a harom tok uazt az asm kodot adja forditas utan, tehat a fordito tenyleg van annyira okos, hogy optimalizaljon.

Amugy is egy fordito eseten igaz: ha letezne "tokeletes" fordito (ilyen persze nincs) akkor mind1, hogy irod meg uazt, az eredmeny optimalis kod lesz :) Na persze ennyire jo fordito nem letezik, de azert ilyen egyszeru esetre mint egy integer valtozo novelese, azert csak kitalalja, hogy mire optimalis forditani assembly szinten, fuggetlenul attol, hogy a fenti alakok kozul melyiket hasznalod.

Ezert nem fair IS-BASIC-kel vagy hasonloval osszevetni, mert ott az ugye futas kozben ertelmezett (interpretalt) nyelv, ahol viszont ez futasidoben szamit, hogy melyik a gyorsabb megoldas (meg ha lenne is mondjuk ilyesmi mint a fenti formak ott is).

Offline MrPrise

  • Administrator
  • EP addict
  • *
  • Posts: 2755
  • Country: hu
    • Enterprise Forever
Re: Általános BASIC Kérdések
« Reply #387 on: 2012.December.05. 10:45:41 »
Pár gyöngyszem, tömör (és olvashatatlan) C kód kategóriában: http://www.ioccc.org/winners.html
http://www.ioccc.org/2000/anderson.c

Offline Lacika

  • EP addict
  • *
  • Posts: 3191
  • Country: hu
    • http://www.ep128.hu
Re: Általános BASIC Kérdések
« Reply #388 on: 2012.December.05. 17:18:11 »
Visszatérve még az animációra! Újabb megfigyelés: ha telepakoltuk a memóriát egy csomó videólappal (konkrét esetben 24 videólappal), akkor a bezárással sokkal hamarabb végez az EXOS, ha FORDÍTOTT sorrendben zárjuk be, mint ahogy megnyitottuk! (Talán az EXOS minden csatornazárás után rendbe rakja a memóriát?)
« Last Edit: 2012.December.05. 17:25:07 by Lacika »

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14723
  • Country: hu
    • http://enterprise.iko.hu/
Re: Általános BASIC Kérdések
« Reply #389 on: 2012.December.05. 17:43:50 »
Quote from: Lacika
(Talán az EXOS minden csatornazárás után rendbe rakja a memóriát?)
Nem talán, hanem biztos!
Ezért van az eszközkezelőknél a puffer mozgatás funkció, amivel közli az EXOS az adott csatorna kezelőjével a mozgatást, és az megjegyezheti az új címeket. Ha éppen kijelzett videó lapot érint a mozgatás, akkor ilyen esetben látható egy kis villanás is a képen, amikor változik az LPT.