Arithmétique

GW-BASIC  (PC-BASIC)

Initiation au langage Basic

Résoudre rapidement et avec précision de longs problèmes mathématiques est une tâche que votre ordinateur accomplit facilement. Avant de taper des formules longues et difficiles, cependant, il y a quelques raccourcis que vous voudrez utiliser.

Un moyen simple de gérer des formules mathématiques compliquées consiste à utiliser des "sous-routines",

Tapez et exécutez ce programme :

10 PRINT "EXECUTION DU PROGRAMME PRINCIPAL"
20 GOSUB 500
30 PRINT "MAINTENANT DE RETOUR DANS LE PROGRAMME PRINCIPAL"
40 END
500 PRINT "EXECUTION DU SOUS-PROGRAMME"
510 RETURN

AX(BY + C) - D + E(G/W) - F

GOSUB 500 indique à l'ordinateur d'aller au sous-programme qui commence à la ligne 500.

RETURN indique à l'ordinateur de renvoyer au mot BASIC qui suit immédiatement GOSUB.

Supprimez la ligne 40 et voyez ce qui se passe lorsque vous exécutez le programme.

Si vous l'avez fait, votre écran affiche :

EXECUTION DU PROGRAMME PRINCIPAL
EXECUTION DU SOUS-PROGRAMME
MAINTENANT DE RETOUR DANS LE PROGRAMME PRINCIPAL
EXECUTION DU SOUS-PROGRAMME
RETURN without GOSUB in 510 

Voyez-vous pourquoi la suppression de END à la ligne 40 provoque cette erreur ?

Au début, le programme fonctionne comme avant. Il passe au sous-programme de la ligne 500 puis revient à la ligne PRINT qui suit immédiatement GOSUB.

Ensuite, puisque vous avez supprimé FIN, il passe à la ligne suivante - le sous-programme de la ligne 500. Cette fois, cependant, il ne sait pas où retourner. C'est parce qu'il ne fait que "passer" dans le sous-programme ; il n'est pas envoyé au sous-programme par une ligne GOSUB.

Ce sous-programme élève un nombre à n'importe quelle puissance :

5 CLS
10 INPUT "TAPEZ UN NOMBRE "; N
20 INPUT "TAPEZ LA PUISSANCE A LAQUELLE VOUS VOULEZ L'AUGMENTER "; P
30 GOSUB 2000
40 PRINT: PRINT N "A LA PUISSANCE" P "EST" E
50 GOTO 10
2000 REM FORMULE POUR ELEVER UN NOMBRE A LA PUISSANCE A
2010 E = 1
2020 FOR X = 1 TO P
2030 E = E * N
2040 NEXT X
2050 IF P = 0 THEN E = 1
2060 RETURN

Avec GW-Basic vous pouvez utiliser des minuscules qui prend en charge les accents en minuscules.

5 CLS
10 INPUT "Tapez un nombre  "; N
20 INPUT "Tapez la puissance à laquelle vous voulez l'augmenter "; P
30 GOSUB 2000
40 PRINT: PRINT N "à la puissance " P "est" E
50 GOTO 10
2000 REM Formule pour élever un nombre à la puissance A
2010 E = 1
2020 FOR X = 1 TO P
2030 E = E * N
2040 NEXT X
2050 IF P = 0 THEN E = 1
2060 RETURN

Sont également introduits dans ce programme :

Les deux-points (:), à la ligne 40.

Vous pouvez combiner des lignes de programme en utilisant les deux-points pour les séparer. La ligne 40 contient les deux lignes :

PRINT et PRINT N "à la puissance " P "est" E

REM, dans Line 2000. REM ne signifie rien pour l'ordinateur. Placez les lignes REM où vous voulez dans votre programme pour vous aider à vous souvenir de ce que fait le programme ; ils ne font aucune différence dans le fonctionnement du programme.

Pour voir par vous-même, ajoutez ces lignes et exécutez le programme :

5 REM CECI EST UN PROGRAMME PARTICULIER,
17 REM CETTE LIGNE CHANGERA-T-ELLE LE PROGRAMME?
45 REM La ligne suivante garde le sous-programme séparé

Vous pouvez aussi utiliser ' à la place de REM pour insérer des commentaires.

Essayez ceci:

50 GOTO 10 REM Retour à la ligne 10

50 GOTO 10 ' Retour à la ligne 10

Programme faites-le vous même

Modifiez le programme ci-dessus pour que l'ordinateur imprime un tableau de carrés (un nombre à la puissance 2) pour les nombres, disons, de 2 à 10.

5 CLS
7 PRINT "Table des carrés "
8 PRINT
10 P = 2
20 FOR N = 2 TO 10
25 GOSUB 2000
30 PRINT N "*" N "=" E,
40 NEXT N
50 END
2000 REM  Formule pour élever un nombre à la puissance A
2010 E=1
2020 FOR X = 1 TO P
2030 E = E * N
2040 NEXT X
2050 IF P = 0 THEN E = 1
2060 RETURN

Donnez un peu d'aide à l'ordinateur

À mesure que les formules mathématiques deviennent plus complexes, votre ordinateur a besoin d'aide pour les comprendre.

Par exemple, que se passe-t-il si vous voulez que l'ordinateur résolve ce problème :

Diviser la somme de 13 + 3 par 8

Vous voudrez peut-être que l'ordinateur arrive à la réponse de cette façon :

13+3 / 8=16/8=2

Mais, à la place, l'ordinateur arrive à une autre réponse.

Tapez cette ligne de commande et voyez :

PRINT 13 + 3 / 8

Ce qui donne 13.375

L'ordinateur résout les problèmes logiquement, en utilisant ses propres règles :

RÈGLES SUR L'ARITHMÉTIQUE

L'ordinateur résout les problèmes arithmétiques dans cet ordre :

1. Premièrement. il résout toutes les opérations de multiplication et de division.

2. En dernier. il résout les opérations d'addition et de soustraction.

3. S'il y a égalité (c'est-à-dire plus d'une opération de multiplication/division ou d'addition/soustraction), il résout les opérations de gauche à droite.

Dans le problème ci-dessus, l'ordinateur suit ses règles :

D'abord, il fait la division (3/8 = .375)

Ensuite, il fait l'addition (13 + .375 = 13.375)

Pour que l'ordinateur résolve le problème différemment, vous devez utiliser des parenthèses.

Tapez cette ligne :

PRINT (13 + 3) / 8

Ce qui donne 2

Chaque fois que l'ordinateur voit une opération entre parenthèses, il résout cette opération avant de résoudre les autres.

EXERCICE DE MATHÉMATIQUES POUR L'ORDINATEUR

Que pensez-vous que l'ordinateur affichera comme réponses à chacun de ces problèmes ?

PRINT 10 - (5 - 1) /2
PRINT 10 - 5 - 1 / 2
PRINT (10 - 5 - 1) /2
PRINT (10 - 5) - 1 /2
PRINT 10 - (5 - 1 /2)

Achevé? Tapez chacune des lignes de commande pour vérifier vos réponses.

Et si vous voulez que l'ordinateur résolve ce problème ?

Divisez 10 moins la différence de 5 moins 1 par 2

Vous demandez en fait à l'ordinateur de faire ceci :

(10-(5-1)) / 2

Lorsque l'ordinateur détecte un problème avec plusieurs jeux de parenthèses, il résout les parenthèses intérieures puis passe aux parenthèses extérieures. En d'autres termes, il fait ceci :

RÈGLES SUR LES PARENTHÈSES

1. L'ordinateur résout d'abord les opérations entre parenthèses, avant d'en résoudre d'autres.

2. L'ordinateur résout d'abord les parenthèses intérieures. Ensuite, il en sort.

EXERCICE DE MATHÉMATIQUES INFORMATIQUE

Insérez des parenthèses dans le problème ci-dessous afin que l'ordinateur affiche 28 comme réponse :

PRINT 30 -9- 8 -7- 6

Réponse

PRINT 30 - (8 - (8 - (7 - 6) ) )

Le programme ci-dessous utilise deux sous-programmes. C'est pour ceux d'entre vous qui économisent en mettant la même somme d'argent à la banque chaque mois :

5 CLS
10 INPUT "Votre acompte mensuel " ; M
20 INPUT "Taux d'intérêt annuel de la banque " ; I
30 I = I/12 * 0.01
40 INPUT "Nombre de dépôts " ; NP
50 GOSUB 1000
60 PRINT "Tu vas avoir $" FV " dans" NP "Mois"
70 END
1000 REM Formule d'intérêt mensuel composé
1010 N = 1 + I
1020 GOSUB 2000
1030 FV = M * E
1040 RETURN
2000 REM Formule pour élever un nombre à une puissance
2010 E = 1
2020 FOR X = 1 TO NP
2030 E = E * N
2040 NEXT X
2050 IF NP = 0 THEN E = 1
2060 RETURN

Notez qu'un sous-programme "appelle" un autre. Cela convient à l'ordinateur tant que :

Il y a un GOSUB pour envoyer l'ordinateur à chaque sous-programme, et il y a un RETURN à la fin de chaque sous-programme.

Ci-dessous, vous trouverez des sous-routines mathématiques utiles que vous pouvez ajouter à vos programmes.

Après l'exécution du programme ci-haut, l'ordinateur affiche

Tu vas avoir $ 6.740905 dans 36 Mois.

Avec la fonction PRINT USING, on l'ordinateur affiche la valeur FV arrondi à la deuxième décimal.

60 PRINT "Tu vas avoir $";USING "##.##"; FV;: PRINT " dans" NP "Mois"

On peut utiliser l'opérateur ^ pour élever un nombre à une puissance.

Ce programme donne le même résultat:

5 CLS
10 INPUT "Votre acompte mensuel " ; M
20 INPUT "Taux d'intérêt annuel de la banque " ; I
30 I = I/12 * 0.01
40 INPUT "Nombre de dépôts " ; NP
50 FV=M*(1+I)^NP
60 PRINT "Tu vas avoir $" FV " dans" NP "Mois"

PRINT USING

Pour Afficher des chaînes ou des nombres en utilisant un format spécifié.

Syntaxe:

PRINT USING expressions de chaîne; liste d'expressions[;]

Commentaires:

expressions de chaîne est une chaîne littérale ou une variable composée de caractères de formatage spéciaux. Les caractères de formatage déterminent le champ et le format des chaînes ou des nombres imprimés.

liste d'expressions se compose de la chaîne ou des expressions numériques séparées par des points-virgules.

Champs de chaîne

Les trois caractères suivants peuvent être utilisés pour formater le champ de chaîne :

!

Spécifie que seul le premier caractère de la chaîne doit être imprimé.

\n espaces\

Spécifie que 2+n caractères de la chaîne doivent être imprimés.

Si les barres obliques inverses sont saisies sans espaces, deux caractères sont imprimés ; si les barres obliques inverses sont tapées avec un espace, trois caractères sont imprimés, et ainsi de suite.

Si la chaîne est plus longue que le champ, les caractères supplémentaires sont ignorés.

Si le champ est plus long que la chaîne, la chaîne est justifiée à gauche dans le champ et complétée par des espaces à droite. Par exemple:

10 A$="LOOK": B$="OUT"
30 PRINT USING "!"; A$; B$
40 PRINT USING"\  \"; A$; B$
50 PRINT USING"\   \"; A$; B$;"!!"
RUN
 LO
 LOOKOUT
 LOOK OUT!!

&

Spécifie un champ de chaîne de longueur variable. Lorsque le champ est spécifié avec &, la chaîne est sortie exactement comme l'entrée.

Par exemple:

10 A$="LOOK": B$="OUT"
20 PRINT USING "!"; A$
30 PRINT USING "&"; B$
RUN
 LOUT

Champs numériques

Les caractères spéciaux suivants peuvent être utilisés pour formater le champ numérique :

#

Un signe dièse est utilisé pour représenter chaque position de chiffre. Les postes de chiffres sont toujours pourvus. Si le nombre à imprimer comporte moins de chiffres que les positions spécifiées, le nombre est justifié à droite (précédé d'espaces) dans le champ.

Un point décimal peut être inséré à n'importe quelle position dans le champ. Si la chaîne de format spécifie qu'un chiffre doit précéder la virgule décimale, le chiffre est toujours imprimé (comme 0 si nécessaire). Les nombres sont arrondis si nécessaire.

Par exemple:

PRINT USING "##.##";.78
 0.78
PRINT USING "###.##";987.654
 987.65
PRINT USING "##.##" ;10.2,5.3,66.789,.234
 10.20 5.30 66.79 0.23

Dans le dernier exemple, trois espaces ont été insérés à la fin de la chaîne de format pour séparer les valeurs imprimées sur la ligne.

+ Un signe plus au début ou à la fin de la chaîne de format entraîne l'impression du signe du nombre (plus ou moins) avant ou après le nombre.

- Un signe moins à la fin du champ de format entraîne l'impression des nombres négatifs suivis d'un signe moins.

Par exemple:

PRINT USING"+##.##";-68.95,2.4,55.6,-9
 -68.95 +2.40 +55.60 -0.90
PRINT USING"##.##-";-68.95,22.449,-7.01
 68.95 22.45 7.01-

**
Un double astérisque au début de la chaîne de format entraîne le remplissage des espaces de début du champ numérique par des astérisques. Le ** spécifie également deux positions de chiffres supplémentaires.

Par exemple:

PRINT USING "**#.#";12.39,-0.9,765.1
 *12.4* -09765.1

$$

Un signe de dollar double au début de la chaîne de format entraîne l'impression d'un signe dollar immédiatement à gauche du nombre formaté. Le $$ spécifie deux positions de chiffres supplémentaires, dont l'une est le signe dollar.

Le format exponentiel ne peut pas être utilisé avec $$.

Les nombres négatifs ne peuvent pas être utilisés à moins que le signe moins ne soit à la droite.

Par exemple:

PRINT USING "$$###.##";456.78
 $456.78

**$

Le **$ au début d'une chaîne de format combine les effets des deux symboles ci-dessus. Les espaces de début sont remplis d'astérisques et un signe dollar est imprimé avant le nombre. **$ spécifie trois positions de chiffres supplémentaires, dont l'une est le signe dollar.

Par exemple:

PRINT USING "**$##.##";2.34
 ***$2.34

,

Une virgule à gauche du point décimal dans la chaîne de format entraîne l'impression d'une virgule à gauche de chaque troisième chiffre à gauche du point décimal. Une virgule à la fin de la chaîne de format est imprimée dans le cadre de la chaîne.

PRINT USING "####,.##";1234.5
 1,234.50

^^^^

Quatre carets peuvent être placés après les caractères de position des chiffres pour spécifier le format exponentiel.

Les quatre carets permettent d'imprimer E+xx. Toute position de la virgule décimale peut être spécifiée. Les chiffres significatifs sont justifiés à gauche et l'exposant est ajusté. À moins qu'un signe + ou un signe + ou - à la fin ne soit spécifié, une position de chiffre est utilisée à gauche de la virgule décimale pour imprimer un espace ou un signe moins.

Par exemple:

PRINT USING "##.##^^^^";234.56
 2.35E+02
PRINT USING ".####^^^^-";888888
OK
PRINT USING "+.##^^^^";123
 +.12E+03

_

Un trait de soulignement dans la chaîne de format entraîne la sortie du caractère suivant sous forme de caractère littéral.

Par exemple:

PRINT USING "_!##.##_!";12.34
!12.34!

Le caractère littéral lui-même peut être un trait de soulignement en plaçant "_" dans la chaîne de format.

%
Un signe de pourcentage est imprimé devant le nombre si le nombre à imprimer est supérieur au champ numérique spécifié.

Si l'arrondi fait que le nombre dépasse le champ, un signe de pourcentage est imprimé devant le nombre arrondi.

Par exemple:

PRINT USING "##.##";111.22
 %111.22
PRINT USING ".##"';.999
 %1.00

Si le nombre de chiffres spécifié dépasse 24, une erreur "Illegal function call" se produit.

Opérateurs et fonctions Mathématiques

Code Opération Résultat
x ^ y Exponentiation x élevé à la puissance y
x * y Multiplication Produit de x et y
x / y Division Quotient de x et y
x \ y Division tronquée à l'entier Quotient entier de x et y
x MOD y Modulo Reste entier de x par y (avec le signe de x)
x + y Addition Somme de x et y
x - y Soustraction Différence de x et y
+ y Unaire Plus Valeur de y
- y Négation Valeur négative de y

Fonction  
ABS Valeur absolue
ATN Arc tangente
COS Cosinus
EXP Exponentiel
FIX Troncature
INT Sol
LOG Un algorithme naturel
SIN Sinus
SGN Signe
SQR Racine carrée
TAN Tangente

Pour plus de détails voir Guide de langage

Pour convertir les degrés en radians

radians = degrés × PI / 180°

Tableau de conversion des degrés en radians

Dégrées (°) Radians (rad) Radians (rad)
0 rad 0 rad
30° π/6 rad 0.5235987756 rad
45° π/4 rad 0.7853981634 rad
60° π/3 rad 1.0471975512 rad
90° π/2 rad 1.5707963268 rad
120° 2π/3 rad 2.0943951024 rad
135° 3π/4 rad 2.3561944902 rad
150° 5π/6 rad 2.6179938780 rad
180° π rad 3.1415926536 rad
270° 3π/2 rad 4.7123889804 rad
360° 2π rad 6.2831853072 rad

 

 

 

 

 

 

 

Recherche personnalisée