[PDF] [PDF] La programmation

Présenter l'activité de programmation • Introduire et justifier la fondamentaux – Complexité d'un algorithme – Langages Introduction à la programmation 



Previous PDF Next PDF





[PDF] Initiation à la programmation

3 Chapitre I : Introduction 1 Terminologie 2 Structure d'un ordinateur 3 Langages de programmation 4 Systèmes d'exploitation 5 Exécution d'un programme 



[PDF] La programmation

Présenter l'activité de programmation • Introduire et justifier la fondamentaux – Complexité d'un algorithme – Langages Introduction à la programmation 



[PDF] Introduction aux langages de programmation - Laboratoire IBISC

Informatique générale - Introduction aux langages de programmation Plan et objectifs du cours • Objectifs du cours – Donner une vue d'ensemble de l' 



[PDF] COURS DINFORMATIQUE: LANGAGE C NOTES DE COURS - ENIT

C est devenu aujourd'hui le langage de programmation des micro-ordinateurs - Il est extensible: C ne se compose pas seulement des fonctions standard, le 



[PDF] Initiation à la programmation

La compilation pour produire des programmes exécutables autonomes sera abordée dans le cours d'API1 Caml est un langage fonctionnel dans lequel les 



[PDF] Programmation en langage C - Centre Inria de Paris

imprime la valeur 0, puisque res a été modifié au cours du programme et pointe maintenant sur le caract`ere nul 3 6 Pointeurs et structures 3 6 1 Pointeur sur une 



[PDF] Langages et programmation - Wiki wiki - Inria

contrastant le langage Java avec le langage XHTML, qui est un langage formel, mais pas un langage de programmation Cours Le noyau impératif Affectation 



[PDF] Apprendre à programmer avec Python 3 - INFOREF

Les outils utilisés au cours de l'apprentissage doivent être modernes et Il existe un très grand nombre de langages de programmation, chacun avec ses l' adresse : http://www afpy org/Members/bcordeau/Python3v1-1 pdf /download 



[PDF] Le livre du C pour les vrais debutants en programmationpdf

4 1 Canevas général d'écriture d'un programme en langage C Pour ceux d' entre vous qui souhaiteraient utiliser cet ouvrage comme support de cours, voici



[PDF] Algorithmique & programmation en langage C - Archive ouverte HAL

1 fév 2019 · d'algorithmique et de programmation en langage C donnés à la Faculté d' ingénierie de l'Université 5 La théorie des langages sera étudiée plus tard dans un cours dédié http://www unicode org/charts/PDF/U0100 pdf

[PDF] cours de linguistique générale

[PDF] cours de logique et théorie des ensembles

[PDF] cours de philosophie sur l'etat et le pouvoir pdf

[PDF] cours de physique 2 année college maroc

[PDF] cours de physique 2 bac pc

[PDF] cours de svt 2 bac pc

[PDF] cours de svt 4ème reproduction humaine

[PDF] cours economie et organisation de l'entreprise pdf

[PDF] cours et exercice corrigé de probabilité

[PDF] cours et exercices corrigés de trigonométrie pdf

[PDF] cours et exercices d'excel pdf

[PDF] cours et exercices excel 2007 pdf

[PDF] cours et exercices excel 2010 gratuit pdf

[PDF] cours et exercices excel 2013 pdf

[PDF] cours et exercices sur les adresses ip pdf

La programmation•Présenter l'activité de programmation•Introduire et justifier la notion d'algorithme•Donner quelques principes méthodologiques-Diviser pour régner•Donner quelques repères fondamentaux-Complexité d'un algorithme-Langages Introduction à la programmation

La programmation•Votre programme s'exécute, mais...-Connaissez-vous les mécanismes utilisés ?-Etes vous sûr que le résultat soit juste ?-Combien de temps devrez vous attendre la fin du calcul ?-Y a-t-il un moyen pour obtenir le résultat plus vite ?»Indépendamment de la machine, du compilateur...•Un ordinateur ne s'utilise pas comme un boulier ! => Connaître des algorithmes=> Apprendre à les construire, les améliorer...Vous savez compter ! L'ordinateur aussi...

La programmationLa programmation• Question à résoudre par une solution informatique• Instance d'un problème = entrée nécessaire pour calculer une solution du problème• Ensemble de données• Ensemble de résultats

= solution informatique au problème• Description d' un ensemble d'actions• Exécution dans un certain ordre ProblèmeProgramme

La programmationCritères de qualité des programmes•Lisibles•Fiables•Maintenables•Réutilisables•Portables•Corrects (preuve)•Efficaces (complexité)•Contraintes "économiques" :-Exécution la plus courte possible-Espace mémoire nécessaire le plus petit possible...

La programmationRaisons d'être des méthodes de programmation•Augmentation de la taille et de la complexité des logiciels-Travail en équipe -Capacité de l'être humain à s'occuper de problèmes simultanément( 5 à 9 problèmes)•Nécessité de construire des programmes corrects, vérifiables et modifiables-Conséquences humaines, économiques... de plus en plus coûteuses => Méthodologie de conception des programmes-Garder la maîtrise de la conception du logiciel-Canaliser la créativité

La programmationPrincipes méthodologiques•Abstraire-Retarder le plus longtemps possible l'instant du codage•Décomposer-"...diviser chacune des difficultés que j'examinerais en autant de parties qu'il se pourrait et qu'il serait requis pour les mieux résoudre." Descartes•Combiner-Résoudre le problème par combinaison d'abstractions•Mais aussi :-Vérifier, modulaire, réutiliser...

La programmationNotion d'énoncé (du problème)•Souvent le problème est "mal posé"...-Rechercher l'indice du plus petit élément d'une suite=> Spécifier = produire un énoncé•Énoncé = texte où sont définies sans ambiguïté :

-L'entrée (données du problème)-La sortie (résultats recherchés)-Les relations (éventuelles) entre les données et les résultats•Que dois-je obtenir ?-Soit I l'ensemble des indices des éléments égaux au minimum d'une suite. Déterminer le plus petit élément de I.7 1 3 1 5

1 2 3 4 5

2?

La programmationNotion d'algorithme = Description d'un processus de résolution d'un problème bien défini= Succession d'actions qui, agissant sur un ensemble de ressources (entrée), fourniront la solution (sortie) au problème•Comment faire pour l'obtenir ?EnoncéAlgorithmeProgrammeRésolutionCodage

La programmationPseudo code#include main () {int n, i;scanf ("%d", &n);for (i=0; i<=n; i++) {if (i%2) {printf ("%d\n", i);}

}lire (n)pour i ¬ 0 à n

si (i mod 2) # 0 alors afficher(i)Plus abstrait, plus lisible, plus concis...Faire la différence entre les contraintes propres à un langage et les difficultés inhérentes à un problème donnéMet en avant l'essence de l'algorithme

La programmationComplexité d'un algorithme•Caractériser un algorithme-Indépendamment de la machine, du compilateur...-Complexité»Taille du problème : n»Nombre d'opérations significatives : T(n)»Taille mémoire nécessaire : M(n)•Au mieux, au pire, en moyenne•Notations asymptotiques-f(n) = O(g(n)) : borne asymptotique supérieure -f(n) = W (g(n)) : borne asymptotique inférieure-f(n) = Q(g(n)) : borne approchée asymptotique

La programmationComparaison de temps d'exécution•106 opérations par seconde•N = nombre de données à traiter•C = complexité de l'algorithme de traitementN x C1log2nnnlg2nn2n32n

102<1ms6,6ms0,1ms0,66ms10ms1s4.1016a

103<1ms9,9ms1ms9,9ms1s16,6ms?

104<1ms13,3ms10ms0.13s1,5mn11,5j?

105<1ms16,6ms0,1s1,66s2,7h31,7a?

106<1ms19,9ms1s19,9s11,5j31700a?

La programmationL'algorithmique•Permis de conduire informatique•Produit de matrices carrées n x n-Nombre de multiplications-Algorithme classique : T(n) = O (n3)

»Trop d'opérations-Meilleure borne inférieure connue : T (n) = W(n2) -Algorithme de Strassen : T(n) = Q(nlg 7) = O(n2,81) -Meilleur algorithme connu : T (n) = O(n2,376) •Programme-Algorithme destiné à la machineci,j=∑k=1,n aik×bkj

La programmationConception d'un programmeNe pas se laisser aveugler par l'objectif final : le codage !ProblèmeEnoncéAlgorithmeProgrammeSpécificationRésolutionCodage

La programmationProgrammer, c'est communiquer•Avec la machine•Avec soi même•Avec les autresAlgorithmes en pseudo-codeconcis et clairsProgrammes indentéset commentésDésignations évocatrices

La programmationCycle de vie d'un programme (1)•Analyse + spécification-Définir clairement le problème-Recenser les données-Dégager les grandes fonctionnalités•Conception-Organiser les données-Concevoir l'algorithme en pseudo-code•Codification-Traduire l'algorithme dans un langage de programmationUn processus itératifAnalyse + spécificationConceptionCodificationVérificationMaintenance

La programmationCycle de vie d'un programme (2)• 4. Vérification (test & mise au point)- Utiliser le programme avec des entrées spécifiques- Utiliser un outil de mise au point• 5. Maintenance- Adapter le programme existant pour de nouvelles fonctionnalités et/ou pour corriger les erreurs• Une documentation doit être associée à chaque étapeUn processus itératifAnalyse + spécificationConceptionCodificationVérificationMaintenance

La programmationGénéalogie partielle des langages de programmation•Plus de 4000 langagesFORTRANCOBOLALGOL 60BASICPL/1PASCALSIMULA 67C

C++ADAJAVASMALLTALKLISPMODULA-2PROLOGML

La programmationLe choix d'un langage n'est pas neutre•Un langage facilite la résolution de classes de problème-C : systèmes d'exploitation (Unix)...-C++ : applications de grande taille...-JAVA : applications de grande taille...-LISP : prototypage, systèmes experts...Y-a-t-il un langage universel ?L'assembleurJAVACC++LISPPASCAL

La programmationParadigmes des langages de haut niveau (1)•Désigner-Expliciter une entité, en la nommant et en lui associant une définition au moins intuitive•Typer-Connaître précisément les propriétés pertinentes d'une entité•Paramétrer-Traiter un problème plus général que le problème posé-Améliorer la résistance de la solution aux changements-Réutiliser

La programmationParadigmes des langages de haut niveau (2)•Sérialiser-Construire des séquences d'actions•Décomposer par cas-Découper le domaine des données initiales•Itérer-Introduire un sous problème intermédiaire paramétréRéduire la complexité d'un problème

La programmationLangage compiléCompilateurAssembleurEditeur de liensChargeurProgramme sourceProgramme cibleCode machine$ emacs monProg.c$ gcc monProg.c -o monProg$ ./monProg0x8048470 pushl %ebp 0x8048471 movl %esp,%ebp 0x8048473 pushl $0x80484dc 0x8048478 call 0x80483bc 0x8048480 addl $0x4,%esp0x8048481 leave0x8048481 ret

La programmationCompilation•Analyse lexicale•Analyse syntaxique•Analyse sémantique•Génération de code•Optimisationposition := initiale + vitesse * 60empiler adresse de positionempiler valeur de initialeempiler valeur de vitesseempiler 60*

*positioninitialevitesse601) 2) 3)

La programmationLangage interprété•emacs monProg.l•lisp monProg.lInterpréteurProgramme sourceCode machine0x8048470 pushl %ebp 0x8048471 movl %esp,%ebp 0x8048473 pushl $0x80484dc 0x8048478 call 0x80483bc 0x8048480 addl $0x4,%esp0x8048481 leave0x8048481 ret

quotesdbs_dbs17.pdfusesText_23