Tajemnice ATARI

5 Linii

PASIAK

    Czy pamiętacie dziesbinowe szaleństwo? Nie, nie bójcie się! Program, zamieszczony poniżej nie przelicza liczb z żadnego systemu na inny. Skojarzenie wynika z faktu, że Pasiak pokazuje, jak krócej i sprawniej uzyskać ładny efekt graficzny prezentowany w TA 6-7/92 przez Pawła Kalinowsklego. Autorem Pasiaka jest Adam Godlewski z Wołomina.
1 FOR I=0 TO 3:POKE 53256+I,3:POKE 532
48+I,48+I*32:POKE 53252+I,176+I*8:POKE
 704+I,4+I*2:POKE 53261+I,170:NEXT I
2 POKE 623,17:POKE 53260,255:POKE 711,
12:POKE 53265,170:POKE 709,15:POKE 710
,0

NAPIS 3D

    Ładnych, trójwymiarowych napisów nigdy dość! Chyba tym hasłem kierują się Czytelnicy, którzy nie ustają w wysiłkach i dostarczają nam coraz bardziej wymyślne programy, tworzące złudzenie przestrzenności. Tym razem trójwymiarowa (ang. three-dimensional, a w skrócie 3D) propozycja Marcina Łozy z Rzeszowa.
1 DIM A$(20):C=0:C1=3:C2=2:AD=PEEK(756
)*256:P=15:? "Podaj tekst (maksimum 20
 znakow)":INPUT A$:C=C1:Z=20-LEN(A$)
2 GRAPHICS 23:Z=Z*4:P=P+8:FOR O=1 TO 2
:FOR S=1 TO LEN(A$):W=LEN(A$)*4:L=AD+(
ASC(A$(S,S))-32)*8:FOR T=L TO L+7
3 G=PEEK(T):FOR H=7 TO 0 STEP -1:COLOR
 0:PLOT W+Z,P:IF G/2>INT(G/2) THEN COL
OR C:U=ADR(""):DRAWTO H+N+Z,T-L
4 G=INT(G/2):NEXT H:NEXT T:N=N+8:NEXT 
S:C=C2:POKE U+3,44:N=0:NEXT O:POKE U+3
,47:COLOR C1:PLOT W+Z,P:POKE 764,255
5 IF PEEK(764)=255 THEN 5

SILNIA !

    Szybciej, silniej, wyżej... W tym numerze wybieramy silniej, a właściwie silnię. Ostatni z pięciolinijkowców oblicza silnię z zadanej liczby. Przypominam definicję:
n! = 1*2*3*...*n
    Bardzo ciekawe jest to, że prezentowany poniżej program radzi sobie z całkiem dużymi liczbami, podczas testów stwierdziłem, że bije na głowę większość kalkulatorów.
Uwaga: Długość tablicy L, zadeklarowanej w wierszu nr 1 określa dopuszczalną liczbę cyfr wyniku. Autorem programu jest Jacek Cybularczyk z Kołobrzegu.
1 DIM L(1000):? "Program oblicza n! Po
daj n=";:INPUT #16;F:G=0:Z=1:POKE 559,
0:FOR H=2 TO 1000:L(H)=0:NEXT H:L(1)=1
2 G=G+1:FOR H=1 TO Z:L(H)=G*L(H):NEXT 
H:FOR H=1 TO Z+4:IF L(H)<10 THEN 4
3 J=INT(L(H)/10):L(H+1)=L(H+1)+J:L(H)=
L(H)-10*J:IF H>=Z THEN Z=H+1
4 NEXT H:IF G<>F AND F<>0 THEN 2
5 POKE 559,34:? CHR$(253);F;"!=";:FOR 
H=Z TO 1 STEP -1:? L(H);:NEXT H:? 



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

Pixel 2002