• Aucun résultat trouvé

!!!!"#$%&’()$*&#!+!,-!.%&/%-00-$*&#!1!

N/A
N/A
Protected

Academic year: 2022

Partager "!!!!"#$%&’()$*&#!+!,-!.%&/%-00-$*&#!1!"

Copied!
65
0
0

Texte intégral

(1)

!

! "#$%&'($)*!+,'$(!-!.!+,#)/*0#!10'20##&! 3-!.!4511!! 6#70'8,)$9:&!1-!!

!

!

"#$%&'()$*&#!+!,-!.%&/%-00-$*&#!1!

!!

!

!

!

!

!

!

!

!

!

!

!

!

!"#$%#$&!'&(&)*++&

,%-./012"34$&+'&

5/.-6&7$89.%81:;$&<&

&)1%4$;$&="/8#>&5"%>$"/.&&

)1%4$;$6="/8#>?5"%>$"/.@4%"A?91/"8'6-/&

>229<BB#/"%-.64%"A?91/"8'6-/B48$/8B01%4$;$B01%4$;$6>20&&

(2)

1

– introduction à l’algorithmique – Introduction au langage C

• Organisation

– CM : 12 séances de 1h – TD : 12 séances de 2h

Présence obligatoire sur les TDs

• Évaluation

– 50% examen, 50% contrôle continu – Contrôle continu (TD)

• Interrogations surprises (QCM)

• Devoir long

• Participation

08/10/2008 Informatique (Programmation C) - 1

Manuele Kirsch Pinheiro

Algorithmique

• Algorithme

– Suite finie des pas à effectuer, dans un ordre donnée, afin de parvenir à un résultat – Actions pour résoudre un problème – Exemple : Changer une ampoule

• Quels sont les pas à effectuer pour changer une ampoule ?

08/10/2008 Informatique (Programmation C) -

Manuele Kirsch Pinheiro 2

Algorithme

• Programme

– Implémentation d’un algorithme à l’aide d’un langage de programmation

• L’algorithme est la « recette » du programme

08/10/2008 Informatique (Programmation C) -

Manuele Kirsch Pinheiro 3

(3)

2

– Création en 1972 par Denis Ritchie (entre autres) avec l’objectif d’écrire un système d’exploitation (Unix, le « grand-père » de Linux)

– Résultat : un langage performant et versatile

08/10/2008 Informatique (Programmation C) -

Manuele Kirsch Pinheiro 4

Langage C

• Évolution

– Le langage C a bien évolué dans le temps – 78 : Kernighan & Ritchie

– Années 80 : standardisation ANSI C

08/10/2008 Informatique (Programmation C) -

Manuele Kirsch Pinheiro 5

Langage C

• Comment ça marche ?!

– Le C est un langage compilé

1) On écrit le programme (code source) avec un éditer de texte non-formaté

2) On passe le code source au compilateur 3) On exécute le code binaire (le programme)

08/10/2008 Informatique (Programmation C) -

Manuele Kirsch Pinheiro 6

#include Main { print

…. … }

Programme.c

code source gcc Programme.c compilateur

010110101 010111001 001101011 001101101 110110111

Programme.exe code binaire

exécution du programme

(4)

3

– Le « langage » compris par les machines – Le système d’exploitation interprète

le code binaire – Unité : bit

08/10/2008 Informatique (Programmation C) -

Manuele Kirsch Pinheiro 7

Hardware Système d’exploitation

Applications

programme Windows

Linux

(5)

1

3(%+4(+%,-15"5%'6,-78+"-9%$1%'&&,-,"-2

01/%$2&)

.(%+4(+%,-15"5%'6,-

:$(3;4653

<'%)'=6,3

>95%'(,+%3-'%)(?&5()*+,3

2$&&,"(')%,3--

• @A,&96,3-'B,4-23'/&(,(-)%-/(

.(%+4(+%,-15"5%'6

C)%,4()B,3-D)&9$%(-7,3-!"!#"$%&'()*+E

2$&&,"(')%,3-

C546'%'()$"3-

0%$1%'&&,-9%)"4)9'6

!"3(%+4()$"3-78,%%-"!)%"$./

F$"4()$"-

:$(3;4653

• :$(3-%53,%B5,3

• :$(3-%,4$""+,3-9'%-6,-4$&9)6'(,+%

• 2?'4+",-'-+",-3)1")#)4'()$"-9'%()4+6)G%,-

(6)

2

I",-,"()(5-*+)-4$"(),"(-+",-)"#$%&'()$"

J,3-B'%)'=6,3-3$"(-3($4K5,3-7'"3-6'-&5&$)%,

• 2'%'4(5%)3()*+,3H "$&-!)7,"()#)'"(

B'6,+%

(L9,

J,-(L9,-)"7)*+,-68,"3,&=6,-7,3-B'6,+%3-*+,-9,+(- 9%,"7%,-6'-B'%)'=6,

J,3-(L9,3-7,3-7$""5,3

• J,3-9%)"4)9'+A-(L9,3-'44,9(53-,"-6'"1'1,-2-H @"(),%3----

int DM /N-=)(3E

short DM O-=)(3E

long DM PQ=)(3E

R5,63

float

double 2'%'4(G%,3

char

Signed / unsigned void

4?'% #6$'( )"(

6$"1 3?$%( 3)1",7

+"3)1",7 B$)7

S4()$"3-3+%-6,3-B'%)'=6,3

• T+,-9,+(;$"-#')%,-'B,4-+",-B'%)'=6,-U C546'%'()$"-!75#)")%--6'-B'%)'=6,

J)%,-D$=(,")%E-3'-B'6,+%--!%,1'%7,%-3$"-4$"(,"+

S##,4(,%+",-D"$+B,66,E-B'6,+%-!&,((%,-+",- D"$+B,66,E-)"#$%&'()$"

>95%'(,+%-78'((%)=+()$"--H-V W X

(7)

3

(L9,-)7,"()#)'"(--45*'+$/&'('-/&67 4*8*9-,$:3*'/'&'-,*7**Y

• @A,&96,3-H

int i, j, k;

char lettre;

float reel01 = 1.25;

>"-359'%,-6,3-)7,"()#)'"(3- 9'%-6,3-V Z X

(L9,

)7,"()#)'"(-

01*.%"2",.%

,$&&3$*4*,$&&3$)5*%;'((3$)*1:*<*7*

a10 10a

var_int var!

S((%)=+()$"

• >95%'(,+%-78'((%)=+()$"--H-V3X

• @A,&96,H c = a + b;

• [B'6+'()$"-

>"-9%,"7-6'-B'6,+%4$"(,"+,-7'"3-6'-B'%)'=6,-, >"-9%,"7-6'-B'6,+%4$"(,"+,-7'"3-6'-B'%)'=6,-!

>"-'77)()$"",-D$95%'(,+%-V \ XE-4,3-7,+A-B'6,+%3- >"-&,(-4,-%53+6('(-7'"3-6'-B'%)'=6,-4

• .)-4'B')(-'+9'%'B'"(-+",-B'6,+%Z-4,((,- 7,%")G%,-,3(-5*-1)*]

>95%'(,+%3

• >95%'(,+%3-'%)(?&5()*+,3-H

* /

%

+ -

• @A,&96,3-H

int a, b;

a = 2 + 3 * 5; =>**1:***?@*A b = 2 * 5 + 5 % 2;

b = 5 / 2;

Ordre de priorité

(8)

4

scanf ("%d", &annee);

printf ("Votre age%d \n", age);

)"(!^7

@"(%5,-_-.$%(),

@"(%5,-#$%&'(5,-H-scanf

.$%(),-#$%&'(5,-H-printf

F$%&'(3

%d int

%i

%f float %e

%c char

2'%'4(G%,3-3954)'+A- \n "$+B,66,-6)1", \t ('=

\\ 6'-V ` X

\" 6,-V a X

%% 6,-V ^ X

9%)"(# Da^7-^#aZ-B'%b)"(Z-B'%b#6$'(EY- 5-".%2 678*9%*/: 2$-;,%/7</=,-",!#*+>?/

+4,.2 672$-;,%7</@=,-",!#*+>?/

(9)

#

&'()*+,-./0123#

4*)5*,++,-.)'26

!"#$%&'()*+$*,-*).-/%$

–7'-*81921-29)*-.19

01/%$2&)

•3)*-.12()*+,-812,:1;223'/&(

•7'-*812()*+,-812,:1;2)%-/(

7'-*812<23)*-.121'26

• 7"325,*,'-.-2=,2;)++0'.;,-.)'2,:1;2

=>0-.=.9,-10*

–7'-*812?2@1+,'@1*2A2=>0-.=.9,-10*2@12=0.2()0*'.*20'12 .'()*+,-.)'

–3)*-.12?2B*891'-1*2C,((.;D1*E20'12.'()*+,-.)'2A2

=>0-.=.9,-10*

• 4=09.10*92()';-.)'[email protected])'.F=19 –B*.'-(

–9;,'(

3)*-.12?2B*.'-( 3)*-.12?2B*.'-(

• 3)*-.12()*+,-81

• G)*+,-9 %d int %i

%f float %e

%c char • 6,*,;-H*1929B8;.,0I2

\n ')0:1==12=.5'1 \t -,F \\ =,2J K L \" =12J M L %% =12J N L

B*.'-( CMN@2N(MO2:,*P.'-O2:,*P(=),-EQ2

!"#$%& '()*+%*,- &."/0%,(1,20"#034*567,

(10)

!

7I1+B=1 7'-*812?29;,'(

scanf ("%d", &annee);

printf ("Votre age %d \n", age);

.'-!N@

R.*120'12:,=10*2,02;=,:.1*

7'-*812?29;,'(

• 7'-*812()*+,-812?2scanf

• G)*+,-9 %d int %ld long

%f float %e

%lf double %le

%c char

9;,'( CMN@MO2<:,*P.'-EQ2 580$& '(&."/0%(1,920"#034*67,

9

R1295,*,'-.-2/012=,2:,=10*2 )F-1'01291*,2F.1'21'*15.9-*812

@,'92=,2:,*.,F=1

(11)

S T*,;1*2=>1I8;0-.)'2@>0'2

B*)5*,++1

• T*,;1*2?22

–3.+0=1*290*2=12B,B.1*2=>1I8;0-.)'2@>0'2B*)5*,++1 –UF91*:1*2=12;)+B)*-1+1'-2@192:,*.,F=19

• &'-8*V-2?2

–W8F0551*=12;)@12

• X8-D)@12?

–W8(.'.-.)'2@192B).'-92@>)F91*:,-.)'2

–T,F=12:,*.,F=192YB).'-2@>)F91*:,-.)' :

.#$%5,;<.35*"20%#.$=0"#034*5,

T*,;1*20'2B*)5*,++1

:,*.,F=19 4).'-2@>)F9Z2

0>* 0$$**

:.#$%,;<.35*"20%#.$,? $ $

:.#$%,;<.35*"20%#.$,@ $ #[\%

:.#$%,;<.35*"20%#.$,A S$ #[\%

B$,0$$.%*,;0$5,4*,%034*0C,40,204*C",;*, 8D0EC*,20"#034*,F,8D0EC*,!.#$%,

;<.35*"20%#.$

=0"#034*5

:.#$%5,;<.35*"20%#.$

(12)

"

!"#$%&'()*+,-./- 0%$1%'&&'()$"-2-

' !"#$%&'()*+$*,-*).-/%$

(!"#$%&'(')*&+,%$+-*./0%$+1!("')%+23 ' 01/%$2&)

(345%'(,+%6-%,7'()$"",76-89:98;9:;9 <;9-;;

(=$+>7,-?@)7, (=$+>7,-A$B?@)7,

' 01/%$2&)*%132,.3$/&-'4$)*

(C$()$"-A,-(D4,>'6(

(!"A,"('()$"-

=$+>7,6

' =$+>7,6

(E545(,%+"-F7$>-AG)"6(%+>()$"6-('"(-*+G+",-

>$"A)()$"-7$1)*+,-6$)(-H%')-

(3"-",-6')(-4'6-I-4%)$%)->$&F),"-A,-#$)6-7,-F7$>-A$)(- J(%,-,K5>+(5

' LK,&47,6--AG+6'1,-M

(2'7>+7,%--KN'H,>-O-,(-N-#$+%")6-4'%-7G+()7)6'(,+%- (2'7>+7,%--7,-#'>($%),7-A,-"-P/-K-Q-K-R-K-"S (2'7>+7,%-7'-&$D,"",-AG+"-,"6,&F7, (R

=$+>7,6

2@'"1,%- '&4$+7,

'&4$+7,- 1%)775,T H%')

#'+K

)"6(%+>()$"6 '%$'

2@'"1,%- '&4$+7, '&4$+7,- 1%)775,T

H%')

#'+K

345%'(,+%6-%,7'()$"",76

' 0$+%->$&4'%,%-A,+K-H'7,+%6

!! 51'7-I "#!!#$

%!# A)##5%,"(-A, "#%!#$

& )"#5%),+%-I "#&#$

&! )"#5%),+%-$+-51'7-I "#&!#$

' 6+45%),+%-I "#'#$

'! 6+45%),+%-$+-51'7-I "#'!#$

4"()++*.+5(.6+

0'6-A,-(D4,-F$$75,"-,"-2 7(.6+!!!!8+19%"*3 4"()+!!!!:+8+

(13)

%

=$+>7,-?@)7,

' U$%&'(-M

?@)7, P-&$)&S--- V

",1%*+5'/)&46%&'1/)**7****************

W

;*./0%+)&5)&)%

X,-(,6(-A$)(-J(%,-H%')-I-+"-

&$&,"(-A$""5-$+-$"-

%,6(,%'-F7$*+5-<<

!

=$+>7,-?@)7,

<%$'+=++)+>+?+

)&$'"./')*&$

<"(/% ,@%6#/.')*&

%6A* ) ? 6

!B C / Y Q Q

!B+D C E C C

!B+D F C C C

!B+F Z- Q Q Q

=$+>7,-A$B?@)7,

' U$%&'(-M A$

V

",1%*+5'/)&46%&'1/)**7 W-?@)7, P-&$)&S-G

;*./0%+)&5)&)%

X,-(,6(-A$)(-J(%,-H%')-I-+"-

&$&,"(-A$""5-$+-$"-

%,6(,%'-F7$*+5-<<

!

=$+>7,-A$B?@)7,

<%$'+=++)+>+?+

)&$'"./')*&$

<"(/% ,@%6#/.')*&

%6A* ) ? 6

!B C / Y Q Q

!B+D C E C C

!B+D F C C C

!B+F Z- Q Q Q

(14)

!

[D4,>'6(-

' 2$"H,%6)$"-A,-(D4,

()"( \-#7$'( ]-\-]^Y

(#7$'( \-)"( ]^_-\-]

' !&47)>)(,-- (`+($&'()*+, (0'6-'66,a-#)'F7, ' H6A0)/)'%

(3"-)"A)*+,-,K47)>)(,&,"(-7,-"$+H,'+-(D4, (1&%I'?A%3

[D4,>'6(--)&47)>)(,

!"#()#*+

$%&'#,(-.+

///

,(-.#!#,(-.#0#(#+

///#######

50*(' !" 50*(' # )&'

50*('

$%&" $"

$%&"

)*+,-./012-345,6/7348179+:7-70,

50*(' !" 50*(' #

$%&"

50*('

$%&"

50*(' !" 50*(' #

$%&"

'%&"

[D4,>'6(-,K47)>)(,

!"#()#*+

$%&'#,(-.+

///

,(-.#!#,(-.#0#($%&'#)(#+

///#######

50*(' !" 50*(' # )&'

$%&" $"

(")*+,-.""

50*('

$%&"

50*(' !" 50*(' #

$%&"

50*('

50*(' !" 50*(' #

)*+,-./012-345,6/73481 /01*232-/

[D4,>'6(-,K47)>)(,

' `H'"('1,-M- (b)6)F)7)(5-

!"# !*+*,-

$%&'# .*+*/0,1-

!*+*.-

!"# !*+*,-

$%&'# .*+*/0,1-

!*+*($%&'#)*.-

(15)

$

'()*+,--!"#

! !"#$%&'$()"*+,*')"$%-.,*

.-+/012345-6,-$%&'(,3- )"*$%&'(

! 7412-)1,-2,)+,- 01235)*30(1-8

"9::,*3430(1-8-0;$

"<,23-8-0-=;-1

">1*5?@,13-8-0-;-0-A-$

'+(*- 6/01235)*30(12

0-=;-1 B540

:4)C 0-;-$

0-;-0-A-$

'()*+,-!"#

! D(5@43-8

:(5 E-+!!(,-+-&"./ -(/-/&.,#01(.-F- G

2'",3)4&./-#5,-&"./36 H

011,'$2$()"* $,#$ !"'%34,"$

'()*+,-!"#

5%2', +6,73'&$()"

( " 12'$)%(,.

89 : I I I

89*; < = :

89*= : = :

89 = ; = ;

89*= = = >

89*? J K L

!"#$%$&'($)$&$*'$+$)$&$'$&,($-$

'()*+,2-0@M50N)?,2

! O1,-M()*+,-P,)3-*(13,105-)1,-4)35,Q

! RC,@P+,2-8-

@A(.,E3,23-$F-G

1)%E4::,*3430(1S--3,23-%S-01*5F G---&./-#5,-&"./3!"#6333H +5-#(/3&./-#5,-&".3$%&'(6 H

1)%E4::,*3430(1S--3,23-%S-01*5F-G-

@A(.,E3,23-$F--- G---&./-#5,-&"./3$%&'(6333H +5-#(/3&./-#5,-&".3!"#6 H

@A(.,E3,23-$F-G

@A(.,E3,23-%F

G---&./-#5,-&"./3$%&'(6333H +5-#(/3&./-#5,-&".3$%&'(6 H

(16)

%

'()*+,2-0@M50N)?,2

B*'A2C&,*("$,%2'$()"*

+&*D%,4(,%*!"#E*

)"*,73'&$,*$)&$ .,*

#,')"+*!"#.

!

933,130(1-.-+/016,13430(1-

R-#-T-1(1U:(5@43?

! R#T--P()5-$-*454*3V5,

! T(530,--8

!"#$%&' !"#$%&

! R135?,-8

"#$%'('()#$%&'!&

D(1*30(12-6,-+4- M0M+0(3WVN),-#$+()FA

XP?543,)52-)1405,2-AA-,3-UU

! >1235)*30(12-35V2-2()B,13-)30+02?,-8--0-;-0-A-$S

! XP?543,)5-6/01*5?@,13430(1-GG8-

! XP?543,)5-6,-6?*5?@,13430(1-HH8- (*GG*/********3C&(I2&$*******(*J*(*G*:/

(*HH /********3C&(I2&$*******(*J*(*H :/

(17)

K

XP?543,)52-AA-,3-UU

)))

*+# *+',-

*,-,./

0,-,.

*11/,

.%*/01 !2*(342+*&- )))'''''''

0-;-$- (*GG*/**!!!! (*J*(*G*:/

XP?543,)52-AA-,3-UU

)))

*,-,2/

0,-,*11/, .%*/01 !2,(342+,&- )))'''''''

K*J*(*GG*/**!!!! K*J*(/

(*J*(*G*:/

Y-;-$

0-;-%

)))

*,-,3/, 0,-,11*/,

)))'''''''

0AA-()-AA0-IZ

)))

*,-,4/

0,-,*11,5 6/, .%*/01 !2,(342+,&- )))'''''''

K*J*

(*GG*

H L/******!!!! K*J*(**H L/

(*J*(*G*:/

Y-;-U%

0-;-J (*GG

GG4P5V2[-01*5?@,13- 5?4+02?-4P5V2-ZZZ

!

0AA-()-AA0-IZ

)))

*,-,7/

0,-,11*,1,6/, .%*/01 !2,(342+,&- )))'''''''

K*J*

GG(**

G**L/******!!!! (*J*(*G*:/

K*J*(**G**L/

Y-;-$!

0-;-"

GG(

GG4B413[-01*5?@,13- 5?4+02?-4B413-ZZZ

!

(18)

J XP?543,)52-6/4::,*3430(1-?+45\0,

! ]501*0P4)C-(P?543,)52-6/4::,*3430(1-8- A;-- U;-- ^;-- #;--- _;----

0,1-,*/ !!!! 0,-,0,1,*/, 0,5-,*/ !!!! 0,-,0,8 */

0,9-,*/ !!!! 0,-,0,9,*/

0,:-,*/ !!!! 0,-,0,:,*/

0,;-,*/ !!!! 0,-,0,;,*/

]50(503?-,135,-+,2-(P?543,)52

9D3%2$,&%#*&"2(%,#*M**** GG* HH N'2#$O

9D3%2$,&%#*2%($A43$(C&,#**M ^ # _

A U

9D3%2$,&%#*%,.2$()"",.#*M P PJ Q QJ

JJ RJ

9D3%2$,&%#**.)S(C&,#*M TT

UU 9D3%2$,&%#***+6211,'$2$()"*M J

GJ VJ HJ

WJ XJ

(19)

$

!"#$%&'()*+,-./

0%$1%'&&'()$"-2

' !"#$%&'()!"#$%&'()#"*)("+)(+("(',-&)(")+"

),./'+$(

' 0#$()1+%+'/1"*)"&2'1(+#34+'/1"'5"!

('()+"'(*!"#$%#

' 6(%7)"*)"+)(+("),./'+$(

' 8-$#%+)3#("&/7'93)(

(::";"<<

=1(+#34+'/1"&'

' =1(+#34+'/1"*)"4/1+#>&)"-)#,)++%1+"*)"5%'#)"31"

+)(+

' ?/#,%+"!"

!" @(#%(A"

B

)$*+",-&.%(/0+(&*.%C D

E&/4"

*2'1(+#34+'/1(

F)(+"

G)".&/4"*2'1(+#34+'/1("

12)(+"")H$43+$"93) ('"&%"4/1*'+'/1"() I$#'5')"#$%&

!

I#%' 5%3H

JH),-&)

G)"1/&.('1)"()#%")H$43+$"

93)"('"'()(*

=1(+#34+'/1"&'"!"#$%#

' ?/#,%+"!"

!" @(#%(A"

B

)$*+",-&.%(/0+(&*.% 2C D

)&()"

B

)$*+",-&.%(/0+(&*.% 3C D

E&/4"

*2'1(+#34+'/1("K F)(+"

I#%' 5%3H

E&/4"

*2'1(+#34+'/1("L JH$43+$"('"&)"+)(+")(+"MNO=

JH$43+$"('"&)"+)(+")(+"?O6P

(20)

%

JH),-&)"

Q'""'()(*4"&)1/&.('R"&%"&'71)"+, (2%55'4S)"@T"U")(+"1$7%+'5"TA

-!./.4"&)1/&.('R"&%"&'71)"+0 (2%55'4S)"@T"U")(+"-/('+'5 T"A

=1(+#34+'/1("&' ),./'+$)(

' 61)"'1(+#34+'/1"'5"-)3+"4/1+)1'#"*2%3+#)("

'1(+#34+'/1("*)"4/1+#>&)"

(!"4"56&$#4",*!56&$#4"'*/V

!"(@+)(+"LA"B

!"@+)(+"KA

B"""&.%(/0+(&*.%"&'"37"""D 1231

B"&.%(/0+(&*.%"#$%# &'"37"D V

D 1231B"

&.%(/0+(&*.%"#$%# &'"27"

V D

!"(@+)(+"LA"B

&.%(/0+(&*.%"&'"27 D

1231B"

!"

!"@+)(+"KA

B"""&.%(/0+(&*.%"&'"37"""D 1231

B"&.%(/0+(&*.%"#$%# &'"37"D V

D

JH),-&)

81"12%++)'1+"&)"KW&'93)"('"

'()(*()(+"5%3H"

8-$#%+)3#"&/7'93)(

' 8-$#%+)3#("*)"&%"&/7'93)".//&$)11)"!

(8-)#%+)3#""""44 ! JF"@OXYA"

!"#!"#$%##!! &'#(#)%

(8-$#%+)3#"""""55 ! 86"@8NA

&*#!!#+,+%#"" &*#!!#+-+%

(8-$#%+)3#"""""""6 ! X8X"@X8FA

#&*#!!#+,+%

(21)

)

8-$#%+)3#("&/7'93)(

44 #78! 98:;

#78! # 9

98:; 9 9

55 #78! 98:;

#78! # #

98:; # 9

6 #78! 98:;

9 #

%"Z"[";"."Z"L;"4"Z"\L

@%"]".A""::""@.^4A"""_

@%"]".A""<<""@."]"4A"""""_

`"@%"]".A""""_

JH),-&)

@U"^Z"[A"::"@U]ZaA M%&)3#"*)"U")1+#)"[")+"a

(22)

!

!"#$%&'()*+,-./

0%$1%'&&'()$"-2

& !"#$%&'()!"'1!"#$%"&'()*+)%'("#,-+))!"#$%

& .#/!+("0"&'()*+)-1&(!"#$%"&'()&!"#$%

& 2!03+)*+)-1&(!"#$%"&'()'()*+

& 45/#0"+$#)),-.

6(!"#$%"&'()*+)%'("#,-+)!7&"%8

& 9+!"):$-"&5-+!);0-+$#!

& <'#:0")=)

!"#$%&>)/0()&&"123"2#?)

@

%'!(4*5)6(7)"2&#(6$#"12&A

*+(',-

%'!(4*5)6(8)"2&#(6$#"12&A

*+(',-

././.

0(1'23$/)"2&#(6$#"12&A B

6(!"#$%"&'(!));0-+$#)C +D5# &("

E0-+$#)C

6(!"#$%"&'(!));0-+$#))F

6(!"#$%"&'(!))50#)*/G0$"

!"!"!"

E0-+$#)F

!"!"!"

!"#$%& >)/0(3"2#?)

@

%'!(4*5)6(7) "2&#(6$#"12&A

*+(',-

%'!(4*5)6(8) "2&#(6$#"12&A

*+(',- ././.

0(1'23$/)"2&#(6$#"12&A B

+D5#+!!&'()#/!$-"0(")$()&("

!4'+#'*3(//*+)"H5+

!#5$

!%&'+//////6$78(%'!$9/

!-'(3I)!8'#"I)$(!&3(+*

!(:8+(!!#;5/

!&)+D5#J&(" KK);0-+$#C

*+(',A)

$(+<#5(-1+D/%$"&'()*1$() L-'%)*1&(!"#$%"&'(!

0(1'23$>'5"&'((+-?)=)

0$%$()*+!)%0!)5#/%/*+("!)(1+!");#0&

MD+:5-+)

*+(',A)

=>#3/5>7/'/8'!/25/*+(',/?@

%&'+%A N)N)N)

!"#$%& 6/%9

0(1'23$/A)

=>#3/5>7/'/8'!/25/0(1'23$?@

(23)

$

MD+:5-+

6(!"#$%"&'()8+#5$1#/0-&!/+)

*0(!)-+!)*+$D)%0!)=)

>DO&?)KK)C)))

>DO&?)KK)OC

45/#0"+$#)P Q)= R

&45/#0"+$#)*+)"+!")P Q))= R

6&$)&9 ? )'34(*" )&"39*6/ A

& S)-0)5-0%+)*+)=

&G)>0)T)L?) 5+"&")K)0A +-!+

5+"&")K)LA

& 4()5+$")/%#&#+)=

5+"&")K)>0)T)L?)Q)0)=)L)A

MD+:5-+)

&G)>0)T)L?

5+"&")K)0A +-!+

5+"&")K)LA)

&G)>0)U)L?

3#0(*)K)0A +-!+

3#0(*)K)LA)

6(!"#$%"&'(!)*+)%'("#,-+

A(!$!/

& &G)V)+-!+

& !7&"%8 V)%0!+)V)

*+G0$-"

B;2%3(!/

& 78&-+

& *')V)78&-+

& G'#)

(24)

$ '()*+,-./01234$

5+*6+-,,-./*(37

! !"#$%&'()8

"'(.+*91:./*(3;<;.=,23>/(-/+2

"?2@+A;2(.-./*(392;3:-+-:.=+2;3

BCA:1./*(39D1(3@+*6+-,,2

! 7*923>/(-/+2

"E23F G-(6-62 H3:*,@+/;3@-+3G2;3,-:I/(2;

"E23;<;.=,239D2C@G*/.-./*(3/(.2+@+=.23

G23:*923>/(-/+2

!"#$$#!%%& '()*+,-./0123J5+*6+-,,-./*(37K3L M-(12G23

N/+;:I35/(I2/+* !

!"#$%"#&

'()*+,&-$.&/0123*"*324 500136"*324)

0#27#",,&

834$2%) 934:/

7*9-623>/(-/+2

! O*1.2;3:*,,1(/:-./*(;3P3GQ/(.A+/21+3923 GQ*+9/(-.21+3;*(.3)-/.2;3-R2:392;3;/6(-1C3 AG2:.+/012;

! 5*1+3;/,@G/:/.A32.3)/->/G/.AS3:2;3;/6(-1C3*(.3921C3 A.-.;3;21G2,2(.38

%3T A.2/(.3J->;2(:23923;/6(-G3AG2:.+/012K

$3T -GG1,A3J@+A;2(:23923;/6(-G3AG2:.+/012K

! U(23:43*;-$<34=2#,"*324-J>*13?K32;.3-@@2GA23@3*

J923GQ-(6G-/;3"'!"#$ %&'&(K

VA:/,-G3W3X/(-/+2

! E23;<;.=,239A:/,-G

"?2@+A;2(.-./*(383$%3;<,>*G2;39/))A+2(.;

!%S3$S3!S3"S3YS3ZS3[S3\S3&S3]

"?2@+A;2(.-./*(39Q1(3(1,A+*3JZ&%K38

!A:2(.-/(2;S3B9/^-/(2;S3>1(/.A;

"_01/R-G2(.3,-.IA,-./01238

!AC$%!`3BC$%$`3>C$%%

(25)

!

VA:/,-G3W3X/(-/+2

! 4<;.=,23>/(-/+2383

"?2@+A;2(.-./*(3383!3;<,>*G2;339/))A+2(.;

!>-C=":/D-2.33?-CE#"3D

"?2@+A;2(.-./*(339Q1(3(1,A+*3J[K38

!??>! ?CY3`3?C!3`3>C$

"_01/R-G2(.3,-.IA,-./01238

!?C!!`3?C!$`3>C!%

X/.;S3X<.2;S3*:.2.;S32.:aaa

! !"#) *!+,*!&(-,.&!"&#+,/0,1*,23

! $%#&#/1*,'(#&3,) '#1*4+,%+,5,.&(6

! )"*$+$%#&#,-/713,) 2089,1:(+(6,

! ./01+$%#&#,/;13,) 208971,< 2095=>?,1:(+(6

! 2"01+$%#&#,-/@13,) 2089,;1,< 20>A>92589,1:(+(6

! B1*#C*1&,271,D,2000,1:(+(6E

"F!:1#+G,H,:"*6+,%+,I",."6+,.&!"&#+

"820J,2089

O-/GG2392;3.<@2;392;39*((A2;

! 34*

"$[>/.;3!!$[@*;;/>/G/.A;3

"9233FGHIJB--P33`GHIJI

! )K2#*---34*

"&>/.;3!!&@*;;/>/G/.A;

"9233F?HB---P333`?HI

! 1247---34*

""!>/.;3!!"!@*;;/>/G/.A;3

"923FH?LILBGJLB--P33`H?LILBGJLI

:4)374&$

J;-(;3;/6(-GK

!1(;/6(29 ;I*+.

!923%3P3!ZZ

O-/GG2392;3.<@2;392;39*((A2;

! =12"*

""!3>/.;3

"b1;01DP3"aY2`"&

! $2:@1&

"[Y3>/.;

! 6K"#-

"&3>/.;

"HAJ-6"#"6*+#&)

(26)

"

?2@+A;2(.-./*(3913.<@23:I-+

! E-3+2@+A;2(.-./*(392;3:-+-:.=+2;3@-+31(23

;A012(:23923>/.;3:*,,23@*1+3G2;3(1,A+*;3 2(./2+;3

"7D2;.3GD/(9/:-./*(3913.<@2392;39*((A2;01/3@2+,2.3

923)-/+23G-39/))A+2(:232(.+2321C

! 'G3)-1.362$&#G2;3:-+-:.=+2;3J:I/))+2;S3G2..+2;32.3 -1.+2;3;<,>*G2;K3;*1;31(3=2#,"*01/[email protected].+23 +2:*((13@-+3.*1;3G2;3*+9/(-.21+;

"5'MNN

"Ud'7eVB

f47''

! d*+,23/(.2+(-./*(-G23@*1+3G-3+2@+A;2(.-./*(3 92;3:-+-:.=+2;

! !Z[3:-+-:.=+2;3<3;*(.3+2@+A;2(.A;

"7I/))+2;3%3P3]

"E2..+2;3923GD-G@I->2.32(3,-g1;:1G232.3,/(1;:1G2

"7-+-:.=+2;3;@A:/-1C3

!4@-:2S3hS3#S3iS3jS3kS3lS3mS32.:a

"7-+-:.=+2;3923:*(.+nG23

!d*1R2GG23G/6(2S3>/@S3.->1G-./*(S32.:a3

O<@23:I-+32(3G-(6-6237

! ?2@+A;2(.-./*(3;2G*(3G23:*9235'MNN

! :I-+36-O-<5<o33

:*++2;@*(9333P333J/(.K3:3pp3[Z

! :I-+36-O-<><o

:*++2;@*(933P333J/(.K3:33pp33Y&

P"00&1l

5*1+3,2(./*((2+31(3:I-+S3

*(31./G/;23Q3Q38

<"<Q-<@<Q-<><Q-<?<Q-<R4<Q-<R*<S

!

(27)

#

&'()*+,-./0123#

4*)5*,++,-.)'26

! 7891:-.(;2<

"=;,512>1;2()':-.)';

"?@(.'.-.)'2>1;2:)';-,'-1;2

A)':-.)';

! ?@(.'.-.)'2

"='12()':-.)'21;-20'2+)>0B122:)';-.-0@2>C0'12;0.-12

>C.';-*0:-.)';

"='12()':-.)'21;-20'2+)*:1,02>12:)>12*@0-.B.;,8B1

! DE1+FB1;2 +,.'2GH2

F*.'-( GIJ1BB)2K)*B>2LIH :2M251-:N,*GH

A)':-.)';2

##(!"#$%&'( M22()':-.)'22G2,*5O)P2QP2,*5O#H

&***+***,**-*.*/

! 0(%1!"*2(*34*

,1#5%61#

"#$%"&'$!(#

! 62(#%6,654%(!"

-#17*2(*34*,1#5%61#/

)*&+$,*&

- 4"8!7(#%9 ."/'0123212."/'&

=;,512>1;2()':-.)';

! 7'24''(33(0'12()':-.)'2F,*2;)'2')+P21'2 .'>./0,'-2B1;24"8!7(#%9,FF*)F*.@;2

! DE1+FB1;2<

*,:.'14256"$G2EHR (",&$) GIE2M2S(2IP2EHR : M2/#$+7."GHR

8*&+$,*&<2T56"$U 9"/%:#&$<2T-U

;#$*%";0*2B,2V,*.,8B12T".+,&#U

8*&+$,*&<2T(",&$)U 9"/%:#&$5<2T-242<)U21-2T-U

;#$*%".5')*@

8*&+$,*&<2T/#$+7."U 9"/%:#&$<2F,;2>C,*50+1'-

;#$*%";0*2B,2V,*.,8B12T+U

(28)

!

DE1+FB1

-.+12GW=XXH2

;*,'> G2Q2H E22M2*,'>2GH2S2##2

F*.'-( GIQ2IH

;:,'( GIS>IP2Y.H2

A)':-.)'2+,.'

,&$+,.'2G2,&$ ."/+12+7."2."/=>?2H22 Z

Q[2

\

9"/%:#&$52 9"/%:#&$52

.'- ,*5:

:N,*2,*5V]^

;#$*%"2 .'-

_.8B.)-N`/01;2

! X1;2()':-.)';2F10V1'-2a-*12)*5,'.;@1;2>,';2B1;2 8.8B.)-N`/01;

! _.8B.)-N`/01;2! 1';1+8B12>12()':-.)';2

! _.8B.)-N`/01;2;-,'>,*>2

)(261:; 9%236<:; 74%;:;

%67(:; 5%&'(:; 3676%9:;

9%"6#8:; (""#1:; ,314%:;

31543(:; 9%24"8:; 9%22(,:; [2[2[

_.8B.)-N`/01;2

b,&+@%A#c9%236<:;d

.+F)*-2>12B,28.8B.)-N`/0129%236<:;

X1;2()':-.)';2>129%236<:;;)'-2

>.;F)'.8B1;2<

"9"4#2GQH

""4#2GH2

"4<9GH

"Q2 4)0*22:)+F.B1*

5::B@:22e)2F*)5 F*)5[:

!

(29)

f

g01B/01;2()':-.)';20-.B1;Q

! ;->.)[N

".'- F*.'-( G:N,*h2()*+,-P2[[[H

".'- ;:,'( G:N,*h2()*+,-P2[[[H

".'- 51-:N,* GV).>H

" .'- F0-:N,* G.'- :H

! ;->B.8[N

".'- ,8;2G.'- 'H

"B)'52B,8; GB)'52'H

".'- *,'>2G=*,AH

"V).> ;*,'> G0';.5'1> .'-)##2H

! :-iF1[N

".'- .;,BFN, G.'-5H

".'- .;0FF1*G.'-5H22

".'- .;B)K1*G.'-5H2

".'- .;:'-*B G.'-5

".'- .;>.5.- G.'-5H

".'- .;,B'0+ G.'-5H

".'- -)B)K1*G.'-5H

".'- -)0FF1*G.'-5H

! +,-N[N

">)08B12F)KG>)08B12.P2>)08B12&H

">)08B12;/*-G>)08B12.H

">)08B12B)5#$G>)08B12.H

">)08B12(,8;G>)08B12.H

">)08B12;.'G>)08B12.H

=*,A C!(#2A#2A*&&D5 .'>./012F,;2>C,*50+1'-2)02

F,;2>12*1-)0*

?@(.'.-.)'2>C0'12:)';-,'-1

! X1;28.8B.)-N`/01;2F10V1'-2:)'-1'.*2B,2>@(.'.-.)'2

>1;2:)';-,'-1;

! :)';-,'-1 ! V,B10*2'12:N,'512F,;2 jO4& E2M2F)K GjO4&P2!HR2 W=XX22 ;*,'> G-.+1GW=XXHHR AXkOjlm2

?_XOjlm 3JnkOjlm

&WkOj&W Q2

?@(.'.-.)'2>C0'12:)';-,'-1

! ?@(.'.-.)'

! DE1+FB1;2 b>1(.'1 jlm22222#$

b>1(.'1 Al=m22222$

b>1(.'1 onl&222222#

bA#),&# 6kD222V,B10*

?.*1:-.V12F*@e:)+F.B,-.)'2

5:: *1+FB,:12-)0-;2B1;2 T 6kD U2F,*2T V,B10* U

J,8.-01BB1+1'-P2)'2 0-.B.;12>1;2jlp=36=XD3 F)0*2 B1;2')+;2>1;2:)';-,'-1;2

!

DE1+FB12

ED),&,$,*&

b>1(.'1 j&W22e#q b>1(.'1 jlm22rq2

F5./#2 :1B: M2j&WR :1B: cM2jlmR2

(30)

#

!"#$%&'()*+,-./

0%$1%'&&'()$"-2

& 3!"#$%&'()*

'+,%-./0$%&.,)1)23),.%&.,)/43--35)0,&/&6#,(&.,,#2)

7--35)8)9#$%#0-

& :-.!2;6#)*

'<,)=#0%)$32$02#-)23)6.5#,,#)/40,)>-.0?#)#%)3''&$@#-) 2#(),.%#()&,'A-&#0-#()1)23)6.5#,,#

'+2)'30%)>3-/#-)2#(),.%#()3'&,)/#)2#()$.6?3-#-)1)23) 6.5#,,#

& B.20%&.,()*

'B.20%&.,)C)*)

&7=.&-)30%3,%)/#)=3-&3!2#()D0#)/4A%0/&3,%()/3,()2#)>-.0?#

&:3()(3%&('3&(3,%)EE)

'B&)2#)>-.0?#)$.,%&#,%)CFG)A%0/&3,%()H)IFG)H)FGG)HH

'B.20%&.,)J)*)0,)!"#$"%&EE)

7--35)8)9#$%#0-

& K,)'&&'(L.0)0,)=#$%#0-M)#(%)0,#)(%-0$%0-#)/#)

/.,,A#()$.,%#,%3,%)0,)")*"+,-"./"./0))1"*.

/40,)+2+".$(3"N

& K,)=#$%#0-)#(%)0,#)!'&4',-"D0&)$.,%&#,%))

?20(&#0-()#(?3$#(?.0-)>3-/#-)2#()!'-"%&*

'2.3% ,.%#(OCGP

CQRFS TRUF

,.%#( ,.%#(OJP

V@3D0#)?.(&%&.,)

$.,%&#,%)0,)'2.3%

I Q F S U T

G C J W

XA$23-3%&.,)/40,)3--35

5-0'$ )0$"* O)CG P)Y

Z5?#)/#() /.,,A()

+/#,%&'&$3%#0- L,.6)/#)23)=3-&3!2#M

[(/#)

?.(&%&.,(

L%3&22#M

,.%#(

I Q F S U T

G C J W

(31)

$

XA$23-3%&.,)3=#$)&,&%&32&(3%&.,)

5-0'$)0$"*O)CGP))\)])GR)GR)GR)GR)GR)GR)GR)GR)GR)G)^)Y

Z5?#)/#() /.,,A()

+/#,%&'&$3%#0- L,.6)/#)23)=3-&3!2#M

[(/#)

?.(&%&.,(

L%3&22#M

G G G G G G

G G G G

,.%#(

I Q F S U T

G C J W

932#0-(

7%%#,%&.,)1),#)?3() '.0-,&-)?20()/#()=32#0-() D0#)/#)?.(&%&.,(

!

K(3>#)/40,)=#$%#0-

)0$"* O)J P))\)CGNJFY

+,/&$#

[(#,%&#-)

'2.3%))0$"* O)67.P)Y

+,/&$#))/#)71)8 L%3&22#)_ CM

%3&22#

CGNJF

,.%#(

,.%#(OJP

I Q F S U T

7 C 9 8

K(3>#)/40,)=#$%#0-

& `4&,/&$#)#(%)0,),a #,%&#-)L4)$M)

,.%#)O)JP ,.%#)OC)b)CP

,.%#)O)&)P ,.%#)O)&)_ CP

& cd#6?2#

7%%#,%&.,)1),#)

?3()/A?3((#-)23)2&6&%#

L23)%3&22#)/0)=#$%#0-M)EEE)

! !

($3,' Lef'eR):)0$"*;4<MY

(.66#)b\))0$"*;4<Y

cd#6?2#)

g/#'&,# h7i)CG

($3,' Lef'eR)j,.%#(O&PMY (.66#)b\),.%#(O&PY

'2.3% ,.%#(Oh7iPY

&')L,.%#(O&P)k)6.5M)

(32)

!

! "#$%&'($)*!+,'$(!-!.!+,#)/*0#!10'20##&! 3-!.!4511!! 6#70'8,)$9:&!1-!!

!

!

"#$%&'&$(!

!!

!

!

!

!

!

!

!

!

!

!

!

!

!

!

(33)

89-/-:-1%)7,-,"-&')"-;,-<=,">)%$"",&,"(-

Dans ce TD, nous allons faire des exercices pour la prise en main de l’environnement sous Linux utilisé dans les salles machines. Pour y accéder, nous avons besoin d’un identifiant et d’un mot de passe. Dans notre cas, il s’agit de l’identifiant « user », sans aucun mot de passe.

45,%6)6,-/-

a) Trouver l’éditeur de texte (gedit) dans le menu d’applications. Où l’avez-vous trouvé ? b) Taper le texte suivant (attention à bien respecter les espaces et les signes de ponctuation)

#include <stdio.h>

/* mon premier programme en c */

int main (int argc, char argv[]) { printf ("Hello World!\n");

return (0);

}

c) Enregistrer le texte dans un fichier nommé « helloword.c ». Dans quel répertoire l’avez-vous enregistré ?

d) Toujours dans l’éditeur de texte, aller sur le menu1 « affichage ! Modes de coloration ! Sources » et choisir l’option « C ». Que se passe-t-il ?

e) Trouver le navigateur Web. Entrer dans son courrier électronique de l’Université Paris 1, et envoyer à vous-même le fichier helloword.c (en tant que pièce jointe).

45,%6)6,-?-

Les exercices suivants doivent être réalisés à l’aide des informations contenues dans le guide de référence rapide qui vous a été fourni.

a) Trouver dans le menu d’applications le terminal. Lancer-le.

b) Indiquer dans quel répertoire êtes-vous. Donner le chemin complet.

c) Afficher le contenu du répertoire courant. Quelle commande avez-vous utilisée pour le faire ? d) Créer un répertoire nommé « code » dans le répertoire courant.

e) Entrer dans le nouveau répertoire « code », exécuter la commande « ls -la ». Que représente- t-elle ?

f) Quel est le chemin complet du répertoire « code ».

g) Exécuter la commande « cd .. » suivie de la commande « pwd ». Que se passe-t-il ? Qu’avait fait la première commande ?

1 On suppose ici un éditeur en Français. Il se peut qu’il soit en Anglais. Dans ce cas, chercher l’équivalent dans le menu « view ».

(34)

k) Déplacer le fichier « HelloWorld.c » vers le répertoire « code » (utiliser pour cela le chemin complet de ce répertoire).

l) À l’aide de la commande « rmdir », essayer d’effacer le répertoire « code ». Que se passe-t- il ? Comment devons-nous procéder afin d’effacer ce répertoire ?

45,%6)6,-@-

a) Brancher une clé USB sur l’ordinateur. Que se passe-t-il ? Essayer de localiser, à l’aide de la commande « ls », le répertoire représentant la clé USB (essayer sous les répertoires

« /media » ou « /mnt »).

b) Copier le répertoire « code » et son contenu (astuce : utiliser la commande « man » pour comprendre comment faire ça avec la commande « cp »).

c) Déconnecter la clé USB.

45,%6)6,-A-

a) Comparer la sortie des commandes « which gcc » et « whereis gcc ». Quelle est la principale différence entre ces deux commandes ?

b) Exécuter les commandes suivantes « cat helloworld.c > test_redir.txt », suivie de

« cat helloworld.c >> test_redir.txt ». Que contiendra le document test_redir.txt une fois ces commandes exécutées ?

c) Comment pouvons-nous écrire la commande cat helloworld.c >> test_redir.txt sur deux lignes (par exemple, le mot « cat » dans une ligne et le reste « helloworld.c >> test_redir.txt » dans la ligne suivante ? Expliquer.

d) Comparer les commandes « cat », « more » et « less », en exécutant « cat test_redir.txt »,

« more test_redir.txt » et « less test_redir.txt ».

e) Que fait la commande « cat test_redir.txt | more » ? Pouvons-nous faire la même chose en utilisant la commande « less » à la place de la commande « more » ?

f) Que fait la commande « clear » ? Et la commande « echo » ? Quelles sont leurs options ? (Astuce : utiliser la commande « man »)

g) Que fait la commande « ls *.c » ? Que présente-t-elle ?

h) Archiver les fichiers créés au cours de la séance à l’aide de la commande « zip ».

i) À l’aide de l’éditeur de texte gedit (vu au début de la séance), modifier le fichier

« test_redir.txt » en incluant la ligne « /* CECI EST UN TEST */ » à la ligne 11.

j) Lister les fichiers inclus dans le nouveau fichier « zip » à l’aide de la commande « unzip ».

Quelle option avez-vous utilisé ? Si vous exécuter la commande « unzip » sans cette option, qu’arrivera-t-il à vos fichiers ?

45,%6)6,-B-

a) Aller dans le répertoire où se trouve le fichier « helloworld.c », et taper la commande « gcc helloworld.c ». Que se passe-t-il ? Maintenant, taper la commande « gcc –o helloworld helloworld.c ». Que se passe-t-il ? (Astuce : utiliser la commande « ls »).

(35)

89-:-;-.(%+6(+%,-2<"<%'=,->?+"-@%$2%'&&,-3--

Dans ce TD, nous allons réaliser des exercices couvrant la structure générale d’un programme en C et l’usage des variables. Nous allons faire des programmes simples en utilisant les concepts vus en cours.

3$&@)='()$"-

Avant de commencer les exercices, il faut savoir comment compiler ses programmes. Pour compiler un programme en C, on utilisera le compilateur « gcc » (Gnu C). Il faut donc ouvrir un terminal, aller sur le répertoire où se trouvent le (ou les) source(s) qu’on veut compiler, et taper la commande « gcc –o source source.c » (en remplaçant le « source.c » par le nom du fichier qu’on veut compiler).

Par exemple :

gcc –o helloworld helloworld.c Puis, pour exécuter le programme, il suffit de taper :

./helloworld

(remplacer le « helloworld » par le nom indiquer avec l’option « -o » de la commande gcc)

45,%6)6,-/-

a) Le programme ci-dessous présente plusieurs erreurs. Trouvez-les.

b) Analyser le programme ci-dessus. Décrire que devrait faire chaque ligne.

c) Corriger le programme ci-dessus et l’exécuter.

45,%6)6,-:--

Écrire un programme en langage C qui affiche le message suivant :

Bonjour, entrer un nombre entier s’il vous plait :

L’utilisateur doit alors entrer un nombre entier (par exemple 72), et le programme doit répondre avec le même numéro que l’utilisateur a fourni :

Le nombre que vous avez entre est 72

(36)

45,%6)6,-B-

a) Écrire un programme qui demande à l’utilisateur deux nombres entiers et qui affiche la somme entre les deux nombres.

b) Étendre le programme précédent pour qu’il affiche également la soustraction entre les deux nombres lus (premier – second).

c) Étendre encore le programme précédent pour qu’il affiche la division (premier / second) et le reste de la division (premier % second).

d) À partir de la dernière version du programme précédent, que se passe-t-il si l’utilisateur introduit les nombres « 9 » et « 2 » respectivement ? Quelles réponses aurons-nous pour la division et le reste ? Comment faire pour afficher le résultat de la division lorsque ce résultat n’est pas un nombre entier ?

e) Que se passe-t-il pour l’addition si on introduit les nombres « 2147483647 » et « 1 » ? Expliquer.

45,%6)6,-C-

a) Tracer l’exécution du programme ci-dessous (pour chaque point d’observation, noter sur un tableau la valeur de chaque variable). À la fin de l’exécution (point d’observation 3), quel sera la value de la variable « fahr » si l’utilisateur fourni la valeur « 10 » ? Vérifier en tapant et en exécutant le programme.

b) Quel est l’effet du « %f » dans le « printf » à la ligne 22 ? Quel est la différence par rapport au

« %d » utilisé précédemment ?

(37)

/* Suite de Fibonacci de 1 a 7

* La suite de Fibonacci est un probleme mathematique defini comme suit:

* f0 = f1 = 1

* fn+2 = fn + fn+1, pour tout n >= 0 */

main() {

/* variables:

* - p comme precedent * - s comme suivant */

int p, s, n;

//Point d’observation 1 printf("%i\n", n);

p=1;

s=1;

//Point d’observation 2 n=s;

s=p+s;

p=n; //Point d’obervation 3 n=s;

s=p+s;

p=n; //Point d’obervation 4 n=s;

s=p+s;

p=n; //Point d’obervation 5 n=s;

s=p+s;

p=n; //Point d’obervation 6 n=s;

s=p+s;

p=n; //Point d’obervation 7

printf("Le septieme terme de la suite de Fibonacci vaut %i\n", s);

}

(38)

illustré ci-dessous résout-il ce problème ? Si non, comment pouvons-nous résoudre cette question ?

b) Pour résoudre le problème posé par la question 7a, proposer un programme pour échanger les valeurs des variables « a » et « b » à l’aide d’une troisième variable « t », dite variable

« tampon ».

(39)

!

!

'()*)+),-.)/$012-.)!"#$%)-3)

9,#(!:&!;9<!#58(!,==5#(!'*,=$(&'!>&

=,#?,?&!@A!!

!

45-%161-)7)

,B! CD*:8)&'! =&! E'5?',66&! :$

!"#$%&'&(&)!F!G=$?#&!-HB!(

IB! J**:'$'&! =&! E'5?',66&! :$

!"#$%A!!

45-%161-)8)

@56E,'&'!=&(!>&8D!E'5?',66&(!G:5 K!=,!E'&6$L'&!>&6,#>&!&)!=5'(78&!=M8

!

!

-3)&'((!"#$%))

$(&'!>&(!&D&':$:&(!:58%',#)!=M8(,?&!>&(!I58:=&(!!"#$%

6&! :$O>&((58(A! P8&! 4,$)O$=!Q! @56I$&#! >&! 45$(! =M&DE'

&!-HB!(&',!&D*:8)*&!G6$#$686!R!6,D$686B!Q!

&! :$O>&((58(! &#! 8)$=$(,#)! =,! I58:=&!!"#$%! K! =,! E=,

!

&(!G:5>&!1!&)!:5>&!SB!:$O>&((58(!=5'(78&!=M8)$=$(,)&8'!4 78&!=M8)$=$(,)&8'!458'#$!=&!:N$44'&!T!U!F!K!=,!E'&6$L'&!>&6

"#$%!&)!&'(!"#$%!>,#(!=&!

=M&DE'&(($5#! T!!"#$%& *&

=,! E=,:&! >&! =,! I58:=&!&'(

!

)&8'!458'#$!=&!:N$44'&!T!-!F!

&!>&6,#>&A!CDE=$78&'A!

(40)

!"#$%(%'%%

!

45-%161-)@)

,B! J&6E=$'!=&(!)'58(!>,#(!=&!E' 458'#$(!E,'!=M8)$=$(,)&8'A!!

!

!=&!E'5?',66&!:$O>&((58(<!(,:N,#)!78M$=!>5$)!:,=:8=&'!

!

!

:8=&'!+,-!,%&:!+!&)!,!(5#)!

Références

Documents relatifs

« De Garrigues en Costières ». Le Pays se positionne ainsi comme animateur, pour que le projet qui sera conçu soit fidèle aux enjeux de notre territoire, et fidèle aux attentes de

Question 2 : La théorie de la préférence pour la liquidité : rappeler l’ argumentation initiale de  Keynes  et  son  actualité  dans  le  contexte  actuel 

Meyer H scap Asteraceae n.c... 181 Rumex

Les candidats admissibles devront le retourner par voie postale en recommandé simple en cinq exemplaires, au ministère de l’enseignement supérieur, direction

CONVENTION POUR LA SAUVEGARDE DU PATRIMOINE CULTUREL IMMATÉRIEL Comité intergouvernemental de sauvegarde du. patrimoine culturel immatériel

FICHE D’APPRÉCIATION CONFIDENTIELLE DU STAGIAIRE Grille d’évaluation Exceptionnel Très Bien Bien Moyen Insuffisant Comportement

Les codes du luxe commencent déjà à changer : les grandes marques font toujours rêver, mais ce sont les expériences qui sont plus valorisées. Mieux vaut être qu’avoir…

Les relations de l'orthographe et d'internet ont déjà fait couler beaucoup d'encre. La langue utilisée dans le courrier électronique est plus proche de la langue parlée que de