!
! "#$%&'($)*!+,'$(!-!.!+,#)/*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&&
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
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
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
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%,-
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
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é
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</@=,-",!#*+>?/
#
&'()*+,-./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,
!
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
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%#.$
"
!"#$%&'()*+,-./- 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+
%
=$+>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
!
[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-
!*+*($%&'#)*.-
$
'()*+,--!"#
! !"#$%&'$()"*+,*')"$%-.,*
.-+/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
%
'()*+,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 :/
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
!
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
$
!"#$%&'()*+,-./
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
%
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
#&*#!!#+,+%
)
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
!
!"#$%&'()*+,-./
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$?@
$
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'#)
$ '()*+,-./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$%%
!
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*+#&)
"
?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
!
#
&'()*+,-./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
!
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[:
!
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
#
!"#$%&'()*+,-./
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-�-#()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(�-()#(?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
$
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)
!
! "#$%&'($)*!+,'$(!-!.!+,#)/*0#!10'20##&! 3-!.!4511!! 6#70'8,)$9:&!1-!!
!
!
"#$%&'&$(!
!!
!
!
!
!
!
!
!
!
!
!
!
!
!
!
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 ».
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 »).
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
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 ?
/* 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);
}
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 ».
!
!
'()*)+),-.)/$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!
!"#$%(%'%%
!
45-%161-)@)
,B! J&6E=$'!=&(!)'58(!>,#(!=&!E' 458'#$(!E,'!=M8)$=$(,)&8'A!!
!
!=&!E'5?',66&!:$O>&((58(<!(,:N,#)!78M$=!>5$)!:,=:8=&'!
!
!
:8=&'!+,-!,%&:!+!&)!,!(5#)!