Avant d'apprendre un langage de programmation il est important d'avoir quelques notions d'algorithmie.
C'est un ensemble de règles opératoires dont l'application permet de résoudre un problème énoncé au moyen d'un nombre fini d'opérations. Un algorithme peut être traduit, grâce à un langage de programmation, en un programme exécutable par un ordinateur. (Larousse)
Une notice de montage de meuble
Une recette de cuisine
En informatique, il existe plusieurs façons de représenter un algorithme.
L'organigramme est une représentation graphique, elle présente l'avantage d'être très simple à comprendre.
Mémo diagramme d'activité : https://www.uml-diagrams.org/activity-diagrams-controls.html
En programmation, le pseudo-code, également appelé LDA (pour Langage de Description d'Algorithmes) est une façon de décrire un algorithme en langage presque naturel, sans référence à un langage de programmation en particulier. Il n'existe pas de réelle convention pour le pseudo-code.
Un bon moyen de s'initier à l'algorithmie est d'utiliser le logiciel Scratch https://scratch.mit.edu/ : la représentation utilisée dans Scratch est du pseudo code !
Une variable permet au programme de mémoriser une information afin qu'il puisse l'utiliser plus tard. L'ordinateur stock les variables dans sa mémoire vive (RAM). Dans un programme, chaque variable est désignée par son nom. Le nom de la variable est choisi par le programmeur.
On demande deux nombres à l'utilisateur et on affiche ensuite le résultat de la multiplication des deux nombres.
#include <stdio.h> // inclure la bibliothèque STandard Input Output
// permet d'utiliser, entre autre, printf et scanf
int main() // main désigne le programme principal il est délimité par des accolades
{ // Début du main
printf("Hello World !"); // La fonction printf permet d'afficher du texte à l'écran
return 0; // Fin du programme, généralement on renvoie la valeur 0 pour signaler le bon déroulement
// de celui-ci (un numéro d'erreur peut être renvoyé en cas d'erreur)
} // Fin du main
Traduction de l'agorithme "Multiplication de deux nombres" :
#include <stdio.h> // inclure la bibliothèque STandard Input Output
// permet d'utiliser, entre autre, printf et scanf
int main() // main désigne le programme principal il est délimité par des accolades
{ // Début du main
// Variables :
int nombre1; // nombre1 : Entier
int nombre2; // nombre2 : Entier
printf("Bonjour, nous allons faire la multiplication de deux nombres"); // Afficher : "Bonjour, nous allons faire la multiplication de deux nombres"
printf("Quel est le premier nombre ? "); // Afficher : "Quel est le premier nombre ?"
scanf("%d", &nombre1); // Entrer : nombre1
printf("Quel est le deuxième nombre ? "); // Afficher : "Quel est le deuxième nombre ?"
scanf("%d", &nombre2); // Entrer : nombre2
printf("Le résultat de la multiplication est : %d", nombre1 * nombre2); // Afficher : "Le résultat de la multiplication est : " nombre1 * nombre2
return 0;
} // Fin du main
char caract = 'A'; // Un caractère est délimité par des guillemets simples
short nb = 12; // Le type short permet de stocker des nombres entiers sur 16 bits
int i = 100;
long nb2 = 1234567; // Le type long permet de stocker des plus grands nombres
float prix = 12.59; // La virgule des nombres décimaux est représentée par un point
double nombrePi = 3.141592; // Le type double est plus précis mais il occupe plus de place en mémoire
Il en existe d’autres :
Certains types peuvent ne pas avoir la même taille selon les machines.
Le programme ci-dessous permet d'afficher la taille des des différents types grâce à la fonction sizeof :
#include <stdio.h>
int main()
{
// Caractères
char caractere = 'S';
// Nombres entiers
short nb1 = -45;
unsigned short nb2 = 10000; // unsigned = nombres strictement positifs ou nuls
int nb3 = 234;
unsigned int nb4 = 456;
long nb5 = -1234567;
unsigned long nb6 = 3456789;
// Nombres décimaux
float prix = 12.59;
double nombrePi = 3.14159;
printf("Caractères :\n");
printf("\tTaille en octets d'un char : %lu (%lu bits)\n", sizeof(char), 8 * sizeof(char));
printf("\nNombres entiers :\n");
printf("\tTaille en octets d'un short : %lu (%lu bits)\n", sizeof(short), 8 * sizeof(short));
printf("\tTaille en octets d'un unsigned short : %lu (%lu bits)\n", sizeof(unsigned short), 8 * sizeof(unsigned short));
printf("\tTaille en octets d'un int : %lu (%lu bits)\n", sizeof(int), 8 * sizeof(int));
printf("\tTaille en octets d'un long : %lu (%lu bits)\n", sizeof(long), 8 * sizeof(long));
printf("\nNombres décimaux :\n");
printf("\tTaille en octets d'un float : %lu (%lu bits)\n", sizeof(float), 8 * sizeof(float));
printf("\tTaille en octets d'un double : %lu (%lu bits)\n", sizeof(double), 8 * sizeof(double));
return 0;
}
Exécuter le programme ci-dessus sur votre machine.
En fonction des valeurs obtenues, calculer la valeur minimale et la valeur maximale que peut contenir une variable de type :
Le nom ne doit pas commencer par autre chose qu’une lettre ou le caractère « _ » (underscore : touche ALT GR + 8).
Le nom ne doit pas contenir autre chose que des lettres (sans accents), des chiffres ou le caractère underscore (pas d’espaces).
Le nom de la variable doit être explicite. C'est-à-dire que son nom doit à lui seul indiquer à quoi sert la variable. Par exemple si on doit calculer la moyenne de plusieurs notes on aura besoin de calculer la somme des notes. On utilisera donc un variable que l’on appellera :
Peu importe si vous utilisez la convention "mots séparés par des underscores" ou par des majuscules mais prenez l'habitude de toujours utiliser la même notation.
Dans un premier temps, le plus simple est d'utiliser un compilateur en ligne. L'avantage d'un compilateur est de ne rien avoir à installer sur votre machine, il suffit d'avoir un navigateur et accès à Internet. De plus comme il suffit d'un navigateur, l'utilisation peut se faire de la même manière sur Windows, Mac, Linux, Android, ... Il en existe plusieurs :
Il existe également des applications Android :
C'est la fin de la première partie de ce cours. Avant de poursuivre, il est conseillé d'avoir testé l'ensemble des exemples de code donnés avec un compilateur C en ligne.
Article connexe : Les structures algorithmiques de base