Initiation au Turbo Pascal.

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

Connard95

Membre
Aug 7, 2010
12
0
426
33
Merci de ne pas copié collé cet article autre part..

Donc voilà une autre contribution sur ce forum, je vais essayer de vous initier au Turbo Pascal.
Nous allons commencer facilement, à créer des tous petits programmes de merde, mais il faut bien commencer par ça, ensuite, à l'avenir, je pense qu'on programmera un petit jeu sympa (il faudra tuer un agent de la CIA!)...
Au début (je me met à votre place pour mieux expliquer), quand j'ai commencé à programmé en turbo pascal (ça devait être en CM2 ou en 6e, je sais plus, et vous vous en foutez), j'avais lu un bouquin, j'avais compris quelques trucs, mais c'était pas terrible, j'ai donc relu le livre 3 ou 4 fois, et j'ai commencé à modifier quelques programmes et enfin, à créer les miens, donc si vous voulez vraiment apprendre le turbo pascal, il faudra faire pareil, "c'est en forgeant que l'on devient forgeron".
Un programme pascal est structuré, si vous avez déjà fait du basic, OUBLIEZ TOUT!, sinon, si vous connaissez déjà un autre langage structuré (C pour ne citer que lui), ça sera bon. Autrement, si vous n'avez jamais fait de programmation, ça sera un peu plus dur que pour les autres, mais avec de la patience et de l'acharnement, tu devrais y arriver, tu devras acquérir une certainne logique (t'en fait pas, j'étais pas très fort en maths [j'négligeais surtout]).
Le programme le plus simple que l'on puisse faire en pascal est :

PROGRAM simple;

BEGIN

END.

Contrairement au C, le pascal ne fait pas la différence entre majuscules et minuscules, si j'ai écrit les mots program, begin ou end en majuscule, c'est uniquement pour un problème de lisibilié.
Le mot simple est un identificateur, il possède quelques règles très simples, qui sont chiantes à relire si on connait déjà :
- IL NE DOIT PAS COMMENCER PAR UN CHIFFRE : 0,1,2,3,4,5,6,7,8 ou 9
- IL NE DOIT PAS CONTENIR DE CARACTERES SPECIAUX : &éè~"#'{([-`\^çà@)]°=+}^¨$£¤ù%*µ, ....
- IL NE DOIT PAS CONTENIR D'ESPACES
- REMPLACEZ LES ESPACE PAR LE CARACTERE UNDELINE _

Exemples d'identificateurs valides :
simple, dur, la_vie_est_dure, elephant, ...
Exemples d'identificateurs invalides :
1chien, éléphant, la vie en rose, jean&jacques, ...

Après le mot clé program, nous avons mis l'identificateur "simple", et terminé par un ;
on met des point-virgules partout, sauf devant les mot-clés (exceptions : program, procedure, function, uses, et quelques autres que je n'ais pas tout de suite en tête, ...)
le end final, et seulement lui, se termine par un point.
Maintenant, on va écrire une petite phrase tout simple, en respectant la tradition "Hello, world!" :


PROGRAM Hello;

BEGIN

WriteLn('Hello, world!');

END.

Maintenant, je vais l'expliquer en détail : j'ai écrit WriteLn, mais j'aurais très bien put aussi écrire writeln ou WRITELN, ok ? Ensuite, je met le texte entre parenthèses et apostrophes, et si jamais j'avais une apostrophe dans mon texte, je devrais en mettre deux à la suite : WriteLn('aujourd''hui');, et je finis par un ;
Comme un exemple vaut toujours mieux qu'un long discours, je continue :

PROGRAM LePrenom;

VAR

prenom : string[30];

BEGIN

WriteLn('Salut, quel est ton prénom ?');

ReadLn(prenom);

Writeln('Bonjour, ',prenom);

END.

Pourquoi j'ai écrit LePrenom devant programme et pas tout simplement Prenom ? c'est vrai qu'en C ça aurait marché car il fait la différence minuscules/majuscules, ça aurait donc été deux identificateurs différents, mais pas ici. Var sert à déclarer les variables, comme le pascal est un langage structuré, on doit déclarer ses variables avant. Ici, string indique une chaine de caractère ne pouvant pas dépasser 30 lettre. Si je n'aurais pas mis [30] après string, la limite aurait été de 255 caractères,
ReadLn demande de taper la variable et de terminer la saisie avec entrée, pour séparer le texte de la variable, on met l'apostophe pour finir le texte, une virgule, puis, la variable et on referme la parenthèse avec son ;
Maintenant, pour finir, je vais vous montrer un programme que va calculer 2 nombres rentrés au clavier :

PROGRAM Nombres;

VAR

nombre1, nombre2, somme : integer;

BEGIN

WriteLn('Bonjour, ceci est l'exmple d'un programme simple de calcul...');

WriteLn;

WriteLn('Veuillez taper un 1e nombre :');

ReadLn(nombre1);

WriteLn('Veuillez taper un 2e nombre :');

ReadLn(nombre2);

WriteLn;

somme:=nombre1+nombre2;

WriteLn('somme de ces nombres : ',somme);

END.

Les variables nombre1, nombre2 et somme sont définies en tant qu'integer, nombres entiers. De tête, la limite que l'on puisse rentrer est à peu près -32 000 et 32 000, sinon, le programme execute une erreur. Il permet de calculer des nombres, c'est pour ça qu'on aurait pas mis string ici, il y aurait eu une erreur avant la compilation. Ensuite, vous pouvez mettre un point-virgule directement après WriteLn; ce que saute une ligne automatiquement. Enfin, la ligne la plus intéressante est sans doute somme:=nombre1+nombre2; le := joue le rôle d'affecteur, la somme des deux nombres est affecté à la variable somme.
Maintenant, essayez de faire cet exercice, et voyez si le compilateur ne fait pas d'erreurs, sinon, chercher, c'est comme ça que l'on apprend, moi, j'ai commencé par lire un gros bouquin et après, je faisait ça sur le tas, ça m'a permis de faire des jeux pas trop mal.

Exercice : Le programme demande le nom de la personne, lui demande d'introduire deux nombres à soustraire et lui rend la réponse : "Nom_du_type, tu veux savoir le résultat de nb1 - nb2, eh ben c'est somme"
Les noms mis en italique sont des variables que nous avons déjà rencontré. Réponse dans le prochain article. :)


à+