1.0 LES BASES DU C++

Voici la première partie des cours, si vous ne comprenez rien du tout a la fin de ce chapitre, relisez bien comme il le faut ou alors abandonnez tout et vous ne pourrez pas vous la péter genre "Ouai jvien de pirater le FBI et jvé lancer sur internet un virus qui va tout dechirer.."

# Posté le lundi 09 janvier 2006 15:02

1.1 Ecrire (iostream, cout)

#include <stdlib.h>
#include <iostream>

using namespace std;

int main()
{
cout << "Salut !!";
system("pause");
return 0;
}



/*

COMMENTAIRE :
(le programme est au dessus, tout ce qui est entre le / * et le * / n'est plus le programme...)

voici le programme le plus simple ! Il écrit juste "Salut" a l'écran et attend qu'on appuie sur entrée pour quitter...
Tout programme normalement fait contient ce qui suit :

int main()
{



return 0;
}

"main" veut dire "principal" --> le programme fera tout ce qui sera entre le { et le } qui suivent le main.
- pourquoi int ?
parce que on veut que le programme, une fois fini, renvoie un "int" a Windows : un int est un entier.
C'est son code de retour, l'entier renvoyé a Windows servira juste a lui dire si ça s'est bien passé ou non !
Si vous etes noob, ne vous focalisez pas sur ce int, écrivez simplement l'étalon comme il est.
- pourquoi () ?
parce que "main" est une fonction, pour le moment, ça n'a pas d'importance.
- pourquoi "return 0; "
parce que le programme renvoie un entier a Windows. Le return 0 se trouve toujours a la fin du "main",
ainsi, si le programme arrive la, alors il va se finir, et s'il n'a pas planté, c'est qu'il a bien marché,
alors on renvoie le nombre 0, qui veut dire "ça s'est bien passé", ici. Encore une fois, si vous etes noob,
recopiez l'étalon ainsi, et passez immédiatement a ce qui suit :

Passons aux choses sérieuses !!

Le C++ en lui meme est comme un chef d'entreprise. Il est le cerveau, il sait commander mais c'est tout.
Il faut qu'il embauche un secrétaire :
un gars qui sait écrire a l'écran et lire au clavier.
Ce gars s'appelle "iostream.h"
On l'embauche avec la ligne suivante, en début de programme :

#include <iostream>

(note : nous verrsons le cas de stdlib.h ci dessous)

le include veut dire "on va se servir de iostream"

using namespace std;

pour pas vous casser la tete, dites vous que des que vous utilisez iostream, vous devez mettre cette
ligne en dessous.
Pourquoi ? iostream contient des fonctions enfermées dans un sac qui s'appelle std.
Il faut donc lui dire "utilise ce qu'il y a dans le sac std" avec cette ligne.
Avis perso : c'est juste pour faire chier le monde, je pense.
NOTE : CERTAINS COMPILATEURS PERMETTENT DE NE PAS METTRE CETTE LIGNE :"using namespace std;"
AUSSI SI VOUS AVEZ DES SOUCIS, ESSAYEZ DE L'ENLEVER.


Ensuite, passons a la suite

cout << "Salut !!";

ça écrit "Salut !!" a l'écran !!
cout est une fonction qui sert a écrire sur l'écran. Elle s'utilise avec la syntaxe <<.
J'insiste pas la dessus pour le moment.
derriere, on colle la phrase qu'on veut mettre entre guillemets.
Puis on colle un point virgule : on termine TOUJOURS par un point virgule apres l'appel d'une fonction.

Ensuite, passons a la suite :

system("PAUSE");

system est une fonction qui fait appel a votre systeme, et qui lui dit, ici, PAUSE, c'est a dire que si
enlevez cette ligne, une fois que votre programme aura terminé, il quittera tout de suite : et vous ne
verrez, finalement, qu'une fenetre DOS apparaitre qu'une fraction de secondes....

Dans les programmes sous la console, il est donc tres conseillé de terminer par cela (avant le return bien sur)
note : la commande systeme appartient a "stdlib.h" ce qui explique la premiere ligne #include <stdlib.h>

*/

/* Exerices :
1) écrivez "bonjour" a la place de Salut.
2) faites en sorte qu'il faille appuyer 2 fois sur entrée pour sortir et non une.
3) écrivez "salut", attendez qu'on appuie sur une touche, et écrivez "hola", puis attendez une touche.

*/

/* Solution :
1) cout << "bonjour";
2) suffit de le mettre 2 fois :

system("PAUSE");
system("PAUSE");

3)
cout << "salut";
cin.get();
cout << "hola";
cin.get();

*/

# Posté le lundi 09 janvier 2006 15:03

1.2 Demander des infos (notion de variables, cin)

#include <stdlib.h>
#include <iostream>

using namespace std;

int main()
{
int age;
cout << "votre age ?" << endl;
cin >> age;
cout << "vous avez " << age << " ans" << endl;
system("PAUSE");
return 0;
}

/* COMMENTAIRES

int age;

On crée une variable : un entier que l'on appellera age. Une case mémoire.
Les matheux diront "soit age un entier".
Dorénavant, "age" sera un nombre entier (int veut dire entier).
Métaphore : si vous etes le programme, devant vous, vous prenez un post-it,
qui s'appelle "age", vous pourrez écrire dessus un nombre entier.

cout << "votre age ?" << endl;

Ici, on ajoute endl. Note : remarquez a nouveau des <<
endl est une commande spéciale qui veut dire "end line" --> fin de ligne
ça permet de revenir a la ligne : si vous avez fait l'exercice 3 de hello.cpp,
vous avez du remarqer que ça ne revenait pas a la ligne, et ce, malgré plusieurs cout.
Pour revenir a la ligne, faut mettre endl. (Comme <br> en HTML)

cin >> age;

cin attend que vous entriez quelque chose au clavier. Ce quelque chose, il le rangera
dans "age". Remarquez que les >> sont dans l'autre sens pour cin.
A la fin de cette ligne, le programme vous a arreté pour vous demander d'écrire au clavier.
Ce que vous aurez entré au clavier se stockera dans "age", sur votre post-it,
vous gardez le résultat entré par l'utilisateur.

cout << "vous avez " << age << " ans" << endl;

la seule chose qui vous est inconnue ici est l'utilisation de age sans les " ".
Essayez de mettre des " " autour de age, et regardez ce que ça fait
Comprenez ce que ça fait : ici on ne demande pas d'écrire le mot "age", mais la valeur de age.

Pour le system("PAUSE"); voir premier tuto

*/

/* Exercices
1) Essayez d'écrire des lettres au lieu d'écrire des chiffres quand vous lancez le programme, que se passe t il ?
2) Demandez aussi son poids, et affichez les 2...
3) affichez le nombre 5 simplement.

*/

/* réponses
1) si vous mettez une lettre alors que le cin attends un int (car age est un int), alors age prend la valeur 0.
2) note : les // représentent un commentaire, tout comme les / * * /

int age,poids; // 2 int déclarés
cout << "votre age ?" << endl;
cin >> age;
cout << "votre poids ?" << endl;
cin >> poids;
cout << "vous avez " << age << " ans et vous pesez " << poids << " kilos" << endl;

3)
cout << 5;

--> reviens au meme que cout << "5" sur l'écran, cependant, le C++ voit qu'il affiche un nombre, ou du texte...

*/
[ Ajouter un commentaire ] [ Aucun commentaire ]

# Posté le lundi 09 janvier 2006 15:04

1.3 Faire reagir l'ordi (Condition : if)

#include <stdlib.h>
#include <iostream>

using namespace std;

int main()
{
int age;
cout << "votre age ?" << endl;
cin >> age;
cout << "vous avez " << age << " ans" << endl;
if (age<18)
{
cout << "vous etes mineur" << endl;
}
else
{
cout << "vous etes majeur" << endl;
}
system("PAUSE");
return 0;
}


/* COMMENTAIRE

ce programme vous demande votre age, l'affiche, puis vous dit si vous etes majeur ou mineur...

On reconnait le code du tutorial d'avant.
Mais on a rajouté un "if"
pour les anglophobes : if = si, else = sinon.
A partie de la tout est dit. Vous avez entré votre age, s'il est <18 alors il va faire les accolades
qui suivent, sinon, il va faire les accolades qui suivent le else.

la forme est toujours :

if (CONDITION)

où CONDITION est quelque chose de vrai ou de faux (on dit que c'est un prédicat)


Note pour les non-noobs : les {} des if ne sont pas forcément necessaires ici car il n'y a
qu'une seule instruction par bloc.

NOTE PIEGE DU C :
si vous voulez tester que age = 18, il ne faut pas mettre :
if (age=18)
mais :
if (age==18) // 2 fois = !!

Pourquoi ?
Parce que le simple égal veut dire "dorénavant, age = 18", et le double == veut dire "je teste si age == 18"
on parle de égal "d'assignation" et de égal de "test"

Note : différent de se code ainsi : !=

if (age!=18)

*/

/* Exercices :
1) modifiez le programme pour qu'il affiche "vous etes mineur" si age<18,
"majeur" si entre 18 et 70 , "vieux" si plus de 70 ans.
a) avec des if imbriqués
b) avec des tests logiques

2) Modifiez le programme pour qu'il affiche juste "vous etes mineur" si age<18 et rien sinon.
*/

/* Réponses :
a)
if (age<18)
{
cout << "vous etes mineur" << endl;
}
else
{
if (age>=70) // >= veut dire "plus grand ou égale" (il y a aussi <= )
{
cout << "vous etes vieux" << end;
}
else
{
cout << "vous etes majeur" << endl;
}
}

b)
if (age>=18 && age<70) // && veut dire littéralement "ET" (voir plus bas)
{
cout << "vous etes majeur" << endl;
}
else if (age<18)
{
cout << "vous etes mineur" << endl;
}
else // necessairement l'autre cas.
{
cout << "vous etes vieux" << endl;
}


Le "if" est quelque chose qui est logique : il faut le lire a haute voix en français
pour bien comprendre ce qu'on fait. Il y aurait encore plein de façons de faire le if.

2)

if (age<18)
{
cout << "vous etes mineur" << endl;
}

--> si y'a pas besoin de else, on n'est pas obligé de le mettre !
la ligne qui suivra la } sera la suite du programme, qui se fera quoi qu'il arrive...

*/


/* Opérateurs logiques binaires :
Ce truc d'apprend au fur et a mesure, pas besoin de voiloir absolument comprendre maintenant.

&& = ET
|| = OU logique (c'est l'un ou l'autre ou les deux)

moins utilisé, mais existant :
^ = OU exclusif (c'est l'un ou l'autre mais pas les deux)

Opérateur logique unaire :
! = NON
exemple :

(age<18) --> si ça renvoie OUI, alors
!(age<18) --> renvoie NON
et vice versa : le ! change le NON en OUI et le OUI en NON.

*/
[ Ajouter un commentaire ] [ Aucun commentaire ]

# Posté le lundi 09 janvier 2006 15:04

1.4. Afficher les nombres de 1 à 100 (boucle : for)

#include <stdlib.h>
#include <iostream>

using namespace std;

int main()
{
int i;
for(i=1;i<=100;i++)
{
cout << i << endl;
}
system("PAUSE");
return 0;
}

/* Commentaire :

Pour affiche les nombres de 1 à 100, la façon idiote est de faire :

cout << 1 << endl;
cout << 2 << endl;
cout << 3 << endl;
...

Affreux...

Donc voila "for", il fait ce qu'on appelle une boucle.
Il utilise une variable de type "int" pour cela.

il départ que i=1.
et TANT QUE t<=100, alors il tourne, en faisant a chaque tour i++
(i++ veut dire "augmente i de 1", on aurait pu écrire : i=i+1 c'était pareil)
Et a chaque fois, dans le for, on peut lire la valeur de i.


note pour ceux qui en veulent plus :

i++ <=> i=i+1;
i-- <=> i=i-1;
i+=a <=> i=i+a;
i-=a <=> i=i-a;
i*=a <=> i=i*a; // multiplication
i/=a <=> i=i/a; // division ENTIERE

*/

/* Exercices :

1) afficher tous les nombres de 100 à 0 dans ce sens
2) afficher les nombres pairs jusqu'a 100
3) afficher la somme de tous les nombres de 1 à 100

*/

/* Réponses :

1)
for(i=100;i>=0;i--)
{
cout << i << endl;
}

2)
for(i=0;i<=100;i=i+2)
{
cout << i << endl;
}

3)

int r=0; // initialise r (le futur résultat) à 0.
int i;
for(i=0;i<=100;i++)
{
r=r+i;
}
cout << "résultat :" << r << endl;

*/
[ Ajouter un commentaire ] [ Aucun commentaire ]

# Posté le lundi 09 janvier 2006 15:05