Tajemnice ATARI

5 Linii

Dzielenie

    Michał Kowalewski nadesłał program do dzielenia liczb z dużą (dowolną) dokładnością. Podajemy dzielną, dzielnik i żądaną liczbę cyfr po przecinku w wyniku.
1 INPUT X,Y,B:? INT(X/Y);".";:FOR A=1 
TO B:X=(X-INT(X/Y)*Y)*10:? INT(X/Y);:N
EXT A

Ruch na ekranie

    Program autorstwa Niny Jendrusik pokazuje, ze nawet bez przerwań i bez USR-ów można stworzyć zgrabne "demo"
1 DEG :GRAPHICS 8:POKE 752,1:COLOR 1:S
=54276:POKE 709,0:D=32852:POKE 33018,7
:POKE 33019,55:POKE 82,0:? :? "    P";
2 ? "ROGRAM RUCH    * * * * * * * * * 
* * ":FOR I=0 TO 40:PLOT 280,53:DRAWTO
 39*SIN(9*I)+280,39*COS(9*I)+53:NEXT I
3 FOR I=40 TO 70 STEP 0.1:POKE S,PEEK(
20):POKE D,I:POKE S,PEEK(20):NEXT I:GO
SUB 5
4 FOR I=I TO 40 STEP -0.1:POKE S,255-P
EEK(20):POKE D,I:POKE S,255-PEEK(20):N
EXT I:GOSUB 5:GOTO 3
5 FOR L=75 TO 0 STEP -0.5:SOUND 0,2,4,
L:NEXT L:RETURN 

Wklepywacz

    Stanisław Drozda podzielił się z nami swym pomysłem na usprawnienie wprowadzania danych szesnastkowych (w tej postaci są drukowane w TA programy maszynowe). Za miesiąc bardzo się Państwu ten program przyda!
1 DIM A$(12):GRAPHICS 0:LIST :K=PEEK(8
4)-1:FOR I=2 TO 5:LOCATE I,K,X:A$(I-1)
=CHR$(X):NEXT I
2 NL=VAL(A$):NL=NL+10*(NL>1009)+2*(NL=
1008)
3 POKE 675,0:POKE 676,8:A$=" REM  DATA 
 ":ST=2*(NL=1000)+10*(NL>1009):KP=8*(S
T=2)+190*(ST=10)
4 ? CHRS(125):? :FOR I=NL TO NL+KP STE
P ST:PA=1+5*(I>1009):KA=PA+4:? I;A$(PA
,KA):NEXT I:? "RUN":POSITION 0,0:END 
1000 REM 

Jeszcze raz Wielkanoc

    Przepraszamy K. Wychowanka za zgubienie w jego programie, drukowanym w TA 3/92. ostatniego wiersza, który powinien wyglądać tak:
5 ? L;"/";L+1;".0";V;".";A:GOTO 1

Dziesbinowe szaleństwo

    Dziesbinowe szaleństwo zatacza coraz szersze kręgi. Niestety, wielu czytelników dało się opętać zgubną manią rywalizacji. Nie wiedzieć czemu, gdy ktoś ogłosi, że potrafi zjeść 50 pączków, zaraz znajdzie się dziesięciu, którzy mogą 51. Tylko umiar i rozsądek me znajdują jakoś szerszego grona wielbicieli. "Dziesbin" z TA 7/91 przedstawiał SPOSÓB konwersji liczb, pozwalający wyświetlać cyfry od lewej do prawej (typowa metoda, polegająca na rejestrowaniu kolejnych reszt z dzielenia, przynosi cyfry w odwrotnej kolejności). Propozycję skrótu nadesłaną przez R. Latasa (TA 2/92) wydrukowaliśmy jako ciekawostkę, przykład, ze nawet w tak krótkim programie można jeszcze coś uprościć. Ale przecież to ten sam program!

   Kochani! To zaczyna być nudne. Wymyślcie coś oryginalnego. Dziękuję serdecznie Piotrowi Jochymkowi i Rafałowi Jaczyńskiemu za okaleczone wersje tęga samego programu. Usunięcie możliwości wyboru rozmiaru liczby lub zamiana 2n-1 na mętne 2n/2 to wątpliwej jakości osiągnięcia. Czy to wszystko, na co Was stać? Gdzie byliście wtedy, gdy otrzymywałem 15-linijkowe programy tego typu?

   Drugą, liczną grupę stanowią programy maszynowe zaklęte w napisy z "robaczków". Ich autorzy przekonują mnie usilnie, że dokonali wspaniałego odkrycia. Oto przykład: program nadesłany przez Sławomira Zielińskiego (po lewej) w konfrontacji z moim algorytmem, utrzymanym w tej samej poetyce (po prawej).

     pla
     pla
     pla 
     ldy #9
     sta 203
     clv
q    dey
     beq ex
     lsr 203
     lda #16
     bcc eq
     lda #l7
eq   sta (88),y
     bvc q
ex   rts
    pla
    pla
    pla
    ldy #7
    sta 203
q   lda #8
    lsr 203
    rol @
    sta (94),y
    dey
    bpl q
    rts
    Myślę, że obejdzie się bez komentarza.

Redaktor



Powrót na start | Powrót do spisu treści | Powrót na stronę główną

Pixel 2001