Introduction à la programmation C
Introduction au langage C - types et variables
Objectifs :
- expliquer brièvement le rôle d’un compilateur
- écrire un programme en C à l’aide d’un éditeur de texte et le compiler avec gcc en ligne de commande
- faire afficher à l’écran une chaine de caractères (= une petite phrase)
- déclarer une variable de type entier ou une variable de type décimal
- faire afficher à l’écran la valeur d’une ou plusieurs variables entières ou décimales au sein d’une chaine de caractères
- récupérer dans une variable un nombre entier saisi par l’utilisateur au clavier
- récupérer dans une variable un nombre décimal saisi par l’utilisateur au clavier
- permuter les valeurs de deux variables de même type
Qu’est ce que programmer ?
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
- qu’est ce qu’un algorithme ?
- que veut dire compiler ?
- pourquoi ne peut on pas compiler un programme écrit en langage C avec un compilateur Java ?
- lorsqu’un exécutable a été généré par le compilateur, doit on le recompiler à chaque fois avant de l’exécuter ?
Editer son programme le compiler et l’exécuter
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
- quelle extension utilise-t-on usuellement pour nommer les programmes écrits en langage C ?
- que dois-je taper comme commande pour compiler mon programme écrit en C ?
- j’ai fait une erreur de syntaxe dans mon programme. Aurais-je un problème à la compilation ou à l’exécution ?
- sitôt mon programme corrigé, que dois-je faire pour vérifier que tout fonctionne correctement ?
Variables
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
- expliquez la différence entre déclarer une variable, initialiser une variable et affecter une valeur à une variable
- associer les types : entiers, réel et caractère et leur syntaxe en langage C : int, float, et char
- je suis capable de répondre à n’importe quel type d’exercice sur des affectations de variables comme celui présenté dans la vidéo
- je sais échanger la valeur de deux variables x et y (dernière question de la vidéo)
Affichage avec printf
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
- que devez-vous écrire dans votre programme pour afficher les valeurs de x, y et z qui sont respectivement déclarés comme entier, flottant et entier ?
- comment faire pour paser à la ligne dans l’affichage ?
Saisie avec scanf
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
- que devez-vous écrire dans votre programme pour réel tapé par l’utilisateur au clavier et le stocker dans une variable nommée x ?
Structure de contrôle : if…then…else / switch
Objectifs :
-
exprimer une condition booléenne à l’aide des opérateurs de comparaison <, >, <=, >=, ==, != et des opérateurs booléens &&, , ! - réaliser une série d’instructions si le résultat de l’évaluation de la condition est vérifié, ceci à l’aide du mot-clef if
- réaliser une série d’instructions si le résultat de l’évaluation de la condition est vérifié, ou une autre série d’instructions dans le cas contraire, à l’aide des mot-clefs if et else
- enchainer des conditions à l’aide de if, else if…, else.
- utiliser la structure switch…case…default afin de réaliser différentes séries d’instructions suivant la valeur prise par une variable donnée
- écrire un programme C bien indenté
Structure de contrôle : if…else
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
que devez-vous écrire dans votre programme pour afficher “positif” si la valeur saisie par l’utilisateur est positive et “négatif” si celle-ci est négative ?
Pourquoi et comment indenter son programmer
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
- que veut dire indenter son programme ?
- citez au moins 3 raisons qui rendent nécessaire l’indentation d’un programme informatique
Structure conditionnelle : switch…case
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
peut on transformer toute structure de controle if..else en structure switch…case ? si oui, comment ? si non, dans quel cas cela ne peut pas se faire ?
Fonctions
Objectifs :
- écrire le prototype d’une fonction avec le type de ses arguments et de sa valeur de retour
- écrire l’implémentation de la fonction
- appeler une fonction depuis une autre fonction, y compris depuis la fonction principale main
- utiliser la valeur de retour d’une fonction
- expliquer la différence entre une fonction et une procédure
- savoir à tout instant du programme (dans une fonction appelante ou appelée), la valeur contenue par une variable donnée
Fonctions (1/2)
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
- expliquez quel est l’utilité des fonctions dans un programme informatique ?
Fonctions (2/2) : récapitulatif
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
- quelle est la différence entre procédure et fonction ?
Portée de variables
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
- expliquez ce qu’il advient d’une variable par exemple (la variable entière x contenant la valeur 3) passée en paramètre à une fonction. Est-elle modifiée par la fonction ?
Structure de boucle : while / do…while
Objectifs :
- utiliser la boucle while pour exécuter une série d’instructions tant qu’une condition est vérifiée
- utiliser la boucle do…while pour exécuter une série d’instructions jusqu’à ce qu’une condition soit vérifiée
- expliquer la différence entre une boucle while et une boucle do…while
Structure de boucle : while
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
- comment écririez-vous avec la structure de contrôle while, une boucle qui compte de un en un à partir de zéro et ceci jusqu’à 100 (0, 1, 2, 3, …, 99, 100) ?
- comment modifieriez-vous ce programme pour qu’il ne s’arrête plus à 100, mais qu’il continue à compter indéfiniment ?
- comment arrêteriez-vous ce programme qui est effectivement parti pour compter indéfiniment ?
Structure de boucle : do…while
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
- comment écririez-vous avec la structure de contrôle do…while, une boucle qui compte de un en un à partir de zéro et ceci jusqu’à 100 (0, 1, 2, 3, …, 99, 100) ?
- par rapport au même exercice avec le while, pouvez-vous expliquer quelles lignes de code a-t-il été nécessaire de changer et pourquoi ?
Structure de boucle : for
Objectifs :
- réaliser une série d’instruction exactement N fois à l’aide d’une boucle for
- utiliser la variable d’indice de la boucle for à l’intérieur des instructions de ma boucle
- imbriquer une boucle for dans une autre boucle for pour réaliser des séries d’instructions
Structure de boucle : for (1/2)
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
- comment écririez-vous avec la structure de contrôle for, une boucle qui compte de un en un à partir de zéro et ceci jusqu’à 100 (0, 1, 2, 3, …, 99, 100) ?
- par rapport au même exercice avec le while, pouvez-vous expliquer quelles lignes de code ont été nécessaire de changer et pourquoi ?
Structure de boucle : for (2/2) – boucles imbriquées
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
- donnez trois raisons qui rendent nécessaire l’indentation de votre programme
- sauriez-vous écrire un programme qui pour chacune des années entre 1999 et 2017, affiche le numéro de chaque mois ? (année 1999 : mois 1, mois 2, … mois 11, mois 12, année 2000 : mois 1, mois 2, … mois 11, mois 12, … année 2017 : mois 1, mois 2, … mois 11, mois 12)
Tableaux
Objectifs :
- déclarer un tableau de n cases exactement
- accéder à la case du tableau pour en afficher le contenu ou modifier sa valeur
- parcourir successivement toutes les cases du tableau pour y réaliser des actions (en afficher les valeurs ou y placer des valeurs précises)
Tableaux à 1 dimension
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
- que devez-vous écrire dans votre programme pour déclarer un tableau de 10 entiers ?
- comment mettre la valeur 3 dans la 5ème case du tableau ?
- comment afficher la valeur de la 2ème case du tableau ?
- que se passe-t-il si j’essaye d’afficher la 11ème case du tableau ?
Tableaux dans les fonctions
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
- comment écrire une fonction qui initialise toutes les cases à la valeur 3 d’un tableau de 10 entiers passé en paramètre ?
Tableaux à 2 dimensions
Objectifs :
- déclarer un tableau de mxn cases exactement
- accéder à la case du tableau pour en afficher le contenu ou modifier sa valeur
- parcourir successivement toutes les cases du tableau pour y réaliser des actions (en afficher les valeurs ou y placer des valeurs précises)
Après avoir vu cette vidéo, vous devriez être capable de répondre aux questions suivantes :
- que devez-vous écrire dans votre programme pour déclarer un tableau de deux dimensions de 10x20 entiers ?
- comment mettre la valeur 3 dans la case correspondant aux coordonnées (3, 6) du tableau ?
- comment afficher la valeur de la case (2, 1) du tableau ?
- comment écrire une fonction qui initialise toutes les cases à la valeur 3 d’un tableau de 10x20 entiers passé en paramètre ?