Plan du cours
Page de garde
Préambule
L'algorithmique et la programmation à l'IUT de Villetaneuse
L'algorithmique et la programmation dans l'enseignement de l'informatique
L'algorithmique et la programmation da
n
s la chaîne du système d'informati
on
Organisation de l'enseignement BDP:Algorithmique et Programmation en C
Introduction, BdP: Algorithmique, Programmation
De l'algorithmique à la programmation
L'algorithmique
BDP à l'IUT: deux langages algoritmiques
Les variables
Déclarer les variable
Le corps de l'algorithme détaillé
Les instructions de base de l'algorithme détaillé
Structure complète d'un algorithme
Exemple
Introduction à la programmation. Langage C
La programmation
Qu'est ce qu'un langage évolué?
Historique du langage C
Caractéristiques du langage C
Traduire un algorithme en langage C
Quelques précisions sur les entrées-sorties en langage C
Une traduction d'un algorithme: exemple
Comment Structurer un programme C
Structure complète d'un programme C
Types et variables en langage C
Précisions sur l'instruction printf
Quelques remarques utiles
En conclusion
Algorithmique: Description et conception
Formulaire d'un algorithme: Récapitulatif
Qualités d'un algorithme
Ordonnancement
Un algorithme est-il correct?
Conclusion
Comment concevoir un algorithme?
Exemple
Alternatives, itératives
Algorithmique: la structure alternative
Les expressions booléennes
Imbriquer des alternatives
Alternatives: traduction en C
Algorithmique: la structure itérative
Les itératives: variante 1 (do ... while)
Les itératives: variante 2 (for ...)
Quand utiliser un for?
Comment concevoir un algorithme avec itérative?
Analyse et conception d'un algorithme avec itérative: exemple
Alternatives : traduction en C
Cas particulier: les itératives imbriquées
Cas particulier: les conditions de sortie multiples non exclusives
Cas particulier: les conditions de sortie multiples exclusives
Tableaux
Tableaux: déclaration et utilisation
Les tableaux: initialisation
Remarques algorithmiques sur les tableaux
Parcourir un tableau à une dimension
Les tableaux à une dimension en C
Analyser un problème qui implique des tableaux
Un premier exemple
Exemple 2: inverser un tableau
Algorithme (partiel) de l'inversion d'un tableau
Exemple 3: trier un tableau
Algorithme (partiel) du tri par sélection
Tri à bulles
Algorithme (partiel) du tri à bulles
Recherche dichotomique
Les tableaux à 2 dimensions
Initialiser un tableau à 2 dimensions
Parcourir un tableau à deux dimensions
Remarques sur les tableaux
Les tableaux à deux dimensions en C
La directive
define
Procédures et fonctions
Pourquoi des fonctions et des procédures?
Avantages des fonctions et des procédures
Différence entre fonction et procédure
Fonction
Caractéristiques
Description fonctionnelle
Structure de l'algorithme d'une fonction
Passage de paramètres: précisions
Détecter et concevoir une fonction
Procédure
Raisons d'existence
Caractéristiques
Procédures avec paramètres de sortie
Procédures avec paramètres d'entrée-sortie
Fonctions et procédures en C
Traduction d'une fonction en C
Traduction d'une procédure en C
Adresse, pointeur et indirection
Adresse, pointeur et indirection en C
Procédure avec paramètres de sortie et d'entrée-sortie en C
Chaînes de caractères
Pourquoi les chaînes de caractères?
Initialiser une chaîne de caractères
Algorithmes sur les chaînes
Les chaînes de caractères en C
Les entrées sorties de chaînes
Chaînes et pointeurs
Initialiser une chaîne
Comparaison de chaînes
D'autres fonctions sur les chaînes
Tableaux de chaînes de caractères
Représentation en mémoire des tableaux de chaînes
Tableaux de chaînes de caractères en paramètre
Cas particulier du main
Un point sur les pointeurs, adresses ...
Une adresse?
Un pointeur?
Pointeur de pointeur?
Tableau et pointeur?
Arithmétique sur les pointeurs
Vrai tableau et vrai pointeur
Chaînes de caractères, tableau et pointeur
Paramètres et pointeurs
Paramètres et pointeurs: cas des tableaux
Les structures
Type structuré: motivation
Type structuré: déclaration en C
Type structuré: utilisation
Type structuré: initialisation
Type structuré en passage de paramètre
Type strcuturé en retour de fonction
Tableaux d'éléments structurés
Structures auto-référentes
Compléments
Les fichiers
Les fichiers: Généralités
Introduction
Utitilité des fichiers de données
Opérations sur les fichiers de données
Aspect fonctionnelle des fichiers de données
Lier un fichier sur mémoire secondaire à un programme
Physique et logique
Mode d'accès à un fichier
Format de sauvegarde d'un fichier
Utiliser un fichier
Les fichiers en C
Les différentes étapes pour utiliser un fichier dans un programme C
L'ouverture d'un fichier: fopen
Les fichiers C en mode texte
Fonction de transfert en lecture
fgets
: fichier texte
Fonction de test de fin de fichier: feof(f)
Fonction de transfert en écriture
fputs
: fichier texte
Fonction d'écriture formatée
fprintf
: fichier texte
Fonction de lecture formatée
fscanf
: fichier texte
Fonction de lecture et d'écriture de caractères: fichier texte
Les fichiers C en mode binaire
Rappels
Fonction d'écriture
fwrite
: fichier binaire
Fonction de lecture
fread
: fichier binaire
Compléments: accès direct
Un point sur les variables et allocation dynamique
Portée et durée de vie
Définition de la portée d'une variable
Définition de la durée de vie
Variables à portée globale
Allocation dynamique
Allocation dynamique: définition et utilité
Utilité: un exemple
malloc
free
Application de l'allocation dynamique: les listes chaînées
suivant