Tandy Color Computer 3 Manuel utilisateur
Vous trouverez ci-dessous des informations sur le Color Computer 3 Extended BASIC. Ce manuel est conçu pour vous aider à apprendre à programmer votre ordinateur, à composer de la musique, à créer des spectacles de lumière, à utiliser des jeux et à réaliser des œuvres d'art. Il couvre les commandes de base, la gestion de la mémoire, les couleurs, le son et les techniques de programmation avancées.
PDF
Télécharger
Document
I N ITIATION AU
BASIC CO ULEUR ÉTENDU
(VERSION 2)
Color Computer 3 System Software:
© 1982, 1986 Microsoft and
and Microware Systems Corporation.
Licensed to Tandy Corporation
Ali Rights Reserved.
Ali
portions of this software are copyrighted and are the proprietary and trade secret information
of Tandy Corporation and/or its licensor. Use, reproduction or publication of a n y portion of
this material without the prior written authorization by Tandy Corporation is striotly prohibited.
Co/or Computer 3 Extended BASIC
© 1 986, Ta n dy Corporation.
Ali Rights Reserved.
Reproduction or use, without express written permission from Tandy Corporation and/or its
licensor, of any portion of this manual is prohibited. While reasonable efforts have been taken
in the preparation of this manual to assure its accuracy, Tandy Corporation assumes no liability
resulting from any errors or omissions in this manual, or from th e use of th e information cont;:iined
herein.
Tandy and Radio Shack are registered trademarks of Tandy Corporation.
10
9
8
7 6
5
4 3
2
1
Au débutant . .
.
Si vous ne connaissez absolument rien aux ordinateurs. vous avez trouvé le livre qu'il vous
laut1 Cet ouvrage vous aide à "prograr7lmer" votre ordinateur avec son propre langage: le
BASIC étendu. Vous commencerez en:
•
Composant de la musique .
•
PrGarant des spectacles de lumire.
•
Utilisant des jeux.
•
Ralisant des oeuvres d'art .
Si vous êtes pressé de passer à l ' action, laites preuve d'un peu de patience. C'est en vous
amusant que vous apprendrez le plus rapidement.
Consacrez donc un peu de temps à votre ordinateur. Tapez ce qui vous passe par la tête,
amusez-vous et mettez-vous à l'aise. Vous avez entre les mains un outil sensationnel.
et à l'utilisateur plus expérimenté
Nous sommes heureux de vous compter encore dans la famille du BASIC couleun Vous
connaissez déjà peut-être le BASIC couleur original et même le BASIC couleur étendu.
La version 2 du BASIC couleur étendu, langage décrit dans ce livre, est une extension plus
évoluée du BASIC couleur et du BASIC couleur étendu. Avec la version 2 du BASIC couleur
étendu, vous pouvez:
•
Dessiner des images tèrs détaillées, grâce â des milliers de positions d'écran.
•
Colorier vos images en turquoise, indigo, violet et avec des douzaines d'autres
couleurs éclatantes.
•
Créer des effets spéciaux en mélangeant par exemple du texte avec des graphiques
â haute définition.
•
Détecter un problème, par exemple une pression sur la mauvaise touche qui fait
tomber votre programme en panne.
La table ci-dessous donne les commandes nouvelles que vous apporte la version 2 du BASIC
couleur étendu.
Chapitre
Commande
PALETTE RGB
7
WIDTH, LOCATE, ATTR,
vraies)
8
ii
CfilITITJ([) (pour minuscules
PALETTE, PALETTE CMP, PALETTE RGB
18
BUTTON
23
PALETTE
29
HSCREEN, HCIRCLE, HCLS, HCOLOR, HDRAW, HUNE,
HPAINT, HRESET, HSET, HPOINT, HPRINT, PALETTE
30
HBUFF, HPUT, HGET
37
HSTAT
38
ERLIN, ERNO, ONERR, ONBRK
TABLE DES MATIÈRES
PARTIE 1 I ÉLÉMENTS DE BASE
Et voici votre ordinateur
PRINT SOUNO CLS PALETTE RGB �([)
ordinateur n'oublie jamais
(sauf si vous lui coupez le courant)
Variables en chaine LET
2
Votre
3
Un programme simple
NEW INPUT GOTO RUN
PRINT, PRINT; LIST
4 Une boucle
FOR/NEXT
5
Une boucle dans une autre
FOR/NEXT emboitée SHIFT @)
6 Des d écisions difficiles
IFTHEN END ANDÔR
7 L' écran
PRINT@ WIDTH
'8
CfilIIT!)QD
LOCATE
ATTR
Les co ul eurs
PALETTE
9 Le jeu du hasard
AND
10
Retour à l ' école
DATA READ RESTORE
11
L'arithmétique plus facile
GOSUB RETURN REM
Notation exponentielle
12
L'ordinateur et
LEN
13
LEFT$
INT
ON GOSUB
ON GOTO
les mots
RIGHT$ MID$ CLEAR
Sauvegarde des programmes
CLOAD CSAVE SKIPF
1 4 Édition des programmes
EDIT DEL RENUM
15
questionnaire
I NKEY$ VAL
Un
Ill
TABLE DES MATIÈRES
,
PARTIE 2 I UN PEU DE DETENTE
16
De la musique
PLAY
17
Des images
SET RESET CHR$
18
ASC
Bâtons de commande
BU l ION
JOYSI K
PARTIE 3 I DES IMAGES EXCEPTIONNELLES
IV
19
L'ordina:eur fait le point
PSET PRESET PPOINT
20
Une ligne à su iv re
LINE COLOR
21
L'écran argenté
SCREEN PCLS
22
Des PMODE à la mode
PMODE
23
Un empoi différent de la couleur
PALETTE
24
À la recherche de la bonne page
PCLEAR PMODE PCOPY
25
Pour tourner en rond
CIRCLE
26
Un grand coup de pinceau
PAINT
27
Le trait de génie
DRAW
28
Un écra1 qui va au tableau
GET PUT
TABLE DES MATIÈRES
PARTIE 4 I UN TABLEAU D'ENSEMBLE
29
Des points par milliers
INKEY$ VAL
HCOLOR HDRAW H U N E HPAINT
HRESET HSET HPOINT PALETIE HPRINT
30
Stockage des graphiques
HBUFF HPUT HGET
PARTIE 5 / PASSONS AUX CHOSES SÉRIEUSES ...
31
Stockage des donnes
OPEN CLOSE PRINT # - 1
INPUT #- 1
EOF
32 Tableaux numériques
DIM
33
Tableaux en chaine
LUST PRINT # - 2
34 Tableaux multidimensionnels
PARTIE 6 I RETOUR AUX ÉLÉMENTS DE BASE
35
Les nombres
SOR SIN COS TAN
FN SGN ABS
36
Les chaines
STRING$ INSTR
ATN
LOG EXP
MID$ RIGHT$
37 Entrée et sortie
UNE INPUT PRINT
38 Les erreurs
STOP CONT TAON
ONERR ONBRK
FIX
DEF
LEFT$ STR$
USING
POS
TROFF
ERLIN
HSTAT TIMEA
MEM
ERNO
39 Sous-programmes en langage machine
DEFUSR VARPTR PEEK POKE
HEX$ LPEEK LPOKE
V
TABLE DES MATIÈRES
PARTIE 7 I DE TOUT ET DE RIEN
Réponses suggérées aux exercices
Exemples de programmes
Feuilles de programmation
Écrans de texte à basse définition
Écrans de texte à haute définition
Écrans de graphiques à basse définition
Écrans de graphiques à haute définition
Codes des caractéres BASIC
Codes 0-1 27/basse et haute définition
Codes 1 28-255/basse définition
Codes 1 28-255/haute définition
Codes des couleJrs
Accés de palette
Couleurs du BASIC
Tonalités musicales du BASIC
Formules mathématiques
Fonctions dérivées
Variables d'imprimante
Topographie de mémoire
Sous-programmes de mémoire morte (ROM)
Messages d'erreur du BASIC
Résumé du BASIC
VI
IT
IT
PARTIE 1 /ELEM ENTS DE BASE
Dans cette partie, vous apprendrez à programmer. Avant de commencer. il faut cependant
vous mettre dans de bonnes di spositions.
•
Soyez détendu. Il n'est pas nécessaire d'essayer de tout comprendre d'un seul coup.
•
Essayez vos propres idées. Vous n'avez pas à nous suivre sans cesse servilement.
•
Amusez-vous donc avec votre ordinateur couleuri
Si vous êtes prêt, tournez la page et commencez.
1 /ET VOICI VOTRE ORDINATEUR
Dans ce chapitre et le suivant, nous vous présentons votre ordinateur; nous vous montrons
sa façon de travailler, certaines de ses qualités et méme ::iuelques-unes de ses bizarreries.
Quand vous arriverez au chapitre 3, vous serez prêt à prograf!imer.
Pour commencer
(Mise sous tension)
Branchez votre ordinateur à un télécouleur ou à un écran vidéo. Le petit manuel d'introduction
fourni avec votre ordinateur couleur donne des instructions à ce sujet.
Ensuite:
1.
Mettez le télécouleur ou l ' écran vidéo en marche.
2.
Si vous utilisez à un télécouleur. réglez-le sur le canal 3 cu 4 et mettez le sélecteur d'antenne
à la position d'ordi nateur (COMPUTER).
3.
Mettez votre ordinateur en marche. L'interrupteur marche-arrêt (POWER) est à la partie
arriére gauche du clavier.
Le message de début du BASIC apparTat sur l'écran:
D I S K E X T E N D E D COLOR BAS I C v.r.
C O P R . 1982, 1986 B Y T A N D Y
UNDER LI CENSE FROM M I C ROSOFT
A N D M I C R OWARE S Y S T E M S C O R P .
(v.r. correspond a u numéro d e version et d'autorisation du BASIC.)
Si le message de début du BASIC n'apparat
pas
sur lé'cran:
•
Arrêtez l'ordinateur. Attendez 30 secondes et remettez l'ordinateur en marche.
•
Réglez la luminosité et le contraste du télécouleur ou de l ' écran vidéo.
•
Vérifiez tous les branchements.
Si le message de début du BASIC n'apparait toujours pas, consultez la section "Recherche
des pannes et entretien" du manuel d'introduction.
Quand le message de début du BASIC apparait, vous pouvez commencer.
3
1 / ET VOICI VOTRE ORO/NA TEUR
Uti lisation du clavier
(Touches (SHI F T )[[))
Faites connaissance avec le clavier et tapez ce qui vous passe par la tête. Vous êtes maintenant
en mode de majuscules seulement. Tous les caractéres tapés apparaissent en majuscules
sur l'écran.
Pressez la touche rnHID) et appu yez sur :L. Rel âchez ensuite les deux touches et tapez
quelques autres caractéres. Ces caractéres apparaissent maintenant en couleurs inverses.
Si les caractéres ne sont pas en couleurs inverses, p·essez de nouveau CSHIET OO. Veillez
à appuyer sur CSHITJ) avant de presser ®·
Quand vous pressez :sAIF.1J:0J, 'tous passez en mode de majuscweslminuscules. Les
minuscules tapées apparaissent en c::iuleurs inverses. Les majuscules apparaissent en couleurs
normales.
Pour taper une maiuscule, pressez la touche (filiIFI:, comrn� vous le feriez avec une
machine à écrire Maintenez �HIFI: et tapez la lettre désirée en majuscule.
Pour revenir au 11ode de mai uscules seulement, pressez de nouveau ŒHIEI)CID. Il est
préférable de rester en mode de majuscules seulement pour entrer des commandes.
Entrée d'une commande
(Commande PRINT)
Pressez la touche � . Ne vous inquiétez que de la derniére ligne de votre écran qui
indique:
OK
OK est un message de l'ordinateur. Il vous déclare: "OK, je suis à votre d1sposit1on."
\
'
'
: 0
4
,
...
'
:
'
'
0
'
\
, __
'
1
0
'
'
' -�
\
'
0
,
'
; �
'
l
1
0
..
'
'
, :
\
1
' '
'
'
' '
'
0 .: 0 ,
1 / ET VOICI VOTRE ORO/NA TEUR
Donnez votre premier ordre ou commande à l'ordinateur. Tapez exactement la ligne suivante:
P R I N T ' ' B O N JO U R , JE S U I S V O T R E O R D I N A T EUR C O U L EUR''
Quand vous arrivez à la droite de l'écran, contintJez à taper.
apparaî sur la ligne suivante.
La
derniére partie du
message
Votre cran doit indiquer:
OK
P R I N T ' 'B O N J OUR , J E S U I S VO T R E O R D I N A T E U R C O U L E U R ' '
Vérifiez maintenant la ligne. Avez-vous mis les gui l le mets aux bon s endroits? Avez-vous tapé
PRINT en majuscules? (L'ordinateur ne comprend pas les commandes tapes en minuscules.)
Si vous vous tes tromps, pressez simplement la touche El; le dernier caractére tapé disparaît.
Pressez de nouveau ::::ette touche et l'avant-dernier caractére disparaît . . et ainsi de suite.
Tapez maintenant les caractéres corrects.
.
Êtes-vous prêt? Pressez la touche
CEN:'.ŒID . 011e se
passe t- il? Votre écran doit indiquer:
-
OK
P R I N T ' ' B O N JO U R , JE S U I S V O T R E O R D I N A T E UR C O U L E UR''
B O N JOUR , J E S U I S V O T R E O R D I N A T E U R C O U L E UR
OK
I
Votre ordinateur vous a obèi en imprimant le message entre guillemets.
5
1 / ET VOICI VOTRE ORO/NA TEUR
Entrée des nombres
(Nombres et chaînes)
Faites imprimer un autre message par l'ordinateur en tapant:
P R I N T "2"
Pressez�. L'ordinateur i mprime votre message.
Essayez-en un autre:
P R IN T ' ' 2 + 2 ' ' �
L'ordinateur imprime:
2 + 2
Vous vous attendiez peut-être à bien plus qu'une simple reproduction électronique . . . . Vous
vouliez peut-être une réponse1 Donnez à votre ordinateur des nombres sans guillemets. Tapez:
PRINT 2 + 2 �
Cette fois-ci, l'ordinateur donne la réponse:
4
Les guillemets ort sans aucun doute une s1gnif1cation. Utilisez-les encore un peu et tapez
ces lignes:
P R I NT
P R I NT
P R I NT
PRINT
PRINT
PRINT
5+4 �
''5 +4'' �J
' ' 5+4 E G A L E ' ' 5+4 �
6/2 ' ' DO N N E 6/2 ' ' �
' ' 8/2'' ::EN.iEEJ
8/2 �
Qu'en déduisez-vous?
RÉGLES SUR LES CHAÎ NES ET LES NOMBRES
L'ordinateur voit tout ce que vous tapez sous forme de chan /es ou de nombres. Entre
les guillemets, l'ordinateur voit une chaîne exactement telle qu'elle est décrite. S'il
n'y a pas de guillemets, l'ordinateur voit un nombre qu'il considére comme un
probléme numérique.
6
1 / ET VOICI VOTRE ORO/NA TEUR
Une calculatrice couleur
( + - , I, et CD)
,
*
Pour l'ordinateur, un probléme d'arithmétique ne présente aucune difficuté. Faisons par
exemple une divisior et tapez:
P R I N T "3 8 6 2 D I V I S E P A R 1 3 2 E G A L E " 3 8 6 2 / 1 3 2 (ENTER)
_
_
Faisons maintenant une multiplication:
P R I N T 1 5 89 * 23 CEN:ïE1i)
Remarquons que le signe de multiplication de l'ordinateur est un
astérisque (*).
Vous pouvez aussi élever un nombre à une puissance
3 à la puissance 2, tapez:
à l 'aide de la touche CD.
Pour élever
P R I N T 3 CD 2 Œ:Nm)
Essayons quelques autres problémes:
P R I NT " 1 5 * 2 = " 1 5 *2 �
P R I NT 1 8 * 1 8 " E S T L E C A R R E DE 1 8 " ŒNm)
P R I N T 3 3 . 3 3 /2 2 . 8 2 '
� aintenant. à votre toJn Écrivez deux commandes qui i mpriment ces deux problémes et leurs
reponses:
157 / 13.2 =
9 5 * 43 =
EXERCICES SUR LES COMMANDES
Si vou s utilisez les commandes correctes, l'ordinateur imprime sur l écran :
'
1 5 7 / 1 3 . 2 = 1 1 -8 9 3 9 3 9 4
95 * 43 = 4085
Êtes-vous prêt pour les réponses? Les commandes correctes sont:
P R I N T " 1 5 7 / 1 3 . 2 = " 1 5 7 /1 3 . 2
P R I NT " 9 5 * 4 3 = " 9 5 * 4 3
7
1 / ET VOICI VOTRE ORO/NA TEUR
Les erreurs
(Messages d 'erreur)
Tapez la ligne suivante en tapant délibérément "PRllNT"
à
la place de PRINT:
PRIINT "BONJOUR" (ENTER)
L'écran indique:
?SN ERROR
?SN ERROR indique une erreur de syntaxe. L'ordinateur vous dit ainsi que "PRllNT" n'est
pas dans son vocabulaire et qu'il n'a aucune idée de ce que vous voulez lui faire faire. Quand
le message ?SN ERROR apparait, vous avez probablement fait une faute de frappe.
L' ordinateur vous donne aussi des messages d'erreur quand il comprend effectivement ce
que vous voulez, mais qu'il estime qJe vous lui demandez une chose illogique ou impossible.
Essayez par exemple:
PRINT
5/1/J
Œfil]ID
L ' écran indique:
?11/J
ERROR
L'ordinateur vous indique ainsi qu' I ne peut pas diviser par
O.
car c'est impossible1
En cas de message d'erreur que vous ne comprenez pas, passez à l'annexe. Nous y avors
'! 1-S.
indiqué tous les messages d'erreur et leurs causes probables.
/.
Un écran de couleur différente
(Commande CLS)
Jusqu' présent, nous avons seulement vu que votre ordinateur affiche des caractéres sur un
écran vert. Votre ordinateur couleur a pourtant d'autres couleurs dans son sac. Tapez:
CLS8 ŒNill)
Votre écran est maintenant orange, avec une bande verte en haut. La commande a indiqué
à l'ordinateur d'effacer l ' écran et d'afficher la couleur 8 qui est l'orange.
Mais à quoi sert la bande verte? Quand l'ordinateur affiche des caractéres, il doit le faire sur
la couleur de fond courante. Par la suite, vous apprendrez à changer la couleur de fond qui,
pour le moment, est le vert. Tapez d'autres caractéres. L'ordinateur utilise encore un fond vert.
Pressez CEID:EID pour obtenir le message OK. Tapez ensuite:
CLS4�
8
1 / ET VOICI VOTRE ORO/NA TEUR
Gemme auparavant, une bande verte apparait en haut de l'écran; le reste est d'une autre
couleur, suivant le type d'écran.
•
Avec un écran CMP (télécouleur ou écran vidéo à signal complet), le reste est rouge.
•
Avec un écran RGB (rougevertbleu), le reste est noir.
Certaines couleurs, comme la 4, paraissent différentes, suivant que l'écran est de type à signal
complet ou RGB (rougevertbleu).
La commande CLS permet de produire neuf couleurs. Pour les afficher, entrez CLS avec
un numéro de 0 à 8. (Si vous entrez un numéro en dehors de l'intervalle O à 8, l'écran indique
le message d'erreur MICROSOFT.)
Tapez maintenant CLS sans code de numro:
CLS�
Si vous n'utilisez pas d e numéro, l'ordinateur suppose que vous voulez afficher la couleur
de fond courante qu , en ce moment, est le vert.
Couleurs standard
(Commande PALETTE)
Les couleurs standard de l'ordinateur couleur sont les neuf permises avec la commande CLS
sur un écran vidéo CMP (signal complet). Dans ce livre, nous utilisons surtout les couleurs
standard.
Ces couleurs sont:
Code
CLS
Couleur
standard
0
1
2
3
4
5
Noir
Vert
Jaune
Bleu
Rouge
Chamois
Turquoise
Lilas
Orange
6
7
8
Avoc un écran vidéo RGB, vous pouvez produire les couleurs standard en entrant la commande
PALETIE RGB. Tapez:
P A L E T T E R G B (ENTER)
Vous pouvez maintenant utiliser la commande PALETTE RGB pour produire les couleurs
standard sur votre cran RGB. Par exemple, tapez:
C L S 4 r::e:N:lli)
Avant d 'entrer la commande PALETIE RGB, CLS4 fait passer l'écran au noir. CLS4 rend
maintenant votre écran rouge.
Dorénavant, il ne faut pas oubller que, si vous avez un écran RGB et si vous désirez prodtne
les couleurs standard, vous devez entrer la commande PALETIE RGB chaque io:s que vous
mettez votre ordinateur en marche.
9
1 / ET VOICI VOTRE ORDINATEUR
L'ordinateur se fait entendre . . .
(Commande SOUND)
Tapez:
S 0 U N 0 1 , 1 0 0 (ENTER)
Si vous n 'entendez rien, augmentez le volume et essayez de nouveau.
Pendant six secondes, vous entendez la tonalité la plus basse que l'ord nateur est capable
de "fredonner". Et la tonalité la plus élevée? Tapez:
S 0 UN 0 2 5 5 , 1 0 0 (ENTER)
Le deuxiéme code indique à l'ordi nateur la durée de tonalité. Vous pouvez utiliser tout nombre
de 1 à 255. Essayez 1:
S 0 UN 0 1 2 8 , 1 (ENTER)
L'ordinateur produit la tonalité pendant 6100 de seconde environ.
Essayez 1 0:
S O U N O 1 2 8 , 1 0 (ENTER)
L'ordinateur produit la tonalité pendant 610 de seconde.
Essayez différentes combinaisons de nombres. Chaque nombre doit être compris entre 1 et
255. (Si vous entrez un nombre en dehors de cet intervalle, l'écran donne le message d'erreur
? F C E R R O R.)
10
1 / ET VOICI COTRE ORO/NA TEUR
Le langage de l'ordinateur
(Syntaxes des commandes)
Dans ce chapitre, vous avez abordé quatre commandes: PRINT, SOUND, CLS et PALETIE.
Er vous familiarisant avec ces commandes. vous avez appris les formats ou syntaxes
nécessaires pour les entrer.
Par exemple, quand vous entrez la commande PRINT, vous devez aussi introduire le message
à imprimer. Si vous n'entrez pas de message, l'ordinateur donne une erreur de syntaxe.
Par la suite, vous pouvez oublier la syntaxe d'une certaine commande. Pour cette raison,
chaque fois que nous présentons une commande nouvelle, nous indiquons sa syntaxe. Celle-ci
se trouve dans une case qui permet de la trouver plus facilement.
Dans la plupart des syntaxes, nous utilisons des mots en italique ou des abréviations pour
représenter l'information nécessaire. Par exemple, dans la syntaxe de PRINT, message
correspond à un message réel (corrme "BONJOUR, JE SUIS VOTRE ORDINATEUR
COULEUR") que vous devez indiquer.
La syntaxe de PRINT est:
P R I N T message Imprime le message sur l'écran. Le message peut
correspondre à une chaine (le BASIC imprime alors la ::: haine telle quelle} ou à un nombre
(le BASIC imprime alors la valeur du nombre).
La syntaxe de CLS est:
c L S c Efface l'écran de texte et affiche la couleur c. c correspond à un nombre de O
à 8 qui représente la couleur dési'ée. Si vous
omettez c, le BASIC affiche la couleur de fond courante.
La syntaxe de SOUND est:
S O U N D n1, n2 Reproduit la tonalité spécifiée (n1} pendant la durée précisée (n2). n1
et n2 sont des nombres de 1 à 255.
La syntaxe de PALETIE est:
P A L E T T E R G B Prépare l'ordinateur à afficher les couleurs standard
�ur un écran vidéo RGB.
Appris au chapitre 1
COMMANDES
PRINT
SOUND
CLS
PALETIE
CARACTÉRES
DU CLAVIER
CONCEPTS
Chaine et nombres
Messages d'erreur
Syntaxe
Nous donnons un rappel de ce genre à la fin de chaque chapitre pour nous assurer que
vous n'avez rien oublié.
11
2 I VOTRE ORDINATEU R
N ' O U BLIE JAMAIS
( ...sauf si vous lui coupez le courant...)
C'est à sa "mémoire" que votre ordinateur doit sa puissance. Dans ce chapitre, vous étudierez
comment l'ordinateiir peut mémoriser l'information désirée.
Quelques explications
{Commande LET)
Demandez à l'ordinateur de se "souvenir" du nombre 3. Tapez:
·
A = 13�
Tapez maintenant ce qui vous passe par la tête puis pressez� . Voyons si l'ordinateur
se souvient à quoi A correspond en tapant:
PR I N T A �
L'ordinateur se rappelle que A vaut
ce que vous tapiez:
13
tant que vous le laissez dans sa mémoire ou jusqu'à
A=17.2ŒNliID
Si vous demandez à l'ordinateur d'imprimer maintenant
A,
il vous donne 1 7 .2.
Vous n'avez pas à utiliser forcé ment la lettre A. Vous pouvez choisir des lettres quelconques
de .A. à Z. En fait, vous pouvez utiliser deux lettres quelconques entre A et Z. Tapez:
B = 15 (ENTER)
c = 20 ŒNirn
B C = 2 5 ŒNîŒ
Demandez maintenant à l'ordinateur d'imprimer tous les nombres que vous lui avez demandés
de se rappeler. Tapez:
pR
I N T AI B
I
c
,
B c :ENTER)
13
2 / VOTRE ORDINATEUR N'OUBLIE JAMAIS
Si vous voulez que l'ordinateur se souvienne d'une "chaîne" de lettres ou de nombres, utilisez
une lettre avec le signe du dollar ($). Tapez:
A$ = " E SSAYEZ D E VOUS"
8$ = "RAPPELER"
C $ = " C E C I , VO I C I U N "
BC$ = "SUPERBE ORDI NATEUR"
Tapez ensuite:
P R I NT A$
,
B$ , C$ , BC$
(ENTER)
En programmation, toutes les lettres que vous avez utilisées sont des "varia bles". Jusqu'à
pr ésent, nous avons utilisé les variables suivant es :
MÉMOIRE DE L'ORDINATEUR
NOMBRES
CARACTÈRES
A
17.2
B
15
c
20
BC = 25
A$ = " ESSAYEZ DE VOUS"
B$
"RAPPELER"
C$ = "CECI, VOICI U N "
BC$ = "SUPERBE ORDINATEUR"
=
=
=
=
Faites un sondage des variables ci-dessus pour voir si l'ordi nateur a bonne mémoire. Pc.r
exemple, pour voir si BC contient encore 25, tapez:
P R I N T B C (ENTERl
Imaginez les variables comme des petites cases dans lesquelles vous pouvez stocker
l'information. Un jeu de cases correspond aux chaînes et l'autre aux nombres. Chaque case
possède une étiquette.
Vous pouvez stocker l'information dans une variable. Vous pouvez aussi changer l'information
déjà en place dans une variable ex:stante en entrant une commande simple comme A = 5.
Cette commande est en fait la commande LET, mais l'ordinateur couleur vous permet d'omettre
le mot LET.
La syntaxe de la commande LET est:
L E T variable= valeur Attribue à une valeur une variable. Vous pouvez omettre le mot
LET et taper simplement varia ble = valeur.
Remarque: Avec certaines versions du BASIC, vous devez inclure le mot LET. Ce mot
est facultatif avec l ' ordinateur couleur.
14
2 I VOTRE ORO/NA TEUR N 'OUBLIE JAMAIS
Des règles très strictes
(Erreur TM)
Quand vous stockez des données dans des variables, vous devez appliquer les règles
suivantes:
RÈGLES SUR LE STOCKAGE DES DONNÉES DANS DES VARIABLES
•
Des données entre guillemets sont des données en chRlne. Vo us ne pouvez stocker
des données en chaine que dans des variables en cha i ne (variables avec le signe
$).
•
En l'absen::::e de guillemets. les données sont numériques. Vous
ne pouvez stocker des données numériques que dans des variables num ériques
(variables sans signe $).
Pour vous montrer les réactions de l'ordinateur quand vous désobéissez à ces règles, tapez
les quatre commandes suivantes:
0 = "6"�
Z = " V 0 I C I U N E 0 0 N N E E E N C H A I N E " :ENTER;
0 $ = 6�
Z$ = 1 2 �
L'ordinateur répond à chacune de ces commandes avec '™ E R ROR (erreuré de
concordance). Vous avez en effet essay de stocker des données dans le mauvais type de
variable.
•
Les deux premières commandes essaient de stocker des données en chaine dans
des variables numériques
•
Les deux commandes suivantes essaient de stocker les données numériques dans
des variables en chaine.
Tapez les commandes suivantes; l'ordinateur doit les accepter:
0$ = " 6 " �
Z $ = " V O I C I U N E D O N N E E E N CH A I N E " ŒfiŒ!1l
0 = 6 ŒNIEBJ
Z = 1 2 (ENTER:
Ces commandes on: maintenant été ajoutées la mémoire de l'ordinateur.
MÉMOIRE DE L'ORDINATEUR
NOMBRES
Cl !AÎNES
D-6
D$-"6"
Z$- "VOICI UNE DONNE EN CHAINE"
z-12
2 / VOTRE ORDINA TEUR N 'OUBLIE JAMAIS
De l'arithmétique nouveau genre
(Utilisation des variables numériques)
Vous pouvez maintenant faire des opérations intéressantes avec ce que vous avez mis dans
la mémoire de l'ordinateur. Tapez:
P R l N T D * 2 (ENTERJ
L'ordinateur imprime le produit de D par 2. (L'ordinateu r se souvient que D est égal à 6.)
Essayez la ligne suivante:
PRINT Z/D
L'ordinateur imprime le quotient de Z par O.
Que pouvez-vous obtenir avec la ligne suivante?
P R I N T D $ * 2 !ENTER)
Si vous l 'avez essayée, l 'ordinateur imprime? TM E R ROR. Il ne peut pas multiplier des données
en chaîne.
Biffez les commandes ci-dessous rejetes par l'ordinateur:
EXERCICE AVEC LES VARIABLES
F
22.9999999
" 1 9.2"
M
OZ$ = "VEUILLEZ VOUS RAPPELER DE CECI"
15
M$
FF
z
=
Avez-vous terminé? Voici les commandes que l'ordinateur accepte.
F
22.9999999
OZ$ = "VEUI LLEZ VOUS RAPPELER D E CECI"
FF
Z
RÈGLES SUR LES VARIABLES
Vous pouvez utiliser deux caractères de A à Z pour une variable. Le premier caractère
doit être une lettre de A à Z; le deuxième peut toutefois être un nombre ou une lettre.
Si vous dési rez attribuer des données en chaîne à la variable, faites suivre celle-ci
d'un signe du dollar. Sinon, elle ne peut contenir que des données numériques. Les
variables en chaîne peuvent stocker jusqu'à 249 caractères.
Appris au chapitre 2
CONCEPTS
Variables
Variables numériques et en chaîne
16
3 I U N P ROGRAMME S I M PLE
Vous avez appris quelques commandes qu'il faut maintenant combiner pour faire un
programme.
Un simple programme d 'une ligne
(Commandes NEW et RUN)
Tapez:
N E W (ENTER)
Cette commande efface le contenu éventuel de la mémoire de l'ordinateur.
Tapez maintenant la ligne suivante. I l est important de taper d'abord le nombre
1 O.
1 0 P R I N T " B O N J OU R , J E S U I S V OT R E O R D I N A T E U R C O U L E U R "Œ:N:ITfü
Vous avez pressé� et rien ne s'est passé! En tout cas, vous ne voyez riem Vous venez
de taper votre premier programme. Tapez:
R U N (ENTER)
L'ordinateur exécute votre programme. Tapez RUN à plusieurs reprises. L' ordinateur exécute
votre programme chaque fois que vous le désirez, autant de fois que vous le voulez.
Dans votre premier programme, vous avez utilisé deux commandes nouvelles: NEW et R U N .
Leurs syntaxes sont:
NEW
Efface la mmoire.
R U N numéros de ligne Exécute les numéros de ligne spécifiés. Les numéros de ligne
sont facultatifs;
si
vous les omettez, l'ordinateur exécute le programme entier.
17
3 / UN PROGRAMME SIMPLE
Un programme de deux lignes
{Commande LIST)
Votre premier programme a donné de bons résultats; c.joutez-lui donc une autre ligne. Tapez:
20
P R I N T " C O M M E N T V O U S A P P E L E Z - V O U S ? " (ENTER)
Si vous vous êtes trompé dans cette ligne (ou dans Jne autre), il suffit de la retaper.
Tapez maintenant:
L I S T (ENTER)
L'ordinateur affiche le programme complet. L'écran indique:
10
20
P R I N T " B O N J O U R , J E S U I S VOTRE ORD I N ATEUR COULEUR"
P R I N T " C O M M E N T V O U S A P P E L E Z-VO U S ? "
Vous avez utilisé la commande LIST pour afficher le programme. Sa syntaxe est:
L I s T numéros de ligne Affiche les numéros de ligne spécifiés. Les numéros de ligne
sont facultatifs. Si vous les omettez, l'ordinateur affiche le programme entier.
Entrée de votre nom
{Commande INPUT)
Pour exécuter le programme, tapez:
R U N (ENTER:
L'ordi nateur affiche:
B ON J O U R , J E S U I S V O T R E O R D I N A T E U R C O U L E U R
COMMENT VOUS A P P E LEZ-VO U S ?
Que se passerait-il donc si vous répondiez à la question de l ' ordi nateu? Essayez donc.
Quand vous tapez seulement votre nom, l'ordinateur ne vous comprend pas. En fait, l'ordinateur
ne vous comprend que si vous parlez son langage.
Utilisez un mot que l'ordi nateur comprend: I N PUT. La syntaxe de INPUT est:
I N P u T "message"; variable Imprime votre message, attend que vous entriez
l'information et l'affecte à une vara
i ble. Le message est facultatif.
Changez la ligne 20 pour utiliser le mot INPUT à la place de PRINT. Comment changez-vous
une ligne de programme? Retapez-la simplement en utilisant le même nurréro de ligne. Tapez:
20
I N P U T " C OMM E N T V O U S A P P E L E Z - V O U S ? " ; A $ �
Vous dites ainsi à l'ordinateur de:
18
•
Imprimer "COMMENT VOUS APPELEZ-VOUS?"
•
Attendre que vous tapiez des caractères et pressiez COOEID
•
Affecter les caractères tapés A$
3 / UN PROGRAMME SIMPLE
Ajoutez une autre ligne au programme:
30
P R I N T " B O N J O U R , " A $ (EN TER)
Listez de nouveau le programme pour voir de quoi i l a l'air. Tapez:
L I S T (ENTER)
Le programme doit ressembler à celui-ci:
10
20
30
P R I N T "BON J O U R , J E S U I S VOTRE O R D I NATEUR COULEUR"
I N P U T " C O M M E N T V O U S APP E L E Z - V O U S ? " ; A $
P R I N T " BO N J O U R , " A $
Pouvez-vous deviner ce qui va se passer quand vous l'exécutez? Essayez donc:
R U N (ENTER)
Tout s'est vraiment bien passé! Voici ce qui s'est probablement passé quand vcus avez exécuté
le programme (suivant le nom que vous avez tapé):
B O N J O U R , J E S U I S VOT R E O R D I N A T E U R C O U L E U R
COMM E N T VOUS A P P E L E Z - V O U S ? D I A N E
B O N J O U R , D I AN E
Exécutez (RUN) de nouveau le programme avec des noms différents. Par exemple:
B O N J O U R , JE SU I S V O T R E O R D I N A T E U R C O U LEUR
C O M M E N T V O U S A P P E L E Z-V O U S ? P I E R R E
BONJOUR , P I ERRE
Une répétition sans fin
(Commande GOTO)
Avec GOTO, autre commande nouvelle, l'ordi nateur peut exécuter les mêmes commandes
à maintes reprises. La syntaxe de GOTO est:
GOTO
numro de ligne
Va au num éro de ligne.
Tapez cette ligne:
40
GOTO 3 0
o� o
GQOOOOO O OOG
0
b.
0
0
0
00000000000
Exécutez mai ntenant le programme. L'ordinateur imprime votre nom à ma i ntes reprises, sans
arrêt. GOTO indique à l'ordinateur de revenir à la ligne 30:
10
20
30
40
P R I N T " B O N J O U R , J E S U I S V O T R E O R D I NA T E U R C O U L E U R "
I N P U T " C O M M E N T V O U S APP E L E Z - V O U S ? " ; A $
P R I N T " BO N J O U R , " A $
GOT0 1 0
3 / UN PROGRAMME SIMPLE
Votre programme est maintenant exécuté en continu. Chaque fois qu'il arrive à la ligne 40,
il revient à la ligne 30. Nous avons ici une "boucle". Vous pouvez arrêter cette boucle sans
fin de deux man ères:
•
Appuyez sur ŒHIFIJ en pressant [email protected]. Le programme marque ainsi un temps de
pause. Pressez une touche quelconque pour reprendre et continuer.
•
Pressez (BREAKJ pour terminer le programme.
Impression avec espaces
(Commandes PRINT, et PRINT;)
Pressez ŒBEAKJ pour terminer le programme.
Vous pouvez apporter un changement important en ajoutant simplement une virgule ou un
point-virgule à la commande PRINT. Essayez d'abord la virgule. Retapez la ligne 30, avec
une virgule à la fin:
30
P R I N T " B O N J O U R , " A$ ,
Exécutez le programme. L'ordinateu r affiche l'information en deux colonnes.
Pressez� et essayez le point-virgule. Tapez:
30
P R I N T " B O N J OU R , " A$;
Exécutez l e programme. Vous ne pourrez probablement pas savoir ce que l e programme
fait tant que vous ne pressez pas �. Le point-virgule groupe les données.
RÈGLES SUR
LA
PONCTUATION D'IMPRESSION
Nous indiquons ici le rôle de la ponctuation à la fin d'une ligne PRINT.
•
Une virgule fait passer l'ordinateur à la colonne suivante. Vous pouvez vous
en servir pour imprimer en colonnes.
•
Un point-virgule oblige l' ordinateur "à ne pas bouger". Vous pouvez vous en
servir pour "grouper" des données.
•
En l'absence de ponctu �tion, l'ordinateur passe à la ligne suivante. Vous pouvez
ainsi imprimer en rangees.
Un programme compact
(Les deux points (: ))
À ce stade, vous supposez peut-être que chaque nouvelle commande ajoutée à un programme
doit commencer sur une ligne nouvelle. En fait, vous pouvez combiner plusieurs commandes
dans une ligne en les séparant à l'aide de deux points (:).
Par exemple, vous pouvez combiner quatre commandes du programme ci-dessus en ure
ligne. Changez d'abord la ligne 10 pour qu'elle comprenne les quatre commandes. Tapez:
10
20
P R I N T " B O NJOU R , J E S U I S V O T R E O R D I N A T E U R C O U L E U R " : I N P U T
" C O MM E N T V O U S A P P E L E Z- V O U S ? " ; A$ : P R I N T " B O N J O U R , " A $ ; : G OTO
40�
3 I UN PROGRAMME SIMPLE
Annulez ensuite les lignes 20, 30 et 40 en tapant:
20
30
40
(ENTER)
(ENTER)
(ENTER)
Exécutez maintenant le programme. Il doit donner les mêmes résultats qu'avec quatre lignes.
La combinaison des commandes conserve de la mémoire; elle est pratique quand vous écrivez
un long programme qui exige une grande quantité de mémoire. La combinaison des
commandes rend toutefois le programme plus difficile à li:e et à comprendre. Dans la suite
de ce manuel, nous ne combinons pas les commandes pour que les programmes restent
faciles à comprendre.
RÈGLES SUR L'ENTÉRE DES LIGNES DE PROGRAM M E
•
Une ligne de programme comprend une ou plusieurs commandes séparées
par des signes des deux points (:).
•
Une ligne de programme peut contenir autant de commandes qu'on le désire,
pourvu qu'elle ne dépasse pas 249 caractères.
Changement du programme
{Insertion, annulation et changement
de lignes de programme)
Savez-vou s qu � vous connaissez maintenant trois moyens de changer u n programme? En
.
voici un resume:
•
Vous pouvez insérer une ligne de programme en l ' entrant. Le BASIC insère
automatiquement la ligne au bon endroit dans le programme. Les n u méros de ligne
se placent par ordre numérique croissant. Par exemple, pour insérer la ligne 20 entre
les lignes 15 et 22, tapez:
20
•
Vous pouvez changer une ligne de programrie en l' entrant de nouveau. Par
exemple, pour changer la ligne 20, tapez:
20
•
P R I NT " I l E S T F A C I L E D E C H ANG E R U N P RO G R AM M E " ŒN!EB)
P R I N T " R E T A P E Z S I M P L E M ENT L A L I G N E " (ENTER)
Vous pouvez annuler une ligne de programme en entrant seulement son numéro.
Par exemple, pour annuler la ligne 20, tapez:
20
(ENTER)
2
3 / UN PROGRAMME SIMPLE
Démonstration de couleur et de son
(Exemple de programme)
Voulez-vous revenir encore
à
la couleur et au son? Effacez d'abord la mémoire. Tapez:
NEW�
Entrez ensuite ce programme:
10
20
30
40
P R I NT "POUR M E F A I R E C H A N G E R D E TON"
I N PUT " E N T R E Z U N NOMBRE D E 1 A 2 5 5 " ; T
S O U N D TI 5 0
GOTO 1 0
Exécutez le programme pour vous faire une idée des tonalités de l'ordinateur.
Que se passe-t-il si vous remplacez la ligne 30 par la suivante:
30
S O UN D 5 0 , T
Conseil: Revenez au chapitre 1 où nous avons parlé de la commande SOUND.
Avez-vous la réponse? Si vous avez fait le changement ci-dessus. l'orrlin;item produit chaque fois la
tonalité, mais pendant une durée différente.
même
EXERCICE
tBREAKl puis effacez le programme en tapant NEW. Essayez
maintenant d'écrire un programme, similaire à celui ci-dessus, pour que l 'ordinateur
présente une certaine couleur Vous ra ppelez- vous que vous pouvez afficher neuf
couleurs avec la commande CLS et un numéro de 0 à 8?
Pressez d'abord
Voici notre programme:
10
20
30
40
P R I N T " P O U R M E F A I R E C H A N G E R D E CO U L E U R "
I N P U T " E N T R E Z U N C H I F F R E E N T R E 0 E T 8"
C LST
GOT0 1 0
U n programme plus fini
(Commande I F/THEN)
La touche tBREAKl est un moyen brusque d'arrêter l'exécution d'un programme. Pourquoi
l'ordinateur ne vous demanderait-il pas poliment si vous êtes prêt à arrêter?
Pressez � pour arréter le programme puis changez la ligne 40 pour avoir:
40
I N P U T " V O U L E Z - V O U S V O I R U N E A U T R E C O U L E U R ? " ;R$
Ajoutez ensuite la ligne suivante:
50
22
I F R $ = "OUI" THEN 20
3 I UN PROGRAMME SIMPLE
Exécutez le programme. Tapez OUI pour continuer l'exécution du programme. Tapez d'autres
lettres et le programme s'arrête.
Le programme a maintenant l'aspect suivant
10
20
30
40
50
P R I N T " PO U R M E F A I R E C H A N G E R D E C O U LE U R "
I N P U T " E N T R E Z U N C H I F F R E E N T R E 0 e t 811; T
C LS T
I N P U T " V O U L E Z- V O U S V O I R U N E A U T R E CO U L E U R " ; R
I F R $ = "OU I " T H E N 2 0
Les nouvelles lignes remplissent les fonctions suivantes:
•
•
La ligne 40 imprime une question et indique à l'ordinateur de s'arrêter et d'attendre
une réponse: R$.
La ligne 50 indique à l 'ordinateur de revenir à 20 si (IF) (et seulement si) la réponse
Dans le cas contraire, le programme se termine, car il n'a plus de
lignes à exécuter.
à (R$) est "oui".
Appris au chapitre 3
COMMANDES
CONCEPTS
NEW
Changement, insertion et annulation
RUN
d'une ligne de programme
LIST
Combinaison de commandes dans une
INPUT
ligne de programme.
GOTO
Création d'une boucle
CLAVIER
CJ
PRINT,
PRINT;
IF/THEN
23
4 I U N E BOUCLE
Dans ce chapitre, nous abordons les effets sonores avec l'ordinateur. Auparavant, vous devez
utiliser les nouvelles commandes FOR et NEXT pour apprendre à l'ordinateur à compter.
Pour compter . . .
(Commandes FOR et NEXT)
FOR et NEXT sont deux
commandes que nous utilisons toujo:.irs ensemble. Leurs syntaxes sont:
F o R variable
n1 TO n2 STEP n3 Stocke n1 dans la variable et, chaque fois que
l'ordinateur revient à FOR. ajoute n3 à la variable. STEP n3 est facultatif; si vous l'omettez,
l'ordinateur utilise STEP 1.
=
NE X T variable _Si la variable est infrieure ou gale n2. l'ordi nateur revient 3 la commande
correspondante. Dans le cas contraire, le BASIC passe à la commande suivante.
FOR
Ces syntaxes peuvent faire apparaitre FOR et NEXT compliquées, mais elles sont en fait simples
à utiliser. Tapez NEW pour effacer la mémoire puis entrez:
10
20
30
40
FOR X = 1 T0 1 0
P R I N T "X = " X
NEXT X
P R I N T "J ' A I F I N I DE COMPT ER"
Exécutez l e programme.
�·
4 / UNE BOUCLE
Avant d'essayer de comprendre le rôle de FOR et de NEXT, remplacez la ligne 1 O par chacune
des lignes ci-dessus et exécutez le programme quatre fois de plus.
1
1
1
1
0
0
0
0
FOR
FOR
FOR
FOR
X
X
X
X
=
=
=
=
1 T0 1 0 0
S T0 1 S
-2 T 0 2
20 T0 24
FOR et NEXT font compter l 'ordinateur. Jetez un coup d'oeil à la derniére version de notre
programme:
1 1/J
2 1/J
3 1/J
40
FOR X = 2 0 T0 24
PRINX "X = " X
NEXT X
P R I NT " J ' A I F I N I DE COMPTER"
La ligne 1 0 indique à l' ordinateur que le premier nombre doit être 20 et le dernier 24. Elle
utilise X pour libeller ces nombres.
La ligne 30 indique à l'ordinateur de revenir à la ligne 1 0 pour le nombre suivant (NEXT X),
jusqu'à ce qu'il arrive au dernier nombre (24).
Jetons un coup d'oeil à la ligne 20. Cette ligne étant entre les lignes FOR et NEXT, l'ordinateur
doit imprimer la valeur de X chaque fois qu'il compte:
X
X
X
X
X
= 20
= 21
= 22
= 23
= 24
Ajoutez une autre ligne entre FOR et NEXT:
15
P R I NT " · · · COMPTAGE
•
•
•
"
Exécutez le programme. L'ordinateur exécute les lignes que vous insérez entre FOR et NEXT.
EXERCICE 4-1
É crivez un programme qui fasse imprimer 1 0 fois votre nom par l'ordi nateur.
Conseil: Le programme doit compter jusqu'à 1 0.
EXERCICE 4-2
Écrivez un programme pour imprimer la table de multiplication par 9 (9 * 1 à 9 * 1 0).
Conseil: PRINT 9*X constitue une commande tout à fait normale.
EXERCICE 4-3
Écrivez un programme qui imprime la table de multiplication de 9 * 1
à 9 * 25.
Conseil: En ajoutant une virgule dans la ligne PRINT, vous pouvez résoudre la totalité
du problème et faire apparaître les résultats d'un seul coup sur l'écran.
26
4
/ UNE BOUCLE
Avez-vous terminé? Voici nos programmes:
Programme 4-1
10
20
30
FO R X = 1 T 0 1 0
PR I NT "THOMAS"
N E XT X
Programme 4-2
10
20
30
FO R X = 1 T0 1 0
P R I N T "9*"X"="9* X
NEXT X
Programme 4-3
10
20
30
FOR X = 1 T0 2 5
P R I N T "9*"X" ="9*X ,
NEXT X
Deux par deux
(Option STEP)
Nous allons maintenant faire compter l'ordinateur d'une autre manière. Effacez le programme
en tapant NEW tENTERl. Tapez ensuite le nouveau programme suivant:
10
20
30
40
F O R X = 2 TO 1 0 S T E P 2
P R I N T "X= " X
NEXT X
P R I N T " J ' A I F I N I DE COM P T E R "
2
4 / UNE BOUCLE
Exécutez le programme. Comprenez-vous le rôle de STEP 2? Cette instruction fait compter
l'ordinateur deux par deux. La ligne 1 0 indique à l 'ordinateur que:
premier X est 2
•
Le
•
Le dernier X est 1 O
... ET STEP 2 ...
•
Tous les X entre 2 et 1 0 sont séparés de 2 unités (2, 4, 6, 8 et 10). STEP 2 indique
à l'ordinateur d'ajouter 2 pour obtenir chaqLe NEXT X.
Pour faire compter l'ordinateur par 3, séparez tous
suivante:
10
les X de 3
unités.
Essayez la ligne 1 O
FOR X = 3 T 0 1 0 S T E P 3
Exécutez le programme. L'écran indique:
X = 3
X = 6
X = 9
Voici d'autres lignes FOR . STEP pour vous aider à bien comprendre cette instruction:
.
10
10
10
.
F O R X = 5 TO 50 S T E P 5
FOR X = 1 0 TO 1 S T E P -1
FOR X = 1 TO 20 STEP 4
Vous vous posez peut-être des questions sur les programmes exécutés au début de ce chapitre,
sans l'instruction STEP. Si vous omettez STEP, l'ordinateur suppose que vous voulez STEP 1 .
Comptage des sons
(Exemple avec FOR/NEXT)
Vous avez appris l'ordinateur compter; vous pouvez maintenant le sonoriser. Effacez l'ancien
programme et tapez le suivant:
10
20
30
40
FOR X = 1 TO 2 5 5
P R I N T "TON A L I T E
SOUND X , 1
NEXT X
1 1
X
Ce programme fait compter l'ordinateur de 1 à 255. Chaque fois qu'il passe à un nouveau
nombre, il exécute les instructions des lignes 20 et 30:
•
Avec la ligne 20, il imprime X, qui est le comptage courant.
•
Avec la ligne 30, il reproduit la tonalité X.
Par exemple:
•
Quand l 'ordinateur arrive pour la première fois à FOR, la ligne 1 0 , il rend X égal à 1 .
•
I l passe ensuite à la ligne 20 et imprime
•
A la ligne 30, il reproduit la tonalité 1 .
•
I l revient ensuite à la ligne 1 O et rend X égal 2.
•
valeur de X.
L'ordinateur répéte ce processus jusqu'à ce que X
(BREAK).
28
1,
=
255
ou que vous pressiez
4 / UNE BOUCLE
À
votre avis, que fait l' ordinateur si vous changez la ligne 10 de la façon suivante:
10
F O R X = 2 55 T O 1 S T E P -1
EXERCICE DE PROGRAMMATION
À l'aide de STE P, changez la ligne 1 0 pour que l'ordi nateur reproduise des tonalités:
Du bas de sa gamme vers le haut, en reproduisant chaque dixime note.
2
Du haut de sa gamme vP.rs le bas, en
3
Du milieu de sa gamme vers le haut, en reproduisant chaque cinquime note.
reprodLisant chaque dixime note.
10
10
10
Êtes-vous prêt pour les réponses?
10
10
10
FOR X = 1 TO 255 S T E P 1 0
F O R X = 255 T O 1 S T E P - 1 0
F O R X = 1 2 8 TO 2 55 S T E P 5
EXERCICE 4-4
É crivez maintenant un programme pour que l'ordi nateur:
reproduise les sons du bas de sa gamme vers le haut;
2
du haut de sa gamme vers le bas.
La réponse
à cet exercice,
ainsi qu'aux autres, est à la fin de ce livre.
Pouvez-vous le faire chanter?
Certainement. Au chapitre 1 1 , vous apprendrez l'ordinateur à reproduire vos airs favoris.
Appris au chapitre 4
COMMANDES
FOR. . . TO ...STEP
NEXT
29
5 I U N E BOUCLE DANS UNE AUTRE
Vous connaissez maintenant FOR/NEXT; vous pouvez donc apprendre à l'ordinateur à indiquer
l' heure. Utilisez d'abord FOR/NEXT pot.. r fixer une pause de minuterie. Préparez ensuite une
horloge à l'aide d'une commande FOR/NEXT emboîtée.
Établissement d ' une pause de minuterie
{Utilisation pratique de FOR/NEXT)
Tapez:
10
20
30
FOR Z = 1 TO 460 * 2
NEXT Z
P R I N T " J ' A I C O M P T E J U SQU ' A 9 2 0 "
Exécutez le programme. Soyez patient et attendez quelques secondes. Deux secondes pour
être exact. Il faut deux secondes à l'ordinateur pour compter jusqu'à 920.
-
-·
\
..<_,<.- .
Les lignes 1 0 et 20 é:ablissent une pause de minuterie. En le faisant compter jusqu'à 920,
vot..s tenez l'ordinateur occupé pendant deux secondes.
Vous pouvez voir que nous avons là les bases d'un chronomètre. Effacez le programme et
tapez:
10
20
30
40
50
P R I N T " CO M B I E N D E S E C O N D E S ? "
I N P UT S
FOR Z = 1 TO 460•S
NEXT Z
P R I N T S " S E CO N D E S SONT E C O U L E E S !
Exécutez le programme. Entrez le nombre de secondes que vous dêsrez cor�:e·
3·
5 / UNE BOUCLE DANS UNE AUTRE
EXERCICE 5-1
Il serait intéressant que le chronomètre reproduise un signal sonore quelconque.
Ajoutez des lignes à la fin du programme pour obtenir ce signal sonore.
Une boucle dans une autre
(Commandes FOR/NEXT emboîtées)
Avant de réaliser une véritable horloge, vous devez apprendre à utiliser une boucle FOR/NEXT
dans une autre.
\.
Tapez ce nouveau programme:
FOR X = 1 TO 3
P R I N T "X = " X
FOR Y = 1 TO 2
PRINT, "Y=" y
N EXT Y
NEXT X
10
20
30
40
50
60
Exécutez-le. Sur l'écran, vous devez avoir:
X = 1
y = 1
y
2
=
X = 2
y = 1
y = 2
X = 3
y = 1
y = 2
En programmation, nous avons là une boucle embo ite. Le programme exécute les opérations
suivantes:
1.
32
I l compte X de 1 à 3. Chaque fois qu'il compte X:
A.
Il imprime la valeur de X.
B.
Il compte Y de 1 à 2. Chaque fois qu'il compte Y, il imprime sa valeur.
C.
Quand il a terminé de compter les
suivant (ligne 10).
Y, il
revient au comptage du X
5 / UNE BOUCLE DANS UNE A UTRE
Il.
Quand le comptage des X est terminé, le programme prend fin.
En écrivant ce programme, vous pouvez aussi combiner les lignes 30 et 40 en une seule ligne.
10
20
30
40
50
FOR X = 1 TO 3
P R I NT " X = " X
FOR Y = 1 T O 2
P R I NT , " Y = " Y
NEXT Y , X
La ligne 50 indique à l'ordinateur de revenir au Y suivant puis, quand il a terminé le comptage
de tous les Y, de revenir au X suivant.
Quand vous utilisez des boucles emboitées dans un programme, n'oubliez jamais de fermer
la boucle intérieure avant la boucle extérieure.
Bon
10
20
30
40
FOR X = 1 T O 3
FOR Y = 1 T O 2
NEXT Y
NEXT X
Mauvais
10
20
30
40
Bon
10
20
30
F O R X = 1 TO 3
FOR Y = 1 TO 2
NEXT Y , X
FOR X = 1 TO 3
FOR Y = 1 TO 2
NEXT X
NEXT Y
Mauvais
10
20
30
FOR X = 1 TO 3
FOR Y = 1 TO 2
NEXT X, Y
Horloge d'ordinateur
{Exemple de commandes FOR/NEXT emboîtées)
Cet exemple montre l'utilisation des boucles FOR/NEXT emboites pour réaliser une horloge.
Tapez:
10
15
20
30
40
50
60
70
F O R S = 0 T0 5 9
C LS
P R I NT S
SOUND 1 5 0 , 2
FOR T = 1 TO 390
NEXT T
NEXT S
P R I NT " U N E M I N U T E E S T E C O U L E E "
33
5 / UNE BOUCLE DANS UNE A UTRE
Exécutez le programme qui passe par les oprations suivantes:
1.
Il.
Il compte les secondes de 0 à 59 (lignes 1 0 et 60). Chaque fois qu'il compte une seconde:
A.
Il efface l'écran (ligne 1 5).
B.
Il imprime la seconde (ligne 20).
C.
Il produit une tonalité (ligne 30).
D.
Il marque un temps de pause assez long pour l 'écoulement d'une seconde (lignes
40 et 50).
Quand il termine le comptage des secondes de
qu'une minute est écoulée (ligne 70).
0
à 59, i l imprime u n message qui dit
Voici une horloge digne de ce nom:
10
20·
30
40
50
60
70
80
90
1 00
110
FOR H
0 T O 23
FOR M 0 TO 59
FOR S 0 T O 59
CLS
PRINT H " : "M":"S
SOUND 1 50, 2
F O R T "' 1 TO 3 7 5
NEXT T
N EX T S
NEXT M
NEXT H
"'
"'
"'
Avec ce programme, l 'ordinateur exécute les opérations suivantes:
1.
I l compte les heures de 0 à 23 (ligne 1 0). Chaque fois qu'il compte une nouvelle heure:
A.
Il compte les minutes de
minute:
1.
2.
B.
Il.
34
o
à 59 (ligne 20). Chaque fois qu'il compte une nouvelle
Il compte les secondes de O à 59 (lignes 30 et 90). Chaque fois qu'il compte
une nouvelle seconde:
a.
li efface l'écran (ligne 40).
b.
Il imprime l'heure, la minute et la seconde (ligne 50).
c.
Il
d.
Il marque un temps de pause assez long pour l'écoulement d'une seconde
(lignes 70 et 80).
produit une tonalité (ligne 60).
Quand il termine le comptage des
minute suivante (ligne 1 00).
59
secondes, il passe à la ligne 2 0 pour
Quand i l termine l e comptage des 59 minutes. il passe à l a ligne
suivante (ligne 1 1 0).
la
1 O pour l'heure
Quand i l termine l e comptage des heures ( 0 à 23), le programme prend fin. (En ajoutant
la liçine 1 20 GOTO 1 0, l'horloge fonctionne en continu).
5 / UNE BOUCLE DANS UNE AUTRE
EXERCICE 5-2
Entre les lignes 90 et 1 00, vous pouvez ajouter des tonalités qui marquent chaque
minute. Écrivez un programme à cet effet.
EXERCICE 5-3
Écrivez un programme qui oblige l'ordinateur à montrer chacune de ses neuf couleurs
à chaque seconde.
Listage des longs programmes
(Commandes LIST et touches ( s H r F T )(:@))
Vos programmes ont maintenant une telle longueur qu'il vous faut un moyen de les lister autre
que LIST CENIEID. Essayez les deux méthodes suivantes:
•
Ne spécifiez que les lignes que vous désirez afficher avec la commande LIST. Par
exemple, pour ne lister que les lignes 5 0 à 1 OO, tapez:
LI ST 50-100 �
•
Tapez LIST IENTERl. Quand la ligne que vous désirez voir apparait sur l'écran,
appuyez sur CfilITEIJ puis pressez C@. Le listage marque ainsi un temps d'arrêt.
Pressez une touche quelconque pour continuer.
Appris au chapitre 5
COMMANDE
FOR/NEXT
CLAVIER
CfililIT)@:l
35
6 I DES DÉCISIONS DIFFICILES . . .
Voici une décision facile à prendre pour votre ordinateur:
•
Si (IF) vous tapez ORANGE . . . il rend alors (THEN) l'écran orange.
ou
•
Si (IF) vous tapez CHAMOIS . . . il rend alors (THEN) l'écran chamois.
Plutôt facile? Faites-le donc faire par l'ordinateur.
Tapez ce programme:
10
20
30
40
1 00
110
200
P R I N T " V O U L E Z - V O U S UN E C R A N O R A N G E OU C H A MO I S ? "
I N PUT C $
I F es = " O R A N G E " T H E N 1 0 0
I F es = " C H A M O I S " T H E N 2 0 0
C LS8
END
C LSS
Exécutez le programme à plusieurs reprises. Essayez les couleurs ORANGE et CHAMOIS
comme réponses.
Si (IF) vous répondez ORANGE . . . alors (THEN) . . .
1.
La ligne 3 0 envoie l'ordinateur à l a ligne 1 OO.
2.
Avec la ligne 1 OO, l'écran devient orange.
3.
La ligne 1 1 0 termine le programme. (Si l 'ordinateur arrive à la ligne 1 1 0, il n'atteint jamais .
la ligne 200.)
D'autre part . . .
Si (IF) vous répondez CHAMOIS
.
.
.
alors (THEN) . .
.
1.
La ligne 40 envoie l'ordinateur à la ligne 200.
2.
Avec l a ligne 200, l'écran devient CHAMOIS.
3.
La ligne 200 étant la dernière du programme, celui-ci se termine.
37
6 / DES DÉCIS/OINS DIFFICILES . . .
Qu'arrive+il si vous donnez une réponse différente de ORANGE ou CHAMOIS? Exécutez
à nouveau le programme. Cette fois-ci, répondez par VERT.
L'écran devient orange. Pourquoi donc?
Si la condition est fausse, l'ordinateur ne tient pas compte de la partie THEN de la ligne et
il passe à la ligne suivante du programme.
IF/THEN est la commande utilisée pour fair� prendre une décision à l'ordinateur. Voici la syntaxe
de IF/TH E N ; ne comptez pas cependant la comprendre parfaitement avant d'arriver à la fin
de ce chapitre.
IF condition THEN commandes ELSE commandes Vérifie la condition. Si elle est vraie,
le BASIC exécute les commandes qui suivent THEN. Si elle est fausse, le BASIC exécu:e
les commandes qui suivent ELSE ou, si vous omettez ELSE, il ne fait rien.
Vous avez aussi utilisé la commande END dont la syntaxe est:
END
Termine l'exécution du programme.
Addition d'un autre nombre
(Option ELSE et commandes IF/THEN emboitées)
Jetez un coup d'oeil au programrre suivant:
10
20
30
40
100
110
200
P R I N T " V O U L E Z - V OUS U N E C R A N O R A N G E O U C H A M O I S ? "
I N P UT C $
I F C $ ;: " O R A N G E " T H E N 1 0 0
I F C $ ;: " C H A M O I S " T H E N 2 0 0
C LS8
END
C LS5
Avec ELSE, vous pouvez présenter la décision sous la forme suivante:
Si (IF) vous tapez ORANGE .
..
. . . alors (THEN) . . .
L'écran devient orange.
. . . ou autrement (ELSE) . . .
Si (IF) vous tapez CHAMOIS . .
alors (THEN) . . .
L'écran devient chamois.
Vous pouvez indiquer toutes ces irstructions à l'ordinateur en une ligne. Effacez les lignes
30 à 200 et tapez la nouvelle ligne 30 suivante:
30
38
I F C $ ;: " O R A N G E " T H E N C L S 8 E L S E I F C $ ;: " C H A M O I S " T H E N
C LSS
6 / DES DÉCISIONS DIFFICILES . . .
Exécutez le prograrrme. I l se déroule exactement comme auparavant.
•
•
Si C$ est égal à "ORANGE ", l'ordi nateur exécute la commande qui suit THEN
(commande CLS8).
Si C$ n'est pas égal à "ORANGE", l'ordinateur exécute la commande qui suit E LSE
(autre commande IFfrHEN).
Remarquez que la ligne 30 emboîte une commande IFfrHE N dans une autre. Vous pouvez
emboîter autant de commandes IFfrHEN que vous le désirez pourvu que la ligne de
programme ne contienne pas plus de 249 caractères (longueur maximale).
Encore d'autres niveaux . . .
{Propositions ELSE supplémentaires)
Supposons que, en plus des opérations déjà exécutées, vous voulez indiquer
ce qu'il devrait autrement (ELSE) faire si C$ n'est pas égal à ORANGE.
à
l'ordinateur
Autrement dit, vous voulez ajouter une autre proposition ELSE à votre décision:
Si (IF) vous tapez ORANGE
.
. .
. . . alors (THEN) . . .
L'écran devient orange.
. . . ou autrement (ELSE) . . .
Si (IF) vous tapez CHAMOIS .
.
,
. . . alors (THEN)
L'écran devient chamois.
. . . o u autrement (ELSE) . . .
I mp r i me z "VOUS D E V E Z TAPER O R A N G E OU C H A M O I S "
Pour ajouter cette nouvelle proposition ELSE, insérez ELSE, suivi de la commande PRINT,
à la fin de la ligne 30:
30
I F C $ = " O R A N G E " T H E N C L S 8 E L S E I F C$ = " C H A M O I S " T H E N
C L S S E L S E P R I N T " V O U S D E V E Z T A P E R O R A N G E O U C H A MO I S "
Exécutez le programme, mais cette fois, répondez à l'ordinateur par une couleur autre que
chamois ou orange. Votre réponse amène l'ordinateur à imprimer le message "VOUS DEVEZ
TAPER ORANGE OU CHAMOIS".
Vous pouvez ajouter autant de propositions ELSE que vous le désirez, pourvu que la ligne
com plète ne dépasse pas 249 caractères.
39
6 / DES DÉCISIONS DIFFICILES . . .
Une décision encore plus réfléchie
(Les deux points (: ))
Pour donner encore plus de puissance à la commande I F!TH EN. vous pouvez faire exécuter
à l' ordinateur un certain nombre de commandes à la suite de chaque proposition THEN ou
ELSE. Par exemple, vous voulez que l'ordinateur exécute les opérations suivantes:
Si
(IF) vous tapez ORANGE . .
.
. . . alors (THEN) . . .
L'écran devient orange et le p·ogramme passe
à
la ligne 1 O.
. . . ou autrement (ELSE) . . .
Si
(IF) vous tapez CHAMOIS . .
.
. . . alors (THEN)
L'écran devient chamois et le programme passe à la ligne 1 O.
. . . ou autrement (ELSE) . . .
(1) li imprime un message et
(2) il passe à la ligne 20.
Vous pouvez grouper ces instructions en une ligne en séparant chaque commande avec deux
points. Changez la ligne 30 pour avoir:
30
I F C $ = "ORA N G E " T H E N C L SS : GOTO 10 E L S E I F
C $ = " C H A MO I S " T H E N C L S 5 : G O T O 1 0 E L S E P R I N T " V O U S D E V E Z
T A P E R O R A N G E O U C H A M O I S " : G O T O 20
Vous pouvez ajouter autant de commandes que vous le désirez à une proposition THEN ou
ELSE à condition de ne pas dépasser 249 caractères par ligne.
Une décision plus raffinée
{Conditions AND et OR)
Avec les nouveaux mots AND et OR, vous pouvez demander à l'ordinateur de prendre une
décision plus raffinée. Par exemple, supposons que vous voulez écrire un programme qui
exige les conditions suivantes d'un candidat à un emploi:
Un
programmation
ET
de l'expérience en programmation
diplôme en
Effacez la mémoire. Tapez et exécutez ensuite ce programme:
10
20
30
40
50
40
P R I N T "AVEZ-VOUS--"
I N PU T " U N D I P LO M E E N P R O G R A M M A T I O N " ; D $
I N PU T " D E L ' E X P E R I E N C E E N P R O G R AM M A T I O N " ; E $
I F D $ = " 0 U I " E T E $ = " 0U I " T H E N P R I N T " V O U S E T E S E M B A U C H E ! "
E L S E P R I N T " D E S O L E , NOUS N E POUVONS PAS VOUS EMBAU C H E R "
GOT0 1 0
6 / DES DÉCISIONS DIFFICILES . . .
Si
vous répondez par OUI aux deux questions, l'ordinateur décide:
VOUS ÊTES EMBAUCHÉ!
D'autre part, si vous répondez par OUI
l'ordinateur est obligé de décider:
à
la première question et par NON
à la deuxième,
DESOLE, NOUS NE POUVONS PAS VOUS EMBAUCHER
Supposons maintenant que les conditions changent et que "OU" remplace "ET". Les
cor.ditions sont mai ntenant:
Un diplôme en programmation
ou
de l'expérience en programmation
Changez
40
la ligne 40 pour remplacer ET par OU:
I F 0 $ = " 0 U I " OU E $ = " 0 U I " T H E N P R I N T " V O U S E T E S E M B A U C H E ! "
E L S E P R I N T " D E S O L E , N O U S N E P O U V O N S P A S V O U S E M B AU C H E R "
Exécutez le programme. Répondez par "OUI" à l a première question et par "NON" à la
deuxième, comme vous l'avez précédemment fait pour voir la différence due au changement
d'un mot:
VOUS ÊTES EMBAUCHÉ!
Appris au chapitre 6
COMMANDES
1 FffH EN/E LSE
END
7 I L ' ÉCRAN
Jusqu'à présent, vous n'avez utilisé qu'un écran. Dans l e présent chapitre, nous allons
apprendre à utiliser un nouvel écran (de grande dimension) et quatre nouvelles commandes.
Si vous avez un écran vidéo RGB (rouge/vert/bleu), tapez PALETTE RGB (ENTERJ avant de
commencer. Vos couleurs correspondront ainsi aux nôtres.
Le grand écran
(Commande WIDTH)
Vous utilisez maintenant un écran de texte de 32 x 1 6. Il peut afficher le texte (caractères
alphanumériques) en format de 32 colonnes (numérotées de O à 31) de large et de 1 6 ranges
(n:.Jmérotées de 0 à 1 5) de hauteur:
0
'
2
3 • s G 1 • 9 " ' 1� , � 1
'
1E 11 1
"'"
21
2
2 2
2'1� ,,,,,t ?.J 3{ 3t
•O
13
43
7
/ L ' ÉCRAN
Votre ordinateur peut utiliser deux autres écrans de texte dont l'un est de 40 x 24:
1 2 3
0
5 5
'
7
1
6 9 1( 11 1
1� 1
1
1
1E 1
1
2{ 21 2 2 2 · 2 21 27212
3 3i 3
" "I' > 3, "'
"
1
IO
i
12
13
1
14
15
15
17
"
"
"
11
22
23
L'autre est de 80 X 24:
o
i
J
1
•
s
6
'
1
t 1 1
1
'
1
'
1
,
'
•
�" 111 ti• �� z
•
l
�
29
:io l l l , :i.· 1 Jj l ) )!
1 oc •1 • l 4:1 .. � ".
t � � 1 !!.:1� � �: 1o �1 !il s- i( , v1 1 "'t i!: • 1<1w , : : 1
, 1i1 �1 n 1.
n
7
/ L 'ÉCRAN
La commande WIDTH sert à passer d'un écran à un autre. Sa syntaxe est:
w I D T H 40, 80 ou 32
efface l'écran.
Fait passer à l'écran de 40 x 24, de 80 x 24 ou de 32 x 1 6 puis
Utilisez WIDTH pour passer à l'écran de 40 x 24. Tapez:
W I D TH 40 �
L'écran de 40 x 24 différe de celui de 32 x 1 6. Sa bordure est verte au lieu d'être noire. Le
curseur est un caractère de soulignage clignotant au lieu d'être une case clignotante. Les
tailles des c;:m:ir,tères sont également différentes.
Pour passer à l'écran de 80 x 24, tapez:
W I DT H 8 0 (ENTERl
L'écran de 80 x 24 paraît identique à celui de 40 x 24, mais les caractères sont plus minces.
Pour revenir à l'écran de 32 x 1 6 , tapez:
W I DT H 3 2 (ENTERl
Les écrans de 40 x 24 et de 80 x 24 sont tous deux à haute défin ition. L'écran de 32 x 1 6
est à basse défin ition.
Positions sur l'écran
(Commandes PRINT @ et LOCATE)
Vous pouvez placer du texte sur l'écran à basse définiticn à l'aide de la commande PRINT.
Vous pouvez mettre du texte sur l'écran à haute définition à l'aide de la commande LOCATE.
La syntaxe de PRI NT @ est:
P R r N T @ n. message
imprime le message.
Place le curseur à la position n sur l'écran à basse défi nition puis
La syntaxe de LOCA TE est:
LO c A T E x,y Place le curseur à la colonne x, rangée y. La colonne peut être comprise
entre 0 et 39 avec un écran de 40 x 24 ou entre 0 et 79 avec un écran de 80 x 24. Pour
chaque type d'écran, la rangée peut varier de 0 à 23.
Le programme suivant, intitulé "Un cran magique", montre le rôle de la commande PRINT @ :
10
20
W I D TH 3 2
P R I NT @ 230 , "UN E C RAN M A G I Q U E " ;
7
/ L 'ÉCRAN
Quand vous exécutez ce programme, le BASIC passe à l'écran de texte à basse définition,
place le curseur à la position 230 (224 + 6) et imprime le message " u N E c R A N MA G I Q u E " .
0
1 , 3
•
5 6 7 e 9 1( ,, 1 1 ,, 1 1( 1 H 1� 2( 21 2 , 2' 2! " " "29 3( 31
0
2
4
96
12a
"0
192
224
•
s C R
E
E
N
'
u
l
0
'
H
A
G
1
c
256
0
352
.
'
'
0
Cette version de l'écran magique montre le rôle de LOCATE:
10
20
30
W I D TH 40
LOCATE 1 0 , 1 2
P R I NT "UN ECRAN MAGIQUE"
Quand vous exécutez ce programme, le BASIC place le curseur à la colonne 1 0, rangée 1 2
et imprime l e message " U N E C R A N M A G I Q U E " .
0
1
,
' ' 5 '
7 . 9 11 11 1� 1 1 1 1( 1 1
' ' " ,, ,, , ,
'" ' '"' " " "1�3 35 3' 31� 39
1
10
1
"
"
"
15
17
18
19
1
22
"
46
•
s c R E E '
' u
l
0
'
H A
G
1
t
7
/ L 'ÉCRAN
et LOCATE sont analogues, mais elles présentent deux différences. Tout d'abord,
place le curseur à une position PRINT @: LOCATE le place à une position de rangée
et de colonne. Ensuite, PRINT @ imprime un message; LOCATE n'en imprime pas.
PRINT @
PRINT @
ne s'utilise qu'avec l'écran de texte à basse définition; LOCATE ne fonctionne qu'avec
un écran à haute définition. Si vous essayez d'utiliser ces commandes avec le mauvais écran,
le BASIC envoie ? H P E R R O R .
PRINT @
Minuscules
{Touches c s H I F T )([))
Vous pouvez passer en mode de maj usculesminuscules avec les écrans à basse et haute
définition. Chaque écran présente cependant les minuscules de façon différente.
•
L'écran à basse définition affiche les minuscules en couleurs inverses.
•
L'écran à raute définition affiche des minuscules vraies.
Essayez d'utiliser le mode de maj uscules minuscules avec les deux écrans. Appuyez sur
Cfilïiill et pressez ® · Retapez la ligne 30 du programme "Un écran magique". Utilisez
ŒHIT:i) pour les maj uscules, comme avec une machine à écrire normale. Tapez:
30
P R I N T " U n é c r a n mag i qu e "
Tapez LIST � pour lister le
laspect suivant:
30
program me.
Sur l'écran à basse définition, la ligne 30 a
P R I N T "UN ECRAN MAG I QUE"
Sur l'écran à haute définition. l a ligne 30 se présente
30
ainsi:
P R I N T � -M- Mi- l- Qtl-E-'...
.. !),.,, .u-�
'
t>-e
;/'!.(#>. u
47
7
/ L 'ÉCRAN
Exécuter le programme. À cause de WIDTH 40 à la ligne 1 0 du programme, le BASIC passe
à l'écran de texte à haute définition et affiche le message suivant:
u
1
l :. 4 )
. (
' '
1( 1' 1 2 ,, ,
, , 1 ,, " 1 " 2 " 222I' " 2 "1•130 311•
3 3
" . 3, 1 J :
10
1
12
•
s ' (
. . "
f
u
l
• f
. . . ; '
13
16
'
18
"
21!
,,
1
1
22
l
1
1
Revenez en mode de majuscules seulement en appuyant sur '.SH IFT' et en pressant QD.
Couleurs
(Commande CLS)
Vous pouvez utiliser l a commande C L S avec les écrans à basse et
cependant un rôle lègérement différent avec chaque écran.
haute
définition.
CLS
joue
•
Sur l'écran à basse définition, CLS efface l'écran et affiche une couleur.
•
Sur l'écran à haute définition, CLS efface l'écran, affiche une couleur et change
la couleur de fond.
Avec un écran vidéo RGB (rouge/verlbleu), tapez PALETTE RGB ŒNJ:'.EID avant d'aller plus
loin. Vos couleurs correspondront ainsi aux nôtres.
Utilisez maintenant CLS avec les deux écrans. Passez d'abord à l'écran à basse définitior
et entrez CLS avec le code de couleur 8 (orange). Tapez:
W I DT H 32 �
C L S 8 (ENTER)
Un écran orange apparaît avec une bande verte à sa partie supérieure. Le vert est la couleur
de fond courante.
7
/ L 'ÉCRAN
Passez maintenant à l'écran à haute définition et entrez la même commande. Tapez:
W I D T H 40 ŒN:'ŒID
C L S 8 (ENTER)
Un écran �f(lsans bande verte, apparaît. La commande CLS a changé aussi la couleur
de fond à l'orange.
Essayez d'autres couleurs de fond. Utilisez un code queconque entre 1 et 8.
Pour comprendre le rôle de CLS dans un programme, ajoutez la ligne 1 5 à notre programme
"Un écran magique":
10
15
20
30
W I D T H 40
C LS3
LOC ATE 1 0 , 1 2
P R I N T "Un é c r a n m a g i que"
Exécutez le programme. L'ordinateur affiche "Un écran magique" sur un fond bleu.
Une mise en valeur remarquable
(Commande ATTR)
Vous pouvez utiliser la commande spéciale ATIR pour mettre du texte en valeur sur l'écran
à haute définition. ATTR ne s'utilise qu'avec l'écran à haute définition; elle ne donne aucun
résultat avec l'écran à basse définition. Sa syntaxe est:
A TT R c 1, c2, 8, U Met le texte en valeur en fixant le premier plan à la couleur c 1 (1
à 8) et le fond à la couleur c2 (1 à 8). Si vous spécifiez B, le texte clignote. Si vous spécifiez
U, vous le soulignez.
Pour comprendre le rôle de ATIR, tapez:
A T T R 3 , 2 (ENTER)
Tapez ensuite quelques caractères. Ceux-ci sont mis en valeur. La couleur de premier plan
est chamois et la couleur de fond bleu.
Tapez maintenant:
A T T R 2 , 3 , B (ENTER)
Les caractères tapés sont mis en valeur d'une autre manière. La couleur de premier plan
est noire, la couleur de fond rouge et les caractères clignotent tous.
Pour souligner des caractres, tapez:
A T T R 2 , 3 , U ŒNI:EfD
Essayez d'autres couleurs de premier plan et de fond. Utilisez un code quelconque entre
1 et 8 pour les couleurs de premier plan et de fond.
49
7
/ L 'ÉCRAN
Dans le programme suivant, nous utilisons ATTR pour mettre en valeur le message prodLit
avec le programme " U n écran magique":
10
15
20
25
30
W I D T H 40
C L S4
LOCATE 1 0 , 1 2
ATTR 2 , 3 , B
PRINT "Un écran magi que";
Quand vous exécutez le programme, les mots "Un écran magique" sont mis en valeur. Le
premier plan est noir, le fond rouge et les caractères clignotent tous.
Codes des couleurs
Vous avez peut-être remarqué que les codes donnent des couleurs différentes su ivant qu'on
ATTR comme c01i l eur de premier plan ou ATTR comme couleur de fond.
les 1itilise 8vec CLS,
Par exemple, le code 3 donne:
•
Bleu avec CLS.
•
Chamois avec ATTR comme couleur de premier plan.
•
Rouge avec ATTR comme couleur de fond.
Le chapitre suivant explique cette particularité.
Appris au chapitre 7
COMMANDES
WIDTH
PRINT @
LOCATE
ATTR
CLS
50
TOUCHES
8 I LES COU L E U RS
Votre ordinateur couleur peut produire 64 couleurs, mais jusqu'à présent, nous n'en avons
utilisé que neuf. Dans ce chapitre, nous apprenons à utiliser les autres couleurs disponibles.
Si vous avez un écran vidéo RGB (rouge/vert/bleu), n'oubliez pas de taper PALETTE RGB
crnrEBJ chaque fois que vous mettez votre ordinateur en marche. Vos couleurs
correspondront ainsi aux nôtres.
Spécification des couleurs
(Palette)
Dans la mémoire de l'ordinateur couleur, une zone spéciale est réservée à la palette qui
comprend 16 cases. Chaque case contient une couleur.
Quand vous utilisez un code de couleur dans une commande BASIC, vous spécifiez une case
de palette. Par exemple, tapez:
C L S 3 (ENTER)
L'écran est maintenant bleu parce que CLS3 spécifie la case 2; celle-ci contient le <:ode du bleu.
Tapez encore:
A TT R 3 , 3 (ENTERJ
Tapez ensuite quelques caractères. Le premier plan est chamois et le fond rouge. En effet,
ATIR 3,3 spécifie la case 1 1 pour le premier plan et la case 3 pour le fond. La case 1 1 contient
le code de la couleur ch<imois. La case 3 contient le code du rouge.
Vous pouvez remarqLer que les codes de couleur spécifient des cases différentes, suivant
qu'on les utilise avec CLS. ATIR comme couleur de premier plan ou ATIR comme couleur
de fond.
Par exemple, le code 3 spécifie:
•
•
La case
•
La case 1 1 avec ATIR comme couleur de premier plan.
2 avec
CLS.
La case 3 avec ATIR comme couleur de fond.
Les tables suivantes montrent la case spécifiée par chaque code de couleur suivant qu'on
l'utilise avec CLS, ATIR comme couleur de premier plan et ATIR comme couleur de fond.
Elles m o nt rent aussi les couleurs cou rantes stockées dans chacune de ces cases.
Table 8.1
CLS et la palette
Code de couleur
Case de palette
0
1
2
3
4
5
6
7
8
8
0
2
3
4
5
6
7
Couleur standard
Noir
Vert
Jaune
Bleu
Rouge
Chamois
Turquo:se
Lilas
Orange
51
8 / LES COULEURS
Table 8.2
Couleur de premier plan avec ATTR et palette
Code de couleur
Case de palette
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Table 8.3
Couleur standard
Noir
�rt
Noir
Chamois
Noir
Vert
Noir
Orange
Couleur de fond avec ATTR et palette
Code de couleur
Case de palette
0
i
0
1
a..
=
�
2�
'1r
E
6
i
5
6
�
Couleur standard
Vert
Jaune
Bleu
Rouge
Cha-nois
Turquoise
Lilas
Orange
Couleurs non standard
(Commande PALETTE)
La commande PALETIE permet de changer la couleur stockée dans une case de palette.
La syntaxe de cette commande est:
P A L E T T E case, code de couleur
de palette (0 à 1 5).
Stocke un code de couleur (0 à 63) dans une case
Par exemple, tapez:
C L S 3 (ENTER)
L'écran est maintenant bleu. Vou� savez déjà que CLS3 spécifie la couleur stockée dans la
case 2; celle-ci contient le code du bleu.
Avec la commande PALETIE, stockez maintenant un code diffrent dans la case 2. Tapez:
P A L E T T E 2 , 2 ŒNîIB)
L'écran passe instantanément au
vert.
Essayez un autre code. Tapez:
P A L E T T E 2 , 1 4 ŒNÏfID
La couleur de l'écran change encore.
Par rapport à un écran vidéo RGB (rouge/vert/bleu), certains codes donnent des couleurs
différentes avec un écran CMP (signal complet). Essayez de stocker d'autres codes dans
la case 2. Vous pouvez utiliser un code quelconque entre 0 et 63.
52
8 / LES COULEURS
Chaque écran peut donner des couleurs différentes pour chaqu e'i"ôê'ê' de palette. Tapez
l'exemple de programme 23 et exécutez-le. Ce programme montre les 64 couleurs sur l'écran.
à raison de huit à la fois. Localisez la section "Codes de couleur" vers la fin de cet ouvrage
Soixante-quatre lignes blanches sont libellées de 0 à 63. À côté du numéro approprié, écrivez
un nom pour chacune des couleurs que vous voyez. Essayez maintenant l'exemple de
programme 24. Un assortiment éclatant de couleurs, choisies au hasard parmi les 64
disponibles, apparaît. Dans la suite de ce chapitre, vous appren.drez à utiliser ces couleurs
dans vos propres programmes.
Couleurs non standard dans un programme
(Exemple avec PALETTE)
Voici le programme "Un cran magique" du chapitre précédent:
10
15
20
25
30
W I D TH 40
C L S4
LOCATE 1 0 , 1 2
ATTR 3 , 2 , B
P R I N T "Un é c ran mag i que";
Supposons que vous voulez changer la palette pour que la commande ATIR 3,2, B donne
un premier plan jaune soleil.
Vous devez:
1.
Déterminer la case de palette qui donne la couleur de premier plan (le "3'' de la commande
ATIR 3,2,B).
La table 8.2 indique que la case 1 1 donne cette couleur.
2.
Chercher le code du jaune soleil dans "Codes de couleur" .
3.
Stocker le code de l'étape 2 dans la case spécifiée de palette de l'étape 1 en ajoutant
la ligne suivante à votre programrre:
2 P A L E T T E 1 1 , x x (XX correspond au code ce couleur)
4.
Exécuter le programme.
8 / LES COULEURS
Retour aux couleurs standard
(Commandes PALETTE CMP et PALETTE RGB)
Après avoir modifié la palette, vous pouvez désirer la remettre à son état standard. Dans ce
but, utilisez les commandes PALETIE CMP et PALETTE RGB. Leurs synta x_es sont:
P A L E T T E C M P Règle l'ordinateur pour afficher les couleurs standard sur un écran vidéo
CMP (signal complet).
P A L E T T E R G B Règle l'ordinateur pour afficher les couleurs standard
RGB (rouge/vert/bleu).
sur
un écran vidéo
Si vous avez un écran vidéo CMP, tapez:
PALETTE CMP �
Si vous avez un &r an RGB, vous avez déjà utilisé la commande PALETTE RGB. Tapez:
P A L E T T E R G B ŒNliID
Vous êtes maintenant revenu à la palette normale. Si vous tapez par exe:n ple
l'écran est de nouveau bleu.
Appris au chapitre 8
COMMANDE
PALETTE
54
c
L S 3 �.
9 I LE JEU DU HASARD
Grâce aux nombres aléatoires du BASIC, l'ordi nateur peut jouer à la quasi-totalité des jeux
de hasard.
Choix d'un nombre au hasard
{Fonction RND)
Tapez le programme suivant:
10
PRINT RND ( 1 0)
Exécutez-le. L'ordinateur a choisi un nombre au hasard entre 1 et 1 O. Exécutez ce programme
quelques fois de plus.
L'ordinateur se comporte comme s'il tirait un nombre de 1 à 10 d'un chapeau. Vous ne pouvez
pas prévoir le nombre choisi.
Tapez et exécutez le programme suivant. Pressez (BREAKl quand vous estimez que les
nombres sont vraiment choisis au hasard.
10
20
PRINT RND (1 0) ;
GOTO 1 0
Pour choisir des nombres au hasard entre 1 et 1 OO, changez la ligne 1 0 et exécutez le
programme.
10
P R I N T RND (1 00) ;
Au contraire des autres mots BASIC que vous avez utilisés, RND est une fonction. Autrement
dit, RND donne une valeur qui, dans le cas présent, est un nombre. RND donnant un nombre,
vous pouvez l'utiliser exactement comme un nombre.
Voici des exemples d'utilisation de RND:
P R I N T R N D ( 1 0 f1 S
SOUND RND (255) , RND(255)
C LS R N D < 8 )
FOR N=1 T O R N D ( S )
NEXT N
•
•
•
La syntaxe de RND est:
R N o(n) Donne un nombre au hasard entre
et 1 (si n est égal à 0).
0
1
et n (si n est supérieur à 1 ) ou entre
Le reste de ce chapitre est consacré à la détente. Si vous voulez en a,op>er-.d'e Ga':arrage
sur le BASIC, vous pouvez passer au chapitre suivant.
55
9 / LE JEU OU HASARD
Un spectacle laissé au hasard
(Exemple de RND)
Faites composer par l'ordinateur u1 air constitué de tonalitsé au hasard. Tapez:
10
T = RNDC255)
20
SOUND T , 1
30
GOTO 1 0
Exécutez le programme.
en avez assez.
De la grande musique,
n est ce-pas? Pressez :BREAK] q u an d vous
'
-
EXERCICE 9-1
Ajoutez des lignes pour que l'ordinateur présente une couleur au hasard (1 à 8) avant
qu'il p rodui se chaque tonalité au hasard.
Une partie de dés
(Exemple avec RND)
Dans ce jeu, l'ordinateur jette deux dés. Dans ce but, il doit donner deux nombres au hasard.
Tapez:
20
CL S
X = RN0(6)
30
Y =
40
R = X�0
60
PRINT
70
P R I N T "VOUS AVEZ OBTENU UN" R
10
80
90
RNDC6)
Y
PR INT X,
I N P UT " V O U L E Z - V O U S J O U E R U N A U T R E C O U P ? " ; A$
A$ = "OU I " T H E N 1 0
SI
Exécutez le programme.
La ligne 1 0 efface l'écran.
La ligne 20 chois;t un nombre au hasard entre 1 et 6, pour l'un des dés.
La ligne 30 choist un nombre au hasard pour l'autre dé.
La ligne 40 additionne les deux dés pour obtenir le total.
Les lignes 50 à 70 impriment le résultat.
La ligne 80 vous permet d'indiquer si vous voulez jouer encore. Si vous répondez "OUI"
la ligne 90, le programme passe à la ligne 10 et recommence. Dans le cas contraire, le
programme se termine.
56
9 / L E JEU OU HASARD
EXERCICE 9-2
Vous savez jouer aux dés; vous pouvez donc écrire sans difficulté un programme
de "Craps". Voici les régies du jeu, dans sa forme la plus simple:
1.
Le joueur jette deux dés. Au premier jet, s'il obtient 2, 3 ou 1 2, le joueur perd
et la partie est termine.
2.
Si le premier jet donne 7 ou 1 1 , le joueur gagr.e et la partie est terminée.
3.
S'il obtient un autre nombre a u premier jet, l e joueur marque un point. Le joueur
doit continuer à jeter les dés jusqu'à ce q u ' i l "narque le po i nt en obtenant
de nouveau le même nombre pour gagner ou Jn 7 qui le fait perdre.
"
Vous en savez déjà suffisamment pour écrire ce programme. Passez donc à
l'action. Arrangez-vous pour présenter le programme sous un format élégant
sur l'écran et tenir le joueur informé sur le déroulement de l'action. Ce programme
peut vous demander du temps, mais faites de votre mieux. Bonne chance!
Appris au chapitre 9
FONCTION
AND
57
1 0 I RETOU R À L ' ÉCOLE
Dans ce chapitre, vous apprenez à lire à l'ordinateur à l'aide de trois nouvelles commandes:
READ, DATA et RESTORE. Vous apprenez aussi une fonction nouvelle: INT.
Lecture des données
{Commandes DATA et READ)
Tapez le programme suivant et exécutez-le:
1 0
DATA POMM E S , ORA N G E S , P O I R E S
20
F O R X = 1 T0 3
30
READ F$
40
NEXT X
Rien ne se passe1 Pour voir ce que fait l'ordinateur, ajoutez la ligne suivante et exécutez le
programme:
35
PRINT "F$ =
:"
F$
La ligne 30 indique à l ' ordinateur de:
1.
Chercher une ligne DATA.
2.
Lire (READ) le premier article de
3.
Donner à POMMES
4.
Passer à l'article suivant.
une
la
liste: POMMES.
étiquette F$.
1 0 / RETOUR À L 'ÉCOLE
Quand l'ordinateur arrive la deuxième fois à l'article 30, on lui demande de:
1.
Chercher une ligne DATA .
2.
Lire (READ) l e premier article q u i . c e l te fois-c;i, est ORANGES.
3.
Donner ORANGES l'étiquette F$.
4.
Passer l'article suivant.
Vous pouvez insérer des lignes DATA partout dans le programme. Exécuter chacun des
programmes suivants; ils suivent tous les mêmes principes.
1 0
DATA P O M M E S
1 0
DATA POMME S , ORAN G E S
20
DATA O R A N G E S
20
DATA P O I R E S
30
FOR X = 1 TO 3
30
F O R X = 1 T0 3
40
READ F$
40
READ F $
50
PRINT "F$ = : " F$
PRINT "F$ = : " F$
N EXT X
50
60
N EXT X
30
FOR X = 1 TO 3
30
FOR X =
40
READ F$
40
READ F $
60
70
DATA P O I R E S
1
TO 3
50
P R I NT " F $ = : " F $
PRINT "F$ = : " F$
N EXT X
50
60
60
N EXT X
70
DATA POMMES
70
DATA POMM E S , ORAN G E S ,
80
DATA O R A N G E S
90
DATA P O I R ES
La syntaxe de
DATA
DATA
POIRES
est:
éléments de données
La syntaxe de
READ
R E A D variable
la variable.
l nsére des éléments de données dans un programme.
est:
Lit l'élément suivant de données dans le programme et le stocke dans
�
Lecture des mmes donnes plusieurs reprises
(Com mande RESTORE)
Jetez un coup d'oeil au programme DATA original:
1 0
D A T A P OM M E S , O R A N G E S , P O I R E S
20
FOR X = 1 TO 3
30
READ F
o/
40
NEXT X
'
Comment pouvez-vous amener l'ordinateu N ire la même liste plusieurs fois de suite? Tapez:
60
GOTO 1 0
Exécutez le programme. L'ordinateur affiche ?OO ERROR I N 30 (Erreur de;firi de donnée
à la ligne 30). Quand il lit les éléments de données pour la première fois, l'ordinateur les biffe.
Quand on lui demande ensuite de revenir à la ligne 30 et de lire les articles de données biffées.
l'ordinateur indique ? O D E R R O R .
Tapez cette ligne et exécutez l e programme:
50
60
RESTORE
1 0 / RETOUR À L 'ÉCOL E
L'ordinateur paraît maintenant ne jamais avoir biffé les éléments de données.
données à maintes reprises.
li
lit les mêmes
La syntaxe de RESTORE est:
R E sTORE
Ram� e le pointeur de donn é�de l 'ordinateur au premieréffient de donn éS:-
Pour développer votre vocabulaire
(Fonction INT)
Dans cet ex emple de programme, n ous utilisons DATA, READ et RESTORE pour que
l'ordinateur vous questionne sur des définitions de mots. Nous avons utilisé les mots et
définitions suivants:
10
20
30
40
50
DATA
DATA
DATA
DATA
DATA
T A C I T U R N E , G E N E RALEMENT PEU CAUSEUR
L O QU A C E , T R E S B A V A R D
C R I A R D , B R U Y A N T ET V E H E M E N T
B R E F , CON C I S
E X U B E RAN T , DEMONS T R AT I F OU COMMU N I C AT I F
Pour écrire un programme q u i conduise l'ordinateur à vous questionner sur ces mots et
définitions, il faut choisir les mots au hasard. Tapez:
60
70
80
90
1 00
N = RND(10)
FOR X = 1 t o N
READ A$
N E XT X
P R I N T " L E MOT A U H A S A R D E S T : " A$
Exécutez r:P. programme à plusieurs reprises. À ce stade, les résultats ne sont pas fameux.
L'ordinateur s'arrête aussi souvent à une définition qu'à .Jn mot.
I l faut que l'ordinateur choisisse un mot au hasard parmi les éléments 1 , 3, 5, 7 ou 9, plutôt
que parmi la totalité des éléments. Autrement dit, le nombre au hasard N doit toujours être
impair.
Le BASIC n a pas de fonction qui convertisse les nombres pairs en nombres impai rs, mais
sa fonction INT peut servir à faire cette conversion.
'
INT convertit un n omb re à sa "partie entière" el annule la partie décimale. Par exemple. 1 T
(3.9) est égal à 3. La syntaxe de INT est:
I N T(n)
Retourne la "partie entière" de n. n peut correspondre à �ou: îO.�;:,•e
6
1 0 / RETOUR À L 'ÉCOLE
Vous pouvez utiliser N pour convertir des nombres pairs en nombres inpairs en tapant la
ligne suivante:
I F I NTCN/2) = N/2 THEN N = N - 1
65
La ligne 65 remplit le rôle suivant:
•
Si N est égal à un nombre pair, la ligne 65 soustrait 1 de N pour fai�e de celui-ci
un nombre impair.
Par exemple, si N est égal
à
1 O, la ligne 65 fait le calcul suivant:
INT(1 ô/2)
1 0/2
I NT(5)
5
5
5
=
=
=
Le résultat étant vrai (5
•
Si N est égal
à un
=
5), la ligne 65 soustrait 1 de N pour le rendre égal à 9.
nombre impair, la ligne 65 ne le change pas.
Par exemple, si N est égal à 9, la ligne 65 fait le calcul suivant:
INT(9/2)
INT(4.5)
4
4.5
=
=
9/2
4.5
=
Le résu ltat étant faux (4 n'est pas égal
à
4.5), la ligne 65 ne change pas N.
Ajoutez maintenant les lignes suivantes pour que l 'ordinateur lise chaque définition de mo:.
110
1 20
READ B$
P R I NT "LA D E F I N I T ION E S T : " B$
Ajoutez les lignes suivantes pour que l'ordinateur lise à plusieurs reprises dans l a même liste:
130
1 40
R ESTORE
GOTO 6 0
Listez le programme; i l doit avoir l'aspect suivant:
10
20
30
40
S0
60
65
70
80
90
100
110
1 20
130
1 40
62
D A T A T A C I T U R N E , G E N E R A L EM E N T P E U C A U S E U R
D A T A LOQU A C E , T R E S B A V A R D
D A T A C R I A R D , B R U Y A N T ET V E H E M E N T
D A T A B R E F , C ON C I S
D A T A E X U B E R A N T , D E M 0 N S T R A T I F 0 U C 0 MM U N I C A T I F $;
N = R N D C 1 0)
I F INTCN/2) = N/2 THEN N = N - 1
FOR X = 1 T O N
READ A$
NEXT X
P R I NT " L E M O T C H O I S I E S T : " A $
R E A D B$
P R I NT " S A D E F I N I T ION E S T : " B $
R ESTORE
GOTO 6 0
1 0 / RETOUR À L 'ÉCOLE
EXERCICE 1 0-3
Pour compléter ce programme, ajoutez des lignes pour que l'ordinateur:
1.
Imprime la définition seulement.
2.
Vous demande le mot.
3.
Compare le mot
4.
Vous indique si votre réponse est juste. Si votre réponse est fausse, il imprime
le mot juste.
au
mot choisi correct.
Appris au chapitre 1 0
COMMANDES
FONCTIONS
DATA
READ
RESTO RE
INT
63
11
I L'ARITHMÉTIQUE PLUS FACILE
Votre ordinateur s'accommode avec aisance de la résolution rapide et précise de longs
problèmes de maths. Avant de vous mettre à taper de longues formules difficiles, ce chapitre
vous montre certai nes opérations qui facilitent les choses.
Sous-programmes
(Commandes GOSUB et RETURN)
Les commandes GOSUB et RETURN permettent d'établir un sous-programme pour faciliter
l ' utilisation des formules mathématiques complexes. GOSUB et RETURN s'utilisent toujours
ensemble. Leu rs syntaxes sont:
G o s u s numéro de ligne Va au sous-programme comm e-ççant au numéro de ligne.
s
R ETu R N
Revient du sous-programme
commande GOSUB correspondante.
à
la commande qui suit immédiatement la
Tapez et exécutez le programme suivant:
10
20
30
40
500
510
P R I N T " E X E C U T I O N DU P R O G R A M M E P R I N C I P A L "
GOSUB 5 00
P R I N T " R E T O U R A U P R O G R A M M E P R I N C I P A L"
END
P R I N T " E X E C U T I ON D U S O U S - P R O G R A M M E "
RETURN
'
GOSUB 500 indique l'ordinateur de passer au sous-programme qu cor...., e-x:i ;:: .ç-e �
RETURN indique l'ordinateur de revenir au BASIC qui suit 1mmo·a:e....,er: GQS..,3
65
1 1 I L 'ARITHMÉTIQUE PLUS FACILE
Libell& des sous-programmes
(Commande REM)
Le sous-programme suivant multiplie un nombre quelconque par 1 OO:
I N PUT " T A P E Z U N NOMB R E " ; N
10
GOSUB 2000
20
30
P R I N T N " F O I S 1 00 EST" R
GOT0 1 0
40
R E M FORMULE D E M U LT I P L I C A T I O N D ' U N NOMBRE PAR 1 0 0
2000
R = N * 1 00
201 0
RETURN
2020
La commande REM permet d'insérer une remarque cans u n programme, comme à la ligne
2000 ci-dessus. Sa syntaxe est:
R E M commentaire 1 nsère un commentaire dans une
commentaire n'a aucun effet sur le programme.
ligne
ce
programme;
ce
Vous pouvez insérer des lignes REM en tout point d'un programme; elles n'ont aucune influence
sur le déroulement du programme. Pour vous en rendre compte, ajoutez ces lignes et exécutez
le programme:
5
R E M V O I C I UN P R O G R A M M E P A R T I C U L I E R
17
REM CETTE L I G N E CHANGE-T - E L L E LE PROGRAMME?
R E M LA L I G N E S U I V A N T E S E P A R E LE SOUS-PROGRAMME
45
Utilisation de plusieurs sous-programmes
(Commande ON GOSUB)
La commande ON GOSUB permet d'insérer facilement plus d'un sous-programme dans un
programme. Sa syntaxe est:
O N n GOSUB numéros de lig ne Passe au sous-programme comm�nt au ne numéro
3
de ligne.
Pour vous faire une idée de ON GOSUB, tapez ce programme:
10
20
30
I N P U T " T A P E Z 1 , 2 ou 3 " ; N
ON N GOSU B 1 00 , 200, 300
GOTO 1 0
1 00
110
P R I NT "VOUS AVEZ TAPE 1 "
RETURN
200
21 0
P R I N T "VOUS AVEZ TAPE 2 "
RETURN
300
310
P R I NT "VOUS A V E Z T A P E 3 "
RETURN
Exécutez le programme.
66
1 1 / L 'A RITHMÉ TIQUE PLUS FACILE
La ligne 20 fait le méme travail que ces trois commandes:
I F N = 1 THEN GOSUB 1 00
I F N = 2 TH EN G O S U B 200
I F N = 3 T H E N G O S U B 300
18
20
22
ON GOSUB recherche le numéro de 1 gne qui suit ON, N dans le cas présent.
Si N est éga à 1 , l' ordinateur passe au sous-programmé qui commence au premier
numéro de ligne qui suit GOSUB.
•
•
Si N est égal à 2, l 'ordinateur passe au sous-programme qui commence au deuxième
numéro de ligne.
•
Si N est égal à 3, l'ordinateur passe au sous-programme qui commence au troisième
numéro de ligne.
Et si N vaut 4? Comme il n'y a pas de quatrième numéro de ligne à la ligne 20, l'ordinateur
passe simplement à la ligne suivante du programme.
Voici
un
s
10
20
30
40
50
60
70
programme avec ON GOSUB:
F O R P = 1 TO 6 0 0 : N E X T P
C L S : X::.R N D ( 1 0 0 ) : Y = RN D ( 1 0 0 )
PRINT " ( 1 ) ADDITI ON"
P R I NT " (2 ) S O U S T R A C T I O N "
P R I NT " (3 ) MUL T I P L I C ATION"
P R I N T " (4 ) D I V I S ION"
I N P U T "QUEL E X E R C I C E C 1 -4 ) " ; R
C LS
80
90
ON R GOSUB 1 0 0 0 , 2000, 3000 , 4000
GOTO S
1 0 00
1010
1 0 20
P R I N T " Q U E V A U T " X ' !f! Y
I N PUT A
I F A = X-tV T H E N P R I N T " J U S T E " E L S E P R I N T " F A U X
2000
201 0
2020
2030
P R I N T "QUE VAUT " X "-" Y
I N PUT A
I F A = X - Y T H E N P R I NT " J U ST E " E L S E P R I N T " F AU X "
RETURN
3000
301 0
3020
3030
P R I N T "QUE VAUT" X "*" Y
I N PU T A
I F A = X * Y T H E N P R I NT " J U S T E " E L S E P R I N T " F A U X "
RETURN
4000
401 0
4020
4030
P R I N T " Q U E VAUT" X " / " Y
I N PUT A
I F A = X / Y T H E N P R I NT " J U S T E " E L S E P R I N T " F AU X "
RETURN
")
03 0
RETURN
67
1 1 / L 'ARITHMÉ TIQUE PL US FACILE
Un peu d'aide pour l'ordinateur
(Parenthèses)
À mesure que les formules mathématiques se compliquent, votre ordinateur a besoin d'aide
pour arr ive r à les comprendre. Par exemple, vous désirez que l'ordinateur trouve la solution
de ce problème:
·
Divisez la somme de 1 3
'
+ 3 par 8
L'ordinateur peut arriver11ia réponse
13
+
3!8
16/8
=
=
de cette façon:
2
À la place, l'ordinateur vous donne une autre réponse. Tapez cette ligne de commande et
observez les résultats.
P R I N T 1 3 + 3 / 8 (ENTER;
L'ordinateur résout les problèmes en appliquant les règles suivantes:
RÈGLES D'ARITHMÈTIQUE
L'ordinateur résout les problèmes d'arithmétique dans l'ordre suivant:
1.
Il
2.
Il calcule ensuite les multiplications et les divisions.
3.
Enfin, il calcule les additions et les soustractions.
4.
S' il
résout d'abord les opérations exponentielles.
y a plusieurs opérations de même niveau, (plusieus opérations
exponentielles, multiplications et divisions ou additions et soustractions), il les
calcule en allant de la gaL:che vers la dr oite.
Dans le problème ci-dessus, l 'ordinateur applique ses règles de la façon suivante:
fait d'abord la divisio n (3/8
•
Il
•
Il calcule ensuite l'addition (13
=
.375).
+
.375
=
1 3.375).
Pour que l'ordinateur résolve différemment l e problème, vous devez insérer des par enth èses.
Tapez cette ligne:
PRINT (13 + 3 ) / 8 �
Quand l'ordinateur arrive à une opération entre parenthèses, il la résout avant les autres.
EXERCICE DE MATHS POUR L'ORDINATEUR
Quels résultats l'ordinateur vous donnera-t-il avec chacun des problèmes suivants?
PRINT 1 0
-
(5
PRINT 1 0
-
5
-
5
PRINT (1 0
-
5)
PRINT 1 0
68
-
(5
1) / 2
-------
1 / 2 -------
-
0
PRINT
(1
-
-
-
1) / 2
------
1 / 2
------
-
1 / 2 ) ------
1 1 / L 'ARITHMÉ TIQUE PLUS FACILE
Avez-vous terminé? Tapez chacune des lignes de commande pour vérifier vos réponses.
Vous voulez maintenant que l'ordinateur s'attaque à ce problème:
Divisez 10 moins la différence de 5 - 1 par
2
Vous demandez en fait à l'ordinateur de calculer:
(1 0
-
(5 - 1 )) / 2
Quand l'ordinateur "voit" un problème avec plusieurs jeux de parenthèses, il commence par
les parenthèses intérieures et progresse vers les parenthèses extérieures. Il procède ainsi:
5
-
1
=
4
10 - 4 = 6
612
=
3
RÉGLES SUR LES PARENTH ÉSES
•
L'ordinateur calcule d'abord les opérations entre parenthèses; il passe ensuite
aux autres.
•
L' ordinateur calcule d'abord les parenthèses intérieures et progresse vers les
parenthèses extérieures.
EXERCICE DE MATHS POUR L'ORDINATEUR
Insérez des parenthèses dans le problème ci-dessous pour que l'ordinateur donne
28 comme réponse:
PRINT 30 - 9 - 8 - 7
-
6
Réponse:
P R I N T 30
-
(9
-
8)
-
(7
-
6)
Reprsentation des grands nombres
{Notation E)
Tapez le programme suivant et exécutez-le pour vous faire une idée de la représentation des
nonbres importants par l'ordinateur:
10
20
30
40
X = 1
PRINT X;
X = X * 10
GOTO 20
L'ordinateur représente les nombres très grands et très petits en notation exponentielle (E).
Par exemple, l'ordinateur représente un milliard (1 ,000,000,000) sous la forme 1 E + 09 qui
correspond au nombre 1 suivi de
9 zéros.
Si l'::>rdinateur présente un nombre sous a forme 5E-06, vous devez dép!acer e oo-:: aéc.Ta'
qui suit le 5 de six positions vers la gauche et insérer les zéros nécessares Ce -.o�o·e
correspond à 5 * 1 0-6. soit 5 millionièmes (.000005).
69
1 1 / L 'ARITHMÉ TIQUE PLUS FACILE
Quand vous exécutez le programme ci-dessus, l'ordinateur donne une erreur de dépassement
de capacité (?OV ERROR) à la fin du programme. L'ordinateur n'accepte pas les nombres
supérieurs à 1 E + 38 ou inférieurs à -1 E + 38.
La notation exponentielle n'est pas difficile; il suffit de vous y habituer. Elle permet de se faire
une idée des nom bres très grands ou très petits sans perdre le point décimal de vue.
Appris au chapitre 1 1
COMMANDES
GOSUB
RETURN
REM
O N C9 0 S V B
70
SYMBOLES
CONCEPTS
Ordre des opérations
Notation E
1 2 / L 'ORDI NATEU R ET LES MOTS
Le BASIC possède plusieurs fonctions pour l'utilisation avec les chanîes. Celles-ci sont des
constantes et des variables spéciales qui stockent des carac:ères. Avec les fonctions en chaîne,
vous pouvez programmer l'ordinateur pour qu'il comprenne ouj et non ou pour qu'il vous
donne des ph rases complètes.
Comptage des mots
(Fonction LEN)
Tapez et exécutez ce programme:
20
P R I NT "TAPEZ U N E P H RASE"
I N PUT S $
30
P R I NT "VOTRE P H R A S E A " LEN C S $ ) " CARACT E R E S "
40
I N P U T " V O U L E Z - V O U S EN E S S A Y E R U N E A U T R E "; A $
50
I F A$ = "0U I " THEN 1 0
10
Assez impressionné, n'est-ce pas? Ce programme utilise la fonction LEN. La syntaxe de cette
fonction est:
L E N (chaine)
Donne la lono11eur
de
la chaîne.
Dans ce programme, LEN (S$) calcule la longueur de la chaîne S$ qui est votre phrase.
L'ordinateur compte chaque caractère de la phrase, y conpris les espaces et les signes de
ponctuation.
Combinaison des mots
(Opérateur de concaténation ( + ))
Effacez le programme et exécutez le suivant qui compose un genre de poème:
10
20
A$ = " U N E R O S E "
6$ = "
30
40
C$ = " C ' E ST UNE R O S E "
D$ = B $ + C $
50
E$ = "ET A I N S I DE SUI TE"
"
60
F $ = A $ + 0 $ -f 0 $ + B $ + E $
70
PRIN T F$
71
12 I L 'ORO/NA TEUR ET LES MOTS
Deux problèmes peuvent se présenter dans la combinaison des chaînes. Ajoutez la ligne
suivante et exécutez le programme qui fait apparaît re les deux problèmes:
80
G $ = F$ + F$ + F$ + F$ + F $ + F $ + F$
Quand l'ordi nateJr arrive à l a ligne 80, il présente le premier problème e n imprimant cette
ligne: ?OS ERROR IN 80 (espace hors de la chaîne).
À la mise en marche, l'ordinateur ne réserve que 200 caractères d'espace pour le travail avec
les chaînes. La ligne 80 lui demande de travailler avec 343 caractères. Pour réserver assez
de place pour ce nombre de caractères au moins Gusqu'à 500), vous pouvez utiliser la
commande CLEAR dont la syntaxe est:
C LE AR n
R�q;i/\!e;
.
Bra<::e n caracteres
d' espace
,
=
,.., � C h aine
Ajoutez la ligne suivante au début du programme et exécutez celui-ci:
5
C L EAR 5 0 0
Quand l'ordinateur arrive maintenant à la l ig ne 80, i l a assez d'espace de chaîne. I l présen:e
cependant le deuxième problème avec cette ligne: ?LS ERROR IN 80 (chaîne trop longue).
Une chaîne ne peut pas contenir plus de 249 caractères. Pour stocker plus de 249 caractères,
il faut les diviser en groupes plus petits et stocker chacun de ceux-ci dans sa propre ch �e.
Déformation des mots
(Fonctions LEFT$ et RIGHT$)
Vous savez maintenant combiner les chaînes. Essayons d'en décomposer une à l'aide de
deux fonctions nouvelles: LEFT$ et RIGHT$. Les syntaxes de ces fonctions sont:
L E F T $ (chaîne, n)
Retourne les n premiers caractères de la chaîne.
R I G H T $ (chaîne n)
Retourne les n derniers caractères de la chaîne.
Tapez et exécutez ce programme:
10
20
30
40
I N PUT
PRINT
PRINT
GOT0 1
" T A P E Z U N M OT " ; W$
" L A P R E M I E R E L E T T R E EST : " LE FT$ ( W$ , 1 )
" L E S 2 D E R N I E R E S L E T T R E S S O N T : " R I G H T$ ( W $ , 2 )
0
Le programme se déroule ainsi:
À la ligne 1 O, vous avez entré la chaîne W$. Supposons que cette chaîne est le mot MACHINE:
M É MOIRE DE L'ORDINATEUR
W$ = MACH I N E
Aux lignes 20 et 30, l 'ordinateur calcule l a première lettre de gauche et les deux dernières
lettres de droite de la chaîne:
LEFT$
(W$ , 1 )
M
A
C
H
1
N E
RI GHT$
(W$ , 2 )
Exécutez le programme à plusieurs reprises pour comprendre son déroulement.
72
12 / L 'ORO/NA TEUR ET LES MOTS
AjoJtez maintenant cette ligne au programme.
5
CL EAR 500
L'ordinateur met assez de place de côté pour le travail avec les chaînes. Exécutez de nouveau
le programme. Cette fois-ci, entrez une phrase à la place d'un mot.
EXERCICE DE PROGRAMMATION Comment pouvez-vous changer les lignes 20 et 30 pour que l'ordinateur donne les
cinq premières lettres et les six de-nières lettres de votre chaîne?
2 0 �������
3 0 ��
���
Réponse:
20
P R I N T " L ES C I N Q P R E M I ERES LETTRES SONT : " LEFT$ ( W $ , 5)
30
P R I N T " L E S S I X D E R N I E R E S L E T T R E S S O N T : " R I G H T$ ( W $ , 6 )
Isolation de mots
(Fonction MID$)
La
fonction MID$ pernet d'isoler certains mots. Sa syntaxe est:
M r D $ (chaîne n11 n2) Retou rne une sous-chaîne de la chaîne
,
caractère de la chaîne et continue pendant n2 caractères.
qui
commence au
n.! e,
Effacez votre programme et tapez le suivant:
10
20
30
40
50
60
70
80
90
1 00
C LEAR
INPUT
PRINT
IN PUT
PRINT
PRINT
I N P UT
PRINT
PRINT
GOTO
500
" T A P E Z UNE P H R A S E " ; S $
"TAPEZ UN NOMBRE DE 1 A " LEN (S$)
X
#ô
ltV
" L A C H A I N E I N T E R M E D I A I R E C O M M E N C E P A R tt C A R A C T E R E " X
" T A P E Z U N N O M B R E D E 1 A " L E N ( S $ ) - X+1
Y
" LA C H A I N E I N T E R M E D I A I R f�� .. Y " C A R A C T E R E S D E L O N G "
" L A C H A I N E I N T E R M E D I A I R E 4J. : " M I D $ ( S $ , X , Y )
&.:::r20
Exécutez plusieurs fois ce programme pour essayer de déduire le déroulement de MID$.
Le programme fonctionne ainsi:
•
À la ligne 20, supposons que vous avez entré VOICI UNE CHAINE:
MÉMOIRE DE L'ORDINATEUR
S$
•
-
VOICI UNE CHAINE
À la ligne 30, l'ordinateur calcule la longueur de S$ qui est de 1 6 carac'.ères. Il vous
demande ensuite de choisir un nombre entre 1 et 1 6. Supposons que vous c�0tsssez
6.
73
12 I L 'ORO/NA TEUR ET LES MOTS
•
À la ligne 60, l'ordinateur vous demande de choisir un autre nombre de 1 à 1 1
(16-6 + 1 ) . Supposons que vous choisissez 4.
M É MOIRE DE L'ORDINATEUR
X = 6
y
4
=
•
À la ligne 90, l'ordinateur vous donne une "chaîne intermédiaire" de S$ qui
commence au sixième caractère et qui a quatre caractères de long:
1
H
2 3 4 s
E R E
6 7
1 S
8 9 10 11
A
S
12
T
13
R
14
1 5
N
1
16
G
-4M I 0$ ( S $ , 6 , 4 )
Pour u n autre exemple de MID$, exécutez le programme suivant:
10
20
30
40
50
60
70
80
90
I N P UT " T A P E Z U N E P H R A S E " ; S $
I N P U T " T A P E Z U N MOT D E L A P H R A S E " ; W $
L = LEN C W$ )
F O R X = 1 TO L E N C S $ )
I F M I D $ ( S $ , X , U = W$ T H E N 90
NEXT X
P R I N T "VOTRE MOT N ' E S T P A S D A N S LA P H R A S E "
END
P R I N T W $ " - - C OM M E N C E AU C A R A C T E R E N O " X
Le programme se déroule a·1nsi:$
•
À
•
À la ligne 30, l'ordinateur calcule la longueur de W$ qui est de trois caractères.
la ligne 20, supposons que vous avez entré le mot UNE pour W$.
M É MOIRE D E L'ORDINATEUR
.
S$ = VOICI L) NE CHAINE W$
L = 3
=
UNE
•
Aux lignes 40 à 90 (boucle FOR/N EXT), l'ordinateur compte chaque caractère de
S$ en commenant au caractère 1 et en terminant au caractère LEN (S$) qui est 16.
•
Chaque fois que l'ordinateur compte un nouveau caractère, il voit une nouvelle chane
intermédiaire. Chacune d'elles commence au caractère X et a L (3) caractères de long.
Par exemple, si
X
est
égal à 1 , l'ordinateur voit
cette
chaîne intermédiaire:
1
I
H E R E
-2 MI0$(S1 ,1 ,2)
74
S
A
S
T
R
I
N
G
12 / L 'ORO/NA TEUR ET LES MOTS
Au quatrième passage dans la boucle, quand X est égal à 4, l'ordinateur voit cette chaîne
intermédiaire:
H
4
E R E
1
+- 2 -
s
A
S T R
1
N G
M I D$ ( S$ , 4 , 2)
Quand X est égal à "t. l'ordinateur trouve fi nalement
recherchée.
EXERCICE
Commencez par
10
un
UNE
qui est la chaîne intermédiaire
12-1
programme d'une ligne:
A $ ::: " C H A N G E Z U N E P H R A S E . "
Ajoutez une ligne qui insère ce qui suit au début de A$:
I L EST FAC I LE DE
Ajoutez une autre ligne qui imprime l a nouvelle phrase:
I L EST FAC I LE DE CHANGER UNE PHRASE
Voici notre programrTe:
10
20
30
40
A $ ::: " C H A N G E R U N E P H R A S E . "
0 $ ::: " I L E S T F A C I L E D E "
C $ "'i' B $ + " " + A$
PRINT C$
75
12 / L 'ORO/NA TEUR ET LES MOTS
EXERCICE 1 2-2
Ajoutez des lignes au programme ci-dessus pour:
1.
T rouve r
le début de cette chaîne i nterm éd iai re:
UNE PHRASE
2.
Annuler la chaîne intermédiaire ci-dessus et former la nouvelle chaîne suivante:
IL EST FACILE DE CHANGER
3.
Ajoute r
les mots ci-dessous
à la fin de la
nouvelle chaîne:
CE QUE VOUS VOULEZ
4.
Imprimer la nouvelle
chaîne:
IL EST FACILE DE CHANGER CE QUE VOUS VOULEZ
CONSEIL: Pour former la chaîne IL EST FACILE DE CHANGER, vous devez avoir
la partie de gauche de la chaîne IL EST FACILE DE CHANGER U N E PHRASE.
Réponse:
A$ = " C H A N G E Z U N E P H R A S E - "
10
B $ = 11 I L E S T F A C I L E D E 11
20
30
C $ = B$ + " " + A$
40
PRINT C$
Y = LEN ("UNE PHRASE")
50
6 0 Fo� X = 1 T O L E N ( C $ )
I F M I D $ ( C $ , X , Y ) = " U N E P H R A S E " T H E N 90
70
N EXT X
80
85 END
90
0$ = LEFT$ ( C $ , X
1 )
E $ = D$.j.!' C E Q U E V O U S VO U L E Z "
1 00
P R I NT E$
110
-
EXERCICE AVANCE
Écrivez u n programme qui:
•
vous demande d'entrer u1e phrase:
•
vous demande d ' entrer (1) une expression dans la phrase à annuler et (2) une
expressi on pour la remplacer:
•
imprime la phrase� chang ée.-
Cela peut vous prendre du temps, mais vous avez tous les éléments en main pour
écrire le programme. Notre réponse se trouve à la fin de ce livre.
Appris au chapitre 1 2
76
FONCTIONS
SYMBOLES
LEN
LEFT$
RIGHT$
M I D$
CLEAR
+
13
I SAUVEGARDE DES PROGRAMMES
A ce stade, vous savez que votre programme disparaît chaque fois que vous arrêtez
l'ordinateur. Pour faire une copie permanente d'un programme, il vous faut un magnétocassette
ou une unité de disque.
Si vous comptez utiliser un magnétocassette, lisez le présent chapitre qui vous apprend à
utiliser CLOAO, CSAVE et SKIPF pour sauvegarder vos programmes BASIC sur cassette.
Si vous projetez d' utiliser l'unité de disque, sautez ce chapitre et prenez connaissance du
manuel intitulé "Systme à disque d'ordinateur couleur" qui accompagne l'unité. Ce manuel
explique l'uti lisation des mots BASIC pour sauvegarder vos programmes sur disque.
Sauvegarde des programmes BASIC sur cassette
(Commande CSAVE)
La commande CSAVE sert à sauvegarder vos programmes BASIC sur cassette. Sa syntaxe est:
c s A v E " nom de fichier"
cassette.
Sauvegarde un programme BASIC intitulé nom de fichier sur
Appliquez les instructions suivantes:
1.
Reliez le magnétocassette à votre ordinateur couleur. Les instructions de branchement
sont expliquées dans le manuel d'introduction qui accompagne l'ordinateur couleur.
2.
Tapez un programme BASIC dans la mémoire de l'ordinateur.
3.
Mettez une cassette vierge en place dans le magnétocassette.
4.
Pressez les toucres de lecture (PLAY) et d'enregistrement (RECORD) du magnétocassette
pour les verrouiller.
5.
Donnez un nom au programme BASIC. c'est le nom de fichier. Vous pouvez utiliser un
nom de fichier de 8 lettres au maximum. Par exemple:
NOM
6.
JEUX
LETIRES
Sauvegardez ce programme sur cassette à l'aide de CSAVE.
Par exemple. pour sauvegarder le programme LETIRES, tapez:
C S A V E " L E T T R E S " CENîfID
Dès que vous pressez Œf:illlD , le moteur du magnétocassette se met en marche. Quand
le moteur s'arrête, le BASIC affiche le message OK sur l'écran. Le programme est encore
dans la mémoire de l'ordinateur, mais il est aussi sauvegardé sur la cassette.
Il est bon de faire plusieurs copies d'un programme. de préférence sur des cassettes séparées.
en cas de perte ou d'effacement accidentel.
77
13 / SAUVEGARDE DES PROGRAMMES
Chargement d'un programme BASIC à
partir d'une cassette
(Commande CLOAD)
La commande CLOAD sert à charger un programme BASIC à partir d'une cassetie. Sa syntaxe
est:
c L o A D "nom de fichier"
d'une cassette.
Charge u n programme BASIC intitulé nom de fichier à partir
Appliquez les instructions suivantes:
1.
Assurez-vous que la cassette est complètement rebobinée et que tous les branchements
ont été faits.
2.
Pressez la touche de lecture (PLAY) du magnétocassette pour la verrouiller.
3.
Effacez les programmes exista1ts en tapant:
N E W (ENTER)
4.
Chargez le programme de la cassette à l'aide de la commande CLOAD.
Par exemple, pour charçier le programme LETIRES à partir de la cassette, tapez:
C L O A D " L E T T R E S " @TER;
Dès que vous pressez :ENTERl, le moteur du magnétocassette se met en marche. Le
BASIC commence la recherche du programme. Pendant la recherche, le BASIC affiche
la lettre S dans le coin supérieur gauche de l'écran.
Quand le BASIC trouve le programme, il affiche la lettre F et le nom de fichier en haut
de l'écran: il commence à charger le programme. Quand le chargement du programme
est terminé, le BASIC affiche le message OK.
Si la cassette ne contient qu'un seul programme, vous pouvez taper CLOAD sans nom de
fichier. L'ordinateur charge le prerrier programme qu'il rencontre.
S1 vous essayez de charger un programme à partir d'une cassette vierge, l 'ordinateur couleur
cherche jusqu'à la fin de la bande, sans indiquer qu 'elle ne contient rien. Pressez RESET
(remise à l'état initial) pour arrêter le chargement.
Sauvegarde de plusieurs programmes sur cassette
(Commande SKIPF)
Utilisez la commande SKIPF pour sauvegarder plus d'un programme sur la même cassette.
SKIPF permet de positionner la bande à la fin du dernier programme de manière à ne pas
sauvegarder le programme suivant par-dessus le précédent. La syntaxe de cette commande
est:
s K I P F nom de fichier Explore� l a bande jusqu'� a fin du nom de fichier.
78
13 / SA UVEGARDE DES PROGRAMMES
Appliquez les instructions suivantes:
1.
Rebobinez la cassette à son début.
2.
Pressez la touche de lecture (PLAY) pour la verrouiller.
3.
Entrez la commande SKIPF pour trouver la fin du dernier programme sauvegardé sur
la cassette.
Par exemple, si le dernier progranme sauvegardé était "LETTRES", tapez:
SKI PF
"
L E T T R E S " (ENTERl
L'ordi nateur vous avertit quand il trouve le programme LETTRES. À la fin du programme
LETTRES, le moteur du magnétocassette s'arrête et lé'cran donne le message OK.
4.
Pressez les touches d'enregistrement (RECORD) et de lecture (P LAY) et sauvegardez
le programme suivant à l'aide de CSAVE.
Si vous ne vous rappelez pas du nom du dernier programme, utilisez un nom de fichier
tel que:
S K 1 P F " X " (ENTERJ
Observez ensuite l'écran. L'ordinateur affiche le nom de chaque programme trouvé sur
la cassette. Il imprime 1/0 ERROR (erreur d'entrée/sortie) quand il arrive à la fin de la
bande, mais il n'y a pas lieu de s'en inquiéter. Vous avez trouvé ce que vous cherchiez,
c'est-à-dire le nom du dernier programme.
Quelques conseils
Les conseils suivants vous aideront à ré8lisP.r de bons enregistrements:
•
Quand vous n'utilisez pas l'ordinateur pour sauvegarder (SAVE) ou charger (LOAD)
des programmes, ne laissez pas les touches d'enregistrement (RECORD) et de lecture
(PLAY) du magnétocassette à la position enfoncée. Pressez la touche d'arrêt (STOP).
•
Vous éviterez de nombreux problèmes en utilisant des cassettes neuves de qualité
supérieure pour ordinateur, comme le n° 26-301 du catalogue Radio Shack.
•
Si vous voulez réutiliser une cassette enregistrée, effacez-la d'abord complètement
à l'aide du dispositif d'effacement, n° 44-21 0 du catalogue Radio Shack. Le processus
d'enregistrement efface normalement la bande, mais il peut subsister suffisamment
de données pour rendre le nouvel enregistrement i nutilisable.
•
Si vous désirez sauvegarder définitivement un programme enregistré, brisez la
languette de protection contre l'erracernent de la cassette. À cet effet, consultez le
manuel du magnétocassette. Sans cette languette, vous ne pouvez pas presser la
touche d'enregistrement du magnétocassette. Il est ainsi impossible d'effacer
accidentel lement le programme.
79
13 I SAUVEGARDE DES PROGRAMMES
Appris au chapitre 1 3
COMMANDES
CSAVE
CLOAD
SKIPF
80
1 4 I ÉDITIOIN DES PROGRAMMES
Jusqu'à présent, vous avez probablement changé les programmes en les retapant. Dans le
présent chapitre, vous apprendrez une méthode plus facile de changement des programmes,
à l'aide des commandes EDIT, DELETE et RENUM.
Édition des lignes
(Commande EDIT)
La commande EDIT sert passer en mode d'édition. Sa syntaxe est:
E o I T numéro de ligne Fait passer en mode d'édition pour pouvoir éditer le numéro
de ligne.
En mode d'édition, vous pouvez utiliser les touches spéciales d'édition indiquées dans la table
1 4. 1 .
Table 14.1
Touches d'édition
(n est un nombre. Si vous omettez n, le BASIC utilise 1 .)
Touche
Fonction
CD
n©caractères
Liste la ligne et revient au début.
Change les n caractères suivants en nouveaux caractères.
1 nsère les caractères.
Supprime n caractères.
Détruit le reste de la ligne et vous met en mode d'insertion.
Permet de prolonger la ligne.
Cherche la ne apparition du caractère.
Élimine le reste de la ligne.
Élimine jusqu'à la ne apparition du caractère
Avance de n espaces.
Recule de n espaces.
Revient en mode de ligne.
m
n@
C8)
OO
nCIDcaractère
CKl
nCKlcaractère
n( SPACEBARl
nEJ
CfüITITJCD
81
1 4 I ÉDITION DES PROGRAMMES
Faites une erreur en tapant un programme. Tapez:
50
DABA EXXUBERANT, PENSANT, ATRA B I L E
Pour passer en mode d'édition. Tapez:
E D I T 5 0 (ENTER)
Nous avons:
50
50
D A B A E X X U B E R A N T , P E N S A N T , A TR A B I L E
Pressez d'abord ::0, touche de liste. La touche OJ affiche la ligne entière puis vous ramène
à son début.
Déplacement du curseur
(Tou�hes d'espacement,
G
et CID)
Pressez plusieurs fois la touche d'espacement. Cette touche fait avancer le curseur. Pour
revenir en arrière, pressez B. En mode d'édition, il faut noter que B fait revenir en arrière.
Elle n'annule pas les caractères.
Venez au début de la ligne 50 et pressez ® et la touche d'espacement. Vous avancez
ainsi de 5 espaces, d'un seul coup. Faites de même avec 8. Pressez un nombre, CID par
exemple, et a pour reculer d'autant d'espaces.
Venez au début de la ligne 50. Pour revenir au premier E, pressez CID (recherche). Tapez
E (caractère que vous recherchez) Vous pouvez venir au deuxième E de deux manières.
•
Tapez Œ pour chercher le premier E après la position courante du curseur.
•
Revenez au début 2 CID E .
Changement de caractéres
(Touche ©)
Faites votre premier changement à la ligne 50. Changez DABA pour avoir DATA:
1.
Venez au caractère "erroné" (B de DABA).
2.
Pressez © pour changer.
3.
Tapez le nouveau caractère (dans ce cas, T).
4.
Pour vous assurer que le changement est fait, pressez le OJ; vous obtenez:
50
DATA E X X U B E R A N T , P E N S A N T A T R A B I L E
Vous voulez maintenant changer PENSANT pour avoir CAUSANT. Cette fois-ci, vous devez
changer 3 caractères à la fois:
1.
Venez au premier caractère erroné (le P de PENSANT).
2.
Pressez 3 © pour changer trois caractères.
3.
Tapez les trois nouveaux caractères (CAU). La ligne 50 se présente ainsi:
50
82
DATA E X XU B E RA N T , C A U S A N T ATRAB I L E
14 / ÉDITION DES PROGRAMMES
Si vous en aviez fini avec la ligne 50, vous pourriez presser � et sortir du mode
d'édition. Vous pouvez cependant voir que vous avez encore du travail!
Annulation de caractères
(Touche CID)
Vous devez annuler un caractère qui est un des X de EXXUBERANT.
1.
Venez jusqu'au caractère en cause qui est le deuxième X de EXXUBERANT.
2.
PresseL CID pour
3.
Voilà qui est fait. Pour vous en assurer, pressez de nouveau CC
50
annuler.
DATA E X U B E R A N T , C A U S A N T ATR A B I L E
Vous pouvez annuler plus d'un caractère à la fois. Par exemple, si vous pressez 4 @, vous
annulez quatre caractères d'un seul coup.
Insertion de caractères
(Touche CD)
Vous devez maintenant insérer des caractères: ATRABILE doit devenir DEMO NSTRATI F OU
ATRABILE.
1.
Venez au point où vous voulez insérer des caractères, c'est-à-dire à l'espace avant le
A de ATRABILE.
2.
Pressez CD pour passer en mode d'insertion.
3.
Tapez l'insertion: D E M O N S T R A T I F o u
À ce point, vous êtes encore e n mode d'insertion. Par exemple, s i vous pressez l a touche
d'espacement, vous insérez un espace; si vous pressez CD, vous insérez un L. Par
conséquent, vous devez:
1.
Presser �3J pour sortir du mode d'insertion.
2.
Vous pouvez maintenant presser
50
CD
pour lister la ligne:
DATA E X U B E R A N T , C A U S A N T DEMONSTR A T I F O U ATRAB I L E
Destruction de caractères
(Touche ŒD)
VoLs pouvez modifier une ligne en détruisant sa fin et en insérant les nouveaux caractères.
Essayez de modifier la ligne 50.
1.
Venez au premier caractère à éliminer. Le A de ATRABILE.
2.
Pressez ŒD pour modifier. Vous éliminez ainsi le reste de la ligne et vous vous mettez
en mode d'insertion.
3.
Tapez l'i nsertion. (Dans ce cas, tapez VOLUBILE.)
4.
Pressez Cfil!IIT)GJ pour sortir du mode d'insertion.
5.
Si vous pressez maintenant (]J pour lister la ligne, vous avez
50
D A T A E X U B E R A N T , C A U S A N T , D E M O N S T R A T I F OU VO
3: "
83
1 4 I ÉDITION DES PROGRAMMES
Élimination de caractères
(Touche ŒJ)
La touche ŒJ est presque le contraire de ŒD. Elle élimine tout jusqu'à la nfl apparition d'un
caractère. Supposons par exemple que vous désirez éliminer la première moitié de la ligne
5_0 jusqu'à la virgule.
1.
Venez au début de la ligne 50 et pressez ŒJO
2.
Listez la ligne
50
50;
vous avez:
CAUS A N T , D E MON S T R A T I F O U V O L U B I L E
Extension de caractères
(Touche OO)
Vous désirez peut-être "étendre" la ligne
50:
1.
Pressez QD. Le curseur vient à la fin de la ligne et vous met en mode d'insertion.
2.
Tapez l'insertion: ET C O M M U N [ C A T I F
3.
Pressez CfillIEDCD pour
50
sortir du mode
d'insertion.
, C A U S A N T , D E M O N S T R A T I F O U V O L U B I L E E T C O M MU N I C A T I F
Annulation de lignes
(Commande DEL)
Jusqu'à présent, nous avons annu'.é simplement les lignes en p rocéd ant ainsi:
50
(ENTER)
Cette méthode est exc ellente avec une ou deux l i g n es mais comment
si vous voulez annuler 50 ou 60 lignes?
.
Pour annuler
plus
,
d'une l igne , vous pouvez utiliser la commande
DEL
vous y
prenez-vous
dont la syntaxe
D E L numéros de ligne Annule les lignes spécifiées par les numéros de ligne.
Par exemple. pour annuler les lignes 30 à
DEL 30-50 �
84
50,
tapez
est:
14 / ÉDITION DES PROGRAMMES
Renumérotation des lignes
{Commande RENUM)
La commande RENUM vous permet de changer les numéros de ligne d'un programme. Pour
vous faire une idée de RENUM, tapez ce court programme:
10
20
30
40
P R I N T " VO I C I L A P R E M I E R E L I G N E "
P R I N T "VO I C I L A D E U X I E M E L I G N E"
P R I N T "VO I C I UNE A U T R E L I G N E "
GOT0 1 0
Renumérotez maintenant les lignes en tapant:
R EN UM 1 00
(ENTERl
Listez le programme. Les nouveaux numéros de ligne commencent à 1 OO. La ligne 1 OO est
la "nouvelle lig ne".
1 j1fi
110
1 20
130
P R I N T " VO I C I L A P R E M I E R E L I G N E "
P R I N T " VO I C I L A D E U X I E M E L I G N E "
P R I N T "VOI C I UNE AUTRE L I G N E "
GOT0 1 00
Vous pouvez remarquer que la référence de numéro de la ligne GOTO est aussi renumérotée.
Renumérotez encore une iois le programme avec la nouvelle ligne 200. Tapez:
R EN UM 2 00 , 1 2 0
(ENTERl
La nouvelle ligne est ici 200, mais la renumérotation commence à la ligne 1 20. La ligne 1 20
est dite "ligne de début" .
1 00
110
200
210
P R I N T "VOI C I LA P R E M I E R E L I G N E "
P R I N T " VO I C I L A D E U X I E M E L I G N E "
P R I N T "V O I C I U N E A U T R E L I G N E "
GOTO 1 0 0
Renumérotez le programme une fois de plus en lui donnant une valeur de progression de
50 entre les lignes:
R E N U M 3 00 , , 5 0
(ENTERl
La nouvelle ligne est ici 300. Vous avez omis la ligne de début; de ce fait, le B.A.SIC renumérote
le programme entier. La valeur de progression d'une ligne à l' autre est de 50:
3 0 0.
350
400
450
P R I N T "V O I C I LA P R E M I E R E L I G N E "
P R I N T "VO I C I LA D E U X I EM E L I G N E "
P R I N T "V O I C I U N E A U T R E L I G N E "
GOTO 3 0 0
85
1 4 / ÉDITION DES PROGRAMMES
Voici la syntaxe de la commande RENUM:
R E Nu M nouvelle ligne, ligne de début, valeur de progression Sert à renuméroter
programme.
un
nouvelle ligne
Correspond à la première ligne nouvelle renumérotée.
Si vous omettez la nouvelle ligne, le BASIC utilise 1 C.
ligne de dbut
Correspond au début de la renumérotation. Si vous
omettez la ligne de début, le BASIC renumérote le
programme entier.
valeur de progression
Correspond au degré de progression entre chaque ligne
numérotée. Si vous omettez la valeur de progression, le
BASIC utilise 1 O.
Remarque: R E N U M ne change pas l'ordre des lignes.
Essayez d'autres variantes de cette commande en tapant:
R E N U M , , 20
Vous renumérotez ainsi le programme entier. La nouvelle ligne est 10 et la valeur de progression
20:
10
30
50
70
P R I N T " VO I C I L A P R E M I E R E L I G N E "
P R I N T "VO I C I LA D E U X I E M E L I G N E "
P R I N T "VO I C I U N E AUTRE L I G N E "
GOT0 1 0
Tapez m aintenant R E N U M 4 0 , 3 0 , ŒNITiD. La nouvelle ligne est ici 40, la ligne de début
30 et la valeur de progression 1 0:
10
40
50
60
P R I NT " VO I C I L A P R E M I E R E L I G N E "
P R I N T " VO I C I L A D E U X I E M E L I G N E "
P R I N T "VO I C I U N E A U T R E L I G N E "
GOTO 1 0
Tapez R E N U M 5 , 40 ŒlfiEiJ. Vous obtenez une erreur ?FC, car vous auriez mis la ligne 40
avant la ligne 1 O.
Appris au chapitre 1 4
COMMANDES
EDIT
DEL
RENUM
86
1 5 I U N Q U ESTIONNAI RE
Nous sommes presque arrivés à l a fin de l a première partie de ce livre; u n petit "questionnaire"
s'impose donc. Dans ce chapitre, vous apprendrez à utiliser les fonctions I N KEY$ et VAL
pour mettre des tests sur pied.
Contrôle du clavier
(Fonction INKEY$)
Avec INKEY$, l' ordinateur peut constamment "observer", "mi nuter" ou "contrôler" ce que
vous tapez. Sa syntaxe est:
I N K E Y $ Retourne la touche présentement pressée ou, si vous n'avez pressé
aucune touche, ne retourne rien (" ).
"
Tapez et exécutez ce programme:
A$ = I NKEY$
//
I F A $ <>" 'G6Tù
"'" !if 5 0
P R I N T "VOUS N ' AVEZ R I EN P R E S S E "
GOT0 1 0
P R I N T "VOUS A V E Z P R E S S E L A TOU C H E---" A$
10
20
30
40
50
INKEY$ vérifie e n une fraction de seconde si vous avec pressé une touche. Pendant les 20
premières vérifications au minimum, vous n'avez rien pressé (" ).
"
La ligne 1 0 libelle la touche que vous avez pressée avec A$. L'ordinateur prend ensuite une
décision:
•
•
Ajoutez
60
Si A$ est égal "à rien" (" "), il imprime VOUS N'AVEZ RIEN PRESSÉ et il revient
à la ligne 1 0 pour vérifier de nouveau le clavier.
Si A$ est égal "à quelque chose" (tout sauf " "), l'ordinateur passe à la ligne
et imprime la touche. (La notation <> correspond à "n'est pas égal à".)
cette lig n e
el exécutez
50
le prog'amme:
GOTO 1 0
Quelle que soit votre rapidité, l'ordinateJr va toujours plus vite que vous! Effacez la ligne 30
pour voir les touches que vous avez pressées.
87
15 I UN QUESTIONNAIRE
Pour battre l'ordinateur à son jeu
(Exemple avec INKEY$)
Tapez ce programme:
10
20
30
40
50
60
70
80
90
1 00
X = RND(4)
Y = RND (4)
P R I N T "QUE VAUT" X "+" Y
T = 0
A$ = I N K E Y $
T = T + 1
SOUND 1 28 , 1
IF T = 15 THEN 200
I F A$ = " " T H E N 5 0
GOTO 1 0
C LS ( 7 )
S O U N D 1 8 0 , 30
P R I NT " T R O P T A R D "
200
210
220
Le programme se déroule ainsi:
•
Les l i g nes 1 0, 20 et 30 font imprimer à l'ordinateur deux nombres au hasard et elles
vous demandent leur somme.
•
La ligne 40 fixe
•
La ligne 50 vous donne votre première chance de répondre à la questi on
•
La ligne 60 ajoute 1 à T qui est la minuterie. T est maintenant égal à 1 . La fois suivante,
quand l'ordinateur arrive à la ligne 60, il ajoute de nouveau 1 à la minuterie pOl,r
rendre T égal à 2. Chaque fois que l'ordi nateur exécute la ligne 60, il ajoute 1 à T.
•
La ligne 70 sert à produire un bip.
•
La ligne 80 indique à l'ordinateur que vous avez 1 5 chances de répondre Quand
T est égal à 1 5 , le temps accordé est écoulé. L'ordinateur vous provoque avec les
lignes 200, 2 1 0 et 220.
•
La ligne 90 indique que, si vous n'avez pas répondu , l ordinateur revient en arrière
et vous donne une autre chance.
•
L' ordinateur ne va à la li g ne 1 OO que si vous répondez. La ligne 1 OO renvoie
l'ordinateur en arrière pour vous présenter un autre problème.
T
à O. T est une minuterie.
.
.
'
Comment pouvez-vous décider l ' ordinateur à vous donner trois fois plus de temps pour
répondre à chaque question?
Réponse:
Changez la ligne suivante:
80
88
IF T = 45 THEN 200
1 5 / UN QUESTIONNAIRE
Vérification des réponses
(Fonction V AL)
Comment l 'ordinateur peut-il vérifier si à vos réponses sont justes? Essayez ce programme:
1 00
0
1 20
130
1 40
11
I F A $ :;: X + Y T H E N 1 3 0
P R I N T " FAU X "d' X " + " Y " :;: " X + Y
GOTO 1 0
PRINT "JUSTE"
GOT0 1 0
Si vous exécutez ce programme et réépondez à temps, vous obtenez ce message d'erreur:
?
T M E R RO R I N
100
En effet, vous ne pouvez pas rendre une chaîne (A$) égale à un nombre (X + Y). Vous devez
changer A$ en nombre.
À cet effet, le BASIC possède la fonction VAL dont la syntaxe est:
vA L
Changez
100
(chaîne)
Retourne la valeur numérique de la chaîne.
la li gn e 1 OO en tapant:
I F V A L C A $ ) :; X + Y T H E N 1 3 0
VAL(A$) convertit A$ à sa valeur numérique. Si A$ est égal à la ch � e "5", VAL(A$) est égal
au nombre 5. Si VAL(A$) est égal à la chaîne "C", VAL(A$) est égal au nombre O. ("C" n'a
pas de valeur numérique.)
Pour rendre le programme encore plus intéressant, changez ces lignes:
10
20
90
1J/,
X :;: R N D ( 4 9 ) + 4
Y :;: R N D ( 4 9 ) + 4
B $ :; B $ + A $
I F V A L C B $ ) :;: X + Y T H E N
130
89
1 5 / UN QUESTIONNAIRE
Ajoutez ensuite ces lignes:
45
95
8 $ = 1 1 11
I F L E N C B $ ) <> 2 T H E N 5 0
Test de dactylographie avec l ' ordinateur
(Exemple avec INKEY$)
Ce programme vérifie votre rapidité de frappe:
C LS
I N P UT " P R E S S E Z < E N T E R > S I V O U S E T E S P R E T A T A P E R C E T T E
P H RA S E " ; E $
P R I NT "VO I C I L E MOMENT POUR TOUS L E S HOMMES"
30
40 T = 1
50 A$ = I NKEY$
60
I F A$ = " " THEN 1 0 0
70
P R I NT A $ ;
80 B$ = B$ + A$
I F LEN ( B $ ) = 3b T H E N 1 2 0
90
T = T + 1
1 00
110
GOTO 5 0
10
20
1 20
130
1 40
150
1 60
S = T/74
M = S / 60
R = 8/M
PRINT
P R I N T "VOUS T A P E Z A--"R"--MOT S / M I N "
La ligne 40 fixe la min uterie T à 1 .
La ligne 50 vous donne votre première chance de frapper une touche (A$). S i vous n'êtes
pas assez rapide, �a ligne 60 envoie le programme la ligne 1 OO et ajoute un à la minuterie.
La ligne 70 imprime la touche que vous avez tapée.
90
15 / UN QUESTIONNAIRE
La ligne 80 forme la chaîne B$. Chaque fois que vous frappez une touche (A$), le programme
l 'ajoute à B$. Par exemple, si vous avez d'abord frappé la touche "V" , vous obtenez:
A$
et
B$
B$
B$
= "V"
= B$ + A$
= ,, + ''V "
= "V"
••
Si vous frappez ensuite la touche "O", vous obtenez:
A$
et
B$
B$
B$
= "O"
= B$ + A$
= "V" + " O "
= " VO"
Si vous frappez ensuite la touche " I " , vous obtenez:
11111
A$ =
et
8$ = "VO" +
B$ = "VO i"
0111
Quand la longueur de 8$ arrive à 3 6 (longueur de VOICI LE MOMENT PO UR TOUS LES
HOMMES), le programme suppose que vous avez fini de taper l'expression et il rasse à la
ligne 1 20 pour calculer le nombre de mots par minute.
Les lignes 1 20, 130 et 1 40 calculent votre vitesse de frappe. Elles divisent T par 74 (pour
obten ir le nombre de secondes) et S par 60 (po ur obtenir la vitess e à la minute). Elles divisent
ensuite les mots par M pour obtenir le nombre de mots par minute.
Appris au chapitre 1 5
MOTS BASIC
INKEY$
VAL
91
PARTE 2 I U N PEU DE DÉTENTE
E n avez-vous assez des éléments du BASIC? Dans cette partie, nous allons nous détendre
un peu et apprendre à:
•
Composer une chanson.
•
Dessiner une image.
•
Participer à un jeu avec les bâtons de commande.
93
1 6 I DE LA M USIQUE
Dans ce chapitre, vous faites connaissance avec la commande PLAY qui vous permet d'écouter
quelques airs de musique
.
La syntaxe de PLAY est:
P L A Y chaÎne Joue la chaÎne. La chaîne peut comprendre les options suivantes:
note (lettre de "A" à "G" ou nombre de 1 à 1 2).
octave (0 sui vie d'un chiffre de 1 à 5). Si vous omettez l'octave, l'ordinateur utilise
l' octave 2.
durée de note (L suivie d'un nombre de 1 à 255). Si vous omettez la dure de
note, l'ordinateur utilise la durée courante.
tempo (T suivie d'un nombre de 1 à 255). Si vous omettez le tempo, l'ordinateur
utilise T2.
volume (V suivie d'un nombre de 1 à 31). Si vous omettez le volume, l'ordinateur
utilise V15.
durée de pause (P suivie d'un nombre de 1 à 255).
sous-chaînes. Faites précéder les sous-chaînes d'un X et faites-les suivre d'un
point virgule Exemple: XA$;
-
.
95
1 6 / DE LA MUSIQUE
Notes
(Option NOTE)
Vous pouvez spécifier une note de musique de deux manières. Avec la première, entrez la
lettre de la note: A, B, C, D, E, F ou G (do, ré, mi, fa, sol, la, si ou do). Pour. indiquer une
note dièse, faites·la suivre du signe plus ( + ) ou du signe de la livre (#). Pour indiquer une
note bémol, faites-la suivre d'un signe moins ( ).
-
Par exemple, A représente le A (la) natu rel, A# le A dièse et A - le A bémol. Tapez les
commandes suivantes pour comprendre les différences entre les notes:
P L A Y " A " (ENTER)
P L A Y " A ; "# 1ENTER)
P LA Y "A ; A ; A# ; A ; A " 1ENTERl
-
-
Vous pouvez aussi spécifier une note de musique à l'aide d'un nombre entre 1 et 1 2 , précécé
de la lettre N . (Vous pouvez omettre N si vous le désirez.)
4
2
3
96
7
5
6
9
8
11
10
12
1 6 I DE LA MUSIQUE
Par exemple, pour écouter la gamme complète des 1 2 tonalités, exécutez le programme
"Gamme" suivant:
5
C LS
10
FOR N = 1 à 1 2
15
P R I N T "NOTE# " ; N
20
P L A Y STR$ ( N )
30 NEXT N
Ajoutez un retard dans le programme pour pouvoir comparer les nombres aux notes à mesure
que la gamme progresse de 1 à 1 2 (C à B).
25
F O R I = 1 TO 5 0 0 : N E X T I
PLAY n'accepte pas la notation B# ou C - . Remplacez 3# par C et C - par B.
EXERCICE� /6-
1
Modifiez le programme "Gamme" pour qu'il aille dans l'ordre décroissant (au lieu
de l'ordre croissant).
Rondes, blanches, noires . . .
(Option LONGUEUR DE NOTE)
Le programme "ga11me" ne spécifiant pas la longueur de note, l'ordi nateur utilise
automatiquement des noires qu i représentent la "valeur courante" initiale.
Pour spécifier une longueur de note différente, utilisez L suivie d'un nombre de 1 à 255. Par
exemple, 1 correspond à une ronde, 2 à une blanche, 4 une noire, 8 à une simple croche,
1 6 à une double croche, etc.
Lnombre
Longueur de note
L1
L2
L3
L4
L16
L32
L64
Ronde
Blanche
Noire po nte
Noire
Simple croche
Double croche
Tri pie croche
Quadruple croche
L255
Ronde/255
L8
Note
0
d
J.
_.
"
)
Faites varier les longueurs de note pour obtenir un roulement de tambour. Tapet:
P LA Y
11
L 2 ; A ; L 4 ; A ; A ; L 2 ; A ; A " (ENTERl
Avez-vous remarqué que vous n'avez pas répété l' option L pour chaque no:e? PLAY utilise
valeur courante de note jusqu'à ce que vous entriez une autre commande L pour la changer
la
Essayez donc de reproduire trois notes de ronde/255:
P L A Y " L 2 5 5 ; A ; A ; A - " CENITËD
Voilà un staccato impressionnant!
97
1 6 / DE LA MUSIQUE
Notes pointées
(Notation de LONGUEUR DE NOTE ' ' . ' ')
Le point indique d'augmenter la longueur de la note de la moitié de sa valeur normale. Par
exemple une noire pointée vaut une noire et demie.
Vous pouvez reproduire une telle note en ajoutant un point (.) ou une série de points ( . . . ) à
la longueur de note (L). Chaque point augmente la longueur d'une note de la moitié de sa
valeur normale. Par exemple:
P L A Y L 4 . ; A Œ1'i.'ŒID
Ce programme joue une noire et demie (1 /4 + 1 /8
=
318 de note).
Essayez ce programme:
P LA Y " L4
•
;
A ; L 8 ; C ; L 4 ; E ; L 8 ; C ; E ; C ; E ; C ; L 4 ; A " (ENTER 1
•
Octaves
(Option OCTA VE)
La lettre 0 suivie d'un chiffre de 1 à 5 permet de changer d'octave. Si vous ne spécifiez pas
l' octave, l'ordi nateur utilise automatiquement l'octave 2 qui comprend do (middle C).
Essayons par exemple de reproduire une gamme de do simple:
P L A Y " C D E F G A B A G F E D C B A " CEN:ŒiD
Oue s' est-il passé? G (sol) est la note la plus élevée de l ' octave 2. Quand l'ordinateur arrive
à A (la), il recommence au début de l 'octave. Pour passer à l'octave 3, essayez:
P L A Y " C C D E F G ; 0 3 ; A B A 0 2 ; F E D C B A " (ËNTERl
98
16 / DE LA MUSIQUE
Volume
(Option VOLUM E)
Pour régler le volume, utilisez V suivie d u n nombre de 0 à 3 1 . Si vous ne spéc ifiez pas la
valeur de V, l ' o rdi nate ur utilise V15.
'
Excutez par exemple le programme suivant:
5
C LS
P LAY "V 5 ; A ; V 1 0 ; A ; V 1 5 ; A ; V20 ; A ; V25 ; A ; V30 ; A"
10
GOT0 1 0
20
Quand vous en aurez entendu assez, presser �
.
Un peu de repos
(Option PAUSE)
Pour placer une pause entre les notes, utilisez P suivie d'un nombre de 1 à 255. Les longueurs
de pause correspondent aux longueurs de note, mai s elles se distinguent par une différence
importante. Vous ne pouvez pas utiliser de points avec P. En contrepartie, vous pouvez taper
une série de pauses. Par exemple, pour une pause de 3f8, tapez P4P8.
Changez la ligne 1 0
10
du
dern i er programme pour avoir:
P L A Y " V S ; A ; P 2 ; V 1 0 ; A ; P 2 ; V 1 5 ; A ; P 2 ; V 20 ; A ; P 2 ;
V2 5 ; A ; P 2 ; V3 0 ; A ; P 2 "
Tempo
(Option TEMPO)
Vous pouvez augmenter ou diminuer le tempo avec T suivie d un nombre de 1 à 255. Si vou s
ne précisez pas le tempo, l'ordinateur utilise automatiquement T2.
'
Notre programme a maintenant l'aspect suivant:
5 C LS
P L A Y " V S ; A ; P2 ; V 1 0 ; A ; P2 ; V1 S ; A ; P2 ; V 20 ; A ; P2 ;
10
V 2 5 ; A ; P2 ; V3 0 ; A ; P 2 "
GOT0 1 0
20
Ralentissez le tempo en changeant la ligne 1 0 pour avoir:
10
P LAY "T1 ; VS ; A ; P 2 ; V 1 0 ; A ; P 2 ; V1 5 ; A ; P 2 ; V2 0 ; A ; P 2 ;
V 2 5 ; A ; P 2 ; V3 0 ; A ; P 2 "
Accélérez-le maintenant en remplaant T1 par T1 5. Q u en pensez-vous?
'
99
1 6 / DE LA MUSIQUE
Sous-chanes
(Option SOUS-CHAINE (X))
PLAY posséde une option de sous-chaîne qui permet d'exécuter une sous-chaîne, de revenir
à la chaîne initiale et de la terminer.
La fonction d'exécution se présente sous cette forme:
XA$;
La variable A$ contient une chaîne d'options normales de reproduction. X indique à l'ordinateur
de jouer (PLAY) la chaîne d'options stockées dans A$.
Changez la disposition du programme de démonstration pour qu'il exécute une sous-chaîne:
5
10
20
30
40
C LS
A$ = "A; A#; A-"
8 $ = "05 ; XA$ ; "
C$ = "01 ; X A $ ; X B $ ; "
P L A Y C$
Passez le programme et suivez son exécution.
Remarque: Quand vous utilisez la fonction de sous-chaîne, un point-virgule (;) doit
suivre le signe du dollar ($). Dans cet exemple, vous pouvez annule· tous les autres
points-virgules.
Encore une note
(+ , - , < , > )
Non, nous n'avons pas une nouvelle note de musique en tête, mais nous avons une dernière
idée sur l'utilisation de certaines options de PLAY.
Avec 0 (octave), V (volume), T (tempo) et L (longueur de note), vous pouvez utiliser un des
suffixes suivants au lieu d'ajouter u n nombre:
Suffixe
Objet
+
Ajoute 1 à la valeur courante.
Soustrait 1 de la valeur courante.
Multiplie la valeur courante par 2 .
Divise l a valeur courante par 2.
>
<
Familiarisez-vous avec ces fonctions à J'aide du programme de démonstration.
5
C LS
PLAY "T2"
10
20
P LAY " A ; A # ; A-"
GOTO 20
30
La ligne 1 0 établit l e tempo. Exécutez une fois l e programme pour "habituer votre oreille".
Rien n'a changé. I nsérez maintenant T à la ligne 20.
20
P L A Y " T + ; A ; A # ; A -"
Exécutez le programme. Le signe plus augmente automatiquement la valeur T de 1 à chaqLe
exécution de la ligne 20.
100
16 / DE LA MUSIQUE
Diminuez maintenant le tempo à l'aide d'un signe moins ( - ) :
CLS
5
PLAY "T255"
10
20
P L A Y " T - ; A ; A# ; A -"
GOTO 2 0
30
La multiplication ne va+elle pas plus vite que l'addition? À la ligne 1 O. remettez le tempo
à 2. Changez T à la ligne 20 à T>. et laissez les choses suivre leur cours.
10
20
P LA Y " T 2 "
P LA Y " T > ; A ; A # ; A - "
Vous avez donc commencé par T2. L'ordinateur a multiplié cette valeur par 2 pour donner
4, 4 x 2 donne 8, 8 x 2 donne 1 6 , et ainsi de suite jusqu'à 255.
Vous pouvez ralentir tout aussi rapidement en divisant le tempo courant par 2 avec
10
20
"<".
PLAY "T255"
P L A Y " î " < ; A ; A # ; A -"
N 'oubliez pas que vous pouvez faire de même avec
note, le volume et l'octave.
L,
V et 0 pour changer la longueur de
Dormez en paix, Monsieur Beethoven
(Exemple avec la commande PLAY)
Après tout ce dur travail, vous méritez de vous détendre en musique. Tapez le programme
suivant et essayez de trouver à quel air de musique il correspond.
101
1 6 I DE LA MUSIQUE
5
C LS
1 00
A $ = "T 5 ; C ; E ; F ; L 1 ; G ; P 4 ; L 4 ; C ; E ; F ; L 1 ; G "
8$ = " P 4 ; L 4 ; C ; E ; F ; L2 ; G ; E ; C ; E ; L 1 ; D "
1 05
110
C $ = " P8 ; L4 ; E ; E ; D ; L 2 . ; C ; L4 ; C ; L2 ; E "
D $ = " L 4 ; G ; G ; G ; L1 ; F ; L 4 ; E ; F "
115
E$ = " L 2 ; G ; E ; L 4 ; C ; L8 ; D ; D + ; D ; E ; G ; L 4 ; A ; L 1 ; 03 ; C "
1 20
1 25
X$ = " X A $ ; X B $ ; X C $ ; X D $ ; X E $ ; "
PLAY X$
130
Avez-vous reconnu cette chanson? Donnez-lui u n peu plus d'allure e n ajoutant ces lignes:
10
20
30
35
40
45
50
55
60
65
70
PRINT
P R I NT
P R I NT
PRINT
FOR X
C LS
PRINT
P R I NT
PRINT
PRINT
PRINT
@
@
@
@
=
96, STRING$ (32 , "*")
1 67 , " W H E N T H E S A I N T S "
232 , "GO MARC H I N G I N "
2 8 8 , STRING$ (32 , "*")
1 TO 5 0 0 : N E X T X
@
@
@
@
@
1 28 ,
1 69 ,
192,
224,
256,
"OH WHEN THE SA INTS"
"OH WHEN THE SA INTS"
" O H W H E N T H E S A I N TS G O M A R C H I N I N"
" Y E S I W A N T T O BE IN T H A T N U M B E R "
" W H E N T H E S A I N TS G O M A R C H I N I N "
Exécutez le programme et chantez en choeur avec votre ordi nateur couleur. Cela vous a
tellement plu que vous voulez recommencer! Très bien, ajoutez les lignes suivantes:
1 50
1 60
1 65
1 70
175
1 80
1 85
CLS
P R I N T @ 1 3 0 , "ENC ORE UNE FOI S , S . V . P . "
F O R X = A TO 5 0 0 : N E X T X
C LS
P R I N T @ 2 3 3 , " J E N E D E M A N D E Q U E C A éi! "
F O R I = 1 TO 5 0 0 : N E X T I
GOTO 5
EXERCICE 1 6-2
Notre interprétation de "Saints" est assez bonne, mais elle ne ressemble pas au
style du jazz de la Nouvelle-Orléans. Modifiez-la pour l'adapter à vos préférences
musicale::;. Essayez de changer des octaves ou d'ajouter quelques dièses ou bémols.
EXERCICE 1 6-3
Essayez vos propres arrangements musicaux. Nous en avons inclus plusieurs dans
les exemples de programmes de la fin de ce livre.
Appris au chapitre 1 6
MOT BASIC
PLAY
102
1 7 I DES I MAGES
Dans ce ct1aµitre, vous apprenez à dessiner une image sur l 'écran de texte à basse définition.
Vous commencez par placer un point minuscule sur l'écran. Vous y placez ensuite plusieurs
points. Enfin, vous combinez ces points pour faire une image.
Avant de commencer, il faut que vous sachiez que ce chapitre explique la méthode la plus
primitive de dessin sur l'écran. Les parties 3 et 4 de cet ouvrage aborden: les possibilités
plus perfectionnées de graphiques de l'ordi nateu couleur.
Placement d'un point
(Commande SET)
La commande SET sert à placer un point sur l'écran. Sa syntaxe est:
s E T (x,y,c) Place un point sur l 'écran de texte à basse définition à la colonne x,
rangée y, avec la couleur c. x est un nombre de 0 à 63, y un nombre de 0 à 31
et c un nombre de 0 à 9.
Vous ne pouvez utiliser SET qu'avec l'écran de texte à basse définition. Passez donc à cet
écr::in en tapant:
W I D T H 3 2 [ENTER)
Tapez ensuite le programme suivant
10
20
30
et
exécutez-le:
CLS(0)
SE T C 0 , 0 , 3 )
GOTO 30
Voyez-vous le point bleu dans l e coin supérieur gauche? Pour placer u n point dans l e coin
inférieur droit, changez la ligne 20 et exécutez le programme:
20
S E T ( 63 , 3 1 , 3 >
Voulez-vous placer le point au centre? Utilisez la lignP.
20
20
suivante:
S E T (3 1 , 1 4 , 3 )
SET indique à l'ordinateur de placer u n point sur l 'écran de texte à basse définition de 32 x 1 6.
103
17 /
DES IMAGES
Les deux premiers nombres précisent les positions de colonne et de rangée, avec la grille
SET/RESET suivante:
,,
H-H-H-t-+-t-+-+-+-+-+-+-+-+-+-+++H
..
,,
..
H-t-+-t-+-+-+-+-+-++++-+-+-+-+�
H-H-H-l-4-...+++++-+-+-+-+-+-+-+-+-+-+�
"
"' H-t-+-++++++-++-+-+++-+-+-+-+-+-+-+-+-+�
" H-++++++-++-+-+++-+-+-+-+-+-+-+-+-+�
" H-++++++-+-+++-+-+-+-+-+-+-+-+-+-+-+�
1-+-1-+-1-+-+-+-+-+-H-+-+-+-+-H-++++-l-l--l
"
,.
l-+-H-+-+-+-+-H-+-+-+-+-+++-+-++-l--1--l
"
" H-H-t-t-t-1-t-t-H-H-t-+-t-+-t-+-t-+-++++-+-+-+-H
t-t-H-H-t-1-t-t-H-t-+-++++-+-+-++
,.
" l-+-1-+-+-+-t-t-+-+-+-+-++++-++-+-H
1-+-+-+-+-+-H-+-+-+-+-+-+-+-+-++++-l-l--l
Le
dernier nombre spécifie la couleur, suivant la palette de la table ci-dessous:
Utilisation de
la
Table 17-1
palette avec la commande SET
N uméro de couleur
Case de palette
0
8
1
2
3
4
5
6
7
8
0
1
2
3
4
5
6
7
Cou leu r standa rd
Noir
Vert
Jaune
Bleu
Rouge
Chamois
Turquoise
Lil:iS
Orange
SET utilise la palette de la même manière que CLS. Par exemple, SET(3 1 , 1 4,8) et CLS8
produisent toutes deux la même couleur qui correspon d à l'orange (couleur standard).
104
1 7 / DES IMAGES
Placement de deux points
(Blocs dans la grille SET/RESET)
Pour placer deux points sur un écran de texte, vous devez planifier. Pour vous en rendre
compte, exécutez quelques programmes. Tapez et exécutez le suivant:
10
20
30
40
C L S0
SETC32 ,14, 3)
SET C33 , 1 4 , 3 >
GOTO 40
Vous devez avoir maintenant deux points bleus côte à côte au milieu d e l'écran. Changez
la couleur du point de droite de façon à avoir un point bleu et un point rouge. Tapez:
30
S E T C 33 , 1 4 , 4 )
Exécutez de nouveaL le programme. Cette fois ci, les
deux points sont rouges.
Revenez à la grille que nous avons vue dans ce chapitre. Vous pouvez remarquer que les
traits plus foncés groupent les points en "blocs". Chaque bloc contient quatre points. Par
exemple, le bloc du milieu de la grille comprend les qua:re points suivants:
Position
Position
Position
Position
Horizontale
Verticale
32
33
32
33
14
14
15
15
Chaque point dans un bloc doit avoir la même couleur que les autres ou être noir.
La 1 gne 30 demande à l'ordinateur de placer deux points de couleurs différentes (rouge et
bleu) dans le même bloc. L'ordinateur ne pouvant pas donner à ces points des couleurs
différentes, il leur attribue la deuxième couleur qui est le rouge.
Tapez et exécutez ce programme:
30
SET C34 , 1 4 , 4 )
Le µoint de la position 34, 1 4 étant dans un bloc différent, l'ordinateur peut établir deux points
de couleur différente.
105
1 7 I DES IMAGES
Le visage de l 'ordinateur
(Exemple avec SET)
Dans cet exemple, nous utilisons SET pour dessiner le visage de l'ordinateur. Assurez-vous
d'abord que votre ordinateur est réglé pour les couleurs standard.
•
•
Si vous avez un écran RGB (rouge/vert/bleu), tapez PALETTE RGB �
·
Si vous avez un écran CMP (à signal complet) et si vous utilisez la commande
PALETTE pour modifier la palette, tapez PALETTE CMP (ENTER)
Tapez les lignes suivantes pour créer le haut et le bas du visage:
5
C LS0
F O R H = 1 5 TO 48
10
SET ( H , 5 , 5 )
20
SE T ( H , 2 0 , 5 )
30
40
N EXT H
Exécutez le programme. L'écran a l'aspect suivant. (Les traits sont chamois, plutôt que blancs.)
106
17 /
DES IMAGES
Les lignes 1 O et 40 établissent une boucle FOR/NEXT pour H , avec les positions horizontales
1 5 à 48 pour les traits du haut et du bas. La ligne 20 fixe le trait supérieur. La ligne 30 établit
le trait inférieur.
PoJr établir les côtés gauche et droit du visage, tapez les lignes suivantes:
50
60
70
80
FOR V = 5 T0 20
S ET C 1 5 , V , 5 )
S E T < 48 , V , 5 )
NEXT V
Pour avoir un nez orange, tapez:
90
SET C32 , 1 3 , 8)
Pour avoir une bouche rouge, tapez:
1 00
110
1 20
F O R H = 2 8 T0 3 6
SET(H,1 6,4)
NEXT H
Pour avoir des yeux bleus, tapez:
130
1 40
150
S ET ( 2 5 , 1 0 , 3 )
S E T ( 38 , 1 0 , 3 )
GOTO 1 50
Exécutez le programme. L'écran a maintenant l' aspect suivant:
Un clin d'oeil de l 'ordinateur
(Commande RESET)
Avec la commande RESET, l'ordinateur peut vous faire un clin d'oeil. La syntaxe de RESET est:
R E s ET x,ye Enlève un point de l'écran de texte à basse définition à la colonne
x, rangée y. x est un nombre de 0 à 63 et y un nombre de O à 31 .
Tapez:
1 50
RESET C3 8 , 1 0 )
Exécutez le programme. Le visage est le même, mais son oeil droit manque. RESET a enlevé
le point qui correspond à l'oeil droit à la position 38, 1 O.
Pour faire clignoter !'oeil, placez et enlevez le point en ajoutant la ligne suivante:
1 60
GOT0 1 4 0
107
1 7 / DES IMAGES
Appris au chapitre 1 7
COMMANDES
SET
RES ET
108
1 8 I BÂTONS DE COMMANDE
Si vous possédez des bâtons de commande, branchez-les dans l'arrière de votre ordinateur.
fis ne peuvent se brancher que dans les accès corrects; vous ne risquez pas de mal les
brancher.
Ce chapitre explique l' utilisation des bâtons de commande dans un programme BASIC. Si
vo�s n'avez pas de bâtons de commande, sautez ce chapitre.
'.
- · -'
I
.·
_.,,-...
,
; \
Les manettes
(Fonction JOYSTK)
La fonction JOYSTK sert à trouver fa position des commandes flottantes des bâtons de
commande. La syntaxe de JOYSTK est:
J o Y s T K(n) Retourne fa position de n, manette de l'un des bâtons de commande.
n est un nombre de O à 3:
n 0 Coordonnée horizontale du bâton de commande de droite.
n 1 Coordonnée verticale du bâton de commande de droite.
n 2 Coordonnée horizontale du bâton de commande de gauche.
n 3 Coordonnée verticale du bâton de commande de gauche.
=
=
=
=
Exécutez le bref programme suivant pour comprendre JOYSTK:
10
20
30
40
50
60
W I DT H 3 2
PRINT @ 0, JOYSTK C0) ;
P R I N T @ 5 , J OY S T K C 1 ) ;
PRINT @ 1 0 , JOYST K C 2 ) ;
PRINT @ 1 5 , JOYST K (3 ) ;
GOTO 2 0
109
18 / BÂ TONS DE COMMANDE
Voyez-vous les quatre nombres sur l'écran? Ils correspondent aux positions horizontale s et
verticales des manettes des deux bâtons de commande.
Prenez la manette du bâton de commande de droite (branché dans la prise de bâton de
commande de droite (RIGHT JOYSTI CK), à l'arrière de l ' ordinateur). Maintenez-la dans l 'axe
central et déplacez-la de la gauche vers la droite. Le premier nombre de l'écran passe
successivement par toutes les valeurs de 0 à 63.
Déplacez maintenant la manette du bâton de commande de gauche de la gauche vers la
droite. Sur l'écran, le troisième nombre change.
Déplacez maintenant les manettes des deux bâtons de commande de haut en bas, en les
maintenant dans l'axe central. Le déplacement de haut en bas de la manette du bâton de
droite fait passer le deuxième nombre de 0 à 63. Le déplacement de haut en bas de la manette
du bâton de gauche fait passer le quatrième nombre de 0 à 63.
L'ordinateur lit les positions des bâtons de commande de la façon suivante:
JOYSTK(O) et JOYSTK(1 ) lisent les positions du bâton de commande de droite:
•
JOYSTK(O) lit la coordonnée horizontale (mouvement de gauche à droite).
•
JOYSTK(1) lit la coordonnée verticale (mouvement de haut en bas).
JOYSTK(2) et JOYSTK(3) lisent les positions du bâton de commande de gauche.
•
JOYSTK(2) lit la coordonnée horizonta le.
•
JOYSTK(3) lit la coordonnée verticale.
Pour la lecture des bâtons de commande, il faut d'abord lire JOYSTK(O). Pour vous en rendre
compte, annulez la ligne 50 et exécutez le programme. Il tourne de façon presque identique,
mais il ne lit pas JOYSTK(3), coordonnée verticale du bâton de commande de gauche.
Annulez
60
la ligne 20 et changez la ligne 60:
GOTO 30
Exécutez l e programme et déplacez les manettes des bâtons. Cette fois-ci, l e programme
ne donne rien. L'ordinateur ne peut lire les coordonnées que s'il est commandé par JOYSTK(O).
Tapez les lignes suivantes et exécutez le programme:
20
60
A = J O Y S T K ( 0)
GOTO 20
L'ordinateur n'imprime pas les coordonnées de JOYSTK(O), mais i l les lit quand même. De
ce fait, il peut lire les coordonnées de l'autre bâton de commande. Pour l i re JOYSTK(1),
JOYSTK(2) ou JOYSTK(3), il faut d'abord commence: par JOYSTK(O).
110
18
/ BÂ TONS DE COMMANDE
La peinture avec les bâtons de commande
(Exemple avec JOYSTK)
Tapez et exécutez le programme suivant:
10
20
30
40
80
90
CLS(0)
H = JOYS TK ( 0 )
V = JOYSTK ( 1 )
I F V > 31 T H E N V = V - 3 2
SET C H , V , 3 )
GOTO 20
Vous pouvez peindre une image à l'aide du bâton de commande de droite. (Déplacez lentement
la manette pour que l 'ordinateur puisse lire ses coordonnées).
La ligne 20 lit la position horizontale H du bâton de commande de droite. Cette position peut
correspondre à un numéro de 0 à 63.
La ligne 30 lit la position verticale (V) qui peut aussi être un nombre de 0 à 63. La position
ver.icale la plus haute de l'écran étant 3 1 , on a besoin de la ligne 40 qui ·end V toujours
égale à un nombre de 0 à 3 1 .
La ligne 8 0 établit u n point bleu à H et V.
La ligne 90 revient pour tirer les positions horizontale et verticale suivantes des bâtons de
commande.
Ce programme n'utilise que le bâton de commande de droite. Vous pourriez peut-être utiliser
le bâton de gauche pour la couleur. Ajoutez les lignes suivantes et exécutez le programme:
50
60
70
80
C = JOYSTK C2)
I F C < 31 THE N C = 3
I F C > = 31 THEN C = 4
S ET C H , V , C )
Déplacez le bâton de commande de gauche vers la droite; l'ordinateur rerd C égale à 4.
Les points établis sont rouges. Déplacez le bâton de commande vers la gauche et l'ordinateur
rend C égale à 3. Les points établis sont bleus.
111
18 / BÂ TONS DE COMMANDE
Boutons des bâtons de commande
(Fonction BUTTON)
Voulez-vous utiliser les boutons des bâtons de commande? Ajoutez les lignes suivantes au
programme:
I F BUTTON ( 0 ) = 1 T H E N 1 0
90
1 0 0 GOTO 20
Exécutez le programme et commencez à "peindre". Pressez le bouton de commande de
droite pour effacer l'écran et recommencer. (Si vous avez un bâton de commande à deux
boutons, pressez celui de droite).
La syntaxe de la fonction BUTION est:
B u T T O N (n) Retourne un 1 si le bouton n est en fonction et un O s'il est hors fonction.
n est un nombre de O à 3.
n = 0 Bouton 1 de droite (ou bâton de commande à un bouton)
n = 1 Bouton 2 de droite
n = 2 Bouton 1 de gauche (ou bâton de commande à un bouton)
n 3 Bouton 2 de gauche
=
Appris au chapitre 1 8
FONCTIONS
JOYSTK
BUTION
112
ADDENDUM
CHAPITRE 18
LE PROF.
INFORMATISÉ PARLANT
LE PROF.
INFORMATISÉ PARLANT
Qui dit qu'un ordinateur ne parle pas? Sa voix toutefois ressemblera à la vôtre. Vous pouvez
faire parler votre ordinateur en utilisant une bande enregistrée de votre voix. Vos programmes
seront bien plus intéressants et amusants s'ils peuvent vous répondre. Commençons.
Débranchez le câble à trois fiches qui réunit votre magnétocassette à votre ordinateur. Branchez
un microphone dans votre magnétocassette s'il n'en possède pas un intégré. Placez une
cassette vierge dans le magnétocassette. Appuyez sur les touches de lecture (PLAY) et
d'enregistrement (RECORD) du magnétocassette et commencez à parler. Dites n'importe quoi.
Appuyez sur la touche d'arrêt (STOP) et de rebobinage (REWIND) pour rembobiner la cassette.
Tapez ensuite ce programme:
5
CLS
10
INPUT "PRESS (ENTER) TO HEAR THE RECORDING";A$
20
MOTOR ON
30
AUDIO ON
Débranchez le microphone du magnétocassette. Branchez le câble à trois fiches entre le
magnétocassette et l'ordinateur. Appuyez sur la touche de lecture (PLAY) du magnétocassette.
Exécutez le programme. Vous entendrez votre propre voix.
MOTOR ON
AUDIo ON
Met le magnétocassette en marche.
Fait passer le son du magnétocassette au haut-parleur de l'écran d'affichage
ou de l'amplificateur.
On peut programmer l'ordinateur pour qu'il se ferme, mais pour le moment, appuyez sur le
bouton RESET. Le bouton de remise à l'état initial (RESET) est an arrière, à droite de votre
ordinateur lorsque vous lui faites face. Listez votre programme. Le fait d'avoir remis l'ordinateur
à l'état initial (RESET) n'a pas effacé votre programme. Ajoutez ces lignes au programme:
35
CLS
40
A$= INKE Y $
50
PRINT@ 225, "PRESS
60
00
TO TURN OFF RECORDER"
IF AS$<> "X" TH EN 40
70
AUDIO OFF
80
MOTOR OFF
A-1
Le Prof. Informatisé parlant
Préparez votre cassette pour qu'elle soit prête à être lue et exécutez (RUN) le programme.
La ligne 40 commande à l'ordinateur de lire le clavier sans faire de pause telle entrée (INPUl).
La ligne 60 lit ce qui est indiqué à la ligne 40 et décide si vous avez ou non appuyé sur la
touche X. Si vous n'avez pas appuyé sur la touche X, l'ordinateur revient à la ligne 40 et la
relit de nouveau. Si vous avez appuyé sur la touche X, l'ordinateur passe à la ligne 70.
La ligne
70
met à l'arrêt le son du magnétocassette.
La ligne
80
ferme le magnétocassette.
Maintenant que vous comprenez son fonctionnement, vous êtes prêt à enregistrer le Prof.
informatisé. Voici la copie:
"Bonjour, je suis votre Prof. informatisé. La première leçon est en mathématique. Je vais
vous donner une série d'additions à résoudre. Appuyez sur la touche "W" . . .
"
(Faire une pause de quelques secondes)
"C'est ce que vous entendrez, chaque fois que votre réponse sera fausse. Appuyez sur
. la touche "R" . . . "
(Faire une pause de quelques secondes)
"C'est ce que je vous dirai chaque fois que votre réponse sera correcte. Vous n'entendrez
plus ma voix jusqu'à ce que vous me donniez troi s réponses correctes. Bonne chance.
Appuyez sur la touche "G" pour commencer."
(Faire une pause de quelques secondes)
"Me voici de nouveau. J'espère que vous avez aimé votre leçon. Appuyez sur la touche
"E" pour fermer le magnétocassette."
A-2
Le Prof. Informatisé parlant
Fini? La prochaine chose à faire, c'est de dessiner le Prof. parant. Voici notre grille et ce
a quoi elle ressemblera.
• •
· -t
•
•
'
.
'
•
•
•
•
•
• •
.
•
:tttlt:ltittWi
tt! ::il: :LI
: W
: ::ll
: :-1:
· W
. .:l:ijttttm-;tttJ
·�
.
.
Dessinez la bouche en premier. Effacez la mémoire et tapez:
5
CLS 0
200
FOR H
210
FOR V =16 TO 21
=
26 TO 35
220
S E T (H,V,4)
230
NEXT V,H
C'est une bouche fermée. Pour la faire parler, tapez:
500
RES ET(30,18) :RES ET(30,19)
510
GOTO 200
Exécutez le programme. Maintenant dessinez le visage. Tapez:
100
110
120
130
FOR H=16 T047
FOR V = 4 T 0 2 3
S E T CH,V,5)
NEXT V,H
Dessinez le corps. Tapez:
140
FOR H =0 TO 60 ST E P 4
150
FOR V = 24 T031
160
S ETCH,V,2) :SET (H+1,V,2)
170 SET (H+2,V,7) :S ET(H+3,V,7)
180
NEXT V,H
Dessinez les yeux. Tapez:
300
FOR V 510 T011
310SET <24,V,3) : S E T ( 25,V,3)
320
S ETC36,V,3) :SETC37,V,3)
330
NEXT V
340
PRINT@ 0,"THE TA LKING COM PUTER T EACHER"
Exécutez le programme. Faites clignoter les yeux. Tapez:
505
IF RND(4) = 4 THEN S ET(24,10,5) : S E T C37,10,5)
A-3
Le Prof. Informatisé parlant
Exécutez le programme. Voici ce qu'à l'air votre Prof. parlant. Maintenant, enseignez au Prof.
à parler. Tapez:
400
MOTOR ON
410
AUDIO ON
420
A$= IN KEY$
430
IF A$= "G" THEN MOTOR OFF:END
440
1 F A$= "W" THEN MOT OR 0 FF:GOSUB 2000
450
IF A$= "R" THEN MOTOR OFF:GOSUB 3000
2000
FOR T
2010
SOUNDT,1
2020
NEXT T
=
176 TO 86 STEP -10
2030
RETURN
3000
FOR T
3010
SOUN DT,1
=
3020
NEXT T
3030
RETURN
86 TO 176 STEP 10
Rembobinez le bande dans le magnétocassette. Branchez le câble à trois fiches entre le
magnétocassette et l'ordinateur. Appuyez sur la touche de lecture (PLAY) du magnétocassette.
Exécutez le programme. Faites ce que le Prof. vous dit de faire.
Est-ce que jusqu'à maintenant tout va bien? Lorsque vous appuyez sur la touche W, vous
devriez entendre des tons ascendants. Si vous appuyez sur R, cela devrait vous donner des
tons descendants. En appuyant sur la touche G, on termine le programme. Maintenant,
programmons l'ordinateur pour vous donner des problèmes d'arithmétrique. Tapez:
430
460
IF A$= "G" THEN MOTOR OFF:GOSUB 1000
IF A$= " E" THEN MOTOR OFF: END
1000
X= RNDC100) :Y= RNDC1 00)
1010
PRINT@ 0, " WHAT IS" X "+" Y
Remarquez la ligne 1015. Elle règle la position d'imprm
i ante (PR/NT)
pour ce que vous tapez à la ligne 1020.
1015
PRINT@20,
1020
INPUT A
1030
IF A= X + Y THEN GOSUB 3000:C = C + 1
1040
IF A<> X + Y THEN GOSUB 2000:PRINT@ 0, "WRONG
THE ANSWER IS" X+ Y
A-4
1050
1 F C = 3 THEN RETURN
1060
FOR P
1070
GOTO 1000
=
1 T O 500:NEXT P
-
Le Prof. Informatisé parlant
Remarquez la ligne 1015. Elle réegle la position d'imprimante (PRINT) pour ce que vous tapez
la ligne 1020.
à
Rebobinez la cassette et appuyez sur la touche de lecture (PLAY), puis exécutez le programme.
Regardez, écoutez et apprenez avec le Prof. informatisé parlant.
Appris au chapitre 18
COMMANDES
AUDIO
MOTEUR
A-5
Custom Manufactured for
RADIO SHACK
A Division of INTER TAN
Canada L TD/Barrie, Ontario, Canada L4M4W5
PARTIE 3 I
DES IMAGES EXCEPTIONNELLES
Êtes-vous prêt à faire un grand bond en avant? Dans cette partie, vous apprendr ez à
utiliser l'écran de graphiques à basse définition qui est réservé uniquement aux graphiques.
Avec cet écran vous pourrez facilement:
.
Tracer un cercle
Peindre une case
Déplacer une image
etc., etc.
1 13
1 9 I L' ORDI NATEUR FAIT LE POINT
L' ordinateur couleur se caractérise surtout par sa capacité à afficher des graphiques précis,
variés et faciles à utiliser.
Jusqu'à quel point ces graphiques sont-ils faciles à afficher? Commençons donc par l'élément
de base qui est le point.
Quelques mots sur la couleur.
(Utilisation de la palette pour
établir les couleurs standard)
Dans cette partie, nous parlons beaucoup des couleurs. Il serait bon que les vôtres
correspondent aux nôtres. Pour éviter toute confusion, prenez une minute pour vous assurer
que la palette de votre ordinateur donne les couleurs standard.
•
Si vous utilisez un écran vidéo RGB (rouge/vert/bleu), tapez PALETIE RGB (ENTERl
•
Si vous utilisez un écran vidéo CMP (à signal complet) et si vous avez modifié la
palette, tapez PALETIE CMP (ENTERl
Passons maintenant à votre premier point.
Votre premier point
(Commande PSET)
Avec votre ordinateur couleur, vous pouvez facilement mettre un point sur l'écran. Tapez donc
le programme suivant:
2
5
10
20
30
40
W I DT H 3 2
PMODE 1 , 1
PCLS
SCREEN 1 , 1
PSET (1 0 , 20 ,8)
G O T O 40$
115
19 I L 'ORO/NA TEUR FA IT LE POINT
Exécutez ce programme. L'écran doit être de couleur chamois; si vous l' observez attentivemert,
vous pouvez voir un petit point orange dans le coin supérieur gauche. Ce point a été placé
par PSET (placement) à la ligne 30.
PSET permet de placer un point n'importe où sur l'écran. Sa syntaxe est:
P s E T (x,y,c,} place un point sur l'écran courant de graphiques
x correspond à la position horizontale (0 à 255)
y corresoond à la position verticale (0 à 1 91)
c correspond à la couleur (0 à 8). Si vous omettez c, le BASIC utilise la couleur
courante du premier plan.
L'ordinateur divise l'écran en une grille de près de 50,000 points (256 horizontalement et 1 92
verticalement}.
u n coup d'oeil à la ligne 30 pour c.;omprendre comment
point: (1 o horizontalement et 20 verticalement):
Jetez
30
PSET
spécifie la position de
PSET ( 1 0 , 20 , 8)
La commande suivante permet de placer le point au centre de l'écran:
P S E T ( 1 2 8 , 96 , 8 )
Ajoutez maintenant une ligne de programme qui place le point dans le coin inférieur droit
(255 horizontalement et 1 9 1 verticalement).
Avez-vous utilisé la ligne suivante?
35
P S ET ( 2 5 5 , 1 9 1 , 8 )
Si c'est le cas, félicitations! Vous avez marqué un point!
Listez le programme qui doit avoir l ' aspect suivant:
2
W I DTH 32
PMODE 1 , 1
5
10
P C LS
S C R E EN 1 , 1
20
P S E T ( 1 0 , 2 0 , 8)
30
P S E T ( 2 5 5 , 1 91 , 8 )
35
GOTO 40
40
Vous avez p r i s un bon
116
dl
p a rt .
1 9 / L 'ORO/NA TEUR FAIT LE POINT
Mais et la couleur?
(Spécification des couleurs avec PSET)
A ce stade, vous avez probablement compris que vous pouvez faire varier les couleurs en
donnant à c une valeur différente entre 0 et 8.
C'est vrai jusqu'à un certain point, mais (ce mais est de taille) vous ne pouvez afficher que
quatre couleurs.
Nous en verrons plus tard la raison, aux chapitres 21 et 22, dans l'étude de PMODE et des
jeux de couleurs. Pour le moment, ne vous inquiétez pas si vous n'obtenez pas toujours la
couleur désirée.
Avec la commande PMODE et le jeu de couleurs courants, vous disposez des couleurs
suivantes:
Code
Case
Couleur
de couleur
de palette
standard
Couleur
Couleur
Couleur
Couleur
4
5
6
7
Chamois
Turquoise
Lilas
Orange
1 ou 5
2 ou 6
3 ou 7
0, 4 ou 8
Par exemple, avec la commande PMODE et le jeu de couleurs courants, la couleur 1 et la
couleur 5 spécifient toutes deux la couleur de la case 4. Si vctre palette est établie pour produire
les couleurs standard, vous obtenez la couleur chamois.
Si vous voulez changer les couleurs des points, utilisez le turquoise (2 ou 6) et le lilas (3 ou
7). Ramenez ensuite la couleur à l' orange (0, 4 ou 8) avant de continuer.
Un jeu de cache-cache
(Commande PRESET)
Savez-vous faire disparaître un point? Disons que c'est facile et que c'est une question de
couleur!
En fait, vous ne faites pas vraiment disparaître le point; vous changez simplement sa couleur
pour qu'il se mêle à la couleur de fond. Dans ce but, vous utilisez la nouve;Je co. -rmande
PRESET (remise d'un point à l'état initial). PRESET "sait" que vous voulez ut.lise< 'a colieur
de 'and; vous n'avez donc pas à l'indiquer.
P R E s E T (x,y)e remet un point à la couleur de fond courante sur l"éc<a"l �-2:"" :::e
graphiques à basse définition.
x correspond à la position horizontale (0 à 255)
y correspond à la position verticale (0 à 1 91)
117
19 I L 'ORO/NA TEUR FAI T LE POINT
EXERCICE 1 9-1
Vous souvenez-vous de la fonction AND (nombre au hasard) de la partie 2? Si ce
n'est pas le cas, jetez-y un coup d' oeil puis écrivez un court programme pour remplir
l'écran de points en couleurs au hasard.
Détermination d'un point
(Fonction PPOINT)
PPOINT est très voisin de PSET et RESET. Il permet de déterminer la couleur d'un point sur
l'écran.
P P O I N T (x,y) indique la couleur d'un point sur l'écran courant de graphiques:
x correspond à la position horizontale du point (0 à 255)
y correspond à la position verticale du poin: (0 à 1 9 1)
Cet exemple montre l'utilité de PPOINT dans un programme:
2
W I DTH 32
5
PMODE 3 , 1
P C LS
10
15
SC REEN 1 , 1
X = RND ( 1 0 )
30
35
Y = RND ( 1 0 )
C = RND(8)
40
50
PSET ( X , Y , C >
IF PPOINT (5 , 5 ) =8 THEN GOTO 1 0 5
60
GOTO 3 0
70
C LS
1 05
P R I NT @ 1 0 0 , " LA POS I T I ON ( 5 , 5 ) A M A I N T E NANT LA COULEUR 8 "
110
L'ordinateur remplit un carré de 1 0 x 1 0 (dans le coin supérieur gauche de l'écran) de points
de couleurs au hasard. Quand la position (5,5) a la couleur 8, l' ordinateur affiche le message
"LA POSITION (5,5) A MAINTENANT LA COULEUR 8".
Appris au chapitre 1 9
1 18
COMMANDES
FONCTION
PSET
PRES ET
PPOINT
20 I U N E LIGNE À S U IVRE!
Vous pouvez maintenant placer un point sur l'écran; vous pouvez même en placer plusieurs.
C'est pourtant là un point de départ bien modeste si vous êtes bien impatient de créer de
"vrais graphiques".
À cet égard, pensez à certains de vos tout premiers dessins. Rappelez-vous les dessins que
vous avez faits en réunissant une série de points. Votre ordinateur "dessine" de la même
manière. Vous devez lui indiquer les points à relier rom qu'il trace un trait.
Tracé d'un trait
(Commande LINE)
Pour indiquer à l'ordinateur de tracer un trait entre des points, vous pouvez utiliser la commande
UNE. Pour voir UNE à !'oeuvre, modifiez le programme qui établit les points. (Pour le côté
pratique, appelons ce programme "TRAITS").
Changez d'abord la ligne 30 pour avoir:
30
L I N E ( 0 , 0) - (255 , 1 91 > , PSET
Annulez ensuite la ligne 35 en tapant:
35
œrreID
Votre programme a maintenant cette allure:
2 W I D TH 3 2
5
PMOOE 1 , 1
PCLS
10
20
S C REEN 1 , 1
30
LINE ( 0 , f D - <2 5 5 , 1 91 > , PSET
GOTO 40
40
Exécutez ce programme. Sur l'écran, u n trait doit joindre l e com
inférieur droit.
suDér-e..!· ga...c-e a.. co.,
­
Essayez donc maintenant de changer ce trait pour le ia:re a:e· c_
coin supérieur droit.
::c- �-::;:..- 7L'"-e a...
119
20 I Une Ligne
à
Suivre!
Vous avez probablement déjà trouvé; dans l e cas contraire, voici l a nouvelle ligne 30:
30
LINE < 0 , 1 91 ) - (2 5 5 , 0) , PSET
Tracé de deux traits
(Exemple avec LINE)
Comment tracer des traits qui se croisent?
I nsérez de nouveau la ligne 30 initiale qui a tracé le premier trait. (Donnez-lui d'abord le numéro
25.) Exécutez le programme. L'écran présente-t-il deux traits qui se croisent au centre?
En fait, vous pouvez placer autant de traits que vous le désirez sur l'écran, quand vous aurez
appris la syntaxe qui est la suivante:
L I N E (x1 ,y1)-(x2,y2),a, b trace un trait ou une
case sur
(x1,y1)
correspond au point de départ du trait.
(x2,y2)
correspond au point de fin du trait.
l ' écran courant de graphiques:
a correspond à PSET (établissement) ou à PRESET (remise à l' état initial).
b correspond à B (case)
ou
à BF (case rem plie).
Cette valeur est facultative.
Remarque: Comme nous le voyons ci-dessous, on peut omettre le point de départ.
Il peut parfois arriver que vous dési riez tracer un trait qui commence au point final d'un autre.
Dans un tel cas, vous pouvez omettre le point de départ du nouveau trai:. Voici un exemple:
30
35
LINE ( 0 , 0 ) - ( 255 , 1 9 1 ) , PSET
L I N E - ( 1 9 1 , 0 ) , P S ET
La ligne 20 trace un trait de (0,0) à (255, 1 9 1 ). La ligne 30 trace un autre trait qui va de (255, 1 9 1 )
à (191 ,0).
Effacement d'un trait
(Options PSET et PRESET)
Vous avez peut-être remarqué que LINE n'a pas d'option de couleur. A la place, elle comprend
les options PSET et PRESET qui permettent de spécifier si l'on veut utiliser la couleur de premier
plan ou de fond.
Jetons encore un coup d'oeil aux lignes de programme qui ont créé les traits croisés:
30
35
L I N E ( 0 , 0 ) - ( 255 , 1 91 ) , P SET
L I N E ( 0 , 1 91 ) - ( 2 5 5 , 0 > , P S E T
D'après votre expérience avec l'établissement et la suppression des points au chapitre 1 4,
avez-vous une idée de ce qui se passerait si vous remplaciez PSET par PRESET? Essayez
donc. Tapez:
30
1 20
LINE (0,0)- (255 , 1 91 ) , PRESET
20
/ Une Ligne
à Suivre!
Si vous avez deviné que le trait du coin supérieur gauche au coin inférieur droit allait disparaître,
vous avez raison.
•
PSET établit le trait
•
PRESET ranène le trait à la couleur de fond.
A
la couleur du premier pl an
.
Avant de continuer, ramenez le paramètre PRESET de la ligne 30 à PSET.
Pour faire une case.
{Option B)
Nous en avons presque terminé avec UNE, mais il nous reste encore quelques points à voir.
B correspond à " BOX" (case). Avec les graphiques à basse définition, vous pouvez tracer
une case sans devoir écrire une ligne séparée de programme pour chaque côté. Il vous suffit
de spécifier deux coins opposés de la case et d'ajouter ,B à l'instruction. Quand vous exécutez
le programme, l'ordinateur crée une case, à la place d'un trait.
Pour le montrer, remettez le programme "Traits" en service.
2
5
10
20
25
30
40
W I OT H 3 2
PMOOE 1 , 1
PCLS
S CREEN 1 , 1
L I N E ( 0 , 0) - ( 25 5 , 1 9 1 > , P S E T
L I N E ( 0 , 1 91 ) - ( 2 5 5 , 0 ) , P S E T
GOTO 4 0
Tel quel, ce programme crée deux traits qui se croisent au centre de l'écran. Annulez la ligne
et ajoutez le suffixe ,B à la ligne 25.
30
25
L I N E ( 0 , 0) - (255 , 1 9 1 > , PSET , B
Que se passe-t-il quand vous exécutez le programme? Voilà certainement une case bien
exécutée!
EXERCICE'. :?0-1
Écrivez un programme qui crée une case avec deux traits se croisant au centre.
Nous indiquerons pourquoi ces couleurs sont les seules disponibles quand nous
étudierons PMODE et SCREEN dans les chapitres suivants.
Une case bien remplie
{Option BF)
Nous en avons presque terminé avec LINE.
Reportez-vous au format de LINE et vous verrez que vous disposez de r o o:-on
au suffixe facultatif , B .
F vous permet de remplir l a case avec l a couleur du premier plan Essa,ez
la ligne 25 pour avoir:
25
c · a_ou�e r F
c
�-c
c� a..,çez
LINE < 0 , 0 ) - (255, 1 9 1 > , P S ET , B F
Qu'en pensez-vous? Votre case est maintenant b;e'1 CO.O'ée
î2i
20 / Une Ligne
à
Suivre!
EXERCICE 20-2
Êtes-vous prêt à essayer votre propre programme "Traits"? Pouvez-vous bâtir une
20 du programme "Traits". N 'ou bl iez
pas d'ajouter:
maiso n? Commencez avec les lignes 5, 1 0 et
•
Une porte de devant.
•
Au moins une fenêtre.
•
Une cheminée.
Le style d'ensemble vous appartient (ranch californien, maison à étages, etc.), mais
nous avons inclus un exemple de programme de maison (vue agréable, pas
d'animaux) à la fin de ce l ivre. Ne vous inquiétez pas des boutons de porte; nous
les ajouterons par la suite.
Sauvegardez ce programme sur cassette, car nous l'utiliserons plus tard.
EXERCICE 20-3
Voici un exercice que vous devriez trouver vraiment intéressant.
Vous savez que la ligne droite est la distance la plJs courte entre deux points. Pour
mettre un peu plus d'écart entre nos deux points, utilisez l'instruction UNE pour tracer
une ligne brisée.
Pour commencer, utilisez les lignes 5, 1 0 et 20 du programme "Traits".
Appris au chapitre 20
COMMANDE
UNE
122
2 1 I L' ÉCRAN ARGENTÉ
Êtes-vous prêt à faire connaissance d \.. ne autre commande? Si oui, éteignez les lumières et
préparez-vous pour le spectacle, car nous allons lever le rideau sur l'écran argenté.
Lumière sur l'écran argenté
(Commande SCREEN)
Jetez encore un coup d'oeil à notre programme "Traits" et en particulier à l'instruction SCREEN
de la ligne 20.
2
5
10
20
25
30
40
W I DT H 3 2
PMODE 1 , 1
PCLS
SCREEN 1 , 1
L I N E ( 0 , 0 ) - ( 2 5 5 , 1 91 > , P S E T
L I N E ( 0 , 1 91 ) - ( 2 5 5 , 0 ) , P S E T
GOTO 40
SCREEN indique a l'ordinateur d'afficher une image sur l'écran. Le genre d'image dépend
des instructions données:
•
Vous devez d'abord indiquer à l'ordinateur si vous voulez utiliser l'écran pour le texte
ou les graphiques.
•
Vous devez ensuite indiquer à l'ordinateur le jeu de couleurs
s cR EEN
type, jeu de couleurse affiche l'écran courant de grapt>·o_es o... Je
type correspond à 0 (écran de texte) ou à 1 (écran de
jeu de couleurs correspond à 0 ou 1 .
Remarque: si le rype ou le jeu de couleurs corresporo 2
1 , l'ordinateur utilise la valeur 1 .
à
2 u:'se-
_-
:eir.:e
g ·a::r::: _ as
i1!0i""':YE ::::cs:i 5'.;:;e-a·
123
21 I L'écran Argenté
Dans le programme "Traits", changez la ligne 20 pour avoir:
20
S C R E EN 0 , 0
Exécutez le programme. L'ordinateur " raccroche-t-il " ? (Presser (BREAKJ pour reprendre les
choses en main.)
En fait, l'ordinateu· a exécuté "Traits· ', comme auparavant. Cette fois-ci, il n'a cépendant pas
montré l'écran de graphiques. Vous lui avez demandé d'afficher l'écran de texte à la place.
Changez maintenant la ligne 20 pour avoir:
20
S C REEN 1 , 0
Vous pouvez voir que vous avez encore changé l'écran de graphiques, mais cette fois-ci,
vous avez aussi changé le jeu de couleurs.
Au premier coup d'oeil, il semble que vous n'avez que deux choix de couleurs: O et 1 . En
fait. vous avez un choix bien plus étendu. Vous changez des jeux de couleurs et non des
couleurs individuelles.
Les tables 21 . 1 et 2 1 .2 donnent les deux jeux de couleurs et précisent l' utilisation de la palette
par l'ordinateur avec chaque jeu.
Table 2 1 . 1
Jeu d e couleurs
O
Numéro de
couleur
Case de
palette
Couleur
standard
1 ou 5
2 ou 6
3 ou 7
o. 4 ou 8
o·
Vert
Jaune
Rouge
Bleu
1
2
3*.
* Couleur de fond par défaut.
* * Couleur de premier plan par défaut.
Table 2 1 .2
Jeu de couleurs 1
Numéro de
couleur
Case de
palette
Couleur
standard
1 ou 5
2 ou 6
3 ou 7
0, 4 ou 8
4*
5
6
7**
Chamois
Turquoise
Lilas
Orange
• Couleur de fond par défaut.
* • Couleur de premier plan par défaut.
Par exemple, dans le jeu de couleurs 0, l'ordinateur utilise la couleur mémorisée dans la case
1 comme couleur de fond par défaut. Si la palette de votre ordinateur est réglée pour donner
les couleurs courantes, le jeu de couleurs 0 donne un fond vert.
EXERCICE 2 1 - 1
Écrivez un programme qui per:nette de passer de l'écran de texte à l'écran de
graphiques. Vous pouvez placer une boucle dans le programme pour qu'il change
le jeu de couleurs après avoir exécuté la suite d'opérations. Vous pouvez ainsi voir
toutes les fonctions de SCREEN à l'oeuvre.
21 I L 'écran Argenté
Changement des couleurs de premier plan et de fond
(Commande COLOR)
Nous avons utilisé l'expression "par défaut" pour décrire les couleurs de premier plan et de
fond. La commande COLOR permet de choisir vous-même le·s couleurs.
La syntaxe de COLOR est:
C O L O R c 1 ,c2 établit les couleurs de premier plan et de fond de l'écran courant de
graphiques:
et correspond à la couleur du premier plan (0 à 8).
c2 correspond à la couleur de fond (0 à 8).
Par exemple, insérez la ligne 6 dans le programme " Traits":
6
C O LOR 6 , 7
Exécutez le programme. 6 correspond à la couleur de premier plan et 7 à la couleur de fond.
Pour inverser ces couleurs, changez la ligne 6 pour avoir:
6
C O LO R 7 , 5
Avant de continuer, annuler la ligne 6 de votre µrogramme.
Un écran de texte qui commence bien
(Commande WIDTH)
Voyons maintenant une autre commande dans le programme "Traits":
2
W I DT H 3 2
Cette ligne sert uniquement de précaution. Quand vous exécutez "Traits", nous voulons nous
assurer que l'ordinateur n'est pas réglé sur l'un des écrans de texte à haute définition
(40 X 24 OU 80 X 24).
Quelle est l'importance de cette précaution? Le BASIC ne peut pas donner de graphiques
à basse définition sur un écran de texte à haute définition.
PoJr vous en rendre compte, annulez la ligne 2, passez à un écran de texte à haute définition
et exécutez le programme.
D E L 2 ŒN:'.ŒID
W I D T H 40 (ENTER)
R U N ŒNifft:l
L'ordinateur paraît "raccrocher". li n'a pas eu de problème avec le programme "Traits". ma:s
il n'a pas pu exécuter la commande SCREEN à partir de l'écran de texte à haute déf.lli:;on.
Revenez à l'écran
2
de
texte à basse définition et exécutez le programme
W I DT H 3 2 �
125
21 / L 'écran Argenté
Effacement de l 'écran de graphiques
(Commande PCLS)
Votre programme "Traits" doit se présenter ainsi:
2
5
10
20
25
30
40
W I DTH 3 2
PMODE 1 , 1
P C LS
S C REEN 1 , 1
L I N E (0 , 0 ) - ( 2 5 5 , 1 91 > , P S E T
L I N E (0 , 1 9 1 ) - ( 2 5 5 , 0 ) , P S E T
G O T O 40
J e t e z un c o u p d ' o e i l f a la l i g n e 1 0 q u i c o n t i e n t l a c o m m a n d e P C LS . C e t t e
commande e f f a c e l ' J c r an de grap h i q u e s . ( E l l e remp l i t l a m}eme fon c t i o n
a v e c l ' ] c ran de g r a p h i qu e s que C L S a v e c l ' J c ran d e t e x t e . )
Vo i c i l a s y n t a x e d e P C L S :
P c L s couleur efface l'écran courant de graphiques:
la couleur peut varier de 0 à 8. Si vous omettez la couleur, l'ordinateur efface
l'écran et le ramène à la couleur de fond courante.
Le programme "Traits" n'utilise pas l'option couleur de PCLS. Par suite, l'ordi nateur utilise
la couleur de fond courante. Retapez la ligne 1 O pour avoir:
10
P C LS 6
6 correspond maintenant à la couleur de fond.
Appris au chapitre 21
COMMANDES
SCREEN
WIDTH
CO LOR
PCLS
PALETIE
126
22
I DES PMODE À LA MODE
Quand vous écrivez un programme de graphiques à basse définition, vous devez prendre
les trois éléments suivants en considération:
•
Positions sur l'écran-Vous pouvez utiliser simultanément jusqu'à 256 x 1 92 positions.
•
Couleurs-Vous pouvez utiliser jusqu'à quatre couleurs à la fois.
•
Écrans-Vous pouvez utiliser jusqu'à huit écrans à la fois.
Le degré d'utilisation d'une fonction (par exemple, positions sur l'écran) réduit votre latitude
avec les deux autres (couleurs et écrans).
PMODE, nouvelle commande du programme "Traits", fixe les fonctions que vous désirez
utiliser. PMODE vous donne un choix de cinq réglages qui sont indiqués à la table 22. 1 .
Table 22.1
Réglages de PMODE
Positions
PMODE
PMODE
PMODE
PMODE
PMODE
4
3
2
1
0
256
1 28
1 28
1 28
1 28
1 92
1 92
X 192
X 96
X 96
X
X
Couleurs
Écrans
2
4
2
4
4
4
2
8
2
2
127
22 /
Des PMODE à la Mode
"Traits" en PMODE 4
(Changement des réglages de PMODE)
Rappelez le programme "Traits" pour voir son allure avec une commande PMODE différente
Si vous l'aviez oublié, voici le programme "Traits" :
2
5
10
20
W I D TH 3 2
PMODE 1 , 1
P C LS
S C R E EN 1 , 1
Passez maintenant de PMODE 1 à PMODE 4.
5
P M O D E 4, 1
Exécutez le programme. Vous devez apercevoir immédiatement deux changements:
•
Les traits sont bien plus fins parce que vous avez passé de PMODE avec 1 28 x
1 92 positions à PMODE avec 256 x 1 92 positions.
•
La couleur change parce que vous êtes passé de PMODE à quatre couleurs à
PMODE à deux couleurs.
(Le chapitre 23 parle de la troisième fonction qui permet d'utiliser plus d'un écran )
Changement des positions disponibles
(Positions avec PMODE)
Quand vous avez passé à un PMODE différent, vous 1'avez pas dû changer les positions
des points. Le BASIC vous permet d'utiliser la même grille d'écran de 256 x 1 92, quelles
que soient les positions d'écran disponibles.
Par exemple, (128, 96) correspond toujours au centre de l'écran, quelle que soit la commande
PMODE utilisée. (256, 1 92) correspond toujours au coin inférieur droit de l'écran.
L'utilisation de la grille d'écran par le BASIC dépend de la commande PMODE.
128
•
En PMODE avec 1 28 x 96 positions, le BASIC établit quatre points pour chaque
point spécifié. Par exemple, si vous demandez au BASIC d'établir le point (0,0), il
fixe aussi (1 ,0), (1 , 1 ) et (0, 1 ) .
•
En PMODE avec 1 28 x 1 92 positions, le BASIC établit deux points pour chaque
point spécifié. Par exemple, si vous demandez au BASIC d'établir le point (0,0), il
fixe aussi (1 ,0).
•
En PMODE avec 256 x 1 92 positions, le BASIC fixe un point pour chaque point
spécifié.
22 / Des PMODE à la Mode
Par suite, une diagonale en PMODE avec 1 28 x 96 positions ressemble davantage à un escalier
qu'à un trait tracé en PMODE avec 256 x 192 positions.
->-. -•
•
•
-�
--
PMODE avc 1 28 x 96 positions
•
•
•
•
•
•
•
•
PMODE avec 256 x 192 positions
Le nombre permis de positions différentes d'écran en PMODE avec 1 28 x 96 positions est
quatre fois plus bas que celui permis en PMODE avec 256 x 1 92 positions.
Positions
Available
Screen
Size of
Dot
Each
High resolution
256
X
1 92
D
Medium resolution
1 28
X
1 92
Low resolution
1 28
X
96
8
tE
Dans la section "De tout et de rien", les feuilles de travail d'écran de graphiques donnent
les positions disponibles avec chaque commande PMODE.
Changement des modes de couleurs
(Couleurs avec PMODE)
Le mode à deux couleurs, comme le mode à quatre co u l eu rs. possède deux jeux de couleurs.
Les tables 22.2 et 22.3 montrent les jeux de couleurs que vous pouvez utiliser en PMODE
à deux couleurs.
Table 22.2
Jeu de couleurs o
Numéro de
couleur
Case de
pal ette
standard
2, 4, 6, 8
1 , 3, 5, 7
8*
9•.
"._.::·:'°
Couleur
• Couleur de fond par défaut.
• • Couleur de premier plan par défaut.
129
22 / Des PMODE à la Mode
Table 22.3
Jeu de couleurs 1
Numéro de
couleu r
Case de
palette
Couleur
standard
2, 4, 6, 8
1 , 3, 5, 7
10*
1 1 **
Noir _
Chamois
Couleur de fond par défaut.
* * Couleur de premier plan par défaut.
•
Comparez ces tables à celles du chapitre précédent qui donnent les deux jeux de couleurs
disponi bles en PMODE à quatre couleurs.
Cases avec PMODE
(Avec exemple de changement de PMODE)
Le programme suivant montre un cycle de cases dans chaque mode. Vous pouvez remarquer
que, avec chaque mode, les traits de la case deviennent plus mi nces et les couleurs passent
de deux à quatre.
2
5
10
20
30
40
50
60
70
W I DTH 3 2
FOR MODE = 0 T0 4
PMODE MO D E , 1
PCLS
SC REEN 1 , 1
L I N E ( 7 5 , 5 0) - ( 1 2 5 , 1 0 0 ) , P S E T , B
F O R Y = 0 T O 5 0 0 : N EX T Y
NEXT MODE
GOTO 5
Voici la syntaxe de PMODE. Le chapitre 24 explique l'utilisation du deuxième paramètre (page
de début).
PM o D E mode, page de début fixe l'écran courant de graphiques dans la mémoire de
graphiques:
mode spécifie les fonctions que vous voulez utiliser dans la mémoire de
graohiques. Si vous omettez le mode, l 'ordinateur utilise le dernier mode
ou (s'il n'en est précisé aucun) le mode 2.
page de début spécifie la page de la mémoire de graphiques où débute u n
écran de graphiques. Si vous omettez cette page, l'ordinateur utilise l a page
de début précédente ou (s'il n'en est précisé aucune) la page 1 .
De ce fait, si vous omettez PMODE, l'ordinateur utilise PMODE 2,1 .
Appris au chapitre 2 2
COMMANDE
PMODE
130
23 I U N EM PLOI DI FFÉRENT
DE LA CO ULEUR
Jusqu'à présent, nous nous sommes cantonnés aux couleurs standard dans tous nos
programmes de graphiques.
Dans ce chapitre, nous abordons les couleurs "non courantes" . Avant de commencer, reportez­
vous au chapitre 9 pour vous remémorer les codes de couleurs et la palette.
Des traits genre rose
(Utilisation graphique de la palette)
Jetons encore un coup d'oeil au programme "Traits ". Utilisez la version avec la commande
PCLS 6 .
2
5
10
20
25
30
40
WIDTH 32
PMODE 1 , 1
PCLS6
S CREEN 1 , 1
L I N E ( 0 , 0 ) - (255 , 1 9 1 ) , P SET
L I N E ( 0 , 1 91 ) - ( 2 5 5 , 0 ) , P SET
G O T O 40
Avec la palette standard, la commande PCLS6 donne un écra., :L� S "WO.S s::oc-:ez
cependant le rose dans la case de palette qui crée la coc.Jet;· 6 :a m •a:U! ?OtSi �
donne un écran rose.
131
23 I Un Emploi Différent de la Couleur
Essayez donc et exécutez les opérations suivantes:
1.
Notez la commande PMODE et le jeu de couleurs utilisés.
Dans la version ci-dessus du programme ''Traits", vous utilisez PM ODE en quatre couleurs
(PMODE 1 , 1 ) avec le jeu de couleurs 1 (SCREEN 1 , 1 ) .
2.
Pour l a commande PMODE et l e jeu d e couleurs utilisés, déterminez la case d e palette
qui donne la couleur 6. (Voir tables 2 1 . 1 et 2 1 .2).
4.
Cherchez le code de couleur du rose dans la section "Codes de couleurs", à la fin de
ce livre. Stockez ce code dans la case correspcndante de palette.
5.
Exécutez le programme. Les traits croisés sont orange, comme auparavant, mais l'écran
de fond est maintenant rose.
8
PALETTE 5 , code de cou l e u r
EXERCICE
23-1
Changez la ligne 5 pour passer en PMODE avec deux couleurs:
5
PMODE 4 , 1
Essayez maintenant de faire passer l'écran au rose .
. . . Avec un peu de brun foncé
(Exemple avec palette et graphiques
à définition moyenne)
Les commandes de graphiques à basse définition utilisent toutes la palette de la même manière.
Par exemple, changez la commande PCLS de la ligne 1 O pour avoir:
10
COLOR 7 , 6
Le programme "Traits" a mai ntenant l'aspect suivant:
2
5
10
20
25
30
40
W I DTH 3 2
PMODE 1 , 1
COLOR 7 , 6
S CREEN 1 , 1
L I N E ( 0 , 0 ) - ( 2 5 5 , 1 91 ) , P S E T
L I N E ( 0 , 1 9 1 ) - ( 25 5 , 0 ) , P S E T
GOTO 40
L a commande CO LOR rend l e premier plan lilas (couleur 7) et, après l a modification apportée
à la palette, la couleur de fond devient rose (couleur 6).
Dans cet exemple, nous modifions la palette pour que le premier plan passe au brun foncé,
à la place du lilas.
132
23 / Un Emploi Différent de la Couleur
Appliquez les opérations suivantes:
1.
Notez la commande PMODE et le jeu de couleurs utilisés.
Dans la version ci-dessus de "Traits". vous utilisez encore la commande PM ODE à quatre
couleurs, avec le jeu de couleurs 1 .
2.
Avec la commande PMODE et le jeu de couleurs que vous· utilisez, déterminez la case
de palette qui donne la couleur 7.
D'après la table 21 .2, la case 6 de la palette donne la couleur 7.
3.
Cherchez le code du brun foncé.
4.
Stockez ce code dans la case appropriée de palette.
Tapez:
9 PA L E T T E 6 , c o d e de c o u l eu r s
5.
Exécutez le programme. Le fond es: maintenant rose et les traits croisés sont brun foncé.
EXERCICE 23-2
Changez la ligne 20 pour passer au jeu de couleurs 0:
5
PMODE 4 , 1
Essayez maintenant de faire passer le premier plan au brun foncé.
Appris au chapitre 23
COMMANDE
PALETIE
1 33
24 I À LA RECH ERCHE
DE LA BO N N E PAG E
En préparant ce livre, nous avons "stocké" des chapitres dans des pages. Certains chapitres
demandent davantage de pages, d'autres moins.
Dans le même ordre d'idées, le BASIC stocke les écrans de graphiques dars des pages de
mémoire. Puur c;ertains écrans, il faut davantage de pages, pour d'autres moins.
PMODE détermine le nombre de pages de mémoire nécessaires pour tracer un écran. D'après
la table 24-1 , un écran dessiné avec une commande PMODE à définition plus élevée demande
davantage de pages de mémoire qu'un écran préparé avec une commande PMODE à
définition plus basse.
Table 24-1 I Pages requises pour les écrans de graphiques
Pages requises
Écran
Écran
Écran
Écran
Écran
Écran
en
en
en
en
en
PMODE
PMODE
PMODE
PMODE
PMODE
4
3
2
1
O
4
4
2
2
pages
pages
pages
pages
1 page
PMODE détermine aussi les pages stockées sur un écran.
Changement de pages
(Paramètre de page de début de PMODE)
Voyons ce qui se passe si vous stockez maintenant l'écran "Traits" dans différentes pages
5
10
20
25
PMODE 1 , 1
P C LS
S C REEN 1 , 1
L I N E ( 0 , 0 ) - (255 , 1 9 1 > , P SET
30
40
L I N E < 0 , 1 91 ) - (25 5 , 0) , P SET
GOTO 40
135
24 / À la Recherche de la Bonne Page
Arrêtons-nous à PMODE. Vous savez que le premier paramètre de PMODE indique à
l'ordi nateur de commencer un écran en PMODE 1 . Comme l'indique la table 24-1, un écran
en PMODE 1 requiert deux pages. Le deuxième paramètre indique à l'ordinateur de
commencer l'écran à la page 1 . L'écran "Traits" de deux pages se trouve ainsi aux pages
1 et 2.
Pour mettre l'écran "Traits" de deux pages aux pages 3 et 4, tapez:
5
PMO D E 1 , 3
Exécutez le programme. Nous avons encore le même écran, mais il est stocké dans des pages
différentes.
Des traits sur des écrans différents
(Changement de l'écran courant de graphiques)
Voulez-vous stocker un écran sur les pages 1 et 2 et un autre sur les pages 3 et 4? Tapez
le programme suivant:
5
10
25
PMO D E 1 , 1
PC LS
L I N E ( 0 , 0 ) - ( 2 5 5 , 1 91 > , PS ET
stocke l'écran sur les
pages 1 et 2
27
28
30
PMO D E 1 , 3
PC LS
L I N E ( 0 , 1 91 ) - ( 2 5 5 , 0 ) , P SET
stocke l'écran sur les
pages 3 et 4
40
GOTO 40
La première partie d u programme commence u n écran en PMODE 1 sur les pages 1 et 2 .
Elle efface cet écran et y trace u n trait.
La partie suivante du programme commence un autre écran en PMODE 1 sur les pages 3
et 4. Elle efface cet écran et y trace un trait.
Exécutez le programme. Aucun écran n'apparaît. car i l n'y a pas d'instructions SCREEN.
Ajoutez donc cette commande:
35
S C REEN 1 , 1
Le programme a maintenant l 'aspect suivant:
5
10
25
PMODE 1 , 1
P C LS
LINE ( 0 , 0 ) - (255 , 1 9 1 ) , PSET
stocke l 'écran sur les
pages 1 et 2
27
28
30
PMODE 1 , 3
PC LS
L I N E ( 0 , 1 9 1 ) - ( 2 5 5 , 0 ) , P S ET
stocke l'éc·an sur les
pages 3 et 4
35
SCREEN 1 , 1
40
GOTO 40
Exécutez le programme. Seul l'écran courant de graphiques, stocké sur les pages 3 et 4,
apparaît.
L'ordinateur utilise votre commande PMODE la plus récente pour déterrriner l 'écran courant
de graphiques. Dans le programme ci-dessus, la commande PMODE la plus récente est à
la liQne 27. Elle spécifie l'écran stocké sur les pages 3 et 4.
136
24 / À la Recherche de la Bonne Page
Insérez une autre ligne PMODE avant SCREEN:
32
PMOD E 1 , 1
Exécutez de nouveau le programme. L'ordinateur affiche maintenant un écran courant de
graphiques différent qui est celui stocké sur les pages 1 et 2.
EXERCICE 24-1
Avec le BASIC couleur, affichez un écran en PMODE 2 qui commence à la page
2. Avez-vous une idée de ce qui va apparaître? Changez la ligne 32 pour avoir
PMODE 2 , 2 et exécutez le programme. PMODE 2 utilisant 2 pages, vous voyez le
contenu des pages 2 et 3. L'ordinateur étant en PMODE 2, cet écran apparaît en
deux couleurs, avec basse définition.
Permutation des écrans
(Exemple avec le paramètre
de début de page de PMODE)
Le dessin animé consiste à préparer de nombreuses images fixes et à les faire défiler
rapidement. Voici donc le moment tant attendu! Ce programme fait défiler les écrans pour
montrer deux traits en mouvement:
5
10
25
PMODE 1 , 1
P C LS
LINE ( 0 , 0 ) - (255 , 1 91 > , PSET
stocke l'écran sur les
pages 1 et 2
27
28
30
PMODE 1 ,3
P C LS
LINE < 0 , 1 91 ) - ( 2 5 5 , 0 ) ,PSET
stocke l'écran
pages 3 et 4
32
34
36
PMODE 1 , 1
SCREEN 1 , 1
FOR I=1 TO 200: NEXT I
affiche l'écran des
pages 1 et 2
38
40
42
PMODE 1 ,3
S C R E EN 1 , 3
F O R I = 1 TO 2 0 0 : N E X T I
affiche l'écran des
pages 3 et 4
44
GOTO 3 2
sur
les
Addition de pages
(Commande PCLEAR)
Vous pouvez utiliser un maximum de huit pages de mémoire de graphiques (pages 1 à 8).
Toutefois, quand vous débutez, le BASIC ne vous en donne que la moitié (pages 1 à 4). Par
exemple, apportez le changement suivant au programme "Traits":
5
PMODE 1 , 4
Pour remédier au problème, insérez la ligne 4. Vous disposez maintenant des huit pages.
4
PC LEAR 8
137
24 / À la Recherche de la Bonne Page
PCLEAR permet de réserver de une à huit pages de mémoire. Vous devez utiliser PCLEJl.R
comme première ou deuxième commande dans votre programme (après CLEAR, si vous
l'utilisez).
P c L E A R pages réserve les pages de mémoire de graphiques:
les pages correspondent à la place de mémoire de graphiques à réserver (0 à 8).
A la mise en marche, l'ordinateur réserve automatiquement quatre pages. Utilisez
PCLEAR pour réserver plus ou moins de pages.
Vous vous demandez peut-être pourquoi nous n'utilisons pas toujours PCLEAR 8. Cette
instruction réduit la place de mémoire de programme. Il arrive que vous ayez besoin de plus
de mémoire de programme; parfois il vous faut davantage de mémoires de graphiques.
PCLEAR permet de fixer vos besoins.
De haut en bas et de bas en haut
(Exemple avec PCLEAR)
Vous pouvez utiliser les pages réservées avec PCLEAR pour stocker plusieurs écrans. Si vous
dessinez différentes images sur chaque écran, vous pouvez leur donner l'impression du
mouvement avec PMODE.
10
20
30
40
50
60
70
80
90
100
110
1 20
130
1 40
P C LEAR 8
FOR P=I TO 8
PMODE 0 , P
P C LS
L I N E ( 1 2 8 , 0 ) - ( 1 3 8 , 1 0 + ( P -1 ) * 1 5 ) , P S E T
C I R CLE C1 28, P*1 5 ) , 1 5
NEXT P
F O R P=1 TO 8 : G O S U B 1 1 0 : N E X T P
FOR P=7 TO 1 STEP - 2 : G O S U B 1 1 0 : N E X T P
GOTO 80
PMODE 0 , P
S CREEN 1 , 0
FOR T=1 TO 1 0 : NEXT T
R ET U R N
A l 'exception de CIRCLE (voir chapitre suivant), vous connaissez déjà toutes les fonctions
utilisées avec ce programme.
138
24 / À la Recherche de la Bonne Page
Copie de pages
(Commande PCOPY)
Avec PCOPY (copie de page), vous pouvez copier une page de mémoire de graphiques sur
une autre. Voici le format de PCOPY:
P c o P Y page
1
TO page 2e copie la page
1
sur la page 2
Par exemple, pour copier la page 3 sur la page 8, tapez:
PCOPY 3 TO 8
PCOPY présente l'avantage de pouvoir abréger les programmes en éliminant la répétition.
N ' oubliez pas que PCOPY copie une page de mémoire de graphiques. Excepté si vous êtes
en PMODE 0, une page ne constitue pas un écran. Par exemple, en PMODE 4, l'instruction
ci-de�sus ne copie qu'un quart d 'écran.
EXERCICE 24-2
Le programme suivant présente quatre carrés disposés en même temps sur l'écran
et couvrant quatre pages différentes de mémoire. Exécutez ce programme puis
abrégez-le à l'aide de PCOPY.
4
5
10
11
12
20
21
22
30
31
32
40
41
42
50
PC LEAR 8
PMOD E 3 , 4
PC LS
SCREEN 1 , 1
L I N E ( 1 1 0 , 2 0 ) - ( 1 20 , 3 0 )
PMODE 3 , 3
S C REEN 1 , 1
L I N E ( 1 1 0 , 20 ) - (1 20,30)
PMODE 3 , 2
S C R EEN 1 , 1
L I N E (1 1 0 , 20 ) - ( 1 20 , 30)
PMO DE 3 , 1
S C R EEN 1 , 1
L I N E ( 1 H J , 20 ) - ( 1 2 0 , 3 0 )
GOTO 50
, PSET B
, PSET B
, PSET B
, P SET B
EXERCICE 24-3
A l'aide de LINE et de page de début, simulez un orage. Placez des traits à des
positions au hasard sur des pages différentes. Permutez ensuite les pages.
Appris au chapitre 24
COMMANDES
PMODE
PCLEAR
PCOPY
139
25 I POUR TOU RNER EN RON D
Si les explications sur SCREEN, PMODE et PCLEAR vous étourdissent un peu, vous n'avez
encore rien vu!
Vous pouvez par exemple créer un cercle complet, un cercle partiel ou une ellipse (cercle
oblong) avec la seule commande CIRCLE. Voici la syntaxe de CIRCLE:
c r R c LE (h, v), r,c,hw,début,fin trace un cercle sur l'écran courant de graphiques:
x correspond à la position horizontale du centre (0 à 255).
y correspond à la position verticale du centre (0 à 1 9 1 ).
r correspond au rayon en points d'écran. (Si r est supérieur à 95, le cercle s'aplatit
contre les côtés de l'écran.)
c correspond à toute couleur disponible (0 à 8). Si vous omettez c, l'ordinateur utilise
la couleur du premier plan.
hw correspond au rapport hauteur/largeur (0 à 255). Si vous omettez hw, l'ordinateur
utilise 1 .
début correspond au point de départ (0 à 1). Si vous omettez début, l' ordinateur
commence à O.
fin correspond au point de fin (0 à 1 ). Si vous omettez fin, l'ordi nateur utilise 1 .
Si le point de début correspond au point de fin ou si vous omettez ces deux points.
l'ordinateur trace l'ellipse complète.
Avec CIRCLE, vous n'avez besoin que du centre du cercle et du rayon (dis:ance du centre
au bord du cercle).
Il est temps de remettre le programme "Traits" en service.
5
PMODE 1 , 1
PCLS
10
20
SCREEN 1 , 1
25
L I N E ( 0 , 0 ) - ( 2 5 5 , 1 91 > , P S E T
30
L I N E ( 0 , 1 91 > - ( 2 5 5 , 0 ) , P S E T
G O T O 40
40
Annulez la ligne
30
2 5 et
changez la ligne 30 pour avoir:
C I R C L E ( 1 2 8 , 96) , 95
Exécutez le programme. L'écran présente un cercle plutôt mal fait. Pourquoi le cercle n'est-il
pas vraiment rond? Jetez un coup d'oeil à la ligne 5 pour comprendre: l 'ordinateur est en
PMODE 1 (vous n'avez que 1 28 x 1 92 positions).
141
25 / Pour Toumer en Rond
Passez de PMODE 1 à PMODE 4 (256 x 1 92) de la façon suivante:
5
PMODE 4 , 1
PCLS
10
20
S C R E EN 1 , 1
30
C I R C LE ( 1 2 8 , 9 6 ) , 9 5
4 0 G O T O 40
Exécutez le programme. Vous avez maintenant un vrai cercle!
EXERCICE 25-1
A l'aide du programme ci-dessus, créez une cible. Vous pouvez vous y prendre de
deux manières:
•
Ajoutez une ligne séparée de programme pour chaque cercle concentrique
et utilisez un centre commun (coordonnées h, v).
•
Utilisez une boucle
FOR .
. . NEXT avec STEP
1 O.
EXERCICE 25-2
Avez-vous conservé votre programme de construction de maison? Avec C I RCLE,
mettez un bouton sur la porte de devant. Pour une image plus détaillée, exécutez
le programme en PMODE 4.
De la couleur dans le cercle
(Option de couleur)
Quand vous déc idez du rayon d u cercle, choisissez sa coul eur. En PMODE avec deux couleurs,
vous n'avez guère le choix, mais en ?MODE à quatre couleurs (PMODE 1 ou 3), vos options
s'élargissent.
Votre programme doit être:
5
PMODE 1 , 1
10
P C LS
20
SCREEN 1 , 1
30
C I R C LE ( 1 2 8 , 9 6 ) , 9 5
GOTO 40
40
Tracez d'abord u n cercle de taille plus raisonnable:
30
C I R C LE ( 1 2 8 , 9 6) , 3 0
Pour varier un peu, passez maintenant à la couleur 6:
30
C I R C LE ( 1 2 8 , 9 6 ) , 3 0 , 6
C' est tout! En fait, vous pouvez fai re passer le cercle à l'une quelconque des couleurs
disponibles.
142
25 / Pour Tourner en Rond
Un cercle sous pression
(Option de hauteuri argeur}
Vous est-il jamais arrivé de déformer un cerceau ou un pneu de bicyclette pour en faire une
ellipse?
Vous pouvez transformer de même le cercle de l'écran en une ellipse à l'aide du rapport
hauteur/largeur (hw).
Quand vous spécifiez hw, la largeur du cercle reste la même, mais la hauteur est toutefois
déterminée par hw.
•
Si hw est égal à 1 , la hauteur est égale à la largeur.
•
Si hw est supérieur à 1 , la hauteur est plus grande que la largeu'.
•
Si hw est inférieur à 1 , la hauteur est plus petite que la largeur.
Par exemple, dans ce programme, hw est égal à 1 ; par suite, le programme trace un cercle
parfait.
2
5
10
20
30
40
W I DTH 32
PMODE 4 , 1
PCLS
SCREEN 1 , 1
C I R C L E (1 2 8 , 9 6 ) , 3 0 , 1
GOTO 40
Dans ce programme, h w est égal à 3; le programme trac e donc une ellipse plus haute que
large:
30
C I R C LE ( 1 28 , 96) , 3 0 , , 3
Dans ce programme, h w est égal à .25; de ce fait, le programme trace une ellipse plus large
que haute:
30
C I R C L E ( 1 2 8 , 96 ) , 3 0 , , . 2 5
Les lignes ci-dessus ne précisent pas la couleur (c). Nous devons encore insérer une virgule
pour indiquer que nous omettons c. Sans cette virgule. l'ordinateur confond hw avec c.
Changez la ligne 30 comme on l' indique ci-dessous puis exécutez le programme:
30
30
C I R CLE ( 1 2 8 , 96 ) ,3 0 , . 0
C I RCL E ( 1 2 8 , 96 ) , 3 0 , . 1 00
Quand hw est égal à 0 , l'ellipse devient alors infiniment plus large eue ��-:e e.e œ . e-::
une ligne horizontale). Quand hw est égal à un nombre élevé. l 'e!!.pse ce'. er -.:;.�e- ��ç_e
(ligne verticale).
143
25 / Pour Tourner en Rond
Un cercle incomplet
(Option d'arc)
Supposons que vous désirez tracer une partie d'un cercle (un arc). Dans ce but, spécifiez
le début et la fin de l'arc, d 'après les indications du tableau ci-dessous. N'ouqliez pas que
l'ordinateur trace toujours dans le sens des aiguilles d'une montre.
.75
.50
0
.25
Remarque: Pour tracer
utilisez hw 1 .
un
cercle, vous devez spécifier hw. Pour un arc normal,
Par exemple. supposons que vous désirez tracer cet arc:
.75
.25
A cet effet, utilisez cette commande:
30
C I R C LE ( 1 2 8 , 9 6 ) , 3 0 , 1 , . 2 5 , . 7 5
Changez maintenant la commande pour tracer l ' arc suivant:
.75
.25
Votre nouvelle ligne 30 ressemble-t-elle à celle-ci?
30
C I R C LE ( 1 2 8 , 9 6 ) , 3 0 , 1 , . 7 5 , . 2 5
EXERCICE 25-3
La nuit est-elle tombée sur la maison que vous avez aâtie? Si c'est le cas, vous voudrez
peut-être y mettre un peu de lumière en plaçant un croissant de lune dans un coin.
A cet effet. il vous faut deux arcs qui se croisent et un peu de tâtonnements de votre
part.
144
25 / Pour Tourner en Rond
EXERCICE 25-4
Votre maison est donc dans le froid et l'obscu rité. Pourquoi ne pas allumer un feu
et faire sortir de la fumée par la c'ieminée? (Avec CIRCLE, créez une spirale qui
simule la fumée.)
Appris au chapitre 25
COMMANDE
CIRCLE
145
26 I U N GRAND COU P DE PI NCEAU
Il ne faut pas oublier que nous travaillons avec un ordinateur couleur. Jusqu'à présent, nous
avons mis une petite touche de couleur ici et là. Nous n'avons pas encore créé de chef­
d'oeuvre! Il est maintenant temps d'ouvrir notre pot de peintur�.
La commande PAINT permet de " pe'ndre" une forme quelconque avec toute couleur
disponible. Sa syntaxe est:
P A I N T (x,y),c,b peint l'écran cou rant de graphiques:
x correspond à la position horizontale (0 à 255) du point où la peinture doit
commencer.
y correspond à la position verticale (0 à 1 91 ) .
c correspond à l a couleur (0 à 8).
b correspond à la couleur de la bordure où la peinture doit s' arrêter (0 à 8).
Si l'ordinateur arrive à une bordure qui n'est pas de la couleur spécifiée, il
dépasse cette bordure.
Changez le programme "Traits" pour avoir:
2
W I D TH 3 2
5
PMODE 3 , 1
PC LS
10
20
SCREEN 1 , 1
3 0 L I N E ( 0 , 0 ) - (2 5 5 , 1 9 1 > , P S E T
40
L I N E ( 0 , 1 91 ) - ( 2 5 5 , 0 ) , P S E T
50
C I R C L E ( 1 2 8 , 96 ) , 9 0
60
PAINT (135 , 1 2 5 ) , 8 , 8
7 0 GOTO 70
147
26 / Un Grand Coup de Pinceau
Pouvez-vous prévoir le résultat? Les lignes 30 et 40 donnent des lignes qui se croisent. La
ligne 50 crée un cercle dont le centre est au point d'intersection des deux lignes. Cette premiére
partie n'est pas difficile, mais que pensez-vous de PAINT à la ligne 60?
Si vous avez deviné que l'écran passe à la position (1 35, 1 25) et qu'il peint l'écran de la couleur
8 jusqu'à ce qu'i arrive à une bordure de cette même couleur, vous avez raison!
Annulez la ligne 30 puis exécutez le programme. Avec les bordures redéfinies, l'ordinateur
peint la moitié du cercle.
EXERCICE 26-1
Pouvez-vous peindre le cercle complet? Vous pouvez y arriver de deux manières.
Avec la premiére, il faut ajouter une ligne; avec l 'autre, il faut en annuler une.
EXERCICE 26-2
Avez-vous conservé votre maison? Elle manque probablement de caractère! Rendez­
la donc un peu plus gaie avec un peu de peinture!
EXERCICE 26-3
Ajoutez un garage à votre maison. Ensuite, utilisez PAINT pour ouvrir et fermer la
porte du garage. La peinture se faisant d'abord vers le haut, il vous faut faire preuve
d'un peu d'imagination. Ajoutez un retard avant et après l' ouverture. Avec CIRCLE,
ajoutez le soleil.
Appris ua chapitre 26
MOT BASIC
PAINT
148
27 I LE TRAIT DE GÉN I E
Vous savez déjà créer des traits, des ellipses et des cases. Aimeriez-vous connaître un
"raccourci" pour arriver au même résultat?
Ce raccourci est la commande DRAW qui vous permet de tracer une forme quelconque en
spécifiant le sens, l'angle et la couleur, le tout dans la même commande!
Voici la syntaxe de DRAW:
o R AW forme trace une forme sur l 'écran courant de graphiques:
forme est une expression en chaîne qui peut comprendre les commandes, modes
et options suivants de mouvement:
Sous-commandes de mouvement
BMx,y
Vient à la position x,y
Un
Vers le haut de n points
Dn
Vers le bas de n pointa
Ln
Vers la gauche de nn points
Rn
Vers la droite de n points
En
Angle de 45 degrés à n points
Fn
Angle de 1 35 degrés à n points
Gn
Angle de 225 degrés à n points
Hn
Angle de 3 1 5 degrés à n points
Exécution d'une sous-chaîne et retour
X
=
Sn
Cn
An
Modes
Échelle n (1 à 62)
Couleur n (0 à 8)
Angle n (0 à 3)
N
B
Options
Pas de mise à jour de la position de tracé
Blanc (pas de tracé, déplacement seulement)
=
=
=
=
Remarque: Si vous omettez le point de début, l'ordinateur utilise la derniére pos::nl
de DRAW ou, si l'on n'avait pas utilisé précédemment cette commanee, se ;:iac:e
au centre de l'écran. Si vous omettez le nombre de points à tracer. rooa...a.
....a:
·�ace
un point.
149
27 I Le Trait de Génie
Tracé d'une forme
(Sous-commandes de mouvement U, D, L et R)
Avec DRAW, i l vous suffit de spécifier le point de départ puis d'indiquer le sens et la longueur
du tracé.
Changez le programme "Traits" pour avoir:
2
5
10
20
25
40
W I OT H 3 2
PMO D E 3 , 1
P C LS
SCR EEN 1 , 1
ORAW "BM1 2 8 , 9 6 ; U 2 5 ; R25 ; 0 2 5 ; L25"
GOTO 40
Et voilà! Vous avez peut-être deviné que l e coin infOrieur gauche du carré est à (1 28,96).
La ligne 25 indique à l'ordinateur de commencer le tracé à (1 28,96), de tracer 25 points vers
le haut (U), 25 points vers la droite (R), 25 points vers le bas (D) et enfin 25 autres points
vers la gauche (L).
Placez maintenant le carré sur l'un de ses côtés. Dans ce but, remplacez U, R, L et D par
E, F, G et H à la ligne 25:
25
ORAW "BM1 28, 9 6 ; E25 ; F 2 5 ; G 2 5 ; H25"
Le premier trait est incliné à 45 degrés, le deuxième à 1 35 degrés, le suivant à 225 degrés
et le dernier à 3 1 5 degrés.
Il existe cependant un petit problème dans le tracé des angles. Si vous êtes en PMODE O
ou 1 et si vous tracez un angle à côtO de longueur impaire et avec au moins une coordonnée
impaire (x,y), l es traits F et H présentent un léger décrochement en leur milieu. Si les deux
coordonnées sont paires, les traits E et G présentent ce décrochement. Cet état de choses
est normal.
EXERCICE 27-1
Votre ordinateur est certainement une étoile de première grandeur, mais peut-il
dessiner lui-même une étoile?
Début à une position relative
(Signes '' + et ' ' )
''
- ' '
Dans les exemples ci-dessus, vous avec demandé à l'ordinateur de commencer à une position
absolue. Vous pouvez aussi lui demander de commencer le tracé à une position relative.
Par exemple, utilisez la version suivante du programme "Traits".
2
5
10
20
25
40
150
W IOTH 32
PMOOE 3 , 1
P C LS
S C R E EN 1 , 1
ORAW "BM1 2 8 , 9 6 ; U 2 5 ; R25 ; 0 2 5 ; L 2 5 "
G O T O 40
27 / Le Traite de Génie
Pour créer un deuxième carré à une position relative par rapport au premier. ajoutez la ligne
suivante:
30
O R A W " BM + 1 5 , + 1 5 ; U 2 5 ; R 2 5 ; 0 2 5 ; L 2 5 "
Le signe + correspond à u n Décalage. Quand l'ordinateur exécute la.ligne 30, l a position
courante de tracé est (1 28,96), dernière position de tracé de la ligne 25. Pour tracer le nouveau
carré, l'ordinateur commence à ( 1 28 + 1 5,96 + 1 5), soit (143, 1 1 .1).
Vous pouvez aussi utiliser le signe - pour insérer un décalage. Changez la ligne 30 pour avoir:
30
O R A W " B M+1 5 , -1 5 ; U 2 5 ; R 2 5 ; 0 2 5 ; L 2 5 "
Exécutez le programme. Le point de début du nouveau carré est à (128 + 25,96 - 1 5), soit
(143,81).
Essayez la ligne suivante:
30
ORAW "BM+1 5 , 1 5; U25 ; R25 ; 025 : L25"
Si vous utilisez un signe de décalage pour la coordonnée x et si vous l'omettez pour la
coordonnée y, l'ordinateur utilise le signe de décalage + pour ceete dernière.
EXERCICE 27-2
Après cette activité forcenée, vous avez probablement besoin de vous rafraîchir.
Pourquoi ne pas utiliser DRAW pour créer un cube de glace?
Vous pouvez créer le cube entier à l'aide de DRAW. Vous pouvez aussi insérer deux
commandes UNE dans le programme. Essayez d'utiliser les déplacements absolus
et relatifs.
C'est trop grand . . . c'est trop petit . . .
(Mode d'échelle)
Que se passe-t-il si les images que vous tracez sont trop grandes ou trop petites?
La solution est simple. Il suffit d' utiliser le mode d'échelle de la commande DRAW.
Sn permet de changer l'échelle d'un affichage.
n correspond à un nombre de 1 à 62 qui indique le facteur d'échelle, par unités
de 1 4. tel qu'indiqué ci-après:
1
2
3
4
5
8
12
etc.
=
=
=
=
=
=
échelle de 1 4
échelle de 24
échelle de 34
échelle de 44 (un)
échelle de 54 (1 25%)
échelle de 84 (double)
échelle de 1 24 (triple)
=
Si l'on omet n, l'ordinateur utilise 4 (44 = 1).
Après que vous ayez entré Sn, l'ordinateur met à l'échelle en propomon
commandes de déplacement.
n.-:es es SOL;'S­
151
27 I Le Trait de Génie
Avec votre programme "Traits" maintenant perfectionné, tracez de nouveau u n carré. Dans
ce but, annulez la ligne 30 et changez la ligne 25 pour avoir:
25
ORAW " S 2 ; BM1 2 8 , 9 6 ; U 2 5 ; R 2 5 ; 0 2 5 ; L25"
Exécutez l e programme. Le carré du coin inférieur gauche doit avoir l a moitié des dimensions
spécifiées.
Pour vous faire une idée de la taille d'un carré, exécutez le programme suivant:
5
PMOOE 4 , 1
P C LS
10
20
S C R E EN 1 , 1
25
FOR SCALE = 1 TO 62
30
S$ = "S" + STR$ ( S CALE) + " ; "
35
O R A W S $ + " B M1 0 , 1 0 0 U 2 0 R 2 0 0 2 0 L 2 0 "
40
NEXT SCALE
GOTO 5 0
50
Il ne faut pas croire que la ligne 35 spécifie le carré le plus petit. Le carré spécifié est le quatrième
à partir du bord.
/
Quand vous utilisez l'option de "compression", l ordinateu r arrondit la longueur de ligne
résultante au nombre entier le plus proche, à condition que le nombre ne soit pas déjà entier.
'
Par exemple, "S2U25R25025L25" donne un carré de 12-1 2 x 12-1 2 . L'ordinateur trace alors
un carré de 13 x 13.
De la couleur dans les formes
(Option de couleur)
L'option C de DRAW permet de spécifier la couleur de votre dessin.
Liste7
d'abord le programme
"Traits" :
5
PMODE 3 , 1
PCLS
10
20
S C R E EN 1 , 1
30
ORAW " S 2 ; BM1 2 8 , 96; U 2 5 ; R25 ; 0 2 5 ; L25"
40
GOTO 40
152
27 I Le Trait de Génie
Revenez à l'échelle 1 en remplacant 82 par 84 ou en annulant S2. Ensuite, à l'i ntérieur des
guillemets de la ligne 30, insérez:
C6;
Exécutez le programme. Le carré est maintenant de la couleur 6.
À
la ligne 30, remplacez C6 par C8 et exécutez le programme. _Le carré es: maintenant de
la couleur 8.
Vous pouvez insérez Cn partout dans une commande DRAW Les opérations qui suivent
concernent la couleur spécifiée. Par exemple, changez la ligne 30 pour avoir:
30
D R A W " C 8 ; BM1 2 8 , 9 6 ; U 2 5 ; R 2 5 ; C 6 ; 0 2 5 ; L 2 5 "
Exécutez le programme. Le programme produit un carré en deux couleurs. Les deux premiers
traits sont de la couleur 8 et les deux seconds de la couleur 6.
Sous un certain angle
(Mode d 'angle)
Le mode A permet de spécifier l'angle de tracé d'un trait. Quand DRAW contient A, l'ordinateur
trace tous les traits suivant l'angle précisé par An, jusqu'à ce qu'on change celui-ci.
Voici la syntaxe de la commande A:
An permet de spécifier l'angle d'un trait
n correspond au code d'angle (0 à 3). Tous les angles se mesurent dans le sens
des aiguilles d'une montre.
0
1
2
3
=
=
=
=
0 degré
90 degrés
1 80 degrés
270 degrés
Si vous omettez An, l'ordinateur utilise AO.
Votre programme doit maintenant avoir cette allure:
PMODE 3 , 1
5
P C LS
10
20
S C R EEN 1 , 1
D RAW " C 6 ; BM1 28 , 9 6 ; U 2 5 ; R 2 5 ; 0 2 5 ; L25"
30
GOTO 4 0
40
Changez la ligne 30:
30
D R A W " A 0 ; BM1 2 8 , 96 ; U 2 5 "
Exécutez le programme. L:écran affiche un trait vertical de 25 points de long_ Changez
maintenant la ligne 30 pour avoir:
30
DRA W "A1 ; B M 1 2 8 , 96 ; U2 5 "
Exécutez le programme. Le trait est maintenant horizontal.
153
27 I Le Trait de Génie
Un trait invisible
(Option de ligne invisible)
Si vous voulez tracer une ligne invisible, ajoutez l 'option B.
Par exemple, supposons que vous dessinez des lettres de l'alphabet et que vous arrivez à
la lettre C qui n'est rien d'autre qu'un carré sans son côté droit. Pour que le programme crée
un C, changez la ligne 30 pour avoir:
30
D R A W " B M 1 2 8 , 9 6 ; U 2 5 ; R 2 5 ; B ; D 2 5 ; L2 5 "
Exécutez le programme. N'oubliez pas que seul le trait qui suit le B est invisible.
EXERCICE 27-3
Imprimez votre nom sur l 'écran à l'aide de DRAW. Dans ce but, vous devez garder
l'écran de çiraphiques. I l serait certainement plus facile d'écrire votre nom sur l'écran
de texte, mais il n'est pas possible d'avoir un texte "véritable" et des graphiques
en même temps.
Pour partir du même point
(Option " Pas de mise à jour")
N , option "Pas de mise à jour", est une autre des nombreuses fonctions de DRAW. N indiqLe
à l' ordinateur de revenir à sa position initiale (courante) après avoir tracé le trait suivant. Pour
vous faire une idée de cette option, changez la ligne 30 pour avoir:
30
DRAW "M1 2 8 , 9 6 ; N ; U25 ; N ; R 2 5 ; N; 0 2 5 ; N ; L25 ; "
Exécutez le programme. L'ordinateJr trace u n trait de 25 points à partir :Je 1 28,96. I l revient
ensuite à 1 28,96, trace le trait suivant, revient encore, trace encore un trait, etc. I l en résulte
quatre traits qui rayonnent du centre de l 'écran, chacun dans u n sens différent (vers le haut,
vers la çlroite, vers le bas et vers la gauche).
EXERCICE 27-4
A l'aide de l'option N de DRAW (et de CIRCLE), tracez une tarte divisée en huit parts.
Ensuite, découpez un morceau de la tarte et mettez-le de côté.
Utilisation des sous-chaînes
(Sous-commande X)
Nous avons vu précédemment que la chaîne qui suit DRAW peut être une constante ou une
variable.
Par exemple, ajoutez la ligne 25 et changez la ligne 30 pour avoir:
25
30
A $ = " B M 1 2 8 , 9 6 ; C 8 ; U2 5 ; R 2 5 ; D 2 5 ; L 2 5 "
DRAW A
Exécutez le programme. Avec les instructions de A$, l 'ordinateur donne un carré de
25 x 25 qui commence à 1 28,96.
154
27 I Le Trait de Génie
La sous-commande X permet d'exécuter une chaîne DRAW puis de revenir à une autre. Dans
ce but, laisser la ligne 25 telle quelle pour qu'elle définisse A$; changez ensuite la ligne 30:
vous devez avoir:
25
30
A$="BM1 2 8 , 9 6 ; C 8 ; U 2 5 ; R 25 ; D 25 ; L25"
D R A W " BH95 , 5 0 ; U 2 5 ; R 2 5 ; X A $ ; D 2 5 ; L 2 5 "
Exécutez le programme. L'ordinateur commence à tracer à 95,50 un trait qui monte (U25) puis
la droite (R25). Il exécute ensuite A$ pour tracer un carré de 25 x 25, à partir de (128,96).
Après avoi r exécuté A$, il revient à la chaîne initiale (courante) et termine son exécution (025,L25).
va vers
EXERCICE 27-5
D'après l'exercice 27-3, vous pouvez simuler le texte (lettres) sur l'écran de ;;iraphiques
en y traçant des lettres. A l'aide de DRAW, créez les 26 lettres de l'alphabet. Stockez
les sous-commandes DRAW dans des chaînes. Utilisez ensuite la sous-commande
X pour disposer les lettres en mots.
EXERCICE 27-6
Avez-vous toujours votre maison? Si c'est le cas, chargez de nouveau le programme
et, à l'aide de DRAW, faites ouvrir et fermer la porte de devant.
Appris au chapitre 27
COMMANDE
DRAW
28 I U N ÉCRAN QUI VA
AU TABLEAU
Dans les chapitres précédents, vous avez appris plusieurs méthodes de déplacement d'images
d'un écran à un autre, mais aucune n'est très efficace. Nous allons en voir de meilleures qui
utilisent les instructioris GET et PUT.
À quoi servent-elles?
(Commandes GET et PUT)
Avec les commandes GET et PUT, vous pouvez "tirer" (GEn une surface rectangulaire de
l 'écran, stocker son contenu dans un "tableau" (zone de mémoire) et ensuite la "remettre"
(PUT) en tout point de l 'écran. Cette méthode est la meilleure pour simuler le mouvement.
[�
Les syntaxes de GET et PUT sont:
G E T (x 1 ,y1)-(x2,y2),tableau, G Tire un rectangle de l'écran courant de graphiques et le
stocke dans un tableau.
x1,y1 correspond au coin supérieur gauche du rectangle.
x2,y2 correspond au coin inférieur droit du rectangle.
tableau correspond à une zone de la mémoire où l'on stocke le rectangle.
G stocke le tableau en détails graphiques intégraux. G est nécessaire quand on utilise
la haute définition (PMODE 4 ou PMODE 3 avec couleurs) ou quand on utilise
les paramètres d'intervention de PUT.
P U T (x 1,y1)-(x2,y2),tableau,interventione Met un rectangle, stocké dans un tableau, sur
l'écran cou rant de graphiques.
x1,y1 correspond au coin supérieur gauche du rectangle.
x2,y2 correspond au coin inférieur droit du rectangle.
le tableau correspond à une zone de mémoire où l'on stocke le rectangle.
l'intervention (voir la table 28.1) indique à l'ordinateur le mode d' utilisation des points
stockés dans le rectangle.
Remarque: Assurez-vous que l'ordinateur est à la même instruction PMODE
pour GET et pour PUT, sinon on ne peut pas " remettre" sur l'écran ce que
l'on en a "tiré".
157
28 / Un Ècran qui va au Tableau
Tapez et exécutez c e programme pour mieux comprendre les commandes GET et PUT:
P C LEAR 4
5
10
PMODE 3 , 1
P C LS
15
20
S CREEN 1 , 1
25
D I M V ( 2 0 , 20)
30
C I R C LE ( 2 0 , 20 ) , 1 0
35
GET ( 1 0 , 1 0 ) - (30,30) , V
P C LS
40
F O R D L A Y = 1 T O 3 0 0 : N E X T D LA Y
42
45
PUT (11 0 , 1 1 0 )- (130, 130) ,V
50
FOR D L AY = 1 T O 3 0 0 : N E X T D LAY
GOTO 60
60
Le programme trace u n cercle sur une partie de l'écran puis se déplace vers une autre. Dans
ce but, l' ordinateur:
1.
Crée un tableau V en mémoire (ligne 25). Le tableau V est assez grand pour recevoir
un rectangle de 20 x 20.
2.
Trace un cercle sur l'écran (lig1e 30).
3.
Tire u n rectargle de 20 x 2 0 contenant l e cercle et l e stocke dans l e tableau V (ligne 35).
4.
Efface l'écran (ligne
5.
Remet le rectangle de 20 x 20 (stocké dans le tableau V) sur l'écran.
40).
Stockage du rectangle
(Commande DIM)
GET et PUT utilisent un tableau pour stocker le rectangle; il vous faut donc lui réserver de
la mémoire avant d'utiliser ces commandes. A cet effet, vous pouvez utiliser la commande DIM.
o I M tableau (longueur.largeur) Crée un tableau pour stocker un rectangle défini par sa
longueur et sa largeur en points.
Remarque: DIM doit se trouver dans l'une des premières lignes de votre
programme (après CLEAR et PCLEAR), si vous les utilisez).
Quelle doit être la surface du tableau? Elle dépend de l'importance du rectangle que vous
voulez "tirer" de l'écran ou y " remettre" :
Largeur
Longueur
=
x2
=
-
x1
y2 - y1
Par exemple, la commande GET du programme ci-dessus utilise (1 0, 1 0) et (30,30) pour spécifier
un rectangle. Ce rectangle mesure donc 20 x 20. Il a une largeur et une longueur de 20.
La commande PUT utilise le même rectangle de 20 x 20.
158
28 I Un Écran qui va au Tableau
Certains rectangles peuvent être trop grands pour que vous puissiez les stocker dans un
tableau. Chaque poin'. prend cinq octets dans un tableau; de ce fait, avec un système à mémoire
vive (RAM) de 1 6 K (en supposant que votre programme ne prennent pas beaucoup de
mémoire), vous pouvez stocker un maximum de 1 400 points dans un tableau.
Toujours des i nterventions
(Options PSET, PRESET, AND, OR et NOT)
Jusqu'à présent, VOLS n'avez utilisé que l'intervention PSET avec la commande PUT. C'est
celle que l'ordinateur utilise si vous ne précisez pas d' intervention.
Pour comprendre les autres interventions, exécutez le programme suivant qui met 15 rectangles
sur l 'écran à l'aide ce PSET.
5
PC LEAR 4
1 0 DIM V (30,30)
15
P MO D E 2 , 1
2 0 P C LS
25
SCREEN 1 , 1
3 0 C I R C L E ( 1 2 8 , 96) , 3 0
35
P A I N T ( 1 2 8 , 95 ) , 2 , 4
40
P A I N T ( 1 2 8 , 97 ) , 3 , 4
45
G E T (98 , 81 ) - ( 1 2 8 , 1 1 1 > , V , G
P C LS
50
55
F O R 1 = 1 5 0 T O 1 S T E P -1 0
60 PUT ( l , 81 - I / 5 ) - ( 1 + 6 0 , 1 1 1 - I / 5 ) , V , P SET
NEXT l
65
GOTO 70
70
P S E T établit et remet à l 'état initial chaque point tel qu'il est dans le rectangle du tableau.
Chaque rectangle que PSET met sur 1 écran est identique à celui stocké dans le tableau.
Changez maintenant la ligne 60 de plusieurs manières pour essayer d'autres interventions.
Essayez d'abord PRESET.
60
PUT ( I /8 1 - I / 5 ) - ( 1 + 6 0 , 1 1 1 - I / 5 ) , V , P R E S E T
P R E S E T établit et remet à l'état initial l'inverse de chaque point du rectangle du tableau.
Chaque rectangle que PRESET met sur l'écran est l'inverse de celui stocké dans le tableau.
Essayez l'intervention OR:
60
PUT ( l , 81 - I / 5 ) - ( 1 +60 , 1 1 1 - 1 / 5 ) , V , O R
O R fixe chaque point qui est établi dans le rectangle du :ableau ou qui est déjà établi à la
position où elle met le rectangle de l'écran. Chaque rectangle que OR met sur l'écran possède
tous les points fixés qui sont stockés dans le tableau; il s'y ajoute les éléments qui se trouvent
déjà sur l'écran.
NOT a des effets bizarres:
60
PUT ( 1 , 8 1 - 1 / 5 ) - ( 1 + 60 , 1 1 1 - I / 5 ) , V , N OT
N O T établit et remet à l'état initial l'inverse des éléments qui se trouvent sur l'écran (NOT ne
se préoccupe pas des éléments stockés dans le tableau). Chaque rectangle que NOT met
sur l'écran est l'inverse du précédent.
1 59
28 / Un Écran qui va au Tableau
Pour ne plus rien y voir, essayez l'intervention AND avec le programme:
60
PUT ( l , 8 1 - I / 5 ) - ( ! +60 , 1 1 1 - I / 5 ) , V , A N D
A N o fixe chaque ;)Oint qui est établi dans le tableau et qui est déjà établi sur l'écran, à la
position où elle met le rectangle. Tous les points qui ne répondent pas à ces deux conditions
sont remis à l' état initial. Dans le cas présent, tous les points de chaque rectangle et (AND)
les instructions PUT sont remis à l'état initial. Vous ne voyez plus rien.
Voici un résumé de chaque intervention:
Option
Fonction
PSET
Établit chaque point qui est fixé dans le tableau.
PRESET
Remet à l'état initial chaque point qui est établi dans le tableau; établit chaque
point qui est remis à l'état initial dans le tableau.
AND
Compare chaque point du rectangle du tableau avec le rectangle de l'écran.
Si les deux points sont établis, l'ordi nateur établit le point de l'écran. Dans le
cas contraire, il remet le point de l'écran à l'état initial.
OR
Compare chaque point du rectangle du tableau au rectangle de l'écran. Si l'un
ou l'autre est établi, l 'ordinateur établit le point de l'écran.
NOT
Inverse l'état de chaque point du rectangle de l'écran, quel que soit le contenu
du rectangle du tableau.
EXERCICE 28-1
À
l'aide de GET et PUT, placez u n vaisseau spatial sur l'écran et "au-delà de ses
limites". Vous pouvez y ajouter q uelques astérodes et des "ennemis cosmiques"
pour rendre l'épopée encore plus passionnante!
Appris au chapitre 28
COMMANDES
GET
PUT
DIM
160
PARTIE 4
U N TABLEAU D ' ENSEMBLE
Au chapitre 1 7, vous avez tracé de simples images point à point à l'aide de l 'écran de texte
à basse définition. Dans la partie 2, l'écran de graphiques à basse définition vous a servi à
tracer traits, cercles et cubes.
Dans cette partie, vous dessinerez des images très détaillées et mobiles, aux multiples couleurs,
sur l'écran plus puissant de graphiques à haute définition.
Voici les caractéristiques de notre grande image:
Maximum de
positions
Maximum de
couleurs
Maximum
de mémoire
Écran de texte à
basse définition
n4x32
9
Aucune
Écran de graphiques
à basse définition
256x192
4
Dans le BASIC
Écran de graphiques
à haute définition
640x 1 92
16
E n dehors du BASIC
161
29 I DES POINTS PAR M I LLIERS
L'écran de graphiques à haute définition se comporte de façon très semblable à l'écran de
graphiques à basse définition. L'écran à haute définition, tout en offrant davantage de fonctions,
est cependant plus facile à utiliser.
Création d 'un écran de graphiques
(Commande HSCREEN)
Les graphiques à haute définition permettent d e créer un écran d e graphiques avec l a seule
commande HSCREEN. Celle-ci exécute les mêmes tâches que trois commandes à basse
définition.
•
Elle fixe les fonctions à utiliser sur l'écran de graphiques. comme la commande
PMODE.
•
Elle affiche l'écran de graphiques, comme la commande SCREEN.
•
Elle efface l'écran de graphiques. comme la commande PCLS.
La syntaxe de HSCREEN est:
H s c R E E N ne établit les fonctions. affiche et efface l'écran courant de graphiques à haute
définition.
n spécifie les fonctions que vous voulez utiliser (0.4).
Pour vous faire une idée de HSCREEN. tapez ce programme:
1 1/1
20
HSCR EEN 1
GOTO 2 0
Quand vous exécutez le programme. un écran vide de graphiques à haute définition apparaît.
Presser � pour revenir à l 'écran de texte.
HSCREEN. comme PMODE, vous permet de choisir différents réglages qui spécifient les
fonctions à utiliser. Vous pouvez utiliser les fonctions suivantes:
•
Positions de grille-Vous pouvez utiliser un maximum de 640 x 1 92 positions à la fois.
•
Couleu rs-Vous pouvez utiliser un maximum de 1 6 couleurs à la fois.
Les réglages disponibles sont indiqués à la table 29. 1 .
Table 29.1 I Réglages de HSCREEN
HSCREEN
HSCREEN
HSCREEN
HSCREEN
1
2
3
4
Positions
de grille
Couleurs
320
320
640
640
4
16
2
4
X
X
X
X
192
1 92
1 92
1 92
Le réglage HSCREEN 1 . que nous avons utilisé ci-dessus, spécifie une grille de 320 x 1 92,
avec un maximum de quatre couleurs.
A ces quatre réglages. on peut en ajouter un cinquième:
H SCREEN 0
163
29 I Des Points par Milliers
Ce réglage renvoie au mode de graphiques à basse défi nition. En mode à haute définition
et pendant l'exécution d'une commande HSCREEN 1 (2, 3 ou 4), vous ne pouvez pas afficher
un écran de graphiques à basse définition sans exécuter d'abord une commande HSCREEN O.
Il faut remarquer que, au contraire de PMODE, HSCREEN n'utilise pas de pages différentes
de mémoire de graphiques. Tous les écrans à haute définition sont stockés dans la même
zone de mémoire.
Production de graphiques sur l 'écran
(Commandes de graphiques à haute définition)
Les graphiques à haute définition possèdent un équivalent pour la quasi-totalité des commandes
de ba sse définition. La table 30.2 d o nn e les commandes de haute définition avec leurs
équivalents à basse définition.
Table
30.2 /
Commandes de graphiques
à
haute et basse définition
Haute définition
Basse définition
HCIRCLE
HPCLS
HCOLOR
H DRAW
HUNE
H PA lNT
HRESET
HSET
HPOINT
CIRC LE
PCLS
COLOR
DRAW
UNE
PAINT
RESET
SET
PPOINT
Par exemple, la commande HCIRCLE de haute définition correspond à la commande CIRCLE
de basse définition. Toutes deux se comportent pratiquement de la même manière. (Nous
étudions les quelques différences ci-dessous.)
164
29 / Des Points par Milliers
Les commandes de haute et basse définition étant très semblables, on peut facilement convertir
un programme des unes aux autres.
Prenons par exemple le premier programme du chapitre 25 qui trace un cercle sur l'écran
à basse définition.
5
PMO D E 4 , 1
PCLS
10
20
SCREEN 1 , 1
3 0 C I R C L E ( 1 2 8 , 96 ) , 9 5
40 GOTO 40
Pour convertir ce programme afin qu'il trace un cercle sur l 'écran à haute définition. tapez:
10
30
40
HSCREEN 2
H C I R C LE ( 1 60, 96) , 95
G O T O 40
Une autre utilisation des grilles
(Commandes de haute et de basse définition)
Au contraire des commandes de basse définition, les commandes de haute définition utilisent
des positions de grille exactes plutôt que mises à l 'échelle. Si vous passez ainsi à une grille
différente en haute définition, vous devez changer les positions de point du programme de
haute définition.
Par exemple, on utilise présentement une grille de 640 x - 92 pour le programme de cercle.
10
30
40
HSCREEN 2
H C I R C L E ( 1 6 0 , 96 ) , 9 5
GOTO 40
Changez le réglage de HSCREEN pour utiliser u n e grille d e 320 x 1 92 .
10
H S C REEN 1
Exécutez maintenant le programme. Vous êtes passé à une grille de 320 x 1 92; de ce fait,
le cercle apparaît en un endroit différent de l'écran. Pour le faire apparaître au même endroit,
changez les positions de point dans la commande HCIRCLE:
30
H C I R C L E ( 8 0 , 96 ) , 95
Une autre utilisation de la couleur
(Commandes à haute et basse définition)
Les commandes de graphiques à haute définition n' utilsent pas la palette comme leurs
équivalents de basse définition.
Ajoutez par exemple une ligne au programme de cercle pour que l' ordinateur peigne le cercle
de la couleur 1 .
35
H P A I N T ( 1 60 , 96 ) , 1 , 1
Exécutez maintenant le programme. En mode à basse définition, le cercle aurait été peint
avec une couleur parmi un choix de plusieurs, suivant le mode de couleur (2 ou 4 couleurs)
et le jeu de couleurs Qeu 1 ou 2) utilisé.
1 65
29 / Des Points par Milliers
En mode à haute définition, la couleur 1 spécifie toujours la même couleur qui est celle stockée
dans la case 1 de palette.
Pour peindre le cercle d'une couleur non courante (par exemple, code de couleur 23), stockez
le code de couleur dans la case 1 de palette. TapeL la ligne suivante et exécutez le programme:
3 P A L E T T E 1 , 23
L a table 7 . 9 d u c1apitre " D e tout et de rien " montre l'utilisation d e l a palette d ans chaque
mode de couleur HSCREEN par les commandes de graphiques à haute définition.
Une meilleure impression
(Commande HPRINT)
U n écran de graphiques à basse définition présente un grand inconvénient: il ne permet pas
d'imprimer facilement un message. On peut évidemment tracer chaque lettre à l'aide de la
commande DRAW, mais cette méthode fastidieuse prend beaucoup de mémoire.
En mode à haute définition, la commande HPRINT imprime directement un message sur l'écran
de graphiques à haute définition. Sa syntaxe est:
H P R I N T(x,y), messagee I mprime le message à la position de texte x,y, sur l'écran de
graphiques à haute définition.
Avec HPRINT, vous devez donner des positions de texte plutôt que des positions de
graphiques. Un écran de graphiques de 320 x 1 92 correspond à un écran de texte de 40 x 24
et un écran de graphiques de 640 x 1 92 à un écran d e texte de 80 x 24.
Avec HSCREEN 1 ou HSCREEN 2, vous disposez de 40 colonnes. Avec HSCREEN 3 ou
HSCREEN 4, il y en a 80. Si la longueur du message dépasse le nombre de colonnes
disponibles, la dernière partie en est coupée.
Voici des exemples des commandes HSCREEN:
H P R I N T ( 0 , 2 0 ) , " La ma rque e s t " , S C
H P R I N T ( 0 , 0 ) , " V o t r e nom e s t " ; AS
H P R I N T ( U , 1 0 ) , A$+B$
Appris au chapitre 2 9
166
COMMANDES
FONCTION
HSCREEN
HCIRCLE,
HCOLOR,
HUNE,
HRESET,
HPOINT
PALETIE
HPRINT
HPOINT
HCLS,
H DRAW
HPAINT,
HSET,
30 I STOCKAGE D ES GRAPHIQ U ES
GET et PUT sont pratiques en mode à basse définition. Ces commandes permettent de "tirer"
un rectangle, de le stocker dans un tableau et de le "mettre" en un endroit quelconque de
l'écran.
Un tableau prend cepe n dan t
programme BASIC.
beaucoup
de place en mémoire, au détriment de votre
Les équivalents de GET et PUT en haute définition ne stockent pas le rectangle à l'aide d ' u n
tableau. E n fait, ils n' utilisent pas de place dans l a zone d u BASIC. I l s emploient plutôt des
tampons GET/PUT spéciaux qui sont des zones de mémoire en dehors du BASIC.
Un tampon réservé
(Commande HBUFF)
Avant de pouvoir utiliser un tampon GET/PUT, il faut indiquer au BASIC comment vous comptez
vous y prendre. Dans ce but, vous utilisez la commande spéciale de haute définition HBUFF.
La syntaxe de HBUFF est:
H B u F F tampon, longueure Réserve un tampon GETiPUT.
le tampon est un nombre qui libelle le tampon GET/PUT.
les octets correspondent à la longueur du tampon GET/PUT (nombre d'octets 1 ) .
-
Pour utiliser HBUFF, le BASIC doit connaît re la longueur de mémoire à mettre de côté pour
stocker le rectangle. L'octet est l'unité de mesure de la mémoire. Su ivant le mode HSCREEN
utilisé, chaque octet peut stocker 2, 4 ou 8 points de l'écran. La table 30-1 indique le nombre
de points stockés par le BASIC dans un octet, suivant le mode HSCREEN utilisé.
167
30 / Stockage des Graphiques
Table 30.1 I Mémoire requise pour les graphiques
Mode d'écran
HSCREEN
HSCREEN
HSCREEN
HSCREEN
Points par octet
1
2
3
4
4
2
8
4
A titre d'exemple, supposons que vous voulez placer une commande HGET du rectangle
( 1 0,5)-(30, 1 5) dans HSCREEN 1 . Le BASIC arrondit les coordonnées X à l'octet le plus proche,
suivant le mode d'écran de graphiques utilisé. Le BASIC lit l a premi ère valeur X de 1 0 ét
la divise par le nombre de points par octet pour HSCREEN 1 (voir tabl e 30-1).
10 / 4
2.5
=
Le BASIC
arrondissant les coordonnées X de HGET/HPUT, ignorez la partie fractionnaire qui
suit le point décimal. La réponse est donc 2. Multipliez ce chiffre par le nombre de points
par octet pour HSCREEN 1 . Le résultat donne la première coordonnée X que le BASIC utilise
pour HGET.
2 . 4
8
=
Vous avez maintenant résolu près de la moitié du mystère. Procédez de même pour l'autre
coordonnée X.
30 I 4
7
•
4
7.5 (Ne tenez pas compte de la partie fractionnaire)
=
28
=
Dans HSCREEN 1 , si vous indiquez don c au BASIC de placer HGET(10,5)-(30, 1 5) , il utilise
réellement HGET(B,5)-(28, 1 5). Nous arrivons maintenant à la dernière partie du mystère. Quelle
est la longueur nécessaire de HBUFF pour stocker HGET (8,5)-(28, 1 5) dans HSCREEN 1?
Voici la solution.
Soustrayez la plus petite coordonnée X (8) de la plus grande (28).
28 - 8
20
=
Ajoutez 1 au résultat.
20
+
1
=
21
Divisez ce résultat (21) par le nombre de points par octet pour HSCREEN 1 (4).
21 / 4
5.25
=
Si la réponse comprend une partie fractionnaire, arrondissez-la au nombre entier suivant le
plus élevé. La réponse étant 5.25, arrondissez-la à 6 qui correspond au nombre d'octets requis
pour stocker chaque rangée ou la largeur du rectangle HGET en octets. Soustrayez maintenant
la plus petite coordonnée Y (5) de la plus grande (15).
15 - 5
10
=
Ajoutez 1 au résultat.
10 + 1
=
11
Cette réponse correspond à la hauteur du rectangle en points. Pour déterminer le nombre
total d'octets requis pour stocker le rectangle, multipliez la largeur en octets (6) par la hauteur
en points (1 1 ) .
6 • 11
168
=
66
30 / Stockage des Graphiques
La longueur étant égale au nombre d'octets moins 1 , soustrayez 1 de cette valeur.
66 - 1
=
65
De ce fait, HGET(10,5)-(30. 1 5) dans HPRINT 1 rrend un tampon HBUFF de longueur 65.
Pour vous faire une idée de HBUFF dans son programme, examinez la ligne ci-dessous. Cette
ligne attribue au tampon HBUFF n° 1 une longueur de 65. N'oubliez pas que cette longueur
es: inférieure de 1 au nombre d'octets que le tampon peut stocker. Dans cet exemple, HBUFF
peut stocker 66 octets.
10
HBUFF 1 , 65
Un rectangle dans le tampon
(Commande HGET)
La commande HGET vous permet de placer un rectangle dans le tampon. Cette commande
est l'équivalent de GET. Sa syntaxe est:
H G E T(x1 ,y1) - (x2,y2),tampon Tire Ln rectangle de l'écran de graphiques à haute définition
et le stocke dans le tampon.
Le programme suivant dessine une petite case dans le coin de l'écran et la place dans le
tampon 1 .
10
20
30
40
50
H B U F F 1 , 43
H S C R E EN 4
H � I N E ( 1 0 , 0 ) - ( 2 0 , 1 0 ) ,PSET , B F
HGET ( 1 0 , 0 ) - ( 20 , 1 0) ,1
GOTO 5 0
Le rectangle sur l'écran
(Commande HPUT)
La commande HPUT, qui correspond à PUT, vous permet de placer le rP.ctangle sur l'écran.
Sa syntaxe est:
H P U T (x1 ,y1)-(x2,y2),tampon, intervention Place un rectangle du tampon sur l 'écran de
graphique à haute définition à l'aide de l'intervention spécifiée. L'intervention peut
correspondre à PSET PRESET, AND, OR et NOT.
,
La ligne suivante place la case en un autre point du même écran:
45
H P U T ( 2 0 , 2 0 ) - ( 4 0 -3 0 ) , 1 , P S E T
I l ne faut pas oublier que les codes de couleur placés sur l'écran correspondent à des cases
de palette. Essayez d'utiliser AND et OR. Vous en tirerez peut-être des résultats étonnants,
pleins de couleur.
169
30 / Stockage des Graphiques
Appris au chapitre 30
170
Mots BASIC
Concepts
HBUFF
Réservation d'un tampon
HGET
et HPUT Utilisation du
tampon pour déplacer ou
reproduire u n triangle
PARTIE 5 I
PASSONS AUX
CHOSES SÉRIEUSES
• • •
Dans cette partie, nous abordons la gestion des données qui concernent entre autres votre
chéquier, votre dossier d'impôt, des adresses et les livres. Vous apprendrez à organiser ces
données avec de prog'ammes qui les classent, les mettent à jour, les impriment et les analysent.
1 71
3 1 I STOCKAGE DES DON NÉES
Le stockage d'un programme BASIC est facile, avec la commande CSAVE. Le stockage des
données demande un peu plus de travail; il vous faut un programme.
Ce chapitre vous apprend à écrire deux programmes pour stocker les données. Le premier
stocke les données sur cassette et le aeuxième les extré!Îl.
Programme de sortie des données
(Commandes OPEN, PRINT # et CLOSE)
Supposons que vous désirez stocker les chèques suivants sur bande:
------------CH ÈQUES----------OOCTEU R BERTRAND
SAFEWAY
ARM É E DU SALUT
MAISON DE LA PRESSE
Commençons par un court programme simple qui stocke le premier chèque (DOCTEUR
BERTRAND) sur bande. Tapez:
10
20
30
OPEN "0" , #-1 , " C H EQUES"
W R I T E #-1 , " DOCTEUR B E R T R A N D "
C LO S E # - 1
Préparez le magnétocassette pour l'enregistrement:
1.
Branchez le magnétocassette.
2.
Mettez une cassette dans le magnétocassette et rebobinez-la.
3.
Pressez les touches d'enregistrement (RECORD) et de lecture (PLAY) du magnétocassette.
1 73
3 1 / Stockage des Données
Exécutez ensuite le programme. Le magnétocassette se met en marche pendant que
l'ordinateur exécute plusieurs tâches.
•
Il établit la communication avec le magnétocassette.
•
Il prépare le stockage des données.
•
Il donne à la zone de la bande où vont être stockées les données le nom '.' CHEQUES".
Ces opérations se passent à la ligne 1 O. Notez la signification de #-1 . "O" et "CHEQUES " :
•
#-1 correspond au magnétocassette.
•
"O" correspond à la sortie.
•
"CHEQUES" indique un nom de fichier.
La ligne 20 envoie "DOCTEUR BERTRAND " au magnétocassette.
La ligne 30 termine la communication avec le magnétocassette.
Nous avons écrit un programme de sortie avec trois commandes dont les syntaxes sont:
o P E N mode, dispositif, fichiere Établit la commu nication avec le dispositif pour pouvoir
transmettre l'information du fichier à l'aide du mode spécifié de transmission des
données.
le mode peut être "I" (entrée) ou "O" (sortie)
le dispositif peut être *O (écran ou clavier), *-1 (magnétocassette) ou *-2 (imprimante).
P R I N T *dispositif, messagee Sort un message vers le dispositif.
c L O s E * dispositife Termine la communication avec le dispositif.
Programme d'extraction des données
(Com mande INPUT #)
Vous devez disposer d'un programme d'entrée pour extraire des données et les mettre en
mémoire. Effacez le programme de sortie présentement en mémoire et tapez:
1 00
11 0
1 20
130
OPEN " I " , #-1 , " C H EQ U E S "
I N p UT # - 1 A $
P R I NT A $
C LO S E # 1
I
Préparez le magnétocassette pour charger les données:
1.
Rebobinez la cassette.
2.
Pressez la touche de lecture (PLAY).
3.
Exécutez ensuite le programme.
La ligne 100 établit la communication avec le magnétocassette, cette fois-ci pour extraire ("I" )
des données d'un fichier intitulé "CHEQUES".
La ligne 1 1 O entre un élément de donnée de "CHEQUES" et le libelle A$. La ligne 1 20 affiche
A$.
La ligne 1 20 termine la communication avec le magnétocassette.
174
3 1 / Stockage des Données
Le programme d'entrée emploie une autre commande nouvelle dont la syntaxe est:
I N P U T •dispositif Extrait l'information du dispositif jusqu'à l'un des caractères suivants:
virgule (.), point-virgule (;) ou retour du chariot (&ENTERé).
Localisation de la fin du fichier
(Fonction EOF)
Supposons que l'on ignore le nombre d'éléments de données dans "CHEQUES". On désire
extraire tous les éléments de données jusqu'à la fin du fichier.
Dans ce but, ajoutez les lignes suivantes au programme d'entrée présentement en mémoire:
1 05
1 25
I F EOF (-1 ) = 1 THEN 130
GOT0 1 05
La ligne 1 05 vérifie si vous êtes arrivé à la fin du fichier.
•
Si c' est le cas, EOF (-1) est égal à - 1 . L'ordi nateur passe à la ligne 30 et termine
la communication avec le fichier.
•
Si ce n 'est pas le cas, EOF (-1) n'est à égal à -1 . L'ordinateur extrait l'élément suivant
de donnée du fichier.
Peur déterminer si vous avez atteint la fin du fichier, vous devez utiliser une nouvelle fonction
dont la syntaxe est:
E o F (dispositif'J Renvoie un nombre indiquant si vous avez atteint la fin du fichier sur le
dispositif. Le nombre retourné est 1 (fin de fichier) ou 0 (autre qLe fin de fichier).
Stockage d'autres données
Jusqu'à présent, "CH ÈQUES" a été facile a manipuler, sans être très utile. Supposons que
vous désirez stocker l'information suivante dans "CHÈQUES":
CHÈQUES
PAYABLE À
MONTANT
D ÉPENSES
DOCTEUR BERTRAND
SAFEWAY
ARM É E DU SALUT
MAISON DE LA PRFSSE
45.78
22.50
20.00
1 3.67
SOINS M É DICAUX
ALIME NTATION
CHARITÉ
AFFAIRES
Le programme de sortie suivant permet de stocker la totalité de l ' information ci-dessus, non
seulement pour les quatres chèques indiqués, mais aussi pour tous ceux que vous désirez:
5
C LS
1 0 OPEN " 0 " , #-1 , " C H EQ U E S "
I N P U T " PA Y A B L E A : " ; A$
20
I F A $ = " " T H E N 80
30
I NPUT "MONTANT : $ " ; 8
40
I N P U T " D E P E N S E S : " ; C$
50
60
PRINT #1 , A$, B , C $
GOTO 20
70
80
C LO S E # 1
·.::.
31 / Stockage des Données
Le programme d'entrée complémentaire suivant extrait tous les chèques stockés jusqu'à ce
qu'il arrive en fin de fichier:
1 00
110
1 20
1 50
1 60
1 70
OPEN " ! " , #-1 , "C HEQUES"
I F EOF C - 1 ) = - 1 T H EN 1 5 0
I N P UT A $ , B , C $
PRINT A$; B ; C$
GOTO 1 1 0
C LO S E # - 1
Appris au chapitre 3 1
COMMANDES
OPEN
CLOSE
PRINT #
I N PUT #
176
FONCTIONS
EOF
,
32 I TABLEAUX N U M ERIQU ES
Dans ce chapitre, nous apprenons à organiser des groupes importants de nombres à l'aide
d'un nouveau type de variable et d'une nouvelle méthode d'organisation des variables.
Nouveau type de variable
(Variables avec indice)
Aux élections, supposons que vous désirez stocker les voix des districts 1 à 14 dans des
variables:
RÉSULTATS D'UNE ÉLECTION
Circonscription
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Voix d'un candidat
143
21 5
1 25
331
442
324
213
115
318
314
223
1 52
314
92
Vous pouvez stocker ces voix dans le même genre de variable simple que vous avez utilisé
jusqu'à présent. Par exemple, stockez les voix des trois premiers districts dans des variables
simples en tapant:
A = 1 4 3 (ENTER)
B = 21 5 �
c = 1 2 5 ŒNITB.)
177
32 I Tableaux Numériques
Il est cependant préférable d'utiliser des variables avec indice. Tapez:
A ( 1 ) = 1 43 �
A ( 2 ) = 2 1 5 (ENTER)
A ( 3 ) = 1 2 5 (ENTt:RJ
Ces variables s'accompagnent d'indices comme 1 , 2 et 3. Les indices mis à part, elles s'utilisent
comme des variables simples. Pour vous en rendre compte, tapez ces deux jignes.
P R I N T A ; B ; C ŒNIEBJ
P R I N T A ( 1 ) ; A ( 2 ) ; A ( 3 ) (ENTER)
Organisation des variables avec indice
(Tableaux et commande DIM)
Comparez les deux programmes ci-dessous. Tous deux se déroulent d e façon identique. Le
programme 1 utilise des variables simples et le programme 2 des variables avec indice.
PROGRAMME 1
10
20
30
40
50
60
70
75
80
90
100
110
1 20
130
1 40
150
1 60
170
180
190
200
210
220
DATA 1 43 , 2 1 5 , 1 2 5 , 3 3 1 , 4 42
D A T A 32 4 , 2 1 3 , 1 1 5 , 3 1 8 , 3 1 4
DATA 223 , 1 5 2 , 3 1 4 , 9 2
READ A , B , C , D , E
READ F , G , H , I , J
READ K , L , M , N
I N PUT " D I S T R I C T NO. ( 1 - 1 4 ) " ; Z
I F Z>14 THEN 70
I F Z=1 T H E N P R I N T A "VO I X "
I F Z=2 T H E N P R I N T B " V O I X "
I F Z =3 T H E N P R I N T C " V O I X "
I F Z=4 T H E N P R I N T D "VO I X "
I F Z = 5 T H E N P R I N T E "VO I X "
I F Z=6 T H E N P R I N T F "V O I X "
I F Z=7 T H E N P R I N T G "VO I X "
I F Z=8 T H E N P R I N T H " V O I X "
I F Z=9 T H E N P R I N T r " V O I X "
I F Z=1 0 T H E N P R I N T J "VO I X "
I F Z = 1 1 T H E N P R I N T K "VO I X "
I F Z=1 2 T H E N P R I N T L "VO I X "
I F Z=1 3 T H E N P R I N T M "VO I X "
I F Z=1 4 T H E N P R I N T N "VO I X "
G O T O 70
PROGRAMME 2
10
20
30
40
50
60
70
80
85
90
1 00
178
DATA 1 43 , 2 1 5 , 1 2 5 , 33 1 , 4 42
DATA 32 4 , 2 1 3 , 1 1 5 , 31 8 , 3 1 4
D A T A 2 2 3 , 1 5 2 , 3 1 4 , 92
DIM A ( 1 4)
F O R X = 1 TO 1 4
READ A(X)
NEXT X
I N PUT " D I S TR I C T NO (1 - 1 4 ) " ; Z
I F Z> 1 4 T H E N 80
PRINT ACZ) "VOIX"
GOTO 80
32 / Tableaux Numériques
Le programme 1 est peu commode à écrire. Le programme 2 est au contraire court et simple.
Entrez et exécutez le programme 2 qui se déroule ainsi:
•
La ligne 40 réserve ou dimensionne de la place pour un
variables à indices s'étendant de A(O) à A(14).
•
Les lignes 50 et 70 établissent une boucle pour compter de 1 à 14.
•
La ligne 60 lit les 14 circonscriptions dans le tableau A.
tableau
intitulé A avec
YOUR COMPUT E R ' S MEMORY
•
A ( 1 ) = 1 43
A (8)
= 1 1 5
A(2) = 215
A (9)
= 318
A (3 ) = 1 25
A(10) = 314
A (4 ) = 331
A <1 1 > = 223
A ( 5 ) = 4 42
A ( 6) = 324
A ( 1 2 ) = 1 52
A(13) = 314
A (7) = 213
A ( 1 4) = 92
La ligne 80 vous demande d'entrer un indice et la ligne 90 imprime l 'élément demandé.
La ligne 40 utilise DIM, nouvelle commande BASIC, dont la syntaxe est:
D I M variable(n) Dimensionne la variable sous forme de tableau avec
n
i ndices.
Remarque: En fait, on ne doit utiliser DIM que si l'on compte utiliser des indices
supérieurs à 1;tn. Si l'on n' utilise cependant pas d'i ndices supérieurs à 10, il est
quand même bon d'utiliser DIM pour réserver la longueur exacte de mémoire.
Quand vous avez stocké l'information dans u n tableau, i l devient facile de la manipuler. Par
exemple. ajoutez les lignes suivantes pour changer l ' information:
92
94
96
97
98
I NPUT "VOULE Z-VOUS AJOUTER A C E C I " ; R$
I F R $ = " N O N " T H E N 80
I N PUT "C OM B I E N DE VOIX DE PLU S " ; X
A ( Z ) =A ( Z ) + X
P R I N T " L E S V O I X T O T A L E S P O U R LA C I R C O N S C R I P T I O N " Z "
S O N T M A I N T E NANT" A ( Z )
Vous pouvez aussi ajouter ces lignes pour afficher l'information:
72
I N P U T " D E S I R E Z - V O U S VO I R T O U S L E S TOTA U X 11 ; S $
74
I F S$="0U I " T H E N GOSUB 1 1 0
GOTO 72
1 00
110
PRINT "CI RCONS C R I PTION " , "VOIX"
F O R X=1 T0 1 4
1 20
1 3 0 PRINT X , A (X)
1 40 N E X T X
1 50
RETURN
179
32 I Tableaux Numériques
Un deuxième en plus
(Utilisation de deux tableaux)
Supposons que vous désirez aussi compter les voix d'un deuxième candidat (dandidat B):
RÊSULTATS DE L'ÉLECTION
Circonscription
Voix pour le
candidat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
A
Voix pour le
candidat 8
678
514
430
475
302
520
613
694
420
518
370
412
460
502
1 43
215
1 25
331
442
324
213
115
318
314
223
1 52
314
92
Ajoutons un autre tableau (tableau B) au programme. Le programme suivant enregistre les
voix du candidat A (tableau A) et du candidat B (tableauB):
10
20
30
40
50
60
70
80
90
1 00
110
1 20
130
1 40
1 45
1 50
1 60
1 70
1 80
D A T A 1 4 3 , 2 1 5 , 1 2 5 , 3 31 , 44 2
D A T A 32 4 , 2 1 3 , 1 1 5 , 3 1 8 , 3 1 4
DATA 223 , 1 5 2 , 3 1 4 , 92
D A T A 67 8 , 5 1 4 , 43 0 , 4 7 5 , 3 0 2
D A T A 5 2 0 , 6 1 3 , 69 4 , 4 2 0 , 5 1 8
DATA 370 , 4 1 2 , 46 0 , 502
DIM A C 1 4) , B C 1 4)
FOR X = 1 TO 1 4
READ A(X)
N EXT X
FOR X = 1 TO 1 4
READ B ( X)
N E XT X
I N P U T " C I R C ON S C R I P T I O N N O . " ; Z
I F Z>1 4 T H E N 1 40
I N P U T " C A N D I D AT A OU B " ; R $
I F R $ = 1 1 A 11 T H E N P R I N T A ( Z )
I F R$="B" T H E N P R I NT B C Z )
GOTO 1 40
EXERCICE
32· 1
Écrivez u nprogramme d'inventaire qui permette de suivre 1 2 articles,
1 à 1 2 , et la q uantité de chacun d'eux.
180
numérotés de
32 / Tab/eaux Numériques
Distribution des cartes
(Exemple de tableaux)
Vous devez utiliser un tableau pour suivre les 52 cartes. Effacez le programme puis tapez
et exécutez le suivant:
F O R X=1 TO 5 2
40
C= R N D ( 5 2 )
50
90
PRINT C;
1 00 NEXT X
L' ordinateur distribue 52 cartes au hasard, mais si vous y regardez de plus prés, certaines
des carte sont les mêmes.
Pour vous assurere que l'ordinateur distribue une carte donnée une seule fois, vous pouvez
établir un autre tableau (tableau T) qui suit chaque carte donnée. Ajoutez les lignes su ivantes:
DIM (52)
5
10
FOR X=1 T0 52
T < X ) =X
20
NEXT X
30
Les lignes ci-dessus établissent le tableau T pour les 52 cartes: T(1)
T(52) = 52 .
=
1 , T(2)
=
2, T(3) 3 .
=
Ajoutez ensuite quelques lignes pour "effacer" chaque carte d u tableau T quand elle a été
donnée. Tapez:
60
80
I F T ( C ) =0 THEN 50
î ( C ) =0
L'ordinateur ne peut maintenant plus distribuer deux fois la même carte. Par exemple,
supposons que l'ordinateur donne d'abord un 2. La ligne 80 fait passer la valeur de T(2) de
2 à o.
Supposons ensuite que l'ordinateur distribue u n autre 2 . T(S2) étant maintenant égal à O, la
ligne 60 revient à la ligne 50 pour distribuer une autre carte.
Exécutez le programme. Vous pouvez remarquer que l'ordinateur ralentit vers la fin du jeu
de cartes. I l doit essayer plusieurs cartes différentes avant d'en trouver une qui n'a pas encore
été distribuée.
Pour jouer à un jeu de cartes, vous devez suivre les cartes distribuées. Dans ce but, vous
pouvez établir un autre tableau (tableau D). Ajoutez les lignes suivantes, qui stockent toutes
les cartes dans leur ordre de distribution dans le tableau D:
7
70
90
D I M D C52)
O (X) = T C C )
PRINT D (X) ;
EXERCICE
32-2
Ajoutez des lignes au programme pour qu'il n'affiche que votre "main" Oes cinq
premières cartes distribuées).
181
32 / Tableau Numériques
Appris au chapitre 32
182
COMMANDE
CONCEPT
DIM
tableaux
33 I TABLEAUX EN CHAÎNE
Dans le dernier chapitre, nous avons utilisé des tableaux pour manipuler des nombres. Ici,
nous les utilisons pour manipuler des mots en corrigeant, en mettant à jour et en i mprimant
un essai entier.
Stockage des mots dans des variables
(Tableaux en chaine)
Commencez par une liste simple de mots composés d'articles d'épicerie:
1.
2.
3.
4.
5.
6.
OEUFS
BACON
POMMES DE TERRE
SEL
SUCRE
LAITUE
7.
8.
9.
10.
11.
1 2.
TOMATES
PAIN
LAIT
FROMAGE
POISSON
JUS
Attribuez chaque mot à une variable à indice. Cette fois-ci, utilisez une variable en chaîne
à indice inférieur. Par exemple pour les trois premiers art'cles, tapez:
"0 EU F S " (ENTERl
ŒNill)
S $ ( 3 ) = " P O M M E S D E T E R R E " (ENTER)
S$ (1
) =
S $ ( 2 ) = " BA CON"
Pour comprendre la nise en mémoire des articles, tapez:
P R I N T S $ ( 1 ) , S $ ( 2 ) , S $ ( 3 ) ŒRŒ.ID
183
33 I Tableaux en Chaine
Préparez maintenant un programme qui lise ces mots dans un tableau S$ et les affiche ensuite:
DIM S$(12'
5
DATA OEUFS , BACON , POMMES DE T E R R E , S E L
10
DATA S U C R E , L A I T U E , TOM A T E S , P A I N
20
3 0 D A T A L A I T , F RO MA G E , P O I S S O N , J U S
F O R X = 1 TO 1 2
40
READ S $ ( X )
50
60 NEXT X
PRINT " L I S TE DE MAGAS IN A G E : "
70
FOR X=1 T0 1 2
80
PRINT X ; S$(X)
90
1 00 NEXT X
EXERCICE
33-1
Ajoutez des lignes au programme ci-dessus pour pouvoir changer un article
quelconque de la liste.
EXERCICE
33-2
Dans le programme suivant, un tableau sert à écrire les paroles d'une chanson.
DIM A$(4)
5
P R I NT " T A P E Z 4 L I G N E S "
10
FOR X=1 TO 4
20
I N PUT A $ ( X )
30
N EXT X
40
CLS
50
P R I N T " VO I C I V O T R E C H A N S O N "
60
70 PRINT
F O R X=1 TO 4
80
PRINT X ; " " ; A$(X)
90
NEXT X
1 00
Ajoutez des lignes pour pouvoir réviser une ligne quelconque.
184
33 / Tableaux en Chaine
Rédaction d'un essai
(Exemple de tableaux en chaine)
Vous avez appris à utiliser les tableaux en chaîne. Vous pouvez maintenant écrire facilement
un programme qui stocke et édite les données tapées. Tapez le programme suivant:
1
C LEAR
5
D I M A $ ( 5 0)
PRINT "TAPEZ U N PARAGRAPHE"
10
P R I N T " P R E S S EZ < / > S I VOUS A V E Z F I N I "
20
X = 1
30
A$ = I N KEY$
40
I F A$ = " " T H EN 40
50
PRINT A$;
60
I F A$ = "/" THEN 1 1 0
70
A $ ( X ) = A $ ( X ) + A$
80
IF A$ = " . " TH EN X = X + 1
90
GOTO 40
100
CLS
110
1 20
P R I N T "VOTRE PARAGRAP H E : "
PRINT
130
FOR Y = 1 TO X
1 40
150 PRINT A$(Y) ;
N EXT Y
1 60
Exécutez le programme. Pour comprendre le stockage de chaque phrase, tapez ces lignes:
PR I NT A$ ( 1 ) (ENTERJ
P R I N T A $ ( 2 ) (ENTER)
PRINT A$(3) �
Le programme se déroule ainsi:
1.
La ligne 1 efface suffisamment d'espace de chaîne.
2.
La ligne 5 garde de la place pour un tableau A$ qui peut contenir jusqu'à 50 phrases.
3.
La ligne 30 rend X égal à 1 . X sert à libeller toutes les phrases.
4.
La ligne 40 vérifie la touche que vous pressez. S'il n'y a rien
(" "), la ligne 50 renvoie l' ordinateur à la ligne 40.
5.
La ligne 60 imprime la touche pressée.
6.
La ligne 70 renvoie l'ordinateur aux lignes qui impriment votre paragraphe quand vous
avez pressé la touche "/".
7.
La ligne 80 établit une chaîne et la libelle avec le nombre X qui est égal à 1 jusqu'à ce
que vous pressiez un point (.) La ligne 90 rend ensu te X égal à X + 1 .
8.
Les lignes 1 40 à 1 60 impriment votre paragraphe.
Par exemple, si vous aviez d'abord pressé "R,"
A$(1) EST ÉGAL A "R".
Si vous aviez ensuite pressé " O" ,
A$(1) EST ÉGAL A A$(1) QUI VAUT "R" + "O"
ou
"RO".
185
33 / Tab/eaux Chaine
Supposons que si A$(1) est égal à ROSES ROUGES, vous pressez le point. A$(1) est alors
égal à l'expression entière ROSES ROUGES. La lettre suivante pressée est dans A$(2).
EXERCICE AVANCE 33-3
Voici un exercice plus difficile (mais vous pouvez quand même trouver la solution)
qui se rapporte au traitement de :exte. Changez le programme ci-dessus pour pouvoir:
•
imprimer une phrase quelconque;
•
réviser une phrase quelconque.
Vous devrez peut-être revoir l'exercice avancé du chapitre 1 4. Notre réponse est
à la fin du livre.
Utilisation de l' imprimante
(Commandes PRINT # et LLIST)
Si vous avez une imprimante, branchez-la dans la prise d'entrée/sortie série (SERIAL 1/0).
Mettez l 'imprimante en marche et insérez du papier. Consultez les instructions du manuel
de l'imprimante. Si vous êtes prêt, tapez le court programme suivant:
10
20
I N PUT A$
P R I N T #-2 , A$
Tapez ensuite:
L L I ST (ENTER)
Si votre programme n'apparaît pas sur l'imprimante, assurez-vous que celle-ci est en ligne
et reliée à votre clavier. Tapez de nouveau LLIST (ENTERl.
Exécutez le programme et observez l'imprimante au travail. PRINT #-2, indique à l 'ordinateur
d'imprimer, non sur l'écran, mais sur le dispositif #-2, qui est l'imprimante. N'oubliez pas de
taper une virgule après -2, sinon il se produit une erreur de syntaxe.
EXERCICE 33-4
Jetez un coup d'oeil au programme "Rédaction d'un essai" donné dans ce chapitre.
Changez les lignes 1 40 à 1 60 pour imprimer le paragraphe sur l'imprimante plutôt
que sur l'écran.
Appris au chapitre 33
186
COMMANDES
CONCEPT$
LLIST
PRINT #-2
Tableaux en chaîne
34 I TABLEAUX
M U LTIDIMENSIONN ELS
Les tableaux facilitent l'analyse de l'information. E n donnant à chaque article plus d'un indice,
vous pouvez le faire passer par des dimensions différentes.
( "\
Prenons le programme d'élection du chapitre 32. Voici l'i nformation. (Nous n'utiliserons que
les trois premières circonscriptions µour simplifier le programme.)
Stockage des tables de nombres
(Tableaux bidimensionnels)
Circonscription
1
2
3
Voix pour
Voix pour
le candidat 1
le candidat 2
1 43
215
125
678
514
430
Au chapitre 32, vous avez stocké les "articles" ci-dessus (groupes de voix) dans deux tableaux
une dimension: les tableaux A et B. Dans ce chapitre, vous allez les stocker dans un seul
tableau bidimensionnel facile à manipu1er: le tableau V.
à
Le programme suivant met les articles dans le tableau
V.
5
D I M V ( 3 , 2)
1 0 DATA 1 4 3 , 678 , 2 1 5 , 5 1 4 , 1 2 5 , 430
20
FOR 0=1 TO 3
30
FOR C=1 TO 2
40
READ V ( D , C )
5 0 NEXT C
60 N E X T D
I N PUT " C I R CO N S C R I P T I O N NO ( 1 -3 ) " ; 0
70
I F 0 < 1 O R D>3 T H E N 7 0
80
I N P U T " C A N D I D A T N O ( 1 -2 ) " ; 0
90
I F C <0 OF C > 2 T H E N 9 0
1 00
110
PRINT V(O,C)
1 2 0 GOTO 70
187
34 / Tableaux Multidimensionnels
Tapez et exécutez le programme. Vous pouvez voir que chaque article est libellé par deux
indices inférieurs.
Le programme se déroule ainsi:
La ligne 5 réserve de la place en mémoire pour le tableau V. Chaque article du tableau V
peut avoir deux indices inférieurs dont le premier ne dépasse pas 3 et le deJxième ne dépasse
pas 2.
Les lignes 20 à 60 lisent toutes les voix dans le tableau V en don nant deux indices inférieurs
à chacune.
•
Le premier indice inférieur correspond à la circonscription (circonscriptions 1-3).
•
Le second indice inférieur correspond au candidat (candidats 1-2).
YOUR COMPUT E R ' S MEMORY
V ( 1 , 1 ) = 1 43
V C 1 , 2 ) = 678
V C2 , 1 > = 21 5
V C 2 , 2 ) = 51 4
V C3 , 1 > = 1 25
V C 3 , 2 ) = 430
Par exemple, 678 est libellé V(1,2). Autrement dit, 678 vient de l a ci rconscription 1 et est destiné
au candidat 2.
Toutes les voix étant dans un tableau bidimensionnel, il devient facile de les analyser en deux
dimensions. En ajoutant par exemple les lignes suivantes, vous pouvez mprimer toutes les
voix de deux façons: par circonscription et par candidat.
(Annulez d'abord les lignes 70 à 1 20.)
70
80
1 00
110
188
I N P U T " T A P E Z <1 > P O U R LA C I R C O N S C R I P T I O N O U < 2 > P O U R
LE C AN D I D AT " ; R
I F R < 1 O R R > 2 T H E N 70
ON R G O S U B 1 0 0 0 , 2 0 0 0
G OT O 7 0
1 0 00
1 01 0
1015
I N PUT " C I R C ON S C R I PT ION NO ( 1 -3 ) " ; D
I F D < 1 OR D > 3 T H E N 1 0 00
C LS
1 02 0
1 03 0
1 04 0
1 050
1 0 60
1 07 0
1 08 0
P R I N T @ 1 3 2 , " V O I X D E L A C I R C O N S C R I P T I O N" D
PR INT
F O R C = 1 TO 2
PRINT "CANDIDAT: C ,
PRINT V ( D , C)
NEXT C
RETURN
2000
201 0
201 5
2020
2 03 0
2040
2050
2060
2070
2080
I N PUT " C A N D I DAT N O C 1 - 2 ) " ; C
I F C < 1 OR C>2 THEN 2000
CLS
PRINT @ 1 3 2 , "VOIX POUR LE C A N D I D AT"C
PRINT
FOR D=1 TO 3
P R I N T " D I ST R I C T " D ,
PRINT V ( D , C )
N E XT D
RETURN
34 ! Tableaux Multidimensionnels
La troisième dimension
(Tableaux tridimensionnels)
Vous pouvez continuer avec autant de dimensions que vcus le voulez. Vous n'êtes limité que
par la quantité de données que peut accepter la mémoire de l 'ordinateur.
Ajoutez une troisième dimension au tableau V pour les groupes d'intérêt. Voici les données:
VOIX DU GROUPE D'INTÉRÊT 1
Candidat 1
Circonscription 1
Circonscription 2
Circonscription 3
Candidat
1 43
2
678
514
430
215
1 25
VOIX DU GROUPE D'INTÉRÊT 2
Candidat 1
Circonscription 1
Circonscription 2
Circonscriptoin 3
Candidat
525
318
2
54
158
200
254
VOIX DU GROUPE D'INTÉRÊT 3
Candidat 1
Circonscription 1
Circonscription 2
Circonscription 3
400
1 24
75
Pour placer ces données dans l a mémoire de votre ordinateur,
Candidat
2
119
300
419
effacez l e prug ·amme et tapez:
5
D I M V C3 , 3 , 2 )
10
D A T A 1 43 , 6 7 8 , 2 1 5 , 5 1 4 , 1 2 5 , 43 0
20
30
40
50
60
70
80
90
1 00
110
1 20
130
140
1 50
1 60
1 70
1 80
DATA 5 2 5 , 5 4 , 3 1 8 , 1 5 8 , 2 5 4 , 200
DATA 400, 1 1 9 , 1 2 4 , 3 0 0 , 7 5 , 41 9
F O R G = 1 TO 3
F O R 0 "' 1 T O 3
FOR C=1 TO 2
READ V (G , D , C)
NEXT C
NEXT D
NEXT G
I NPUT
I F G <1
I N PUT
I F D <1
I N PUT
I F C<1
P R I NT
GOT0 1
"GROUPE D ' INTERET N O ( 1 -3) " ; D
0 R G>3 T H E N 1 3 0
" C I R C ON S C R I P T I O N N O C 1 - 3 ) ; D
O R D>3 T H E N 1 3 0
" C A N D I D AT N O ( 1 - 2 ) " ; C
O R C>2 T H E N 1 5 0
V(G, D,C)
10
189
34 / Tableaux Multidimensionnels
Exécutez l e programme et vérifiez les indices inférieurs. Les lignes 4 0 à 100 mettent toutes
les voix dans le tableau V en donnant trois indices inférieurs à chacune:
•
Le premier indice inférieur correspond au groupe d'intérêt (1-3).
•
Le deuxième correspond
•
Le troisième correspond au candidat (1-2).
à
la circonscription (1-3).
YOUR COMPUTE R ' S MEMORY
V(1 , 1 , 1
VC1 ,2,1
VC1 ,3,1
V(2,1 ,1
V(2,2,1
V(2,3 ,1
V<3 , 1 , 1
V(3 , 2 , 1
V(3,3 , 1
)
)
)
)
)
)
)
>
>
=
=
=
=
=
=
1 43
21 5
1 25
525
31 8
25 4
= 400
= 1 24
= 75
V(1 ,1 ,2)
V (1 , 2 , 2)
V (1 , 3 , 2)
V(2,1 ,2)
VC2,2 ,2)
VC2,3,2)
V(3 , 1 ,2)
VC3 , 2,2)
V(3,3 , 2)
=
=
=
=
=
=
=
=
=
67 8
514
43 0
54
1 57
200
119
3 00
41 9
Par exemple, 678 est maintenant libellé V(1 ,1,2). 678 correspond donc au groupe d'intérêt 1
de la circonscription 1 et revient au candidat 2.
Pour profiter des trois dimensions, annulez les lignes 110 à 180 et tapez:
110
P R I N T : P R I N T "TAPEZ < 1 > POUR L E G ROUPE"
1 20
130
P R I N T " < 2 > P O U R L A C I R C O N S C R I P T I O N OU < 3 > P O U R L E C A N D I D A T "
P=224 : I N PUT R
ON R GOSUB 1 0 0 , 2000 , 3000
1 40
1 50
1
1
1
1
1
1
000
01 0
020
03 0
040
050
1
1
1
1
06 0
07 0
08 0
1 00
1110
1 1 20
1 1 30
1 1 40
190
GOT0 1 1 0
I N P UT " G R OU P E ( 1 -3 ) " ; G
I F G < 1 OU G > 3 T H E N 1 0 00
CLS
PRINT @ 1 0 2 , "VOI X DU GROUPE"G
P R I N T @ 1 6 8 , : C A N O . 1 11
PRINT @ 1 7 6 , "CAN O . 2"
F O R D = 1 TO 3
PRINT @P, "CIRC."D
FOR C=1 TO 2
P R I N T @P + 8* C , V ( G , D , C ) ;
N E XT C
P=P+32
N EXT D
R ET U R N
34 / Tableaux Multidimensionnels
2000
201 0
2020
2030
2040
2050
2060
2070
2080
2 1 00
21 1 0
2120
2130
2 1 40
3000
301 0
3020
3030
3040
3050
3060
3 07 0
3080
31 1 0
3120
3130
3 1 40
I N P UT " C I R C O N S C R I P T I ON ( 1 -3 ) " ; 0
I F 0 <1 O R D > 3 T H E N 2 0 0 0
C LS
P R I NT @ 1 0 2 , "VOIX DE C I R C . " D
PRINT @168, "CANO. 1 "
P R I NT @ 1 7 6 , " C A N O . 3 "
FOR G=1 TO 3
PRINT @ P , " GROUPE"G
FOR C=1 TO 2
P R I N T @ P , 8* C , V ( G , O , C ) ;
NEXT C
P=P+32
NEXT G
R E TURN
I N P UT " C A N D I D A T ( 1 - 2 ) " ; C
I F C < 1 OR C>2 T H E N 3000
CLS
P R I N T @ 1 0 2 , "VOIX POUR CAND . " C
PRINT @168, " C I R C .
PRINT @176, "CIRC .
P R I NT @ 1 8 4 , " C I R C .
FOR G=1 TO 3
PRINT @P + 8*0 , V < G
NEXT D
P=P+32
NEXT G
1"
2"
3"
,D,C) ;
R E TURN
Exécutez le programme. Vous pouvez maintenant voir l 'information sous trois angles.
EXERCICE
34·1
Ecrivez un programme pour distribuer les cartes à l'aide d'un tableau bidimensionnel.
La première dimension doit correspondre à la couleur des cartes {1 ·4) et la deuxième
à leur valeur (1 -13).
Appris au chapitre 34
CONCEPT
Tableaux multidimensionnels
191
T H E REAL THING
lntroducing . . . coco 3!
Sample program no.
22
lntro highlights some of the new
features of Color BASIC version 2.
·�
P ..... i tï ....
.: c r- i.:- � r
·. �
t
or
Computer Art
Sample program no.
29
Random lines, circles, and boxes
create colorful computer art. Try
our program, then change it.
The Coco Rainbow
Sample program no. 23
Hcolors lets you see ail
colors, eight at a time.
sixty-four
The Artists Palette
Sample program no.
24
Palette shows you a mixture of
sixteen colors randomly selected
fmm the sixty-four available colors_
-
-
--
-
-
-
�-
- -·
eoocf••o• c)•o•
OC)ee()eOOeC>eeo�
_
Color Doodle
Sample program no. 30
Color Doodle lets you draw your
own computer art on the screen.
Look at the program, and add your
own special function keys.
Going Everywhere
at Once
Sample program no.
5
ln-Out draws moving patterns of
lines in exc;iting colors. Change the
colors for more variety.
Pick a Lucky Clover
Sample program no. 1 7
Grow your own 8-Leaf Clover.
Transplant it to other parts of the
screen.
String Art
Sample program no.
28
Moving lines draw colorful string
art. The program uses random
starting points for a line, and twists
them until they bounce off the
screen edges.
A Sine of the Times
Sample program no. 9
Weave a wave across your screen
with a loop and some t ricky
trigonometry.
This Fan is a Breeze
Sample program no. 19
Cool off in front of your own
computerized fan. Change the
colors for different effects.
1 CAO, Can Vou?
Sample program no. 7
Projection Studies gives you a
first encounter with Computer
Aided Desig n (CAO).
This is your BASIC
tunnel . . .
See do it yourse/f program no. 24- 1
Dig an electronic tunnel. Look at
how do it yourself program no
24-1 draws chimney smoke. Delete
lines 25-90 and design your own
tunnel. Hint: Try a larger radius.
Experiment with the program to
change the depth and width of the
tunnel.
.
Looping Loops
Sample program no. 27
Watch circles change in color and
grow. The sizes change at random.
Colorful Boxes
Sample program no. 25
Colorbox draws a screen full of
boxes, then changes the colors.
An Electronic Blanket
Sample program no. 1 3
Navaho Blanket to keep
yourself warm. Experiment with
different sizes and colors.
Weave a
Build Your Own House
Do it yourself program no. 26-4
Build a house, complete with
smoking chimney. Build your own
additions.
PART I E 6 I
RETOUR AUX ÉLÉM ENTS D E BASE
Dans la partie qui suit de ce livre, vous apprendrez de nouvea�x mots du BASIC qui vous
aideront à perfectiorner et raffiner vos programmes.
1 93
35 I Les Nombres
Vous pouvez utiliser de nombreuses fonctions numériques pour vous aider dans les calculs
mathématiques. Ce chapitre énumère ces fonctions et vous apprend aussi à créer les vôtres.
Fonctions arithmétiques
(Fonctions SQR, FIX, ABS et SGN)
Le premier groupe de fonctions, qui réunit SOR, FIX, ABS et SGN, se rapporte aux problèmes
arithmétiques.
SOR permet d'extraire la racine carrée d'un nombre. En voici la syntaxe:
s Q R (nombre)
Le nombre correspond à zéro ou à un nombre positif.
A titre d'exemple de SOR, tapez:
P R I N T SQR ( 1 0 0) �
L'ordinateur indique 1 O qui est la racine carrée de 1 OO.
FIX convertit un nombre à sa partie entière en éliminant tous les chiffres à la droite du point
décimal. Sa syntaxe est:
F I x (nombre)
A titre d'exemple de FIX, tapez:
P R I NT F I X ( 2 . 7 6 4 3 9 5 1 ) (ENTER)
L'ordinateur donne 2 qui est la partie entière de 2. 764395 1 .
Oa1s cet autre exemple avec FIX, ce programme décompose un nombre en sa partie entière
et sa partie fractionnaire.
10
20
30
40
50
60
70
C LS
I N P U T "UN N O M B R E COMME X . Y Z " ; X
W= F I X ( X )
F=ABS ( X ) -A B S ( W )
P R I N T "PART I E EN T I E R E=" ; W
P R I N T "PART I E F R A C T I O N N A I RE=" ; F
GOTO 20
1 95
35 / Les Nombres
SGN vous indique si u n nombre est positif, négatif ou nul. Sa syntaxe est:
s G N (nombre)
Comme exemple de SGN. exécutez le programme suivant:
10
20
30
40
50
I N PU T " T A P E Z U N N O M B R E " ; X
I F SGN ( X ) = 1 T H E N P R I N T "POS I T I F"
I F S G N ( X ) = 0 T H E N P R I N T " N U L"
I F S G N ( X ) = -1 T H E N P R I N T " N E G A T I F "
G O T0 1 0
ABS vous donne la valeur absolue d'un nombre (grandeur du nombre, sans considération
de son signe). Sa syntaxe est:
A B s (nombre)
Comme exemple d'ABS. exécutez ce programme:
10
20
30
I N PUT "TAPEZ U N NOMB R E " ; N
P R I N T " LA VALEUR ABSOLUE EST" ABS ( N )
GOTO 1 0
Fonctions trigonométriques
(Fonctions SIN, COS, LOG et EXP)
Le groupe suivant, composé des fonctions SIN, COS. LOG et EXP, sert aux calculs des
opérations trigonométriques (calculs des côtés et des angles inconnus d'un triangle).
SIN calcule le sinus d'un angle. Sa syntaxe est:
s r N (angle)
L'angle correspond à la valeur de l'angle en radians.
COS calcule le cosinus d'un angle. Sa syntaxe est:
c o s (angle)
L'angle correspond à la valeur de l'angle en radians.
TAN calcule la tangente d'un angle. Sa syntaxe est:
T A N (angle)
L'angle correspond à la valeur de l'angle en radians.
ATN calcule l'arc tangente d'un angle. Sa syntaxe est:
A T N (angle)
L'angle correspond à la valeur de l'angle en radians.
Dans les programmes suivants de trigonométrie. on utilise les fonctions SIN, COS, TAN et
ATN pour calculer les côtés et angles inconnus d'un triangle. Vous pouvez utiliser ces
programmes dans de nombreuses applications pratiques sans avoir à connaître la
trigonométrie.
Parmi ces applications pratiques, citons la construction. Par exemple, si vous construisez un
escalier, ces programmes peuvent vous aider à en calculer la pente et la hauteur.
1 96
35 / Les Nombres
Dans chaque programme, nous utilisons les lettres SA, SB, SC, AA, AB et AC pour désigner
les côtés et les angles d'un triangle, comme le montre l'illustration ci-dessous.
AB
SB
Dans le premier programme, vous devez entrer le côté AC et les angles AA et AB. Le
programme utilise ensuite la fonction SIN pour calculer les côtés SA et SB.
5
10
C LS
I N P U T "QU E L E S T L ' AN G L E AA C EN D E G R E S ) " ; A A : I F AA<=0 OR
20
A A > = 1 80 T H E N 1 0 0
I N P U T " Q U E L E S T L ' A N G L E A B ( E N D E G R E S ) " ; A B : I F A A < = 0 OR
30
40
50
60
70
A B > = 1 8 0 T H EN 1 0 0
I N P UT " Q U E L EST LE COTE SC ( S C ) " ; S C :
I F S C <=0 T H E N 1 0 0
AC=1 80- (AA+AB) ' VA L EU R D E L ' A N G L E AC
I F (AA+AB+AC) <> 1 80 THEN 1 00
1 T R I A N G L E = 1 80 D E G R E S
AA=A A / 5 7 . 29577 9 5 1 : AB=AB / 5 7 . 2957795 1 : AC=AC / 5 7 . 29577951
' C O N V E R T I T L E S D E G R E S EN R A D I ANS
SA = C C S I N ( A B ) ) / ( S I N ( A C ) ) 8 S C : I F S A < 0 T H E N 1 0 0
S B = C < S I N ( A B ) ) / ( S I N ( A C ) ) * S C : I F S B <0 T H E N 1 0 0
P R I N T " L E C O T E S A ( S A ) A" S A " D E L O N G " : P R I N T " L E C O T E S B
( S B ) A " SB " D E LO N G " : GOTO 1 0
P R I N T " D E S O L E , C E N ' E S T PAS UN T R I A N G L E , R E C O M M E N C E Z " : G O T 0 1 0
100
80
90
Dans le deuxième programme, vous entr.ez les côtés SA et SB et l'angle AC. Le programme
utilise la fonction COS pour calculer le côté SC.
5
C LS
10
20
30
I N PUT " Q U E L E S T L ' A N G LE C C A C > " ; A C : I F A C < 0 0R A C > 1 8 0 T H E N 1 0 0
A C = A C / 5 7 . 2 9 5 7 7 9 5 1 ' C O N V E R T I T LES D E G R E S EN R A D I A N S
I N P U T " Q U E L E S T L E C O T E A ( S A ) " ; S A : I F S A < =0 T H E N 1 0 0
I N P UT " Q U E L E S T L E C O T E B ( S B ) " ; S B : I F S B <=0 T H E N 1 0 0
40
S C = ( ( S A B2 ) + ( S B t2 ) ) - ( 2 * C S A * S B * C O S C A C ) ) ) : I F S C <0 T H E N 1 0 0
50
P R I N T " L E C O T E C ( S C ) A " S Q R ( S C ) " D E LO N G " : G O T O 1 0
60
P R I N T " D E S O L E , C E C I N ' E S T P A S U N T R I A N G L E , R E C OM M E N C E Z " :
1 00
GOTO 1 0
Dans le troisième programme, vous entrez le côté SB et l'angle AA. Le programme utilise
la fonction TAN pour calculer le côté SA.
5
C LS
I N PUT " Q U E L E S T L E COTE B ( S B ) " ; S B : I F S B <=0 T H E N 1 00
I N PUT " Q U E L E S T L ' A N G L E A C A A ) " ; A A : I F AA<=0 O R
A A > = 1 80 T H E N 1 0 0
AA=A A / 5 7 . 29577951 ' C O N V E R T I T LES D E G R E S EN R A D IANS
30
SA=SB* (TAN (AA) ) : I F SA<=0 THEN 1 00
40
P R I N T " L E C O T E A ( S A ) A " S A " D E LO N G " : G O T O 1 0
50
1 00
P R I N T " D E S O L E , C E C I N ' E S T P A S U N T R I A N G L E , R E C O MM E N C E Z " :
GOTO 1 0
10
20
197
35 I Les Nombres
Dans le quatrième programme, vous entrez le côté SB et l ' angle AA. Le programme utilise
les fonctions TAN et ARC pour calculer le côté SA.
10
20
30
40
50
60
70
80
90
1 00
110
1 20
1 30
1 40
1 50
C LS
I N P U T " Q U E L E S T L E C O T E A C S A) " ; S A : I F S A < =0 T H E N 1 5 0
I N P U T " Q U E L E S T L E C O T E C ( S C ) " ; S C : I F S C < =0 T H E N 1 5 0
I N P U T " Q U E L E S T L ' A N G L E B ( A B ) " ; A B : I F A B < =0 0 R A B > = 1 80 T H E N 1 5 0
X = C 1 80-AB) ' A A+AC=1 80-AB
X=X/57 . 29577951 ' CO N V E R T I T LES D E G R E S EN R A D I A N S
Y = ( (SA- S C ) / (SA+S C ) ) *TAN ( X / 2 )
Z=ATN C Y )
AA= C X / 2 ) + ( Z )
A C = ( X / 2 ) - (Z )
AA=AA * 5 7 . 2 9 5 7 7 9 5 1 ' C O N V E R T I T L E S R A D I A N S E N D E G R E S
A C =AC * 5 7 . 29577951 ' C O N V E R T I T LES R A D I A N S EN D E G R E S
P R I NT " L ' A N G L E A (AA) A" AA " D E G R E S "
P R I N T " L ' A N G L E C C A C ) A" A C " D E G R E S " : GOTO 20
P R I N T " D E S O L E , C E C I N ' E ST P A S UN T R I AN G L E , R E C O M M E N C E Z " :
GOTO 2 0
Avec les fonctions trigonométriques, on utilise plutôt les radians que les degrés pour la mesure
des angles. Pour cette raison, chacun des programmes précédents convertit les degrés en
radians et vice-versa. Nous avons utilisé les formules suivantes pour ces conversions:
Degrés en radians: degrés57.29577951
Radians en degrés: radians57.29577951
Logarithmes et exponentielles
(Fonctions LOG et EXP)
Le groupe suivant de fonctions permet le calcul des exponentielles et des logarithmes naturels
des nombres. Elles servent dans les opérations mathématiques de niveau plus complexe.
LOG calcule le logarithme naturel d'un nombre. Sa syntaxe est:
L O G (nombre)
Le nombre doit être supérieur à zéro.
Le logarithme naturel d'un nombre est la puissance à laquelle on doit élever 2.71 8281828
(la base) pour obtenir ce nombre. Par exemple, tapez:
P R I N T L O G ( 8 ) ŒNm)
L'écran indique 2.079441 54 (logarithme naturel). En effet, on doit élever 2. 71 8281 828 (la base)
à la puissance 2.079441 54 pour obtenir 8 (le nombre).
Le logarithme d'un nombre est identique au logarithme naturel, mais la base peut correspondre
à n'importe quel nombre et pas nécessairement à 2.71 8281828. On peut aussi utiliser la fonction
LOG pour calculer le logarithme d'un nombre à l'aide de la formule suivante:
LOG (nombre) LOG (base)
Par exemple, tapez:
PR I N T L 0 G ( 8 ) / L 0 G ( 2 ) (ENT ER1
198
35 / Les Nombres
L'écran indique 3 (le logarithme). En effet, on doit élever 2 (la base) à la puissance 3 pour
obtenir 8 (le nombre).
EXP calcule l'exponentielle naturelle d'un nombre. Sa syntaxe est:
E x P (nombre)
Le nombre doit être inférieur à 87.3365.
L'exponentielle naturelle d'un nombre correspond à la puissance à laquelle on doit élever
2.71 8281828 pour obtenir ce nombre. Par exemple, tapez:
P R I N T E X P ( 8 ) ŒEITIB)
L'écran indique 2980.95799 (exponentielle naturelle). En effet, il faut élever 2. 71 8281 828 (la
base) à la puissance 2980.95799 pour obtenir 8.
Création de vos propres fonctions
{Commande DEF FN)
La commande DEF FN vous permet de créer ou de définir vous-même une fonction numérique.
Sa syntaxe est:
D E F F N nom (variable fictive)
Le
nom
formule
correspond au nom attribué à
=
votre fonction.
Les variable fictives correspondent à celles utilisées dans votre formule.
La
formule définit l 'opération exécutée par la fonction.
A titre d'exemple de DEF FN, tapez la ligne suivante:
10
DEF F NDEUX (N) =N*2
Cette ligne définit la fonction DEUX. Cette fonction exécute une opération simple. Elle multiplie
un nombre quelconque par 2.
Ajoutez les lignes suivantes au programme:
20
30
I N PUT X
P R I N T D EU X ( X )
40
GOTO 20
Exécutez l e programme. L a ligne 3 0 utilise l a fonction DEUX pour multiplier l e nombre entré
par 2 .
Comme autre exemple de D E F F N , considérons l a conversion des degrés et des radians,
opération mathématique que nous avons faite précédemment dans les programmes
trigonométriques de ce chapitre. DEF FN permet de définir et d'utiliser votre propre fonction
pour exécuter la conversion.
Essayez les lignes suivantes dans le premier programme ae trigonométrie (programme avec
la fonction SIN pour calculer les côtés SA et SB). Ajoutez la ligne 7 pour définir la fonction
de conversion. Changez ensuite la ligne 60 pour utiliser la fonction de corversion.
7
60
D E F F N R C X > = X / 5 7 . 29577951
AA= F N R (AA) : A B = F N R C A B ) : A C = F N R ( A C )
Quand vous utilisez DEF F N , n'oubliez pas de défin i r une fonction au préalable. Sinon, vous
obtenez ?UF ERROR (erreur de fonction non définie).
1 99
35 / Les Nombres
EXERCICE 35-1
Utilisez DEF FN pour:
1.
2.
Convertir les radians en degrés.
Créer une fonction mathématique qui élève les nombres au cube.
Le chapitre "De tout et de rien" donne une table de référence rapide de nombreuses formules
mathématiques pratiques (géométrie plane, trigonométrie et algèbre).
·
Appris au chapitre 35
200
COMMANDE
FONCTIONS
DEF FN
SOR
SIN
cos
TAN
ATN
LOG
EXP
FIX
SGN
ABS
36 I LES CHAÎN ES
Ce chapitre énumère trois fonctions et une commande qui servent à la manipulation des
c h a '.i n e s .
Affichage des chaines de caractères
(Fonction STRING$)
La fonction STRING$ permet de créer une chaîne de caractères pour produire des graphiques,
des tables et tout autre affichage de texte. La syntaxe de STRING$ est:
s T R I N G $ (longueur, caractère)
La longueur est un nombre de 0 à 255.
Le caractère correspond au caractère entre guillemets ou au code numérique du
caractère. (Voir "Codes de caractère" pour le caractère numérique de chaque
caractère.)
Comme exemple de STRING$, tapez:
P R I N T S T R I N G $ (3 0 , " A " ) (ENTERl
L'écran donne 30 A.
201
36 / Les Chaînes
Dans l'exemple suivant, changez le programme "Traits" pour avoir:
5
6
7
9
10
15
20
25
30
40
C LS
X $ = S TR I N G $ ( 1 3 , " * " )
P R I N T @96 , X S ; "TRA I T S " ; X $
FOR X=1 TO 1 000 : N E X T X
PMODE 3 , 1
P C LS
S C R EEN 1 , 1
LINE ( 0 , 0 ) - (255 , 1 9 1 > , P SET
LINE ( 0 , 1 9 1 ) - ( 255 , 0 ) , P SET
GOTO 40
L a ligne 6 attribue à X $ l a valeur STRING$(1 3,"
•"
) chaîne d e 1 3 astérisques.
,
La ligne 7 indique à l'ordinateur d'imprimer (en commençant à la position d'impression d'écran
96) X$, puis le mot TRAITS, suivi de nouveau de X$. (Voir la feuille de travail d'écran de texte
dans la partie 7.) X$ étant équivalant à 1 3 astérisques O. ces caractères sont imprimés avant
et après TRAITS.
Voulez-vous donner un peu plus d'allure au titre? Ajoutez les données suivantes:
8
Y$=ST R I N G $ (3 1 , 42) : P R I N T @ 38 4 , Y
Cette fois-ci, vous dites à l'ordinateur d 'afficher le caractère représenté par le code 42 qui
correspond à un astérisque.
EXERCICE 36-1
Avez-vous déjà écrit des listes pour vérifier les travaux que vous devez faire?
A l'aide de STRING$, écrivez un programme qui crée une liste de points à vérifier.
Conversion des nombres en chaines
(Fonction STR$)
La fonction STR$ convertit une chaîne en nombre. Sa syntaxe est:
s T R $(nombre) Retourne une chaîne contenant un nombre.
Le court programme suivant vous fera comprendre la fonction STR$:
10
20
30
I N P U T " T A P E Z U N N OM B R E " ; N
A$=STR$ ( N )
P R I NT A $ + " E S T M A I N T E N A N T U N E C H A I N E "
À la recherche des chaines
(Fonction INSTR)
La fonction INSTR vous permet de chercher une chaîne dans une autre. Sa syntaxe est:
I N s T R (position, recherche de chaîne, chaîne recherchée)
La position correspond à la position dans la recherche de chaîne à laquelle la
recherche doit commencer (0 à 255). Si vous omettez la position, l'ordinateur
commence automatiquement au premier caractère.
202
36 / Les ChaÎnes
La recherche de chaine correspono à la chaîne à chercher.
La chaine recherchée correspond à la chaîne cherchée.
INSTR donne un 0 si l'une des situations suivantes est vraie:
•
La position est supérieure au nombre de caractères de la recherche de chaîne.
•
La recherche de chaine est nulle (elle ne contient aucun caractère).
•
INSTR ne peut pas trouver la chaine recherchée.
L e programme suivant met INSTR à l ' oeuvre:
5
C LEAR 500
10
C LS
I N P U T " R E C H E R C H E D E T E XT E " ; S $
15
20
I N P UT " T E X T E R E C H E R C H E" ; T $
25
C = 0 : P = 1 ' P= P O S I T I O N
30
F=INST R C P , S $ , T$)
35
I F F=0 T H EN 6 0
C=C+1
40
P R I N T L E FT$ ( S $ , F - 1 ) + STR I N G $ ( LE N C T$) , C H R$ ( 1 28 ) ) +
45
R I G H T $ ( S $ , L E N ( S $ ) - F - L E N ( T $ ) +1 )
P=F+LEN (T$)
50
I F P <= L E N C S $ ) - L E N C T $ ) + 1 T H E N 3 0
55
60
P R I N T " T R O UV E" ; C ; " A P P AR I T I ON S "
Nous donnons ci-dessous un exemple d'exécution du programme ci-dessus. Vous pouvez
toutefois entrer le texte de votre choix.
R E C H E R C H E D E TEXTE? E S S A Y E Z D ' U T I L I S E R VOTRE O R D I NATEUR COULEUR
L E P L U S PO S S I B L E .
TEXTE RECHERCHE? LE
E S S A Y E Z D ' UT I L I S E R [ ] [ l T R S - 8 0 L E P LU S POS S I B L E .
E S S A Y E Z D ' U T I L I S E R L E T R S -8 0 [ ) [ ] L E P L U S P O S S I B L E .
T R O U V " E 2 A P P AR I T I O N S .
OK
Le programme se déroule ainsi:
1.
La ligne 1 5 attri bue à S$ (recherche) la valeur: ESSAYEZ D'UTILISER LE TRS-80 LE PLUS
POSSIBLE.
2.
La ligne 20 attribue à TS (chaîne recherchée) la valeur de LE.
3.
La ligne 30 indique à l'ordinateur de commencer la recherche de T$ à l a première position
(P) dans S$.
4.
Aux lignes 45 et 55, I NSTR localise T$ et imprime et cache ensuite T$ (CHR$(128)). Elle
recherche l'apparition suivante de T$ et procède de même.
5.
La ligne 60 indique à l 'ordinateur d'afficher le nombre d'apparitions de T$ dans SS.
EXERCICE 36-2
É crivez un programme qui donne la première et la deuxième apparition de B dans
ABCDEB.
203
36 / Les Chaînes
Le programme suivant de stockage de données, qui contient une liste d'expédition de noms
et d'adresses, constitue un moyen simple de mémoriser l'information. Remarquez que nous
avons conservé de la place de mémoire en ne mettant pas d'espace entre les mots. Cette
méthode rend la lecture difficile. mais ce n'est pas le cas pour l'ordinateur.
Notez également que nous avons attribué un astérisque à gauche (*) aux codes postaux pour
que l'ordinateur ne les confonde pas avec des numéros de rue.
Dans le cas présent, nous cherchons les noms et adresses de toutes les personnes qui habitent
dans la zone correspondant au code postal 650 . Par conséquent, *650 est la chaine
recherchée (A$).
--
5
C LS
A$="*650"
X $ = " J A M E S S M I T H , 6 5 5 0 H A R R I S O N , D A L LA S T X * 7 5 0 0 2 : S U E
S I M , R T3 , G R A V I O S M0 * 6 5 0 8 4 : L Y D I A L O N G , 3 4 4 5 S M I T H S T ,
A S B U R Y N J • 32044 : J O H N GARON E R , BOX60E OMONTON AL B ERTACA"
30
Y $ = " K E R R Y F E W E L L , 4 5 G M A P L E , N E WOR LEAN S • 89667 : B I L L
O O L S E I N , 63 1 3 E 1 2 1 K A N S A S C I T Y M 0 * 6 4 1 3 4 : S T E V E H O D G E S ,
R T 4 F LO R E N C E M E • 6 5 0 8 8 "
40
Z = " K A R E N C R O S S , 3 1 4 H U R L E Y W A S H I N GT O N D C * 1 0 0 1 1 : A S H E R
F I T Z G E R A L O , 2338HAR R I S O N F T W O R T H T X * 7 6 1 0 1 : L I Z D Y LAN ,
B O X 9 99 N E W Y O R K N Y * 8 6 8 6 6 "
10
20
Pour que votre ordinateur puisse rechercher X$, ajoutez la ligne suivante:
50
P R I N T I N S T R C X $ , A $)
Exécutez l e programme. L'écran indique:
62
OK
Vous savez ainsi que la chaîne contient un nom et une adresse que vous recherchez.
Et Y$? Corrigez la ligne 50 pour que l'ordinateur cherche parmi ces adresses. Vous dit-il qu'il
a trouvé le nom recherché?
Essayez maintenant Z$. En affichant un zéro, votre ordi nateur vous indique: "Cette liste ne
contient aucun des noms que vous cherchez."
EXERCICE 36-3
Modifiez le programme de liste d'expédition pour que les conditions suivantes soient
vraies:
204
•
X$ contient deux adresses avec un code postal 650 --.
•
L'ordinateur recherche chaque apparition de *650 (pas seulement la première).
36 I Les ChaÎnes
Remplacement des chaines
(Commande MID$)
La commande MID$ vous apporte une puissante possibilité de correction de chaîne en vous
permettant de remplacer une partie de chaîne par une autre. La syntaxe de MID$ est la
suivante:
M I o $ (ancienne chaîne,position,longueur)
=
nouvelle chaîne
L'ancienne chaîne correspond au nom de variable de la chaîne à remplacer.
La position correspond au numéro de la position du premier caractère à changer.
La longueur correspond à un nombre de caractères à remplacer. Si vous omettez
longueur, l'ordinateur remplace la totalité de l'ancienne chaîne.
La nouvelle chaîne correspond à la chaîne
l'ancienne.
qui
remplace la partie spécifiée de
Remarque: Si la nouvelle chaîne a moins de caractères que n'en spécifie la
longueur, l'ordinateur substitue la totalité de la nouvelle chaîne. Cette dernière
a toujours la même longueur que l'ancienne chaîne.
Pour mieux comprendre la commande MIO$, exécutez le programme suivant:
5
10
20
30
C LS
A$=" K A N S A S C I TY , MO"
M I 0 $(A$ , 1 4 ) ="KS"
P R I N T A$
La ligne 1 0 attribue à A$ la valeur KANSAS CITY, MO. La ligne 20 indique ensuite à l'ordinateur
d'utiliser MID$ pour remplacer une partie de l 'ancienne cfla.îne (A$) par KS, à partir de la
position 14.
Remplacez la position
14
par 8 et exécutez le programme. Vous obtenez:
K A N S A S C I T Y , MO
Ajoutez maintenant l'option de longueur
20
à
la ligne 20:
M I O $ ( A4 , 1 4 , 2 ) =" K S "
Vous pouvez remarquer que cette option n'affecte pas le résultat, car la nouvelle chaîne et
l'ancienne chaîne ont toutes deux 2 caractères de long. Faites passer la longueur à 1 :
20
MID$(A$ , 1 4 , 1 > ="KS"
L'ordinateur ne remplace qu'un caractère de l'ancienne chaîne. avec le premier caractère
de KS.
205
36 / Les Chaînes
MID$ est encore plus efficace quand vous l 'utilisez avec INSTR. Avec ces deux instructions,
vous pouvez "rechercher et détruire" du texte. INSTR recherche et MID$ change ou "détruit".
Le programme suivant donne un exemple de ces instructions:
5
CLS
I N PUT " E N T R E Z U N M O I S E T UN J O U R (MM / J J ) , " ; X$
10
20
P=INSTR (X$,"/")
IF P=0 THEN 10
30
40
M I D $ ( X$ , P , 1 ) ="-"
P R I N T X $ " E S T B I E N P L US F A C I L E A L I R E ? "
50
Dans ce programme, INSTR recherche une barre oblique ({). Quand elle en trouve une, MID$
la remplace par un tiret (-).
EXERCICE 36·4
Supposons que vous avez travaillé dans une compagnie de téléphone à l'époque
où les centraux adoptaient les chiffres à la plar.A rle8 caractères alphabétiques. Écrivez
un programme qui utilise MID$ pour remplacer tous les caractères alphabétiques
par des nombres. N'oubliez pas d'effacer assez de place de chaîne pour éviter
d'obtenir une erreur ?OS.
Appris au chapitre 36
206
COMMANDE
FONCTIONS
MID$
STRING$
INSTR
STR$
37 I ENTRÉE ET SORTI E
Les instructions d'entréesortie vous permettent d'envoyer des données du clavier à l'ordinateur,
de l'ordinateur au téléviseur ou à l'imprimante. Ces fonctions s'utilisent essentiellement dans
des programmes pour envoyer des données, des résultats et des messages.
Un autre moyen d'entrer
(Commande LINE INPUT)
LINE INPUT est analogue à INPUT, compte tenu des différences suivantes:
•
Pendant l'exécution de l'instruction, l'ordinateur n'affiche pas de point d'interrogation
quand il attend l 'entrée depuis le clavier.
•
Chaque instruction LINE INPUT peut attribuer une valeur à une variable seulement.
•
L'ordinateur accepte les virgules et les points d'interrogation dans l'entrée de la
chaîne.
•
Les espaces blancs de gauche, au lieu d'être ignorés, font partie de la variable en
chaîne.
La syntaxe de LINE INPUT est:
L I N E I N P U T "guide-opérateur" varia ble en chaîne
Le guide-opérateur correspond au message "guide-opérateur' '.
La varia ble en chaîne correspond au nom attribué à la ligne entrée à partir du clavier.
Avec UNE INPUT. vous pouvez entrer des données en chaîne sans vous inquiéter d'inclure
par mégarde des séparateurs comme des virgules, des points d'interrogation et des deux
points. L'ordinateur accepte tout. En fait, dans certains cas, vous devez entrer des virgules,
des points d'interrogation et des espaces blancs de gauche dans les données.
Exemples:
L I N E I NPUT X$ �
3 7 / Entrée et Sortie
Cette commande vous permet d'entrer X$ sans afficher de guide-opérateur.
L I N E I N P U T " N 0 M , P R E N 0 M ? " ; N $ (ENTERJ
Cette commande affiche le guide-opérateur "NOM, PRENOM?" et entre les données. Des
virgules ne terminent pas la chaîne d'entrée. Remarquez que le guide-opérateur comprend
le point d'interrogation et l'espace qui suit.
Pour mieux comprendre LI N E IN PUT, entrez et exécutez le programne suivant:
10
20
30
40
50
60
70
80
90
C LEAR 300: C LS
P R I N T TAB ( B ) ; " I N S T R U C T I O N L I N E I N PUT" : P R I NT
P R I NT : P R I NT "*** ENTREZ TEXTE ***"
' * * * T I R E Z LA C H A I N E , P U I S I M P R I M E Z - L A * * *
A $ = 11 1 1 ' F I X E Z A $ C O M M E C H A I N E N U L L E
L I N E I N P U T 1 1 = = > 11 ; A $
I F A $= ' ' T H E N E N D ' S I C H A I N E E N C O R E N U L L E , A R R E T E Z !
P R I NT A$
G OTO 5 0
"
Une impression personnalisée
{Commande PRINT USING)
PRINT USING vous permet d'afficrer chaînes et nombres sous un format "personnalisé " qui
peut être très pratique avec les états de comptabilité, les chèques, les tables, les graphiq ues
ou les autres données de sortie qui font appel à un format d'impression spécifique.
Voici la syntaxe de PRINT USING:
PR I NT us I N G format;liste d'articles
Le format correspond à une expression en chaîne qui indique à l'ordi nateur le format
à utiliser dans l'impression de chaque article de la liste d'articles. li comprend des
"identificate urs de zone ' et d'autres caractères. Il forme un ensemble.
La liste d'articles correspond aux données à mettre en format.
Remarque: PRINT USING n'imprime pas automatiquement les espaces blancs
de tête et de queue des nombres. Elle ne les imprime que si vous les indiquez
dans le format.
Vous pouvez utiliser les identificateurs de zone suivants dans le format:
#
**
$
208
$$
* '> $
+
tttt
37 / Entrée et Sortie
Nous expliquons ci-dessous chaque identificateur de zone et nous en donnons des exemples
d' utilisation.
#
Le signe du numéro spécifie la position de chaque chiffre dans le numéro à er:itrer.
Le nombre de signes du numéro établit la longueur de la zone numérique.
Si la zone est plus grande que le nombre, l'ordinateur affiche les positions inutilisées
à la gauche du nombre sous forme d' espaces et à sa droite sous forme de zéros.
P R I N T US I N G "#####" ; 6 6 . 2�
66
Si la zone est trop petite pour le nombre, l 'ordinateur affiche le nombre avec un signe
Ç à sa gauche.
P R I N T U S I N G 11 # 1 1 ; 6 6 . 2 ŒN.îED
%66
Vous pouvez placer le point décimal à toute position de l a zone établie avec le signe
du numéro. L'ordinateur arrondit automatiquement les chiffres à l a droite du point
décimal qui n'entrent pas dans la zone.
P R I N T U S I N G " # . # " ; 6 6 . 2 5 c:ENJ'.fID
%66 . 3
•
P R I N T U S I N G " # # . # " ; 5 8 7 6�
58.8
P R I N T U S I N G "## . ## " ; 1 0 . 2 , 5 . 3 ,
6 6 . 7 89 , . 23 4�
0 . 23
6 6 . 69
5 . 30
1 0 . 20
Remarque: Dans le dernier exemple, le format contient trois espaces après le
signe du numéro final. Ces espaces séparent les nombres quand l'ordi nateur
les affiche
.
La virgule, placée à une position quelconque entre le premier c1iffre et le point
décimal, affiche une virgule à la gauche de chaque tranche de trois chiffres. La virgule
établit une position supplérrentaire dans la zone numérique. Pour éviter un
dépassement de capacité (indiqué par un signe de pourcentage devant le nombre),
placez une virgule à chaque troisième position, dans la zone numérique. I l se produit
un dé pas sem ent de capacité quand la zone n est pas assez gran de.
'
PR I NT U S I N G " # # # # # # ## # , " ; 1 2 3 4 5 6 78
1 2 ,3345 , 678
P R I N T U S I N G " # # # # # # # # # , " ; 1 23 4 5 6 7 8 9
%1 23 , 4 5 6 , 7 8 9
P R I N T U S I N G "# # # , # # # , # # # " ; 1 23 4 5 6 7 8 9
1 23 , 4 5 6 , 7 8 9
**
Quand vous placez deux asté risques au début de la zore numérique, l'ordinateur remplit toutes
les positions inutilisées à la gauche du point décimal par des astérisq ues. Les deux astérisques
établissent deux positions de plus dans la zone numérique.
P R I N T U S I N G " * * ####" ; 4 4 . 0
****44
$
Si vous mettez un signe de dollar devant la zone numérique, l'ordinateur place auSSI ce s;gne
devant le nombre quand il l'affiche. Ce signe est pratique quand vous trav-c.::e.z avec des somrr
.es
d'argent.
P R I N T U S I N G " $ # # # . # # " ; 1 8 . 67 3 5
$ 1 8 . 65
209
37 / Entrée et Sortie
Si vous placez deux signes de dollar au début d e l a zone, l'ordinateur affiche un
signe flottant de dollar immédiatement devant le premier chiffre.
$$
P R I N T U S I N G " $ $ # # . # # " ; 1 8 . 6 735
$1 8 . 67
**$
Vous pouvez aussi placer cette combinaison de symboles au début de la zone. L'ordinateur
remplit alors les positions vacantes à la
-
404
gauche du nombre par des astérisques et il place un signe de dollar à la position immédiatement
·devant le premier chiffre.
P R I N T U S I N G " * * $ . 11 11 " ; 8 . 3 33
* $8 . 33
Si vous placez un signe plus au début ou à la fin de la zone, l'ordi nateur fait précéder tous
+
les nombres positifs d'un signe plus et tous les nombres négatifs d'un signe moins.
PR INT U S I N G "+**####" ; 75200
* * +7 5 2 0 0
PRINT USING "+###"; -21 6
-216
Si vous placez un signe moins à la fin de la zone, l' ordinateur fait suivre tous les nombres positifs
d'un espace et précéder tous les nombres négatifs d'un signe moins.
P R I N T U S I N G " 11 11 11 11 . 11 - " ; - 8 1 2 4 . 4 2 0
81 2 4 . 4 PRINT U S I N G "� � " ; " B L UE ' S STORE"
BLUE ' S
Exécutez le programme suivant pour voi r PRINT USING à !'oeuvre:
5
10
20
30
40
50
60
CLS
A $ = " * * $ # # , # 11 # # # # . # 11 D O L L A R S "
I N PUT " Q U E L EST VOTRE PRENOM " ; F $
I N PUT " Q U E L E S T VOTRE D E U X I E M E P R E N OM " ; M $
I N P U T " Q U E L E S T V O T R E N O M " ; L$
I NPUT "ENTREZ LA SOMME DUE" ; P
C LS
P R I N T "PAYEZ A L ' OR D R E DE " ;
70
80
P R I N T U S I N G 11 ! 11 ; F $ ; 11 • 1 1 ; M $ ; 11 • 11 ;
P R I N T L$
90
100
PRINT : PRINT USING A$;P
GOTO 1 1 0
11 0
La ligne 1 O déf i nit le format en utilisant * * $ pour remplir les espaces de gauche d'astérisques
et mettre un signe de dollar directement devant le premier nombre. Ce format sert parfois
à empêcher la falsification des chèques.
La ligne 10 établit aussi la zone numérique à l'aide du signe #. De ce fait, quand vous entrez
un nombre plus petit que la zone numérique, l'ordinateur le fait précéder d'astérisques pour
remplir les espaces inutilisés. La ligne 1 0 contient deux autres identificateurs de zone: le poin'.
décimal et la virgule.
L'ordinateur n'affiche le point décimal qu'aux positions spécifiées. Si vous indiquez à l'ordinateur
d'inclure deux positions à la droite du point décimal (pour les cents), il arrondit à deux chiffres
tous les nombres qui ont plus de deux chiffres. Si vous entrez un nombre qui a un ou pas
de chiffre à la droite du point décimal, l'ordinateur insère des zéros.
210
37 / Entrée et Sortie
À la
ligne 80, les points d' exclamation indiquent à l 'ordinateur de n'utiliser que le premier
caractère (initiale) de F$ (votre prénom) et de M$ (votre deuxième prénom).
EXERCICE 37-1
Changez le programme pour qu 'aucun astérisque de gauche n'apparaisse sur le
chèque.
EXERCICE 37-2
Ecrivez un programme qui crée une table montrant votre revenu et vos dépenses
de chaque mois. Ne vous préoccupez pas de détailler vos dépenses; calculez
simplement les taux et le résultat net (plus ou moins).
À l'aide
de STRING$, disposer la table en la rendant assez flexible pour pouvoir
l'utiliser d'un mois à l'autre sans devoir changer le programme complet.
Localisation d'une position
(Fonction POS)
La fonction POS calcule la position courante du curseur sur l'écran de texte à basse définition
ou la position du chariot de l'imprimante. En voici la syntaxe:
P o S (numéro de dispositi�
Le numéro de dispositif correspond à 0 (écran de texte à basse définition) ou à -2
(imprimante)
A titre d'exemple de POS, tapez:
P R I NT TAB (8) P O S ( 0 )
L'écran indique le chiffre 8 à la colonne 8 de la ligne courante.
Remarque: L'espace qui précède 8 fait apparaître celui-ci dans la colonne 9.
Vous pouvez utiliser POS pour invalider la fonction de bouclage automatique sur l'écran ou
l'imprimante. Vous évitez ainsi de couper les mots en leur milieu. D'autre part, cette instruction
raccourcit obligatoirement la longueur de ligne. Exécutez le programme suivant pour voir POS
à !'oeuvre:
5
C LS
A$= I N K E Y $
10
I F A$= ' ' ' ' THEN 1 0
20
IF POS (0) >22 THEN I F A$=CHR$(32) THEN A$=C H R $ ( 1 3 )
30
40
PRINT A$;
GOTO 1 0
50
Ce programme vous permet d'utiliser le clavier comme une machine à écrire (mais vous ne
pouvez pas corriger vos erreurs, sauf si vous avez d'abord invalidé l'imprimante). POS surveille
la fin de la ligne de façon à ne couper aucun mot.
À la ligne 30,
l'ordinateur vérifie si la position "courante" du curseur dépasse la colonne 22.
(L'écran a 32 colonnes de large.) Si le curseur est au-delà de la colonne 22, l'ordi nateur
commence une nouvelle ligne quand vous pressez la barre d'espacement (CHR$(32)). La
fois suivante. quand l'ordinateur décide de commencer une nouvelle ligne, il imprime un retour
du chariot (CHR$(13)). En fait, l'ordinateur presse la touche (ENTERJ.
21 1
37 / Entrée et Sortie
EXERCICE 32-3
Écrivez un programme où vous utilisez POS pour écarter uniformément les mots
sur une ligne simple.
Localisation d'une position (haute définition)
(Commande HSTAT)
POS ne donne rien avec l'écran à haute définition. Son équivalent HSTAT donne davantage
de renseignements.
La commande HSTAT renvoie les coordonnées x et y de la position courante du curseur.
Elle donne aussi le caractère présent à cette position, ainsi que ses attributs que nous allons
bientôt étudier.
Au contraire de POS qui est
une
rorction, HSTAT est une commande. Sa syntaxe est:
H s T A T variable fictive t , variable fictive2,
variable fictive3, variable fic!ive4
La variable fictive 1 est une variable quelconque en chaîne. Après son exécution, HSTAT
contient le caractère à la position courante.
La variable fictive2 est une variable numérique quelconque. Après son exécution, HSTAT
contient les attributs de la position courante.
i
La varable fictive3 est une variable numérique quelconque. Après son exécution, HSTAT
contient la coordonnée x de la position courante.
i
La varia ble fict ve4 est une variable numérique quelconque. Après son exécution, HSTAT
contient la coordonrn�e y de la position courante.
À titre d'exemple de HSTAT, tapez:
H S TAT A $ , B , C , D
Après l'exécution de cette commande, A$ contient le caractère à la position courante, B contient
les attributs de la position courante, C contient la coordonnée x de la pcsition courante et
D la coordonnée y de la position courante.
Le programme suivant affiche un "A" sur l'écran puis utilise HSTAT pour vérifier si "A" est
vraiment à la bonne position.
10
20
30
40
50
60
70
W I D T H 40
LOCATE 1 9 , 1 1
PRINT "A";
LOCATE 1 9 , 1 1
H S TAT A$ , A , X , Y
LOCATE 0 , 1 4
P R I NT A$ , X , Y
Pour interpréter l'information concernant un attribut de caractère, on doit connaît re le langage
L'écran à haute définition utilise deux octets ;:>our stocker chaque caractère. Un
octet stocke le code du caractère et l 'autre ses attributs.
machine.
212
37 I Entrée et Sortie
L'octet d'attribut contient l'information suivante:
Bits 0-2
Bits 3-5
Bit 6
Bit 7
Couleur de fond (Palette 0-7)
Couleur de premier plan (Palette 8-15)
Soulignage
Clignotement à intervalles de 1/2 seconde
Quand vous exécutez HSTAT, elle donne l'octet réel d'attribut Pour pouvoir interpréter cet
octet, il faut le convertir à son équivalent binaire puis déterminer les octets fixés.
La mesure du temps
(Fonction TIMER)
Votre ordinateur possède une minuterie intégrée qui mesure le temps par intervalles de 1 /60
de seconde (approximativement). Dès que vous mettez l'ordinateur sous tension. la minuterie
commence à compter à partir de zéro. Quand elle arrive à 65535 (environ 1 8 minutes plus
tard). la minuterie recommence à zéro. Elle marque un temps de pause pendant les opérations
de magnétocassette et d'imprimante.
À tout instant. vous pouvez connaître le comptage de la minuterie à l'aide de la fonction TIMER.
Tapez:
P R I N T T I H E R (ENTER)
La fonction TIMER affiche une valeur de 0 à 65535.
Vous pouvez aussi régler la minuterie à toute valeur spécifiée en tapant:
T I M E R = n o m b r e (ENTER)
Le
nombre
est compris dans l'i ntervalle de 0 à 65535.
Pour voir TIMER et PnlNT @ USING, autre fonction "nouvelle" , exécutez le programme suivant
dit "Questionnaire de maths". Ce programme vous présente un problème de maths. Quand
vous pressez Œl, CID, © ou CID, l' ordinateur vous indique si votre réponse est juste ou fausse.
L'ordinateur utilise ensuite la minuterie pour vous indiquer votre temps de réponse (à l'aide
de TIMER).
10
20
30
D I M C H C 3 ) , L $ ( 3 ) ' C H ( # ) = C H OI X , L$=FOR MATS D E RE P O N S E
L L= 1 0 : U L= 2 0 ' L I M I T E I N F . E T L I M I T E S U P . P O U R H E T V
N V = U L - L L+ 1
40
50
60
70
P $ = " Q U E V A U T # # # + ### ? " 1 F O R M A T DE Q U E S T I O N
F O R I = 0 T O 3 ' I N I T I A LI S E Z C H ( )
L$ ( l ) = C H R $ ( I + 6 5 ) +" ) # # # "
N E XT I
C LS
80
X = I N T < R ND ( N V C + L L- . 5) 'X AU HASARD ENTRE LL ET U L
90
Y = I N T C R N D ( N V ( + L L - . 5 ) ' Y AU H A S A R D E N T R E L L E T U L
1 00
110
R=INT (X+Y+ . 5 ) ' R EPONSE CORRECTE
FOR I=0 TO 3 ' C HOIX MULT I P L E
130
C H ( I ) = I N T C R N D C N V ) + L L- . 5 )
1 40
NEXT I
150
1 60
170
1 80
1 90
R C = R N D ( 4 ) -1 ' F A I T E S U N C H O I X J U STE
CHCR C)=R
P R I N T @ 3 2 , U S I N G P $ ; X , Y ' A F F I C H EZ LE PROBLEME
F O R L N = 3 TO 6
213
37 / Entrée et Sortie
200
210
220
230
240
250
260
265
270
280
290
300
31 0
320
P R I N T @ L N * 3 2 + 1 0 , U S I N G L $ ( L N-3 ) ; C H ( L N-3 )
NEXT LN
T I M E R =0
A $ = " " ' E F F A C E Z L E C LA V I E R
A$=I N K E Y $ : IF A$=" " THEN 240
S V = T I M E R ' S I U N E TOU C H E E S T P R E S S E E , S A U V E G A R D E Z L E C O N T E N U
DE LA M I NUTER I E
I F A$<"A" OR A $ " D " T H E N 2 4 0 ' TO U C H E I N V A L I D E - R E V E N EZ
PR INT @ 8*32+1 0 , A
K=ASC (A$) -65
I F C H ( K ) = R T H E N P R I N T " J U S T E ! " : GOTO 3 0 0
P R I N T " F A U X ! L A R E PO N S E E S T " ; R
PR INT "VOUS AVEZ P R I S " ; S V / 6 0 ; "SECONDES"
I N P UT " P R E S S E Z < E N T E R > P O U R P R O B L E M E S U I V A N T " ; E N
GOTO 80
Par tâtonnements, remplacez les limites supérieure et inférieure (ligne 20) par h et v. Faites
faire au programme une opération mathématique autre que l'addition ou faites-lui tenir la
marque, suivant votre temps. Ajoutez cinq secondes pour chaque réponse fausse.
Changement de dispositifs
(Utilisation des numéros de dispositif)
Avez-vous jamais envisagé votre écran vidéo comme un dispositif de "sortie" et votre clavier
comme un dispositif "d'entrée"?
À l'aide de PRINT, PRINT USING, LI NE I N P UT et POS, vous pouvez utiliser des numéros
de dispositif pour diriger l'entrée ou la sortie. Par exemple, supposons que vous tapez:
P R I N T # - 2 , U S I N G 11 # # # . # # # 1 1 ; 1 2 3 . 4 5 6 7 8!ENTERJ
L'écran reste "silencieux'', mais l'imprimante imprime:
1 23 . 4 5 6
Vous pouvez utiliser les identificateurs disponibles de zone avec PRINT #-2, USING.
POS(-2) donne la position courante d'impression de l'im primante à mesure qu'elle change.
Remarquez que la position est calc1Jée intérieurement et non mécaniquement.
LIN E INPUT # fonctionne de façon analogue, mais elle vous permet de lire une "ligne de
données" depuis un fichier de cassette.
UNE INPUT # lit la totalité des données du premier caractère jusqu'à la première des
éventualités suivantes:
•
Un caractère de retour du chariot qui n'est pas précédé d'un caractère de
changement de ligne.
•
Le 249 e caractère de données
•
La fin de fichier
Les autres caractères rencontrés (guillements, virgules, espaces blancs de gauche et
séquences de retour du chariot/changement de ligne) sont inclus dans la chaîne. Par exemple:
L I N E I N PUT #-1 , A
envoie une ligne de données de fichier de cassette dans A$.
214
37 I Entrée et Sortie
Dans le programme suivant, on utilise UNE INPUT # pour compter le nombre de lignes dans
un programme sur cassette qui est sauvegardé (CSAVED) en format ASCII (à l'aide de l'option
A):
10
20
30
40
50
60
70
80
90
1 00
110
C LEAR 500
L I N E I N PU T " N O M D U F I C H I E R D E D O N N E E S ? " ; F $
K=0 ' K EST L E COMPTEUR
OPEN " I " , -1 , F $
I F EOF (-1 ) THEN 1 0 0
L I N E I N PUT #-1 , A$
K=K+1
PRINT A$
GOTO 5 0
C LO S E # - 1
PRINT "LE F I C H IER CONTENAIT" ; K ; " LI GNES"
Appris au chapitre 37
COMMANDES
FONCTIONS
UNE INPUT
PRINT USING
HSTAT
POS
TIMEA
215
38 I LES ERREU RS
Dans ce chapitre, nous abordons la question inévitable des erreurs dans vos programmes.
Nous ne pouvons pas empêcher les erreurs, mais nous pouvons certainement vous donner
les moyens de les localiser et de les supprimer pour qu'elles ne çausent plus de problèmes.
Localisation des erreurs
(Commandes STOP et CONT)
Le BASIC permet de localiser une erreur à l'aide des commandes STOP et CONT dont les
syntaxes sont:
S T O P Arrête momentanément l'exécution d'un programme BASIC.
C O N T Continue l'exécution d'un programme BASIC.
À titre d'exemple de l' utilisation de ces commandes, supposons que vous avez entré le
programme BASIC suivant qui exécute divers calculs avec un nombre et stocke le résultat
dans la variable A:
10
15
20
30
40
A = 1
F O R N = 1 TO 1 0
A = A + 1
A = A * 2
N E XT N
Pour une raison quelconque, la variable A ne contient pas le nombre qui devrait y figurer.
Pour vous faire une idée de l'origine du problème, vous pouvez ajouter les lignes suivantes:
25
STOP
35
STOP
Après avoir ajouté ces lignes, vous pouvez exécuter de nouveau l e programme. Quand
l'ordinateur arrive à la première commande STOP, il imprime:
BREAK IN 25
L'ordinateur a donc arrêté momentanément l'exécution du programme, mais il n'a pas terminé
celui-ci. Vous pouvez ensuite taper:
P R I N T A ( ENTERl
À ce point de l 'exécution du programme. l'ordi nateur imprime la valeur de A. Pour continuer
l'exécution, vous pouvez taper:
CONT �
Quand l'ordinateur arrive à la commande STOP suivante, il imprime:
BREAK IN 35
Vous pouvez maintenant demander PRINT A à l'ordinateur. Celui-ci imprime alors l a valeur
de A à ce point de l'exécution du programme.
21 7
38 / Les Erreurs
En continuant ainsi, vous pouvez finalement arriver à localiser l'origine du problème et, après
correction, éliminer les commandes STOP de votre programme.
Dépistage des erreurs
(Commandes TRON et TROFF)
Les commandes TRON et TROFF permettent de suivre l'exécution du programme pour dépister
une erreur. Leur syntaxe est:
TRON
ou
T RO F F
Met en ou hors fonction le dépistage d'erreur.
À titre d'exemple de cette commande,
suivez l 'exécution du programme "Traits". Tapez:
T R O N CENTERl
Exécutez ensuite le programme:
5
10
20
30
P C LS
PMODE 3 , 1
SCREEN 1 , 1
L I N E ( 0 , 0 ) - ( 25 5 , 1 91 ) , PSET
L'ordinateur indique:
( 5 ) ( 1 0) (20) (30)
OK
Vous savez ainsi que l'ordi nateur a exécuté les lignes 5, 1 0 , 20 et 30, dans cet ordre.
Pour menre le dépistage hors fonc:ion, tapez:
T R O F F (ENTER)
Piégeage des erreurs
{Commande ON ERR GOTO)
Quelle que soit la qualité de votre programme, i l n 'est pas complet s'il ne peut pas prévoir
les erreurs d'opérateur. ON ERR GOTO permet de prévoir une erreur et de la "piéger" avant
qu'elle provoque l'arrêt de votre programme.
La syntaxe de ON ERR GOTO est:
ON E R R GOTO numéro de ligne Va au numéro de ligne en cas d'erreur pendant
l ' exécution du programme.
À titre d'exemple de ON
10
20
30
40
50
60
218
ERR GOTO, supposons que vous avez écrit le programme suivant:
PRINT " C E PROGRAMME D I V I S E X PAR Y " : P R I NT
I N P UT " E N T R E Z U N N O M B R E P O U R X " ; X
I N PUT " E N T R E Z U N NOMBRE POUR Y " ; Y
ANS=X/Y
P R I NT A N S
GOTO 1 0
38
I Les Erreurs
Ce programme tourne à la pertection, mais uniquement si l'utilisateur sait que l'ordinateur
ne peut pas diviser un nombre par O. Si l' utilisateur tape O {ENTERJ ou simplement (ENTERl,
le programme se termine et l' utilisateur reçoit le message suivant:
/0
E R R O R I N 40 .
Pour piéger cette erreur, vous pouvez ajouter les lignes suivantes au programme:
5
O N E R R G OTO 1 0 0
REM SOUS-PROGRAMME DE TRAI TEMENT D ' ERR EUR
P R I N T " L ' O R D I N A T E U R N E P E U T P A S D I V I S E R UN N O M B R E P A R 0"
110
P R I NT "V E U I L L E Z R E COMM E N C E R "
1 20
GOTO 2 0
130
100
Si l' utilisateur entre maintenant 0 (ENTERJ ou (E NTERJ , l'ordinateur donne les messages
suivants:
L ' O R D I N A T E U R N E P E U T P A S D I V I S E R UN N O M B R E P A R 0
V E U I L L E Z R E C O MM E N C E R
ENTREZ U N NOMBRE POUR Y ?
Piégeage de la "bonne" erreur
(Fonction ERRNO)
Avec u n sous-programme de piégeage, vous devez être certain d' arrêter l a bonne erreur.
Par exemple, supposons que la ligne 50 contienne une erreur de syntaxe (faute d'orthographe
dans PRINT):
50
P I RNT AN
Quand l'ordinateur exécute la ligne 40, i l passe au même sous-programme de piégeage
d'erreur. Cette fois-ci, il ne va pas au sous-programme de piégeage d' erreur à cause d'une
erreur de division par O. Il passe à ce sous-programme à cause d'une erreur de syntaxe.
Pour prévoir ce genre de problème, vous pouvez utiliser la fonction ERRNO dont la syntaxe est:
ERRNO
Donne un numéro d'erreur qui correspond à l'erreur rencontrée.
ERRNO donne un numéro d'erreur, plutôt qu'un message d' erreur. Vous pouvez déterminer
le numéro d'erreur qui correspond à chaque message d'erreur BASIC en consultant la section
" Messages d'erreur BASIC", à la fin de ce livre.
Avec ERRNO, vous pouvez échanger le sous-programme de piégeage d'erreur de cette façon:
1 00
1 05
110
120
130
REM SOUS-PROGRAMME DE TRAITEMENT D ' ERREUR
I F E R R N O <> 1 0 T H E N P R I N T " E R R E U R F A T A L E " : E N D
P R I N T " L ' OR D I N A T E U R N E P E U T P A S D I V I S E R U N N O M B R E P A R 0"
P R I N T "VEU I L L E Z R E COM M E N C E R "
GOTO 2 0
S'il se produit mai ntenant une erreur autre que l'erreur 1 O (erreur de division par 0), le
programme imprime "ERREUR FATALE" et se termine .
219
38 / Les Erreurs
Retour au piège correct
(Fonction ERLIN)
E n plus de piéger la "bonne" erreur, vous devez être certain de revenir au bon endroit du
programme, après avoir piégé l'erreur.
Supposons par exemple qu'un programme contienne deux lignes (20
de division par 0 peut se produire.
et
70) où une erreur
Pour déterminer celle de ces lignes qui provoque une erreur, le BASIC :::i ossède la fonction
ERLIN dont la syntaxe est:
ER L I N
Donne le numéro de ligne où l'erreur s'est produite.
À l ' aide de ERLIN, vous pouvez changer le sous-programme de piégeage d'erreur de cette
façon:
1 00
1 05
110
R EM S O U S - P R O G R A M M E D E T R A I T E M E N T D ' E R R E U R
I F E R R N O <> 1 0 T H E N P R I N T " E R R E U R F A TA L E " : E N D
P R I N T " L ' O R D I N A T E U R N E P E U T PAS D I V I S E R U N NO M B R E P A R 0"
1 20
1 30
1 40
P R I NT " V E U I L L E Z RECOMM E N C E R "
I F E R L I N = 20 T H E N 2 0
I F ERLIN = 70 THEN 70
Piégeage d'une interruption
(Commande ON BRK GOTO)
La commande ON BRK GOTO ressemble de Lrès près à la commande ON ERR GOTO. Cette
commande va à un sous-programme de piégeage d'interruption si l'opérateur presse la touche
�.
Sa syntaxe est:
o N B R K Go TO numéro de ligne Va au numéro de ligne si vous pressez la touche 1BREAKl
pendant l'exécution du programme.
Le court exemple suivant utilise ON BRK GOTO:
ON B R K G O T 0 1 0 0
10
P R I N T " BO N J O U R "
20
GOTO 2 0
30
100
PRIN T " I L EST TEMPS D ' ARRETER CETTE P L A I S ANTERI E ! "
Ce programme imprime "BONJOUR" indéfiniment jusqu'à ce que l'opérateur presse la touche
�. Au lieu de donner le message B R E A K I N 2 o ou B R E A K I N 3 O, l'ordinateur indique:
I L EST TEMPS D ' A R R E T E R C ETTE PLAI SANTER I E !
Le piégeage d'interruption n ' a pas d'équivalent pour les fonctions ERRNO et ERLIN, mais
il constitue une meilleure alternative à l'arrêt pur et simple du programme quand l'opérateur
presse c:EJITEID.
220
38 / Les Erreurs
Appris au chapitre 38
COMMANDES
FONCTIONS
STOP
CONT
TRON/TROFF
ON ERR GOTO
ON BRK GOTO
ERLIN
ERRNO
221
39 I SOUS-PROGRAM MES
EN LANGAGE MACH I N E
Dans ce chapitre, nous supposons que vous savez écrire des squs-programmes en langage
machine (sous-programmes contenant des instructions de 6809). Vous y apprendrez à appeler
un sous-programme en langage macrine à partir d'un programme BASIC.
De nombreux ouvrages sont disponibles sur les sous-programmes en langage machine. Vous
pouvez vous procurer "6809 Assembly Language Programming" par Lance Leventhal,
Osborne M cGraw Hi l', 1 981 .
Appel d ' u n sous-programme en langage machine
{Commandes CLEAR, CLOADM, LPOKE, DEFUSR et USR)
{Sous-programme GIVABF en mémoire morte)
Pour appeler un sous-programme en langage machine à partir d'un programme en BASIC,
vous devez appliquer les six étapes suivantes.
1.
Assemblage du sous-programme en langage machine en code objet
Vous pouvez procéder vous-même à cette opération en cherchant le code de craque instruction
ou en utilisant un assembleur comme l' EDTASM, n° 26-3250 du catalogue Radio Shack, ou
l'EDTASM sur disque, n ° 26-32564.
223
39 / Sous-programmes en Langage Machine
Nous donnons ci-dessous un exemple d'un sous-programme en langage machine appelé
GETKEY que nous avons assemblé à l aide de l ' E DTASM. Vous pouvez remarquer que le
code objet est en hexadécimal et non en décimal.
'
Code objet
Source
Code
Remarques
LOOP
JSR (POLCAT)
; I NTERROGATION D'UNE îOUCHE
hexadécimal
AD 9F AO OO
1
BEO LOOP1
27 FA
81
26
CMPA
OA
oc
LOOP 2
AD 9F AO OO
#10
BNE OUT
;NON, SORTIE
JSR (POLCAT)
;OUI, DONC, TOUCHE SUIVANTE
27 FA
BEO LOOP2
81 20
2D 02
80 40
I F 89
4F
73 84 F4
CMPA
2.
#65
BLT OUT
OUT
SUBA #64
TFR A,B
CLRA
POLCAT
GIVABF
;SI RIEN, RECOMMENCEZ
;TOUCHE CTRL (ON ARW)?
JMP GIVABF
EOU 40960
EOU 46324
;SI RIEN, RECOMMENCEZ
;EST-CE A-Z?
;SI <A, SORTEZ
;CONVERSION A CTRL A/Z
;OCTET D E RETOUR PR ET
;ZERO LE PLUS SIGNIFICATIF
; R ETOURN E LA VALEUR AU BASIC
Réservation de mémoire pour le sous-programme en langage machine
Le deuxième paramètre de la commande CLEAR permet de réserver de la mémoire. La syntaxe
de CLEAR est:
n1, n2e Efface n1 octets d'espace de chaîne et fixe n2 comme l'ad resse la plus
élevée utilisable par le BASIC. (En fixant n2 comme l'adresse la plus élevée, vous
réservez cette zone pour votre sous-programme en langage machine.)
c LE A R
Par exemple, cette commande réserve une zone de mémoire allant de l'adresse 47200 jusqu'au
haut de la mémoire pour le sous-programme GETKEY:
5
C LEAR 2 5 , 47200
Le BAS IC ne peut pas écrire en surimpression dans cette zone de mémoire.
3.
Stockage du sous-programme en langage machine en mémoire
Vous pouvez charger le sous-programme en langage machine à partir d'une bande, à l'aide
de la commande CLOADM ou de la commande LPOKE.
La syntaxe de C LOAD M est:
c L O A D M nom de fichier, adresse de décalagee Charge un programme ou sous­
programme en langage machine à partir d'une cassette.
Le nom de fichier correspond au programme ou sous-programme en langage
machine.
L.adresse de décalage est facultative; elle précise un décalage à ajouter à l 'adresse
de chargement du programme ou sous-programme en lc.ngage machine.
La syntaxe de
L POK E
est:
L P O K E adresse, ne stocke un nombre en mémoire.
n
L.adresse
224
correspond au nombre à stocker.
correspond à l'adresse de mémoire où l'on désire stocker le nombre.
39 / Sous-programmes en Langage Machine
Par exemple, les lig nes suivantes stockent GETKEY en mémoire à l'aide de LPOKE:
20
30
40
50
60
FOR I = 1 TO 28
R E A D B : LPOKE 47200 + 8 , B
NEXT I
70
80
D A T A 1 7 3 , 1 5 9 , 1 6 0 , 0, 3 9 , 2 5 0
D A T A 1 2 8 , 6 4 , 3 1 , 1 3 7 , 79
DATA 1 2 6 , 1 80 , 244
90
DATA 1 73 , 1 5 9 , 1 6 0 , 0
DATA 3 9 , 2 5 0 , 1 2 9 , 1 0 , 3 8 , 1 2
Les lignes 5 0 à 9 0 contiennent les codes objets assemblés d e GETKEY. (On peut remarquer
que nous avons converti ces codes en décimal.) La ligne 30 introduit ces codes dans la zone
de mémoire réservée à l'étape 2.
4.
Indication de la position du sous-programme au BASIC
A cet effet, on peut utiliser la commande
DEFUSR
dont la syntaxe est:
D E F u s Rn
adresse indique où commence u n sous-programme en langage
machine en mémoire.
=
n correspond au numéro du sous-programme en langage machine (0-9).
!.:adresse correspond à la première adresse en mémoire où est stocké le sous­
programme en langage machine.
Par exemple, la commande suivante indique au BASIC où est stocké le sous-programme
GETKEY:
10
D E F U S R 1 47200
Vous pouvez remarquer que GETKEY est libellé sous-programme 1 .
5.
Appel d u sous-programme en langage machine
Pour appeler le sous-programme, utilisez la commande USR dont la syntaxe est:
var i ab L e f i ct i v e
=
USRn(valeur) appelle un sous-programme en langage machine.
n correspond au numéro du sous-programme en langage machine (0-9).
La valeur correspond à la valeur que l'on veut passer au sous-programme en langage
machine.
La variable fictive correspond à une variable que l'on peut utiliser pour stocker les
données retournées par USR.
Par exemple, la commande suivante appelle GETKEY (sous-programme 1):
110
A = U S R1 ( 0 )
Quand la commande ci-dessus appelle GETKEY, elle passe (donne) une valeur de O à GETKEY.
Dans cet exemple, GETKEY n'utilise pas le O qui n'a donc aucune sig nification.
Avec le retour de G ETKEY, la variable A contient une valeur passée par le sous-programme.
225
39 I Sous-programmes en Langage Machine
6.
À
Retour au BASIC depuis le sous-programme en langage machine
cet effet, on peut employer deux méthodes:
•
On peut utiliser l'instruction RTS qui amène le retour du sous-programme en langaç:;e
machine sans devoir passer de valeur à la variable fictive d'USR.
•
On peut charger une valeur entière dans le registre D et utiliser l'instruction JMP
pour le branchement au sous-programme en mémoire morte GIVABF. On amène
ainsi le retour du sous-programme en langage machine au BASIC et le passage de
la valeur entière stockée dans le registre D à l'argument fictif d'USR.
Notre sous-programme GETKEY applique le deuxième choix. Il charge la touche pressée dans
le registre D et se branche à GIVABF. De cette manière, il passe la touche pressée à la variable
A, à l'aide de l'argument fictif d'USR.
Appel du sous-programme GETKEY
{Exemple d'appel d'un sous-programme
en langage machine)
Nous donnons ci-dessous un exemple d'un programme BASIC qui appelle GETKEY, notre
sous-programme en langage machine. GETKEY vérifie la touche que vous avez pressée et
retourne son code au BASIC. Celui-ci indique ensuite ce code.
Pour voir le programme à l'oeuvre, tapez-le soigneusement puis exécutez-le. Chaque fois que
vous pressez une touche, son code apparaît.
C L E A R 2 5 , 4 7 2 0 0 ' R E S E R V E D E LA M E M O I R E
D E F U S R 1 =47200
C LS
FOR 1=1 TO 2 8 ' STOCKE C H AQUE O C T E T D E C O D E OBJ ET
20
READ B : POKE 47200 + I , B
30
NEXT I
40
' VO I C I L E CODE OBJET
45
DATA 1 73 , 1 5 9 , 1 60 , 0
50
DATA 3 9 , 2 5 0 , 1 29 , 1 0 , 3 8 , 1 2
60
DATA 1 7 3 , 1 5 9 , 1 6 0 , 0 , 39 , 2 5 0
70
75
DATA 1 29 , 6 5 , 4 5 , 2
80
D A T A 1 2 8 , 6 4 , 3 1 , 1 3 7 , 79
DATA 1 2 6 , 1 8 0 , 244
90
A = U S R 1 C 0 ) ' A P P E L L E LE S O U S - P R O G R A M M E ET D O N N E L E R E S U L T A T A A
110
I F A= 1 3 T H E N E N D
115
1 20
P R I N T " C ODE=" ; A
GOTO 1 1 0
130
5
10
15
En plus de retourner les codes de toutes les touches pressées au clavier, GETKEY donne
aussi les codes de 26 touches de commande. Pour entrer une touche de commande, pressez
CD, relâchez-la puis appuyez sur une touche quelconque de Œl à m.
Pour varier le programme, changez la ligne 120 µour avoir:
1 20
P R I N T C H R $ ( A ) ; ' A F F I C H E LE C A R A C T E R E
Pressez CDŒD pour voir l e curseur reculer.
226
39 I Sous-programmes en Langage Machine
Passage des valeurs à un sous-programme
en langage machine
(Sous-programme INTCNV en mémoire morte
et fonction VARPTR)
Vous pouvez passer de deux façons des valeurs à un sous-programme en langage machine.
Vous pouvez utiliser le sous-programme INTCNV en mémoire morte ou la fonction VARPTR
du BASIC.
Sous-programme I NTCNV
Pour passer une valeur entière à votre sous-programme en langage machine, utilisez-la comme
argument dans votre fonction USR. Par exemple:
A=U S R 1 ( 5 )
Vous appelez ainsi le programme 1 en code machine et lui passez l 'argument 5. Vous pouvez
ensuite appeler le sous-programme INTCNV qui sort la valeur entière et la stocke dans le registre
D. L.:adresse de I NTCNV est B3ED en hexadécimal.
Fonction VARPTR
Vous pouvez aussi passer un argument à votre sous-programme en langage machine en
passant un "pointeur" à l'ad resse où une valeur de variable est stockée. Vous pouvez utiliser
la fonction VARPTR à cet effet:
vA R PT R
Par
variableeRetourne un pointeur où la valeur d'une variable est stockée.
exemple:
A=USR1 C VARPTR ( B ) )
appelle le sous-programme 1 en langage machine et place un pointeur à l'adresse de la variable
B. Le pointeur est stocké dans le registre X. Votre sous-programme en langage machine doit
savoir si la variable est numérique ou en chaîne.
Si la variable est une chaîne, votre sous-programme en langage machine peut trouver le
descripteur à 5 octets de la chaîne dans le registre X. Ce descripteur indique où se trouve
la chaîne.
Octet 1
longueur de la chaîne (en caractères)
Octet 2
réservé à l ' usage de l'ordinateur
Octets 3 et 4
adresse du premier octet dans la chaîne
Octet 5
réservé à l ' usage de l'ordinateur
=
=
=
=
Si la variable est numérique, votre programme peut trouver l 'adresse de la valeur du point
flottant du nombre dans le registre X. Cette valeur de point flottant possède le format suivant:
Octet
Octet
Octet
Octet
Octet
1
2
3
4
5
=
=
=
=
=
exposant de la mantisse
octet le plus significatif (MSB) de la mantsse
octet le plus significatif suivant de la mantisse
octet le plus significatif suivant de la mantisse
octet le moins significatif (LSB) de la mantisse
227
39 / Sous-programmes en Langage Machine
L'exposant est une valeur entière de 8 bits avec signe, à laquelle sont ajoutées 1 28 décimales.
Un exposant 0 indique un nombre O; dans ce cas, la mantisse n'a aucune importance. Le
bit le plus significatif de l'exposant stocke le signe de l'exposant: 0 (positif) ou 1 (négatif).
La mantisse est stockée sous forme normalisée avec le bit le plus significatif de l 'octet le plus
significatif (MSB) de la mantisse censé être 1 . Ce bit peut indiquer le signe de la mantisse:
0 (positif) ou 1 (négatif) .
Vous pouvez désirer utiliser VARPTR pour passer un pointeur de variable en tableau à u 1
sous-programme en langage machine. Par exemple:
A=USR1 (VARPTR ( B ( 5 ) ) )
appelle le sous-programme 1 en langage machine et passe un pointeur à l'élément 5 du
tableau B.
Votre sous-programme en langage machine peut trouver les valeurs des éléments en mémoire
(de la mémoire basse à la mémoire haute):
Valeur du premier élément de la dernière
dimension
Valeur du dernier élément de la dernière dimension
Valeur du premier élément de la première dimension
Valeur du dernier élément de la première dimension
Chaque élément a cinq octets de long.
Retour des valeurs au BASIC
(Sous-programme GIVABF en mémoire morte)
USR retourne toujours au moins une valeur au BASIC. Cette valeur correspond à l'argument
fictif que vous avez initialement passé au sous-programme en langage machine, excepté si
celui-ci l'a changée ou modifiée, comme on l'explique ci-dessous.
Utilisation de GIVABF pour retourner une valeur entière
Pour retourner une valeur entière spécifiée au BASIC, votre sous-programme en langage
machine peut charger la valeur entière dans le registre D appelé GIVABF, comme nous l'avons
précédemment montré. L'adresse de GIVABF est 84F4 en hexadécimal ou 46324 en décimal.
Modification des variables BASIC
Vous pouvez retourner une valeur spécifiée au BASIC er faisant modifier une valeur de variable
BASIC par votre sous-programme en langage machine. Supposons, par exemple, que vous
appelez u n sous-programme en langage machine avec l'instruction suivante:
A $ = ( U S R 1 (VARPTR ( B$ ) )
Votre sous-programme en langage machine peut modifier la valeur de B$ et terminer ensuite
avec une instruction RTS. USR donne ainsi la valeur modifiée de 8$.
228
39 / Sous-programmes en Langage Machine
Si votre sous-programme en langage machine modifie une variable en chaîne, faites très
attention aux points suivants:
•
Vous pouvez changer l' octet de longueur d'un descripteur de chaîne pour
" raccourcir" celle-ci, mais vous ne pouvez pas "l'allonger". Si vous ne connaissez
pas la dimension de la chaîne retournée par votre sous- programme, réserver 255
octets (longueur maximale) pour la valeur de la chaîne avant de passer au sousprogramme en langage machine. Par exemple:
8$=STR I N G $ ( 2 5 5 )
A$=USR0 (VARP T R ( B $ l )
Passe un pointeur à une chaîne de 255 caractères d'espaces vierges à la fonction
USR. Le sous-programme en langag è machine peut ensuite mettre une chaîne de
255 caractères au maximum cans la mémoire indiquée par 8$ ou, le cas échéant,
raccourcir l'octet de longueur de la chaîne.
•
Vous pouvez modifier l'adresse de début d'une chaîne en changeant l'indicateur
à deux octets da11s le d esGr i pteu r de diaîne. Dans cette opération, nous
recornmandons cependant d'inclure la nouvelle adresse de début dans la chaîne
initiale.
•
Vous pouvez permuter les adresses de début de chaîne. Cette pratique peut servir
dans le tri des chaînes. Faites cependant attention à ne pas "entrecroiser" deux
chaînes.
•
Si votre sous-programme en langage machine modifie une variable déjà pointée sur
un littéral de chaîne, vous changez votre programme BASIC. Par exemple, supposons
que l ' instruction suivante se trouve dans votre programme BASIC:
8$="ABC"
Si votre sous-programme en langage machine modifie 8$, votre prcgramme BASIC
est changé. Pour éviter cet inconvénient, ajouter une chaîne nulle (" ") à tout littéral
de chaîne modifiée par votre sous-programme. Par exemple:
B $= 1 1 A B C 11 + " "
L a chaîne nulle force l e BASIC à copier l a chaîne dans l 'espace de chaîne où votre
sous-programme peut la modifier en toute sécurité.
Utilisation de l'espace de pile
U n sous-programme e n langage machine appelé par USR demandant plus de 30 octets de
stockage en pile doit fournir sa propre zone de pile. Sauvegardez le pointeur de pile de BASIC
à l'entrée dans la fonction USR, en établissant un nouveau pointeur et en rétablissant le pointeur
de pile de BASIC avant de revenir au BASIC. Les valeurs des registres A, B, X et CC n'ont
pas à être conservées par USR.
229
39 / Sous-programmes en Langage Machine
Fonctions BASIC pratiques
(Opérateur &H et fonctions HEX$ et LPEEK)
Le BASIC possède plusieurs fonctions pratiques dans le traitement des sous-programmes
en langage machine.
L'opérateur "&H" convertit un nombre décimal en notation hexadécimale. Par exemple, la
commande suivante stocke le nombre hexadécimal 20 dans l 'adresse de mémoire 47200:
LPOKE 47200, &H20
La fonction HEX$ convertit un nomore décimal en craîne hexadécimale. Sa syntaxe est:
H E X $ < n ) Retourne la valeur hexadécimale de n sous forme de chaîne.
Par exemple, la commande suivante stocke " 1 0," valeur hexadécimale de 1 6 dans A$:
A$=HEX$ (16)
La fonction LPEEK vous permet de voir une valeur stockée dans une certaine adresse de
mémoire. Sa syntaxe est:
L P E e K(adresse) Retourne le nombre stocké dans l'adresse.
Par exemple, la commande suivante indique le nombre, en notation hexadécimale, stocké
dans l'adresse 47200:
P R I N T L P E E K ( 47200)
Appris au chapitre
230
39
COMMANDES
FONCTIONS
OPÉRATEUR
CLEAR
DEFUSR
USA
LPEEK
LPOKE
VARPTR
HEX$
&H
PARTIE 7 I
DE TOUT ET DE RIEN
231
RÉPONSES SUGGÉRÉES
AUX EXERCICES
Exercice 4-4
Reproduction des tonalités du bas vers le haut de la gamme et vice-versa:
10
20
30
40
50
60
F O R X = 1 TO 2 5 5
SOUND X , 1
NEXT X
F O R X = 2 5 5 TO 1 S T E P - 1
SOUND X , 1
NEXT X
Exercice 5-1
10
20
30
40
50
60
70
P R I N T " CO M B I E N D E S E C ON D E S ? "
I N P UT S
FOR Z = 1 TO 460 * S
NEXT Z
P R I N T S " S E C O N D E S S O N T E C OU L E E S ! ! ! "
F O R T = 1 2 0 T 0 1 80
SOUNT T , 1
NEXT T
80
F O R T T = 1 5 0 T O 1 4 0 S T E P -1
90
1 00
SOUND T , 1
NEXT T
110
GOTO 5 0
1 20
Exercice 5-2
Lignes ajoutées au programme d'horloge
92
94
95
97
98
99
FOR T=200 TO 2 1 0 STEP 5
SOUN D T , 1
NEXT T
FOR T=21 0 TO 200 S T E P -5
SOUND T , 1
NEXT T
Exercice 5-3
10
20
30
40
50
F O R C = 0 TO 8
CLS (C)
F O R X = 1 T0 4 6 0
NEXT X
NEXT C
233
Réponses Suggérées aux Exercices
Exercice� q
10
14
16
20
30
-
/
T :;: R N D ( 2 5 5 )
C :;: R N D ( 8 )
C LS C
SOU N D T , 1
G O TO 1 0
Exercice� q - �
F O R N :;:1 T O 1 0
P R I N T " C HO I S I S S E Z VOTRE ALVEOLE ( 1 - 1 0 ) "
I N P UT X
20
1 F X :;: R N D ( 1 0 ) T H E N 1 0 0
30
40
SOU ND 200 , 1
P R I N T " -- C L I C --"
50
NEXT N
60
C LS
65
P R I N T " F E L I C ITATIO NS ! ! ! "
70
P R I NT " V O U S E T E S "
80
P R I NT "ENCORE EN V I E "
90
END
95
1 00
F O R T :;: 1 3 3 TO 1 S T E P - 5
110
P R I N T " B AN G ! ! ! ! ! "
5
10
1 20
1 30
1 40
1 50
1 60
170
234
SOUND T , 1
N E XT 5
CLS
P R I N T @ 230 , " D E SO L E , VOUS E T E S MORT"
SOUND 1 , 50
P R I N T @ 290 , " L A V I C T I M E SU I V A N T E , S . V . P . "
Réponses Suggérées aux Exercices
Exercice � Cf
10
20
30
40
50
60
70
80
90
1 00
110
1 20
130
140
1 50
1 60
1 70
1 80
1 85
1 90
200
210
220
225
230
240
250
260
270
280
500
510
51 5
520
530
540
600
610
615
620
630
-
3
C LS
A=RND (6)
B=RND (6)
R=A+B
PRINT @ 200, A
PRINT @ 21 4 , B
P R I NT @ 3 9 4 , "VOUS AVEZ J ET E UN" R
I F R=2 T H E N 600
I F R=3 T H E N 600
I F R=1 2 T H E N 6 0 0
I F R = 7 THEN 500
I F R = 1 1 THEN 500
FOR X = 1 T O 800
NEXT X
CLS
P R I N T a 1 9 5 , "J ETEZ UN A U T R E " R "ET VOUS G A G N E Z "
P R I N T a 2 6 2 , " J ETEZ UN 7 ET VOUS P E R D E Z "
P R I N T a 420 , " P R E S S EZ <ENTER> S I VOUS E T E S P R E T "
P R I N T a 4 5 6 , "POUR VOTRE PROC H A I N J ET"
I N PUT A$
�R N D ( 6 )
Y=RN D ( 6 )
Z=X+Y
C LS
P R I N T @ 200 , X
PRINT @ 21 4 , Y
PRINT @ 394, "VOUS AVEZ J ETE UN" Z
IF Z=R THEN 500
IF Z=7 THEN 600
GOTO 1 80
F O R X = 1 T O 1 0 00
NEXT X
C LS
P R I N T @ 23 0 , " V O U S A V E Z G A G N E "
PRINT @ 294, " F E L I C ITATIONS ! ! ! "
G O T O 630
F O R X =1 T01 000
N EXT X
C LS
P R I N T @ 264, " D E S O L E , VOUS AVEZ P E R D U "
P R I NT @ 458 " LA PARTIE EST T E R M I N E E"
235
Réponses Suggérées aux Exercices
Exercice 1 1 -2
5
C LS
6
P R I NT @ 2 3 0 , "VOTRE NOM" ;
8
I N PUT N$
10
C LS
T=T+1
15
X=R N D ( 1 0 0)
20
Y=RN D ( 1 0 0)
30
40
P R I N T @ 228, "QUE VAUT" X "+" Y ;
I N PU T A
45
50
I F A = X+Y THEN 82
P R I N T @ 3 2 6 , " L A R E PO N S E E S T " X + Y
60
PR INT @ 385 , "ESSAYEZ EN CORE , " N$
70
GOTO 1 0 0
80
82
83
84
85
86
87
90
95
97
98
99
1 00
1 02
1 05
110
C LS (7)
F O R M "' 1 TO 4
SOUND 1 75 , 1
SOU N D 2 00 , 1
NEXT M
C LS
P R I NT
C=C+1
P R I NT
PRINT
PRINT
@ 2 3 2 , " C O R R E C T , " N$ " ! ! ! "
@ 2 9 9 , " C E LA F A I T "
@ 3 2 2 , C "SUR" T "REPONSES J U STES"
@ 3 6 2 , C / T * 1 00 " % C O R R E C T " : I F T = 1 0 T H E N E N D
P R I NT @ 4 2 0 , " P R E S S E Z <ENTER> S I VOUS ETES PRET"
P R I N T @ 4 5 8 , " P O U R U N E A U T R E P A RT I E "
I N P UT A
GOTO 1 0
Exercice �
/o
-
�
5
C LEAR 500
DATA TAC ITUR N E , GENERA LEMENT PEU CAUSEUR
10
20
D A T A LOQUA C E , T R E S B A V A R D
30
D A T A C R I A R D , B R U Y A N T E T V E H E M E NT
40
DATA B R E F , CON C I S
50
DATA E X U B E R A N T , D EMONSTRAT I F O U COMMU N I C AT I F
N = RND (1 0)
60
I F I N T C N / 2 ) = N / 2 THEN N = N - 1
65
F OR X = 1 TO N
70
80
READ A$
NEXT X
90
110
READ B$
P R I NT " Q U E L MOT S I GN I F I E : " B $
1 20
RESTORE
130
I N PUT R$
1 40
1 50
I F R $ = A $ T H E N 1 90
1 60
P R I NT " F AUX"
1 70
P R I NT " L E M O T J U S T E E S T : " A $
GOTO 60
1 80
P R I NT " J U S T E "
1 90
GOTO 6 0
200
236
Réponses Suggérées aux Exercices
Exercice N
10
20
30
40
1 d -;
A$ = " C H A N G E Z U N E P H R AS E . "
8$ = " I L E S T F A C I L E D E "
C $ = 8 $ + 1 1 " + A$
P R I NT C$
Exercice avancé (chapitre j4i
J ;)
P R I NT "TAPEZ U N E P H R A S E : "
10
I N PUT S $
15
P R I N T "TAPEZ UNE E X P R E S S I ON A A N N U L E R "
20
23 I N PUT 0$
L=LEN CD$)
25
P R I NT "TAPEZ U N E EXPRESS ION D E REMPLACEMENT"
30
INPUT R$
35
40
50
60
70
80
1 00
110
1 20
130
FOR X=1 TO LEN C S $ )
I F M I D $ ( S $ , X , U = D$ T H E N 1 00
NEXT X
P R I N T D$ "-- N ' EST PAS DANS VOTRE P H R A S E "
GOTO 20
E = X-1 + L E N ( 0 $ )
N $ = L E F T $ ( S $ , X - 1 > + R $ + R I G H T$ ( S $ , L E N C S $ ) - E )
P R I N T " L A N OU V E L L E P H R A S E E S T : "
P R I N T NJ $
Exercice 1 6-1
5
10
15
20
25
30
CLS
FOR N=1 2 TO 1 S T E P - 1
P R I N T "NOT E " ; N
P LAY STR$ ( N )
F O R I = 1 TO 5 0 0 : N E X T I
NEXT N
Exercice 1 6-2
Changez les lignes suivantes:
1 00
1 05
110
115
1 20
1 25
130
A $ = " TS ; C ; E ; F ; L 1 ; G ; P 4 ; L 4 ; C ; E ; F ; L 1 ; G "
8$
C$
0$
E$
FS
X$
=
=
=
=
=
=
" P4 ; L 4 ; C ; E ; F ; L2 ; G ; E ; C ; E ; L1 ; D "
" P 4 ; L 4 ; D + ; L 8 ; E ; G ; E ; P 8 ; L4 ; C ; L 8 ; D ; D+"
" L4 ; E ; C ; L 2 ; 0 3 ; C ; L 8 ; 0 3 ; D ; L 8 ; e 2 ; B - "
" G ; E ; L4 ; G ; L 1 ; F ; P 4 ; L 8 ; G ; F ; E ; F "
" L 2 ; G ; E ; L 4 ; C ; L8; D ; D + ; E ; G ; L4; A ; L1 ; 0 3 ; C
" X A $ ; X B $ ; X C $ ; X D$ ; X E $ ; X F $ ; "
Ajoutez la ligne 1 4t>:
1 40
P LAY X $
11
Réponses Suggérées aux Exercices
Exercice 1 9-2
5
10
20
30
40
50
60
70
PMODE 1 , 1
P C LS
SCREEN 1 , 1
X=R ND ( 2 5 6 ) - 1
Y=RND ( 1 92 ) -1
C=RND(9)-1
P S ET ( X , Y , C )
GOTO 30
Exercice 20-1
5
PMODE 1 , 1
P C LS
SCR EEN 1 , 1
L I N E (0 , 0 ) - (255 , 1 91 ) , PSET
L I N E (0 , 1 9 1 ) - (2 5 5 , 0 ) , PSET
L I N E (0 , 0 ) - ( 2 5 5 , 1 91 ) , P S ET , B
GOTO 40
40
10
20
25
30
35
Exercice 20-2
5
10
20
30
40
45
50
55
60
65
70
75
80
85
90
PMODE 1 , 1
PC LS
S C R E EN 1 , 1
L I N E (72 , 1 68 ) - ( 2 0 0 , 72 ) , P S E T , B ' C H A R P E N T E
L I N E <72 , 7 2 ) - ( 1 3 6 , 3 6 ) , PSET ' TO I T
L I N E (200 , 72 ) - ( 1 3 6 , 3 6 ) , P S E T ' T OIT
L I N E ( 1 2 0 , 1 68 ) - ( 1 5 2 , 1 0 0 ) , P S E T , B ' P O R T E
L I N E ( 1 5 2 , 6 0 ) - ( 1 68 , 3 6 ) , P S E T , B F ' C H E M I N E E
L I N E ( 1 65 , 1 28 ) - ( 1 91 , 1 00 ) , P S E T , B ' F E N E T R E
L I N E < 1 7 8 , 1 2 8 ) - ( 1 7 8 , 1 0 0 ) , P S E T ' P I E C E D E F E N ET R E
L I N E ( 1 6 5 , 1 1 4 ) - ( 1 91 , 1 1 4 ) , P S E T ' P I E C E D E F E N ET R E
L I N E (8 5 , 1 2 8 ) - ( 1 1 1 , 1 0 0) , PSET , B ' F E N ETRE
L I NE (85 , 1 1 4) - ( 1 1 1 , 1 1 4) , PSET ' P I E C E D E FENETRE
L I N E (98 , 1 00 ) - (98-1 28) , PSET ' P I E C E D E F E NETRE
G O T O 90
Exercice 20-3
5
PMODE 1 , 1
10
P C LS
SCREEN 1 , 1
20
Y=0
30
FOR X=0 TO 2 0 0 STEP 1 0
40
OY=Y
50
Y=3 0-0Y
60
70
L I N E ( X , 1 0 0 -Y ) - ( X + 1 0 , 1 0 0 - 0 Y ) , P S E T
NEXT
80
G O T O 90
90
238
Réponses Suggérées aux Exercices
Exercice 21 -1
S
10
20
30
35
40
60
70
75
80
Y=-1
C LS
P R I N T @ 1 93 , " V O U L E Z-VOUS V O I R UN C A R R E ? "
F O R X = 1 TO 1 00 0 : N E X T X
PMODE 1 , 1
PCLS
S C R E E N 1 , Y+1
L I N E (7 5 , 1 5 0 ) - ( 1 5 0 , 7 5 ) , P S E T , B
FOR X = 1 TO 1 00 0 : NEXT X
Y=-Y
GOTO 5
Exercice 23-1
2
5
W I DTH 3 2
PMOD E 4 , 1
P A L E T T E 1 1 , Code d e co u l e u r
8
9
PALETTE 1 0 , 0
COLOR 7 , 6
10
20
SCREEN 1 , 1
25
L I N E ( 0 , 0 ) - ( 2 5 5 , 1 91 ) , PSET
30
L I N E ( 0 , 1 91 ) - ( 2 5 5 , 0 ) , PSET
G O T O 40
40
Exercice 24-2
Apportez les change,,ents suivants:
22
32
42
P C O P Y 4 TO 3
PCOPY 3 TO 2
PCOPY 2 TO 1
Annulez les lignes de programme 1 1 , 21 et 3 1 .
239
Réponses Suggérées aux Exercices
Exercice 24-3
10
20
25
30
40
45
50
55
60
65
70
75
80
85
90
95
96
1 00
1 05
110
P C LEAR 8
PMODE 4 , 1
P C LS
SCREEN 1 , 1
L I N E ( 0 , 0 ) - ( 2 5 5 , 1 91 ) ,
F O R Y = 1 TO 2 0 : N E X T Y
PMODE 4 , 2
S C R E EN 1 , 0
L I N E ( 0 , 0 ) - ( 2 5 5 , 1 91 ) ,
FOR Z=1 TO 20: NEXT Z
PMODE 0 , 3
SCREEN 1 , 1
L I N E ( 0 , 0 ) - ( 2 5 5 , 1 91 ) ,
F O R A = 1 TO 2 0 : N E X T A
PMODE 1 , 4
SCREEN 1 , 1
PCLS
L I N E ( 0 , 0 ) - (2 55 , 191 >
F O R R = 1 TO 2 0 : N E X T R
GOTO 2 0
PSET
PSET
PSET
, PSET
Exercice 25-1
10
20
30
40
50
60
70
PMOD E 4 , 1
P C LS
S C R E EN 1 , 0
F O R R A D I U S = 1 T O 1 00 S T E P 1 0
C I R C LE ( 1 2 8 , 9 6 ) , R A D I U S
NEXT R A D I U S
GOTO 7 0
Exercice 25-3
5
10
20
30
40
50
240
PMODE 4 , 1
P C LS
S C R E EN 1 , 0
C I R C LE ( 2 0 0 , 40 ) , 3 0 , , 1 , . 1 3 , . 63
C I R C LE ( 23 0 , 1 0 ) , 5 2 , , 1 , . 2 9 , . 4 8
G O TO 5 0
Réponses Suggérées aux Exercices
Exercice 25-4
5
10
15
20
PMODE 1 , 1
S C REEN 1 , 0
PCLS 3
COLOR 1 , 0
25
30
35
40
45
C I R C L E < 2 0 0 , 4 0 ) , 3 0 , , 1 , . 1 3 , . 63 ' LUNE
C I R C L E ( 23 0 , 1 0 ) , 5 2 , , 1 , . 2 9 , . 4 8 ' L U N E
L I N E ( 1 00 , 1 8 5 ) - ( 1 8 0 , 1 2 5 ) , P S E T , B ' C H A R P E N T E D E L A M A I S O N
L I N E - (1 40 , 8 5 ) , P S E T ' TO I T
L I N E - ( 1 0 0 , 1 2 5 ) , P S E T ' TO I T
55
60
70
75
80
85
90
1 00
1 05
110
115
1 20
125
130
200
L I N E ( 1 1 0 , 1 60 ) - ( 1 2 5 , 1 3 0) , P S E T , B ' F ENETRE
L I N E ( 1 55 , 1 6 0 ) - ( 1 7 0 , 1 3 0 ) , P S E T , B ' F E N E T R E
L I N E ( 1 30 , 1 3 0 ) - ( 1 4 9 , 1 8 5 ) , P S ET , B ' P ORTE
L I N E ( 1 34 , 1 5 7 , 1 > ' B O U T O N D E P O R T E
L I N E ( 1 60 , 1 05 ) - ( 1 6 0 , 9 0) , PSET ' C H E M I N E E
L I N E - ( 1 7 5 , 90 ) , PSET ' C H E M I N E E
L I N E - ( 1 7 5 , 1 1 5 ) , P S E T ' C H EM I N E E
' L A F U M E E COM M E N C E I C I
X=1 6 7 : Y=89 ' C E N T R E D U C E R C L E
S P = 0 : EP=0 ' P O I N T D E D E BUT ET D E F I N D U C E R C L E
F O R R = 1 TO 5 0 S T E P . 0 5 ' R A Y O N D U C E R C L E
EP=EP= . 0 2 : I F E P> 1 THEN EP=0
C I R CLE (X+R, Y-R) , R , 4 , 1 , S P , E P ' F UMEE
NEXT R
GOTO 200
Exercice 26-1
Annulez la ligne 4 • et ajoutez la ligne 65:
65
P A I N T ( 1 5 0 , 1 00 ) , 8 , 1
241
Réponses Suggérées aux Exercices
Excercice 26-3
5
PMOD E 1 , 1
P C LS
10
15
SCREEN 1 , 0
P C LS 3
20
25
30
35
40
45
50
55
60
65
70
75
80
85
90
95
1 00
1 05
110
115
1 20
1 40
COLOR 1 , 0
C I R C LE (200 , 3 0) , 1 5
PAINT (200,30) , 2 , 1
L I N E < 1 0 0 , 1 85 ) - ( 1 80 , 1 2 5 )
L I N E - ( 1 40 , 90) , P S E T
LINE - ( 1 00 , 1 25) , PSET
PAINT ( 1 35 , 1 1 5) , 4 , 1
L I N E ( 1 1 0 , 1 60 ) - ( 1 25 , 1 30 )
L I N E ( 1 5 5 , 1 60 ) - ( 1 70 , 1 3 0 )
P S E T ( 1 3 4 , 1 5 7 ) - ( 41 , 1 8 5 ) ,
P A I NT ( 1 2 0 , 1 8 0 ) , 0 , 1
, P S ET , B
, P S ET , B
, PSET , B
PSET , B
L I N E ( 1 3 0 , 1 3 0 ) - ( 1 49 , 1 8 5 ) , P S E T , B
L I N E ( 1 01 , 1 3 5 ) - ( 41 , 1 85 ) , P S E T , B
L I N E (91 , 1 40 ) - ( 5 1 , 1 8 5 ) , P S ET , B
PAINT (55 , 1 38) , 0 , 1
P A I N T ( 8 9 , 1 83 ) , 4 , 1
F O R X = 1 TO 5 0 0 : N E X T X
P A I N T ( 89 , 1 83 ) , 2 , 1
FOR X=1 TO 5 0 0 : N E X T X
P A I NT ( 89 , 1 5 5 ) , 4 , 1
GOT0 1 1 0
Exercice 27-1
5
PMODE 4 , 1
10
P C LS
20
S CREEN 1 , 0
30
D R AW " B M 6 8 , 1 1 6 ; E 2 0 ; B E 2 0 ; E 2 0 ; F 2 0 ; B F 2 0 ; F 2 0 ; L 40 ; B L 4 0 ;
L 4 0 ; BU 4 0 ; R 4 0 ; B R 40 ; R 4 0 ; G 2 0 ; B G 2 0 ; G 2 0 ; H 2 0 ; B H 2 0 ; H 2 0 ;
BM1 2 8 , 9 6 ; N U 4 0 ; N D 4 0 ; N E 2 0 ; N F 20 ; N G 2 0 ; N H 2 0 ; N L4 0 ; R40"
G O T O 40
40
L'étoile que vous avez créée n'a peut-être pas autant de détails que celle-ci, car vous ne
connaissez encore ni B ni N . Ne vous inquiétez pas: vous apprendrez à les connaître avant
la fin du chapitre.
Exercice 27-2
5
P M O D E 4, 1
PC LS
10
20
S C R E EN 1 , 1
25
DRAW "BM40 , 8 0 ; U 4 0 ; R 40 ; D40; L40"
DRAW "BM + 2 0 , 20; U40; R40; 040 ; L40"
30
40
L I N E ( 6 0 , 1 0 0 ) - ( 4 0 , 80 ) , PSET
50
L I N E ( 60 , 6 0 ) - ( 40 , 40) , P S E T
60
L I N E ( 1 0 0 , 60 ) -80 , 40) , P S E T
70
L I N E ( 1 0 0 , 1 0 0 ) - ( 80 , 80) , P S E T
G O T O 80
80
242
Réponses Suggérées aux Exercices
Exercice 27-3
5
PMOD E 4 , 1
PCLS
10
20
S C R E EN 1 , 1
25
DRA W "BM 5 0 , 5 0 L30 D30R30D3 0 L3 0 "
30
DRAW "BM90 , 50D 60R30U60"
D R AW " B M1 6 0 , 5 0 D G 0 R 3 0 B U 6 0 L 3 0 D3 0 R3 0 "
40
GOTO 50
50
Exercice 27-4
5
10
20
30
40
PMODE 4 , 1
PCLS
S C R EEN 1 , 0
D R AW " B M9 8 , 9 6 ; N U 8 0 ; N E 5 6 ; N R 8 0 ; N F 5 6 ; N D 8 0 ; N G 5 6 ; N L 80 ; N H 5 6 "
C I R C L E (98 , 9 6 ) , 8 0 , 1 , 1 , . 1 2 5 , 1
50
60
70
80
C I R C L E ( 1 3 5 , 1 1 0 ) , 80 , 1 , 1 , 1 , . 1 2 5
LINE ( 1 3 5 , 1 1 0 ) - ( 1 9 0 , 1 67) , PSET
L I N E ( 1 3 5 , 1 1 0 ) - ( 2 1 3 , 1 1 0 ) , P S ET
GOTO 8 0
Exercice 27-5
C L E A R 2 5 00
1
DIM AZ$(25)
5
F O R L E = 0 TO 2 5
6
READ AZ$ ( LE )
10
NEXT LE
15
N C $="BR4BU7" ' C ARACTERE S U I VANT
20
25
N L$="B D4" ' L I G N E S U I V A N T E
B S $ = " B L 9" ' E S P A C E M E N T A R R I E R E
30
35
H M $ = " B M 0 , 1 0 " ' P O S I T I ON D E R E P O S
CW=6 : CH=8
' T A I LE DE LA C E L L U L E
1 00
110
R1=7: R24=191
' P O S I T I O N D E LA R A N G E E
C 1 = 8 : C 4 2 = 2 4 7 ' PO S I T I O N D E L A C O L O N N E
1 20
1 25
C C = 1 : C L=1
' RANGEE/COLONNE COURANTE
PMODE 4, 1
200
P C LS
210
220
230
250
260
262
265
269
270
290
SCREEN 1 , 0
DRAW HM
A$= I N K EY$ : I F A$= 1111 T H E N 2 5 0
I F " A " > A $ OR " Z " < A $ T H E N 2 5 0
CC=CC+1
I F C C>27 T H E N D R A W N L$ : F O R I = 1 T O 2 7 :
DRAW B S $ : N EXT I : C C=1 : GOTO 270
D RAW N C $
DRAW AZ$ ( A S C ( A $ ) - 6 5 )
GOTO 2 5 0
243
Réponses Suggérées aux Exercices
1 0 00
1010
1 020
1 03 0
1 040
1 050
1 0 60
1 07 0
1 0 80
1 090
1 1 00
1110
1 1 20
1 1 30
1 1 40
1 c
D A T A 8 D 1 D 5 F 1 R 3 E 1 U 1 B U 3 U 1 H 1 L3 G 1 B D 6 B R 5
'D
DATA D7R4E1 U5H1 L4BD7BR5
' E
DATA N R 5 D 3N R4D4R5
1 F
DATA N R 5 D3 N R4D4BR5
'G
DATA BD1 D5 F1 R3 E1 U2N L2BU2U1 H1 L3G1 BDG BRS
'H
1 1 50
1 1 60
1 1 70
1 1 80
DATA D7U4R 5 N U3D4
' I
DATA R4L2D7L2R4BR1
'J
1 1 90
1 2 00
DATA
' K
DATA
' L
DATA
'M
DATA
'N
1210
1 220
1 23 0
1 2 40
1 2 50
1 2 60
1 270
1 28 0
1 290
1 3 00
1310
1 3 20
1 33 0
1 3 40
1 350
1 3 60
1 3 70
1 3 80
1 3 90
1 4 00
1 41 0
1 4 20
1 43 0
1 440
1 450
1 4 60
1 47 0
1 4 80
1 4 90
1 5 00
1 510
244
'A
DATA 8 D 1 D6U4N R5U2E1 R 3 F 1 D6
'B
D A T A N D 7R4F1 D1 G 1 N L4 F 1 D 2 G 1 N L4BR1
8 D 5 D 1 F 1 R3 E 1 U 6 B D 7
D7U4R3 E2NU1 G 2 F 2 D2
D7R5
ND7F2ND7E207BR1
DATA ND7D1 F 5 N D 1 U68D7
10
D A T A B D 1 D 5 F 1 R 3 E 1 U 5 H 1 L3 G 1 B D 6 B R 5
'P
DATA
'Q
DATA
'R
DATA
' S
DATA
' T
DATA
'U
DATA
' V
DATA
N D7R4F1 D2G1 L4BD3BR5
8 D 1 D 5 F 1 R 3 E 1 U 5 H 1 L3G1 D4BR3F2
N D 7 R 4 F 1 D 1 G 1 N L4 F 1 D3
B D 1 D 1 F 1 R 3 F 1 D 2 G 1 L3 H 1 B U 5 E1 R3 F 1 B D 6
R4L2D7BR3
D6F1 R3E1 U6BD7
D5F2E2U5BD7BR1
1w
DATA D7E2NU5 F2U7BD 7BR1
'X
DATA D 1 F 5 D 1 B L5 U 1 E 5 U 1 BD7
'Y
DATA D 2 F 2 N D 3 E 2 U 2 8 D 7 B R 1
'Z
DATA R5D1 G5D1 R5
Réponses Suggérées aux Exercices
Programme 27-6
5
10
15
20
25
30
31
32
33
35
40
45
50
55
56
59
60
65
70
75
80
85
90
91
PMODE 3 , 1
P C LS
SCREEN 1 , 0
D R A W " B M 5 0 , 1 7 0 ; U 8 0 ; N G3 0 ; E 8 0 ; F 8 0 ; N F3 0 ; D 8 0 ; U 7 0 ;
L 5 0 ; U 6 0 ; U6 0 ; L60 ; D 6 0 ; L50"
L I N E ( 5 0 , 1 7 0 ) - ( 1 7 0 , 1 7 0) , P S ET
L I N E ( 1 60 , 1 70 ) - ( 1 6 0 , 1 0 0 ) , P S E T
L I N E ( 1 00 , 1 70 ) - ( 1 0 0 , 1 0 0 ) , P S E T
LINE - ( 1 6 0 , 1 00) , PSET
L I N E ( 1 1 0 , 1 4 5 ) - ( 1 20 , 1 4 5 ) , P S E T
F O R X = 1 TO 5 0 0 : N E X T X
L I N E ( 1 00 , 1 7 0 ) - ( 1 6 0 , 1 7 0 ) , P R E S E T
L I N E ( 1 2 0 , 1 80 ) - ( 1 2 0 , 1 1 0 ) , P S E T
L I N E ( 1 60 , 1 00 ) - ( 1 2 5 , 1 1 0 ) , P S ET
L I N E ( 1 60 , 1 70 ) - ( 1 2 5 , 1 80 ) , P S E T
L I N E (1 1 0 , 1 45 ) - ( 1 20 , 1 4 5 ) , P R E S ET
FOR X=1 TO 3 0 0 : NEXT X
L I N E ( 1 2 0 , 1 80 ) - ( 1 2 0 , 1 1 0 ) , P R E S E T
L I N E ( 1 6 0 , 1 00 ) - ( 1 2 0 , 1 1 0 ) , P R E S E T
L I N E ( 1 60 , 1 70 ) - ( 1 2 0 , 1 8 0 ) , P R E S E T
D R A W " B M1 1 0 , 1 7 0 ; B U 7 0 ; B R 5 0 ; G 2 5 ; D 7 0 ; E 2 5 ; B U3 5 ; B G 1 5 ; G 5 "
C I RCLE (130 , 1 25 ) , 1 0 , , 1 , . 1 35 , . 9
D R A W " B M 1 3 0 , 1 3 0 ; D 1 5 ; D 1 5 ; G 1 0 ; E 1 0 ; U 1 5 ; L 1 0"
L I N E ( 1 20 , 1 45 ) - ( 1 20 , 1 3 5 ) , P S E T
F O R X = 1 TO 6 0 : N E X T X
95
L I N E ( 1 20 , 1 45 ) - ( 1 2 0 , 1 3 5 ) , P R E S E T
F O R X = 1 TO 1 2 0 : N E X T X
96
L I N E ( 1 2 0 , 1 45 ) - ( 1 1 0 , 1 4 5 ) , P S E T
1 00
FOR X=1 TO 60: NEXT X
101
110
L I N E ( 1 2 0 , 1 45 ) - ( 1 2 0 , 1 3 5 ) , P S E T
F O R X = 1 TO 1 2 0 : N E X T X
120
121
C I RCLE (130, 1 25 ) , 1 0 , 1
122
125
130
135
1 40
1 41
1 45
1 46
1 50
155
1 60
170
175
DRAW "BM1 3 0 , 1 3 0 ; C 1 ; D3 0 ; G 1 0 ; E 1 0 ; U 1 5 ; L 1 0 "
D R A W " B M 1 1 0 , 1 7 0 ; B U7 0 ; B R 5 0 ; C 1 ; G 2 5 ; D 7 0 ; E 2 5 ; B U 3 5 ; B G 1 5 ; G 5 "
C O LOR 4 , 1
L I N E ( 1 2 0 , 1 80 ) - ( 1 2 0 , 1 1 0 ) , PSET
L I N E ( 1 60 , 1 00 ) - ( 1 2 5 , 1 1 0 ) , PSET
L I N E ( 1 2 0 , 1 4 5 ) - ( 1 1 0 , 1 45 ) , P R E S ET
L I N E ( 1 60 , 1 7 0 ) - ( 1 2 0 , 1 8 0 ) , P S E T
FOR X=1 TO 3 0 0 : N E X T X
L I N E ( 1 2 0 , 1 80 ) - ( 1 2 0 , 1 1 0 ) , P R E S E T
L I N E ( 1 60 , 1 0 0 ) - ( 1 2 0 , 1 1 0 ) , P R E S E T
L I N E ( 1 2 0 , 1 80 ) - ( 1 6 0 , 1 7 0> , PRESET
L I N E ( 1 00 , 1 7 0 ) - ( 1 6 0 , 1 7 0 ) , P S E T
GOTO 2 0
245
Réponses Suggérées aux Exercices
Exercice 28-1
5
P C LEAR 4
10
PMODE4 , 1
PCLS
15
20
SCREEN 1 , 1
25
DIM V (35 ,35)
30
X=1 0 : Y=1 0
35
40
45
50
55
D R A W " B M 1 0 , 1 0 ; S 2 ; H 1 0 ; R 1 5 ; F 1 0 ; R2 0 ; F 1 0 ; G 1 0 ; L 20 ; G 1 0 ;
L 1 5 ; E 1 0 ; U 2 0 ; D 4 ; N L8 ' D 4 ' N L 1 2 ' D 4N L 1 6 ; D 4 ; N L 1 2 ; 0 4 ; N L 8 "
G E T C X - X , Y - Y > - < X * 3 . 5 , Y *3 . 5 ) , V , G
A $ = I N K E Y $ : I F A $ = " " T H E N 4 5 ' P R E S S E Z U N E TO U C H E P O U R CO M M E N C E R
P C LS
F O R A=1 0 TO 200 S T E P 5
60
65
70
75
P U T C X + A , Y ) - ( X + A +3 5 , Y +3 5 ) , V , P S E T
NEXT A
PCLS
GOTO 5 5
Avez·vous remarqué que nous avons utilisé les options pour GET et PUT? Si vous voulez
faire accélérer cette fusée, annulez les options et passez en mode 3.
Exercice 31-1
5
C L S : P R I N T " P O S I T I ON N E Z L A B A N D E - P R E S S E Z P L A Y E T R E C O R D :
7 I N PUT "PRESSEZ <ENTER> S I VOUS ETES PRET";R$
OPEN "0", #-1 , " C H E C KS"
10
C L S : P R I N T " E N T R E Z C H E Q U E S - P R E S S E Z <XX> Q U A N D VOUS AVEZ F I N I"
15
I N P U T " N OM B R E : " ; N $
20
25
I F N$ = " X X " T H E N 90
I N P U T " D A T E : 11 ; D $
30
40
50
60
70
80
90
92 C
95
1 00
110
120
1 30
1 40
1 50
1 60
1 70
1 80
246
I N P U T " P A Y A B L E A : " ; P$
I N PUT "COMPTE : " ; S$
I N P UT " M O N T A N T : $ " ; A
P R I N T #-1 , N$ 0 $ , P $ , S $ , A
GOTO 1 5
C LOSE #-1
LS : T = 0
I N P UT " Q U E L C O M P T E : ; B $
P R I NT " R EBOB I N E Z LA BANDE - P R E S S E Z PLAY"
I N P U T " P R E S S E Z < E N T E R> S I V O U S E T E S P R E T " ; R $
OPEN " I " , #-1 , " C H E Q U E S "
I F EOF < - 1 ) T H E N 1 70
INPUT #-1 , N $ , D$, P $ , S$, A
I F B$ = S $ T H E N T = T+A
GOTO 1 3 0
C LO S E # - 1
P R I N T " L E TO T A L D E P E N S E - " B $ , " E S T $ " T
Réponses Suggérées aux Exercices
Exercice 32-1
10
20
30
40
50
60
70
75
80
90
D A T A 3 3 , 1 2 , 42 , 1 3 , 1 5 , 23
DATA 2 5 , 3 0 , 3 3 , 27 , 1 4 , 8
DIM I C1 2 )
FOR X=1 T0 1 2
READ I (X )
N E XT X
I NPUT "ART I C L E N O . " ; N
I F N>1 2 THEN 70
I N P U T " I N V ENTA I R E D E L ' A RT I C LE" N "EST" I ( N )
GOTO 70
Exercice 32-2
5
DIM T <52)
DIM 0(52)
7
10
F O R X=1 TO 5 2
T < X > =X
20
30
N EXT X
34
C LS
36
P R I N T @ 1 01 , " ·
FOR X=1 TO 5 2
40
50
C=RN D ( 52)
60
I F T < C ) =0 T H E N 5 0
•
70
75
80
1 00
110
1 20
130
1 40
150
1 60
•
POUR D O N N E R LES C A R T E S "
D(X)=C
SOUND 1 28 , 1
T<C) = 0
N EXT X
CLS
P R I N T iiJ 1 0 7 , " V O T R E M A I N "
P R I N T @ 1 6 7 , Il ..
FOR X = 1 TO 5
P R I NT D ( X) ;
N EXT X
Exercice 33-1
Lignes pour changer les articles:
110
115
I N P UT "QU E L N U M E R O D ' A R T I C L E D E S I RE Z-VOUS C H A N G E R " ; N
I F N>1 2 THEN 1 1 0
1 20
130
I N P U T "Q U E L E S T L ' A R T I C L E D E R E M P L A C E M E N T " ; S $ { N )
GOTO 80
L'annexe donne u n exemple de programme qui ajoute des articles à cette liste et e n annule.
247
Réponses Suggérées aux Exercices
Exercice 33-2
Lignes pour changer les paroles de la chanson:
110
1 20
130
1 40
150
P R I NT
I N PUT " Q U E L L E L I G N E D E S I R EZ-VOUS REV I S E R " ; L
P R I N T " T A P E Z LA L I G N E D E R E M P L A C E M E N T "
I N P U T A$ ( L )
GO T O 5 0
Exercice 33-3
C L E A R 1 0 00
D I M A$ C 5 0 )
C LS
P R I N T "TAPEZ UN PARAGRAPHE"
10
P R I N T " P R E S S E Z < / > S I VOUS A V E Z F I N I "
20
30
X=1
A$ = IN KEY$
40
I F A$ = " " T H E N 4 0
50
60
PRINT A$;
I F A$ = " / " T H E N 1 0 5
70
A $ ( X ) = A $ ( X ) + A$
80
I F A$ = " . " OR A$ = " ? " OR A$ = " ! " T H E N X = X + 1
90
GOTO 4 0
1 00
P R I NT : P R I N T
1 05
1
5
7
110
1 20
130
1 40
1 000
1 010
1 0 20
1 030
1 0 40
2000
201 0
2020
2030
2040
2050
2050
2060
2070
2080
2090
2 1 00
21 1 0
2120
2130
2140
2150
2 1 60
2170
21 80
248
I N P U T 11 ( 1 ) I M P R I M E OU ( 2 ) R E V I S E " ; R
C LS
ON R G O S U B 1 0 0 0 , 2 0 0 0
GOTO 1 0 5
REM I M P R E S S I O N D ' UN PARAGRAPHE
FOR Y = 1 TO X-1
P R I NT A $ C Y > ;
N E XT Y
RETURN
REM R E V I S I O N D ' UN P A R A G R A P H E
F O R Y = 1 T O X-1
P R I N T Y "--" A $ ( Y )
N EXT Y
I N PU T " N U M E R O D E P H R A S E A R E V I S E R " ; S
I F S > X - 1 O R S <1 T H E N 2 0 4 0
P R I N T A$ ( S )
P R I N T "TAPEZ L ' EXPRE S S I ON A A N N U L E R "
I N PUT D $
L=LEN (D$)
P R I N T "TAPEZ U N E E X P R E S S ION DE REMPLACEMENT"
I N PUT R $
FOR Z = 1 T O L E N ( A $ ( S ) )
I F H I D $ ( A $ ( S ) , Z , L ) = 0$ T H E N 2 1 6 0
N EXT Z
P R I N T 0$ "-- N ' E ST PAS DANS VOTRE P H R A S E "
GOTO 2 0 6 0
E = Z-1 + L E N ( D$ )
A$ ( S ) = L E F T $ ( A $ ( S ) , Z -1 ) + R $ + R I G H T $ ( A $ ( S ) , L E N ( A $ ( S ) ) - E )
RETURN
Réponses Suggérées aux Exercices
Exercice 33-4
Changez cette ligne pour imprimer avec l'imprimante:
1 50
P R I N T #- 2 , A $ ( Y ) ;
Exercice 34-1
10
20
30
40
50
60
70
80
90
1 00
110
120
130
1 40
1 50
1 60
170
180
190
DIM $$ (4) , N$( 1 3 ) , T C 4 , 1 3 )
D A T A P I QU E S , C O E U R S , C A R R E A U X , T R E F L E S
FO R X = 1 T0 4
R E A D S$ < X )
NEXT X
DATA A S , 2 , 3 , 4 , 5 , 6 , 7 , 8, 9 , 1 0 , V A L E T , D A M E , ROI
F O R X=1 TO 1 3
READ N $ (X)
NEXT X
FOR S=1 T0 4
FO R N = 1 T0 1 3
T ( S , N ) = ( S -1 > * 1 3 + N
N EXT N , S
F O R X = 1 TO 5 2
S=RND (4) : N=RND C 1 3 )
IF 5(S,N) = 0
T(S,N) = 0
P R I N T F $ ( N ) "-" $ $ ( S ) ,
NEXT X
Exercice 35-1
C LS
5
10
F O R NUMBER = 1 00
TO 1 STEP - 1 0
PR I N T S Q R C N U M B E R )
20
N E X T N UM B E R
30
Exercice 35-2
5
C LS
T0 1 79 S T E P 1 0
FOR 1 = - 1 8 0
10
1 5 RD=A/57 . 29577951
C P = C O S ( R 0 ) * 1 4+ 1 6 . 5 ' P O S I T I O N C O S
30
S P = S I N ( R D ) * 1 4+ 1 6 . 5 ' P O S I T I O N S I N
40
I F S P < = C P T H EN 70
50
P R I N T TAB ( C P ) ; " C " ; T A B ( S P ) ; " S " : GOTO 80
60
70
PRINT TAB(SP) ; "S";TAB(CP) ; "C"
80
NEXT A
GOTO 1 0
90
249
Réponses Suggérées aux Exercices
Exercice 35-3
a.)
? LOG ( 1 003 )
6 . 9 1 0 7 5 0 79
b.)
? LO G ( 7 4 . 9 8 6 5 )
4 . 3 1 73 0 8 1
c.)
? LO G ( 3 . 3 5 4 2 8 5 )
1 . 1 2023863
Exercice 35-4
5
10
15
20
25
a.
C LS
I N PUT " Q U E L N O M B R E " ; N O M B R E
X = LO G ( N O M B R E ) / LO G ( 1 0 )
P R I NT "LE LOG BASE 10
D E " NOMBRE "EST" X
GOT0 1 0
7 . 00890077 E-1 1
Remarque: Le log de 1 dans une base quelconque est *. La réponse de l 'ordinateur
résulte d'une erreur d'arrondi. Tous les ordinateurs donnent cette réponse.
b.)
c.)
d.)
e.)
f.)
2
2 . 69897001
-1
3 . 00043408
Exercice 35-5
1 .)
2.)
D E F F N R ( X ) = X*57. 29577951
5
C LS
D E F F N C ( X ) = X"3
10
INPUT "QU E L NOMBRE VOULEZ-VOUS E L E V ER AU C U B E " ; X
20
X=FNC (X)
30
P R I NT X
40
FOR A = 1 TO 7 5
50
NEXT A
55
GOTO 2 0
60
250
Réponses Suggérées aux Exercices
Exercice 36-1
s
10
20
30
40
41
42
43
50
51
52
60
61
62
63
70
80
C LS
X$ = S T R I N G $ ( 3 0 , " - " )
F O R X = 64 T O 3 5 2 S T E P 6 4
PRINT @ X , X
P R I N T @ 97, "BERNARD"
P R I N T @ 1 61 , "SUZANNE"
PRINT @ 225 , "J EAN"
P R I N T @ 2 8 9 , "MAR I E "
PRINT @ 38, "MATHS"
P R I N T @ 45 , "ORTHOGRAPHE"
P R I N T @ 53 , " L E C T U R E "
P R I N T @ 1 03 , " X "
P R I N T @ 1 7 5 , "X"
P R I N T @ 23 1 , " X "
P R I N T @ 3 1 1 , "X"
PRINT X
GOTO 80
Exercice 36-2
5
CLS
X$ = "ABCDEB"
Y$ = "B"
20
P R I N T I NS T R CX$ , Y $) ; I N S T R ( 4 , X $ , Y$)
30
10
Exercice 36-3
1 5
20
X=1
50
X $ = " J A M E S S M I T H , 6 5 5 0 H A R I SON , D A L LAS , T X * 7 5 0 0 2 : S U E
S I M , R T3 , G R A V I O S M 0 * 6 5 0 8 4 : L Y D I A L O N G , 3 4 4 5 S M I T H S T ,
A S B U R Y N J *3 2 0 0 4 : B O B S T R ON G , B O X 6 0 , E D M O N T O N A L B E R T A C A :
T I MMY DUN TON , P l ERMONTM0•65078"
P = I N S T R C X , X $ , A$ ) : P R I N T P
60
I F P<> 0
T H E N X=P+1 : GOTO 50
Réponses Suggérées aux Exercices
Exercice 36-4
10
20
30
40
50
60
70
80
90
1 00
110
1 20
1 30
1 40
1 50
1 60
1 70
1 80
1 90
200
210
220
230
D I M T B L$ ( 2 6 )
FOR I=0
TO 25
READ TBL$ ( I ) : NEXT I
P R I N T " E N T R E Z LE V I E U X N U M E R O
I N PU T N $
I F N $ = 1 1 11 T H E N 40
FOR I=1 TO LEN ( N $ )
C$=M I D $ ( N $ , I , 1 )
I F C$< "A" OR C $ > " Z " T H E N 1 2 0
C$=TB$ ( A S C ( C $ ) -6 5 )
M I D$ ( N $ , I ) - C $
NEXT I
P R I NT "NOUVEAU T Y P E = " ; N $
R EM A B C D E F
D A T A " 2 " , u 2 11 , " 2 " , " 3 " , " 3 " ,
REM G H I J K L
D A T A " 4 " , " 4 " , " 4 " , 11 5 11 , " 5
R EM M N O P Q R
D A T A 11 6 1 1 , " 6 " , " 6 " , " 7 " , " 7 " ,
R EM S T U V W X
D A T A 11 8 11 , 11 8 1 1 , 11 8 1 1 , " 9 " , 11 9 1 1 ,
REM Y Z
D A T A " 9 " , 11 9 "
Il
,
DE T E LEPHONE"
1 1 3 11
"5"
"7"
11 9 11
Exercice 37-1
10
A $ = "$$## , ###### . # # D O L L A R S "
Exercice 37-2
C LS
5
10
I N PUT "REVE NU" ;
15
I N PUT " D E P E N S E S " : E
N = I - 3 ' G A I N OU P E R T E N E T "
20
A $ = " $ $ # # # # . # #"
25
8$
"$$### # . ##"
30
C$ = "+$$### # . ##"
35
C L S : P R I N T @ 33 , " R A P P O R T M E N S U E L D E S I T U A T I O N E C O N O M I Q U E "
40
P R I N T @ 9 6 , S T R I N G $ ( 3 2 , 11 - 11 )
45
50
P R I N T @ 1 60 , " R E V E N U "
2
55
P R I NT @ 2 5 6 , " D E P E N S E S "
P R I NT @ 3 5 2 , "TOTAL ( + ) OU ( - ) "
60
65
P R I N T @ 3 t. 0 , S T R I N G $ ( 1 0 , 11 - 11 )
70
P R I NT @ 1 80 , U S I N G A $ ; I
P R I NT @ 276 , U S I N G B $ ; E
75
P R I NT @ 371 , U S I N G C $ : N
80
90
GOTO 90
=
Essayez d e modifier ce programme pour vous tenir a u courant d e vos factures d'électricité
et stocker l'information sur une base annuelle.
Exercice 37-3
5
C LS
P R I N T " C E C I " TAB ( PO S ( 0 ) +4 ) " E S T " ;
10
P R I N T T A B C PO S ( 0 ) + 4 ) 11 U N I F O R M E M E N T 11 T A B C PO S C 0 ) + 4 ) " E S P A C E "
20
252
EXEM PL ES DE PROGRAM M ES
Programme 1
Tapez ce programme et sauvegardez-le sur cassette, mais ne l'exécutez pas avant Nofi}
5
CLS
P R I N T @ 64 , S T R I N G $ ( 3 2 , "*")
P R I N T @ 3 5 2 , S T R I N G$ (32 , " • " )
P R I N T âl 1 9 9 , " J OY T O T H E W O R L D " 2 5 F O R X = 1 T O 1 0 0 0 : N E X T X
C LS
P R I N T @ 6 4 , " J O Y TO T H E W O R L D "
35
P R I N T @ 96, "THE LORD IS COME"
40
PRINT @ 128 , "LET EARTH RECEIVE HER KING"
45
P R I N T @ 1 60 , " L E T EVERY H E ART"
50
55
P R I N T @ 1 9 2 , " P R E P A R E H I M ROOM"
P R I N T @ 224, "AND H E AVEN AND NATURE S I N G "
60
P R I N T @ 2 5 6 , " A N D H E AVEN A N D N A T U R E S I N G "
65
P R I N T @ 288 , " A N D H E AVEN AND H E A V E N AND N A T U R E S I N G "
70
A $ = " T 4 ; 0 3 ; L 2 ; C ; L 4 ; 0 2 ; B ; L 8 ; A ; L4 , ; G ; L 4 ; F ; L 2 ; E ; D ; "
1 00
10
15
20
30
1 05
B $ = " L 2 . ; C ; P 3 2 ; L 4 ; G ; L 2 ; A ; L 4 ; P3 2 ; A ; L 2 . ; B ; P 3 2 ; L 4 ; B ; 0 3 ;
L1 ; C"
C $ = " L 4 ; C ; C ; 0 2 ; L 4 ; B ; A ; G ; L 4 . ; G ; L 8 ; F ; L 4 ; E ; 03 ; C
D $ = " 0 3 ; L 4 ; C ; 0 2 ; B ; A ; G ; P3 2 ; L 4 . ; G ; L8 ; F ; L 4 ; E ; P 32 ; E ; P 3 2 ; E ;
P3 2 ; E ; P3 2 ; E ; P3 2 ; LB; E ; F
-
110
115
1 20
E $ = " L 2 . ; G ; L 8 ; F ; E ; L 4 ; D ; P 3 2 ; D ; P3 2 ; D ; P 3 2 ; L 8 ; D ; E ;
L2 . ; F ; L8 ; E ; D "
125
F $ = " 0 2 ; L 4 ; C ; 0 3 ; L 2 ; C ; 0 2 ; L 4 ; A ; L4 . ; G ; L 8 ; F ; L 4 ; E ; F ; L 2 ;
E ; D ; L1 ; C "
X$ = "XA$;XB$ ; X C $ ; X D$;XE $ ; X F $ ; "
P LA Y X
130
135
200
205
210
215
220
220
230
235
240
245
250
255
260
265
PMODE 3 , 1
P C LS 4
S C R E EN 1 , 0
CO LOR 1 , 4
L I N E (90 , 9 6 ) - ( 1 1 8 , 2 6 ) , P S E T
L I N E (90 , 9 6 ) - ( 1 1 8 , 2 6 ) , P S E T
L I N E (90 , 9 6 ) - ( 1 4 6 , 96 ) , P S E T
DRAW "BM1 1 2 , 9 6 ; D1 5 ; R 1 0 ; U 1 5 "
L I N E (0 , 1 1 2 ) - (2 5 5 , 96) , P S E T
P A I N T (238 , 8 5 ) , 1 , 1
X = RND C255)
Y = RND ( 1 1 5 )
A = RND (4)
P S E T ( X , Y , A ) : GOTO 2 5 0
253
Exemples de Programmes
Programme 2
' ** * G LO I R E A B A C H * * *
2
5
C LS
10
P R I N T @ 96 , STRI N G $ ( 3 2 , "*")
20
P R I N T @ 320 , S T R I N G $ ( 3 2 , "*")
P R I N T @ 2 0 1 , " G LO I R E A B A C H "
25
F O R X = 1 TO 1 00 0 : N E X T X
40
55
A$ = " T 6 ; 0 2 ; L 2 ; G ; L 4 ; C ; D ; E ; F ; L 2 ; G ; C ; P 1 6 ; C "
60
B $ = " L 2 ; A ; L 4 ; F ; G ; A ; B ; 03 ; L2 ; C ; 0 2 ; C ; P 1 6 ; C ; F ; L 4; G ; F ; E ; D "
65
C $ = " L 2 ; E ; L 4 ; F ; E ; D ; C ; L 2 ; 0 1 ; B ; 02 ; L 4 ; C ; D ; E ; C "
70
0 $ = " L 2 ; E ; L 1 ; D ; L 2 ; G ; L 4 ; C ; D ; E ; F ; L2 ; G ; C ; P 1 6 ; C "
E$ = " L 2 ; A ; L4; F ; G ; A ; B ; 03 ; L2 ; C ; 0 2 ; C ; P 1 6 ; C ; F ; L 4 ; G ; F ; E ; D "
75
80
F $ = " L 2 ; E ; L 4 ; F ; E ; D ; C ; D ; E ; L2 ; F ; 01 ; B ; L 1 ; 0 2 ; C "
85
90
X $ = "XA $ ; X B $ ; X C $ ; X D $ ; X E $ ; X F $ ; "
P LA Y X
Programme 3
' *** DAN S E M EX I C A I N E ***
2
5
C LS
1 0
P R I N T @ 96, S T R I N G $ (32 , "*")
20
P R I N T @ 320, S T R I N G $(32 , "*")
30
P R I N T @ 1 9 9 , " DAN S E M E X I C A I N E "
F O R X=1 T O 5 0 0 : N E X T X
40
REM D E B U T D E LA D A N S E
125
130
0$="V1 5 ; T 3 ; 0 2 ; "
P $ = " L8 C F P 8 C F P 8 C F P 4 P 8 "
135
1 40
Q$="C F G F E P 8 F GP4 P8"
1 45
X $ = " X 0 $ ; X P $ ; XQ $ ; "
1 50
P LA Y X $
R$=" C E P 8 C E P 8 C EP4P8"
1 55
S $ = " C E F E D P 8 E F 0 4 C 03 A F "
1 60
1 65
Y$="X0 $ ; X R $ ; X S $ ; "
P LAY Y $
1 70
R EM 2 E F O I S
1 80
1 85
1 90
1 95
1 97
200
210
254
0$= "V25 ; T3 ; 01 "
P LAY X
0 $ = " T 3 ; 0 4"
S$="C E F EDP8E F04C03 A F "
P LAY Y$
220
225
230
A $ ="03 C 0 2 B 0 3 C 0 2 A A - A F E F C P 4"
B $ = " C 0 1 B 0 2 C D E F G A B - 03 C 3 G "
0$="V1 5 ; T 4 ; "
Z $ = 1 1 X O $ ; X A $ ; X B $ ; 11
235
240
245
250
P LA Y Q $
C $= " 0 E B - A B - G F + F E G = E C E G "
D $ = " 0 4 L1 6 C P 1 6 C P 1 6 C P 1 6 L 8 D C 0 3 B - A G F P 4 "
E $ = 11 X O $ ; X C $ ; X D $ ; 11
255
P LA Y F $
Exemples de Programmes
260
265
F $ = " 0 2 L 1 6 G P 1 6 G P 1 6 G P 1 6 D P 1 6 D P 1 6 D P 1 6 E P 1 6 F P 1 6 L8 E L 1 6 G P
1 60 1 G P1 6 L 8 G
G $ = " V 1 5 0 2 L 1 6 G P 1 6 G P 1 6 G P 1 6 D P 1 6 D P 1 6 D P 1 6 E P 1 6 F P 1 6 L 8 E C 01 G C "
270
280
285
290
295
300
310
H$="XF$;XG$ ; "
P LA Y H $
I $ = 1 1 X F $ ; 11
P LA Y I S
J $ = 0 2 L1 6 G P 1 6 G P 1 6 G P 1 6 A P 1 6 G P 1 6 G P 1 6 A P 1 6 B P 1 603 L 4 C P 8 "
P L A Y 1 1 X J $ ; 11
K $ = " 0 l+ L 1 D L 4 D E D E L 8 D E D E L 1 6 D E D E D E D E L3 2 D E D E D E D E D E D E D
E D E L 6 4 D E D E D E D E D E D E D E D E D E D E D E D E L3 2 D D - C 0 3 B B - A A - G F
+ F EE - D D D - L4DD-"
320
330
340
350
370
380
PLAY " X K$ ; "
M$="T5 L8D02BB-BGF+GL4DP8"
N $ = " L 8 D C + D E F +GAB 03C02 L4AP8"
A A $ = 11 0 3 L 8 C 0 2 B 0 2 C 0 2 A G + A F + F F + L4 D P8 1 1
B B $ = " 03 L8 D D D E D C 0 2 BA03 D E D C 0 2 B A "
C C $= " 0 2 D E O C 01 B A O R D E D D E O D E D D E F + G D 0 3 B G T 4 D 0 2 B G T 3 0 01
T2BL4 P2V30L1 G"
P L AY 11 X M $ ; X N $ ; X A A $ ; X B B $ ; X C C $ ; 11
P MO D E 4 , 1
FOR Y = 1 T0 5
SCREEN 1 , 0
PCLS
C I R C L E ( 1 2 8 , 9 6 ) , 5 0 , 1 , . 2 , . 85 , . 6 7
C I RC L E ( 1 2 8 , 96) , 2 5 , 1 , 2 , . 5 , 1
U N E ( 1 0 5 , 9 6 ) - ( 1 5 1 , 96 ) - , P S E T
PMODE 4 , 1
SCREEN 1 , 0
PCLS
C I R C L E ( 1 2 8 , 7 5 ) , 5 0 , 1 , . 2 , . 8 5 , . 67
C I R C L E ( 1 28 , 7 5 ) , 1 , 2 , . 5 , 1
400
500
505
510
520
550
560
570
600
610
620
630
660
670
675
680
685
690
700
710
720
U N E (105 ,75 ) - ( 1 51 ,75) , PSET
NEXT Y
I F Y > 5 T H E N 690
GOTO 500
C LS
P R I N T @ 2 2 7 , "NOW THAT ' S A HOT TAMA L E "
FOR X = 1 T O 600 : N EXT X
GOTO 5
255
Exemples de Programmes
Programme 4
' * * * B U F F A LO G A L S * * *
2
5
C LS
10
P R I N T @ 6 4 , STR I N G $ (3 2 , "* " )
15
PRINT @ 384, STR ING$(32, "*")
P R I N T @ 2 0 1 , " B U F F A LO G A L S "
20
25
F O R X = 1 TO 1 0 0 0 : N E XT X : C L S
P R I N T @ 3 2 , " A S 1 W A S W A L K I N G DOWN T H E S T R E ET "
30
35
P R I N T @ 6 4 , " DO W N T H E S T R E E T , D O W N T H E S T R E E T "
P R I N T @ 9 6 , "A P R ETTY G A L 1 H A P P E N E D "
40
45
PRINT @ 1 3 3 , "TO MEET"
50
P R I N T @ 1 6 0 , " J U S T A S L O V E LY A S "
P R I N T @ 1 9 7 , " T H E MOR N I N G D E W "
55
P R I N T @ 2 2 4 , " B U F F A LO G A L S WON ' T YOU"
60
P R I NT @ 261 , " C O M E OUT TON I G HT"
65
P R I N T @ 2 8 8 , " C O M E O U T TON I G H T , "
70
75
P R I N T @ 3 2 0 , " C O M E O U T TO N I G H T , "
P R I N T @ 3 5 2 , " B U F F A LO G A L S WON ' T YOU"
80
85
P R I N T @ 3 9 1 , " CO M E OUT TON I G H T "
P R I N T @ 41 6 , " A N D DAN C E I N T H E "
90
95
P R I N T @ 453 , " L I GH T O F T H E MOON . "
1 00
A $ = " T 4 ; C ; E ; P 3 2 ; E ; F ; P3 2 ; F ; A ; G ; L 2 ; E ; "
B$="L4; G ; F ; L 2 ; D ; L4 ; A ; G ; E ; C ; "
1 05
110
C $ '' L 4 ; E ; P 3 2 ; E ; F ; P3 2 ; F ; L 8 ; A ; P 3 2 ; A ; L 4 ; G ; E ; 03 ; L 8 ; C ; P 3 2 ; C ; "
115
D $ = " 0 2 ; B ; P 3 2 ; B ; G ; P 3 2 ; G ; L 4 ; F ; 01 ; B ; 0 2 ; L 1 ; C ; P 1 6 ; "
120
E $ = " L 8 ; G ; P 3 2 ; G ; L 4 ; F ; LZ ; D ; L 4 ; A ; L 8 ; G ; P 3 2 ; G ; L 2 ; E "
125
F $ = " L 8 ; G ; P 3 2 ; G ; L 4 ; F ; L2 ; D ; L 4 ; A ; L 8 ; G ; P3 2 ; G ; L 2 ; E "
130
G $ = " L 8 ; C ; P G 6 4 ; C ; P G 6 4 ; L 4 ; C ; E ; L8 ; G ; P 3 2 ; G ; L 4 ; A ; L 8 ; G ;
P 3 2 ; G ; L 4 ; E ; 03 ; C ; "
H $ = " 0 2 ; B ; L 8 ; G ; P 3 2 ; G ; F ; P 3 2 ; F ; L4 ; D ; L 2 . ; C ; "
135
1 40
X$= "XA $ ; X B$ ; X C $ ; X D $ ; X E $ ; X F $ ; X G$ ; X H $ ; "
1 45
P LAY X $
C LS
150
155
P R I NT @ 230, "THAT ' S A L L FOLKS"
Programme 5
256
Exemples de Programmes
Programme 6
10
75
' * ** T R A C E D E T R I A N G L E * * *
C L S : C L EAR
PRINT @ 96, STRING$C32 , "*")
80
P R I N T @ 2 8 8 , S T R I N G $ C3 2 , " * " )
P R I N T @ 1 6 0 , " C E PROGR AMME TRACE LE T R i A N G L E S P E C I F I E
1 00
ET C A L C U L E S A S U R F A C E "
110
F O R X = 1 TO 2 2 0 0 : N E X T : C L S
1 20
C L S : P R I N T " P O U R 3 COT E S , T A P E Z S S S ( 0 - 1 0 0 ) "
1 25
P R I N T " PO U R 2 C O T E S ( 1 - 1 0 0 ) E T 1 A N G L E ( 0 - 9 0 ) T A P E Z , S A S "
P R I N T " P O U R 1 C O T E ( fl - 6 0 ) E T 2 A N G L E S ( 0 - 9 0 ) T A P E Z , A S A "
130
I N PU T A $ : I F A $ = " S A S " GO TO 3 0 0
1 40
I F A $ + " A S A " GOTO 4 0 0
150
' sss
200
210
P R I N T " E N T R E Z 3 C O T ES , ( C O T E L E P LU S L O N G D ' A B O R D ) "
220
I N P U T L1 , L 2 , L 3
I F L 2 > L 1 O R L 3 > L 1 T H EN P R I N T " * * * CO T E L E P L U S L O N G
225
D ' ABORD
" : P R I N T : GOTO 2 1 0
S = C L1 + L 2 + L3 ) / 2
230
I F S < L1 T H E N P R I N T " * * * N ' E S T P A S U N T R I A N G L E * * * " :
235
P R I N T : GOTO 2 1 0
Y 3 = 2 • S Q R C S • ( S - L 2 ) • ( S - L 1 ) • ( S - L 3 ) ) / L1
240
250
A = Y 3 / L2 : A = A T N C A / S Q R C - A * A + 1 ) )
X3=CO S ( A ) •L2
260
A R = C L1 * Y 3 ) / 2
270
•
280
300
310
320
325
330
340
350
400
41 0
420
425
430
440
450
460
470
490
500
510
520
530
532
533
535
537
540
•
•
GOTO 490
' S AS
P R I N T " E N T R E Z 2 COTES ET 1 A N G L E : AB , A C , T H ETA
( CO T E L E P L U S L O N G D ' A B O R D ) "
I N PUT L1 , L 2 , T
T= ( T •3 . 1 4 1 5 9 ) / 1 8 0
Y3=L2•S I N (T)
X3=COS (T) • L2
A R = C L 1 • Y 3 ) / 2 : G O T O 490
'ASA
P R I N T E N T R E Z 2 ET 1 C O T E : T H E T A 1 , T H E TA 2 , A B "
I N P U T T1 , T 2 , L 2
T1 = ( T 1 * 3 . 1 4 1 5 9 ) / 1 8 0 : T 2 = C T 2 * 3 . 1 41 5 9 ) / 1 8 0
Y3=L2•S I N (T1 )
B 1 = C O S C T 1 ) * L2
B2=Y3 /TAN CT2)
L 1 = B 1 +B2 : X E = B 1 : I F LX> L 1 T H E N X = L 1 : L 1 = L 2 : L2=X
A R = C L2 * Y 3 ) / 2
C LS : P M O D E 4 , 1 : P C L S : S C R E E N 1 , 1
F=1
V C = C 3 . 1 4 1 5 9 * C L 1 • F -X 3 • F ) * ( Y 3 * F > t 1 > / 3
V S = C 3 . 1 4 1 5 9 * C X 3 * F ) • ( Y 3 • F > t2 ) / 3 : VT = V C + V S
S1 =Y3 / X 3 : S2=Y3 / C X3-L1 )
0 THEN 1 1 00
I F INT(X3)
I F ! N T C X 3 ) = I N T ( L 1 ) T H E N 1 0 00
I F X3> L1 T H E N 1 1 9 9
IF X3=L2 T H E N 1 000
F O R Y = 2 0 TO L 1 • 2 + 2 0 S T E P 2 : P S E T < Y , Y 3 + 5 , 5 ) : N E XT
=
257
Exemples de Programmes
FOR X=0 T O X3
P S ET ( X * 2 + 2 0 , S 1 * CX 3-X ) + 5 , 5 ) : NE XT
F O R X = X 3 TO L 1 : P S E T ( X * 2 + 2 0 , Y 3 + ( S 2 * ( L 1 - X ) + 5 ) , 5 ) : N E XT
FOR X=1 TO 600 : NEXT X
P R I NT @ 1 3 0 , "SURFACE=" ; A R ; " U N I T E S CA R . " :
P R I N T @3 5 2 , " * " ; : I N P UT " P O U R RE C O M M E N C E R ,
PRESS < 1 > <ENTER> " ; 0 6 : I F 06=1 T H E N 1 20
S T O P : GOTO 1 0
640
FOR Y=5 TO Y 3 + 5 : P S E T ( X 3 * 2 + 2 0 , Y , 4 ) : N E X T : G O T O 5 4 0
1 0 00
1 1 00
F O R Y = 5 TO Y 3 + 5 : P S E T < 2 0 , Y , 5 ) ; N E X T : G O T O 5 4 0
1 2 00
F O R X=L1 TO X3 : P S E T ( X * 2 + 2 0 , Y3+ C S 2 * ( L1 - X ) + 5 ) , 5 ) :
N E X T : GOTO 540
550
551
560
580
610
630
Programme 7
' *** ETUDES DE PROJ ECTION * * *
2
5
10
15
20
25
30
35
40
45
50
55
60
65
258
P M OD E 4 , 1
PCLS
SCREEN 1 , 0
D RAW " 0 M 5 0 , 5 0 R 6 0 D 1 0 N L 2 0 D 2 0 L 2 0 N U 2 0 L 2 0 N U
2 0 L2 0 U 2 0 N R 2 0 U 1 0" ' V U E D E D E S S U S
D RAW " B M 5 0 , 1 0 0 R 2 0 N D 2 0 R 2 0 N D 2 0 R 2 0 D 2 0 N L 2 0 D 1 0 L60 U 1 0 N R
20U1 0 " ' VU E D E DEVANT
D RAW " B M 1 5 0 , 1 0 0 R3 0 D 3 0 L3 0 U 1 0 N E 2 0 U 2 0 " ' VU E D E C O T E
' VU E O B L I Q U E - U N E S 4 0 - 6 0
D RAW " B M 1 5 0 , 5 0 U 5 E 1 5 R 1 0 B F 2 0 B D 3 0 N R 5 L 2 0 H 2 5 U 1 0 "
D RAW " B M 1 5 0 , 5 0 U 5 F 8 U 1 5 R 1 5 H 8 F B L 1 5 F 8 N R 1 5 0 1 5 F 8 N D 1 0 E
1 5N R 1 0H8"
L I N E (1 75-30) - ( 2 00 , 5 5 ) , PSET
LINE - (200, 80) , PSET
L I N E (1 67 , 6 0 ) - ( 1 8 3 , 46) , P S E T
GOTO 6 5
Exemples de Programmes
Programme 8
' *** LA BOITE D E P L I E E ***
1
2
P C LEAR 8
5
10
PMODE 3 ,1
P C LS
15
20
COLOR 6 , 5
25
D R A W " B M 1 00 , 1 0 0 U 3 0 N R 30 E 1 5 G R 3 0 N G 1 5 D 3 0 G 1 6 N U 3 0 L 3 0 "
30
PAINT (105,95) , 8 , 6
35
P A I N T ( 1 3 5 , 8 0) , 8 , 6
40
P A I N T ( 1 1 0 , 65 ) , 8 , 6
45
SCREEN 1 , 1
FOR X = 1 TO 6 0 0 : NEXT X
50
110
PMODE 3 , 5
112
PCLS
115
CO L O R 6 , 5
D R A W " B M 1 0 0 , 1 0 0 U 3 0 N R 3 0 E 2 0 R 3 0 G 2 0 D 3 0 N L3 0 F 2 0 L3 0 H 2 0 "
120
125
LINE ( 1 00 , 1 00 ) - ( 7 0 , 9 5 ) , PSET
L I N E - (70 , 6 5 ) , P S E T
130
135
L I N E - ( 1 0 0 , 7 0 ) , P S ET
1 40
L I N E ( 70 , 9 5 ) - ( 4 0 , 6 5 ) , P S ET , B
145
L I N E ( 1 3 0 , 1 00 ) - ( 1 60 , 9 5 ) , P S E T ,
1 50
L I N E ( 1 6 0 , 65 ) , P S E T
155
L I N E - ( 1 3 0 , 7 0) , P SET
1 60
P A I N T (95 , 9 5 ) , 8 , 6
1 65
P A I N T (1 0 5 , 95 ) , 8 , 6
1 70
PAINT (135 ,85 ) , 8 , 6
1 75
P A I N T (45 , 85 ) , 8 , 6
1 80
P A I N T (1 1 5 , 6 5 ) , 8 , 6
1 85
P A I N T <1 2 5 , 1 1 4 ) , 8 , 6
1 90
SCR EEN 1 , 1
F O R X = 1 TO 6 0 0 : N E X T X
195
GO TO 1 0
200
Programme 9
1
' *** O N D E S I N U S O I D A L E * * *
2
PMODE 4 , 1
5
10
P C LS
15
SCREEN 1 , 1
20
L I N E ( 0 , 96 ) - ( 2 5 5 , 9 6 ) , P S E T
25
P I =3 , 1 4 1 5 9
30
A 1 =-4* P I
35
A2= 4 * P I
40
N=1 80
R=50
45
50
X = CA2 -A1 > / N
55
F = 2 5 5 / C A2 - A 1 )
60
FOR I = A 1 TO A 2 STEP X
65
X=I*F
Y=R*S I N ( I )
70
75
P S E T ( ( X +1 4 0 ) , ( 8 0 + Y ) , 1 )
NEXT I
80
G OT O 9 0
90
259
Exemples de Programmes
Programme 1 O
' *** S I N U S / COS I N US ***
2
10
20
30
40
50
60
70
80
90
1 00
110
130
1 40
1 45
150
1 60
1 70
1 80
190
PMODE 4 , 1
P C LS
S C R E EN 1 , 0
L I N E ( 1 27 , 5 ) - ( 1 2 7 , 1 85 ) , P S E T
L I N E ( 7 , 9 5 ) - (247 , 9 5 ) , P S E T
F O R X S C A L E = 7 T O 2 47 S T E P 2 0
PRESET (XSCALE , 9 5 )
NEXT X S C A L E
F O R Y S C A L E = 5 TO 1 8 5 S T E P 1 0
PRESET < 1 2 7 , YSCA LE)
NEXT YSCALE
F O R X = - 1 8 0 T O 1 80 S T E P 1 . 5
AX=X/ 5 7 . 29578
X P =X / 1 . 5+1 27
F 1 = - ( S I N ( A X ) * 9 0 ) +95
F 2 = - ( C OS ( A X ) * 9 0 ) + 9 5
PSET<XP , F1 , 1 ) : PSET<XP , F2 , 1 )
NEXT X
GOTO 1 9 0
Programme 1 1
' *** G R A P H I Q U E S AU H A S A R D ***
2
10
15
20
25
30
35
40
50
55
60
65
260
PMODE 3 , 1
P C LS
SCREEN 1 , 1
F = R N D ( 4 ) : B = RN D ( 8 ) : I F B = F O R (B-4= F ) T H E N 2 5
C O L O R F , B : P C L S B : F O R L = 0 TO 5
L I N E - ( R N D ( 2 5 5 ) , RN D ( 1 9 1 ) ) , P SET
C I R C LE ( R N D ( 2 5 5 ) , R N D ( 1 91 ) ) , R N D ( 1 0 0)
N E X T : FOR P0=0 TO 1 0
P A I N T ( R N 0 ( 2 5 5 ) , RN D ( 1 91 ) ) , R N D (4) , F
NEXT: FOR H = 1 TO 7
F O R T=0 TO 6 0 0 : N E X T T : GOTO 1 0
Exemples de Programmes
Programme 1 2
1
' * * * COUVERTURE I N D I ENNE ***
2
5
PMODE 3 , 1
P CLS 4
10
SCREEN 1 , 0
15
COLOR 1 ,0
20
FOR X=0 TO 255 STEP 1 8
25
0Y=Y
30
35
Y=30-0Y
40
L I N E ( X , 1 0 0-Y ) - ( X+1 0 , 1 00-0Y ) , P S E T
45
L I N E ( X , 1 20+Y) - ( X+1 0 , 1 20+0Y ) , P S E T
NEXT
50
F O R C = 2 TO 4
60
PAINT (0, 1 1 0) , C , 1
65
70
NEXT
GOTO 6 0
80
Programme 1 3
1
2
5
' * ** D E N T E L L E P E I N T E ***
PMODE 3 , 1
10
P C LS
20
30
40
SCREEN 1 , 1
D R A W " B M 5 0 , 1 8 0 U 6 0 B U 2 0 U 6 0 R 6 0 B R 2 0 R 6 0 D 6 0 B D 2 0 D 6 0 L6 0 B L 2 0 L 6 0
D R A W " B M 5 0 , 1 80 U 6 0 R 4 0 B R 2 0 R 8 0 D 2 0 B L20 L 6 0 B L 2 0 L 2 0 D 2 0 R 2 0 B R 6 0
R20U2 0
D R A W "BM 5 0 , 1 80R60U80BU20U40 L40BD20D20BD6 0D20R20
U60BU20U20L2 0
D R A W " B M 5 0 , 1 8 0 U 6 0 B U 4 0 B R 2 0 R 6 0 B R 2 0 R 2 0 U 2 0 L2 0 D 6 0 B D 2 0 D 2 0 R 2 0
D R A W " B M 5 0 , 1 8 0B R 8 0 U 4 0 B U 2 0 U 8 0
50
60
70
80
90
95
97
98
99
1 00
1 01
1 02
1 03
1 04
110
200
D RAW " B M 5 0 , 1 80 B U 8 0 R 8 0 B R 2 0R40
P A I N T (85 , 1 28 ) , 6 , 8
P A I N T ( 9 5 , 7 8) , 6 , 8
P A I N T ( 1 5 5 , 95 ) , 6 , 8
P A I NT ( 1 3 5 , 1 45 ) , 6 , 8
P A I NT ( 1 28 , 1 85 ) , 7 , 8
P A I N T <7 5 , 1 5 0) , 7 , 8
PAINT (160,1 50) , 7 , 8
PAINT <75 , 75) , 7 , 8
PAINT (160,75) , 7 , 8
P A I N T ( 1 20 , 1 1 0 ) , 7 , 8
F O R X = 1 TO 6 0 0 : N E X T X
GOTO 5
261
Exemples de Programmes
Programme 1 4
1
2
3
5
10
15
20
25
' ** * P L AN C H E A D E S S I N ***
C LS
P R I N T @ 1 28 , S T R I N G$ ( 3 2 , " * " ) : P R I N T @ 2 8 8 , S T R I N G $ ( 3 2 , " * " )
P R I N T @ 2 0 0 , " P LA N C H E A D E S S I N "
FOR X=1 TO 600 : N E X T X
C LS
P R I N T @ 9 6 , " P R E S S E Z <t> P O U R L E H A U T , < F L E C H E V E R S L E B A S >
30
P O U R L E B A S , < E S P A C E A R R I E R E > P O U R L A GA U C H E , < E S P A C E A V A N T >
POUR LA D RO I T E , <A> POUR S U D - O U E S T , <S> POUR S U D - E S T ,
<W> POU R N O R D - E S T , <Q> P O U R N O R D - O U E S T "
P R I N T @ 2 8 8 , " P R E S S E Z <1 > P O U R L I G N E I N V I S I B L E ,
35
40
45
50
55
< 2 > , <3> OU <4> P O U R L I G N E S V I S I B L E S D E C O U L E U R S D I F F E R E N T E S ,
P R E S S E Z < / > POUR C H A N G E R J E U D E COU L E U R S "
P R I N T @ 4 8 8 , " P R E S S E Z < B A R R E D ' E S P A C EM ENT> POUR P A U S E "
F O R X=1 TO 4 8 0 0 : N E X T X
C C=4: TG=0
PMODE 3 , 1
P C LS
60
SC REEN 1 , TG
X = 1 2 8 : Y = 96 : X I = 0 : Y I = 0
70
U $ = 1 1 t11 : D $ = C H R $ ( 1 0) : W $ = C H R $ ( 8 ) : E $ = C H R $ ( 9 )
80
90
NW$="Q " : N E $ ="W" : SW$=" A " : S E$="S"
1 00
C I $ = " 1 " : C 2 $ = " 2 " : C3$=" 3 " : C4$=" 4 " :
A$= I N KE Y $
110
1 20
130
1 40
150
1 60
1 70
1 80
190
I F A$=U$ T H E N Y I = -1 : X I =0 : GOTO 240
I F A $ = D $ T H E N Y I = 1 : X I = 0 : G O T O 240
I F A$=W$ T H E N X I = - 1 : Y I = 0 : GOTO 240
I F A$=W$ T H E N X I = 1 : Y I = 0 : GOTO 240
I F A$ = N E $ T H E N X I = 1 : Y I = - 1 : G O T O 2 4 0
I F A $ = N W $ T H E N X I = - 1 : Y I = - 1 : GOTO 2 4 0
I F A $ = S E $ T H E N X I = 1 : Y I = 1 : GOTO 2 4 0
I F A $ = S W $ T H E N X I = - 1 : Y I = 1 : GOTO 2 4 0
200
210
220
230
I F C 1 $ < = A $ A N D A $ < = C 4 $ T H E N C C =AS C C A $ ) -48 : GOTO 240
I F A $ = " / " T H E N T G = ( N O T T G A N D 1 ) O R < T G A N D N O T 1 ) : G O T O 240
SCREEN 1 , TG
I F A$ = " " T H E N X I = 0 : Y I = 0
X = X + X I : Y = Y +Y I : I F X < 0 T H E N X = 0
I F X>255 THEN X=255
I F Y<0 TH EN Y=0
I F Y> 1 9 1 T H E N Y = 1 9 1
PSET ( X , Y , CC )
GOT0 1 1 0
240
250
260
270
280
290
262
Exemples de Programmes
Programme 1 5
Programme 1 6
1
2
20
25
30
35
40
45
50
' * ** L I G N E S AU H A S A R D ***
PM O D E 4 , 1
PCLS
SCREEN 1 , 1
X = R N D C 2 5 5 > : Y = R N D C 1 91 )
LINE - <X , Y > , PSET
FOR X = 1 TO 2 0 0 : N E X T X
GOTO 3 5
Programme 1 7
1
' *** T R E F L E A H U I T F E U I LLES ***
2
5
P C LEAR 8
PM O D E 4 , 1
10
PCLS
15
20 . SCREEN 1 , 0
25
P I =3 . 1 4 1 59
A 1 = 0 : A2=2*PI
30
35
N =3 6 0 : A = 5 0
40
X = < A2-A1 ) /N
45
F O R I 8= A 1 T O A 2 S T E P X
R=A*COS (4*1 )
50
X=R*S I N ( I )
55
Y=R*COS ( I )
60
PSET ( 1 28 +X , 96+Y , 5 )
65
NEXT I
70
GOTO 2 5
75
263
Exemples de Programmes
Programme 1 8
' * * * BOMBE A R ETARDEMENT * * *
2
10
15
20
25
30
35
40
45
50
55
PMODE 4 , 1
P C LS
SCREEN 1 , 1
C I R C LE ( 1 2 8 , 96 ) , 80
C I R C LE ( 1 2 8 , 96) , 90
PAINT (0,0 ) , 5
F O R T = 3 0 TO - 3 0 S T E P - 1
A = ( 2 *3 , 1 4 1 5 ) * T / 6 0
L I N E ( 1 28 , 9 6 ) - ( 7 5 * S I N ( A ) + 1 2 8 , 7 5 * C O S ( A ) +96) , P S E T
S O U N D Q * 2 + 1 , 2 0 / ( Q+1 ) + 1
60
65
70
75
80
85
90
95
1 00
1 05
110
115
L I N E ( 1 2 8 , 9 6 ) - ( 7 5 * S I N ( A ) +1 2 8 , 7 5 * C O S ( A ) + 9 6 ) , P R E S E T
Q = 6 0 -2 * T : F O R Y = Q TO 0 S T E P - 1 : N EX T
N E XT
C LS
PCLS
PR I NT@237 , "BOOM ! "
SOUND 1 , 30
PMODE 4, 1
SCREEN 1 , 1
FOR I=2 TO 200 S T E P 2
C I R C L E ( 1 28 , 96 ) , 1
NEXT 1
120
SC REEN 1 , 1
1 25
130
135
1 40
145
1 50
1 55
FOR X=2 TO 200 S T E P 2
C I R C L E ( 1 2 8 , 96 ) , I , 3 , . 5
N EXT X
F O R I = 2 TO 2 0 0 , S T E P 2
C I R C L E ( 1 2 8 , 96 ) , l , 3 , . 5
NEXT I
GOTO 1 5 5
Programme 1 9
1
' * ** V E N T I LATE UR ***
2
P C LEAR 8
5
GOTO 600
50
L I N E ( ( 2 5 5 - X ) , ( 1 9 1 - Y ) ) - C X , Y ) , PSET
60
61
J = J + 1 : I F J > A T H E N J = 0 : A=RN D C 50)
RETURN
63
REM VENTI LATEUR
600
F O R I = 1 TO 5 S T E P 4
601
PMO D E 3 , 1
602
PC LS
603
604
SCREEN 1 , 0
605
A=25: X=0: Y=0: J=0
F O R X = 0 TO 2 5 4
610
612
CO L O R X / 3 2 + 1 , 5
61 5
GOSUB 6 0 : NEXT X
264
Exemples de Programmes
620
623
625
630
640
643
645
650
660
670
680
690
700
710
FOR Y=0 TO 1 9 0
CO LOR Y / 2 4+1 , 5
GOSUB 6 0 : N E X T Y
FOR X=255 TO 1 S T E P -1
FOR Y = 1 9 1 TO 1 S T E P -1
C O LOR X / 2 4 + 1 , 5
G O S U B 6 0 : N EXT Y
NEXT I
FOR 1=1 TO 5 S T E P 4
PMOOE 3 , 1
SCREEN 1 , 0
FOR T=1 TO 3 0 : N E X T T
NEXT I
GOTO 660
Programme 20
1
' * ** L E S T R I A N G L E S EN M A R C H E * * *
F O R A = 9 0 TO 0 S T E P -4
10
S 1 =A•9 : S 2 = 1 91
15
20
A3= A / 5 7 . 29578
X 1 =0 : Y 1 = 1 9 1
30
X2=S1 +X1 : Y2=Y1
40
50
X 3 = X 1 + S 2 • C O S C A 3 ) : Y 3 = Y 1 - S 2 • S I N CA3 )
55
G O S U B 1 0 00
NEXT A
90
99 GOTO 99
1 0 00
PM O D E 4 , 1
1 005
P C LS
1010
SCREEN 1 , 0
1 0 20
L I N E CX1 , Y 1 > - C X 2 , Y2) , PSET
1 03 0
L I N E - ( X 3 , Y3 ) , P S E T
1 040
L I N E - C X 1 , Y 1 > , P S ET
1 060
R ETURN
Programme 21
'
1
2
10
20
30
35
40
50
60
70
80
90
100
110
200
21 0
220
230
*** C O M PTAG E ** *
C LS
C L E A R 1 0 00
P R I N T "OU VOULEZ-VOUS COMMEN C E R A COMPTER?"
I N PU T A
P = LEN (A$)
PRINT: PRINT A
C=VAL CMID$(A$ , P , 1 ) ) + 1
M S $= A $ : M R $ = R I G H T $ C S T R $ ( C ) , 1 ) : P S = P : G O S U B 2 0 0 : A $ = M S
I F C < 1 0 T H E N 40
P=P-1
I F P=0 T H E N I F LEN ( A $ ) = 2 5 5 T H E N P R I N T " D E P A S S E M ENT
DE C A P A C I T E " : E N D : E L S E A $ = " 1 " + A $ : GOTO 40
GOT0 60
LS= L E N (M S $ )
I F L S < > LE N C M R $ ) + L S - 1 OR P S < 1 T H E N S T O P
M S $ = L E F T $ C M S $ , P S - 1 ) +M R $ + R I G H T $ C M S S , L S - P S )
RETURN
265
Exemples de Programmes
Exemples de programmes 22 à 30
avec BASIC version 2.
Programme 22
10
20
30
40
50
60
70
80
90
100
110
1 20
130
1 40
150
1 60
1 70
1 80
190
200
210
220
230
240
250
260
270
280
290
300
310
320
330
340
350
360
370
380
390
400
41 0
266
REM INTRODUCTION
O N B R K G O T O 400
P A LETTE C M P : W I D T H 32
P R I N T " L ' O R D I N A T E U R C O U L E U R 3 PEUT F A I R E "
P R I N T " LE S M E M E S C H O S E S Q U E L E S AU T R E S "
P R I N T " M E M B R E S D E LA F AM I L L E D E "
P R I N T " L ' O R D I N A T E U R C O U L E U R E T B I E N D ' A U TR E S . "
P R I N T "VOUS POUVEZ CH O I S I R UN ECRAN DE TEXTE D E "
P R I N T " 3 2 , 4 0 O U 80 C O L ON N E S . "
P R I N T : P R I N T "VO I C I UN E C R A N DE 1 6 L I G N E S , 32 CO LONN E S . "
F O R T = 1 TO 5 0 0 0 : N E X T
W I DTH 4 0 : A T T R 2 , 0 : L O C A T E 5 , 1 1
P R I N T " Vo i c i u n e c r a n d e 2 4 l i g n e s , 4 0 c o l o n n e s . "
LOCATE 0 , 23
F O R T = 1 TO 2 0 0 0 : N E X T
W I D TH 8 0 : L O C A T E 2 5 , 1 1
P R I N T " V o i c i u n e c r a n d e 24 l i g n e s , 80 c o l o n n e s . "
L O C A T E 0 , 23
F O R T = 1 TO 2 0 0 0 : N E X T
W I DTH 4 0
P R I N T T AB (1 4) ; "NOUV E L L E S FONC T I O NS" : P R I N T
P R I N T " L ' o rd i n a t e u r c o u l e u r 3 o f f r e : " : P R I N T
P R I N T " T E X T E E V O L U E S U R 40 E T 80 C O L O N N E S "
-M A J U S C U L E S et m i n u s c u l e s "
PRINT "
-Ca ract e res spec i aux : "
P R B IT "
";
P R I NT "
F O R Z = 1 2 8 TO 1 59 : P R I N T C H R $ ( Z ) ; : N E X T : P R I N T
PRINT
-" ; : ATTR 2, 0, B: P R I N T " C L I G N O T E M E N T" : ATTR 2, 0
PR INT "
-" ; : A T T R 2 , 0 , U : P R I N T " S O U L I G N A G E " ; :
ATTR 2 , 0 : P R I NT
PRINT "
-" ; : A T T R 2 , 0 , B , U : P R I N T " L E S D E U X " ; :
ATTR 2 , 0 : P R I N T
A$= " C O U L E U R " : P R I NT"
- " ; : F O R Z = 1 TO 5 : A T T R Z - 1 , Z + 2 :
11
P R I N T M I D $ ( A$ , Z , 1 ) ; : N E X T : ATTR 2 , 0 : P R I N T
NOUVEAUX GRAPHIQUES P U I SSANTS A HAUTE
P R I NT : P R I NT
D E F I N I T I O N"
-640V x 1 9 2H a v e c 4 c o u l e u r s "
PRINT "
-320V x 1 9 2H a v e c 1 6 cou l e u r s "
PRINT "
-Mo n t r e 1 6 c o u l e u r s , s u r u n "
PRINT "
PR INT "
c h o i x d e 64 . "
11
11
-Les prog rammes peuvent i mp r i m er du t e x t e "
P R I NT
P R I N T " s u r l ' e c ra n de g ra p h i ques . "
L O C A T E 0 , 23 : F O R T = 1 T O 1 5 0 0 0 : N E X T
P A L E T T E C M P : A T T R 2 , 0 : W I D T H 40
END
Exemples de Programmes
Programme 23
10
20
30
40
50
60
70
80
90
100
110
120
130
1 40
1 50
1 60
1 70
180
190
200
210
220
230
240
250
260
270
280
290
300
310
320
330
340
350
360
370
380
390
400
41 0
420
430
440
REM H C OLO R S
O N B R K GOTO 430
W I D T H 40 : P A L E T T E C M P : A T T R 2 , 0
P R I N T " V O Y E Z LES 64 COU L E U R S , 8 A LA F O I S . " : P R I N T : P R I N T
ATTR 2 , 0 , B
P R I N T " P R E S S E Z L A B A R R E D ' E S P A C E M E N T P O U R C O M M E N C E R . " : P R I NT
P R I N T " P R E S S EZ L A T OU C H E B R E A K P O U R A R R E T E R . "
A T T R 1 , 0 : L O C A T E 0 , 23
A $ = I N K E Y $ : I F A $ = '"' T H E N 90
I F A S C ( A $ ) =3J. T H E N 4 3 0
R E M H C OLORS
R E M M O N T R E L E S 64 C O U L E U R S , 8 A LA F O I S
HSCREEN 2
F O R Z = 0 T0 7
PALETTE CMP
H C LS
F O R Y = 0 TO 7
C=Y+Z*B
PALETTE Y, C
PA LETTE Y+8, ( C +32) AND 63
H C O LOR Y , 0
H L I N E ( 0 , Y*24) - ( 3 1 9 , Y *24+23 ) , PSET, B F
H C O LO R ( Y + 1 ) A N D 7 , 0
P R I N T ( 4 , Y*3+1 ) , C
H C O LOR
HPRINT
NEXT
H C O LOR
HPRINT
H C OLOR
HPRINT
H C O LOR
HPRINT
H C O L OR
HPRINT
H C OLOR
HPRINT
Y+8 , 0
(33 , Y*3+1 ) , C
3, 0
( 8 , 7) , " P R E S S E Z "
4, 0
( 8 , 1 0) , " B ARRE"
5, 0
(9 , 1 3 ) , "D ' ESPACEMENT"
10, 0
( 2 7 , 7) , " P R E S S E Z "
1 1 , 0
( 2 7 , 1 0 ) , " LA BARRE"
H C O LOR 1 2 , 0
H P R I N T ( 2 8 , 1 3 ) , " D ' E S P A C EM E N T"
A $ = I N K E Y $ : I F A $ = 11 1 1 T H E N 4 0 0
I F A S C ( A $ ) =3 T H E N 4 3 0
NEXT
H S C R E E N 0: PALETTE C M P : H C O L O R 1 , 0: C L S
END
267
Exemples de Programmes
Programme 24
10
20
30
40
50
60
70
80
90
1 00
110
1 20
130
1 40
150
1 60
1 70
1 80
190
200
21 0
220
REM PALETTE
O N B R K GOTO 200
GOSUB 60
F O R Y = 0 TO 7 : P A L E T T E Y , R N D ( 6 4 ) -1 : PA L E T T E Y+8 , R N D ( 6 4 ) - 1 :
N E X T : G O T O 40
GOTO 200
W I D TH 4 0 : P A L E T T E C M P
L O C A T E 1 , 0: ATTR 0 , 4, U
P R I N T " D E M O N S T R A T I O N DE LA P A L E T T E D E L ' O R D I N A T E U R C O U L E U R 3 " ;
ATTR 0, 4 : LOCATE 8 , 6 : ATTR 0 , 4 , B
P R I NT " P R E S S E Z LA B A R R E D ' E S P A C E M E N T P O U R COMM E N C E R " ;
ATTR 0 , 4 : LOCATE 9 , 1 1
P R I N T " P R E S S E Z LA TOU C H E B R E A K P O U R A R R E T E R " ;
ATTR 2 , 0: LOCATE 0 , 23
K $ = I N K E Y $ : I F K $ = 1 1 11 T H E N 1 4 0
I F A S C ( K $ ) =3 T H E N 2 0 0
HSCREEN 2
F O R C = 0 TO 1 5 : F O R V = 3 7 TO 1 5 7 S T E P 3 0 :
D= ( ( V -37) /1 5 + C ) AND 1 5 : H C I R C L E C < C * 2 0 ) + 1 0 , V ) , 9 , 2 :
H P A I N T C < C* 2 0 ) + 1 0 , V ) , D , 2 : N E XT V , C
F O R Z = 0 TO 7 : H C O LO R Z , 0 :
H L I N E < 0 , Z *3 ) - ( 3 1 9 , 2 + Z * 3 ) , P S E T , B F : H C O LO R Z + 8 , 0 :
H LI N E C 0 , 1 6 8+Z*3 ) - ( 3 1 9 , 1 7 0+Z*3 ) , P S E T , B F : NEXT
R ETURN
P A L ETTE C M P : H S C R E E N 0: ATTR 2 , 0: C LS
P R I N T "NOUS NOUS SOMMES B I E N AMUSES ! " : P R I N T
END
Programme 25
10
20
30
40
50
60
70
80
90
1 00
110
1 20
130
1 40
150
1 60
170
1 80
1 90
200
210
268
R E M C A S E D E COU L E U R
ON B R K GOTO 200
GOTO 50
F O R Z = 0 T O 1 5 : P A L E T T E Z , R N 0 ( 6 4 ) - 1 : N E X T : GOTO 4 0
W I DTH 40: PALETTE C M P : ATTR 2 , 0
P R I N T " C A S E D E C O U L E U R'' : L O C A T E 0 , 5
A T T R 2 , 0 , B : P R I N T " P R E S S E Z LA B A R R E D ' E S P A C EM E N T P O U R
C O M M EN C E R . " : P R I N T : P R I N T
P R I N T " P R E S S E Z L A TOU C H E B R E A K P O U R A R R E T E R . " : A T T R 2 , 0 :
LOCATE 0 , 23
A $ = I N K E Y $ : I F A $ = " " T H E N 90
I F A S C ( A $ ) =3 T H E N 200
HSCREEN 2
F O R Z = 0 TO 9 5 : C = Z A N D 1 5
PALETTE C , R N D ( 64) - 1 : H C OLOR C , 0
H L I N E C Z , Z ) - (3 1 9 -Z , Z ) , PSET
H L I N E - ( 3 1 9-Z , 1 91 -Z ) , PSET
H L I N E - ( Z , 1 91 -Z ) , PSET
H L INE- ( Z , Z ) , PSET
NEXT
GOTO 4 0
H S C R E E N 0 : PALETTE C M P : A T T R 2 , 0 : C LS
END
Exemples de Programmes
Programme 26
R E M D EM ON S T R A T I O N D E H PU T
O N B R K GOTO 400
W I DTH 4 0 : P A L E T T E CMP: C L S
P R I NT " D EMON S T R A T I O N DE H PU T "
LOCATE 0 , 5 : ATTR 2 , 0 , B
P R I N T " P R E S S EZ LA BARRE D ' E S P A C E M E N T P O U R COMMEN C E R " :
PRINT: PRINT
P R I N T " P R E S S E R L A TOUC H E B R E A K POUR A R R E T E R "
70
80
A T T R 2 , 0 : L O C A T E 0 , 23
90
A$= I N K E Y $ : A$="" THEN 90
I F A S C ( A $ ) = 3 T H E N 400
1 00
110
H B U F F 1 , 799
H S C R E EN 2
1 20
P ALETTE CMP
130
H C LS 0
1 40
1 50
H C I R C L E (20,20) , 1 0 , 2
1 60
H C IRCLE(20,20 ) , 5 , 3
1 70
H C I R C LE ( 1 0 , 1 0 ) , 5 , 4
H C I R C LE ( 1 0 , 3 0) , 5 , 5
1 80
10
20
30
40
50
60
200
210
190
H C I RC LE(30 , 1 0) , 5 , 6
H C I R C LE ( 3 0 , 3 0) , 5 , 7
H P A I N T < 20 , 2 0 ) , 3 , 2
220
230
H CO LO R 1 , 0
H LI N E ( 0 , 0 ) - ( 3 9 , 3 9 ) , P S ET
240
250
260
270
280
290
300
310
320
330
340
350
3 60
370
H C O LO R 6 , 0
H L I N E (1 0 , 2 0 ) - ( 3 0 , 2 0) , P S E T
H C O LO R 7 , 0
H L I N E ( 2 0 , 1 0 ) - ( 2 0 , 3 � ) , P S ET
H C O LO R 4 , 0
H L I N E ( 0 , 0 ) - ( 0 , 39) , PSET
H L I N E C39 , 0 ) - ( 3 9 , 3 9) , P S E T
C O L OR 5 , 0
H L I N E < 0 , 0 ) - ( 39-0) , PSET
H L I N E C 0 , 39) - ( 3 9 , 3 9 ) , P S ET
HGET(0 ,0 ) - (39,39) , 1
PALETTE R N D ( 8 ) - 1 , RND (64)-1
G O S U B 42 0 : H P U T ( X , Y > - ( X + 3 9 , Y + 3 9 ) , 1 , P S E T
G O S U B 420 : H P U T < X , Y > - ( X + 3 9 , Y + 3 9 ) , 1 , A N D
G O S U B 420 : H P U T ( X , Y > - ( X + 3 9 , Y + 3 9 ) , 1 , O U
A $ = I N K EY $ : I F A $ = " " T H E N 3 5 0
H S C REEN 0 : PALETTE CHP : C LS
END
380
390
400
41 0
420
430
440
X=2* I N T ( R N D C278 ) / 2 )
Y=RND (1 50)
RETURN
269
Exemples de Programmes
Programme 27
10
20
30
40
50
60
70
80
90
1 00
110
1 20
130
1 40
150
1 60
1 70
1 80
1 90
R E M BOUC L E S
ON B R K GOTO 1 9 0
H S C R E E N 2 : P A L E T T E CMP : PALETTE 0, 0
M I D D L E=RN D C3 5 ) +5
S I Z E =3 0 + R N D C 7 0 )
HCLS 0
H C O LO R 1 , 0 : H P R I N T C 8 , 0 > , " P R E S S E Z L A T O U C H E B R E A K
POUR ARRETER"
H C O L OR 2 , 0 : H P R I N T C 8 , 2 3 ) , " P R E S S E Z L A T O U C H E B R E A K
POUR ARRETER"
•
FOR Z=0 TO 6. 3 S T E P 045
XOFFS=COS ( Z ) * M I DD LE+1 5 9 . 5
YOFFS=S I N C Z ) * M I DD LE+95 . 5
PALETTE R N D C 1 5 ) , R N D C 63 )
CO=R N D C 1 6 ) -1
H C I R C L E C XO F F S , Y OF F S ) , S I Z E , C O , . 4 5 , . 8 , . 2
H C I RCLE CXOF F S , YOF F S ) , S I Z E , C O , . 45 , . 3 , . 7
N EXT
FOR T=1 TO 4000 : N E XT
GOTO 40
P A L ET T E C M P : H S C R E E N 0 : C L S : E N D
Programme 28
10
20
30
40
50
60
70
80
90
1 00
110
1 20
130
1 40
150
1 60
170
180
190
200
210
220
230
240
250
270
REM CHAINES
O N B R K GOTO 2 5 0
W I DT H 4 0 : PA LETT E CMP
P R I N T " D ES S I N D E C H A I N E AUTOMAT I Q U E " : LOCATE 0, 5
A T T R 2 , 0 , B : P R I N T " P R E S S E Z LA B A R R E D ' E S P A C EM E N T P O U R
C O M M EN C E R . " : P R I N T : P R I N T
P R I N T " P R E S S E Z L A TOU C H E B R E A K P O U R A R R E T E R " : A T T R 2 , 0 :
LOCATE 0 , 23
A$=I NKEY$ : I F A$="" TH EN 70
I F A S C ( A $ ) =3 T H E N 2 5 0
HSC REEN 2: PALETTE CMP: PALETTE 0 , 0
X 1 =RND ( 1 5 0 ) : Y1 =RND C90) : X2=RND ( 1 5 0 ) +1 68 :
Y2=RN D C9 0 ) +1 0 0 : LC=0
H C O LO R R N D C 7 > , 0
H L I N E C X 1 , Y 1 > - C X 2 , Y 2 ) , P S ET
L C = L C + 1 : I F L C = 2 0 0 T H E N H C L S : GOTO 1 0 0
X1 =X1 - 4 : X=X1 : GOSUB 1 9 0 : X 1 = X
Y1 =Y1 - 4 : Y=Y1 : GOSUB 2 2 0 : Y 1 =Y
·
X2=X2+3 : X=x 2 : GOSUB 1 9 0 : X 2 = X
Y2=Y2+ 2 : Y=Y2 : GOSUB 2 2 0 : Y2=Y
G OT O 1 1 0
I F X < 0 T H E N X =3 1 9+ X : R E T U R N
I F X> 3 1 9 T H EN X = X - 3 1 9
RETURN
I F Y < 0 T H E N Y = 1 9 1 +Y : R E T U R N
I F Y>1 9 1 T H E N Y = Y - 1 9 1
RETURN
H S C R E E N 0 : PALETTE CMP: C LS : END
Exemples de Programmes
Programme 29
10
20
30
40
50
60
70
80
90
1 00
110
1 20
130
1 40
1 50
1 60
1 70
1 80
1 90
200
210
220
230
240
250
REM AU HASARD
O N B R K GOTO 2 4 0
W I DTH 40: PALETTE CMP
P R I N T "GRAPH IQUES AU HASARD" : LOCATE 0 , 5
ATTR 2 , 0 , B : P R I N T " P R E S S E Z L A B A R R E D ' E S PA C E M E N T POUR
C O M M E N C E R . " : P R I N T : PR I N T
P R I N T " P R E S S E Z LA TOUCHE B R E A K POUR A R R E T E R . " : ATTR 2, 0 :
L O C A T E 0 , 23
A $ = I N K E Y $ : I F A $ = " " TH E N 7 0
I F A S C ( A $ ) =3 T H E N 2 4 0
H S C R E EN 2 : PALETTE 0 , 0
FOR Y=1 TO 5
FOR Z=1 TO 6
H C O LO R R N D ( 1 5 ) , 0 :
H L I N E ( R N D <3 1 8 ) , RN D ( 1 90 ) ) - ( R N D (31 8 ) , R N D ( 1 90 ) ) , PSET
C X = R N D ( 2 0 0 ) + 6 0 : C Y = R N D ( 7 0 ) +60 : C C = R N D ( 7 )
H C I RC LE(CX , CY> , RNDC58) , CC
H PA I NT C C X , C Y > , C C C+1 > AND 7 , C C
N EXT
H C O L OR R N D ( 7 ) , 0
H X = R N D C 2 0 0 ) : H1 = R N D C 8 0 ) + 200
HY=RND (70) : H2=RND (30) +90
H L I N E <HX, HY) - (H1 , H2) , PSET, BF
NEXT
H C LS 0
G O T O 1 00
P A L ETTE C M P : H S C R E E N 0: C L S
END
Programme 30
10
20
30
40
50
60
70
80
90
1 00
110
1 20
1 30
1 40
1 50
1 60
1 70
REM CRAYONNAGE
O N B R K GOTO 7 5 0
W I DTH 40: PALETTE CMP
P R I N T " CRAYON N A G E COUL E U R . AVEC L E C R AYONNAGE"
P R I N T " COULEU R , VOUS POUVEZ D E S S I N ER SUR L ' EC RAN"
P R I N T " E N P R E S S A N T D E S TO U C H E S Q U I S O N T : " : P R I N T : P R I N T
P R I N T " ( T OU C H E D E F L E C H E )
DEPLACE D ' UN POINT"
P R I N T " ( S H I F T ) ( TO U C H E D E F L E C H E ) D E P L A C E D E 1 0 P O I N T S "
PRINT " CCLEAR)
P E I N T UN OBJET"
P R I N T " ( S H I F T ) ( C LEAR)
E F F A C E L ' E C RAN"
PRINT "(F1 >
L E V E ET B A I S S E L E C R A Y O N "
P R I NT " ( F 2 )
CHANGE DE COULEUR D ' ENCRE"
P R I N T " ( LETTRES ET C H I F FRES)
TAPE L E TEXTE SUR L ' E C R A N "
PRINT "(ALT)OU(@)
STOCKE UN POINT
PRINT " ( CTRL)
DESS I N E AU POINT STOCKE"
PRINT " < ENTER)
C L I GNOTEMENT
P R I N T : P R I NT : ATTR 2 , 0 , B : P R I NT " P R E S S E Z LA BARRE
D ' E S P A C E M E N T P0U R COMME N C E R " : P R I N T
P R I N T " P R E S S E Z LA TOU C H E B R E A K POUR A R R E T E R . " : ATTR 2 , 0
LOCATE 0 , 23
A$= I N KEY $ : IF A $ = " " THEN 200
I F A S C (A $ ) =3 T H E N 7 5 0
H S C R E E N 2 : P A L E T T E 0 , 0 : H B U F F 1 , 799 : H B U F F 2 , 3 0 7 :
H G E T C 7 2 , 1 84 ) - C 1 5 9 , 1 90) , 2
XP=1 6 0 : YP=92 : CV=1 : P F = 0 : F F= 0 : MX=1 6 0 : MY=92
H C O LO R 2 , 0 : H L I N E ( 0 , 1 82 ) - (3 1 9 , 1 8 2 ) , P S ET : H C O L OR 1 , 0
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
.
•
•
•
•
.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
.
.
•
•
•
•
•
.
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
1 80
190
200
210
220
230
240
271
Exemples de Programmes
250
260
270
280
290
300
310
320
330
340
350
360
370
380
390
400
410
420
430
440
450
460
470
480
490
500
51 0
520
530
540
550
560
570
580
590
60 0
610
620
630
640
650
660
670
680
690
700
71 0
720
730
740
750
760
272
H P R I N T ( 0 , 2 3 ) , " P E N - U P " : H P R I N T ( 2 1 , 23 ) , " C O L O R - > 11
H C O L OR C V , 0 : H L I N E ( 2 2 4 , 1 8 3 ) - ( 3 1 7 , 1 9 1 ) , P S E T , B F
I F X P < 2 T H E N X P =3 1 7 : G O T O 3 4 0
I F X P > 3 1 7 T H E N X P =2 : G O T O 3 4 0
I F Y P <2 T H E N Y P = 1 79 : G O T O 3 4 0
I F Y P > 1 7 9 T H E N Y P =2
H C O LO R C V , 0
I F PF=1 T H E N H L I N E ( FX , F Y ) - ( XP , Y P ) , PSET
FX=XP : F Y = Y P
H C 0 LOR : 1 , 0 : H P U T ( 7 2 , 1 8 4 ) - ( 1 5 9 , 1 9 0 ) , 2 , P S E T
X V $ =R I G H T $ ( " " + S T R $ ( X P - 2 ) , 3 ) :
YV$=R I G H T$ ( " "+STR$ (1 79-YP) , 3 )
PS$="X="+XV+" Y="+YV$ : H P R I N T ( 9 , 2 3 )
PS
HGET ( 0 , YP-2) -(319-YP+2) , 1
H D RAW "B M " + S T R $ ( I N T ( X P ) ) + " , 11+ S T R $ ( I N T ( Y P ) ) + " ; C " +
S T R $ ( I C ) + " ; D 2 ; U 2 ; L 2 ; R 4 ; L2 ; U 2 "
I C = < I C +1 ) AND 7 OR 8
I F F F =0 T H E N 4 2 0
F O R P N = 0 TO 1 5 : P A L E T T E P N , R N D C 6 4 ) - 1 : N E X T
A$= I N K E Y $ : HPUT ( 0 , YP-2 ) - (3 1 9 , VP+2) , 1 : IF A$="" T H E N 370
KV=AS C ( A $ )
I F KV=3 TH EN 7 5 0
I F KV=94 T H EN Y P = Y P - 1 : GOTO 2 7 0
I F K V = 1 0 T H E N Y P = Y P + 1 : GOTO 2 7 0
I F K V = 8 T H E N X P ;;; X P - 1 : G O T O 2 7 0
I F KV=9 TH E N XP=XP+ 1 : GOTO 270
I F K V = 9 5 T H E N Y P = Y P - 1 0 : G O T O 270
I F KV=91 T H E N Y P = Y P + 1 0 : GOTO 270
I F K V = 2 1 T H E N X P = X P - 1 0 : GOTO 270
I F K V= 9 3 T H E N X P = X P + 1 0 : G O T O 2 7 0
I F K V = 6 4 T H E N M X = X P : M Y = Y P : H CO L O R C V , 0 : H S E T < X P , Y P ) :
GOT0 3 7 0
I F KV=1 89 T H E N H C OLOR C V , 0 : H L I N E ( M X , M Y ) - ( X P , Y P) , P S E T :
GOT0 3 7 0
I F K V <> 1 3 T H E N 5 9 0
FF = ( F F+1 ) AND 1
I F F F = 0 T H EN P A L E TTE C M P : P A LETTE 0 , 0
GOTO 3 7 0
I F K V = 4 T H E N C V = ( C V + 1 ) A N D 1 5 : H C O L OR C V , 0 :
H L I N E C 2 2 4 , 1 83 ) - ( 3 1 7 , 1 9 1 > , P S ET , B F : G O T 0 3 7 0
I F K V <> 1 2 T H E N 6 7 0
T C=HPO I NT ( XY , Y P ) : TX=XP
I F XP<1 60 T H E N S V = 1 E L S E SV=-1
TX=T X + S V : N C = H P O I N T C T X , V P )
I F N C <> T C T H E N H C O L O R N C , 0 : H L I N E C 0 , 1 8 2 ) - (3 1 9 , 1 8 2 ) , P S E T :
H PA I N T ( X P , Y P ) , C V , N C : H CO L O R CV , 0 : GOT0 3 7 0
I F T X = 2 O R T X =3 1 7 T H E N 3 7 0
GOTO 630
I F KV=1 03 T H E N P F = C P F + 1 ) AND 1 E L S E 7 1 0
H C O L O R 2 , 0 : H L I N E C 0 , 1 84 ) - ( 63 , 1 9 0 ) , P R E S E T , B F :
H C O L OR 1 , 0
I F PF=0 T H E N H P R I N T < 0 , 2 3 ) , "PEN-UP" E L S E H P R I N T ( 0 , 23 ) ,
" P E N - D OW N " : F X = X P : F Y = Y P : G O T O 3 1 0
GOTO 3 7 0
I F KV=92 THEN H C0LOR C V , 0 : H L I NE (0 , 0) - (31 9 , 1 81 ) , P SET, B F :
GOTO 3 7 0
I F KV<32 OR KV>90 THEN 370
T X = I N T ( X P / 8 ) : T Y - I N T C Y P / 8 ) : H C O LO R C V , 0
H P R I N T ( T X , T Y ) , A $ : X P= X P + 8 : GOTO 270
P A L E T T E C M P : H C O LO R 1 , 0 : H S C R E E N 0 : A T T R 2 , 0 : C L S
END
I
Exemples de Programmes
Liste de magasinage
5
10
20
30
40
50
60
70
80
C L E A R 2000 : D I M S $ ( 1 0 0)
REM
L I S T E D ' I N V E NTA I R E / M A G A S I N A G E
C LS
P R I N T @ 7 1 , " V O U L E Z -VOUS - - "
PRINT @ 1 3 4 , " ( 1 ) ENTRER DES ARTICLES"
P R I N T @ 1 6 6 , " ( 2 ) R E M P LA C E R D E S A R T I C L E S "
PRINT @ 198, "(3) AJOUTER A LA LI STE"
P R I N T @ 2 3 0 , " ( 4) ANNULER D E S A RT I C LE S "
P R I N T @ 262 , " ( 5 ) I M P R I M E R TOUS L E S A R T I C L E S "
P R I N T @ 294 , " ( 6) S A U V E G A R D E R D E S ART I C L E S SUR B A N D E "
90
P R I N T éi1 3 2 6 , 1 1 ( 7 ) C H A R G E R L E S A R T I C L E S D E L A B A N D E "
1 00
P R I N T â 395 , " ( 1 -7 ) " ;
110
I N PUT M
1 20
I F M < 0 OU M>7 T H E N 1 0
130
1 40
ON M G O S U B 1 0 0 0 , 2 0 0 � , 1 0 2 0 , 3 0 0 0 , 4 0 0 0 , 5 0 0 0 , 6 0 0 0
150
GOTO 1 0
REM
900
REM
1 000
E N T R E E / A D D I T I O N D ' AR T I C L E S
Y=1
1 01 0
C L S : P R I NT@ 8, "ENTREE/ A D D I T ION D ' ART I C LES"
1 020
P R I N T @ 3 4 , " P R E S S E Z < E N T E R> S I V O U S A V E Z F I N I "
1 03 0
P R I N T : P R I NT "ART I C L E " Y ;
1 040
I NPUT S $ ( Y )
1 04 5
I F S $ ( Y ) = " " T H EN RETURN
1 050
1 0 60
1 070
1 9 00
2000
2005
201 0
2020
2030
2040
2050
2060
2900
3000
3005
301 0
3020
3030
3035
3040
3050
3060
3070
3080
3090
3 1 00
3900
4000
40 1 0
4020
Y=Y+1
G O T O 1 040
REM
R EM
REMPLA C E MENT D ' AR T I C LES
N=0
C L S : P R I N T @ 9 , " R E M P L A C E M E N T D ' AR T I C L E S "
P R I NT@ 3 4 , " P R E S SEZ < E N T E R > S I VOUS AVEZ F I N I "
P R I N T : I N PUT " A R T I C L E N n A REMPLA C E R " ; N
IN N=0 THEN RETURN
I N PUT "AR T I C LE D E REMP LACEMEN T " : S $ ( N )
GOTO 2000
REM
REM
A N N U LATION D ' A RT I C LES
N=0
C L S : P R I N T @ 9 , " A N N U LA T I O N D ' A R T I C L E S "
P R I NT@ 3 4 , " P R E S S E Z E N T E R s r vous A V E Z F I N I "
P R I N T : I N PUT " A R T I C L E A A N N U L E R " ; N
IF N>Y-1 THEN 3030
I F N=0 THEN RETURN
FOR X=N TO Y-2
S $ ( X ) = S $ (X+1 )
NEXT X
S$(X) = " "
Y=Y-1
GOTO 3 0 0 0
REM
REM
IMPRESS ION D ' AR T I C L ES
F O R X = 1 TO Y - 1 S T E P 1 5
FOR Z=X TO X + 1 4
273
Exemples de Programmes
4030
4040
4050
4060
4070
4900
5000
501 0
5020
5 03 0
5 040
5050
5060
5 07 0
5080
5 09 0
5 1 00
5900
6000
PRINT Z; S$(Z)
N EXT Z
I N PUT " P R E S S E Z < E N T E R > POUR CONT I N U E R " ; C
N EXT X
R ETURN
REM
REM
S A U V E G A R D E D ' A RT I C L ES S U R B A N D E
C L S : P R I N T@ 1 3 5 , " S A U V E G A R D E D ' A R T I C L E S S U R B A N D E "
P R I N T @ 2 3 4 , " PO S I T I ON N E Z L A B AN D E "
P R I N T @ 2 9 4 , " P R E S S E Z P L AY E T R E C O R D "
P R I NT@ 3 8 8 , " P R E S S E Z < E N T E R > S I V O U S E T E S P R E T "
I N P UT R $
OPEN " 0 " , #-1 . " LI STE"
F O R X = 1 TO Y - 1
PRINT #-1 , S $ ( X )
N EXT X
C LO S E # - 1 : R E T U R N
REM
REM
C H A R G E M ENT D ' AR T I C L E D E LA B A N D E
Lecture rapide
10
20
30
REM
40
F O R X = 1 TO ( 3 6 0 / W P M ) * 4 6 0 : N E X T Y
READ A $ : P R I NT@ 2 5 6 , A$
FOR Y=1 TO ( 3 6 0 / W P M ) *460 : N E XT Y
REM
Y BOU C L E F I X E L I G N E S / M I N
NEXT X : END
DATA " S C A R LETT O H A R A N ' E T A I T PAS B E L L E M A I S "
DATA " L E S HOMMES N E S ' EN R E N D A I ENT PAS COMPTE"
60
70
8 1/l
90
1 00
110
1 20
130
1 40
1 50
1 6 1/l
170
1 80
190
200
21 0
220
230
240
250
260
270
280
290
300
310
320
274
LECTURE RAP I D E
C L S : P R I N T @ 3 2 , " C OM B I E N D E M O T S P A R M I N U T E "
I N P U T " L I S E Z - VO U S ? " ; W P M
D A T A " Q U A N D I L S TOMBA I E N T SOUS S O N C H A R M E , C O M M E "
D A T A " C ' E T A I T LE CAS D E S J U M E A U X T A R LETON .
SON V I S A G E R E U N I S S A I T "
DATA "TROP I N T E N S EM E N T L E S T R A I TS D E L I CATS D E "
D A T A " S A M E R E , A R I ST O C R A T E D E S O U C H E "
DATA " F R A N C A I S E , E T LES T R A I T S E PA I S D E "
D A T A " S O N F LA M B O Y A N T P E R E I R LA N D A I S . "
DATA "MA I S C E V I SA G E ETA I T ATTA C H A N T , "
DATA " A V E C SON M E NTON P O I N T U "
D A T A " E T SA M A C H O I R E CARR E E . "
DATA " S E S Y E U X V E R T PALE , "
DATA " S A N S U N E T R A C E D E N O I SETTE , "
DATA " S ' O R N A I ENT D E C I LS N O I R S "
DATA " L E G E R EM E N T I N C L I N E S ; "
DATA
DATA
DATA
DATA
DATA
DATA
DATA
" A U - D E S S U S , D ' EPA I S SOU R C I L S N O I R S "
" S ' O R I E N TA I EN T V E R S L E HAUT , "
"TAI L LANT U N E L I G N E O B L I QU E S A I S I SSANTE"
"DANS SA PEAU D ' UN B L A N C L A I T E U X , "
" U N E P EAU TANT P R I S E E D E S FEMMES D U S U D "
"ET PROT E G E E P A R DES BONNETS , "
" D E S V O I L E S ET D E S M I T A I N E S "
DATA "C ONTRE LE SOLE I L DE GEORGI E . "
Exemples de Programmes
Test de mémoire
Ce programme utilise un tableau pour contrôler votre mémoire et celle de votre ordinateur:
5
10
15
OIN AC7)
P R I N T "MEMOR I SEZ C E S NOMBRES"
PRINT "EN D I X SECONDES"
FOR X=1 TO 7
A ( X ) = RN D ( 1 0 0 )
PRINT ACX)
NEXT X
20
30
40
50
F O R X = 1 TO 4 6 0 * 1 0 : N E X T X
60
CLS
70
80
FOR X=1 TO 7
PRINT "QUEL ETAIT LE NOMBRE" X
90
1 00
I NPUT R
I F A ( X ) = R T H E N P R I N T " C O R R E C T " E LS E P R I N T " F AUX 110
C ' ETAIT" A ( X )
NEXT X
1 20
Tri
C L S : C L E A R 1 0 0 0 : D I M T $ ( 1 0 0 ) , A$ ( 1 0 0 ) , S $ ( 1 0 0 ) ,
M S ( 1 00) , Z C 1 00)
2
P R I N T " P O S I T I O N N E Z LA B A N D E - - P R E S S E Z P L A Y ET R E C O R D "
I N PUT "PRESSEZ <ENTER> S I VOUS ETES P R E T " ; R$
4
REM
8
REM
9
SORT I E VERS B A N D E
O P E N "0" , #-1 " L I V R E S "
10
15
C L S : P R I N T " E N T R E Z V O S L I V R E S -- T A P E Z < X X > S I V O U S A V E Z
FIN1"
20
I N PUT " T I T R E " ; T$
25
26
28
30
40
50
I F T $ = "XX" THEN 5 0
I N P U T " A UT E U R " ; A $
I N P U T " S U J ET " ; S $
P R I N T #-1 , T $ , A$ , S $
GOTO 1 5
C LO S E #-1
C L S : P R I N T " R E B O B I N E Z L E M A G N E T O C A S S E T T E E T P R E S S E Z P LA Y "
I N P UT " P R E S S E Z < E N T E R> S I V O U S E T E S P R E T " ; R $
REM
REM
E N T R E E D E L A BA N D E
B :;: 1
O P E N " I " , #-1 , " L I VR E S"
I F EO F ( -1 ) T H E N 1 2 0
I N PUT #-1 , T $ ( B ) , A $ ( B ) , S $ ( B )
B = B+ 1
GOTO 8 5
C LO S E # - 1
1 20
PRINT
490
500
I N P U T " T R I P A R ( 1 ) T I T R E ( 2 ) A U T E U R OU ( 3 ) S U J E T " ; A
510
I F A>30 O R A<1 T H E N 5 0 0
O N A GOSUB 1 00 0 , 2000 , 3000
520
60
70
74
76
78
80
85
90
95
110
275
Exemples de Programmes
530
540
550
560
570
580
590
600
800
900
1 000
1 010
1 020
1 03 0
2000
201 0
2020
2 03 0
3 000
301 0
3020
3 03 0
3900
4000
4005
4010
4020
G O S U B 4000
P R I NT
FOR X=1 TO B-1
P R I N T " T I T R E : " T$ ( Z ( X ) )
P R I N T " A U T E U R : " A$ ( Z ( X ) )
P R I NT " S U J E T : " S $ C Z C X ) )
NEXT X
P R I NT : GOTO 5 0 0
R EM
REM
ETA B L I S S EMENT T A B LEAU M $
FOR X=1 TO B-1
M$(X) = T$(X)
N E XT X
R E TU R N
FOR X = 1 TO B-1
M$(X) = A$(X)
NEXT X
RETURN
FOR X = 1 TO B-1
M$(X) = S$(X)
NEXT X
R E T UR N
REM
R E M SO U S - P R O G R A M M E D E T R I
T = 1
X "' 0
X "' X + 1
I F X B - 1 T H E N R ETURN
4030
I F M $ ( X ) = " Z Z " T H E N 4020
4040
F O R Y "' 1 T O B - 1
4050
I F M $ ( Y ) < M $ ( X ) T H E N X "' Y
4060
4 0 6 5 Z ( T ) ;;; X
N E XT Y
4080
M $ C X ) "' " Z Z "
4090
GO TO 4 0 1 0
41 00
276
FEUI LLES DE PROGRAMMATION
Feuille de Travail D'écran de Texte à Basse Définition (32 x 1 6)
1
0
1
1
1
1
1
2
2 2 2 2 2 2 2 2 2 3 3
1
1
1
2 3 4 5
8
0
2
4
8
0
2 3 4
8
6
6-,-1 --r
1r
0r
1
6.--9 .-.-7-.--.-9.-,-o�'j-r
--r
- 5-,-.-,- 7.--�
,5-,-,-.--9.-.-r-,-,7-.-.-r
--.
3.-
32
64
96
128
1 60
1 2
9
224
2 6
5
288
320
352
384
41 6
448
480
277
Feuilles de Programmation
Feuille de Travail D'écran de Texte à Basse Définition (64 x 32)
1
1 1 1 1
3 4 4 4 4 4 5 5 5 5 5 6 6
2 2
2 2 3 3 3
0
4 ...., 6 �
4...-r2 4 6 8 0 "T""T"
2....
O 2
6...-r2 4
6�
2 ....
2
0
8
T""rT""rB�
0�
" 6,...
8 "'T"
0 2"T""T"
>
y
i-T-i
...-r�
"'T""'T'"
"T" 4..-.B
"
--...-.
..
-r
�
"T""T"
"
8r-r-'1
.,.- 0�
�
--..--r �
--..-r
�
O
"""T""T""
-r---. �
2
4
6
t-+1H-irl-t-t-t-++++t+-t-+-lrl-t-H-+++-t-+t-t-+-H-irl-t-t-t-++t-+-H-IH-H
t-+-t-+-lrl-t-t-t-++-+++++-+-t-+-1-H-+-t-+++t-+-+-t-+-ir+-1-++t-+-t-+-IH-H
l-+-t-+-tl-H-+-+-++-++++-+-+-+-+-1-+-1-H-+-1-+-++-+-++-+-+-t-+-ll-H-+-1-++-+++-+-+-+-+-+-lf-++-l
8 1-+-t-+-tl-H-+-1-++-++++-+-+-+-+-1-+-1-H-+-+-+-++-+-++-1-+-t-+-ll-H-+-1-++-+++-+-+-+-+-+-lf-++-l
1
0
12
t-+-H-rl-trl-t-t-t-t+++++-t-+-+-+-1-H-++-H++-+-+-t-+-if-H-++-+-H-H
t-+-t-+-rl-t-++-++++-t-+-+-+-1-H-+++-++-+-t-+-1r+-1-+++-+-H-H
1 4 1-+-t-+16
18
24
1-H-++-++++-t-+-+-+-1-H-+++-+++-+-+-t-+-f-H-+++-+-H-H
H-t-+--1-H-H-t-t-+++++-+-t-+-i-++-+-t-+++-+-+-+-t-+-1r+-1-t-t-+++-t-t-t-H-H
1-+-1-+-1-H-+-+-+-+-++-++++-+-+-1-H-+-+-+-1-+-+-++-+-+-++-+-+-t-+-tl-H-++-1
l-+-l-+-1-H-+-l-++-+-+-++++-++-+-+-+-+-1-H-+-+-+-t-+-+-+-+-++-+-+-t-Mt-+-t-+-+-+-+-++-1-t--t--t-++-t-HH
26
1-t-H-1-H-H-++-++++t-+-1-HH-i-H-t-t++t-t-H-t-+-ll-++-H-+++-+-H
Jo ..
...,H-!1-H-++-++++-+-+-++-t-+-tr-+-t-+-+-+-+-++-+-+-+-+-+-+-t-+-lt-+-t+-t--t-+-+-++-1-H�
278
Feuilles de Programmation
Feuille de Travail D'écran de Texte à Haute Définition (40 x 24)
0
1
2 3
4
5
6
7
3
9
Il
11 1 2 1
1< 1 ' Il 1 ; 11 1\ 2( 2 1 2 ; 2 ,, 2' 21 2 21 2� 3( 31 32 3 3, 3! 31 3; 3! 3!
10
1
12
lJ
14
15
16
17
18
19
20
1
22
23
279
Feuilles de Programmation
Feuille de Travail D'écran de Texte à Haute Définition (80 x 24)
"
"
..
..
"
"
::
280
Feuilles de Programmation
Feuille de Travail D'écran de Graphique à Basse Définition (128 x 96)
0
0
4
8
1
2
1
6
2
0
2
4
2
8
3
2
3
6
4
0
4
8
5
2
5
6
6
0
6
4
6
8
7
2
7
6
8
0
8
4
8
8
9
2
9
6
1
0
0
1
0
4
1
0
8
1
1
2
1
1
6
1
2
0
1 1
2 2
4 7
4
8
12
16
20
24
26
32
36
40
44
48
52
56
60
64
68
72
76
80
84
88
92
95
281
�I
188
184
180
176
172
168
164
160
156
152
148
144
140
136
132
128
124
120
115
112
108
104
100
96
92
88
84
80
76
72
68
64
60
56
52
48
44
40
36
32
28
24
20
16
12
8
4
1 1 1
4 6 8 0 2 4
-
0
' 2
o �-
-
-
-
--
3 3 3 4 4
4 6 8 0 2
-
-
---
2 2 2 2 3 3
2 4 6 8 0 2
--
--
1 1 2
6 8 0
5 5 5
6 8 0
--
5 5 5 6 7 7
2 4 6 8 0 2
Il
-�
--
4 4 4 5 5 5
4 6 8 0 2 4
-
�
----
••
-
-
8 6 8 9 9 9 9
4 6 8 0 2 4 6
m
-
7 7 7 8 8
4 6 8 0 2
-'
--
Il
&!
•
-
1 1 1 1 1 1 1
9 0 0 0 0 0 1 1
8 0 2 4 6 8 0 2
-
-
-
1 1 1
2 2 2
0 2 4
1
2
6
--
-
-
-
� �� Biil
--
1 1 1
1 1 1
4 6 8
-
......
.-...:>
(X)
><
.......
CD
"->
:::::s
-
s·
;::;:
-
:;·
c
<D·
�
(1)
t.n
m•
m
m
(D
c:
...s·
m
""C
�
G')
(")
m
:::::s
c..
(1)
(D':
c
e!.
�
--1
-
(D
c..
(i)
c:
(D
.,,
�
0
::J
�
-·
Q)
�
3
3
<.Q
fü-
(/)
c:
::::::
<D
�
Feuilles de Programmation
Feuille de Travail D'écran de Graphiques à Basse Définition (256 x 192)
"'lmmi
im�ll!l!IRllB�l!ll
"'
"'
"'
...
... 83::81l:e!l!EI
''"
'" �-·
zç1 m3m
...
..
.
'"
..
lto
"'
•I•
'"
'"
'"
"'
"'
"'' EHHl!HBHH!lliH!
"
"
., lllm:HiEIHI
..
"
" lllmllm!l81
u
" l!HHllH!lllffi
•9
Cl
91
=
=
=
"
••
"
,,
28S
Feuilles de Programmation
Feuille de Travail D'écran de Graphiques à Haue Définition (320 x 192)
284
CODES DES CARACTÈRES BASIC
Le BASIC emploie un code pour représenter chaque caractère que l'on peut taper au clavier
eUou afficher sur l'écran de texte. Cette section donne les codes utilisés par le BASIC.
Codes BASIC 0-1 27/
Écrans de texte à basse et haute définition
Pour les écrans de texte à haute et basse définition, le BASIC emploie les codes 0 à 1 27
pour représenter les caractères alphanumériques courants. Ces codes appliquent la norme
ASCII utilisée avec la plupart des petits ordinateurs.
Vous pouvez créer ces codes en tapant le caractère au clavier ou en entrant la fonction CHR$.
Par exemple, vous pouvez produire le code de la lettre A en tapant cette lettre au clavier
ou P R I N T c H R $ < 6 5 ) ŒNIEID . Dans chaque cas, le BASIC affiche la lett'e A sur l'écran.
Pour taper une minuscule, vous devez d'abord passer en mode de majuscules/minuscules
du BASIC en pressant Cfil!IIT)@:i . (Pressez (]}ITf1) et, tout en mai ntenant cette touche,
pressez @:i.) Tapez ensuite le caractère au clavier. Tapez par exemple A pour produire le
code de la lettre a.
Le BASIC affiche différemment une minuscule suivant l'écran de texte utilisé. Avec l'écran
à basse définition, le BASIC affiche le caractère en majuscule, en couleurs inverses. (Par
exemple, JAJ.) Avec l'écran à haute définition, le BASIC affiche la minuscule véritable. (Par
exemple, a.)
Table 7.1 I Codes BASIC 0 à 1 27/
Écrans de texte à basse et haute définition
Caractère
Code
Code
(JffifAfC
8
8
m
cruAB)
®r!:fID
Space bar
03
8
9
10
12
13
32
33
34
35
36
37
38
39
40
41
'12
43
44
45
46
47
03
08
09
OA
oc
1
#
$
%
&
+
OO
20
21
22
23
24
25
26
27
28
29
2A
2B
2C
20
2E
2F
285
Codes des Caractères BASIC
Caractère
0
1
2
3
4
5
6
7
8
9
<
>
?
@
A
B
c
0
E
F
G
H
J
K
L
M
N
0
p
Q
R
s
T
u
V
w
X
y
z
286
Decimal Code
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
Hexadecimal Code
30
31
32
33
34
35
36
37
38
39
3A
38
3C
30
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
48
4C
40
4E
4F
50
51
52
53
54
55
56
57
58
59
SA
Codes de Caractères BASIC
Caractère
Decimal Code
Hexadecimal Code
[ (CSHIITlCD)
\ (Cfilill'.I)@mD)
l (Cfil!JITJG)
91
92
93
94
95
96
97
98
99
1 00
101
1 02
1 03
1 04
1 05
1 06
1 07
1 08
1 09
110
111
112
113
114
115
116
117
S8
se
so
SE
SF
60
61
62
63
64
65
66
67
68
69
6A
68
6C
60
6E
6F
70
71
72
73
74
75
76
77
78
79
7A
78
7C
70
7E
7F
t
- (�ŒJ)
1\
a
b
c
d
e
f
g
h
j
k
m
n
0
p
q
r
s
t
u
V
w
X
y
z
rv
118
1 19
1 20
121
1 22
1 23
1 24
1 25
1 26
1 27
287
Codes des Caractères BASIC
Codes BASIC 1 28 à 255/
Écran de texte à basse définition
Pour l'écran de texte à basse définition, l e BASIC emploie les codes 1 28 à 255 pour représenter
ses propres caractères graphiques. Pour produire un caractère graphique, utilisez la fonction
CHR$(code). Vous pouvez calculer le code à l'aide de la formule suivante: -
code= 1 28 + 1 6 *(c-1) + forme
La forme correspond au numéro de la forme de graphique (indiqué dans la table ci-dessous)
que vous voulez afficher. c correspond à la couleur que vous voulez utiliser.
Par exemple, supposons que vous désirez affichez une grande case bleue. La table ci-dessous
montre que la forme d'une grande case correspond à 1 5. Si l'on suppose que la palette de
l'ordinateur est fixée aux couleurs standard, vous pouvez spécifier la couleur bleue sur un
écran de texte à basse définition avec 3. Pour afficher une grande case bleue, tapez:
P R I N T C H R $ ( 1 28+1 6*(3-1 ) + 1 5 )
Table 7.2 I Codes BASIC 128 à 255/
Écran de texte à basse définition
Forme
Caractère
0
8
9
288
2
10
3
11
4
12
5
13
6
14
7
15
Codes des Caractères BASIC
Codes 1 28 à 1 59/
Haute définition
Pour son écran de texte à haute définition, le BASIC emploie les codes 1 2 8 à 1 59 pour
représenter ses propres caractères spéciaux et étrangers. =>our produire un caractère spécial
ou étranger, utilisez la fonction CH R$(code). Par exemple, vous pouvez taper P R I N T
c H R $ < 1 3 0 > ŒlITIBl pour afficher un "e" avec un accent sur l 'écran de texte à haute
définition.
Table 7.3 ! Codes BASIC 1 28 à 1 59/
Écran de texte à haute définition
Caractère
Code
Caractère
Code
c
1 28
6
1 44
1.1
1 29
1
1 45
é
1 30
[
1 46
à
131
ô
1 47
a
1 32
i)
1 48
à
1 33
0
149
..
à
1 34
u
1 50
ç
1 35
ù
151
é
1 36
©
1 52
e
1 37
lj
1 53
è
1 38
0
154
l
1 39
:§
1 55
l
1 40
.i
1 56
.6
141
±
157
A
1 42
,\
143
,,
H
1 58
f
1 59
289
CODES DES CO ULEURS
L'ordi nateur couleur possède 64 couleurs. À l ' aide de la table ci-dessous, notez les noms
de chacune des couleurs qui apparaissent sur l'écran. Tapez et exécutez l'exemple de
programme 23. Huit couleurs apparaissent à la fois sur l'écran. Les couleurs O à 7 apparaissent
d'abord, suivies des couleurs 8 à 15, etc. pour se terminer par les couleurs 56 à 63. À chaque
écran de couleurs, notez le nom de chacune sur le tableau ci-dessous.
1 6 ��-
32
17
33
49
1 s <!l
t:eaT cfo.:,,.._,.
.
34
50
19
35
51
20
36 HJ"v.C/Q
21
37
53
22
38
54
Q/lk k ' �
23
39
55
� "J,.�
24
C<.tf!::::c, � 40
J
OO
01
02
03
04
'71otr_
�.�
�
/!;e "t�
�
(...
-
��
05 1!
\
06
07
08
09
a
u
LÂ. �
25
fUFt'Cé- 1�A.
cfb,.,_
/IJ!o!e.L/}r.(}11°f"
48
52
56
41
57
42
58
43
59
60
10
26
11
27
12
28
44
13
29
45ôl].�r
61
14
30
46
62
15
31
47
63
c""j""" cA<k,
c..2(l(.A
_
_
_
_
_
9='u.2
u
J'<,,,/V
(
if�e-
291
CASES DE PALETTE
L'ordinateur couleur possède une palette de 1 6 cases. Cette palette peut contenir 1 6 couleurs
à la fois. Vous pouvez choisir 1 6 codes parmi les 64 ind:qués dans la section précédente
pour les stocker dans la palette.
Quand vous entrez une commande PALETTE CMP eu PALETTE RGB ou que vous
commencez avec le BASIC (dans ce cas, le BASIC entre automatiquement la commande
PALETTE CMP), celui-ci crée une palette standard en y stockant 1 6codes standard.
La table ci-dessous donne la palette standard du BASIC. Avec cette palette, vous pouvez
exécuter des programmes écrits dans des versions précédentes du BASIC.
Vos pouvez changer la palette standard à l'aide de la commande PALETTE. Par exemple,
PALETTE 2, 30 stocke le code 30 dans la case 2.
7.5 / Palette standard du BASIC
(PALETTE CMP ou PALETTE RGB)
Table
Case
Couleur
Code CMP
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Vert
Jaune
Bleu
Rouge
Chamois
Turquoise
Lilas
Orange
Noir
Vert
Noir
Chamois
Noir
Vert
18
36
1;
7
63
31
9
38
0
18
0
63
0
18
0
38
Noir
Orange
Code
RGB
18
54
9
36
63
27
45
38
0
18
0
63
0
18
0
38
293
CO ULEURS DE BASE
Chaque écran emploie des cases différentes
de
palette pour produire:
•
Les couleurs de premier plan et de fond.
•
Les couleurs spécifiées, comme la "3" dans CLS3.
Par exemple, l'écran de texte à basse définition emploie la case 2 pour produire la couleur
3. L'écran de texte à haute définition emploie la case 2, 3 ou 1 1 pour produire la couleur 3.
Cette section donne les cases de palette que chaque écran emploie pour donner les couleurs
de premier plan et de fond et les couleurs que vous spécifiez.
Écran de texte à basse définition
Couleurs d e premier plan et d e fond: !_es cases qui donnent les couleurs d e premier plan
et de fond dépendent du caractère que l'écran affiche et de son code. (Voir "Codes des
caractères" pour redéterminer le code de chaque caractère.)
Par exemple, si l'écran affiche un caractère alphanumérique courant (codes O à 1 27), la case
1 2 donne la couleur de premier plan et la case 1 3 la couleur de fond. Si l'écran affiche le
caractère graphique 1 29, la case O donne la couleur de premier plan et la case 8 la couleur
de fond.
Couleurs que vo u s spécifiez: La case qui donne la couleur spécifiée est inférieure d'une unité
à la spécification. Par exemple, la case 2 donne la couleur 3.
Table 7.6 / Utilisation de la palette en BASIC/
Ècran de texte à basse définition
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
0
Case
Case
Case
Case
Case
Case
Case
Case
Case
2
3
4
5
6
7
PREMIER PLAN:
Codes O à 1 27
Codes 1 28 à 1 43
Codes 1 44 à 1 59
Codes 1 60 à 1 75
Codes 1 76 à 1 9 1
Codes 1 92 à 207
Codes 208 à 223
Codes 224 à 239
Codes 240 à 255
Case
Case
Case
Case
Case
Case
Case
Case
Case
12
0
1
2
3
4
5
6
7
COULEUR DE FOND:
Codes 0 à 127
Codes 1 28 à 255
Case 1 3
Case 8
1
2
3
4
5
6
7
8
8
o
1
295
Couleurs de Base
Écran de texte à haute définition
Couleurs d e premier plan et d e fond: L a case 8 donne la couleur de premier plan et la case
0 la couleur de fond. Les deux cases sont implicites: vous pouvez les changer à l'aide des
commandes ATTR ou CLS.
Couleurs que vous spécifiez: La case qui donne la couleur est fonction de sa- spécification
avec CLS, ATTR pour le premier plan ou ATTR pour le fond.
Par exemple, la case qui donne la couleur
3
peut êt'e:
•
La case 2 si elle est spécifiée avec CLS.
•
La case 1 1 si elle est spécifiée avec ATTR pour le premier plan.
•
La case
3
si elle est spécifiée avec ATTR pour le fond.
Table 7.7 / Utilisation de la palette du BASIC/
Écran de texte à haute définition
ATTR,
PREMIER PLAN
CLS
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
0
1
2
3
4
5
6
7
8
Case
Case
Case
Case
Case
Case
Case
Case
PREMIER PLAN: Case 8
FOND:
Case 0
296
o
1
2
3
4
5
6
7
Case
Case
Case
Case
Case
Case
Case
Case
8
9
10
11
12
13
14
15
ATTR,
FOND
Case
Case
Case
Case
Case
Case
Case
Case
O
1
2
3
4
5
6
7
Couleurs de Base
Écran de graphiques à basse définition
Couleurs de premier plan et de fond: Les cases qui donnent les couleurs de premier plan
et de fond dépendent de la commande PMODE et du jeu de couleurs utilisés. Par exemple,
si vous utilisez une commande PMODE à deux couleurs avec le jeu de couleurs O. la case
9 donne la couleur de premier plan et la case 8 la couleur de fond.
Quelle que soit la commande PMODE et le jeu de couleurs utilisés, toutes les cases qui donnent
les couleurs de premier plan et de fond sont implicites; vous pouvez les changer avec la
commande COLOR.
Couleurs que vous spécifiez: La case qui donne la couleur que vous spécifiez dépend de
la commande PMODE et du jeu de couleurs utilisés. Par exemple, la case qui donne la couleur
3 peut être:
•
Case 9 avec commande PMODE de couleur et jeu de couleurs O
•
Case 1 1 avec commande PMODE
•
Case 6 avec commande PMODE
•
Case
2
à 2
à 4
couleurs et jeu de couleurs 1
couleurs et jeu de couleurs O
avec commande PMODE à 4 couleurs et jeu de couleurs 1
Table 7.8 / Spécifications des couleurs/
Écran de graphiques à basse définition
PMODE
JEU
Couleur 1
Couleur 2
Couleur 3
Couleur 4
Couleur 5
Couleur 6
Couleur 7
Couleur 8
PREMIER
FOND:
PLAN:
0
À
2 COULEURS
JEU 1
Case 9
Case 8
Case 9
Case 8
Case 9
Case 8
Case 9
Case 8
Case
Case
Case
Case
Case
Case
Case
Case
Case 9
Case 8
Case 1 1
Case 1 0
11
10
11
10
11
10
11
10
PMODE
JEU
Case
Case
Case
Case
Case
Case
Case
Case
0
À
4 COULEURS
JEU
1
6
7
Case O
Case 1
Case 2
Case 3
Case O
Case 1
Case 2
Case 3
Case 7
Case 4
Case 3
Case 0
4
5
6
7
4
5
297
Couleurs de Base
Écran de graphiques à haute définition
Couleurs de premier plan et de fond: La case 1 donre la couleur de premier plan et la case
0 la couleur de fond. Les deux cases sont implicites: vous pouvez les changer à l'aide de
la commande HCOLOR.
Couleurs que vous spécifiez: La case qui donne la couleur que vous spécifièz dépend du
réglage de HSCR EEN utilisé. Par exemple, la case qui donne la couleur 3 peut être:
•
Case 1 avec une commande HSCREEN
à
2 couleurs.
•
Case 3 avec une commande HSCREEN
à
4 ou 1 6 couleurs.
Table 7.9 I Emploi de la palette en BASIC/
Écran de graphiques à haute définition
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
Couleur
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PREMIER PLAN: Case Î
Case 0
FOND:
298
HSCREEN,
HSCREEN,
HSCREEN,
2 COULEURS
4 COULEURS
16 COULEURS
Case
Case
Case
Case
1
0
1
O
Case 1
Case 2
Case 3
Case 0
Case
Case
Case
Case
Case
Case
Case
Case
Case
Case
Case
Case
Case
Case
2
3
4
5
6
7
8
9
10
îî
12
13
14
15
TONALITÉS MUSICALES
DE BASE
Numéro
Note
do
2
do#/ré- 563
3
ré
4
mi/ré#
5
mi/fa6 fa/mi#
7
fa#/sol
8
sol
9
sol#/la
10
la
11
la#/si
12
si
299
DES FOR M U LES POUR
LES MATH ÉMATICIENS
Td.al Oegrees of a
Triangle
Sdve
for Area
Given Side a, Angles B
ar.d C
Given Sides a, b and c
Law of Sines
TTL
= A + B+ C
180°
Area =
M + AB + AC
=
AA 180 - (AB + AC) [then convert AA, AB and
AC to radians]
A = 180 - (B + C)
=
a2sin B · sin e
2 sin A
AREA
=
SA f 2'SIN(AB )'SIN(AC)/(2'SIN(AA))
s = Y:!(a + b + c)
S = (SA + SB + SC)/2
Area = v s(s - a)(s - b)(s - c)
AREA = SOR(S'(S - SA) '(S - SB)'(S - SC))
sin A
a
SA = (SIN(AA)/SIN(AB)) 'SB
sin A
= sn
i B·b
b = sin B ora
Law of Consines
BASIC Statement
Standard Formulas
Quantity
a2 = b2 + c2 - 2bc · cos A or
SA = SOR(SB l 2 - SC f -2'SB'SC 'COS{AA))
a = {b2+
cL 2bc cos A
·
Law of Tangents
a-c
a+c =
tan Y:!(A - C)
tan 0(A - C) =
Given Three Sides,
Solve for an Angle
Ouadralic
Equations
REM Y = TAN((M - AC)/2)
tan Y:!(A + C) or
a-c
a+c
·
=
îSA - SC)/(SA + SC) 'TAN((AA + AC)/2)
tan Y:!(A ± C)
s = Y:!(a + + c
S = (SA + SB + SC)/2
r = f (s - a)(s - b)(s - c)
R = SOR((S - SA) '(S - SB)'(S - SC)/S)
r
A = 2 arctan ( - )
s-a
M
axz + bx + c
=
0
X=
=
2 'A TN(Rl(S - SA))
REMA 'X f 2 + B 'Y + C = 0
Z = B t 2 - 4 'A 'C
- b ± { b2 - 4ac
Algebraic
Y
XI ( - B + SOR(Z))/(2 'A) 'IF Z>
X 2 ( - B - SOR(Z})l(2 'A) 'IF Z>
=
=
2a
(a•)r = a•r
l = (A t X) t Y or Z = A f {X"1
1
a• = a·
""" = y · log x
Z = A f ( - X)
Z
= LOG(X t Y)
log xy = log x + logy
Z
=
X
log y = log x - log y
Z=
AB
SA
AC
LOG(X'Y)
or Z
=
or Z
or Z
=
0
0
1/(A f X)
=
=
=
Y'LOG(X)
LOO(X) + LOO(Y)
LOG(XIY} or Z = LOG{X) - LOG(Y)
Side a = SA (side opposite Ang.'e A)
Side b = SB (side adjacent to Ang!e l)
Side c = SC (hypo!enuse)
AngieA = M
Angie 8 = AB
Angie C = AC
301
FONCTIONS DÉRIVÉES
Function Expressed in Terms of
Extended Color
Function
BASIC Functions.
x is in radians.
SECANT
SEC(X)
=
1 /COX(X)
COSECANT
CSC(X)
=
1/SIN(X)
COTANGENT
COT(X)
=
1/TAN(X)
INVERSE SINE
ARCSIN(X)
INVERSE COSINE
ARCCOS(X}
=
INVERSE COSECANT
ARCCSC(X)
=
INVERSE COTANGENT
ARCCOT(X)
=
HYPERBOLIC SINE
SINH(x)
HYPERBOLIC COSINE
COSl-(X)
=
(EXP(X) + EXP( -X})/2
HYPERBOLIC TANGENT
TANH(X)
=
- EXP( - X}/(EXP(X) + EXP( - X})'2 + 1
HYPERBOLIC SFCANT
SECH(X) - 2/(EXP(X} + EXP( - X))
HYPERBOLIC COSECANT
CSCH(X)
=
2/(EXP(X) - EXP(- X})
HYPERBOLIC COTANGENT
COTH(X)
=
EXP( - X)/(EXP(X) - EXP( - X))' 2 + 1
INVERSE HYPERBOLIC SINE
ARCSINH(X)
INVERSE HYPERBOLIC COSINE
ARCCOSH(X)
=
LOG(X +SOR(X'X- 1))
INVERSE HYPERBOLIC
TANGENT
ARCTANH(X)
=
LOG((1 + X)/(1 - X))/2
INVERSE HYPERBOLIC SECANT
ARCSECH(X)
=
LOG((SQR( - X ' X + 1 ) + 1 )/X)
lf\VERSE HYPERBOLIC
COSECANT
ARCŒCH(X)
=
LOG((SGN(X)'SQR(X'X + 1)+ 1)/X)
INVERSE HYPERBOLIC
COTANGENT
ARCCOTH(X)
=
LOG((X + 1)/X + 1))/2
=
=
ATN(X/SOR( -X 'X+ 1 ))
-ATN(XJSOR( -X'X+ 1))+ 1.5708
ATN(11SOR(X'X- 1)) + (SGN(X) - 1)'1 .5708
-ATN(X} + 1 .5708
(EXP(X)- EXP( - X)V2
=
LOG(X +SOR(X'X+ l))
303
INTERVALLES D ' ENTRÉE VALI D ES
Sinus inverse
Cosinus inverse
Sécante inverse
Cosécante inverse
Cosinus hyperbolique inverse
Tangente hyperbolique inverse
Sécante hyperbolique inverse
Cosécante hyperbolique inverse
Cotangente hyperbolique inverse
-1
-1
X
X
X
X
0
X
x·x
<
X
<
X
< -1
< -1
>
1
*
X
<
X
<> 0
>
< 1
< 1
01,J X >
ou X >
< 1
< 1
Certaines valeurs spéciales sont sans définition mathématique, mais nos fonctions peuvent
donner des valeurs invalides:
TAN et SEC de 90 et 270 degrés
COT et SCS de 0 et 1 80 degrés
Par exemple, TAN(1 .5708) donne une valeur, mais TAN(90 • .01 745329) donne une erreur
de DIVISION PAR ZÉRO.
go· .01 745329
=
1 .5708
Les autres valeurs suivantes ne sont pas di sp on i bl es avec
ARCSIN(- 1 )
ARCSIN(1 )
ARCCOS(-1)
ARCCOS( 1 )
ARCSEC(-1 )
=
=
ces fo nctions:
-Pl/2
Pl/2
Pl
0
-Pl
=
=
=
ARCSEC(1) - 0
ARCCSC(-1)
ARCCSC(1)
=
=
-Pl/2
Pl/2
Notez que les indications ci-dessus peuvent ne pas être complètes.
305
TOPOGRAPH I E DE M ÉMOIRE
Adresse décimale
Contenu
Adresse
hexadécimale
0-39321 5
Non utilisé par le BASIC
0-5FFFF
39321 6-425983
Mémoire d'écran de graphiques Hires
60000-67FFF
425984-4341 75
Mémoire tampon GET/PUT Hires
68000-69FFF
4341 76-442367
Zone de pile secondaire
6A000-6BFFF
442368-450559
Mémoire d 'écran de texte H ires
6C000-6DFFF
450560-458751
Non utilisé par le BASIC
6E000-6FFFF
458752-459775
Utilisation par le système
70000-703FF
459776-460287
Mémoire d'écran de texte standard
70400-705FF
Mémoire d'écran de graphiques standard
460288-461 823
Page 1
70600-70BFF
461 824-463359
Page 2
70COO-7 1 1 FF
463360-463359
Page 3
71 200-717FF
464896-466431
Page 4
71 800-71 DFF
466432-467967
Page 5
71 E00-723FF
467968-469503
Page 6
72400-729FF
469504-471 039
Page 7
72AOO-72FFF
471 040-472575
Page 8
73000-735FF
472576-491519
Stockage de programme et de variables
73600-77FFF
491 520-4997 1 1
BASIC couleur étendu
78000-79FFF
49971 2-507903
BASIC couleur
7A000-7BFFF
507904-5 1 6095
ROM sur ca1ouche
7C000-7DFFF
5 1 6096-52377 5
BASIC super étendu
7E000-7FDFF
523776-524031
Vecteurs secondaires
7FEOO-7FFFF
524032-524287
E ntrée/so rtie
7FF00-7FFFF
307
VARIABLES D ' I MPRI MANTE
D ' ORDINATEUR COULEUR
Adresse
Adresse
Hex.
Valeur
hexadécimale
décimale
initiale
déc.
149
1 50
57
OO
0
87
1 51
1 52
OO
01
0
1
10
16
1 55
84
1 32
1 56
OO
OO
Baud LPTBTD
MSB 0095
LSB 0096
Retard de ligne LPTLND
MSB 0097
LSB 0098
Largeur de zone de virgule LPTCFW
0099
1 53
Largeur d'imprimante LPTWID
0098
LPTPOS
009C
Le logiciel de votre ordinateur applique les conditions initiales suivantes:
•
Un régime 600 bauds
•
Une largeur d'imprimante de 132 colonnes
•
L'imprimante crée une sortie occupée si elle n'est pas prête
•
L'.imprimante exécute automatiquement un retour du chariot
132 colonnes.
à
L'interface RS-232 s'utilise avec un connecteur OIN à 4 broches. Le manue d'introduction
donne un diagramme du brochage de ce connecteur.
La broche
4 correspond à la sortie de l'ordinateur vers l'imprimante. La broche 3 est à la masse.
1 ne s'utilise pas avec une imprimante. La broche 2 doit être reliée à la sortie occupée
(ou ligne d'état) de l'imprimante. Si l'imprimante ne donne pas d'indication d'état, reliez alors
cette ligne à une tension positive supérieure à 3 volts. Cette tension indique en permanence
à l'ordinateur que l ' imprimante est prête. De plus, vous devez fixer la variable de retard de
ligne à la valeur correcte.
La broche
309
Variables D 'imprimante
L a liste suivante de valeurs d e remplacement pour les variables d'imprimante est donnée pour
faciliter l'interface des imprimantes non standard.
Régime de bauds
1 20 bauds
300 bauds
600 bauds
1 200 bauds
2400 bauds
Retard de ligne
(secondes)
.288
.576
1.15
Largeur de ligne
(caractères/ligne)
16
32
64
255
Valeur décimale
458
1 80
87
41
18
Valeur décimale
64
1 28
65535
(msb,lsb)
(1 ,202)
(0,1 80)
(0,87)
(0,41)
(0, 1 8)
Valeur hexadécimale
0 1 CA
OOBE
Cl057
0029
001 2
)
Valeur hexadécimale
(0, 64)
(0,1 28)
(255,255)
4000
8000
FFFF
(
' ' '' '
Valeur décimale
Valeur hexadécimale
16
32
64
255
10
20
40
FF
La dernière variable de zone de virgule doit être fixée à la valeur de largeur (largeur de la
zone de virgule). (La largeur de zone de vi rg ul e reste normalement à 16.)
En BASIC couleur, le format de sortie vers l'imprimante est de 1 bit de départ, 7 bits de données
(bit le moins significatif (LSB) en p'emier) et de 2bits d'arrêt, sans parité.
310
SOUS-PROGRAMMES E N
MÉMOIRE MORTE (ROM)
La mémoire morte (ROM) du BASIC couleur contient de nombreux sous-programmes que
peut appeler un programme e n langage machine. Chaque sous-programme est décrit dans
le format suivant:
NAME
Adresse d'entrée
Opération exécutée
Conditions d'entrée
Conditions de sortie
-
Remarque: Le sous-programme NAME n'est donné qu'à titre de référence; il n'est pas accepté
par l 'ordinateur couleur. L'adresse d'entrée est donnée sous forme hexadécimale; vous devez
utiliser un branchement indirect à cette adresse. Les conditions d'entrée et de sortie sont
données pour les programmes en langage machine.
=
[A006]
Lit u n bloc à partir d'une cassette.
BLKIN
Conditions d'entrée
La cassette doit être en marche et en synchro de bits (voir CSRDON). CBUFAO contient
l'adresse de tampon.
Conditions de sortie
BLKTYP, située à 7C, contient le type de bloc:
O
en-tête de fichier
1
donnée
FF
fin de fichier
BLKLEN, situé à 70, contient le nombre d' octets de données dans le bloc (0·255).
z·
1 ,A
CSRERR
0 (s'il n'y a pas d'erreur).
O,A
CSRERR
1 (si une erreur de total de contrôle se pro.duit).
Z
O,A
CSRERR
Z
2 (si une erreur de mémoire se produit).
=
=
=
=
=
=
=
=
=
=
=
Remarque: CSRERR
81
Excepté si une erreu' de mémoire se produit, X
CBUFAD + BLKEN. En cas d'erreur de
mémoire, X pointe au-delà de l' adresse erronée. Les interruptions sont filtrées. U et Y sont
protégés et tous les autres sont modifiés.
=
=
Z
est un indicateur dans le registre de code de condition (CC).
=
[AOOB]
Écrit un bloc sur une cassette.
BLKOUT
Conditions d'entrée
La bande doit avancer à vitesse normale et u n en-tête de 55 en hexadécimal doit avoir été
écrit si ce bloc est le premier après l a mise en marche du moteur.
CBUFAC, situé à 7E, contient l'adresse de tampon.
BLKTYP, situé à 7C, contient le type de bloc.
BLKLEN, situé à 70, contient le nombre d'octets de données.
Conditions de sortie
Les interruptions sont filtrées. X
=
CBUFAO + BLKLEN. Tous les registres sont mod1f1és.
31 1
Sous-programmes de Mémoire morte (ROM)
= [AOOC]
Met la cassette en marche et écrit un en-tête.
WRITLDR
Conditions d'entrée
Aucune.
Conditions de sortie
Aucune.
CHROUT = [A002]
Sort un caractère vers un dispositif.
CHROUT sort un caractère vers le dispositif spécifié par le contenu de 6F (OEVNUM).
DEVNUM
- 2 (imprimante)
DEVNUM
0 (écran)
=
=
Conditions d'entrée
À l'entrée, le caractère
à
sortir est dans A.
Conditions de sortie
Tous les registres, sauf CC, sont protégés.
CSRDON = [A004]
Met la cassette en marche.
CSRDON met la cassette en marche et passe en synchro de bits pour la lecture.
Conditions d'entrée
Aucune.
Conditions de sortie
FIRQ et IRO sont filtrés. U et Y sont protégés. Tous les autres sont modifiés.
GIVABF = [84F4]
Passe le paramètre au BASIC.
Conditions d'entrée
D
paramètre
=
Conditions de sortie
Variable USR
paramètre
=
INTCNV = [B3ED]
Passe le paramètre venant du BASIC.
Conditions d'entrée
Argument USR
paramètre
=
Conditions de sortie
D
paramètre
=
312
Sous-programmes de Mémoire morte (ROM)
JOYIN = [AOOA]
É chantillonne les potentiomètres des bâtons de commande.
JOYIN échantillonne les quatre potentiomètres des bâtons de commande et sto:::ke leurs valeurs
dans POTVAL à POTVAL +3.
de commande de gauche
15 A
Haut/bas
15 B
Droite/gauche
Bâton
de commande de droite
15 C
HauUb;:is
15 D
Droite/gauche
Bâton
Pour haut/bas, la valeur minimale est le haut.
Pour droite/gauche, la valeur minimale est la gauche.
Conditions d'entrée
Aucune.
Conditions de sortie
Y est protégé. Tous les autres sont modifiés.
POLCAT = [AOOO]
Interroge le clavier pour un caractère donné.
Conditions d'entrée
Aucune.
Conditions de sortie
Z
1, A
0 (si aucune touche n'est détectée).
Z
0, A
code de touche (si une touche est détectée).
B et x sont protégés. Tous les autres sont modifiés.
=
=
=
=
313
M ESSAG ES D' ERREU R DU
BASIC COU LE U R ÉTENDU
Abréviation / Explication
10
Division par zéro. La division par zéro est impossible, même pour un ordinateur.
AO Tentative d'ouverture d'un fichier déjà ouvert. Si vous pressez RESET pendant l'entréesortie
de cassette, ce message apparaît. Arrêtez l 'ordinateur et remettez-le en marche.
BS I ndice inférieur erroné. Les indices inférieurs d'un tableau sont en dehors de l'i ntervalle.
Par exemple, si vous avez A(12) dans votre programme sans qu'il soit précédé d'une ligne
DIM qui dimensionne le tableau A pour
1 2 éléments ou plus, cette erreur apparaît. Utilisez DIM pour déterminer le tableau.
CN Impossible de continuer. Si vous utilisez la commande CONT et si vous êtes à la fin du
programme ou dans un autre cas rendant impossible la poursuite du programme, cette erreur
apparaît.
DD Tentative de redimensionnement d'un tableau. Vous ne pouvez dimensionner un tableau
qu'une seule fois. Par exemple, vous ne pouvez pas avoir DIM A(1 2) et DIM A(50) dans l e
même programme.
DN Erreur de numéro de dispositif. Vous ne pouvez utiliser que trois n uméros de dispositif
avec OPEN, CLOSE PRINT ou INPUT-0, -1 ou 2 Une erreur apparaît si vous utilisez un
autre numéro.
-
.
DS I nstruction directe. Le fichier de données contient une instru<;lion directe. Cette erreur
peut se produire si vous essayez de charger (CLOAD) un fichier de données.
FC Appel de fonction interdite. Cette erreur se produit si vous utilisez un paramètre (nombre
ou variable) avec un not BASIC en dehors de l' intervalle. Par exemple, PLAY":" amène cette
erreur.
FD Données erronées de fichier. Cette e-reur se produit si vous imprimez (PRINT) des données
dans un fichier ou si vous entrez (INPUT) des données à partir du fichier, à 1'aide d'un type
erroné de variable pour les données correspondantes. Par exemple, I N PUT #-1 ,A amène cette
erreur si les données du fichier correspondent à une chaîne.
FM Mode erroné de fichier. Cette erreur se produit si vous essayez d' entrer (IN PUT) des
données à partir d'un fichier ouvert (OPEN) pour la sortie (OUTP UT)(O)) ou si vous imprimez
(PRINT) les données dans un fichier ouvert (OPEN) pour l' entrée (IN PUT(!)).
ID Instruction directe interdite. Vous pouvez, par exemple, utiliser INPUT comme ligne dans
le programme, mais pas comme ligne de commande.
HP Erreur d'impression à haute définition. Essai d' exécution d'une fonction de texte à haute
définition sur un écrar1 de texte à basse définition ou exécution d'une fonction de texte à basse
définition sur un écran de texte à haute définition.
HR Erreur de graphiques à haute définition. Essai d'exécution d'une instruction de graphiques
à haute définition sans avoir d'abord établi un écran à haute définition à l ' aide de l'1nstructon
HSCREEN.
31 5
Messages D 'erreur du BASIC Couleur Étendu
Entrée après l a fin d u fichier. Utilisez EOF pour déterminer si vous avez atteint l a fin du
fichier. Si c'est le cas, fermez-le (CLOSE).
IE
Erreur d'entréesortie. Cette erreur se produit souvent quand vous essayez d'entrer u n
programme ou un fichier de données à partir d'une mauvaise bande.
10
LS Chaîne trop longue. Une chaîne ne peut contenir que 255 caractères.
NF NEXT sans FOR. Vous utilisez NEXT sans instruction FOR. Cette erreur se produit aussi
quand vous inversez les lignes N EXT dans une boucle emboîtée.
NO Fichier non ouvert. Vous ne pouvez ni entrer ni sortir des données qu'après avoir ouvert
(OPEN) un fichier.
OO Fin des données. Une instruction READ a été exécutée avec une quantité insuffisante
de données (DATA) à lire. Une instruction DATA peut ne pas avoir été jointe au programme.
OM Fin de mémoire. Toute la mémoire disponible a été utilisée ou réservée.
OS Espace de fin de chaîne. Il n'y a pas assez de place en mémoire pour faire des
opérations avec chaîne. Vous pouvez peut-être effacer (CLEAR) davantage d'espace.
OV Dépassement de capacité. Le nombre est trop grand pour l'ordinateur. (ABS(X)> I E38)
RG RETURN sans GOSUB. L'ordinateur a trouvé une ligne RETURN qui n'est pas précédé
de GOSUB.
SN Erreur de syntaxe. Peut provenir d'une commande mal orthographiée, d'une ponctuation
incorrecte, de parenthèses ouvertes ou d'un caractère interdit. Retapez la ligne du programme
ou la commande.
ST Formule en chaîne trop complexe. Une opération en chaîne est trop complexe à
manipuler. Décoriposez-la en étapes plus courtes.
TM Erreur d'assortiment de type. Se produit si vous essayez d' attribuer des données
numériques à une variable en chaîne (A$= 3) ou des données en chaîne à une variable
numérique (A= "DATA").
UL Ligne non définie. Le programme contient une instruction GOTO, GOSUB ou une autre
ligne de branchement qui demande d'aller à un numéro de ligne n'existant pas.
316
CODES D ' ERRE U R
Code
D'erreur
Contenu
AO
18
Déjà ouvert
BS
8
I ndice incorrect
CN
16
Impossible de continuer
DO
9
Essai de redimensionnement d'un tableau
ON
19
Erreur de numéro de dispositif
os
24
Instruction directe
10
10
Division par zéro
FC
4
Appel de fonction interdite
FD
17
Mauvaises données de fichier
FM
21
Mauvais mode de fichier
HP
39
Erreur d'impression Hires
HA
38
Erreur de graphiques Hires
ID
11
Instruction directe interdite
IE
23
Entrée après la fin c'un fichier
10
20
Erreur d' entrée/sortie
LS
14
Chaîne trop longue
NF
0
NEXT sans FOR
NO
22
Fichier non ouvert
OO
3
Fin de données
OM
6
Fin de mémoire
os
13
Fin d' espace de chaîne
ov
5
Dépassement de capacité
AG
2
RETURN sans GOSUB
SN
Erreur de syntaxe
ST
15
Formule de chaîne trop complexe
TM
12
Erreur de concordance
UL
7
Ligne non définie
317
COfy1 MANDES, FONCTIONS ET
OPERATEURS DU BAS IC
Cette section résume chaque commande, fonction et opérateur_ du BASIC. Remarquez que
les couleurs que vcus spécifiez avec une commande ou fonction ont des significations
différentes avec chaque mode d'écran. (Voir "Couleurs du BASIC''.)
Commandes
Les commandes du BASIC imposent à votre ordinateur une certaine intervention, par exemple
de tracer un cercle sur l'écran.
ATTR c1,c2,B,U
Établit les attributs d'un écran de texte à haute définition.
Couleur de premier plan
et
Couleur de fond
c2
Clignotement du curseur en fonction
B
Soulignage en fonction
U
ATTR 1 , 0 , U
AUDIO interrupteur
Relie la sortie de cassette au haut-parleur de l 'écran vidéo ou la coupe.
ON Relie le son du lecteur de cassette au haut-parleur de l 'écran vidéo.
OFF Coupe le son du lecteur de cassette au haut-parleur de l' écran vidéo.
AUDIO OFF
CIRCLE (x,y),r,c,h ,s,e
Trace un cercle sur l'écran courant de graphiques à basse définition.
x,y
Centre
Rayon
r
c
Couleur
Rapport hauteur/largeur
h
Point de début
s
Point de fin
e
C I R C LE (65 , 43) , 20 , 1 , ,
•
5,
•
8
CLEAR n,h
Efface les variables, réserve de l'espace de chaîne et la mémoire haute poµr les
programmes en langage machine.
Longueur de l 'espace de chaîne
n
h
Adresse de mémoire BASIC la plus élevée
C L E A R 200 , 20000
CLOAD "nom de fichier"
Charge le nom de fichier du programme à partir d'une cassette. Si le nom de fichier n'est
pas spécifié, le BASIC charge le premier fichier de programme rencontré.
nom de fichier Nom du programme désiré. Peut avoir jusqu'à 8 caractères.
C LOAD "TOUTOUS"
319
Commandes, Fonctions et Opérateurs du BASIC
CLOADM "nom de fichier'',o
Charge le nom de fichier d'un programme en langage machine à partir d'une cassette.
Si le nom de fichier n' est pas spécifié, le BASIC charge le premier programme en langage
machine trouvé.
nom de fichier Nom du programme désiré en langage machine. Peut avoir jusqu'à
8 caractères.
Décalage d'adresse de mémoire. Si o est spécifié, le Bf\SIC charge
o
le programme en langage machine à o octets plus haut que la
normale en mémoire.
C LOA D M " G R A P H I Q U E S " , 2730
CLOSE# d
Ferme l'accès au dispositif ou fichier spécifié. Si vous ne spécifiez pas d, le BASIC ferme
tous les dispositifs et fichiers ouverts.
d N uméro du dispositif ou fichier
C LO S E #1
CLS c
Efface l 'écran de texte et donne la couleur spécifiée. En mode de texte à haute définition,
le BASIC établit aussi la couleur de fond. Si c n' est pas spécifié, le BASIC utilise la couleu·
courante de fond.
c
Code de couleur
C LS 2
COLOR c1, c2
Établit les couleurs de premier plan et de fond de l'écran courant de graphiques à basse
définition.
c 1 Code de couleur de premier plan
c2 Code de couleur de fond
CO LOR 2 , 3
CONT
Continue l'exécution du programme après que vous ayez pressé la touche tBREAK1 ou
utilisé une instruction STOP.
CONT
CSAVE "nom de fichier" ,A
Sauvegarde le nom de fichier d'un programme sur cassette.
nom de fichier Nom du programme à sauvegarder. Peut avoir jusqu'à 8 caractères.
À Choisit le format ASCI I .
C S A V E "NOM DE F I C H I E R " , A
CSAVEM ' ' nom de fichier' ' , 1 ,h,l,e
Sauvegarde le nom de fichier d'un programme en l an g age machine sur cassette .
nom de fichier Nom du programme en langage machine à sauvegarder. Peut avoir
jusqu'à 8 caractères.
I
Adresse la plus basse du programme en langage machine.
h
Adresse la plus haute du programme en langage machine.
e
Adresse d'exécution du programme en langa;ie machine.
C S A V E M " G R A P H I Q U E S " , 28000 , 29000 , 28032
DATA constante,constante, . . .
Stocke les constantes numériques et en chaîne à utiliser avec une instruction READ.
constante
Constante numérique ou en chaîne. comme 1 27.2985 ou "Chien".
D A T A 4 5 , " C H A T " , 9 8 , " C H I E N " , 2 4 . 3 , 1 0 00
320
Commandes, Fonctions et Opérateurs du BASIC
DEF FN nom (variables) = formule
Définit une fonction numérique.
nom
Nom de la fonction. Doit être un nom de variable valide.
variables Liste des variables utilisées dans la formule.
Définit l'opération.
formule
D E F F N A ( B ) =B* ( B+ ( 1 / B ) )
DEFUSR n = addr
Définit l'adresse de début d'un sous-programme en langage machine.
n
Numéro du sous-programme en langage machine.
addr Adresse de début du sous-programme en langage machine.
D E F U S R 0=28032
DEL 1 1 , 12
Supprime des lignes de programme.
1 1 Numéro de la ligne la plus basse à supprimer.
12 Numéro de la ligne la plus haute à supprimer.
11
Supprime 1 ligne.
-12
Supprime d u début d u programme jusqu'à l a ligne 12 comprise.
1 1Supprime de la ligne 1 1 comprise jusqu'à la fin du programme.
1 1- 12 Supprime de la ligne 1 1 à la ligne 12 comprises.
D E L 40-75
DIM tableau(longueur),tableau(longueur) ,. . .
Dimensionne un ou plusieurs tableaux.
D I M A$ (3 , 1 0 ) , R4 ( 2 2 )
DRAW chaîne
Trace u n trait sur l'écran courant de graphiques à basse définition comme le spécifie
la chaîne. Les commandes de chaîne sont:
Angle
A
BM
Déplacement vierge
C
Couleur
Vers le bas
D
E
Angle de 45 degrés
Angle de 1 35 degrés
F
Angle de 225° degrés
G
H
Angle de 315° degrés
Vers la gauche
L
M
Déplacement
Pas de mise à jour
N
R
Vers la droite
Échelle
S
U
Vers le haut
Exécution d'une sous-chaîne
X
DRAW "B M 1 2 8 , 9 6 ; U 2 5 ; R 2 5 ; 0 2 5 ; L25"
321
Commandes, Fonctions et Opérateurs du BASIC
EDIT numéro de ligne
Corrige une ligne de programme. Après avoir trouvé le numéro de ligne spécifié, EDIT
identifie plusieurs commandes
C
Change des caractères
D
Annule des caractères
Élimine le reste de la ligne et permet une insertion
H
1
I nsère des caractères
K
Enlève le reste de la ligne
L
Liste la ligne à éditer
S
Cherche u n caractère spécifié
Prolonge la ligne
X
CfilITffiCD Revient au mode de ligne
E D I T 4 1/J
END
Termine u n programme BASIC.
END
EXEC (address)
Transfère la commande à un programme en langage machine, à l'adresse spécifiée. Si
vous omettez l'adresse, la commande est transférée à l'adresse établie dans la dernière
CLOADM.
EXEC 28032
FOR variable = n 1 TO n2 STEP n3
Définit le début d'une boucle dont NEXT spécifie la fin.
variable Variable de compteur de boucle
n1
Valeur de débLt d u compteur
n2
Valeur de fin du compteur
n3
Valeur de progression ou de rég-ession du compteur
FOR Z=35 TO 1 2 5 S T E P 5
GET (sx,sy)-(ex,ey),&cf 2étableau,G
Stocke un rectangle, sur l'écran de graphiques à basse définition, dans un tableau pour
l'utilisation ultérieure avec PUT.
Premier point cu rectangle
sx.sy
ex,ey
Coin opposé du rectangle tableau Tableau bidimensionnel G Choisit le
stockage des détails du graphique. Requiert l' utilisation de PSET, PRESET,
AND, OR ou NOT avec GET.
GET ( 2 2 , 3 4 ) - ( 47 , 3 8 ) , M , G
GOSUB fine number
Appelle un sous-progamme commençant au numéro de ligne spécifié.
GOSUB 330
GOTO fine number
Branche à un numéro de ligne spécifié.
GOTO 1 2 5
HBUFF tampon,longueur
Réserve une zone en mémoire pour les graphicues à haute définition.
tampon Numéro du tampon choisi.
longueur Définit la longueur du tampon. Le BASIC permet un tampon de longueur
maximale de 793 1 .
H B U F F 1 , 65
322
Commandes, Fonctions et Opérateurs du BASIC
HCIRCLE (x,y),r,c, h,s,ee
Trace un cercle sur l'écran de graphiques à haute définition.
x,y
Centre
Rayon
r
c
Couleur
h
Rapport hauteur/largeur
s
Point de début
e
Point de fin
H C I R C LE (55 ,64) , 2 0 , 2 , 3 , . 4 , . 7
HCLS c
Efface l'écran de graphiques à haute définition et donne la couleur spécifiée.
Couleur
c
Sic n'est pas spécifiée, le BASIC utilise la couleur courante de fond.
H C LS 2
HCOLOR c1 ,c2
Établit les couleurs de premier plan et de fond sur l'écran de graphiques à haute définition.
c1
Couleur de premier plan
c2
Couleur de fond
H C OLOR 2 , 3
HDRAW chaine
Trace. sur l'écran rJP. oraphiques à haute définition, un trait spécifié par la chaîne. Les
commandes de chaîne sont:
A
Angle
BM Déplacement vierge
C
Couleur
D
Vers le bas
E
Angle de 45 degrés
F
Angle de 1 35 degrés
G
Angle de 225 degrés
H
Angle de 3 1 5 degrés
L
Vers la gauche
M
Déplacement
N
Pas de mise à jour
R
Vers la droite
Échelle
S
U
Vers le haut
X
Exécution d'une sous-chaîne
H D R AW "BM1 2 8 , 96; U 2 5 ; R 2 5 ; 025 ; L25"
HGET (sx,sy)-(ex,ey),tampon
Stocke un rectangle, sur l'écran ce graphiques à haute définition, dans un tampon
précédemment établi par la commande HBUFF pour utilisation ultérieure avec la
commande HPUT.
sx,sy
Premier coin du rectangle
ex,ey
Coin opposé du rectangle
tampon
Numéro du tampon.
HGET <21 ,32) - ( 28,3 7 ) , 1
323
Commandes, Fonctions et Opérateurs du BASIC
HLINE (x1 ,y1)-(x2,y2),c,a
Trace un trait sur l'écran de graphiques à haute définition.
x1 ,y1 Point de début de HUNE. Si vous omettez le point de début, remplacez la
virgule après x1 ,y1 par La ligne commence alors au dernier point de fin
ou au centre de l'écran.
x2,y2 Point de fin de HUNE.
Définit la couleur. PSET choisit la couleur courante de premier plan. PRESET
c
choisit la couleur courante de fond.
Création d'une case. Si vous omettez a, le BASIC trace un trait. Si vous utilisez
a
B, le BASIC trace une case avec les points de début et de fin comme coirs
opposés de la case. Si vous utilisez BF, le BASIC trace une case pleine.
·.
H L I N E ( 2 2 , 33 ) - ( 1 00 , 9 0 ) , 3 , B F
HPAINT (x,y),c1,c2
Peint une zone sur l'écran de graphiques à haute définition.
Point de début
x,y
Couleur de peinture
c1
Couleur de bordure
c2
H P A I N T ( 5 5 , 66 ) , 2 , 3
HPRINT (x,y),message
Imprime le message sur l 'écran de graphiques
Position de début
x,y
message
Chaîne à imprimer
à
haute définition.
H P R 1 NT ( 2 0 , 1 2 ) , "B 0 N J OU R ! "
HPUT (sx,sy)·(ex,ey),&c f2éb,a
Copie les graphiques d'un tampon dans un rectangle, sur l'écran de graphiques à haute
définition.
sx,sy Premier coin du rectangle.
ex,ey Coin opposé du rectangle.
Numéro du tampon
b
Intervention utilisée. Les interventions comprennent PSET, PRESET, AND,
a
OR et NOT
H P UT ( 2 2 , 3 3 ) - ( 2 8 , 3 7 ) , 1 , P S E T
HRESET (x,y)
Remet un point, sur l'écran de graphiques à haute définition, à la couleur de fond.
H R E SET ( 2 2 , 3 3 )
HSCREEN mode
Choisit un mode d'écran de graphiques à haute définition. Les modes 1 à 4 efface1t
aussi l'écran de graphiques à haute définition.
mode Numéro de mode. Les numéros de mode sont:
O
Basse définition
1 - 320x192, 4 couleurs
2 - 320x192, 1 6 couleurs
3 - 640x192, 2 couleurs
4 - 640x1 92, 4 couleurs
HSCREEN 4
-
HSET (x,y,c)
Fixe le point x,y sur l'écran de graphiques à haute définition à la couleur c. Si vous omettez
c, le BASIC utilise la couleur de premier plan.
HSET (22,33 ,2)
324
Commandes, Fonctions et Opérateurs du BASIC
HSTAT v1,v2,v3,v4e
Retourne l'information concernant le curseur d'écran de texte à haute définition aux
variables v1, v2, v3 et v4.
v1
Code de caractère
v2
Attribut de caractère
v3
Coordonnée X du curseur
v4
Coordonnée Y du curseur
H STAT C , A , X , Y
IF test THEN #1 ELSE #2
Exécute une vérification. Si elle est vraie, l'ordinateur exécute l'instr uction (111). Si el l e est
fausse, l'ordinate:..i r exécute l'instruction (#2).
I F A<N THEN PRINT "A<N" E L S E P R I N T "A>=N"
INPUT var1 ,var2, . . .
Lit les données du clavier et les sauvegarde dans une ou plusieurs variables.
I N P U T K3
INPUT #-1 var1,var2, . . .
Lit les données à partir d'une cassette et les sauvegarde dans une ou plusieurs variables.
I N P U T #-1 , C $
INSTR (p,s,t)
Cherche une chaîne. Donne la position d'une chaîne cible dans une chaîne cherchée.
Position de début de la recherche
p
Chaîne cherchée
s
t
Chaîne cible
I N S TR ( 1 , M 5 $ , " C HOUX")
LET
Attribue une valeur à une variable (facultative).
L E T A3=27
UNE
(x1,y1)-(x2,y2),c,ae
Trace un trait sur l'écran courant de graphiques à basse définition.
x1 ,y1
Point de début du trait. Si vous omettez le point de début, remplacez la
virgule après x1 ,y1 par Le trait commence alors au denier point de fin
ou au centre de l 'écran.
x2,y2
Point de tin du trait.
c Définit la couleur. PSET choisit la couleur courante de premier plan.
PRESET choisit la couleur courante de tond.
a
Création d'une case. Si vous omettez a, le BASIC trace un trait. Si vous utilisez
B, le BASIC trace une case avec les points de début et de tin comme points
opposés de la case. Si vous utilisez BF, le BASIC trace une case pleine.
·.
L I N E ( 2 2 , 3 3 ) - (27 ,39) , PSET, BF
UNE
INPUT
Lit les données à partir du clavier et les sauvegarde dans une variable. Les virgules sont
des caractères et non des séparateurs.
L I N E I NPUT A$
325
Commandes, Fonctions et Opérateurs du BASIC
LIST 11 , 12
Liste les lignes spécifiées ou le programme entier sur l'écran.
11 Numéro de ligne la plus basse à lister.
12 Numéro de ligne la plus haute à lister.
11
Liste 1 ligne.
-12
Liste du début du programme jusqu'à la ligne 12 comprise.
11Liste de la ligne 11 comprise à la fin du programme.
Liste de la ligne 11 à la ligne 12 comprises.
11-12
L I S T 20-45
LLIST 11-12
Liste les lignes précisées ou le programme entier sur l'imprimante.
11
Numéro de ligne la plus basse à lister.
12 Numéro de ligne la plus haute à lister.
11
Liste 1 ligne.
- 12
Liste du début du programme jusqu'à la ligne 12 comprise.
11Liste de la ligne 11 comprise à la fin du programme.
1 1 - 12
Liste de la ligne 11 à la ligne 12 comprises.
L L I S T-90
LOCATE x,y
Amène le curseur de l 'écran de texte à haute définition à la position
LOCATE 20 , 1 2
x,y.
LPOKE location, value
Stocke une valeur (0-255) dans une position de mémoire virtuelle (0-524287 en décimal
ou 0-$7FFFF en hexadécimal).
LPOKE 4801 2 6 , 241
MID$ (s,p, 1)
Remplace une partie du contenu de la variable de chaîne s par une autre chaîne.
s
Chaîne à modifier
Position de début dans la chaîne
p
I
Longueur de la section à modifier.
M I D $ (A$ , 4 , 3 ) ="C HAT"
MOTOR
Met le magnétocassette en marche ou l'arrête.
MOTOR ON
NEW
Efface le contenu de la mémoire.
NEW
NEXT v1,v2, . . .
Définit la fin d'une boucle FOR.
v1, v2
Noms de variables facultatives, utilisés pour les boucles emboîtées. Si vous
les utilisez, listez-les dans l'ordre inverse des variables FOR. Si vous les
omettez, ne définissez que la fin de la dernière boucle déclarée.
NEXT X , Y , Z
ON BRK GOTO numéro de lignee
Branche au numéro de ligne quand vous pressez la touche (BREAKl.
O N B R K G O TO 1 2 0
326
Commandes, Fonctions et Opérateurs du BASIC
ON ERR GOTO numéro de ligne
Branche au numéro de ligne en cas d'erreur.
ON E R R GOTO 1 2 0
ON. . .GOSUB
Branchement multiple à des sous-programmes spéc�iés.
ON A G O S U B 1 00 , 2 3 0 , 5 0 0 , 1 1 2 5
ON . . .GOTO
Branchement multiple à des lignes spécifiées.
ON A G O T O 1 0 0 , 2 3 0 , 5 0 0 , 1 1 2 5
OPEN m,#dev,f
Ouvre le fichier spécifié pour la transmission des données.
m
Mode de transmission
1
Entrée
0
Sortie
#dev
#-2
Imprimante
#-1
Magnétocassette
#0
Clavier ou écran
f
Nom du fichier
-
-
-
-
-
OPEN "0" , #-1 , " DATA"
PAINT (x,y),c1 ,c2
Peint une zone sur l'écran de graphiques à basse définition.
x,y
Point de début
Couleur de peinture
c1
c2
Couleur de bordure
P A I N T ( 44 , 5 5 ) , 2 , 3
PALETTE CMP ou RGB
Remet les registres de palette aux couleurs standard pour un écran couleur à signal
complet ou un téléviseur (PALETIE C M P) ou un écran vidéo à signal rouge/vert/bleu
(PALETIE RGB).
PA LETTE CMP
PALETTE pr, cc
Stocke le code de couleur cc (0-63) dans le registre de palette pr (0-1 5).
PALETTE 1 , 1 3
PCLEAR n
Réserve n nombre pages de mémoire de graphiques de 1 .5 K.
PC LEAR 4
PCLS c
Efface l'écran courant de graphiques à basse définition à l'aide de la couleur c. Si vous
omettez c, le BASIC utilise la couleur de fond.
PC L S 0
PCOPY s TO d
Copie des graph ques à basse dét nition de la page source à la page de destination.
Numéro de page source
s
Numéro de page de destination
d
P C O P Y 1 TO 2
327
Commandes, Fonctions et Opérateurs du BASIC
PLAY chaine
Reproduit la musique spécifiée par la
Notes
A-G
Longueur
L
0
Octave
Pause
P
T
Tempo
Dièse
#ou+
Bémol
chaÎne.
Les commandes de chaîne sont:
P L AY " L1 ; A ; A # ; A -"
PMODE mode,page
Choisit la définition et la première page de mémoire d'un écran de graphiques à basse
définition.
0 - 1 28 x 96 x 2 couleurs
mode
1 - 1 28 x 96 x 4 couleurs
2 - 1 28 x 1 92 x 2 couleurs
3 - 1 28 x 1 92 x 4 couleurs
4 - 256 x 1 92 x 2 couleurs
Si vous omettez le mode, le BASIC utilise la dernière valeur fixée. À la mise sous tension,
le BASIC utilise 2 .
Page de début. Si vous omettez la page, le BASIC utilise la page précédemment fixée.
page
À la mise sous tension, le BASIC utilise 1 .
PMODE 4, 1
POKE (position,valeur)
Stocke une valeur (0-255) dans une position de mémoire (0-65535 en décimal ou O-$FFFF
en hexadécimal).
POKE 28000 , 2 4 1
PRESET (x,y)
Remet un point de l'écran cou rant de graphiques à basse définition à la couleur de fond.
PRESET (22, 33)
PRINT messagee
Imprime sur les écrans de texte.
P R I N T " B ON J O U R ! "
PRINT #-1 ,données
Écrit des données sur cassette.
P R I NT #-1 , A $
PRINT #-2,données
Imprime sur l'imprimante.
P R I N T #-1 , " B O N J O U R I "
PRINT TAB(n)
Déplace le curseur à la colonne
n
P R I NT TAB(22) ; " BONJOUR 1 "
328
sur les écrans de texte à basse et haute définitio.1.
Commandes, Fonctions et Opérateurs du BASIC
PRINT USING"format";données
Imprime des nombres dans le format spécifié sur l'écran de texte. Les commandes de
format sont:
#
Numéros des formats.
Point décimal.
Imprime la virgule à la gauche de chaque tranche de trois caractères.
Remplit des espaces de tête d'astérisqu�s.
$
Imprime le signe du dollar en tête.
$$
Imprime le signe du dollar flottant.
+
Signe de tête ou de queue.
tttt
Format exponentiel.
Signe moins après les nombres négatifs.
Imprime le premier caractère d'une chaîne.
%espaces%Zone de chaîne. La longueur de zone correspond au nombre d'espaces
plus 2.
P R I NT U S I N G ## #### ; 1 / 3
**
1 1
.
1 1
PRINT @n,message
Imprime le message à la position n sur l'écran de texte à basse défi rition.
P R I N T @1 1 , " B O N J O U R ! "
PSET (x,y,c)
Établit le point x,y à la couleur c sur l 'écran de graphiques à basse défi nition. Si vous
omettez c, le BAS IC utilise la couleur de premier plan.
PSET <22 , 3 3 , 2 )
PUT (sx,sy)-(ex,ey),v,a
Copie les graph ques d'un tableau dans un rectangle sur l'écran de graphiques à basse
définition.
Premier coin du rectangle
sx.sy
Coi n opposé du rectangle
ex,ey
v
Tableau bidimensionnel
a
Intervention utilisée. Les interventions comprennent PSET, PRESET, AND,
OR et NOT.
PUT ( 2 2 , 3 3 ) - ( 2 7 , 3 9 ) , A , PSET
READ van ,var2, . . .
Lit l'article suivant dans la ligne DATA.
Sauvegarde les données dans les variables spécifiées.
READ A1 , B , C 7
REM commentaire
Permet d'i nsérer des commentaires dans une ligne de programme. L'ordinateur ig nore
les indications qui suivent REM.
REM VO I C I U N E L I G N E D E COMMENTA I R E
RENUM nouvelle ligne,ligne de début,degré
Permet de renuméroter des lignes de programme.
Nouvelle ligne de début
nouvelle ligne
Ancienne ligne de début
ligne de début
degré
Valeur de progression des lignes
RENUM 1 , 1 , 1 0
RESET (x,y)
Remet un point de l'écran de texte à basse définition à la couleur de fond.
RESET (22,33)
329
Commandes, Fonctions et Opérateurs du BASIC
RESTO RE
Ramène le pointeur de l 'ordina:eur au premier article de la première ligne DATA.
RESTORE
RETURN
Ramène l'ordinateur d'un sous-programme au mot BASIC qui suit GOSUB.
RETURN
RUN
Exécute un programme.
RUN
SCREEN type,couleurs
Choisit les modes d'écran à basse définition et les jeux de couleurs.
O
Texte
type
1
Graphiques
couleurs 0
Jeu de couleurs 0
Jeu de couleurs 1
1
-
-
-
-
SCREEN 0 , 1
SET (x,y,c)
Met le point x,y sur l'écran de texte à basse définition à la couleur c. Si vous omettez
c, le BASIC utilise la couleur de premier plan.
SET (1 1 , 1 1 , 3)
SKIPF nom de fichier
Saute au programme suivant sur la cassette ou à la fin d'un programme spécifié.
nom de fichier Nom facultatif du programme à sauter.
S K I P F " D ATA"
SOUND tonalité,durée
Produit la tonalité spécifiée pendant la durée spécifiée.
Fixe la hauteur du son de 1 à 255
tonalité
durée
Fixe la durée de 1 à 255
SOU N D 3 3 , 2 2
STOP
Arrête l 'exécution d'un programme.
STOP
TIMEA
n
Fixe la minuterie
"'
à n.
T IMER=120
TA OFF
Coupe le dépistage d'un programme.
TROF F
TRON
Met en fonction le dépistage d'un programme.
TRON
330
Commandes, Fonctions et Opérateurs du BASIC
WIDTH n
Fixe l'écran de texte à la définition n:
32 - 32x16 (texte à basse définition)
40 - 40x24 (texte à haute définition)
80 - 80x24 (texte à haute définition)
W I D T H 80
Fonctions
Les fonctions du BASIC se composent de sous-programmes incorporés qui exécutent certains
calculs avec les données, comme l'extraction de la racine carrée d'un nombre. Utilisez les
fonctions du BASIC comme données dans vos lignes de programme.
ABS (n)
Calcule la valeur ;:ihsolue
de n.
A=A B S ( B )
ASC(chaine)
Donne le code du premier caractère de la
chaîne.
A=A S C ( 8 $ )
ATN (n)
Donne l'arc tangente de
n
en radians.
A=AT N ( B / 3 )
BUTTON (n)
Donne 1 si vous pressez le bouton de commande du bâton n et 0 si vous ne le pressez
pas. n peut correspondre à:
0 - Bâton de commande de droite, bouton 1 {ancien bâton de commande)
1 - Bâton de commande de d roite, bouton 2
2 - Bâton de commande de gauche, bouton 1 (ancien bâton de commande)
3 - Bâton de commande de gauche. bouton 2
A ::; B U T T O N ( 0 )
CHR$ (n)
Donne le caractère correspondant au code de caractère
n.
A$=C HR$(65)
COS (angle)
Donne le cosinus d'un
angle
en radians.
A=COS (B)
EOF (d)
Donne FAUX (0) s'il y a d'autres données et VRAI (-1) si l'ordi nateur a l u la fin du fichier.
d Numéro de dispositif:
-1
Cassette
I F EOF (
-
1 ) =-1 T H E N 220
ERLIN
Donne le numéro de ligne BASIC ou une erreur s'est produite.
I F E R L I N = 1 1 0 T H EN 200
331
Commandes, Fonctions et Opérateurs du BASIC
ERNO
Donne le numéro d'erreur BASIC de l'erreur qui s'est produite.
I F ER N0=20 THEN C LO S E
EXP (n)
Donne l'exposant naturel d'un nombre (etn).
A=EXP ( B*1 . 1 5)
HEX$ (n)
Donne une cnaîne avec la valeur hexadécimale de
n.
PRINT HEX$ (A) ; "=";A
HPOINT (x,y)
Donne l 'information sur le point x,y de l'écran de graphiques à haute définition.
0
Point remis à l'état initial.
Code Point établi.
I F POINT C 2 2 , 3 3 ) = 0 T H E N 200
INKEY$
Vérifie le clavier et retourne la touche pressée ou, si vous n'avez pas pressé de touche,
donne une chaîne vide ( ).
""
A$= I N K E Y $
INT (n)
Convertit
n
en valeur entière.
A=INT C B + . 5 )
JOYSTK (/)
Donne la coordonnée horizontae ou verticale (j) du bâton de commande de gauche ou
de droite:
o
Horizontale, bâton de commande de gauche
1 - Verticale, bâton de commande de gauche
2 - Horizontale, bâton de commande de droite
3 - Verticale, bâton de commande de droite
-
A=JOYSTK ( 0 )
LEN (string)
Donne la longueur de la
chaîne.
A=LEN CB$)
LOG (n)
Donne le logarithme naturel de n.
A = LO G C B / 2 )
LPEEK (position de mémoire)
Retourne le contenu d'une position de mémoire virtuelle (0-524287 en décimal ou 0-$7FFFF
en hexadécimal).
A = LP E E K C &H7 F F F 0 )
MEM
Indique l'espace de mémoire libre.
A=MEM
332
Commandes, Fonctions et Opérateurs du BASIC
MID$ (s,p, 1)
Donne une sous-chaîne de la chaîne s.
Chaîne source
s
Position de début de la sous-chaîne
p
I
Longueur de la sous-chaîne
A$= M I D $ ( 8$ , Z , 2 )
PEEK (position de mémoire)
Retourne le contenu d'une position de mémoire (0-65535 en décimal ou 0-&HFFFF en
hexadécimal).
A=PEEK C30020)
POINT (x,y)
Donne l'information sur le point x,y de l'écran de texte à basse définition.
Le point fait partie d'un caractère alphanumérique.
-1
Le point est remis à l'état initial.
0
Code Le point est établi.
A = PO I N T C 2 2 , 3 3 )
POS (dev)
Donne la position courante d'impression.
dev
Numéro du dispositif d'impression:
0 - Écran
-2
Imprimante
-
A=POS ( 0 )
PPOINT (x,y)
Donne l' information sur le point x,y de l'écran de graphiques à basse définition.
Le point est remis à l'état initial.
0
Code
Le point est établi.
A=PPO I N T C 2 2 , 3 3 )
RIGHT$ (cha1ne,longueur)
Donne la partie de droite d'une chaîne. La longueur spécifie le nombre de caractères
retournés.
A$=RI GHT$ ( 8 $ , 4 )
AND (n)
Crée un nombre au hasard entre 1 et n si n
A = R N D ( 0)
1
ou ertre O et 1 si n =0.
SGN (n)
Donne le signe de n.
-1
Négatif
0-0
1
Positii
-
-
A=S G N ( A + . 1 >
SIN (angle)
Donne le sinus de l'angle en radians.
A=S I N ( B / 3 . 1 41 5 9 )
333
Commandes, Fonctions et Opérateurs du BASIC
STRING$ ( 1 ,c)
Donne une chaîne d'un caractère répété.
1
Longueur de chaîne
Caractère utilisé. Peut être un code ou une chaîne.
c
A$=STR I NG $ ( 2 2 , "A")
STR$ (n)
Convertit n en chaîne.
A $ = ( 1 . 23 4 )
SOR (n)
Donne la racine carrée de n.
A=S Q R ( B / 2 )
TAN (angle)
Donne la tangente de l'angle en radians.
A=TAN ( B )
TIMER
Donne le contenu de la minuterie (0-65535).
A =T I M E R / 1 8
USRn (argument)
Appelle le sous-programme en langage machine n, lui passe un argument et donne une
valeur pour le sous-programme au programme BASIC.
A=USR O C B )
VAL (chaîne)
Convertit une chaîne en nombre.
A=VA L ( " 1 . 23 " )
VARPTR (variable)
Donne un pointeur où une variable est placée en mémoire.
A = V A R PTR ( B )
334
Commandes, Fonctions et Opérateurs du BASIC
OPÉRATEURS
Les opérnteurs du BASIC exécutent certaines opérations sur les données, par exemple l'addition
de deux nombres.
Élévation à une puissance
CD
Signe négatif ou positif unaire
+
•
,
Multiplication, division
I
+ ' -
Addition et concaténation, soustraction
NOT, AND, OR
Opérateurs logiques
< , > , = , <= , > =
t
<>
Vérifications de relations
335
MODALITE:$ DE: V E:NTE ET AUTORISATION RELATIVES
L"ËQUIPEMENT ET AU LO GIC IE L DE
MIN I-ORDINATEURS TANDY ACHETËS DANS UN CENTRE DE VENTE AUTORISË DE
"11 Nl -OR DIN AT EURS OU UN MAGASIN DE DËTAIL POSSËDËS PAR RADIO SHACK OU À UN POINT
VENTE AUTORISË D"UN DËTAILLANT OU DËTENTEUR DE RADIO SHACK
DE
GARANTIE LIMITÉE
OBLIGATIONS OU CLIENT
A
B
Il.
Le CLIENT assume l'entière responsabilité de la conformité du présent matériel de mini-ordinateurs
Radio Shack (l"'équ1pemenf') acheté et de toutes copies du logiciel Ra·:jio Shack faisant partie de
l 'équ ipement ou ccuvertes par une license d1slmcte. (le "log iciel" } à l a fiche tec hn1Que. a la capac1tè.à
la facilité d'adaptation et aux autres exigences dudit CLIENT
_
Le CLIENT assume l'entière responsabilité du bon état et de l'eff1cac1té du milieu dans lequel
l'équipement et le log1c1el doivent fonctionner et de leur mstallation
GARANTIES LIMITÉES ET MODALITÉS DE VENTE RADIO SHACK
A
Pendant quatre-vingt-dix (90) jours c1vrlsà compterde la date du document devente Rad10 Shack reçu
à l'achat de l'équipement. Radio Shack garantit au CLIENT 1n1ttal oue !"équipement et le support sur
lequel le 1og1c1el est emmagasiné sont exempts de vices de fabrica11on CETTE GARANTIE NE
S'APPLIQUE QU'AUX ACHATS D"l':QUIPEMENT TANDY EFFECTUÉS PAR LE CLIENT INITIAL
DANS DES CENTRES DE VENTE AUTORISË DE MINI-ORDINATEURS OU DES MAGASINS DE
DÉTAIL POSSÉD�S PAR RADIO SHACK OUA DES POINTS DE VENTE AUTORISÉS DE DÉTAIL­
LANTS RADIO SHACK. La garantie est nulle si Je boitier ou lecoffret de l'équipement a été ouvert ou s1
8
C
D
l'équipement ou le l og 1c1e' ont été soumis â un usage abusif En cas de découverte d'un vice de
fabricahon au cours de la penode de garantie stipulée. retourner l'équipement défectuelJ'X à un centre
de vente autorisé de mini-ordi nateurs Radio Shack . un magasi n de détail Radio Shack. 3 un déta illant
part1c1pant de Radio Shack aux fins de réparation, accompagné d'un exemplaire du doc�Jment de
ve nte ou du cont ratde location Le recours unicueetexclus1f d u CLI ENT 1nihalencasdev1ce sel1m1teâ
la rectification du vice par réparation . remplacement ou remboursement du prix d'achatau gré et aux
seuls frais de RAD 0 SHACK RADIO SHACK n'assume aucune obllgat1::m de remplacement ou de
réparation des p1èces soumises a l'usure normale
RADIO SHACK n'accorde aucune garantie Quant à la conceptio n . la capG.c1té . ou l'apt11ude à f'usage
du loqic1el sous rés�rve des st1 pulati ons du pr�P.nl n�r�n raphe Lg log1c1e est délivré "COM METEL".
sans qarant1e Le recours e)(clus1f du CLIENT 1n1t1al en cas de vice de labr1cat1on du logiciel se l1m1tea
sa réparation ou son remplacement dans les tr�nte (30) 1ours civils à camper de la date du dOCl1ment
de 11ente de Radio Shack reçu â l'octroi de la licence du log1c1el Le logiciel défectueux doit être
retourné à un centre de vente autorisé de m1rn-ord1nateurs ou magasin de déla1I Radio Shack à un
déraillant part1c1pant de Radio Shack accompagné du document de vent-3
Sous réserve des s:1putat1ons des présentes nul employé, agent. détaillant ou autre n'est autorisé â
donner une garantie quelconque de quelque nature que ce soit au nom de RADIO SHACK
SOUS RÉSERVE DES STIPULATIONS DES PRÉSENTES, RADIO SHACK N'ACCORDE AUCUNE
GARANTIE. Y COMPRIS DES GARANTIES QUANT À LAVALEUR MARCHANDE OU À L'APTITUDE
À UN USAGE PARTICULIER EST LIMITÉE À LA DURÉE DUDIT GARANTI.
Ill. LIMITÉ DE RESPONSABILITÉ
A. SOUS RÉSERVE DES STIPULATI ONS DES PRÉSENTES. RADIO SHACK Dl':CLINE TOUTE
RESPONSABILITE ENVERS LE CLIENT ET ENVERS TOUTE AUTRE PERSONNE OU ENTITÉ
CONCERNANT TOUTE OBLIGATION, TOUTE PERTE OU TOUT DOMMAGE CAUSÉS OU PRÉ­
TENDUMENT CAUSÉS DIRECTEMENT OU INDIRECTEMENT PAR L''"l':QUIPEMENT'" OU LE
'"LOGICIEL.. VENDUS. AUTORISÉS OU FOURNIS PAR RADIO SHACK. ENTRE AUTRES TOUTE
INTERRUPTI ON DE SERVI CE, TO UTE PERTE DE REVENU OU DE BÉNÉFICESPRËVUS OU TOUT
DOMMAGE INDIRECT RÉSULTANT DE L"UTILISATION OU DE L"EXPLOITATION DUDIT
'"ÉQUIPEMENT'" OU DUDIT '"LOGICIEL'", RADIO SHACK N'EST EN AUCUN CAS RESPONSABLE
DE LA PERTE DE BÉNÉFICES OU DES DOMMAGES INDIRECTS ET SPÉCIAUX OU AUTRES
DÉCOULANT DE TOUTE INFRACTION À LA PRl':SENTE GARANTIE OU LIÉS D'UNE FAÇON
QUELCONQUE À LA VENTE, LA LOCATION, LA LICENCE. L'USAGE OU L"USAGf PRËVU DE
L"'ÉOUIPEMENr' OU DU '"LOGICIEL". NONOBSTANT LES RESTRICTIONS ET GARANTIES
SUSMENTIONNÉES, LA RESPONSABILITÉ DE RADIO SHACK EN MATl�RE DE DOMMAGES
SUBIS PAR LE CLIENT OU PAR DES TIERS SE LIMITE À LA SOMME PAYÉE PAR LE CLIENT POUR
.
L'""ÉQUIPEMENr· OU LE ..LOGICIEL . EN QUESTION.
B
RADIO SHACK dégage toute responsabilité quant au)( dommages éventuels causés par un retard
C
dans la livraison de l'équipement et (ou) du log1c1el
Nulle poursuite en 1ust1ce découlant d'une crétendue v1olatton de la présente garantie ou de
transactions en vertu de la présente garantie ne peut être enlamée après la première des dates
su ivantes. soi t plus de de ux 12) années après la survena nce des faits motrvan t la po ursui te. soit pl us de
Quatre (4) années après la date du document de vente de Radio Shack relatif à l'équipement OL1 au
1091c1el
IV. LICENCE DE LOGICIEL RADIO SHACK
V.
RADIO SHACK accorde au CLIENT une hcence acquittée, non excl usive. d'ut11tsatron. sur un seul
ordinateur, du 1og1c1el TANOY sous réserve des d1spos1t1ons sUJvantes
A
Sous réserve des stipulations contraires dans la présente licence de logiciel les lois en vigueur
réQ1ssant le droit d'2uteur s'appli(l11Pnt : w looiciel
8
La· propriété du support d'enregistrement du log1c1el {cassette ou m1niC1�que) ou de mémorisation
(mémoire morte ROM) du log1c1el est transférée au CLIENT mais non le droit de propriété sur le
logiciel
Le CLI ENT pe ut utiliser le 1091c1er avec un ord inateur central et y accéder à l'aide d'un ou de pl usieurs
C
termrnaux s 1 le logiciel le permet
0
Le CLIENT ne doit utili ser, fabriquer ou reproduire des copies du logiciel que pour les utiliser sur un
seul ordinateur conformément aux stipulations précisées dans cette licence de log1c1el I l est
expressément interdit au chent de démonter le 1091c1el
E Le CL I ENT n'a la permission de farre d'autres copies du log1c1el Qu'â des fins de sauvegarde et
d'archive ou s1 l'explc>1tat1on d'un seul ord1nateu · avec le logicielexige d'autres copies. maisseulement
da ns la mesure où le logiciel permet f a réal isationd'une copiede sauvegarde Toutefois . dans le cas du
log1c1el TRS OOS le CL 1 ENT a la permissi on defaire un nombre limité decop1essuppJémentalres pou r
son propre usage
F
Le CLI ENT peut revend re ol..distnbuer descopi�s non modifiées du log1c1el pourvu Quïl a1tachetéune
copie du log1c1el pour chacune de celles qui sont vendues ou distribuées Les dispositions de la
présente licence de log1c1e! s'appliquent auss1 <iux Hers recevant du CLIENT lesdites copies du
1og1cie1
G Toutes les copies du logiciel doivent reproduire l'avisde droit d'auteur
APPLICABILITÉ DE LA GARANTIE
A
B
Les modalités de la présente garantie s'apphQu-3'nt aux relations entre RADIO SHACK et le CLIENT.
qu'il s'agisse de l a vente de l'équipement et (ou) 1e l'octroi au CU ENT de la hcencede logiciel ou d'une
opération en vertu de laquelle RADIO SHACK \lend ou cède ledit équi pement à un tiers à des fins de
location au CLIENT
Les restnct1ons de responsabi lité et d ispositions de garantie en vertu des présentessontdans l'intérêt
é
o
u
et
(ou ) de la personne l'ayant autori�P. P.t de
��1� �����
��· ���� g�� �
?;u�����:n��;��'�:�: v
VI. DROITS DËCOULANT DES LOIS D'UNE PROVINCE
Les garanties accordées oar les présentes donnent auCLIENT initial des droits déterminés et ilse peut que
celul-cl jouisse d'autres droits qui varient d'une province à l'autre
">
Lien public mis à jour
Le lien public vers votre chat a été mis à jour.
Caractéristiques clés
- Dessiner des images détaillées avec des milliers de positions d'écran
- Colorier des images en turquoise, indigo, violet et autres couleurs éclatantes
- Créer des effets spéciaux en mélangeant texte et graphiques haute définition
- Détecter les problèmes, comme une pression sur une mauvaise touche
- Utilisation de la commande PALETTE RGB pour écran RGB
Questions fréquemment posées
Utilisez la commande CLS suivie d'un nombre de 0 à 8 pour effacer l'écran et afficher la couleur correspondante. Par exemple, CLS4 affichera un écran rouge sur un écran CMP.
Utilisez la commande SOUND suivie de deux nombres entre 1 et 255. Le premier nombre spécifie la tonalité, et le second la durée. Par exemple, SOUND 128, 10 produira une tonalité pendant 6/10 de seconde.
Utilisez des lettres (A à Z) pour nommer des variables numériques. Utilisez des lettres avec un signe dollar (A$ à Z$) pour nommer des variables en chaîne. Utilisez la commande LET variable = valeur ou variable = valeur pour stocker l'information dans la variable.