CODING ★ Calculons mieux et plus simplement|CPC Revue) ★

Calculons mieux et plus simplementMenu - Soft - Basic
Le BASIC des AMSTRAD est un des plus puissants en ce qui concerne les fonctions mathématiques, et il est amusant parfois de voir des programmeurs qui pondent de larges lignes pleines de parenthèses, alors qu'ils diposaient d'un mot BASIC qui aurait fait tout ce travail 1 Avec cette fonction non connue, le programme aurait gagné en fiabilité, en vitesse, en clarté, en octets ; et le programmeur aurait mis 20 secondes pour la taper plutôt que 20 minutes de cogitations arithmétiques...

Notre but sera de vous faire découvrir certaines fonctions "inconnues", ou, si vous les connaissiez déjà, de vous montrer certaines de leurs applications que vous ne soupçonniez peut-être pas.

LES MODIFICATEURS DE NOMBRES

C'est l'exempte type des fonctions dont on ne pense pas assez à s'en servir. Passons les en revue :

• Les entiers

La plupart des variables numériques que l'on utilise sont à la fois non décimales et comprises entre plus et moins 32767. Vrai ou faux ? Alors profitons-en pour les déclarer « entiers ». Trois avantages :

— Gain en mémoire (deux octets au lieu de cinq !)

— Leur traitement est deux fois plus rapide ; qu'il s'agisse de boucles FOR NEXT, d'incrémentation (comptage K = K + 1 ), etc.

— Suite à une division, pas de risque d'afficher des décimales stupides, du genre «Population = 12.1784063 habitants au kilomètre carré »

Comment déclarer que telles variables seront des "entiers” ?

— Le signe % : A % = 20/3 : PRINT A % —> 7

— L'annonce d'un DEFINT en début de programme : DEFINT E, F, l-N, Z signifie que toutes les variables numériques dont les noms commencent par les lettres E, F, I, J, K, L, M, N, ou Z seront des entiers. Le DEFINT l-N est une habitude « classique », parce que I et N sont les premières lettres de "INTEGER” voulant dire "entier” en américain.

— La fonction INT : INT (B/C)

• Les réels :

Par défaut, l'AMSTRAD CPC considère toutes les variables numériques comme étant des "réels", c'est-à-dire pouvant être à la fois très grands et décimaux. C'est sécurisant, passe-partout mais encombrant. Si vous créez une variable INTERET, forcément décimale donc "réelle", à la suite du sempiternel DEFINT l-N, vous vous tirez d'affaire avec le point d'exclamation :

INPUT"Taux d'intérêt:",!!

Il ne sera pas confondu par la suite avec un « I tout court » genre FOR I = 1 TO 20.

LES NOMBRES ARRONDIS

Si on veut éliminer les décimales inuti

les, le réflexe des BASIC "antiques" est d'écrire par exemple J = INT (N/P). Alors là, attention au piège !

— INT fournit l'entier le plus petit. Essayez :

PRINT 20/3-6.6666667

PRINT INT (20/3)->6

PRINT INT (-20/3)—>7

Eh oui, parce que -7 est plus petit que -6. En revanche A % = (20/3) -> 7

Si c'est l'entier le plus proche qui vous intéresse, il ne faut pas utiliser ce bon vieux INT mais CINT :

PRINT CINT (20/3)->7 : N =

CINT (5.12) ->5

• L'usage de ROUND :

Une merveille de ce BASIC, à utiliser constamment.

Supposons N = 1234.5678 PRINT ROUND (N, 2)-1234.57 Il arrondit au plus proche sur la décimale spécifiée (comme PRINT USING).

Pour présenter sans décimales un nombre supérieur à 32767, c'est simplement PRINT ROUND (G).

Et maintenant, vous voulez arrondir un grand nombre G non plus à l'unité près mais à la centaine près (approchée).

G-654321 : PRINT ROUND(G/100)* 100 -> 654300

QUESTIONS DE SIGNES

Souvent,, on est intéressé par la différence entre deux valeurs, A-B ou B-A, sans se soucier de savoir laquelle est la plus grande. On veut l'écart en "valeur absolue" (toujours positive) : c'est D = ABS(A-B).

Mais il est parfois utile de connaître cette hiérarchie pour un calcul ultérieur (nous verrons un exemple plus loin). C'est S = SGN(A-B). Si A > B ->S = 1 , si A < B -> S = -1, si A = B->S = 0.

OPERATIONS SPECIALES

Le signe « flèche en haut » ^ signifie « exposant, puissance» : 512 = 25, 2^3 = 2*2*2 = 8. Mais ce signe est aussi très utile pour calculer des racines autres que des racines carrées par SQR : SQR(81 ) peut aussi s'écrire 81^(1/2), de ce fait pour avoir la RACINE CUBIQUE d'un nombre, il suffit de faire sa puissance un tiers : PRINT 64^(1/3) -> 4 Il est important de mettre 1/3 entre parenthèses, question de PRIORITES. Je m'explique.

Vous savez déjà que * et / sont plus prioritaires que + et - : exemple 3 + 4*5 donne 23 et non 35, parce que la multiplication se fait AVANT l'addition. Eh bien le signe ^ est plus prioritaire que

* ou /. Ainsi, 64 ^ 1/3 donne 21.3333 et non 4. Le BASIC a fait d'abord 64 puissance 1 ( = 64), qu'il a divisé ensuite par 3.

Au sommet de la hiérarchie des priorités se trouvent les parenthèses. Donc n'hésitez pas à les employer, même si elles sont inutiles, c'est plus sûr et plus clair. Exemple 3+ (4*5) est préférable à 3 + 4*5

Voyons d'autres opérateurs d'usages moins fréquents mais néanmoins très précieux, car leur remplacement serait « lourd ».

MAX et MIN donne la valeur "record” d'une série de nombres. Exemple PRINT MAX(A, B, C, D, E, F)->642.75 On ne connait pas le nom du champion (ou du tocard avec MIN), seulement la valeur record.

MOD ET FIX : ils donnent le reste et la partie entière d'une division. Ils sont très utiles pour les unités non décimales ( = à base 10), comme les heures, minutes et secondes. Un exemple (listing 1). Attention ! MOD n'accepte que des nombres entiers.

LISTING 1

10 ' FIX et MOD
20 CLS
30 INPUT"TOTAL MINUTES ",TM:IF TM>32737 THEN 30
40 PRINT FIX(TM/60);"H";TM MOD 60;"mn"
50 PRINT:GOTO 30

Remarque de peu d'intérêt : FIX peut être remplacé par l'anti-slash (barre oblique inversée ; touche à droite de /), mais on est alors limité aux entiers (pas avec FIX).

PRINT 20 \ 3 -> 6

LES FONCTIONS SUPERIEURES

J'évoque ainsi les fonctions trigonométriques (SIN, COS, etc...) et les logarithmes ou exponentielles.

Dans le numéro 15 de CPC, nous avions déjà exposé les bases de la trigonométrie ("Les fonctions d'angles" page 12), et surtout la manière de s'en servir utilement. Aussi aujourd'hui, nous ne rappelerons que peu de choses :

— Par défaut, l'unité d'angle est le radian (57,3 degrés) ; avec l'instruction DEG, on passe en degrés. On peut revenir aux radians par RAD. L'AMSTRAD CPC est un des rarissimes à pouvoir faire de la trigo en degrés directement. Il renferme aussi le nombre PI avec 13 décimales (même si l'écran n'en présente que huit).

— On dispose des fonctions SIN, COS, TAN et ATN. Cette dernière se prononce "arc tangente". C'est "tangente en sens inverse", autrement dit ATN(X) renvoie un angle. Exemple, sous quel angle voit-on un immeuble haut de 25 mètres et situé à 100 mètres ?

DEG : PRINT ATN (100/25) -> 14 degrés
— Curieusement, il manque ARC SIN et ARC COS, mais nous verrons plus loin qu'il est très facile de les obtenir.

NOTA :

Sur certaines calculatrices scientifiques telle la célèbre "CASIO fx-82", les touches ARC SIN... sont représentées par « SIN -1 », etc. C'est absurde sur le plan mathématique car cela signifie

1 /SIN : C'est uniquement par manque de place sur ce minuscule clavier que le fabriquant symbolise quelque . chose d'INVERSE par l'exposant -1. (Ceci pour dissiper un doute)

• les logarithmes

Si la trigonométrie concerne tout le monde (tracés de cercles), les logarithmes n'intéressent que la minorité d'entre vous traitant des problèmes scientifiques, en physique notamment. Toutefois, il faut bien dire que très souvent, ils exploitent des formules toutes faites, mais avec des souvenirs de lycée que l'on qualifiera de « vagues »... Alors faisons le point très succinctement. Le LOG d'un nombre (toujours > zéro) fournit un nombre plus petit et qui progresse moins vite. Il y a deux races de LOG, les « népériens » (ou « naturels » ou « à base e ») obtenus par la fonction BASIC LOGO, et les « décimaux » (ou « ordinaires » ou « à base 10») obtenus par LOG100.

Ce fameux nombre e vaut 2.718281... LOG(e) = 1, LOG10(10) = 1

LOG(e *e) = 2, LOG10(10* 10) = 2, LOG 10(1000) = 3

Les logarithmes décimaux LOG100 sont d'un usage plus courant que les népériens. Il est bon de savoir que :

— Le rapport des log d'un même nombre est constant :

LOG(N)/LOG10(N) = 2.3026

— L'anti log népérien s'appelle l'EX-PONENTIELLE.

LOG(45) = 3.807 ; EXP(3.807) = 45 EXP(1 ) = 2.718... (c'est e)

— L'anti log décimal n'est pas disponible dans le BASIC AMSTRAD, mais nous verrons plus loin qu'il est très facile de l'obtenir.

— LOG 10(1 ) = 0 ; LOGIO(O) = moins infini. Donc le log décimal d'un nombre plus petit que un (mais toujours supérieur à zéro I) donne un résultat négatif : LOG 10(.5) = -0.301...

Voilà ! C'est tout ce qu'il est utile de savoir sur les logarithmes, non pas pour les examens de maths, mais pour les exploiter sur le plan pratique. Nuance...

LES FONCTIONS PERSONNELLES DEF FN

Super ultra important ! La commande DEF FN permet de compléter notre BASIC par des fonctions jusque là manquantes, telles que racine cubique, arc sinus, arc cosinus, anti log décimal ; mais aussi des fonctions très utiles pour votre spécialité, électricité, chimie, sta-
tistique, comptabilité financière, etc... Prenons le cas ultra simple de la racine cubique :

De même qu'il existe SQR(N) pour les racines carrées, fabriquons CUB(N) pour les racines cubiques :

30 DEF FN CUB(N) = N^(1/3)

DEF FN est la contraction de DEFINE FUNCTION. Pour l'exploiter, il faudra écrire :

PRINT FN CUB(1745)->12.039

Ce "FN" prévient le BASIC que ce qui suit est une fonction "maison" ; sans lui il planterait car il prendrait CUB(1745) pour une variable indicée, et comme il n'y a pas eu de DIM CUB(2000)... En somme, le vrai nom de notre fonction, c'est bien FN CUB(), défini par DEF ligne 30.

Un DEF FN ne peut être instauré qu'au sein d'un programme, pas en mode direct. Il n'empêche que le programme arrêté, on peut exploiter FN CUB() en mode direct.

Un DEF FN est constitué de deux parties :

— Le nom, ici CUB, suivi des paramètres nécessaires entre parenthèses.

— La formule à exécuter avec ces mêmes paramètres. A noter que cette formule peut utiliser des fonctions personnelles déjà définies en amont. Ces formules peuvent donc être très complexes.

Et maintenant passons à des exemples concrets.

DEMONSTRATIONS DE DEF FN
(listing 2)

10 'DEMO de DEF FN-M.A. 5/87
20 CLS:PRINT"Consommation d'Essence (0 pour quitter)":PRINT
30 DEF FN CONS(K,L)=100*L/K
40 INPUT"Litres de Plein a Plein : ",LPP
50 IF LPP=0 THEN 200
60 INPUT"Distance entre ces Pleins : ",KM
70 PRINT ROUND(FN CONS(KM,LPP),1);"litres aux 100 km"
80 PRINT:GOTO 40
199 '------------------------
200 ' VOLUME ET DIAMETRE DE SPHERES
210 CLS:PRINT"VOLUME ET DIAMETRE DE SPHERES (0=fin)":PRINT
220 DEF FN VSPH(D)=PI*(D/2)^3*4/3
230 DEF FN DSPH(V)=((3*V/PI/4)^(1/3))*2
240 INPUT"DIAMETRE de la SPHERE : ",D
250 IF D=0 THEN 400
260 PRINT "VOLUME =";FN VSPH(D):PRINT
270 INPUT"VOLUME de la SPHERE : ",V
280 IF V=0 THEN 400
290 PRINT"DIAMETRE =";FN DSPH(V):PRINT
300 GOTO 240
399 '------------------------
400 ' PRIX TTC avec REMISE
410 CLS:PRINT"CALCULS de REMISES (0 pour quitter)":PRINT
420 DEF FN HTR(P,R)=P*(100-R)/100
430 DEF FN TTR(P,R,T)=FN HTR(P,R)*(1+(T/100))
440 INPUT"Prix fort HT : ",PHT
450 IF PHT=0 THEN 600
460 INPUT"Remise % sur Prix HT : ",RHT
470 INPUT"Montant TVA % : ",TVA
480 PRINT TAB(8);"PRIX APRES REMISE :"
490 PRINT "prix HT =";ROUND(FN HTR(PHT,RHT),2);"F"
500 PRINT "prix TTC =";:PRINT ROUND(FN TTR(PHT,RHT,TVA),2);"F"
510 PRINT:GOTO 440
599 '------------------------
600 ' ARC SINUS ARC COSINUS
610 CLS:PRINT"ARC SINUS & ARC COSINUS (9 pour quitter)":PRINT
620 DEG
630 DEF FN ASIN(A)=ATN(A/SQR(1-A*A))
640 DEF FN ACOS(A)=-90*(SGN(A)-1)+SGN(A)*ATN(SQR(-1+1/A/A))
650 ' en RAD remplacer le -90 par -(PI/2)dans le DEF FN ACOS(A)
660 PRINT:INPUT "SIN =",S:IF S=9 THEN 800
670 IF ABS(S)>1 THEN 660
680 PRINT "ANGLE=";:PRINT USING"###.## degres";FN ASIN(S)
690 PRINT:INPUT "COS =",C:IF C=9 THEN 800 ELSE IF ABS(C)>1 THEN 690
700 PRINT "ANGLE=";:PRINT USING"###.## degres";FN ACOS(C)
710 GOTO 660
799 '------------------------
800 ' ANTI LOG DECIMAUX (ou a base 10)
810 CLS:PRINT"ANTI LOG10 (0 pour quitter)":PRINT
820 DEF FN ALOG(L)=EXP(L*LOG(10))
830 INPUT "Nombre >0 : ",N:IF N=0 THEN CLS:END
840 IF N<=0 THEN 830
850 X=LOG10(N)
860 PRINT TAB(6);"LOG10(";N;")=";X
870 PRINT "ANTI LOG de";X;"=";FN ALOG(X)
880 PRINT:GOTO 830

• Consommation d'essence (lignes 20 à 80)
La formule du DEF FN ligne 30 utilise deux paramètres ; il n'empêche que nous l'exploitons ligne 70 avec d'autres noms de variables. Ce qui importe, c'est l'ordre dans lequel on les donne (ici distance puis litres) ; exactement comme dans les fonctions BASIC classiques.

Remarquez notre ROUND de la ligne 70 qui arrondit le résultat sur la première décimale, car 9.7621342 1/100 km serait quelque peu grotesque...

• Volume et diamètre de sphères (lignes 200 à 300)
Deux DEF FN, l'un pour obtenir le volume connaissant le diamètre, et l'inverse qui donne le diamètre connaissant le volume. On est parti de la fameuse formule V = quatre tiers de PIxR3. Exemple, diamètre en cm d'un ballon de 1000 cm3 -> 1 2,4 cm.

Si ces calculs étaient fréquents dans un de vos programmes, vous auriez été tenté d'utiliser un GOSUB vers un sous-programme d'une ligne : avouez qu'un FN rend le listing plus clair et aussi plus rapide.

• Calcul remises (lignes 400 à 510)
Tel fournisseur vous accorde une remise de 22 % sur le prix fort hors taxes, sur lequel vous devrez appliquer la TVA de 18,6 %. Ces deux FN simplifient une fois pour toutes ce casse-tête.

Il est important de noter que le second DEF FN (ligne 430) utilise le FN défini à la ligne précédente ! Une astuce de fainéant... Là encore, remarquez nos ROUND des lignes 490 et 500 qui arrondissent au centime le plus proche. Dans ces deux lignes, nous avons encore modifié nos noms de variables, mais ils sont entrés dans l'ordre pré-établi aux lignes 420 et 430.

• Arc sinus et cosinus (lignes 600 à 710)
Certains les attendaient depuis un moment... Pour obtenir les deux formules des lignes 630 et 640, j'ai utilisé le bon vieux théorème de Pythagore et la loi des triangles semblables. Calculatrice scientifique en main, vous pourrez vérifier l'exactitude de ces deux FN.

Pour l'anecdote (comique) vous comparerez ces deux lignes aux deux pages de programmes (avec organigrammes !) parues dans une certaine revue d'avril 87... (page 130)

NOTA : Pour sinus =1 ou cosinus = 0, l'écran signale "Division by zéro”, mais avec le bon résultat (angle = 90°) et sans planter.

• Anti log décimal (lignes 800 à 880)
La formule de la ligne 820 est très simple. Pour notre démonstration, vous entrez un nombre positif quelconque, l'écran affiche son LOG 10, puis calcul de l'anti log qui aboutit au nombre que vous aviez tapé.

• Une bonne habitude à prendre
Vous programmez souvent dans un domaine qui vous est cher, et de ce fait vous allez créer une série de DEF FN très personnels, très spécifiques : rassemblez-les dans un sous-programme commençant par un numéro de ligne élevé, 40000 par exemple, avec bien sûr un RETURN en final. Puis SAVE"FN", A. Vous le joindrez à un programme nouveau par MERGE "FN". Au début de ce programme un GOSUB 40000, et vous voilà avec un « complément BASIC spécial ». J'adore les astuces pour fainéants. Et vous ?

Petite remarque hors sujet : DEF FN est aussi valable pour créer de nouvelles fonctions chaînes.

LES PUISSANCES DE DIX

Pour les nombres très grands ou très petits, il est fastidieux de compter les zéros, qu'ils soient avant ou après le signe décimal.

En physique, où le cas est courant, on simplifie l'écriture par les « puissances de 10 ». Ainsi 5000 peut s'écrire 5.103. En effet 103 =10x10x10 = 1000 ; l'exposant 3 donne le nombre de zéros après le 1 de 10. Exemples pratiques (et à retenir... ) : 106 = millions, 109 = milliards, 10-3 = millièmes, 10-6 = millionièmes (ou micro) ; 10-9 = milliardièmes (ou nano). 8,5 101 = 85 ; 8,5 100=8,5 ; 8,5-1 = 0,85 ; 4,1-2 = 0,041. On peut donc aussi dire que l'exposant représente le nombre de "crans" dont il faudra déplacer le signe décimal.

C'est ce que les notices de calculatrices appellent la « notation scientifique ». Sur les micro-ordinateurs ce « 10 » est symbolisé par la lettre E. Exemple 2,34 109 (2 milliards 340 millions) donne 2.34 E + 9.

Le CPC affiche au maximum neuf chiffres (les zéros compris) ; s'il n'a pas la place, il passe en "notation scientifique" mais avec UN SEUL CHIFFRE avant le point décimal. Ainsi pour 34 milliards, il ne va pas afficher 34 E + 9 mais 3.4 E + 10. Et n'espérez pas l'afficher en entier avec un PRINT USING avec douze #...

LE PIEGE DES .999

Un ordinateur calcule sur un certain nombre de chiffres (une quinzaine), aussi à la suite de certains calculs, il peut fournir 7.99999999 alors que logiquement, vous étiez en droit d'attendre 8.000000. C'est le cas avec des "réductions" de nombres telles que soustractions, divisions, racines carrées, etc...

Si vous n'avez pas pris vos précautions avec CINT, ROUND ou PRINT USING, cela peut avoir des effets catastrophiques sur écran ou sur imprimante : vous aviez réservé la place pour un résultat entier de 3 chiffres maximum, et vous voilà avec 9 chiffres + un point décimal, soit 7 "cases" de déplacement, et tout çà pour un résultat numérique "approché".

Autre désastre possible en programmation, du genre IF R = 8 THEN..., qui ne s'exécutera pas avec R = 7.99999... En voici la preuve (listing 3).

LISTING 3

10 ' Le PIEGE des .99999
20 CLS:PRINT"FOR N=0 TO 1 STEP 0.05":PRINT
30 FOR N=0 TO 1 STEP 0.05
40 PRINT N:NEXT
50 PRINT"1 non atteint : PRESSEZ UNE TOUCHE":CALL &BB06
60 CLS:PRINT"FOR N=1 TO 0 STEP -0.05":PRINT
70 FOR N=1 TO 0 STEP -0.05
80 PRINT N:NEXT
90 PRINT"0 non atteint : PRESSEZ UNE TOUCHE":CALL &BB06
100 CLS:PRINT"FOR N=1 TO 0 STEP-0.05 avec N=ROUND(N,2)"
110 FOR N=1 TO 0 STEP -0.05
120 N=ROUND(N,2)
130 PRINT N:NEXT
140 LOCATE 15,12:PRINT"C'est enfin correct"
150 CALL &BB06:CLS

Si on supprime la ligne 120 et qu'en ligne 130, on demande PRINT ROUND(N, 2) nous aurions les valeurs attendues sauf la valeur zéro toujours pas atteinte.

Ce piège est au sommet de la traîtrise car nous venons de voir à l'écran que tout peut très bien se passer pour certaines valeurs numériques ; donc un programme peut planter après des mois de fonctionnement correct...

Conseil : lorsque vous guettez un certain résultat, essayez d'éviter le signe égal, mais plutôt < ou>. Exemple pour guetter N=0.75, programmez IF N >0.74 THEN...

LE HASARD PROGRAMME

Pour tenter la fiabilité d'un programme de calculs, on utilise parfois les nombres aléatoires fournis par RND. Cela nous amène à déclarer que la roulette est truquée !

RND donne un nombre de neuf chiffres, nombre supérieur à zéro et inférieur à 1 ; donc sans jamais atteindre 0 ou 1.

Si vous avez une imprimante, faites un RESET du micro (CTRL-SHIFT-ESC) et tapez

FOR N = 1 TO 9 : PRINT #8,RND : NEXT

Nouveau RESET, puis de nouveau cette ligne. Vous constatez alors que les deux suites de nombres sont identiques ! RND ne fait donc que lire des DATA en ROM, remplis de nombres “mélangés". RANDOMIZE(D) est l'équivalent d'un RESTORE D : on pointe plus loin et on lit (D > 5). Pour que les dés ne soient plus pipés, je préconise.

FOR N = 1 TO 9 RANDOMIZE(TIME)
PRINT RND
NEXT

Mieux encore : avant le NEXT, mettez un CALL &BB06 ( = attente d'une touche) pour que TIME soit vraiment aléatoire, et par conséquent RND.

Pour obtenir des nombres compris entre 1 et 49 (le Loto... ) il faut programmer :

PRINT CINT(RND*48) + 1

Rappelons que CINT arrondit à l'entier le plus proche. Avec RND*49, on aurait eu des nombres entre 0 et 49, ce qui ne sera pas le cas avec (RND*48) + 1 Puisque RND a neuf chiffres après le point décimal, il y a peut-être des centaines de valeurs de RND qui vont conduire au même nombre, 28 par exemple : 0.2814... ; 0.2782... ; etc.

Pour un programme faisant votre LOTO, il faudra donc éliminer les doublons. En voici un, garanti super aléatoire ; donc à proposer au Casino de BRUZ... (listing 4). Remarquez les lignes 80 à 100 pour rejeter les doublons.

LISTING 4

10 ' SUPER LOTO - M.A. 5/87
20 CLS:DEFINT A-N:DIM K(7)
30 LOCATE 11,4:PRINT "S U P E R L O T O"
40 FOR N=1 TO 7
50 RANDOMIZE(TIME)
60 A=CINT(RND*48)+1:K(N)=A
70 ' Elimination des Doublons
80 FOR J=1 TO N-1
90 IF A=K(J) THEN J=N-1:N=N-1
100 NEXT
110 LOCATE 11,12:PRINT "Pressez une Touche":CALL &BB06:CLS
120 NEXT
130 ' RESULTATS
140 LOCATE 11,9:PRINT "pour gagner au LOTO"
150 LOCATE 8,12:PRINT "JE VOUS CONSEILLE DE JOUER :":LOCATE 6,15
160 FOR N=1 TO 7:PRINT USING"####";K(N);:NEXT:PRINT:PRINT

CONCLUSION

Nous espérons vous avoir montré la puissance de calcul de votre CPC, et comme

il est facile de lui faire exécuter rapidement les opérations les plus rebutantes. Cependant, il fallait aussi vous mettre en garde contre des réactions bêtes et méchantes d'un micro-ordinateur si puissant soit-il.

Au fait... Si jamais le dernier, listing vous faisait effectivement gagner au LOTO, vous voyez ce que je veux dire... (j'ai bien le droit de réver, non ?).

Michel ARCHAMBAULT , CPC n°24

★ ANNÉE: 1985
★ AUTEUR: Michel ARCHAMBAULT

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding » Le Bug du DEC$ sur 464
» Coding » Basic - Restauration de la Memoire Basic (CPC Revue)
» Coding » Basic Technique du Chaine Merge
» Coding » Comment retrouver une erreur dans une ligne de Datas
» Coding » Essai Compilateur Basic
» Coding » Basic Memorisez l'Ecran du CPC
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 630 millisecondes et consultée 1621 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.