COURS ALGORITHMIQUE ET PROGRAMMATION INFORMATIQUE
12 mar. 2013 pré et post conditions. • Structures algorithmiques fondamentales: . • Implantation des algorithmes dans un langage de programmation. • ...
Algorithmique et programmation
le cours d'Informatique est devenu obligatoire pour la majorité des sections de la l'algorithme mais aussi le programme Fortran correspondant avec ...
Algorithmique & programmation en langage C - vol.1 - Archive
1 fév. 2019 Ce document constitue le support de cours écrit pour différents enseignements d'algorithmique et de programmation en langage C donnés à la ...
Informatique et Algorithmique avec le langage Python
Une constante est une variable dont la valeur ne doit pas changer au cours de l'exécution du programme. Par convention on la nomme en MAJUSCULES. Exemple :.
Cours de lalgorithmique et programmation: Licence SMI- S2
Les algorithmes sont anciens ! ? Les algorithmes ne sont pas nés avec l'informatique : ?L'algorithme d'
Cours dAlgorithmique - Florent Hivert
Retenir. Un programme est une suite d'instructions permettant à une système informatique d'exécuter une tâche donnée écrit dans un langage de programmation
Algorithmique et Programmation
Un algorithme traduit dans un langage compréhensible par l'ordinateur chaîne de caractères...
Notes de cours Module Informatique I Cours TD et TP de 28h
https://www.emi.ac.ma/belouadha/assets/doc/AlgorithmiqueSup.pdf
Algorithmes et langage C
l'ordre prévu par le programme) et mémorise tous les résultats Le terme algorithme est employé en informatique pour décrire une méthode de résolution.
Algorithmique & Programmation
28 jui. 2019 Le programme de ce cours est organisé autour six thématiques (Plan d'études. 2018) : • Présentation de l'environnement informatique (système d' ...
COURS ALGORITHMIQUE ET PROGRAMMATION INFORMATIQUE - unicefr
Implantation des algorithmes dans un langage de programmation Introduction au test unitaire boîte noire Algorithmes fondamentaux de recherche recherche d’un élément parcours tri Avoir une première notion des performances des algorithmes utilisés
Cours d'algorithmique et programmation 1
Informatique L’informatique est le domaine d’activité scienti?que technique et industriel concernant le traitement automatique de l’information via l’exécution des programmes informatiques par des machines : des systèmes embarqués des ordinateurs des robots des automates etc – http:// wikipedia org/wiki/informatique
Bb KmHiB@/Bb+BTHBM`v QT2M ++2bb
`+?Bp2 7Q` i?2 /2TQbBi M/ /Bbb2KBMiBQM Q7 b+B@2MiB}+ `2b2`+? /Q+mK2Mib- r?2i?2` i?2v `2 Tm#@
HBb?2/ Q` MQiX h?2 /Q+mK2Mib Kv +QK2 7`QK
i2+?BM; M/ `2b2`+? BMbiBimiBQMb BM 6`M+2 Q` #`Q/- Q` 7`QK Tm#HB+ Q` T`Bpi2 `2b2`+? +2Mi2`bX /2biBMû2 m /ûT¬i 2i ¨ H /BzmbBQM /2 /Q+mK2Mib b+B2MiB}[m2b /2 MBp2m `2+?2`+?2- Tm#HBûb Qm MQM-Tm#HB+b Qm T`BpûbX
.Bbi`B#mi2/ mM/2` *`2iBp2 *QKKQMbii`B#miBQM @ LQM*QKK2`+BH @ a?`2HBF2% 9XyAMi2`MiBQMH GB+2Mb2
H;Q`Bi?KB[m2 T`Q;`KKiBQM 2M HM;;2 * @ pQHXR
hQ +Bi2 i?Bb p2`bBQM, .KB2M "2`i?2i- oBM+2Mi G#imiX H;Q`Bi?KB[m2 T`Q;`KKiBQM 2M HM;;2 * @ pQHXR, amTTQ`ib /2 +Qm`b oQHmK2 R Sû`BQ/2 kyy8@kyR9X GB+2M+2X H;Q`Bi?KB[m2 2i S`Q;`KKiBQM- AbiM#mH- hm`[mB2X kyR9- TTXkjkX +2H@yRRdeRRNpkUniversité Galatasaray
Algorithmique &
programmation en langage CDamien Berthet & Vincent Labatut
Notes de cours
Supports de cours Volume 1
Période 2005-2014
Damien Berthet & Vincent Labatut 2005-2014
Ce document est sous licence Creative Commons Attribution - - Partagedans les Mêmes Conditions 4.0 International. Pour accéder à une copie de cette licence, merci de vous
rendre à l'adresse suivante : http://creativecommons.org/licenses/by-nc-sa/4.0/Galatasaray ÜniversitesiMühendislik ve Teknoloji Fakültesi
version 0.9Turquie 1/0/201 Supports de cours vol.1 Période 2005-2014 3/232SOMMAIRE ................................................................................................................................................ 3
CONVENTIONS ........................................................................................................................................... 8
1 INTRODUCTION .................................................................................................................................. 9
1.1 DÉFINITIONS ........................................................................................................................................ 9
1.2 PRÉSENTATION DU LANGAGE C ............................................................................................................. 14
2 TYPES DE DONNÉES .......................................................................................................................... 23
2.1 REPRÉSENTATION DE L'INFORMATION ..................................................................................................... 23
2.2 NOMBRES ENTIERS ............................................................................................................................. 25
2.3 NOMBRES RÉELS ................................................................................................................................ 31
2.4 CARACTÈRES ...................................................................................................................................... 37
2.5 IMAGES ............................................................................................................................................ 39
3 VARIABLES ET CONSTANTES LITTÉRALES........................................................................................... 44
3.1 CONSTANTES LITTÉRALES...................................................................................................................... 44
3.2 VARIABLES ........................................................................................................................................ 46
4 EXPRESSIONS ET OPÉRATEURS ......................................................................................................... 51
4.1 EXPRESSIONS ..................................................................................................................................... 51
4.2 OPÉRATEURS ..................................................................................................................................... 52
4.3 CONVERSIONS ................................................................................................................................... 56
5 CONDITIONS ET BOUCLES ................................................................................................................. 59
5.1 INSTRUCTIONS DE TEST ........................................................................................................................ 59
5.2 INSTRUCTIONS DE RÉPÉTITION ............................................................................................................... 64
5.3 ANALYSE D'UN PROGRAMME ................................................................................................................ 68
6 TABLEAUX ........................................................................................................................................ 74
6.1 DÉFINITION ....................................................................................................................................... 74
6.2 MÉMOIRE ......................................................................................................................................... 75
6.3 MANIPULATION ................................................................................................................................. 76
6.4 CHAÎNES DE CARACTÈRES ..................................................................................................................... 77
6.5 TABLEAUX MULTIDIMENSIONNELS .......................................................................................................... 79
6.6 EXERCICES ......................................................................................................................................... 80
7 FONCTIONS....................................................................................................................................... 82
7.1 PRÉSENTATION .................................................................................................................................. 82
7.2 PASSAGE DES PARAMÈTRES .................................................................................................................. 87
7.3 TABLEAUX ......................................................................................................................................... 91
7.4 EXERCICES ......................................................................................................................................... 93
8 TYPES PERSONNALISÉS ..................................................................................................................... 95
8.1 GÉNÉRALITÉS ..................................................................................................................................... 95
8.2 STRUCTURES ..................................................................................................................................... 96
8.3 UNIONS .......................................................................................................................................... 101
8.4 ÉNUMÉRATIONS ............................................................................................................................... 102
8.5 NOMMAGE DE TYPES ........................................................................................................................ 104
9 CLASSES DE MÉMORISATION .......................................................................................................... 106
9.1 PERSISTANCE D'UNE VARIABLE ............................................................................................................ 106
9.2 DÉCLARATIONS LOCALES .................................................................................................................... 106
9.3 DÉCLARATIONS GLOBALES .................................................................................................................. 109
9.4 FONCTIONS ..................................................................................................................................... 109
10 POINTEURS
10.1 PRÉSENTATION
10.2 ARITH
10.3 POINTEURS ET TABLEAUX
11 ALLOCATION DYNAMIQUE
11.1 PRÉSENTATION
11.2 ALLOCATION SIMPLE
11.3 AUTRES FONCTIONS
11.4 EXERCICES
12 FICHIERS
12.1 STRUCTURE FILE
12.2 OUV/FERMETURE
12.3 LECTURE/ÉCRITURE NON-FORMATÉES EN MODE CA
12.4 LECTURE/ÉCRITURE NON-FORMATÉES EN MODE CH
12.5 LECTURE/ÉCRITURE FORMATÉES
12.6 LECTURE/ÉCRITURE PAR BLOC
12.7 EXERCICES
13 FONCTIO
13.1 PRÉSENTATION
13.2 TYPES DE RÉCURSIVITÉ
13.3 ARBRE DES APPELS
13.4 STRUCTURE D'UNE FONCTION RÉCURSI
13.5 COMPARAISON ITÉRATIF/RÉCURSIF
13.6 EXERCICES
14 LISTES CHAÎNÉES
14.1 PRÉ
14.2 LISTES SIMPLEMENT CHA
14.3 LISTES DOUBLEMENT CHA
15 PILES DE DONNÉES
15.1 PRÉ
15.2 TYPE ABSTRAIT
15.3 IMPLÉMENTATION PAR TA
15.4 IMPLÉMENTATION PAR LI
16 FILES DE DONNÉES
16.1 PRÉSENTATION
16.2 TYPE ABSTRAIT
16.3 IMPLÉMENTATION SIMPLE
16.4 IMPLÉMENTATION CIRCUL
16.5 IMPLÉMENTATION PAR LI
17 COMPLEXITÉ ALGORITHM
17.1 INTRODUCTION À LA COM
17.2 CALCUL DE COMPLEXITÉ
17.3 ALGORITHMES RÉCURSIFS
18 ALGORITHMES DE TRI
18.1 PRÉSENTATION
18.2 TRI À BULLES
18.3 TRI PAR SÉLECTION
18.4 TRI PAR INSERTION
Supports de cours vol.1 Période 2005-2014 5/232 18.5 TRI FUSION...................................................................................................................................... 208
18.4 TRI RAPIDE ...................................................................................................................................... 212
19ARBRES ........................................................................................................................................... 215
19.1 DÉFINITIONS .................................................................................................................................... 215
19.2 ARBRES BINAIRES ............................................................................................................................. 218
19.3 ARBRES BINAIRES DE RECHERCHE ......................................................................................................... 223
Supports de cours vol.1 Période 2005-2014 6/232 Ce document constitue le support de cours écrit pour différents enseignements
2) et de leurs corrigés (volume 3).1 (Simple DirectMedia Layer
ue. Les outils utilisés en TP (GCC23notions abordées le sont parfois de façon simplifiée et/ou incomplète. s de 2 heures réparties
de la façon suivante : Séance Sujet abordé Sections traitées01 Introduction 1
02 Types simples 2
03 Variables, expressions et opérateurs 3-4
04 Structures de contrôle 5
05 Tableaux 6
06 Définition de fonctions 7-7.2.1
07 Passage de paramètres 7.2.2-7.4
08 Structures et unions 8-8.3
09 Types personnalisés & classes de mémorisation 8.4-9
10 Pointeurs 10
11 Allocation dynamique de mémoire 11
12 Fichiers 12
13 Fonctions récursives 13
14 Listes simplement chaînées 14-14.2
15 Listes doublement chaînées 14.3-14.3.5
16 Piles de données 15
17 Files de données 16
18 Introduction à la complexité 17-17.1
19 Complexité d'algorithmes itératifs 17.2
20 Complexité d'algorithmes récursifs 17.3
21 Tris quadratiques 18-18.4
22 Tris log-linéaires 18.5-18.4
23 Arbres binaires 19-19.2
24 Arbres binaires de recherche 19.3
sabsent du cours magistral, et était plutôt traité lors du tout premier TP. 1https://www.libsdl.org/ 2 3Les principales références bibliographiques utilisées pour préparer ce cours sont les
, Thomas Cormen, Charles Leiserson & Ronald Méthodologie de la programmation en C, Achille Braquelaire, Dunod, 4èmeLangage, Gerhard Willms, MicroApplication, 1996.
Ce document utilise différentes conventions, dont certaines sont aussi appliquées dans les fonctions, variables, constantes, etc.) sont indiqués en utilisant la polCourier.Courier
Entrez une valeur
Lorsque du code source est cit
int ma_function(int x)Concept
1 1.1 1.1.1Le mot algorithme ème
Al Khuwarizm4rythme, ce qui explique
yAlgorithme
ithme Algorithmiqueensemble des méthodes permettant de définir des (dans le cadre informatique) son implém 1.1.2Un informel, ou incomplètement
informatique) ou autres. Par opposition, une démonstration mathématique ou un formels5 comp 6 Les étapes sont représentées par des liensLes étapes de test
Les étapes de début fin
Les étapes de traitement
Les appels à des fonctions sous) sont
4 algèbre.
5 6 entrée/sortie complexes tout en gardant un diagramme lisible. pa exemple -Version organi
Version pseudo
debut tant fin 1.1.3 Dans notre cas, le problème à résoudre est souvent compliqué d. Cette méthode récursivementélémentaires,
Début
FinAfficher "début du traitement"
Afficher "fin du traitement"
compteur <= 0Si compteur<4
Traitement X
Incrémenter compteur
faux vrai eÉnoncé du p
o o La table traçante possède un compteur. o Elle est capabl lever/baisser
avec la feuille de papier posée sur la table de dessin, ou au contraire centrer
haut/bas/gauche/droite ͳ
initialiser/incrementer
o Le problème est de dessiner une croix centrée sur la feuille, et dont chaque R début 10 fin o Algorithme de niveau debut fin o Algorithme de nivea On décompose aller au centre sans tracer
debut fin On décompose tracer la branche du haut debut tant que On recommence avec les autres actions du niveau -, et en remplaçant 1.1.4On peut considérer un programme comme la
de programmation, i.e. un langage formel compréhensible par un ordinateur. On dit alors que implémentationProgramme : n ordinateur.
Instruction
s programmesource exécutable. Le premier cont code sourcebinaire, aussi appelé machine objet.Code source :
Code binaire
Remarque programme
compilation. Ce traitement est réalisé par un programme spécial appelé le compilateur.Compilationaction d
utiliser pour exécuter le programme. implémente sont deux choses bienLa personne qui écrit le programme
Le langage de programmation employé
utilisés etc. ici au cas du langage C, décrit dans la figure ci programme en plusieurs fichiers séparésLa première précompiler
#. Ces version complétée deuxième compilation . assembleur. Ce langage est qualifié de bas troisième assemblage, et consiste à transformer chaque .o. quatrième édition des liens. Elle consiste à rassemblerRemarque abus de langage, on appelle compilation
étape).
1.1.5 en fonction du moment où elles sont détectéesErreur de compilation
ut autre étape du processus. avertissement main() fonct1() fichiers source précompilation fonct2() fonct3() fonct4() fichiers complétés main() fonct1() fonct2() fonct3() fonct4() ADDJUMP X
ADD X,Y
ADD Y,Z
LABEL UN
JUMP DE
compilation fichiers assembleur01101010
01010100
01010101
01110111
01111011
01111011
11010100
11001100
10101001
assemblage fichiers objet10010101
00010101
00010101
00101010
10010101
01010101
01000111
édition des liens
fichier exécutable 7 votre programme.échoué. Ces erreurs
compilateur compilateur utilisé pour être capable de les int corriger la toute première causer les erreurs ultér attendu lors de son exécution. fatales non. programme se termine intempestivement. Par contre, localiser la partie du code source nonRemarque entifier les
1.2 superficielle, afin de pouvoir progresser dans le cours. La plupart de ces notions seront ensuite 1.2.1Le langage C est
Unix87 Integra
pour écrire le code source. Pour nos TP, nous utiliserons 8 Portabilitéun langage de programmation est dit portable machines et de systèmes différents, sans avoir besoin d. stabilisée en 1978 et est appelée Kernighan & RitchieC K&R;
ANSI9C89
C ANSI
ISO10 répandue. Nous indiq bas niveau 11 que C++, Java, C#, JavaScript ou PHP. Un graRemarque
informatique 1.2.2 chaque instruction se termine par un point;). Pour améliorer la lisibilité du code bloc. exemple instruction 1;Il est aussi possible de définir un bloc
récursivement. On peut alors parler de sous. exemple 9 10 11 instruction 1; de le désigner fonction. Outre son nom, uneFonction
identificateur. À noter que cette notion 1.2.5 effectué par la fonction est appelé corps de la fonction, alors que son identificateur et ses en.Corps de fonction
En type de retour void) si la fonction ne renvoie rien, ou bien une valeur entière, une valeur réelle, ou typ paramètres variables ( )) et séparées par des virgules. Pour pas limité, il peut même ne pas y avoir de param exemple ma_fonction, dont le type de retour est type_r p1 p3 type_p1 type_p3. Les couleurs sont type_ 1.2.3 séquence de fonction principale, dont le nom est main. En règle générale, un programme ne peut pas contenir plusieurs main int Le type de retour (int) et les deux paramètres (int argc char** argv) seront programme minimal suivant, que vous pouvez copier int main(int argc Notez que ce programme ne fait absolument rien du to exemple f1, f2, f3 fonction principale t_a f1(t_b p1, t_c p2) 1.2.4 Comme dans la plupart des langages de programmation, il est possible de définir des commentairesCommentaire
un être humain, et ils sont par conséquent complètement ignorés par le compilateur. Les IDE
/* */, et peut occuper plusieurs lignes. On peut exempleCommentaire de plusieurs lignes
Commentaire de
programme, car cela améliore Lisib indiquer à quel exercice correspond quelle parti12indentation
Indentation
Toute accolade fermante } {
Toute instruction doit être alignée
exemple instruction 1;{ instruction 4;Une bonne méthode générale de pr
1) diviser satisfaisant. On recopie cet algorithme sous forme de commentaires dans le code source, qui ne On 1.2.5 foncti I unique, d qui constituent le programme On utilisera seulement des lettres (minuscules et majuscules), des chiffres et le _ 12Remarque
var VLes noms des var1)
Les CST)
On utilise le caractère ex_de_var)
sens qui lit le programme quelle est la signification de la variable ou fon mots protégés mots réservésmots Mot exemples for, if, else, return 1.2.6 En dehors des fonctions mentionnées, il est possible de pl directives de pré. Être précédée du caractère dièse (i.e. #).Ne pas ;).
#i #d ces programmes doivent prendre la forme xxxxx.h la section Une forme locale, dans laquelle le nom du fichier est entouré de guillemets " #include "xxxxx.h" Une forme système, dans laquelle le nom du fichier est entouré des signes #includeC ͷ, on écrira
#define C 5 Cette directive fonctionne de la façon suivanteXXXXX valeur. Il est
XXXXX mentionner que le programme utilise la bibliothèque stdio.h CSTEͻͻ. Alors on écrira (en gras)
#include[PDF] fiche maternelle algorithme imprimer- pdf documents
[PDF] Fiche enseignant ALGORITHMES NIVEAU : GRANDE SECTION
[PDF] Algorithme et numération - Académie de Nancy-Metz
[PDF] L 'atelier des petites chenilles en PS Etape 1 - académie de Caen
[PDF] reproduire une suite algorithmique - Accueil DSDEN 22
[PDF] Rappels : Tableaux et Matrices
[PDF] N°96 - spécial mouvement intra 2016pub - Snes
[PDF] Algorithmique et programmation : les bases (Algo) Corrigé
[PDF] TP7 : le théor`eme du point fixe en action sous MATLAB
[PDF] Séance de travaux pratiques n° 1
[PDF] simulations, algorithmes en probabilités et statistique(s) au - Apmep
[PDF] Loi de Bernoulli et loi binomiale, cours, première S - MathsFG - Free
[PDF] Probabilités, simulation et algorithmique (pour TI)
[PDF] Algorithmes et programmation en Pascal TD corrigés - Limuniv-mrsfr