Des Mots, Des Mots, Des Mots...

GW-BASIC  (PC-BASIC)
Initiation au langage Basic

Une grande compétence de l'ordinateur est son don avec les mots, il peut inlassablement tordre et combiner les mots comme vous le souhaitez. Avec ce cadeau, vous pouvez l'amener à lire, écrire et même parler.

Combiner des mots

Tapez et exécutez ce programme :

5 CLS
10 PRINT "TAPEZ UNE PHRASE"
20 INPUT S$
30 PRINT "VOTRE PHRASE A" LEN(S$) " CHARACTERES"
40 INPUT "ENTREZ OUI POUR UNE AUTRE PHRASE" ; A$
50 IF A$="OUI" THEN 10

Impressionné ? LEN(S$) calcule la longueur de la chaîne S$, votre phrase. L'ordinateur compte chaque caractère de la phrase, y compris les espaces et les signes de ponctuation.

Effacez le programme et exécutez ceci, qui compose un poème (en quelque sorte):

5 CLS
10 A$ = "Une Rose"
20 B$ = " "
30 C$ = "C'est une Rose"
40 D$ = B$ + C$
50 E$ = "Et ainsi de suite"
60 F$ =  A$ + D$ + D$ + B$ + E$
70 PRINT F$

Ici, le signe plus (+) combine des chaînes. Par exemple, D$ ("EST UNE ROSE") est une combinaison de B$ + C$.

Vous pouvez rencontrer deux problèmes lors de la combinaison de chaînes. Ajoutez la ligne suivante et exécutez le programme. Cela montre les deux problèmes:

80 G$ = F$ + F$ + F$ + F$ + F$ + F$ + F$

Lorsque l'ordinateur arrive à la ligne 80, il affiche le premier problème avec cette ligne :

String too long in 80  

Au démarrage, l'ordinateur ne réserve que 200 caractères d'espace pour travailler avec des chaînes. La ligne 80 lui demande de travailler avec 343 caractères. Pour réserver de la place pour autant de caractères et plus (jusqu'à 500), ajoutez cette ligne au début du programme et exécutez :

1 CLEAR 500

Maintenant, lorsque l'ordinateur arrive à Line 80, il dispose de suffisamment d'espace de chaîne, mais affiche le deuxième problème avec cette ligne : String too long in 80.

Une chaîne ne peut pas contenir plus de 255 caractères. Lorsque vous stockez plus de 255 caractères, vous devez placer ces caractères dans plusieurs chaînes.

Mots tordus

Maintenant que vous pouvez combiner des chaînes, essayez de séparer une chaîne.

Tapez et exécutez ce programme :

1 CLS
10 INPUT "Tapez un mot" ; W$
20 PRINT "La première lettre est : "LEFT$ (W$,1)
30 PRINT "Les 2 dernières lettres sont : " RIGHT$ (W$,2)
40 GOTO 10

Voici comment fonctionne le programme :

À la ligne 10 vous entrez un mot. On assume que le mot est MACHINE:

Aux lignes 20 et 30, l'ordinateur calcule la première lettre de gauche et les deux dernières lettres de droite de la chaîne :

          MACHINE

LEFT$ (W$,1)     RIGHT$ (W$ ,2)

Exécutez le programme plusieurs fois pour voir comment cela fonctionne.

Ajoutez maintenant cette ligne au programme :

5 CLEAR 500

Afin que votre ordinateur réserve suffisamment d'espace pour travailler avec des chaînes. Exécutez à nouveau le programme. Cette fois, saisissez une phrase plutôt qu'un mot.

EXERCICE DE PROGRAMMATION

Comment changeriez-vous les lignes 20 et 30 pour que l'ordinateur vous donne les 5 premières lettres et les 6 dernières lettres de votre chaîne ?

20 _____

30 _____

Réponses:

20 PRINT "Les cinq premières lettres sont :" LEFT$ (W$ ,5)

30 PRINT "Les six dernières lettres sont :" RIGHT$ (W$,6)

Effacez votre programme et tapez celui-ci : (Rappelez-vous comment effacer un programme ? Taper: NEW)

5 CLS
10 CLEAR 500
20 INPUT "TAPEZ UNE PHRASE" ; S$
30 PRINT "TAPEZ UN NUMERO DE 1 A " LEN(S$)
40 INPUT X
50 PRINT "LA CHAINE COMMENCE AVEC LE CARACTERE" X
60 PRINT "TAPEZ UN NUMERO DE 1 A " LEN(S$) - X + 1
70 INPUT Y
80 PRINT "LA CHAINE SERA" Y "CARACTERES DE LONG"
80 PRINT "LA CHAINE EST:" MID$(S$,X,Y)
100 GOTO 20

Exécutez ce programme plusieurs fois pour voir si vous pouvez en déduire le fonctionnement de MID$.

Voici comment fonctionne le programme :

À la ligne 20, supposons que vous saisissiez ICI UNE CHAINE :

À la ligne 30, l'ordinateur calcule d'abord la longueur de S$, qui est de 14 caractères. Il vous demande ensuite de choisir un nombre de 1 à 14. Supposons que vous choisissiez 5.

A la ligne 60, l'ordinateur vous demande de choisir un autre nombre de 1 à 10 (14-5 + 1).

Supposons que vous choisissiez 4.

À la ligne 90, l'ordinateur vous donne une "chaîne médiane" de S$ qui commence au 6e caractère et comporte quatre caractères :

1 2 3 4 5 6 7 8 9 10 11 12 13 14
I C I    U N E    C H  A   I   N   E
           ← 4  →

MID$(S$,6,4)

Pour un autre exemple de MID, effacez le programme et exécutez ceci :

5 CLS
10 INPUT "TAPEZ UNE PHRASE " ; S$
20 INPUT "TAPEZ UN MOT DANS LA PHRASE " ; W$
30 L = LEN (W$)
40 FOR X = 1 TO LEN(S$)
50 IF MID$(S$,X ,L) = W$ THEN 90
60 NEXT X
70 PRINT "VOTRE MOT N'EST PAS DANS LA PHRASE"
80 END
90 PRINT W$ " --COMMENCE AU CARACTERE NO. " X

Vous pouvez utiliser ce type de programme pour trier les informations.

Par exemple, en séparant les chaînes, vous pouvez parcourir une liste de diffusion pour les adresses.

Voici comment fonctionne le programme :

À la ligne 20, supposons que vous saisissiez le mot UNE pour W$. A la ligne 30, l'ordinateur compte la longueur de W$ : 3 caractères.

Aux lignes 40 à 90 (la boucle FOR/NEXT), l'ordinateur compte chaque caractère de S$, en commençant par le caractère 1 et en terminant par le caractère LEN(S$), qui est 14.

Chaque fois que l'ordinateur compte un nouveau caractère, il regarde un nouveau le milieu de chaîne. Chaque chaîne médiane commence au caractère X et a une longueur de L(3) caractères.

Par exemple, lorsque X est égal à 1, l'ordinateur regarde cette chaîne médiane :

1 2 3 4 5 6 7 8 9 10 11 12 13 14
I C I    U N E    C H  A   I   N   E
←2

MID$(S$,1,2)

La quatrième fois dans la boucle, lorsque X est égal à 4, l'ordinateur regarde cette chaîne médiane :

1 2 3 4 5 6 7 8 9 10 11 12 13 14
I C I    U N E    C H  A   I   N   E
        ←4

MID$(S$,4,2)

Lorsque X est égal à 5, l'ordinateur trouve finalement UNE, la chaîne intermédiaire qu'il recherche.

Programme faites-le vous même

Commencez le programme avec:

10 A$ = "CHANGER UNE PHRASE."

Ajoutez une ligne qui insère ceci au début de A$ :

C'EST FACILE DE

Ajoutez une autre ligne qui affiche la nouvelle phrase :

C'EST FACILE DE CHANGER UNE PHRASE

Voici notre programme :

5 CLS
10 A$ = "MODIFIER UNE PHRASE."
20 B$ = "C'EST FACILE DE"
30 C$ = B$ + " " + A$
40 PRINT C$

Programme faites-le vous même

Ajoutez au programme ci-dessus pour faire:

Trouvez le début de:

UNE PHRASE

Supprimez la sous-chaîne ci-dessus pour former cette nouvelle chaîne :

C'EST FACILE DE CHANGER

Ajoutez ces mots à la fin:

TOUT CE QUE TU VEUX

Affichez la chaîne nouvellement formée :

IL EST FACILE DE CHANGER TOUT CE QUE VOUS VOULEZ

ASTUCE : Pour former la chaîne IL EST FACILE DE CHANGER, vous devez obtenir la partie gauche de la chaîne IL EST FACILE DE CHANGER UNE PHRASE.

Ce programme est la base d'un programme de "traitement de texte", un programme populaire qui réduit les dépenses de dactylographie.

Réponse:

5 CLS
10 A$ = "MODIFIER UNE PHRASE."
20 B$ = "C'EST FACILE DE"
30 C$ = B$ + " " + A$
40 PRINT C$
50 Y = LEN ("A SENTENCE")
60 FOR X =1 TO LEN(C$)
70 IF MID$(C$,X ,Y) = "UNE PHRASE" THEN 90
80 NEXT X
85 END
90 D$ = LEFT$ (C$ ,X - 1)
100 E$ = D$ + "TOUT CE QUE VOUS VOULEZ"
110 PRINT E$

Programme faites-le vous même

Écrivez un programme qui :

 Vous demande de saisir une phrase.

Vous demande de saisir

(1) une expression dans la phrase à supprimer et

(2) une expression pour la remplacer.

Affiche la phrase modifiée.

Cela peut prendre un certain temps, mais vous avez tout ce dont vous avez besoin pour l'écrire.

5 CLS
10 PRINT "TAPEZ UNE PHRASE :"
15 INPUT S$
20 PRINT "TAPEZ UNE PHRASE A SUPPRIMER"
23 INPUT D$
25 L = LEN(D$)
30 PRINT "TAPEZ UNE PHRASE DE REMPLACEMENT"
35 INPUT R$
40 FOR X = 1 TO LEN(S$)
50 IF MID$(S$,X,L) = D$ THEN 100
60 NEXT X
70 PRINT D$ " N'EST PAS DANS VOTRE PHRASE"
80 GOTO 20
100 E = X - 1 + LEN (D$)
110 NF$ = LEFT$(S$,X-1) + R$ + RIGHT$(S$,LEN(S$) - E)
120 PRINT "LA NOUVELLE PHRASE EST :"
130 PRINT NF$

 

 

 

 

 

 

 

Recherche personnalisée