MENSILE - SPED. AB. POST, GR. 111/70 - N° 1 - DICEMBRE 1984 • EDIZIONI CO STA - PISA r I PROI PROGRAmmi PER TI 99/4 A L. 2000 di giochi e programmi per TEXAS 99/4A Direttore Responsabile: Marco Bindi Direttore Tecnico: Gianroberto Negri Edizioni CO.STA srl via Mazzini 128 56100 PISA Registrazione al Tribunale di Pisa n. 20 del 20/10/84 Spediz. in abbon. post, gruppo III / 70 TEXAS 99/4A il mensile per realizzare la tua Biblioteca di Software in tre sezioni: — Giochi — Programmi personali — Programmi di utilità Lire 2000 I numeri arretrati, a lire 4000, possono essere richiesti sen¬ za oneri di spedizione con pa¬ gamento anticipato in contan¬ ti, o tramite assegno o vaglia postale intestato alla Società editrice. Impianti: Cencograf Stampa: Grafika 78 - Pioltello (MI) Distribuzione: Messaggerie Periodici (MI) Ogni mese in edicola il DOSSIER per il tuo computer • COMMODORE DOSSIER • SINCLAIR DOSSIER • TEXAS 99/4A DOSSIER giochi, programmi di utilità e programmi personali per realizzare una fantastica biblioteca software _ j CODIFICA SIMBOLI UTILITY PROGRAMMI PERSONALI GIOCHI G I OCO spaz i é*i_e: Dovete cercare di contrastare 1'innarestabile discesa delle astronavi aliene e per -far ciò' utilizzate il cannone laser di cui, la Vostra potente astronave e' dotata. Attendendo che essi appaiano nel Vostro mirino dovete abbatterne il maggior numero possibile. Il gioco richiede l'utilizzo dei JOYSTICK. Nel listato vi sono alcune istruzioni che vanno a capo e lasciano degli spazi in bianco. Essi vanno ignorati ed il caricamento del programma deve essere effettuato come se non esistessero, pena il suo non corretto f unz ionamento. 100 REM - 110 REM 120 REM GIOCO SPAZIALE 130 REM 140 REM - 150 CALL CLEAR 160 RAND0MIZE 170 CALL SCREEN(2) 180 F0R A=1 T0 16 190 CALL COLOR(A,2,2) 200 NEXT A 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 410 420 430 440 450 460 470 480 X <1>=1 X(2)=5 X(3)=9 X(4)=13 X(5)=17 V(1)=46 V(2)=60 V(3)=150 V(4)=81 V(5)=130 Z(1)=40 Z(2)=59 Z(3)=64 Z(4)=72 Z(5)=87 Z(6)=149 FQR D=96 TO 107 READ A$ CALL CHAR(D,A$> NEXT D FOR B=1 TO 31 READ C,E,F CALL HCHAR NEXT B DIM R(12) FOR 1=1 TO 12 READ R(I) NEXT I 490 REM MOSTRI 500 510 520 CALL CHAR(46,»0081423C7E7E3C24") CALL CHAR(60,"81423C7E7E3C2424 ») CALL CHAR(81,"3C7EDBFFA5A5A581"> 530 CALL CHAR(130,"3C7EDBFFA5A5A581") 540 CALL CHAR(150,"004224183C7E42C3"> 550 REM STELLE 560 CALL CHAR<40,"004") 570 CALL CHAR<59,"0002") 580 CALL CHAR(64,"00000000000002") 590 CALL CHAR(72,"00000000000002") 600 CALL CHAR(87,"00000400004") 610 CALL CHAR(149,"000020000004") 620 REM VASCELLO 630 CALL CHAR(42,"OOOOOOFF"> 640 CALL CHAR(152,"F0F8783F3878F8F») 650 CALL HCHAR(9,4,152) 660 REM CIELO 670 FOR F*L=1 TO 50 680 L0=INT(RND*12)+1 690 LI = Z 700 CALL HCHAR 18 THEN 1420 1370 CALL HCHAR( C, 5,42,26) 1380 CALL HCHAR(C,5,32,26) 1390 0=0+1 1400 IF 0>99 THEN 1570 1410 IF C=B THEN 1440 1420 NEXT K 1430 GOTO 1570 1440 CALL SOUND<300,-6,3) 1450 A1=A 1460 A=V(INT(RND*5)+1) 1470 IF A1=A THEN 1460 1480 DS=DS+1 1490 D=0 1500 CALL HCHAR18 THEN 1830 1850 RESTORE 1860 0=0 1870 DS=0 1880 GOTO 150 < " il PUNTI DUELLO ASTRALE i Dovete metterai nei panni di un guerriero astrale e -fermare l'invasione aliena. Per -far ciò' avete a vostra disposizione una nave astrale dotata di cannoni laser ad alta potenza. Piu' navi aliene colpirete e maggior punteggio farete e piu' distante riuscirete a respingere gli alieni. Ultimo limite e' il pianeta PLUTONE. Buon divertimento. 1 REM 2 REM 3 REM 4 REM 5 L=5 10 FOR A=1 T0 12 20 CALL COLOR(A, 16,1) 30 NEH A 35 SOO 40 GOSUB 5325 50 FOR A=1 T0 12 60 CALL COLOR(A,16,1) 70 NEXT A 80 REM 90 RANDGMIZE 100 CALL CLEAR 110 CALL SCREEN(2) 120 REM 130 CALL CHAR(128,“COCOCOCOCOCOCOCO") 140 CALL CHAR(129 150 CALL CHAR(130 160 CALL CHAR(131 170 CALL CHAR(132 180 CALL CHAR(133 190 CALL CHAR(134 200 CALL CHAR(135 210 CALL CHAR(136 220 CALL CHAR(137 230 CALL CHAR(138 240 CALL CHAR(139 250 CALL CHAR(140 260 CALL CHAR(141 270 CALL CHAR(142 280 CALL CHAR(143 290 CALL CHAR(144 300 CALL CHAR(145 310 CALL CHAR(146 320 CALL CHAR(147 330 CALL CHAR(148 335 CALL CHAR(149 336 CALL CHAR(150 337 CALL CHAR(151 340 CALL CHAR(157 345 CALL CHAR(158 350 CALL CHAR(153 360 CALL CHAR(152 370 CALL CHAR(154 380 CALL CHAR(155 390 CALL CHAR(156 400 CALL COLOR(15 410 CALL COLOR(13 420 CALL COLOR(14 430 CALL COLOR(16 "0303030303030303") "010103070FPFFFFF") “8080C0E0F0FFFFFF") “QOOOOOOOOOFFFFFF") "FFFFFFFFFFFFFFFF") "OOOOOOOOOOFFOOOO”) "QOFFFFAAAAFFFFOO") "7FBFDFEFF7FBFDFE”) "FEFDFBF7EFDFBF7F") "FF7E3E1E0E060200") "FE7C787060400000") "OOOOOOOOOOOOOOFF") "000000183C4200FF") "000024183C5A8100' 1 ) “004281BDFFBD8142") “ 0000000000000000 ") "002A7C3E7C3EE554") "925400C300549300") "8040201008040201") "0102040810204080") "0808080808080808") "00000800000080") " 0000001000000000 ") "81C3E7FFFFFFFFFF”) "FFD783C183C1D7FF") "FF7F3FIFOF070301 u ) "FFFFFFFFFFFFFFFF") “FFFEFCF8F0E0C080") "0103070F1F3F7FFF") "80C0E0F0F8FCFEFF") 11 , 1 ) 13,1) 13.1) 14.1) 440 REM 450 CALL HCHAR(6,ll,133,li) 460 CALL HCHAR(6,10,130) 470 CALL HCHAR(6,22,131) 480 CALL HCHAR(5,15,135,3) 490 CALL HCHAR(4,16,133,1) 500 CALL HCHAR<3,14,135,5) 510 CALL HCHAR(2,14,128) 520 CALL HCHAR(2,18,129) 530 CALL HCHAR(7,10,135,13) 540 CALL HCHAR(7,9,130) 550 CALL HCHAR(7,23,131) 560 CALL HCHAR(7,5,132,4) 570 CALL HCHAR(7,24,132,4) 580 CALL HCHAR(7,4,134) 590 CALL HCHAR(7,28,134) 600 CALL HCHAR<8,13,133,7) 610 CALL HCHAR(9,14,133,5) 620 CALL HCHARdO, 15,133,3) 630 CALL HCHAR(8,12,136) 640 CALL HCHAR(9,12,138) 650 CALL HCHAR(9,13,136) 660 CALL HCHARUO,13,138) 670 CALL HCHARdO,14,136) 680 CALL HCHAR(11,14,138) 690 CALL HCHAR(8,20,137) 700 CALL HCHAR(9,19,137) 710 CALL HCHARdO,18,137) 720 CALL HCHAR(9,20,139) 730 CALL HCHARdO,19,139) 740 CALL HCHAR(11,18,139) 745 CALL HCHAR(11,15,140,3) 750 REM — 12 - 751 CALL HCHAR(3,4,42) 752 CALL HCHAR(4,7,46) 753 CALL HCHAR(2,12,46) 754 CALL HCHAR(14,9,150) 755 CALL HCHAR(3,5,150) 756 CALL HCHAR(15,4,151) 757 CALL HCHAR(4,5,151) 758 CALL HCHAR(12,6,42) 759 CALL HCHAR(13,24,43) 760 CALL HCHARÌ23,1,152,64) 761 CALL HCHAR(12,26,46) 762 CALL HCHAR(11,22,151) 763 CALL HCHAR(4,29,42) 764 CALL HCHAR(5,27,150) 765 CALL HCHAR(3,21,151) 766 CALL HCHAR(4,23,46) 767 CALL HCHAR(18,29,46) 768 CALL HCHAR(19,4,43) 769 CALL HCHAR(15,18,151) 770 CALL VCHARd, 1,152,22) 780 CALL VCHARd,32,152,22) 790 CALL HCHAR(1,1,152,32) 800 CALL HCHAR(2,2,154) 810 CALL HCHAR(2,31,153) 820 CALL HCHAR(22,2,152,2) 830 CALL HCHAR(21,2,152) 840 CALL HCHAR(20,2,156) 850 CALL HCHAR(21,3,156) 860 CALL HCHAR(22,4,156) 870 CALL HCHAR(22,30,152,2) 880 CALL HCHAR(21,31,152) 890 CALL HCHAR(20,31,155) 900 CALL HCHAR(21,30,155) 910 CALL HCHAR(22,1,152,32) 945 CALL HCHAR(22,16,157) 946 CALL HCHAR<15,15,147) 947 CALL HCHAR(15,17,148) 948 CALL HCHAR(17,15,148) 949 CALL HCHAR(17,17,147) 950 REM 960 R=11 970 C=INT(RND*30) 980 1F (C<15)+(C>17)THEN 970 990 CALL HCHAR(R,C,141) 995 REM 1000 FOR P=1 TO 500 1010 NEXT P 1020 CALL HCHAR(R T C,140) 1030 OC-INT(RND*28) 1040 IF (0C< 13) + (0015)THEN 1030 1050 CALL HCHAR(13,0C+1,142) 1060 CALL HCHAR(13,QC+1,32) 1070 CALL HCHAR(14,0C,142) 1080 CALL HCHAR(14,QC,32) 1090 CALL HCHAR(15,OC-1,142) 1100 CALL HCHAR(15,QC-1 y 32) 1105 CALL HCHAR(16,QC,142) 1110 GOSUB 3970 1120 REM 1125 B=INT(RND*10) 1130 CALL HCHAR(16,0C,32) 1140 IF B<5 THEN 1160 1150 IF B>5 THEN 1180 1160 QC=OC-B 1165 IF 0C<5 THEN 1180 1170 GOTO 1190 1180 QC=OC+B 1185 IF 0028 THEN 1160 1190 CALL HCHAR(16,0C,142) 1200 C=INT(RND*10) 1210 IF C<7 THEN 3970 1215 REM 1220 CALL VCHARU7,OC, 149,5) 1250 CALL VCHAR(17,QC,32,5) 1255 CALL HCHAR(17,15,148) 1256 CALL HCHARU7,17,147) 1260 CALL GCHAR(22,0C,X) 1270 IF K= 158 THEN 1300 1280 IF ( X=155)+ (X S 156)+ (X S 152)THEN 1440 1290 IF X=157 THEN 4580 1300 CALL HCHAR(22,0C,145) 1310 CALL SOUND (50,1397,10, -2,2, 1661,10) 1320 CALL HCHAR(22 t 0C,146) 1330 CALL SOUND(300,-6,2) 1340 CALL HCHAR(22,QC,158) 1345 CALL HCHAR(23,QC,158) 1350 GOTO 3970 1355 REM 1440 CALL HCHAR(22,0C,145) 1441 FOR A=1 TO 16 1442 CALL SCREEN(A) 1443 NEXT A 1444 CALL SCREEN(2) 1450 CALL SOUND ( 150, *-6,1 ) 1460 CALL SOUND(300,-5,1) 1470 CALL HCHAR(22,QC,146) 1480 CALL SQUND(500,-7,2) 1490 CALL HCHAR(22,0C,158) 1500 GOTO 1120 1510 REM 1515 C=INT(RND*10) 1520 IF (C<4) + (09)THEN 1510 1530 CALL HCHAR(21,C,14B) 1531 CALL HCHAR(20,C+l,148) 1532 CALL HCHAR(21,C,32) 1533 CALL HCHAR(19,C+2,148) 1534 CALL HCHAR(20,C+1,32) 1535 CALL HCHAR(18,C+3,148) 1536 CALL HCHAR(19,C+2,32) 1537 CALL HCHAR(17,C+4 f 148) 1538 CALL HCHAR(18,C+3,32) 1539 CALL HCHAR(17,C+4,32) 1540 CALL HCHAR(18,C+4,32) 1541 CALL HCHAR(17,C+5,32) 1560 GOTO 4330 1570 REM 1580 C=INT(RND*10)+22 1590 IF (C<22)+(C>29)THEN 1580 1591 CALL HCHAR(21,C T 147) 1592 CALL HCHAR(20,C-1,147) 1593 CALL HCHARC21,C,32> 1594 CALL HCHAR(19,C-2,147) 1595 CALL HCHAR(20,C-1,32) 1596 CALL HCHAR(18 t C-3 f 147) 1597 CALL HCHAR(19,C-2,32) 1598 CALL HCHAR(17,C-4,147) 1599 CALL HCHAR(l8,C-3,32) 1600 CALL HCHAR(17,C-4,32) 1601 CALL GCHAR(16,C-5,X) 1602 IF X=32 THEN 1604 1603 IF X=142 THEN 1610 1604 CALL HCHAR(16,C-5,145) 1605 CALL S0UND(50,-6,6) 1606 CALL HCHAR(16,C-5,146) — 16 1607 CALL SOUND(300,-7,2) 1608 CALL HCHAR(16,C-5,3D 1609 GOTO 1650 1610 REM 1611 CALL HCHAR(16,C-5,145) 1612 FOR A=1 TO 6 1613 CALL HCHAR(16,C-5,32) 1614 CALL HCHAR(16,C-5,146) 1615 CALL SQUND(100,-5,2) 1616 CALL SCREEN(A) 1617 NEKT A 1618 CALL HCHAR(16,C-5,32) 1619 CALL SOUND(300,-7,1) 1620 SC=SC+1 1625 GOTO 4480 1630 REM 1631 CALL HCHAR(16,16,145) 1632 FOR A=1 TO 8 1633 CALL HCHARdó, 16,32) 1634 CALL HCHAR(16,16,146) 1635 CALL S0UND(100,-5,2) 1636 CALL SCREEN(A) 1637 NEH A 1638 CALL HCHAR(16,16,32) 1639 CALL SOUND(500,-7,1) 1640 SC=SC+1 1645 GOTO 4480 1650 GOTO 1120 1980 REM 1985 CALL VCHAR(1,13,152,20) 1990 CALL VCHARU, 14,152,20) 2000 CALL VCHAR(1,15,152,20) 2010 CALL VCHARU,14,142,A) 2020 FOR R«i TO 20 2040 CALL HCHAR(R,17,133,13) 2050 NEXT R 2070 S$="PUNTI="&STRf(SC) 2080 FOR 1*1 T0 LEN(Sf) 2090 CALL HCHAR(6,20+I,ASC(SEGI{S$,l,1)) ) 2100 NEXT I 2105 L-L-t 2110 A$="VITE= "liSTRKL) 2120 FOR 1=1 TO LEN(AI) 2130 CALL HCHAR(9,20+1,ASC(SEG*(AI,1,1)) ) 2140 NEXT I 2150 GOTO 4952 3970 GOTO 3980 3980 CALL KEY(0,K,S) 3985 FOR T=t TO 5 3990 IF K=32 THEN 4000 3994 IF K=83 THEN 1510 3995 IF K=68 THEN 1580 3996 NEXT T 3997 GOTO 1120 4000 CALL HCHAR(21,11,148) 4010 CALL HCHAR(21,21,147) 4020 CALL HCHAR(20,12,148) 4030 CALL HCHAR(20,20,147) 4040 CALL HCHAR(21,11,32,11) 4050 CALL HCHARU9,13,148) 4060 CALL HCHARU9,19,147) 4070 CALL HCHAR(20,12,32,9) 4080 CALL HCHAR(18,14,148) 4090 CALL HCHAR(18,18,147) 4100 CALL HCHARU9,13,32,9) 4110 CALL HCHAR(17,15,148) 4120 CALL HCHAR(17,17,147) 4130 CALL HCHAR(18,14,32,5) 4150 CALL GCHAR(16,16,X) 4160 IF X* =142 THEN 1630 4170 CALL HCHAR(16,16,145) 4180 CALL SOUND <50,-6,6) 4190 CALL HCHAR(16,16,146) 4200 CALL SOUND <300,-7,2) 4210 CALL HCHAR(16,16,32) 4220 GOTO 1650 4225 REM 4330 CALL GCHAR <16,C+5,X) 4340 IF X* =32 THEN 4360 4350 IF X : =142 THEN 4420 4360 CALL HCHAR <16,C+5,145) 4370 CALL S0UND(50,-6,6) 4380 CALL HCHAR <16,C+5,146») 4390 CALL SOUND(300,-7,2) 4400 CALL HCHAR(16,C+5,32) 4410 GOTO 1650 4415 REM 4420 SC=SC+1 4430 CALL HCHAR(li,C+5,145) 4440 FOR A=1 TO 3 4445 CALL HCHAR(16,C+5,32) 4450 CALL HCHAR(16,C+5,i46) 4460 CALL SOUND(100,-5,2) 4465 CALL SCREEN(A) 4470 NEXT A 4474 CALL HCHAR(16,C+5,32) 4475 CALL SOUND(300,-7,1) 4480 CALL SCREEN(2) 4500 A$="DUELLQ ASTRALE" 4510 POR 1=1 TQ LEN(A$) 4520 CALL HCHAR(24,8+I,ASC(SEG*(A*,I,1)) ) 4530 NEXT I 4540 FOR P=1 TO 500 4550 NEXT P 4560 CALL HCHAR(24,9,152,19) 4570 GOTO 950 4580 FOR A=1 TO 16 4590 CALL SOUND(50,-5,1) 4600 CALL SCREEN(A) 4610 NEXT A 4620 CALL SOUND(150,196,0) 4630 CALL SOUND(300,247,0) 4640 CALL SOUND(250,196,0) 4650 CALL SOUND(350,220,0) 4660 CALL SQUND(250,296,0) 4680 CALL SOUND(1000,-6,3) 4690 CALL SOUND(1500,-7,1) 4700 CALL SCREEN(2) 4710 A*="F INE GIOCO' 4720 FOR 1=1 TO LEN(A$) 4730 CALL HCHAR(13,7+1,ASC(SEGf(A$,1,1 )) ) 4740 NEXT I 4785 FOR P=1 TO 1000 4786 NEXT P 4787 GOSUB 4910 4788 IF L=0 THEN 6030 4790 A$='GIOCHI ANCORA? S/N* 4791 FOR 1=1 TO LEN(AI) 4792 CALL HCHAR(24,7+I,ASC(SEG$(A$,I,D) ) 20 - 4793 NEXT I 4794 CALL VCHARU, 12,35,21) 4795 CALL HCHAR(21,1,35,32) 4796 CALL VCHARU,16,35,21) 4800 CALL KEY<0,K,B) 4840 CALL HCHAR(22,30,32) 4850 CALL S0UND(50,330,3) 4860 CALL HCHAR<22,30,142) 4870 IF S=0 THEN 4800 4880 IF K=ASC("S")THEN 50 4890 IF K=ASC( U N”)THEN 4900 4900 CALL CLEAR 4905 END 4906 REM 4910 CALL CLEAR 4911 CALL SCREEN(2) 4912 PRINT “PLUTONE":: 4913 PRINT “URANO":: 4914 PRINT "NETTUNO":: 4915 PRINT "SATURNO":: 4916 PRINT “GIOVE":: 4917 PRINT "ASTEROIDI":: 4918 PRINT "MARTE":: 4919 PRINT "TERRA":: 4920 PRINT "VENERE":: 4921 PRINT “MERCURIO". 4922 IF SC=0 THEN 4933 4923 IF SC<=3 THEN 4933 4924 IF SC<=6 THEN 4935 4925 IF SC<=9 THEN 4937 4926 IF SC<=12 THEN 4939 4927 IF SC<=15 THEN 4941 4928 IF SC<=25 THEN 4943 4929 IF SC<=35 THEN 4945 4930 IF SC<=45 THEN 4947 4931 IF SC<=55 THEN 4949 4932 IF SC>55 THEN 4970 4933 A=19 4934 GOTO 4951 4935 A= 17 4936 GOTO 4951 4937 A=15 4938 GOTO 4951 4939 A=13 4940 GOTO 4951 4941 A=ll 4942 GOTO 4951 4943 A=9 4944 GOTO 4951 4945 A=7 4946 GOTO 4951 4947 A=5 4948 GOTO 4951 4949 A=3 4950 GOTO 4951 4951 GOTO 1980 4952 RETURN 4953 CALL CLEAR 4954 CALI SCREEN(2) 4955 FRI NT 4956 PRINT “ CONGRATULAZIONI“ 4957 PRINT iti • • a 4958 PRINT "AVETE VINTO. ED AVETE " 4959 PRINT “SALVATO IL SISTEMA SOLARE 4960 PRINT • • 4961 FOR P =1 TO 3500 4962 NEXT P 4963 END 4970 CALL SOUND(1000,262,0,330,0) 4980 CALL SOUNDdOOO,262,0,392,0) 4990 CALL SOUNDdOOO,330,0,392,0) 5000 GOTO 4953 5325 CALL CLEAR 5326 CALL SCREEN(2) 5330 PRINT 5340 PRINT “POSSEDETE 3 CANNONI LASER”: 5350 PRINT "PER RESPINGERE GLI ALIENI" 5370 PRINT : 5380 PRINT • S = LASER A SINISTRA" 5390 PRINT " D = LASER A DESTRA " 5400 PRINT "BARRASPAZIATRICE LASER AL CENTRO" 5410 PRINT :: 5520 PRINT "PREMERE UN TASTO X INIZIARE" 5530 CALL KEY(0,K,S) 5540 IF S=0 THEN 5530 5550 RETURN 6000 CALL VCHAR(1,14,152,19) 6010 CALL VCHAR(1,14,142,A) 6020 GOTO 4952 6030 A$="GLI ALIENI" 6040 FOR 1=1 TO LEN(A$) 6050 CALL HCHAR(17,18+1,ASC(SEGI(A$,1,1) )) 6060 NEXT I 6070 A$="HANNO VINTO!" 6080 FOR 1=1 TO LEN(A$) 6090 CALL HCHAR(19,19+1, ASC (SEGNAI, 1,1) )) 6100 NEXT I 6110 FQR P=t T0 3000 6120 NEXT P 6130 END « ATTENZIONE #* ATTENZIONE ** ATTENZIONE h ATTENZIONE ** ATTENZIONE ** A tutti i lettori di TEXAS DOSSIER un invito: Inviateci i Vostri programmi ed i trucchi che avete scoperto - I migliori verranno pubblicati e gli autori ricompensati - Una preghiera pero': Siate chiari nella documentazione e nei listati e se possibile inviate la cassetta, grazie. DIDATTICA Quando cominciano ad essere sviluppati programmi di una certa consistenza uno dei problemi maggiori che si incontrano e quello della visualizzazione dei dati, parti colarmente di quelli numerici. I computer sono nati e vengono per la maggior parte prodotti in INGHILTERRA ed AMERICA ed il caso vuole che in questi paesi la nostra virgola decimale, utilizzata per separare i decimali dalla parte intera del numero e' sostituita dal punto. Risltato; numeri che a prima vista, nel caso non si conosca questo scambio, risultano incomprensibili. Il programma didattico di cui ci occuperemo questa volta risulta quindi essere anche una autentica UTILITY per quanti progettano programmi di tipo gestionale. Ecco quindi il programma e di seguito la spiegazione accurata. 10 ZS = "0000000000" 20 HOME 30 V = 20 40 D = 3 50 INPUT R 60 PRINT “CIFRE”; 70 REM - 80 N* = STR$ (R) 90 L = LEN (N$) 100 C = 0 110 C = C + 1 120 IF L < C THEN GOTO 150 130 X* = MID$ THEN 110 150 LI = C - 1 160 L2 = L - C 170 IF LI = 0 THEN GOTO 210 180 PRINT TAB( V - LI); 190 PRINT LEFT$ ; 260 GOTO 290 270 PRINT MID$ ; 290 REM - 300 PRINT 310 GOTO 50 *******Istruz i oni 10-70: INI ZI ALI ZZAZ IONE *** Vengono caricati degli zeri nella variabile di tipo alfanumerico Z$. Essendo la variabile di tipo alfanumerico sono necessarie le virgolette (") all'inizio ed alla fine degli zeri. Essi serviranno a completare la parte intera del numero e cioè' quella prima della virgola. Viene cancellato il video mediante la parola chiave HOME (CLS per lo i COMMODORE, CALL CLEAR della TEXAS). Nella V viene caricato il posizione variabile valore 3, decimaii CLR per TI99/4A numerica SPECTRUM, per i 1 variabile valore 20, corrispondente alla sul video della virgola. Nella numerica D viene caricato il corrispondente al numero dei presenti dopo la virgola. Viene richiesto di immettere il numero da convertire in maniera comprensibile a noi Italiani (mediante la parola chiave INPUT). Viene creato una divisione logica nel listato del programma mediante la parola chiave REM ed alcuni trattini. Istruzioni 80-100: TRATTAMENTO DATI ***** La variabile numerica R, contenente il nostro numera viene convertita mediante la parola chiave STR$ nella variabile di tipo al-f anumeri co Ni. Mediante la parola chiave LEN viene determinata la lunghezza sempre del nostro numero, caricandola nella variabile numerica L . Viene azzerata la variabile numerica C che servirà' a contenere la posizione del punto (nella notazione numerica ANGLOSASSONE) decimale all'interno del numero. Istruzioni 110-160: RICERCA DEL PUNTO DECIMALE ******* Viene effettuata la ricerca del punto decimale all'interno del nostro numero. A questo scopo viene di volta in volta incrementata di uno la variabile numerica C. Viene controllato se essa e' superiore alla lunghezza del numero ed in tal caso salta all'istruzione 150. La parola chiave MID$ serve ad estrarre dei caratteri da una variabile al f anumeri ca ed in questo caso la variabile N$. Il carattere C presente di seguito dopo la virgola e' una variabile e per l'esattezza, la variabile che ci indica la posizione del punto decimale all'interno del numero. Il numera 1 indica che vogliamo estrarre solo un caratere a partire dalla posizione C (il numero contenuto in essa). Questa istruzione serve per estrarre dal numero il punto decimale nel caso che il confronto effettuato all'istruzione 140 non si veri-fichi. Nel caso si tratti e-f-f ett i vamente di un punto decimale viene caricato nella variabile LI il numero di — 27 — caratteri che precedono la virgola, mentre nella variabile L2 il numero di caratteri che seguono la virgola (il punto). Istruzione 170: Viene controllato se la variabile LI e' uguale a zero (caso di numero senza decimali) ed in caso a-f-fermati vo viene et-fettuato un salto all'istruzione 210. Istruzioni 180-200: STAMPA PARTE INTERA ****** Mediante la parola chiave TAB viene posizionato il cursore sul video alla posizione della virgola e mediante la parola chiave LEFT# viene stampata la parte intera del numero e -fatto questo viene e-f-fettuato un salto all'istruzione 220. Istruzione 210-220: Servono a stampare i numeri senza decimali e ad andare alla -fine del programma. Istruzioni 230-280: Servono a stampare la virgola alla posizione prefissata e la parte di decimali massimi confrontandoli con il valore della variabile numerica D dell'istruzione 40. Istruzioni 290-310: servono a -far tornare il programma all'inizio pronto a ricevere un nuovo numero da convertire e visualizzare. F‘L_^V' Ed eccoci alla "sezione" gioco 1 Un intervallo piacevole, speriamo, per tutti Voi. Ed anche istruttivo. Vi proponiamo infatti .problemi, non soluzioni; queste le aspettiamo da Voi e ci auguriamo che siano numerose. Ha veniamo al sodo' La prima prova riguarda un gioco tipo "FILETTO". Su una scacchiera composta da 9 nodi e 18 segmenti, vengono posizionate inizialmente come in in figura 3 pedine nere che si spostano di nodo i nodo senza poter arretrare, ed una pedina bianca capace di muoversi, sempre di nodo in nodo in tutte le direzioni. Vince il bianco se riesce a passare dietro ad i neri; vincono i neri se accerchiano il bianco in modo che questo non possa piu' muovere. Riuscite a trovare un ALGORITMO capace di esprimere il gioco per tradurlo in programma 7 Come secondo cimento proponiamo ai nostri amici lettori la "RISOLUZIONE" di un gioco-problema molto istruttivo e suscettibile di notevoli possibilità' di sviluppo in relazione anche alla originalità’ delle soluzioni. Ecco il problema: realizzare addirittura un... LINGUAGGIO DI PROGRAMMAZIONE NUOVO!! 1 ... Come?... Facilissimo: Voi conoscete certamente gli ORGANIGRAMMI ed i loro simboli: entrata, uscita, test, calcolo, ecc. Bene... Riuscite ad immaginare una serie di simboli grafici definenti le istruzioni elementari di un linguaggio? La programmazione con esso potrebbe essere realizzata anche in termini grafici. E' un idea interessante? Crediamo proprio di si’, perche' la soluzione di un tale problema pressuppone, fantasia, acume, logica e tutto il miglior bagaglio di conoscenze tecniche. Quindi un invito: Al lavoro!!... E non mancate di farci pervenire le soluzioni: potremo cosi' nei prossimi numeri mettere a confronto, e fare quindi giudicare da Voi, le piu' brillanti e, perche' no’, le piu' utili. Infatti un linguaggio grafico, come quello che potrete realizzare ,oltre che divertente può' anche prestarsi ad ulteriori sviluppi ed applicazioni. Quali?... Non ci sono limiti, tate correre la Vostra fantasia e fateci sapere cosa avete inventato!... Auguri a tutti , e a “RILEGGERCI" al prossimo mese. 30 CO.STA MARKETING A tutti gli amici lettori di SOFTWARE DOSSIER un’offerta a prezzi molto van¬ taggiosi di prodotti di consumo per personal e home computer. Per effettuare l’ordinazione è sufficiente compilare e spedire in busta chiusa a: CO.STA SRL - VIA MAZZINI 128 - 56100 PISA - SERVIZIO MARKETING il sottostante tagliando, allegando il pagamento dell’importo comples¬ sivo in contanti o tramite assegno bancario o vaglia postale. I prezzi so¬ no comprensivi di IVA e oneri di spedizione. Per spedizioni in contrasse¬ gno supplemento fisso di lire 3.0( DISCHETTI □ Cod. V001 Minifloppy 5" 1 /4 semplice faccia, semplice densità. Scatola da 10 dischetti Lire 45.000 Ogni scctola oltre la 1° sconto 5 %. □ Cod. V002 Minifloppy 5" 1 /4 doppia faccia, doppia densità. Scatola da 10 dischetti Lire 55.000 Ogni scatola oltre la 1“ sconto 5%. □ Cod. 8002 Floppy 8" doppia faccia, doppia densità. Scatola da 10 dischetti Lire 65.000 Ogni scatola oltre la 1° sconto 5%. CONTENITORI P Cod. BF01 Contenitore a scatola FLEX BOX per 10 minifloppy con coperchio Rosso, Giallo o Nero Lire 5.000 Cod. C040 Contenitore in piostica da 40 mìnifloppy, con serratura Lire 25.000 Cod. C090 Contenitore in plastica da 90 minifloppy, con serratura Lire 35.000 □ Cod. TD01 Supporto per stampante e contenitore di moduli conti¬ nui TOP DESK in plastica trasparente Lire 90.000 FLOPPY DISKS □ Cod. C001 Floppy Disks Album Lire 8.500 □ Cod. E001 Buste per 2 Floppy Disks 5" 1/4 con etichette in clear antlmagnetico Lire 800 □ Cod. E002 Buste per Floppy Disks 8'' con etichetta in clear antimagnetico Lire 800 TOTALE L. Firma