MON 1 : Initiation à C++

Tags :
  • MON
  • 2023-2024
  • temps 1
  • Informatique
  • Langage C++
  • Apprentissage d'un langage
Auteurs :
  • Lucie Le Boursicaud

Dans ce MON l'objectif est de découvrir un nouveau langage informatique dans lequel je n'ai aucune base. A la fin des 10h de cours j'espère savoir coder de petits algorithmes simples en C++.

Niveau débutant

Prérequis : Savoir ce qu'est un langage orienté objet.

Sommaire

  1. Présentation du langage
  2. Syntaxe du C++
  3. Premiers algorithmes
  4. Orientation objet

1.Présentation du langage

Le langage C++ est apparu dans les années 90 et il est aujourd'hui devenu un langage très utilisés et indispensable pour certains programmeur. Son grand atout est sa fonctionalité de classe permettant d'utiliser la programmation object comme en JAVA. Sa rapidité, sa puissance ainsi que sa très bonne gestion de la mémoire font de lui un langage incontournable. Nous allons découvrir ensemble les bases de ce langage.

Documents et outils utilisés

La programmation en C++ La programmation objet en C++ Exercices de programmation sur CodeSignal

2. Syntaxe du C++

Type de variable

Comme d'autres langages le C++ possède plusieurs type de variables :

Parfois on pourra rencontré le type unsigned , il s'agit d'un entier dit "non signé".

Déclarer une variable

Il est nécessaire de déclarer une variable avant de devoir l'utiliser en C++. Pour déclarer une variable on utilise la syntaxe suivante : type liste_de_variables. Exemples :

 int a, b, c;    // déclare trois entiers a,b et c
 const float Taille = 1.67;  // déclare une constante de type float
 const Nom = 'Lucie'; // déclare une constante littérale

Les différents opérateurs

 20.0 / 3.2    donnera  6.25
 15 / 8       donnera 1
 15 % 8       donnera 7

Comme d'autres langage l'utilisation de ++ ou de -- permet d'incrémenter ou de décrémenter une variable.

Instructions

Pour donner des instruction en C++ on peut soit faire une instruction par ligne comme ceci :

int a = 4;
a++; 

Ou utiliser des instruction-bloc comme ceci :

{
  int a = 4;
  a++ ;
}

Si je déclare une variable dans un bloc alors elle ne pourra pas être utilisée en dehors de ce bloc., il s'agit d'une variable locale. Il est interdit de donner le même nom à deux variables distinctes au sein d'un même bloc. Si je déclare une variable en dehors d'un bloc alors c'est une variable dite globale.

Fonctions

Elements de bases

Une fonction est définie par 4 éléments distincts :

Toute fonction doit être définie avant de pouvoir être utilisée. Pour déclarer une fonction on utilise cette syntaxe : type nom(liste_des_paramètres). Exemples :

double Distance(double x1, double y1, double x2, double y2);
char Concatenation(char mot1, char mot2);
void AfficherUnNombreXFois(int nombre, int x);

On voit ici l'utilité de void rencontré plus tôt. La dernière fonction n'a pour vocation que d'afficher et ne return pas de valeur.

Définir une fonction

Pour déclarer une fonction voici la syntaxe : type nom_de_la_fonction(tous_les_paramètres) { corps de la fonction }

Exemples :

double Moyenne(double x, double y){
  return (x + y) / 2.0
}

Lorsque l'on utilise return cela interrompt l'exécution de la fonction.

Utiliser une fonction

Une fois ma fonction déclarée je peux appeler ma fonction pour l'utiliser sur différentes valeurs.

double n=3;
double m=4;
double resultat = Moyenne(n,m);

Alors la variable resultat récupérera la valeur de la moyenne de 3 et 4 soit 3.5.

Les différentes instructions

Comme d'autres langages on retrouve les instructions de bases if, while, do, for, et aussi switch qui permet de dissocier différents cas pour lequels on ne veut pas lancer la même instruction.

Compléments

Il existe des expressions particulière en C++.

Plusieurs fonctions utiles sont aussi à connaitre telles que : floor, fabs, sqrt, pow ainsi que les fonctions trigo.

enum Chiffres { un, deux, trois, quatre, cinq, six, sept, huit, neuf}
enum Peinture { huile, gouache, acrylique, aquarelle}

Alors on obtiendra la déclaration implicite des constantes entières :

const int huile=0;
const int gouache=1;
const int acrylique=2;
...

Et attribue à ces constantes un type appelé Peinture.

Exemples:

int taille[2];       //tableau de deux entiers pour indiquer sa taille
double tempsdouche[7];     //tableau de 7 réels pour indiquer le nombre de minutes passées sous la douche
Peinture collection[10];    //tableau de 10 peintures

Soit i une expression entière, on note Peinture[i] l'élement d'indice i du tableau Peinture.

char couleur[8]; // on a 7 caractères utiles
strcpy(couleur, "rouge")

Les chaines de caractères peuvent être affichées grâce aux habituels cin et cout. De nombreuses fonctions de bases utiles pour les chaines de caractères sont déjà pré-définies en C++.

3.Premiers algorithmes

Dans cette partie je vais m'exercer à coder de petits algorithmes simples avec ce que j'ai appris du langage.

Algorithme de calcul de distance entre deux points

double Distance(x1,y1,x2,y2){
  double dx,dy;
  dx = x1-x2;
  dy = y1-y2;
  return sqrt(dx*dx+dy*dy);
}

Algorithme de calcul du maximum entre deux entiers

int Max(int a, int b)
{
if ((a <= b))
return b;
return a;
}

Algorithme de calcul du maximum entre une liste d'entiers

int main()
{
    int arr[] = { 2, 7, 9, -1, 0, 3, 6, 21, 8, -12};
 
    int max = INT_MIN;
    for (int i: arr)
    {
        if (i > max) {
            max = i;
        }
    }
    return max;
}

Entrainement sur CodeSignal

Suite à cela j'ai repris le mode arcade de CodeSignal depuis le début mais en codant en C++ cette fois-ci. CodeSignal est une plateforme qui permet d'évaluer ses compétences en développement. Elle propose une variété de défis de programmations qui peuvent résolu en utilisant le langage de son choix.

4. Orientation Objet

Définitions

En informatique un objet est défini comme ce qui suit : "Un objet est une structure informatique regroupant : - des variables, caractérisant l'état de l'objet, - des fonctions, caractérisant le comportement de l'objet."

Tout objet appartient à une classe, on dira que l'objet est une instance de cette classe. Ainsi avant de décrire un objet il est important de décrire la classe à laquelle il appartienne.

Stratégie D.D.U

Lorsque l'on souhaite programmer une classe, on passe par trois phases :

Déclaration

Cette partie se traite dans un fichier .h qui se présente sous cette forme :

class Classe
{
  public : 
    *déclaration*
  private :
    *déclaration*
}
Définition

Cette partie se traite dans un fichier .cpp qui contient les définitions des fonctions de la classe.

Utilisation

Cette partie se traite aussi dans un fichier .cpp dans lequel on pourra utilisé notre classe.

Ainsi pour chaque classe on aura un fichier .h avec sa déclaration et un fichier .cpp contenant sa définition.

Comment créé un programme ?

On procéde en trois étape :

Pour ce faire, sur Microsoft, il suffit de créer les fichiers sources, de les ajouter dans un projet et de lancer la commande build. Les phase 2 et 3 se feront alors automatiquement.

Conclusion

Pendant ce MON j'ai pu découvrir ce nouveau langage qui m'est désormais bien moins inconnu. J'ai pu le pratiquer à l'aide de CodeSignal sur des algorithmes plutôt simple. J'ai appris comment l'utiliser en orientation objet avec un exemple du cours que j'ai consulté (voir dans les ressources). En 10h il est compliqué de maîtriser un nouveau langage mais le but ici était de le découvvrir et d'en comprendre les bases.