[PDF] UE C avancé cours 1: introduction



Previous PDF Next PDF







Algorithmique

X Algorithmique a) Pour l’enseignant Ce livre se veut à la fois complet et polyvalent Il se révélera utile pour toutes sortes de cours, depuis un cours de structures de données en deuxième cycle jusqu’à un cours d’algo-rithmique en troisième cycle Un cours trimestriel étant beaucoup trop court pour aborder



Initiation `a l’algorithmique - Télécharger et lire cours

Les 2 premi`eres parties sont souvent rassembl´ees au sein d’une mˆeme structure : le micro-processeur (la « puce »), unit´e centrale de l’ordinateur Dans ce cours, nous ne nous int´eresserons qu’aux aspects logiciels de l’informatique 1 1 2 Algorithmique Exemple 1 1 : Mode d’emploi d’un t´el ´ecopieur



Algorithmique I - Cours et Travaux Dirig´es L3, Ecole Normale

Ce polycopi´e rassemble les cours et travaux dirig´es (avec corrig´es) du module Algorithmique de l’ENS Lyon A l’origine pr´evu pour la premi`ere ann´ee du Magist`ere d’Informatique, le module s’int`egre d´esormais dans la troisi`eme ann´ee de la Licence d’Informatique Et dire que personne ne s’est rendu compte du changement



UE C avancé cours 1: introduction

Semaines 6 Retour sur les premi eres semaines et exemples Semaine 7 Listes cha^ n ees et piles Semaine 8 Arbres Semaine 9 Arbres d’expression Semaine 10 Tables de hachage Semaine 11 G en ericit e Semaine 12 R evisions



SUJET + CORRIGE

en cours a n d’obtenir des algorithmes de rang plus e caces que le pr ec edent Dans toute la suite de l’exercice, vous pourrez utiliser la fonction classique Echange(T,i,j) qui echange les valeurs du tableau T indic ees par i et j def echange(T, i , j ): TMP = T[ i ] T[ i ] = T[ j ] T[ j ] = TMP Algorithme 6: Echange(T,i,j)



Universit´e de Provence Algorithmique et Licence Math-Info

Universit´e de Provence Algorithmique et Licence Math-Info Programmation en Python Premi`ere Ann´ee V Phan Luong TP 1 Exercice 1 : Ex´ecuter les programmes suivants :



Introduction a la programmation en C#

variable Pour utiliser une variable, la premi ere etape est la d eclaration 1 2 1 D eclaration D eclarer une variable, c’est pr evenir le compilateur qu’un nom va ^etre utilis e pour d esigner un empla-cement de la m emoire En C#, on d eclare les variables a l’int erieur du bloc form e par les accolades du Main



Annexe 1 Programmes des classes préparatoires aux Grandes Ecoles

d es la premi ere ann ee sur des exemples simples, et permet de justi er une premi ere approche des int egrales g en eralis ees en analyse, qui sera eto ee en seconde ann ee L’informatique est enseign ee tout au long de l’ann ee en lien direct avec le programme de math e-matiques

[PDF] Algorithmique et programmation, un levier pour développer des

[PDF] Algorithmique et Structures de Données

[PDF] Algorithmes et programmation en Pascal TD corrigés - Limuniv-mrsfr

[PDF] ORME 212 : Algorithmique en seconde avec Python

[PDF] algot - Ikea

[PDF] Ali baba et les quarante voleurs - Gomme Gribouillages

[PDF] Commentaire de l 'article 26 du code de droit international privé

[PDF] 1 Biliographie générale : Droit international privé - Droit du

[PDF] L 'ECHO-DOPPLER VASCULAIRE Réglages - Pièges - SFEcho

[PDF] 2 Le rôle des aliments - Académie de Nancy-Metz

[PDF] Usines complètes de production d 'aliments pour - Amandus Kahl

[PDF] La nutrition active pour prévenir et traiter l 'anémie par déficience en fer

[PDF] le ba ba de la vitamine c - RTS

[PDF] Feuille d 'info «Alimentation et allaitement»

[PDF] principes generaux de l 'alimentation animale - La documentation

IntroductionT ypesStructures de contr^ oleExemple

UE C avance

cours 1: introduction

Jean-Lou Desbarbieux et Stephane Doncieux

UMPC 2009/2010

IntroductionT ypesStructures de contr^ oleExemple Presentation

EvaluationCalendrier Bibli oIntro au C Sommaire

1Introduction

Presentation

EvaluationCalendrier

Biblio

Intro au C

2Types

Types simples

Operateurs

3Structures de contr^ole

4Exemple

IntroductionT ypesStructures de contr^ oleExemple Presentation EvaluationCalendrier Bibli oIntro au C Presentation du module

Module avance (niveau 200)

Objectifs principaux :

Gestion explicite de la memoire

Structure de donnees autoreferentielles : liste, pile, arbres, graphesItineraire :

Notions d'algorithmique

Manipulation de chiers

Pensez a vous inscrire...

... si ce n'est pas encore fait IntroductionT ypesStructures de contr^ oleExemple Presentation

EvaluationCalendrier Bibli oIntro au C

Evaluation60% pour l'examen nal

40% pour le contr^ole continu

20% partiel

20% pour l'appreciation en TD/TME (corrections

automatiques, mini-projets, appreciation generale) IntroductionT ypesStructures de contr^ oleExemple Presentation

EvaluationCalendrier Bibli oIntro au C Calendrier

12 semaines de cours, 12 semaines de TD/TME

Les TD/TME commencent la semaine du 14 septembre

Le dernier TD a lieu la semaine du 7 decembre

Le partiel aura lieu la semaine du 9 novembre

L'examem aura lieu la semaine du 11 janvier

IntroductionT ypesStructures de contr^ oleExemple Presentation

EvaluationCalendrier Bibli oIntro au C Calendrier

Semaine 1.Revisions (?)Introduction

Types

Expressions

printf IntroductionT ypesStructures de contr^ oleExemple Presentation

EvaluationCalendrier Bibli oIntro au C Calendrier

Semaine 2.Revisions (?)Fonctions

Fonctions recursives

Passages de parametres

Decoupage d'un programme

Compilation

Environnement (Makele, gcc, ddd)

IntroductionT ypesStructures de contr^ oleExemple Presentation

EvaluationCalendrier Bibli oIntro au C Calendrier

Semaines 3.Pointeurs & tableauxintroduction aux pointeurs manipulations et utilisations des pointeurs passage de parametres tableaux Semaines 4.Pointeurs & structuresallocation dynamique structures IntroductionT ypesStructures de contr^ oleExemple Presentation

EvaluationCalendrier Bibli oIntro au C Calendrier

Semaines 5.Cha^nes de caracteres et entrees/sorties Semaines 6.Retour sur les premieres semaines et exemples

Semaine 7.Listes cha^nees et piles

Semaine 8.Arbres

Semaine 9.Arbres d'expression

Semaine 10.Tables de hachage

Semaine 11.Genericite

Semaine 12.Revisions

IntroductionT ypesStructures de contr^ oleExemple Presentation EvaluationCalendrier Bibli oIntro au C Bibliographie et outils Le langage C : norme ANSI. Brian W. Kernighan & Denis M. Ritchie, DunodProgrammer en langage C. Claude Delannoy, Eyrolles C : a reference manual. Samuel P. Harbison & Guy L. Steele Jr., Prentice HallC : a software engineering approach. Peter A. Darnell & Philip

E. Margolis, Springer...

Environnement : Linux.

Outils informatiques utilises :editeurs : emacs/vi/gvim/gedit compilateur : gcc debogueur : gdb, ddd IntroductionT ypesStructures de contr^ oleExemple Presentation EvaluationCalendrier Bibli oIntro au C Le Langage C : historique Le langage C a ete invente en 1972 par Dennis Ritchie et Ken Thompson (AT&T Bell Laboratories) pour reecrire Unix et developper des programmes sous Unix.En 1978, Brian Kernighan et Dennis Ritchie publient la denition classique du C dans le livre The C Programming language .C est une norme ANSI (ANSI-C) depuis 1989 et un standard ISO depuis 1990.C fait partie de la famille des langages imperatifs Toutes les distributions Linux fournissent des compilateurs C. IntroductionT ypesStructures de contr^ oleExemple Presentation EvaluationCalendrier Bibli oIntro au C Introduction au langage C

Caracteristiques du langage :

imperatif bas-niveau (peu) type IntroductionT ypesStructures de contr^ oleExemple Presentation EvaluationCalendrier Bibli oIntro au C Introduction au langage C

Caracteristiques du langage :

imperatif bas-niveau (peu) type IntroductionT ypesStructures de contr^ oleExemple Presentation EvaluationCalendrier Bibli oIntro au C Introduction au langage C

Caracteristiques du langage :

imperatif bas-niveau (peu) type IntroductionT ypesStructures de contr^ oleExemple Presentation

EvaluationCalendrier Bibli oIntro au C

Ecrire un message a l'ecranUtiliser la fonctionint printf(const char *format, ...): pr in tf ("Bonjour ,bienvenueal 'UELI215annee2009/2010!nn" ); intn=215; intan1=2009,an2=2010; pr in tf ("Bonjour ,bienvenueal 'UELI%d!nnannee%d/%d" , n , an1 , an2 );

Quelques codes de format utiles :%d: entier%c: caractere%s: cha^ne de caracteres%f: nombre reelATTENTION : pour utiliserprintf, il faut ajouter la ligne

suivante au tout debut du chier source : #include Nous y reviendrons plus tard... IntroductionT ypesStructures de contr^ oleExemple Presentation EvaluationCalendrier Bibli oIntro au C Introduction au langage C Exemple de programme : chier "welcome.c"#include intmain(void)f intannee=2009; intnUE=215; pr in tf ("Bonjour ,bienvenueal 'UELI%dannee%d/%d!nn" , nUE, annee , annee +1); return0; gCompilation gcc -o welcome welcome.c

Execution

./welcome IntroductionT ypesStructures de contr^ oleExemple Types simplesOp erateurs Types IntroductionT ypesStructures de contr^ oleExemple Types simplesOp erateurs

Types entiers

TypeSignicationTaille (o)Plage de valeurs

charCaractere1-128 a 127 unsigned charCaractere10 a 255 short intEntier court2-32768 a 32767 uns. short intEntier court non s.20 a 65535 intEntier2(16 b)-32768 a 32767

4(32 et 64 b)-2 147 483 648

a 2 147 483 647 unsigned intEntier non signe2(16 b)0 a 65 535

4(32 et 64 b)0 a 4 294 967 295

long intEntier long4-2 147 483 648 a 2 147 483 647

8(64 b)-9 223 372 036 854 775 080

a9 223 372 036 854 775 807uns. long intEntier long non s.40 a 4 294 967 295 IntroductionT ypesStructures de contr^ oleExemple Types simplesOp erateurs

Types a virgule

ottante

Representation :signemantissebaseexposant

Plage de valeurs donnee pour un systeme Linux (non normalise).TypeSignicationTaille (o)Plage de valeurs

oatSimple precision4+/-1.175494e-38 a 3.402823e+38doubleDouble precision8+/-2.225074e-308 a 1.797693e+308long doubleDouble prec. long12+/-3.362103e-4932 a 1.189731e+4932

IntroductionT ypesStructures de contr^ oleExemple Types simplesOp erateurs

Types a virgule

ottante

ATTENTION :

les ottants sont rep resentesde mani ere

approchee. Consequences :L'associativite n'est plus assuree :a+ (b+c) = (a+b) +cValeur approchee d'une somme et somme de valeurs

approcheesTests : floatx=0.1,y=0.1; i f(x+y == 0.2)/peut etre vrai ou faux/ IntroductionT ypesStructures de contr^ oleExemple Types simplesOp erateurs

Caracteres

il n'y a pas vraiment de type \Caracteres" le type char est type entier (on peut l'utiliser pour les calculs) prenant un octet.un caractere est represente par un entier, la correspondance (code/caractere) est etablie par la table ASCII.Exemple : charc='a ' ; printf ("c=%c%dnn" ,c , c );

Donne :

c= a 97 IntroductionT ypesStructures de contr^ oleExemple Types simplesOp erateurs

Cha^nes de caracteres

Pas de type string en C mais on utilise la notation "". Exemple : printf ("bonjour" ); correspond a la declaration d'un tableau de char initialise avec les codes ASCII (dans la section rodata). En cas de besoin d'une variable de type cha^ne de caracteres, on declare un tableau de char : charmessage1 [8]="bonjour" ; /7 l e t t r e s et 'n0 ' a la fin/ charmessage2 []="bonjour" ; printf ("%snn" , message1 ); printf ("%snn" , message2 ); IntroductionT ypesStructures de contr^ oleExemple Types simplesOp erateurs

Type enumere

Permet de denir une constante enumeree.

Exemple :

enummoisfJAN = 1 , FEV, MAR, . . .g; enummois m=3; enummois n=JAN; i f( m == MAR )f printf ("m=MARnn" ); g IntroductionT ypesStructures de contr^ oleExemple Types simplesOp erateurs

Tableaux

Permet de stocker dans un espace memoire contigue des elements de m^eme type. intT1[3]=f2 , 1 , 5g; intT2[]=f4 , 1 , 5g; intT2 [ ] ; impossible ! charTC[3][2]=ff,g,f,g,f,gg; charmessage1 []="bonjour" ; charmessage2 [8]="bonjour" ; IntroductionT ypesStructures de contr^ oleExemple Types simplesOp erateurs

Operateurs

Par ordre de precedence :

-. reference: () [] -> . -. unaire: ! ~ ++ -- + - * & (type) sizeof -. arithmetique: * / % -. arithmetique: + - -. decalage: << >> -. relationnels: < <= > >= -. relationnels: == != -. manipulation de bits: & -. manipulation de bits: ^ -. manipulation de bits: | -. logique: && -. logique: || -. conditionnel: ?: -. affectation: = += -= *= /= %= &= ^= |= <<= >>=

IntroductionT ypesStructures de contr^ oleExemple

Structures de contr^ole

IntroductionT ypesStructures de contr^ oleExemple

if i f( expression ) f instructions ; g else f instructions ; g

IntroductionT ypesStructures de contr^ oleExemple

switch switch( expression ) f caseexpressionconstante : instructions ; caseexpressionconstante : instructions ; default: instructions g

ATTENTION

au b reak...

IntroductionT ypesStructures de contr^ oleExemple

while while( expression ) f instructions ; g

IntroductionT ypesStructures de contr^ oleExemple

for for( expression1 ; expression2 ; expression3 ) f instructions ; g equivaut a : expression1 ; while( expression2 ) f instructions ; expression3 ; g

IntroductionT ypesStructures de contr^ oleExemple

do while tres proche du while avec test a la n : do f instructions ; g while( expression );

IntroductionT ypesStructures de contr^ oleExemple

perturbation du deroulement des boucles break : interrompt une boucle continue : passe a l'iteration suivante goto : existe, maisINTERDIT!!

IntroductionT ypesStructures de contr^ oleExemple

Exemple

IntroductionT ypesStructures de contr^ oleExemple

Presentation du probleme

Construction d'une bibliotheque

besoin de planches de longueur variee (largeur unique) planches vendus dans le commerce de longueur unique : 2 metresProbleme : combien de planches acheter pour pouvoir couper toutes les planches souhaitees?? 321

IntroductionT ypesStructures de contr^ oleExemple

Algorithme choisi

Hypothese simplicatrice : 3 planches maximum a decouper par planche du commerce.

Tant qu'il reste des planches a decouper

Initialiser max a 0

Pour toutes les combinaisons de 3 planches a decouper Est-ce qu'il reste des planches de ces longueurs a couper?

Est-ce que la longueur est inferieure a 2m

Si la longueur est superieure au max, on met a jour le max

Fin pour

Mise a jour du nombre de planches restantes

Afficher resultat

Fin tant que

IntroductionT ypesStructures de contr^ oleExemple

Variables

/Planches necessaires/ unsigned short intlgpl [PLN]=f1070, 1052 , . . .g; short intnbpl [PLN]=f6, 2 , 2 , 4 , 6 , 4 , . . .g; /indices dans les tableaux de planches/ intmi ,mj ,mk; unsigned intcumul=0; unsigned intmaxcumul ; unsigned intlt =0; shortnbplt =0; inti , j ,k , l ; unsigned inttotalpl =0;

IntroductionT ypesStructures de contr^ oleExemple

Boucle principale

maxcumul = 0;mi=1;mj=1;mk=1; for( l =0;lLGP )continue; i f( cumul>maxcumul ) f maxcumul = cumul ; mi=i ; mj=j ;mk=k ; g i f( cumul == LGP )break; g

IntroductionT ypesStructures de contr^ oleExemple

C'est tout pour aujourd'hui!

quotesdbs_dbs5.pdfusesText_9