dimanche 6 juillet 2014

Une liste simple en c++ grâce à la STL

Une liste, ce n'est pas un tableau même si cela y ressemble beaucoup.

Le fichier à inclure est : <list>

L'espace de nom est: std

C'est une classe Template, ce qui veut dire qu'elle peut être utilisée avec quasi n'importe quel type, qu'il soit interne ou créé par vous même.

Pour créer une liste d'entier, procédez comme suit:
list<int> listeEntier;

pour ajouter un élément à la fin de la liste:
listeEntier.push_back(valeurAInserer);

pour récupérer le premier élément:
unEntier = listeEntier.front();

pour sortir le premier élément de la liste:
unAutreEntier = listeEntier.pop_front();


Si vous avez une question, n'hésitez surtout pas, je me ferai un plaisir de vous répondre et de compléter les informations. A la base, ceci n'est qu'un aide mémoire.

A bientôt

Dagal.




mercredi 1 mai 2013

Petit tutoriel de base en C.

Le langage où je me sens le plus à l'aise est et restera le langage C.

Ce langage est de loin le plus populaire pour la programmation système. Je vais donc vous montrer comment  écrire un programme de base pour Linux. Pourquoi Linux, me direz vous? Et bien, j'ai définitivement abandonné Microsoft, et depuis, je n'ai jamais plus eu de problèmes de stabilité, de virus, de logiciel payant, de ...

Donc, pour en revenir à nos moutons, il va falloir que je m'y mette un peu.

Tout d’abord, il faut savoir que Linux, ou plus exactement GNU/Linux est un système UNIX comme il en existe beaucoup d'autre. C'est très certainement le plus répandu chez le particulier mais aussi sur de nombreux serveur WEB. Il en existe plusieurs distributions, mais toutes fonctionnent avec le même 'coeur' : GNU/Linux Kernel. Celui ci a été inventé par Linus Torvald, d'où Linux.

Le Linux est un système multitâche et multiutilisateur, ce qui fait de lui quelque chose de puissant sans pour autant être compliqué.

Le fait d'être multiutilisateur introduit la notion de droit d’accès et de propriété des fichiers de l'ordinateur.

Le fait d'être multitâche, quand à lui, va introduire la notion de traitement (thread) et de priorité d'exécution.

Tout ceci n'influencera pas de beaucoup le programme de base mais sera très utile par la suite.

Cette parenthèse passée, je vais enfin rentrer dans le vif du sujet.

En premier, nous allons organiser notre répertoire de travail. Afin de mettre tout le monde d'accord, vous aller ouvrir terminal utilisateur. Par ailleurs, je considère que tout se fera directement via cette console. Avec l'habitude, comme moi, vous ne pourrez plus vous en passer.

Dans votre console préférée tapez les lignes suivantes :
$: cd ~
$: mkdir dev
$: cd dev
$: mkdir  C
$: cd C
$: mkdir Dagal
$: cd Dagal
$: mkdir HelloWorld
$: cd HelloWorld
$: emacs HelloWorld.c
Après avoir créé les différents répertoires nécessaires, je lance mon éditeur préféré EMACS. Pourquoi Emacs? Simplement parce que c'est un des plus complet, voir même LE plus complet pour faire du développement. Son apprentissage peut paraître rébarbatif pour certain, mais dites vous que moi aussi je suis passé par là. N'hésitez pas à suivre son tuto...

Nous voila donc aux commandes de notre futur logiciel de pointe. Afficher Hello World! dans notre console. C'est bien connu, il faut un début à tout...

La commande en C qui nous permet d'afficher cette phrase tant réputée est :
printf("Hello World!\n");
Oh! C'est tout? Euh! oui et non! Il y a des choses à faire avant et d'autre après, histoire que l'ordinateur comprenne ce qu'on lui veut. Voici donc le programme complet :

#include <stdio.h>
int main (int argc, char **argv)
{
  printf("Hello World!\n");
  return 0;
}

Vous pouvez maintenant sauvegarder votre fichier en faisant ctrl-x et puis ctrl-s ensuite vous pouvez quitter Emacs avec la suite de touche ctrl-x et ctrl-c.

Vous voila donc de retour dans la console, si vous tapez la commande ls, vous obtiendrez la liste des fichiers dans le répertoire courant, et vous verrez votre fichier apparaître si vous avez bien suivi.

Maintenant, vous aimeriez bien voir votre programme fonctionner, et c'est bien normal, mais il y a encore une étape intermédiaire à réaliser, la compilation...

Allons donc compiler ce super programme de la mort qui tue.

$: gcc HelloWorld.c -o HelloWorld

Et maintenant, on l'exécute enfin :

$: ./HelloWorld

Admirez le résultat...

C'est beau tout ça mais, je suis certain que vous aimeriez comprendre ce que vous venez de réaliser, voici les explication tant recherchée:

#include <stdio.h>

Le langage C à lui tout seul n'est pas capable de faire grand chose, il faut donc lui ajouter des extensions. La pseudo commande #include est là pour ça, elle charge un fichier qui sera ajouté à votre programme afin d'avoir des fonctionnalités supplémentaire. Dans notre cas, c'est la fonction printf qui nous intéresse.

int main (int argc, char **argv)

C'est comme ça que l'on déclare une fonction en C.
Le nom de la fonction est main et celle ci renvoie un nombre entier en retour (int)
Cette fonction reçoit 2 arguments, le premier correspond au nombre de paramètres entré dans la ligne de commande et le second donne la liste de ces paramètres.

{ démarre un bloc de programme tandis que } le termine

printf("Hello World!\n");

printf permet d'afficher quelque chose dans la console avec un certain formatage. Une chaîne de caractères se délimite toujours par des guillemets. Le \n permet de faire un retour à la ligne.

return 0; dit à Linux que tout s'est bien déroulé dans le programme et qu'il peut faire autre chose sans aucun soucis.


Voila pour ce qui est de mon premier tutoriel. J'espère que cela vous a été utile. N'hésitez pas à me faire part de vos critique, je suis ouvert à tout.

Dagal.

lundi 29 avril 2013

Programmation simple

Programmation simple.

Il ne faut pas toujours croire ce que vous voyez ou entendez.

Programmer n'est pas si compliqué, il suffit parfois juste de s'appliquer un peu.

Personnellement, j'aime le C, le C++, le Lisp et le Prolog, mais je ne m’arrête pas là.

Bientôt, sur ce blog, vous pourrez y trouver des tutoriaux concernant la base de la programmation.

Je vous l'avoue, cela me servira de pense bête...