SEIZED BY DARK ARMY @D4rkArmy

You have been breached by the Dark Army.

Vous n'êtes pas identifié(e).

Annonce

SEIZED BY DARK ARMY You have been breached by the Dark Army @D4rkArmy

#1 08/09/2009 16h59

Conan3D
L'homme aux 2fps sur Paint
Lieu : gm_gfrtower, 3ème étage.
Inscription : 23/08/2008
Messages : 2 028
Site Web

[PROG] Le Quick-Basic : Les Bases

SEIZED BY DARK ARMY @D4rkArmy à tous big_smile Dans ce tutorial, nous allons voir les bases du Quick-Basic :

-Présentation
-Les fonctions basiques (PRINT, CLS...).
-Les fonction INPUT, LINE INPUT, les variables et l'arithmétique.
-La boucle IF... ELSEIF... ELSE PRINT.
-TPs


[large]I - Présentation[/large]

Le basic, c'est quoi?
Le basic est un language de programmation assez simple, facile d'uilisation et pratique pour apprendre d'autres languages (C/C++, php, LUA...)
Vous pouvez le télécharger sur ce site (J'utilise la version 4.5 FR)

Le basic est assez ancien, on le trouve sur pas mal de vieux ordinateurs (Amstrad CPC entre autres), et est vraiment utile. Il se présente comme un traitement de texte, sauf que c'est un editeur de texte wink . Quick Basic permet de faire des programmes exclusivement DOS (mais compatibles windaube). Commençons tout de suite par :

[large]II - Les fonctions basiques (PRINT, CLS...)[/large]

Donc, nous voilà dans la première partie "prog", on va commencer simple :
La fonction PRINT sert à... Afficher un texte à l'écran big_smile
Il vous suffit d'écrire ceci dans l'editeur de texte :

PRINT "Hello World"
END

La sortie :

Hello World

(?)Appuyez sur shift+F5 pour afficher la sortie.

(?)La partie END sert, théoriquement, a afficher le message "appuyez sur une touche pour continuer"... Mais je crois que cela ne marche pas... big_smile

Analysons tout ça :
PRINT : Le nom de la fonction, simple, PRINT aka afficher sur l'écran (LPRINT pour imprimer quelque chose sur une imprimante)
"Hello World" : Le message imprimé, toujours entre guillemets.

/!\ Nous le verrons quand nous aborderons la boucle IF : Le texte à afficher, que ce soit dans une fonction PRINT, INPUT, LINE INPUT ou le texte à rentrer pour la boucle IF, le texte se met TOUJOURS ENTRE GUILLEMETS!!!

Voilà, vous connaissez la principale fonction du basic :awe: ! Notez que vous pouvez sauter une ligne en mettant un PRINT tout court, sans rien à coté.

Ensuite, voyons quelques autres petites fonctions :

-CLS

PRINT "Vous ne verrez pas ce message!"
CLS
PRINT "Je vous l'avais dit!"
END

Sortie :

Je vous l'avais dit!

CLS sert à vider l'écran, mais s'il est mit après, par exemple, un PRINT, ce print ne s'affichera pas wink

-END

PRINT "Il faudra appuyer sur une touche pour continuer!
END

Sortie :

Il faudra appuyer sur une touche pour continuer!
Appuyez sur une touche pour continuer...

Comme dit plus haut, théoriquement ça devrait marcher, mais je n'ai jamais réussi... A suivre donc...
(?)Sur la sortie directe, il s'affichera toujours... Alors qu'en .exe standalone, il ne s'affichera pas... Sauf si, théoriquement, vous mettez l'instruction END...

-Les commentaires :

'Programme de test
CLS
PRINT "Testestest!" 'Affiche un texte
END 'Termine le programme

Un commentaire ne sera pas visible dans votre programme compilé, et sert pour les codes sources, afin de mieux le comprendre wink

Voilà, vous savez afficher un texte, l'effacer, mettre des commentaires et terminer (théoriquement) un programme! Bravo! :awe:

[large]III - Les fonction INPUT, LINE INPUT, les variables et l'arithmétique.[/large]

Oulàlà! Elle doit être longue cette partie!
Non non, pas trop, elle sera sûrement aussi longue que celle sur la boucle IF smile

Donc, commençons par les variables :

Les variables sont des petits endroits où l'on peut "ranger" des nombres et du texte. Ce qui est bien, c'est que, justement, ces variables sont variables! On peut leur donner la valeur que l'on veut, on peut les additionner entre elles pour obtenir une nouvelle variable etc etc...

Dit, ça a l'air 'achement compliqué tes vas riz able...
Que nenni! Commençons tout de suite :

Pour créer une variable, en général on fait :

nomdelavar = x

Ici, x désigne un nombre.

Ouais, mais si je veux y mettre un texte hein?

Eh bien, suffit de faire :

nomdelavari$ = "texte"

Il suffit d'ajouter un signe $ après le nom de la variable smile
[large]
/!\ Les noms de variables ne peuvent contenir que des lettres et des chiffres, et doivent commencer par une minuscules! Il me semble que le seul symbole autorisé soit le tiret haut... (-)
[/large]

Ok, donc ensuite... ?
On passe à une autre fonction essentielle : INPUT.

En effet, INPUT demande son avis à celui qui utilise le programme :

CLS
PRINT "Quel est votre nom";
INPUT nom$
PRINT "Ok, votre nom est donc "; nom$; "... C'tout moche!"
END

Ce qui nous donne la sortie suivante :

Quel est votre nom? Conan3D
Ok, votre nom est donc  Conan3D ... C'tout moche!

Ici, la valeur rentrée est Conan3D :
Le PRINT pose la question,
Le INPUT permet d'y répondre,
Le 2e PRINT permet de visualiser la réponse.

(?)Pas la peine de mettre un point d'interrogation, INPUT s'en charge tout seul wink

(?)Le ; après le PRINT signifie que la prochaine fonction sera exécutée sur la même ligne que ce PRINT, à la suite smile

(?)INPUT peut aussi s'écrire comme ça :

INPUT "Quel est votre nom"; nom$

Qui remplit la fonction du 1er PRINT et de l'INPUT classique.

Ok, donc on sait maintenant poser des questions, y répondre,  visualiser le résultat etc... Mais le LINE INPUT dans tout ça?
Ben, le LINE INPUT n'est qu'un INPUT où l'on doit rajouter soi même le point d'interrogation (si envie), où l'on ne peut saisir qu'une suite de caractères et où l'on peut mettre une virgule dans la question smile

Le LINE INPUT s'utilise comme tel :

CLR
LINE INPUT "Indiquez votre mois, jour et année de naissance : "; dtn$
PRINT "Vous êtes donc né le "; dtn; "... Ca ne m'étonne guère :)"

Qui aura la sortie :

Indiquez votre mois, jour et année de naissance : Avril 05 1994
Vous êtes donc né le  Avril 05 1994 ... Ca ne m'étonne guère smile

Maintenant, passons à la dernière partie de cette partie : L'arithmétique.
NOOOOOOOOOOOOOON JE HAIS LES MATHS
Tant mieux, c'est l'ordinateur qui va s'en charger!

Considérez cette liste :
() : Parenthèses de calcul
^ : Puissance
*, /, }, MOD : Multiplication, division, division entière, modulo
+, - : Addition, soustraction
Plus un élément est haut dans cette liste, plus il est prioritaire.

(?)Le modulo renvoie le reste d'une division. Exemple 2 MOD 3 = 6, car 6 est le reste de deux divisé par trois smile

Mise en situation :

CLR
var1 = 10
var2 = 42
var3 = 8
var4 = 2

var5 = (var1 + var4)^var4 * var3 / var2 - var2
PRINT var5
END

La sortie sera donc :

[[RESULTAT]]

[large]IV - La boucle IF... ELSEIF... ELSE PRINT...[/large]

Pareil, ça à l'air compliqué tes Ifs...
Beuh nan, une fois qu'on a pigé le truc, ça va tout seul wink

Considérez le code suivant :

CLS
INPUT "Quel âge avez-vous"; age
IF (age < 18) THEN
     PRINT "Vous avez donc "; age; ", vous n'êtes pas majeur."
ELSEIF (age >= 18) THEN
     PRINT "Vous avez donc "; age; ", vous êtes donc majeur!"
END IF
END

Disséquons-le :
INPUT "Quel âge avez-vous"; age :
Une bête fonction INPUT qui demande l'age avec une variable simple, sans chaine de caractères.

IF (age < 18) THEN :
Donc,  nous lançons ici une boucle IF : Si la variable age rentrée par l'utilisateur est STRICTEMENT en dessous de 18 ALORS :
(?)N'oubliez jamais le THEN, il vous sera dit tout de suite s'il n'y est pas dans une boucle IF.

PRINT "Vous avez donc "; age; ", vous n'êtes pas majeur." :
Un PRINT tout con, affiché UNIQUEMENT si age est strictement  en dessous de 18.

ELSEIF (age >= 18) THEN :
ELSEIF permet d'avoir un autre résultat prédéfini dans une même boucle IF, et fonctionne comme une boucle IF normale.
/!\On ne peut pas la remplacer par un IF normal.

PRINT etc... remplit la même fonction que le print d'avant, il sera dit seulement si age est EGAL ou SUPERIEUR à 18.

END IF :
Signifie la fin de la boucle IF, ne jamais l'oublier.

Ensuite, une liste des symboles de comparaison à mettre dans la parenthèse :

- "x > y" : x STRICTEMENT plus grand que y
- "x < y" : x STRICTEMENT plus petit que y
- "x = y" : x est égal à y
- "x >= y" : x egal ou plus grand que y
- "x <= y" : x egal ou plus petit que y

Pareil, si je veux faire avec un texte? Et ce ELSE PRINT, il sert à quoi?
Commençons avec le ELSE PRINT smile Le ELSE PRINT sert à afficher quelque chose quand l'utilisateur ne rentre rien qui n'est prévu :

CLS
INPUT "En quelle année sommes-nous"; annee
IF (annee = 2009) THEN
     PRINT "Exact, nous sommes bien en 2009!"
ELSE PRINT
     PRINT "Non! Nous sommes en 2009, et pas "; annee; "!"
END IF
END

Ici, si la variable annee est 2009, un message confirmera, mais si cette variable n'est pas 2009, un message disant qu'on est pas en x année mais en 2009 apparaitra.

Maintenant, passons à une chaine de caractères :

CLS
INPUT "Quelle est la capitale de la France"; capitale$
IF (capitale$ = "Paris") THEN
     PRINT "Bien trouvé!"
ELSEIF (capitale$ = "paris") THEN
     PRINT "Bien trouvé!"
ELSE PRINT
     PRINT "Mais non! La capitale de la France est Paris, pas "; capitale$; "!"
ENDIF
END

Donc, ça fonctionne comme un IF numérique, sauf qu'il faut que la variable soit capable de lire une chaine de caractères (avec un signe $ à la fin) et que l'égalité soit écrite entre guillemets, mais sinon ça fonction comme une boucle IF numérique big_smile


Ca y'est, vous connaissez les bases du Quick Basic!!! Bientot je ferais un autre tutorial plus avancé, peut-être, mais en attendant...


[large]V - Travaux Pratique[/large]

Comme travaux pratiques, je vous propose :
-Une calculatrice où l'on propose chaque opération possible dans une boucle IF en demandant deux nombres

OU

-Un quizz avec une ou plusieures réponses possibles dans des boucles IF, un score et une phrase finale adaptée en fonction du score wink

OU

-Quelque chose que vous pouvez faire avec vos bases du basic!

Vous pouvez poster un listing, en copiant tout votre code  (edtion > copier, pas CTRL + C) et en le collant dans ce topic ou en créeant un éxécutable dans le menu éxécution smile

Je posterais un corrigé plus tard wink


Ca y'est, après trois jours de boulot, ce tutorial sur les bases du (Quick) Basic est enfin terminé, see you later big_smile

Dernière modification par Conan3D (09/09/2009 15h59)

Hors ligne

#2 08/09/2009 17h32

jojobull
ÔŏŏÔ
Lieu : Au fond du tiroir
Inscription : 22/01/2008
Messages : 1 120

Re : [PROG] Le Quick-Basic : Les Bases

Tu m'a donner envie de me remettre à programmer big_smile

Merci pour ces tutos tongue

Hors ligne

#3 08/09/2009 18h21

Conan3D
L'homme aux 2fps sur Paint
Lieu : gm_gfrtower, 3ème étage.
Inscription : 23/08/2008
Messages : 2 028
Site Web

Re : [PROG] Le Quick-Basic : Les Bases

PUTAIN T'ES OBLIGé DE REPONDRE?!
J'AI DEMANDé DE PAS REPONDRE MAINTENANT, je fais plusieurs posts pour mes parties!
Finalement, je vais faire dans un seul post, t'a de la chance big_smile

Dernière modification par Conan3D (08/09/2009 19h25)

Hors ligne

#4 09/09/2009 14h19

super chinois
SEIZED BY DARK ARMY @D4rkArmy
Inscription : 03/08/2009
Messages : 71

Re : [PROG] Le Quick-Basic : Les Bases

en fait tu montre direct comment coder en quick-basic, tu présente même pas le contexte, on sait pas si c'est un langage propre à un OS, si c'est compilé, interprété. On connait même pas l'IDE ni comment on l'exécute.

Faut que tu le complète ^^

Hors ligne

#5 09/09/2009 15h21

Conan3D
L'homme aux 2fps sur Paint
Lieu : gm_gfrtower, 3ème étage.
Inscription : 23/08/2008
Messages : 2 028
Site Web

Re : [PROG] Le Quick-Basic : Les Bases

Ouais, mais là je suis en train de le faire...

MERCI DE NE PAS REPONDRE MAINTENANT A CE TOPIC, VEUILLEZ ATTENDRE QUE JE FINISSES LE TUTORIAL, MERCI

Hors ligne

#6 09/09/2009 15h48

Teknibaal
Chat potté
Lieu : ...tenant ?
Inscription : 07/04/2009
Messages : 666

Re : [PROG] Le Quick-Basic : Les Bases

Epic +1

Hors ligne

#7 09/09/2009 16h01

Conan3D
L'homme aux 2fps sur Paint
Lieu : gm_gfrtower, 3ème étage.
Inscription : 23/08/2008
Messages : 2 028
Site Web

Re : [PROG] Le Quick-Basic : Les Bases

Bon, ayé l'ai fini, postez, mais siouplait trollez pas, et have fun with this shit guyz big_smile
Ah, et Margue, qu'est-ce que les tutoriaux vegas ont à voir avec gmod? :3

Dernière modification par Conan3D (09/09/2009 16h29)

Hors ligne

#8 15/02/2010 23h59

Conan3D
L'homme aux 2fps sur Paint
Lieu : gm_gfrtower, 3ème étage.
Inscription : 23/08/2008
Messages : 2 028
Site Web

Re : [PROG] Le Quick-Basic : Les Bases

(Héhé, je viens de le relire, et j'ai eu envie de UPPER. UP FTW)

Hors ligne

Pied de page des forums