[TUTO débutant] La programmation pur les nuls

Informations pour bien débuter en PureBasic
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

[TUTO débutant] La programmation pur les nuls

Message par microdevweb »

Bonjour à tout un membre du forum m'a demandé un tutoriel sur les bases de "Pure Basic". Donc voici un tutoriel sur les bases de la programmation et tout spécialement adapté pour ce fabuleux langage.Pour ne pas déroger à la règle nous commancerons en mode console et passerons assez vite en mode fenêtré.

Plant de la formation :
[*]Teste conditionnel et opérateurs logiques.
[*]Branchement à choix multiples.
[*]La boucle While when et Do while

Remarque : ce tutoriel va être mis à jour petit à petit, si le texte se surligne au passage de votre souris c'est le chapitre est en ligne. Dans le cas contraire il faudra patienter.
Dernière modification par microdevweb le ven. 24/août/2018 9:30, modifié 10 fois.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: [TUTO débutant] La programmation pur les nuls

Message par microdevweb »

Ouverture de la la console.

Pour ouvrir une console la commande est assez simple OpenConsole("Titre"). Cependant si vous tapez cette ligne dans l'ide de "PureBasic" et exécuter le programme vous constaterez que la console s'ouvre et se ferme aussitôt. 8O

Rassurez - vous cela est tout à fait normal. En mode console nous ne travaillons pas en mode événementiel mais en programmation linéaire, ce qui revient à dire que toutes commandes vont s’exécuter les unes à la suite des autres et dans l'ordre où nous les appelons.

Donc en mode console une fois arrivé à la fin du programme la console se ferme.

Pour résoudre ce problème nous allons taper ce code.

Code : Tout sélectionner

OpenConsole("Titre")
Input()
Ne vous souciez pas de la commande Input(), je vous rassure nous allons la voir très rapidement.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: [TUTO débutant] La programmation pur les nuls

Message par microdevweb »

Afficher un texte à l'écran.

Bon c'est bien beau d'ouvrir la console, mais si c'est pour ne rien faire !!! :twisted:

Je vous donne raison, là ça ne sert à rien. Nous allons donc dire à bonjour aux futurs heureux possesseurs de votre programme.

Code : Tout sélectionner

OpenConsole("Titre")
Print("Bonjour tous le monde.")
Print(" Comment allez-vous?")
Input()
Ha bon, ça ne fait pas de saut de ligne! 8O

Et bien non Print ne fait pas de saut de ligne, par contre PrintN oui. Voyez plutôt.

Remarque : le saut de ligne sera effectué après l'affichage de la ligne.

Code : Tout sélectionner

OpenConsole("Titre")
Print("Bonjour tous le monde.")
PrintN(" Comment allez-vous?")
Print("Cliquez sur une touche pour fermer le programme")
Input()
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: [TUTO débutant] La programmation pur les nuls

Message par microdevweb »

Les variables.

En programmations l'utilisation des variables est indispensable.

Mais c'est quoi une variable .

Une variable c'est une zone de la mémoire de l'ordinateur qui va être réservée spécialement pour nous.

Mais comment on fait pour réserver cette adresse mémoire, houla ça a l'air compliqué ça.

Non je vous rassure ça ne l'est pas et principalement en "Pure Basic".

Code : Tout sélectionner

maVariable = 0
Remarque : "PureBasic" n'est pas sensible à la case donc cet exemple ne compilera pas car on tente de déclarer deux fois la même variable.

Code : Tout sélectionner

maVariable = 0
mavariable = 0
Vous voyez c'est vraiment tout simple, maintenant ou est stockée cette variable allez-vous me demander.
Et bien c'est votre système d'exploitation qui le sait car c'est lui qui a effectué cette opération complexe.

Maintenant on peu récupéré l'adresse à l'aide des pointeurs, mais ce sera pour bien plus tard dans la cour.
Dernière modification par microdevweb le ven. 24/août/2018 8:31, modifié 2 fois.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: [TUTO débutant] La programmation pur les nuls

Message par microdevweb »

Les types de variables.

Pourquoi utiliser plusieurs types de variables ?

Au début de l'informatique, la mémoire coutait très cher et un ordinateur ne possédait que très peut de mémoire vive (zone où sont stockées nos variables).

L'on choisissait donc le type de variable à utiliser en fonction du type de données à stocker.

De nos jours même si notre ordinateur possède bien souvent plusieurs Go de mémoires vives, la bonne pratique reste de choisir le bon type de variable.

Comment sont stockées les données?

Un ordinateur n'est vraiment pas intelligent, il ne connaît que deux choses le 0 et le 1. (0 pas de courant,1 le courant passe).

Par contre des ingénieurs (ce que je ne suis pas) très intelligent ont trouvé le moyen de pratiquement tout traité avec ces deux seules valeurs.

Je ne vais pas m'attarder sur le sujet mais voici en gros comment cela fonctionne.

Prenons le chiffre 12 en décimal on peut dire que c'est égal à 2 + 10 ou (2 * 1) + (1 * 10) .

En binaire ce sera code comme ceci (0 * 1) + (0 * 2) + (1 * 4) + (1 *8)
soit (les bits se lisent de droite à gauche)
1100

Vous l'aurez compris après se sera (0 ou 1 * 16) et puis (0 ou 1 * 32) et puis (0 ou 1 * 64) etc.

Donc plus la valeur peut être élevée et plus on aura besoin de bit (ne pas confondre avec byte qui équivaut à un octet ou 8 bits).

Reste aussi le cas de valeur signé, là aussi le signe aura besoin d'un bit pour être sauvé (le bit de poids fort celui le plus à gauche).

Quant aux caractères, le système n'est pas différents on stockera une valeur sur 1 octet soit 8 bits. (de 0 à 255) et l'os ira simplement lire la valeur dans une table ASCII qui vous l'aurez deviné contiennent 256 caractères.

Remarque : je ne parlerais pour l'instant de l'UTF8 qui est légèrement différent.

Les variables à virgule flottante sont quant à elles les plus difficiles à calculer pour un ordinateur. Cela se fait à l'aide d'une mantisse et le cpu possède dans son architecture une zone réservée à cet effet.

Cette petite introduction étant terminée, voyons ensemble les différents types disponibles dans "Pure Basic".

On stipulera le type en ajoutant un point après le nom suivi du type représenté généralement par une lettre.

Je vous renvoie à la documentation officielle de "PureBasic" pour découvrir tous les types de variables mis à votre disposition.

Les type de variables
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: [TUTO débutant] La programmation pur les nuls

Message par microdevweb »

Les opérateurs mathématique

En "PureBasic" on peut faire toutes sortes de calculs, je vous présente les plus courants sachant qu'ils en existent d'autres.
  • L'addition + peut servir également à concaténé deux textes entre eux.
  • La soustraction - .
  • La division /.
  • La multiplication *
Liste de tous les opérateurs

Exemple :

Code : Tout sélectionner

OpenConsole("Titre")
maVariable = 10 + 2
PrintN(Str(maVariable)) ; affichera 12
maVariable = 10 - 2
PrintN(Str(maVariable)) ; affichera 8
maVariable = 10 * 2
PrintN(Str(maVariable)) ; affichera 20
maVariable = 10 / 2
PrintN(Str(maVariable)) ; affichera 5
text.s = "Bonjour "
text2.s = " tous le monde"
PrintN(text + text2) ;affichera Bonjour tous le monde
Input()
Remarque : La fonction Str convertit un entier en chaîne de caractères.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: [TUTO débutant] La programmation pur les nuls

Message par microdevweb »

Lire une donnée utilisateur depuis la console.

Il est indispensable pour interagir avec l'utilisateur de lui poser certaines questions. Pour ce faire on utilise simplement la fonction Input() qui retournera la chaîne de caractères saisie par l'utilisateur.

Exemple :

Code : Tout sélectionner

nom.s = Input()
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: [TUTO débutant] La programmation pur les nuls

Message par microdevweb »

TP: Utilisation de ma première variable

Il est temps de vous mettre au travail, ce n'est pas en recopiant bêtement du code que vous aller apprendre.

Avec tous ce que nous avons vu précédemment, cela ne devrait pas poser de soucis

Énoncer :

Faite un programme en mode console, qui demande le nom à l'utilisateur et lui dit exemple "bonjour Pierre"

À vous de jouer, la réponse ne sera publiée que dans plusieurs jours :wink:
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
SPH
Messages : 4721
Inscription : mer. 09/nov./2005 9:53

Re: [TUTO débutant] La programmation pur les nuls

Message par SPH »

Code : Tout sélectionner

OpenConsole()

debut:

PrintN("Votre prenom : ")
nom$=Input()
If nom$=""
  Goto debut
EndIf

PrintN("Bonjour "+nom$)
Repeat
ForEver

http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: [TUTO débutant] La programmation pur les nuls

Message par Ar-S »

SPH tu aimes les boucles dans fin :)

Je verrai plus ça comme ça

Code : Tout sélectionner

OpenConsole()

PrintN("Votre prenom : ")
nom$=Input()
If nom$=""
  nom$ = "personnage mystere !" ; pour la blague
EndIf

PrintN("Bonjour "+nom$)
PrintN("Pressez une touche pour quitter")

; Gestion d'une touche afin de quitter le programme proprement et pas par un repeat/forever qu'il faut quitter à la walou :D  
Repeat
  KeyPressed$ = Inkey()
  If KeyPressed$ <> ""
    Q=#True
  Else
    Delay(30) ; respire proco respire
  EndIf
Until Q=#True
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: [TUTO débutant] La programmation pur les nuls

Message par microdevweb »

Petit rappel ceci est un tutoriel pour les vrais débutants, qui n'on probablement jamais codé de leur vie.
L'étude des boucles est évidement prévue, par contre pas le Goto que je n'ai (à l’exception de l'asm ou on ne sait pas faire autrement) jamais utilisé dans aucun de mes programmes.

Le code spaghetti c'est fini depuis que le basic offre les procédures et fonctions. :mrgreen:
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
SPH
Messages : 4721
Inscription : mer. 09/nov./2005 9:53

Re: [TUTO débutant] La programmation pur les nuls

Message par SPH »

Désoli :?
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Marc56
Messages : 2145
Inscription : sam. 08/févr./2014 15:19

Re: [TUTO débutant] La programmation pur les nuls

Message par Marc56 »

(Attendre une touche pour fermer la fenêtre)

Ça, ça marche mais ça tourne en rond.

Code : Tout sélectionner

Repeat
ForEver
Ça c'est mieux, mais c'est beaucoup pour les débutants et ça tourne toujours en rond.

Code : Tout sélectionner

; Gestion d'une touche afin de quitter le programme proprement et pas par un repeat/forever qu'il faut quitter à la walou :D 
Repeat
  KeyPressed$ = Inkey()
  If KeyPressed$ <> ""
    Q=#True
  Else
    Delay(30) ; respire proco respire
  EndIf
Until Q=#True
La programmation console, c'est de la programmation linéaire, donc il suffit de mettre une instruction d'attente utilisateur.
Simplement:

Code : Tout sélectionner

Input()
:mrgreen: (bon, le prof l'a écrit lui-même dans tous les exemples ci-dessus, vous suivez pas dans le fond de la classe)
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: [TUTO débutant] La programmation pur les nuls

Message par microdevweb »

Pourquoi débuter en mode console ? La programmation linéaire est plus simple à appréhender que la programmation événementiel. Et apprendre les bases sera donc plus simple en console, le but étant aussi de prendre de bonnes habitudes et on y va pas à pas.

Alors oui certainement pour des codeurs expérimenté ce tuto semble stupide... Mais avant d'apprendre à courir on doit apprendre à marcher.

Maintenant je ne sais pas s'il à bck de débutants sur le forum et ce tuto n'est certainement pas une bonne idée (et une grosse perte de temps inutile pour moi) donc je ne suis pas sur qu'il va avancer à grand pas. Et me demande s'il ne faudrait pas tout simplement le supprimer.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Marc56
Messages : 2145
Inscription : sam. 08/févr./2014 15:19

Re: [TUTO débutant] La programmation pur les nuls

Message par Marc56 »

Pour la programmation console, peut être peu, mais tu en auras pour la programmation évènementielle à condition de rester simple.
À savoir: rester dans la méthode standard, sans aborder la méthode bind... ni les pointeurs, ni les structures.

Quand on voit par exemple le nombre de débutants qui se bloquent parce que qu'ils font deux boucles évènementielles, il y aurait matière à faire un schéma par exemple.

:wink:
Répondre