Fejtörő (2009-2010)

Mókás, de direkt dögnehéz programozási feladványok Spectrumra...
Lezárt
Avatar
MailMiner
LLIST Archiváló
Hozzászólások: 219
Csatlakozott: 2012.01.07. 23:12

Fejtörő (2009-2010)

Hozzászólás Szerző: MailMiner » 2012.01.08. 20:51

Üdv Mindenkinek !

Eltelt ez az év. Idénre ne várjatok nagy fejtörőt, de valamit mégis adok

Íme egy 3 soros BASIC program LIST után:

10>PRINT "HUKK"
20 PRINT "HUKK"
30 PRINT "HUKK"

RUN és mégis csak 2-szer csuklik. Vajon miért ?

Pgyuri

Avatar
MailMiner
LLIST Archiváló
Hozzászólások: 219
Csatlakozott: 2012.01.07. 23:12

Re: Fejtörő (2009-2010)

Hozzászólás Szerző: MailMiner » 2012.01.09. 19:31

Hali!

Két lehetőség van.

1. Ez valami elmés, elvadult, nyelvi fejtörő megint és akkor csak hasonlóan agyarfurt elme tudja megfejteni, azaz nem érdemes rajta nekem agyalni... :)

2. A LIST után nem lehetne ">" jel, de itt mégis van, ráadásul az 10-es sor szürkébb, ezért lehet, hogy a 10-es sorban a PRINT elött van egy REM, majd mindenféle formázó karakter, DEL, stb, hogy a listában le lehessen látni.

Az első valószínűbb.

Péter
***********************************
Üdv,

A fejtörő tisztázásához, mivel HPeter barátom 2-es pontja többeket megijesztett :)

Nincs semmi rejtett karakter, meg szürkeség, meg vezérlőbigyó. Amit láttok, az van:

Íme egy 3 soros BASIC program LIST után (pontosan LIST 10 után, ha már azt a '>' jelet odaírtam):

10>PRINT "HUKK"
20 PRINT "HUKK"
30 PRINT "HUKK"

RUN és mégis csak 2-szer csuklik. Vajon miért ?

és ahogy tanultuk, egy szöveges feladatban mindennek jelentősége van, minden információt tessék felhasználni !

Pgyuri
***********************************
mert 5 GO TO 20 van

Latyi.ca
***********************************
Sziasztok!

Én - igaz csak Klive alatt, mivel a munkahelyemre nem vittem be a 48K-s gépet, beírtam a leírt programot, de az bizony 3x csuklik. Akár LIST 10-et írok, akár kurzorbillentyűkkel megyek fel a 10-es sorra az bizony 3x csuklik. Mindezt 48K módban, 128K módban, +2 módban, +2a módban, +3 módban is kipróbáltam - innentől kezdve kezdem nem érteni magát a kérdést. Rémlik, hogy anno voltak ilyen gondjaim, de akkor ki kellett adni egy CLS parancsot és megszűntek az ilyen hibák.

BUDDHA
***********************************
Sziasztok!

BUÉK mindenkinek!
Nekem az jutott eszembe, hogy csak a 20 és 30-as sorok vannak begépelve, a 10-est kiprinteljük:
PRINT " 10>PRINT ""HUKK""" És utána adjuk ki a LIST 10-et. Mivel nincs 10-es sor, ezért nem fog > jelet tenni sehová. Olyan, mintha csak simán a LIST parancsot adtunk volna ki. Ezek után tényleg a Pgyuri által megadott kód lesz a képernyőn, és RUN után tényleg csak két HUKK-ot kapunk.

Üdv,
STP
***********************************
Hja kérem, ha LIST 10 volt, akkor előtte lehet még pl.1 GOTO 11 is...

Peter
***********************************
Üdv,

Jaj, bajtársak ... ahogy írtam, mindössze 3 soros BASIC program. Semmi rejtett sor, semmi GO TO.

stp megoldása nem felel meg ennek, mert nem 3 soros BASIC program. GO TO nincs, így azok is elvetve. Más a rejtély kulcsa.

Íme egy 3 soros BASIC program LIST után (pontosan LIST 10 után, ha már azt a '>' jelet odaírtam):

10>PRINT "HUKK"
20 PRINT "HUKK"
30 PRINT "HUKK"

RUN és mégis csak 2-szer csuklik. Vajon miért ?

és ahogy tanultuk, egy szöveges feladatban mindennek jelentősége van, minden információt tessék felhasználni !

Pgyuri
***********************************
A legelső levélben csak sima LIST volt, nem LIST 10.

Üdv,
Bali
***********************************
Sziasztok,

LIST utan RUN, vagis Spectrumul:

LIST:RUN

Na ezutan valoban ketszer csuklik. Vagis ketszer kiirja, hogy HUKK HUKK HUKK. Egyszer a LIST-re, utana pedig lefut.

Szerintem :)

BUEK,
Kalman.
***********************************
Szia!

A RUN törli a képernyőt, azaz nincs jelentősége a listnek.

Péter
***********************************
Hmmm... Esetleg a két "HUKK" uán egy "scroll?" jön mert már tele volt a képernyő?!

- Csory -
***********************************
Hali!

Én mondtam, hogy ez valami elmés fejtörő lesz! Mindenkinek sok sikert hozzá! Nekem ehhez már késő, vagy túl korán van! :) Boldog új évet mindenkinek, na és jövőre egy sieres találkozót! :D

Péter
***********************************
B-Ú-É-K minden Speccyalistának!

Arra gondoltam, hogy talán a basic sor sorszámát tartalmazó bájtokat (23755-23756) kell átpókolni olyan értékre, hogy sorként ezt mutassa. 10> Miután ez valójában a basic számára értelmezhető 9999. basic sornál magasabb érték, a list 10 után a 20. sortól hajtja végre a programot. Ha így van.

Üdv,

Csaba (makranc)
***********************************
Sajnos úgy tűnik, hogy nem működik a dolog.

23755-re 63-nál nagyobb értéket írva láthatatlanok és run-ra nem hajtódnak végre a basic-sorok. Ha 23755 értéke 63 és 23756-é nulla, akkor az első sor sorszámaként
@128 látszik, de list után így is kiprinteli mind a három hukkot.

Kár...
Üdv,

Csaba (makranc)
***********************************
Ahogy ismerlek téged, valahol máshol van a kutya elásva. Az, hogy "csuklik" nem biztos, hogy úgy kell értelmezni, hogy kiírja azt, hogy HUKK. Mert azt háromszor írja ki a program. A csuklás lehet a billentyűklikk? Leütöm az R-t és az entert? az kettő klikkenés, amit felfoghatunk csuklásnak? Vagy begépeli a júzer, lefuttatja, és emígyen szóla:
-Pgyuri, Pgyuri, az anyád ne sirasson, megint megtréfáltál. És mivel kétszer emlegetve lettél, kétszer csuklasz is. :-)

Na, minden jót, boldog új évet!

Mópi
***********************************
Igenigen, a lelkem mélyén én is tudom hogy PGyuri esetében a magyarázat nem lehet logikus (illetve technikai), mégis mindenki ezzel próbálkozik. Tessék összeolvasni a Vizsolyi-biblia minden prímszámadik betűjét, vagy valami hasonló lesz a megoldás...

- Csory -
***********************************
No igen, már csak az a kérdés, hogy ki csuklik 2-t. :)))))

üdv,
Bali
***********************************
Igen, ezt már én is felvetettem (Skype-on) Pgyurinak, de én úgy kérdeztem:
"Ugyen nem olyan bugyuta a megoldás, hogy..."
De, ugye, Pgyuri barátunk nem olyan bugyuta :), így valami más a megoldás.

Üdv.

--
-==ooO=[Leslie]=Ooo==-
***********************************
basic sorban lehet színezni, nem az van hogy rejtett utasítás van ilyen módon?
endi
***********************************
A bulizóknak legjobbakat kívánom, és közben megpróbálom még idén megfejteni a feladványt:
Az sehol nincs írva, hogy a LIST után látható program és a RUN-nal indított az ugyanaz. Lehet hogy a RUN-t egy másik gépen adjuk ki, amely programja csak két "HUKK" kiírást tartalmaz :-).

Mindenkinek BÚÉK!
--
-==ooO=[Leslie]=Ooo==-
***********************************
OK, hat akkor legyen RUN 20 . Erre tenyleg csak 2 HUKK-ot kapunk.

Meg1x BUEK,
Kalman
***********************************
Én még a rendszerváltozók buherálására gondoltam, de ha a PROG változót növelem, akkor a LIST sem fogja az első sort listázni, ha pedig a PRINT pozícióval (S POSN) variálok, azt a RUN alaphelyzetbe állítja. A RAMTOP átállítgatásával ugyan elvileg lehetne csökkenteni a BASIC tárterületet, és ez a LIST parancsot nem befolyásolná, és nem is sikerült megoldani, hogy az utolsó parancs ne fusson le... :(

Szóval szabad a gazda szerintem is. :)

Üdv,
STP

Avatar
MailMiner
LLIST Archiváló
Hozzászólások: 219
Csatlakozott: 2012.01.07. 23:12

Re: Fejtörő (2009-2010)

Hozzászólás Szerző: MailMiner » 2012.01.09. 19:33

Üdv,

No lám, megleptetek. Örülök, hogy jópáran töprengtetek a kérdésen. Igazat bevallva ez egy kétlépcsős feladványnak készült, amire részben rá is jöttetek, bár maga a feladvány is mutatta. Szóval arra, hogy a LIST és a RUN között valami ravaszságnak kell történnie, amitől csak 2-szer csuklik. Igen, valami ott még történik. Segítséget kaptok hozzá:

Ezt a 3 soros BASIC programot kötelező begépelni:

10 PRINT "HUKK"
20 PRINT "HUKK"
30 PRINT "HUKK"

Ki kell listázni a képernyőre a LIST paranccsal.

Utána valami történjen, ami nem módosíthatja ezt a 3 programsort semmilyen módon, nem törölhet, nem vihet be újabb sort vagyis semmilyen változás nem
történhet a programban, azaz TILOS a program módosítása.

Ez után a szokásos mondat következik:

RUN és mégis csak 2-szer csuklik. Vajon miért ?

Még annyi, hogy a feladat BASIC ismerettel megoldható, nem igényel gépi kódú programozást és rendszerközeli gépismeretet :)

No azt hiszem, rövidesen érkezik a megoldás ! :)

Pgyuri
***********************************
LIST után leragasztottam szigszalaggal a képernyő felső sorát, így csak két "HUKK" látszik. :-)

Üdv,

Csaba (makranc)
***********************************
Sziasztok,

LIST utan begepeljuk ezt:

PAUSE 0 : IF INKEY$="r" THEN RUN 20

Majd RUN, vagyis r, es ketszer csuklik.

A 3 soros BASIC programhoz nem nyultam.

Jo lesz ? :)

Kalman.
***********************************
Vagy, ha ragaszkodunk a RUN szohoz, akkor:

INPUT LINE a$ : IF a$="RUN" THEN RUN 20

Csak ennek az a szepseghibaja, hogy ki kell irni a RUN szot. Spectrumul viszont a RUN parancs az "r" billentyu lenyomasat jelenti. Bar az is igaz, hogy a feladat csak annyit ir, hogy RUN, es nem azt, hogy kiadjuk a RUN parancsot.

Udv,
Kalman.
***********************************
Na es vegul itt egy teljesen eletszeru:

PRINT #1; FLASH 1; "K": PAUSE 0: IF INKEY$="r" THEN PRINT #1; AT 1,0; "RUN
"; FLASH1;"L": PAUSE 0: RUN 20

Egyelore nincs tobb otletem :)

Kalman.
***********************************
hahaha, ez marha jó :)
endi
***********************************
Ez mindent visz!!! :)
Gémeri
***********************************
Lehet, hogy ennél jobb megoldást Pgyuri se tud?
:-))

Üdv,
makranc
***********************************
ebből a megoldásból a kísérő szöveg ami üt:
"teljesen életszerű". :)

:D :D :D

Viktor
***********************************
Na jo, nem 'teljesen' eletszeru.

Mert ahhoz le kellene kezelni az osszes letezo parancsot, vagyis nem csak a RUN-t. De arra meg nem jottem ra, hogy lehet azt megcsinalni egyetlen sorban.

Elgondolkodom rajta ;))

Kalman
***********************************
Véleményem szerint vakvágányon vagyunk. A megoldást valahol az ominózus mondatban kell keresni:

"RUN és mégis csak 2-szer csuklik. Vajon miért ?"

A miért és a ? közötti space, ne tévesszen meg senki, az a Gyuri copyright-ja, nem hiszem, hogy része a feladatnak.

Ilyeneken agyalok, hátha valaki közelebb visz a megoldsához:

két - SZER - CSUK - LIK
há' - ROM - hukk,
stb...

Péter
***********************************
Ha mondjuk csuklasnak vesszuk a keyboard beepet (esetleg elotte hangsulyozaskepp volt egy POKE 23609,20) akkor egy csuklas a RUN egy masodik az ENTER?!

- Csory -
***********************************
És akkor lehet, hogy a POKE az a 'ravaszság', aminek történnie kell a LIST és RUN között.
Ez jó, tetszik.

Kalman
***********************************
Ezt már ketten (Mópi is meg én is) felvetettük, de Pgyuri nem helyeselt azóta sem. Szóval más lehet a dolog :).

--
-==ooO=[Leslie]=Ooo==-

Avatar
MailMiner
LLIST Archiváló
Hozzászólások: 219
Csatlakozott: 2012.01.07. 23:12

Re: Fejtörő (2009-2010)

Hozzászólás Szerző: MailMiner » 2012.01.09. 19:35

Üdv Mindenkinek,

(Kín)versben:

Mielőtt elmúlna aktualitása,
Íme a fejtörő megoldása.
Kálmánnak meg gratulálok,
Programsoros humorához. :)

"RUN és mégis csak 2-szer csuklik. Vajon miért ?"

Megoldás következik:

A megoldás: Mert közben Boldog Új Évet Kíván !

Hogy hogyan ? Nem jó helyen keresgéltetek, mert bizony mindhárom BASIC programsor lefut, a RUN sima RUN. A LIST és a RUN közben történik a turpisság, de a jó bűvész már előkészíti a trükkjét:

10 PRINT "HUKK"
20 PRINT "HUKK" ahol a H, az U és az első K grafikus módban lett begépelve
30 PRINT "HUKK"

LIST és megjelenik a fenti 3 sor. Ezután a varázssor, ami BASIC ismeretekkel megírható (minden könyv, példaprogram UDG-vel is bőven foglalkozik):

FOR f=USR "H" TO USR "K"+7: POKE f,PEEK (f-48):NEXT f

Mivel a H és a K betű pontosan 6 karakterrel van eltolva a B és E-től, így ezzel a ciklussal átmásolódnak a megfelelő betűk. A programsorok ettől nem változnak. Aztán a szép magyar ékezetért folytatható a

POKE USR "U",24: POKE USR "K",24


és íme a RUN után:

HUKK
BÚÉK
HUKK

vagyis tényleg kétszer csuklik, mintha csak kedves jóbarátunk üdvözölne minket az új évre. :))

Pgyuri
***********************************
Zseniális!!!! Gyurikám! Gratu! Gémeri
***********************************
Sziasztok,

Hat ez Kiraly!

Talan jovo szilveszterig rajottem volna - ha egyaltalan :)

Most igy utolag ertem a megfogalmazast: LIST utan ... RUN majd megis .... .
Egy kicsit furcsallottam a megfogalmazast, arra gondoltam, hogy azert ilyen, hogy valamilyen sejtelmes 'kodbe' burkolja a fejtorot. De most mar vilagos. Mint ahogy a "... mindennek jelentősége van..." kijelentesnek is valoban jelentosege van.
Igy valoban a LIST csak egy 'virtualis' kepet ad arrol, hogy mi van begepelve, a valosagban mas van ott. Es aztan persze kell a varazssor is.

Koszonet a fejtoroert, szivesen latjuk az ehhez hasonloakat a jovoben is.

Kalman.
***********************************
Szia!

Még szerencse, hogy nem volt "NAGY" a fejtörő... :D
De tényleg király, segített volna, ha tudjuk, hogy a 20-as PRINT után
UDG van, de ez nem látszott rajta. Na, majd jövőre...

Péter
***********************************
Szia,

HUKK, neked is boldog újévet, HUKK!

Egyetértek Gémeri-vel, zseniális!

Gyuri! Csak az az egy apró hiányossága van rejtvényeidnek, hogy megfejthetetlenek, de ez nem baj... :-)

Üdv,
makranc
***********************************
Igazából tényleg nem volt erőltetett, csak a saját figyelmetlenségem miatt zártam ki az UDG karaktereket. Mert "Nincs semmi rejtett karakter, meg szürkeség, meg vezérlőbigyó." Ez a mondat tényleg nem vonatkozik az UDG-re. :) És azzal, hogy nem csuklik, tényleg nem azt mondtad, hogy nem ír ki mást, csak két HUKK feliratot...

Mindenesetre tényleg ötletes feladvány és megoldás volt, és legalább egy kicsit megint elmerültünk a Spectrum BASIC rejtelmeiben.

Köszi érte!

Üdv,
STP

Lezárt

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég