Pascal - Cours et Tutoriels

Apprenez à programmer en PASCAL - première partie

par THE_NIGHTWALKER_X - vues: 230 fois - Note: 0.4/5
Donnez une note à ce tutoriel:

Table des matières...


Introduction



1) Les bases


  

1.1) Contrainte de base du programme


  

1.2) Variables et types de définition


  

1.3) Commandes de base


  

1.4) Div et Mod


  

1.5) if ... else


  

1.6) Case


  

1.7) Constantes


  

1.8) Nombre aléatoire


  

1.9) GoToXY





-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-

*) Introduction



Bonjour,
Je suis The NightWalker Y, et je vais vous apprendre le langage le plus simple de l'univers grandiose de la programmation (bien, ce n'est pas si énorme ...). Tout ce dont vous aurez besoin c'est du temps et un ordinateur.
Ce didacticiel est seulement pour vous faire comprendre les bases du langage Pascal, et une partie de la programmation avancée comme l'utilisation de vos propres fonctions écrites d'une manière meilleure.
À la fin de ce tutoriel, vous trouverez le meilleur exemple jamais vu, pour un bon programme en Pascal. C'est un ancien jeu de cartes que j'ai écrit une fois. Ce n'est pas parfait mais vous pouvez le rendre parfait! Je pense que vous connaissez ce vieux jeu de cartes, appelé Black Jack (21) ... Le jeu a des bugs, comme les cartes se repètent, c'est VOTRE travail de le réparer! Rappelez-vous: j'ai fait ces bugs au programme à dessein et j'utilise trop de variables aussi à dessein, donc c'est votre Devoir de corriger les bugs et minimiser l'utilisation des variables dans le jeu!
Pour moi, en réglant cela, le jeu est comme 1 2 3 ... mais pour vous, disons simplement que vous passerez beaucoup de temps libre pour réparer le jeu et rendre le code plus efficace, mais il sera payant à la fin, croyez-moi, ça paye toujours!

Et rappelez-vous cela aussi: «Je n'ai pas écrit ce tutoriel pour moi-même, je l'ai écrit pour vous» ;)

Juste une petite chose avant de commencer, le texte à l'intérieur des accolades "{ ... }" au milieu du code est
du commentaire, cela vous explique la signification de la commande, et ce qu'elle fait. Mais n'as aucun effet sur l'execution du code.

Pour commencer, il vous faut un compilateur pour traiter le code et le rendre exécutable. Vous pouvez obtenir un compilateur Turbo Pascal gratuit à l'URL suivante pour Windows 32 et 64 bits:
 http://inspirates.io.ci/telechargements/details.php?file=Turbo+Pascal
Ou faites un tour sur Google pour trouver une autre version/un autre compilateur.
MAINTENANT, allez, allez! on suit! Et apprenez le langage de programmation le plus simple à apprendre, enfin presque!

NOTE: Quand je parle d'une commande, je suis réellement méchant. Il s'agit en fait de: fonction ou procédure... Vous avez fait des maths? vous connaissez ce qu'on appelle fonction alors!
Mais, en appelant ces fonctions / procédure: commandes, cela vous facilitera la compréhension. C'est pour votre bien!!! :) Parce que vous ne savez pas c'est quoi une fonction, ou une procédure et à quoi bon toutes ces trucs peuvent vous être utiles, mais ne vous inquiétez pas, vous en apprendrez à ce sujet dans ce tutoriel.. et encore plus même!

REMARQUE: le compilateur de Turbo Pascal n'est pas sensible à la casse (vous connaissez les majuscules et les minuscules), par exemple: vous pouvez écrire: "writeln" ou "WRITELN", ou même "WriTELn", ça voudra dire la même chose contrairement à la plupart des autres compilateurs d'autes langages de programmation, ou même le compilateur DoS, DoS n'est pas sensible à la casse, même si vous l'exécutez dans le système d'exploitation Windows, mais si vous utilisez un compilateur Pascal basé sur Windows (comme Dev Pascal, par BloodShed) et si vous voulez toujours un compilateur basé sur Windows, allez à: www.bloodshed.net et téléchargez un basé sur Windows.
Gardez cela à l'esprit: Salut = sAluT !



1) Les bases



  

1.1) Contrainte de base du programme



La première chose que vous devez savoir, c'est que chaque programme Pascal doit avoir un nom, que veux-je dire ... Chaque programme commencera par: "program nom_programme" ; le nom ne peut pas commencer par un nombre ou des caractères spéciaux, mais vous pouvez utiliser des nombres au milieu, mais pas les caractères spéciaux. vous ne pouvez pas mettre un espace au milieu du nom du programme, et chaque commande en Pascal doit se terminer avec un point-virgule ";" et ainsi: program abc;
Par ailleurs, le tiret de soulignement (" _ ", tiret du 8 ou underscore) est pris en charge!

Regardez le squelette de base d'un programme pascal suivant:

program structure_programme;

var
{ les variables globales seront ici, nous le verons plus tard }

begin { le programme principal commence sans ; à la fin }

{ votre code ici }

end. { fin du programme avec un POINT " . " final à la fin }

Simple n'est-ce pas?


1.2) Variables et Définiton des types


Rappelez-vous la partie VAR dans le squelette, nous allons en parler maintenant.
Mais d'abord, une variable est une MARQUEUR, qui vous permet de garder des informations en mémoire... comme un nombre ou une lettre.
On déclare une variable comme suit:
 nom_de_la_variable : type de la variable;

Les contraintes sur les noms de variables sont les mêmes que précédemment (pour le nom du programme).
Disons que nous avons besoin d'une variable qui peut garder un nombre, que faisons-nous, comment l'écrivons-nous?
D'abord, vous devez vous demander de quel type de nombre avez-vous besoin dans le programme ... un nombre réel (ex: 3.26) ou un nombre entier (ex: 3) ... regardez ça:
 program var_exemple;

VAR
a, c, e: integer;
b, d, f: real;
ch: char;
{ vous pouvez utiliser n'importe quel nom pour vos variables mais pas un nom de commande! }

begin { programme principal }
...
end. { fin du programme }

Et en ce qui concerne les Maths, le seul signe différent est: / (division) ; les + (addition), - (soustraction), * (multiplication) sont les mêmes!
Vous voyez: dans une variable de type "REAL", vous pouvez utiliser /, mais dans une variable entière (INTEGER), vous pouvez utiliser uniquement 'div'!
Parce qu'une variable de type entier peut porter seulement un nombre entier en valeur, de sorte que l'action du 'div' fera la division mais la variable qui recevra le résultat de l'action (s'il s'agit d'un nombre entier), n'obtiendra que le nombre avant le point (.)! Euh je manquais ça: on n'utilise pas la virgule pour les nombres réels mais le point du style anglais. Donc on ne fera pas 2,512 mais 2.512 .
Donc en conclusion: une variable de type entier ne peut pas recevoir un nombre de type REAL ou une variable de type REAL comme valeur !!!
Mais une variable de type REAL peut recevoir un nombre de type entier ou une variable de type entier, parce que l'ensemble grand N des entiers est inclus dans l'ensemble grand R des réels mais pas inversement (petit rappel de Maths!).

Le troisième type était "CHAR" - caractère, cela signifie que la variable "ch" ne recevra que des lettres et des caractères spéciaux!
Pour donner (attribuer ou affecter) une valeur à une variable après qu'on l'ait déclarée dans la partie VAR,
on fait:
nom_de_variable := valeur;

mais entre begin et end.

Chaque Caractère possède un numéro spécial, un numéro de caractère ASCII de 1 à 255 (256), vous pouvez obtenir la liste complète de l'ensemble du code ASCII à l'adresse suivante:
 http://members.tripod.com/~plangford/index.html
Vous pouvez convertir ce caractère dans son code ASCII et revenir sur le chemin suivant:

  1. Si vous voulez obtenir la "lettre", et vous avez le numéro de cette lettre (le numéro est le code ASCII), vous ferez comme suit:
    ch := chr(97);  { "ch" doit être une variable de type "CHAR" }
    { le code ASCII 97 correspond à 'a' }
    { vous pouvez aussi mettre une variable dans "chr( )" mais elle doit être de type entière! }

  2. Pour obtenir le nombre (code ASCII) d'un caractère spécifique char (lettre), vous pouvez faire comme suit:
    a := ord('b');  { "a" peut être de type 'REAL', ça ne serait pas une erreur. Mais c'est une mauvaise pensée de programmation, vous voyez qu'un véritable programmeur DOIT posséder une LOGIQUE spéciale pour programmer correctement! }
    { vous pouvez utiliser à la place du 'b' une variable char }
    { le code ASCII de 'b' est 98 ainsi, à l'exécution de cette commande, la valeur de 'a' sera 98! pas très compliquer, non? }


Il y a aussi un type Booléen, mais vous n'en avez pas besoin, beaucoup de types existent, en Pascal!

1.3) Commandes de base



1.3.1)


Commençons par la plus simple:
write('Bonjour tout le monde!');

Qu'est-ce que ça fait, vous-vous demandez? Elle va afficher le texte entre ' ' à l'écran.
Mais que se passera-t-il si vous faites le prochain:
program exemple_affichage;

begin { programme principal, et comme vous pouvez le constater, nous n'avons pas mis 'var' avant le début, car nous n'avons pas besoin de variables pour cet exemple }

write('NightWalker ');
write('est cool!');

end. { fin du programme }

ça affichera
NightWalker est cool

Comment allez-vous procéder si vous voulez que le programme revenne à la ligne après 'Nightwalker '?
program exemple_affichage2;

begin { début du programme principal }

writeln('NightWalker'); { Lorsque vous utilisez writeln, vous obtiendrez une ligne après avoir affiché la ligne }
write('est cool'); { mais ici, ça restera à la même ligne à l'affichage! }

end. { fin du programme }

Cela fonctionne aussi pour les variables: vous pouvez afficher des valeurs de variable:
program exemple_affichage3;

var
a: integer; { on déclare 'a' comme une valeur entière }

begin { programme principal }

a := 5; { cela affectera 5 à la variable a }
{ la valeur et la variable doivent être de même type ou type compris. }
{ lorsque vous mettez := après une variable, cela signifie que la valeur que vous écrivez après := entrera dans la variable et restera là, jusqu'à ce que vous y mettiez une autre valeur ou que le programme finisse }
writeln('le nombre a est: ',a,' pigé?');

end. { fin du programme }


1.3.2)


La commande Readln est effectuée de sorte que l'utilisateur du programme puisse apporter une saisie à une variable!
voyez ça:
 readln(a); { Cela entrera dans la variable 'a', cela signifie que l'utilisateur doit saisir une valeur lorsque le programme recevra la commande 'readln' }


1.4) Div et Mod


Disons que nous avons une variable avec un nombre à l'intérieur, disons 34:
program div_mod_example;

var
a, c: integer; { déclaration de variables de type entière }

begin { début du programme }

a:=34; { et nous ferons le suivant }
c:=a div 10;
a:=a mod 10;

end. { fin du programme }

Vous vous demandez probablement: "Qu'est-ce que c'est que ça?".
Eh bien, la première commande va diviser a par 10.
34/10 = 3.4, non?
Donc, dans la première commande, "c" reçoit la partie gauche, qui est avant le point. Rappelez-vous que "c" est de type entier.
Div fait la division entière donc la partie décimale (si elle existe) du résultat de la division, est ignorée: c'est ça le principe de la division entière.
Et dans la deuxième commande, "a" reçoit le reste de la division de "a" par 10.
Mod renvoie le reste(entier) de la division. C'est le modulo.
La variable 'c' a maintenant la valeur 3, et la variable 'a' a maintenant la valeur 4.
Nous n'avons pas utilisé "a" en premier, car nous en avons toujours besoin en pleine taille (34).
Vous voyez, vous avez besoin d'une réflexion logique pour la programmation, et pas simplement d'apprendre les commandes et de les utiliser, vous devez savoir comment les utiliser de manière appropriée, car sans cela vous êtes coincé!

1.5) If ... Else


Parfois, vous devez vérifier les variables et les comparer à une valeur ou à une autre variable.
Alors, comment le faites-vous, vous vous demandez. Simple, il y a un contrôle (test) simple avec 'if'.
Par exemple, disons..
...
...
a:=56;
{ et }
d:=45;

...

.. que vous voulez vérifier si a est égal à d...
if (a=d) then  { la condition, entrera dans le ( ) et après cela viendra: then }

Maintenant, si vous n'utilisez qu'une seule commande après le if vous l'écrivez simplement sous le test if!
Mais si vous avez plus d'une ... alors vous devez mettre BEGIN sous le test if, pour écrire votre code que vous souhaitez que le programme fasse si la condition est correcte (activée), après avoir écrit votre code, vous devez mettre END ; (PAS avec un arrêt complet (.) !!! Mais avec ; )
Vous pouvez également vérifier
if (a>d) then { vérifier a supérieur à d, si oui alors le code en dessous du if est activé }

Vous pouvez vérifier si "a" est plus grand que "d", ou si "a" est égal à "d"!
if (a>=d) then

Vous pouvez faire la même chose avec "<" et "<=".
Vous pouvez également vérifier si les valeurs ne sont pas égales: "<>". Cela viendra seul sans aucun ">" ou "<".
OK, c'était une condition "if" ... Maintenant, la condition multiple "if":
Disons:
	a:=45;
d:=32;
if ((a>d)and(77-d=a)) then
...

Ce que nous avons fait ici est: "a" reçoit la valeur 45, et "d" reçcoit 32.
Le "if" vérifiera si la valeur dans "a" est plus grande que la valeur dans "d",
ET 77-(la valeur de "d") = (la valeur de "a", c'est-à-dire 45).
Dans ce cas, le if sera vérifié!
Le AND au milieu du "if" signifie que la condition dans le premier ( ) doit être vérifiée et le second ( ) doit l'être aussi !!!
Il peut y avoir un OR au lieu de AND ...
if ((a>d)or(77-d=a)) then

Le OR signifie que vous avez besoin que seule une condition soit vérifiée, de sorte que le "if" sera activé!
Et dans le AND, vous avez besoin que les deux conditions soient vérifiées pour que "if" sera activé!
Ce que nous avons fait pour l'instant était SIMPLE "if". Maintenant ne viendra pas la partie difficile du "if", mais pas aussi simple que le "if" que nous avons fait avant, non, nous ajouterons un ELSE (sinon) au "if".
L'idée de "ELSE" est: lorsque la condition du "if" ne sera pas vérifiée, le programme continuera à la partie "else", mais si "if" est activé, le programme sautera sur la partie "ELSE" et continuera comme si rien ne se passait!
L'astuce de "ELSE" est: le signe ; ne viendra jamais avant le "ELSE" ...
Regardez:
	if(2=9) then
writeln("Rambo et Ramba") { pas de ; avant le "ELSE" }
{ la dernière commande non signée avant que "ELSE" inclue la fin; donc au lieu de la fin avec; ce sera la fin sans ; }
else
writeln('The NightWalker was here!');

Dans ce cas, le programme verra que 2 n'est pas égal à 9, et va passer à la partie "ELSE" et afficher sur l'écran: The NightWalker was here! (et il descendra une ligne, reportez-vous ... writeln est une ligne vers le bas, et Write est de rester sur la même ligne!)
Consultez ce programme complet avec les exemples if et else:
program the_exemple;

var
a, b, c: integer;

begin { debut principal }

a:=1;
b:=2;
c:=3;
if ((b-a=a)and(b+a=c)) then { cela vérifiera si la condition de 2-1 = 1 et la condition de 2 + 1 = 3 sont vraies, si oui, alors la variable 'a' recevra zéro en elle-même }
a:=0
else { sinon, si même une des contiosions est fausse/non vérifiée alors les variables 'b' et 'c', recevront zéro, chacune d'elles ('b' et 'c') }
b:=0;
c:=0;

end. { la fin du programme }


1.6) Case


La première chose que vous devez savoir sur le "CASE" est que cela ressemble à "if".
Mais c'est plutôt comme le type simple de "if", avec "ELSE".
Prenez ce petit programme par exemple:
program case_exemple;

var
a: integer;

begin { debut principal }

readln(a); { une entrée par l'utilisateur à la variable 'a' }
case (a) of
1: writeln('Vous avez appuyé 1');
2: writeln('Vous avez appuyé 2');
3: writeln('Vous avez appuyé 3');

end;

end. { fin principale }

Le "CASE" est sur la variable "a", le "CASE" vérifiera si la valeur dans "a" est l'une des listes sous "CASE", le nombre ou le char avant le ":" est la valeur que vous aimeriez vérifiez, Et la ligne après le ":" est la commande que vous souhaitez activer si la valeur est correcte! (REMARQUE: vous ne pouvez PAS utiliser plus d'une commande ici après : ). Et lorsque vous souhaitez fermer le "Case", vous devez mettre "end;" mais NON "begin" après/sous le "CASE ({variable que vous souhaitez vérifier}) OF" !

1.7) Const - Constantes


Parfois, dans votre programme, vous avez besoin d'une sorte de nombre pour une utilisation constante!
Disons que vous souhaitez vérifier certaines variables si elles sont égales à: 3741.
Donc, au lieu de chaque fois que vous écrivez le nombre (3741), vous pouvez déclarer le nombre dans une variable spéciale.
Où dois-je le faire? vous-vous demandez, pas de problème!
Si vous voulez faire une telle chose, vous devez la faire après le "program" et avant le "var" !!!
... Après avoir écrit "CONST".
Regardez ce petit exemple:
program const_example;

const

m = 3741; { nous avons déclaré "m" comme variable const, vous ne pouvez pas le changer! }
{ La variable const peut être modifiée, et utilisée autant que vous le souhaitez! }
var
a, c: integer; { juste une variable globale régulière du type d'entier! }

begin { programme principal }

a:=7315;
c:=m;

if(a=m)
writeln('A est cool!') { et ici il n'y a pas de ";" à la fin, car la prochaine commande sera "ELSE"! }

else { vous voyez, nous n'avons pas utilisé un autre begin ici, car le "if" vient juste après le "ELSE", comme une commande, et après le "if" la même chose ... une seule commande! }
if (c=m)
writeln('Mariam joue à la balle.');

end. { fin du programme }


1.8) Nombres aléatoires


Parfois, vous aurez besoin d'utiliser un nombre aléatoire.
Eh bien, prenez un petit exemple d'un jeu de cartes, il vous faudra prendre une carte car le programme doit utiliser un certain nombre, n'est-ce pas? Mais quel nombre le programme devrait-il utiliser ... Vous devez indiquer au programme quelle est la gamme de nombres dont vous avez besoin pour choisir (le programme n'est pas celui qui prend ce nombre, mais la minuterie du PC. Vous voyez, tout ce que le programme fait est de prendre un nombre du temps de fonctionnement de l'ordinateur. C'est un exemple effrayant de savoir ce que l'idée du nombre "Aléatoire" fonctionne, mais c'est tout ce que vous devez savoir à ce sujet!).
OK, il existe trois types de nombres aléatoires.
  1. Un nombre aléatoire dont la portée sera de 0 à 1, de sorte que la variable qui recevra le résultat de ce nombre aléatoire, sera un type de variable "REAL".
        Par exemple, le nombre qui peut apparaître lorsque vous ferez le prochain:
    b:=random;  { "b" est de type real, rappelez-vous }

    et les nombres pourraient être dans la variable "b", après cette commande sont: 0.146 ..., 0.164 ... et plus encore.

  2. Un autre type de nombre aléatoire est où vous décidez, de quelle gamme le programme prendra au hasard. Disons que vous voulez un nombre aléatoire de 4 à 9, OK?
    Regardez:
    a:=random(9+1)+4;  { 'a' est de type entier }

    Ce que nous avons fait ici, nous avons ajouté au nombre entre ( ) 1 -> 9 + 1 (vous pouvez écrire 10, c'est exactement le même, mais ce n'est pas une erreur de continuer à utiliser 9 + 1), car le programme sera automatiquement envoyé à partir du nombre dans les ( ) 1.
       Donc, si nous n'avons pas mis +1 après le 9, alors la portée des nombres aléatoires serait de 4 à 8, compris? BIEN!
       Maintenant, après les ( ), nous avons mis +4, donc le programme savait d'où commencer à chercher un nombre aléatoire. Si vous mettez -4 après le ( ) vous obtiendrez la gamme de -4 à 9!
       REMARQUE: Le seul PROBLÈME avec cette façon d'obtenir des nombre aléatoire, c'est que chaque fois que vous exécutez votre programme, le nombre aléatoire sera le même!

  3. La 3e et la dernière façon vous permettra également d'aboutir à un nombre aléatoire, mais de cette façon, VOUS RESOLVEZ le problème de la dernière façon !!!


   Tout ce que vous devez faire est d'utiliser le mode précédent, MAIS, vous devez mettre: "RANDOMIZE" après le "BEGIN" principal! Donc, après avoir placé le "RANDOMIZE" sous le "BEGIN" principal. Donc chaque fois que le programme sera exécuté, le nombre aléatoire sera différent (mais ne sortira pas de la gamme spécifiée)!
Jetez un oeil à cet exemple, dans un programme complet:
program random_exemple;

begin { debut principal }

writeln('le nombre aléatoire entre 0 à 1, est: ', random);
writeln('et le nombre aléatoire entre 35 à 150, est: ', random(115) +35); {150-35 = 115 }

end. { fin du programme }


1.9) GoToXY



Parfois, vous aimeriez jouer avec l'emplacement de l'endroit où la prochaine ligne sera écrite ensuite, alors, comment faites-vous, tout simplement! Avec la commande GoToXY que vous utilisez dans votre code.
Regardez l'exemple suivant:
gotoxy(3,4); {vous pouvez toujours mettre des variables au lieu des valeurs, mais les valeurs et les variables DOIVENT être de type entier! }

Après ce petit exemple de commande, le spot sur l'écran sera à 3 endroits du coin supérieur gauche de l'écran et 4 places sous le bouton! C'est comme dans un repère en mathématiques: la première valeur est la X et la seconde est la Y et le coin supérieur gauche est l'origine
2 Cours en tout