5 LiniiPASIAK1 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 3D1 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 !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:? |