introduction to c programming - mit
TRANSCRIPT
! !
!"#$%&'()%#%*%+,'-,#.%/''0%/10(2
#include <joyos.h>
int usetup (void) { return 0;}
int umain (void) {
// Your code here...
return 0;}
! !
!"#$%&'()%#%*%+,'-,#.%/''0%/10(2
#include <joyos.h>
int usetup (void) { return 0;}
int umain (void) {
// Your code here...
return 0;}
!"#"$%$&"'($&)*+",(#('$%+-./.&
0,+'(+'(#(-.%%$&"1((2.$'&3"(4$"("56&$)(+&".(%#-,+&$(+&'"65-"+.&'1
! !
!"#$%&'%3'4%&'%51$"%$"(%6'&(2
! 7&1$%1$888%3'4%5,1$(%6'&(
" 9,'-,#..(,:)%;'$(+#&<%=1.<%(.#6)888
! *'.+1/(%1$888%$4,>%1$%1>$'%+,'6())',%1>)$,46$1'>)8
! ?+/'#&%$"(%6'&(%$'%$"(%@#++3A'#,&8
! B4>%#>&%1>$(,#6$8
! !
!"#$%&'()*+),#
!"#$%&'!"()$*
$$++$#%,"$-"$&-#-,$./$01223$4..
$$&-#-,502#5627(./$4..)8
$$++$9'!#$:$02;-"30
$$1'%02(:...)8
$$++$#%,"$-<<$&-#-,$.
$$&-#-,502#5627(./$.)8
=
! !
C#,1#D/()
int umain (void) {
uint8_t x = 5; uint8_t y = 15; uint8_t z = 25;
z = x + y;
x = 10;
return 0;}
7.*(*$('".6$()#"#(.&(",$(%+-6.-.&"6.//$61
2#"#(%+4,"(-.%$(86.%('$&'.6'9(5'$69(-.%%5&+-#"+.&(/+&:111
;#6+#</$'(4+=$(#(&#%$(#//(.8(",+'()#"#('.(*$(%#&+>5/#"$(",$%1
! !
C#,1#D/()
int umain (void) {
uint8_t x = 5; uint8_t y = 15; uint8_t z = 25;
z = x + y;
x = 10;
return 0;}
7$6$(*$(#''+4&(&#%$'(".(#(<5&-,(.8(-.&'"#&"'?
@
E
! !
C#,1#D/()
int umain (void) {
uint8_t x = 5; uint8_t y = 15; uint8_t z = 25;
z = x + y;
x = 10;
return 0;}
7$6$(*$(#''+4&(&#%$'(".(#(<5&-,(.8(-.&'"#&"'?
@
E
A
FE
! !
C#,1#D/()
int umain (void) {
uint8_t x = 5; uint8_t y = 15; uint8_t z = 25;
z = x + y;
x = 10;
return 0;}
7$6$(*$(#''+4&(&#%$'(".(#(<5&-,(.8(-.&'"#&"'?
@
E
A
FE
B
GE
! !
C#,1#D/()
int umain (void) {
uint8_t x = 5; uint8_t y = 15; uint8_t z = 25;
z = x + y;
x = 10;
return 0;}
C&)(",$&(6$)$8+&$(B(".(<$($D5#/(".(",$('5%(.8(@(#&)(A
@
E
A
FE
B
GH
! !
C#,1#D/()
int umain (void) {
uint8_t x = 5; uint8_t y = 15; uint8_t z = 25;
z = x + y;
x = 10;
return 0;}
E&'"65-"+.&'(#6$($F$-5"$)(#'(",$G(#6$($&-.5&"$6$)1
@
FH
A
FE
B
GHB().$'&3"(-,#&4$111
! !
C#,1#D/()
int umain (void) {
uint8_t x = 5; uint8_t y = 15; uint8_t z = 25;
z = x + y;
x = 10;
return 0;}
7#=$(".('>$-+8G(*,#"(:+&)(.8()#"#(#(=#6+#</$(*+//(,./)(",$(8+6'"("+%$(+"3'(5'$)1
H$'$6=$'(#('>."(+&(%$%.6G1
I5+&"JK"L5&'+4&$) M>.'+"+=$N+&"$4$6JO<+" P(QR(F(QR(STT
! !
I>$(-(,)
! ?>)1->(&J
" 41>$KL$ H%MN%O%MN%GEE
" 41>$FPL$ H%MN%O%MN%PE<EQE
" 41>$QGL$ H%MN%O%MN%R<GSR<SPT<GSE
! U1->(&J
" 1>$KL$ VFGK%MN%O%MN%FGT
" 1>$FPL$ VQG<TPK%MN%O%MN%VQG<TPT
" 1>$QGL$ WG<FRT<RKQ<PRK%MN%O%MN%G<FRT<RKQ<PRT
! !
B(#/%;4.D(,)
! X/'#$%YQGVD1$Z
" [/'#$ F%7%VQK%MN%O%MN%Q%7%\QK
" ]D'4$%T%)1->1[16#>$%[1-4,()
" Y)#.(%#)%&'4D/(%'>%$"(%]CBZ
! 7O#.+/()
" float x = 1.618;" float y = -6.022e23;" float z = 1.6e-19;
! !
!"#$%&'()*()
!"#$%&'!"()$*
$$$$+,!"#-(./0112$32,1456"7)8
$$$$%!"#9:#$;$<$=>8
$$$$+,!"#-(./0,0?@$'$"%&A0,B$C46"7D$;)8$$$$$$$,0#%,"$E8F
*+$,)-&.+$)/#&)'&)0/&12!&#/+$"3&*'+)4& &5$/.&)0$#&6/##"7/&(#$,7&8/+6$)/&',&.$,9'.#&'+&#%+//,&',&:$,(;<="%
! !
!"#$%&'()*()
!"#$%&'!"()$*
$$$$+,!"#-(./0112$32,1456"7)8
$$$$%!"#9:#$;$<$=>8
$$$$+,!"#-(./0,0?@$'$"%&A0,B$C46"7D$;)8$$$$$$$,0#%,"$E8F
+,,-&)'&"--&.,/0$.,&%1"2"%),2&"3),2&,"%1&4,##"5,6
! !
!"#$%&'()*()
!"#$%&'!"()$*
$$$$+,!"#-(./0112$32,1456"7)8
$$$$%!"#9:#$;$<$=>8
$$$$+,!"#-(./0,0?@$'$"%&A0,B$C46"7D$;)8$$$$$$$,0#%,"$E8F
+*,%$"-&.'/0")),/#1&-$2,&341&"/,&/,*-"%,4&56&)7,&8"-(,&'.&8"/$"5-,#&5,.'/,&5,$9:&#,9)&)'&)7,&%'0*(),/;
! !
!"#$%&#'()*
!"#$%&'!"()$*
$$$$+$,$-.
$$$$/$,$0-.
$$$$1$,$2-.
$$$$3$,$+$4$/.
$$$$+$,$05.
$$$$67!"#8(9:;$<=>$$?;$<=>$$1;$<=>@"AB$+B$/B$3).
$$$$7C#%7"$5.
D
! !
!"#$%&#'()*
!"#$%&'!"()$*
$$$$+$,$-.
$$$$/$,$0-.
$$$$1$,$2-.
$$$$3$,$+$4$/.
$$$$+$,$05.
$$$$67!"#8(9:;$<=>$$?;$<=>$$1;$<=>@"AB$+B$/B$3).
$$$$7C#%7"$5.
D
+",%-.(%",)&,)%/,0)'&0$%1.#'.20$3%'(%.%3'(40$%&#'()*%
! !
!"#$%&'&(")*%%+",
! !"#$%&-./0#,'#,'*'1*"#*23+4'567$.8'9:;
! 56'<',#=$+6'#$%+=+"
! 5>?6'<',#=$+6'#$%+=+"8'!*66+6'@#%0'>A,'%('%*B+'C!'?'6#=#%,'-#D+D'>>?:
! 5C'<'C$,#=$+6'#$%+=+"
! 5&'<'&3(*%#$='!(#$%'$C)2+"
! 5DE&'<'&3(*%#$='!(#$%'$C)2+"8'%('E'6+F#)*3'!3*F+,
! 59'<'0+9'$C)2+"
! 7$'<'$+@'3#$+
! 7%'<'%*2
! !
*'>&1$1'>#/)
! ^#01>-%&(61)1'>)%D#)(&%'>%&#$#8
U+((&%?+%_([$%!"((/
7$#)+&4(U(VPWX
U/'5%`'5>_([$%!"((/
&. G$'
! !
*'>&1$1'>#/)
int umain (void) {
// ... if (heading > 90.0){ left_weel_vel++; } else { left_wheel_vel--; }
// ...}
! !
*'>&1$1'>#/)
int umain (void) {
// ... if (heading > 90.0){ left_weel_vel++; } else { left_wheel_vel--; }
// ...}
left_wheel_vel = left_wheel_vel+1;
left_wheel_vel = left_wheel_vel-1;
! !
*'>&1$1'>#/)
int umain (void) {
// ... if (heading > 90.0){ left_weel_vel++; } else { left_wheel_vel--; }
// ...}
Y."$(",#"(<.",(#-"+.&'(#6$($&-/.'$)(+&(-56/G(<6#-$'
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); left_weel_vel += 2; } else if (heading > 90.0){ left_wheel_vel++; } else { left_wheel_vel--; }
// ...
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); left_wheel_vel += 2; } else if (heading > 90.0){ left_wheel_vel++; } else { left_wheel_vel--; }
// ...
left_wheel_vel = left_wheel_vel+2;
Z(+'+&'$&'+"+=$".*,+"$'>#-$
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); left_weel_vel += 2; } else if (heading > 90.0){ left_wheel_vel++; } else { left_wheel_vel--; }
// ...
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); left_weel_vel += 2; } else if (heading > 90.0){ left_wheel_vel++; } else { left_wheel_vel--; }
// ...
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); left_weel_vel += 2; } else if (heading > 90.0){ left_wheel_vel++; } else { left_wheel_vel--; }
// ...
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); left_weel_vel += 2; } else if (heading > 90.0){ left_wheel_vel++; } else { left_wheel_vel--; }
// ...[,.#1
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); left_weel_vel += 2; } else if (heading > 90.0){ left_wheel_vel++; } else { left_wheel_vel--; }
// ...
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); left_weel_vel += 2; } else if (heading > 90.0){ left_wheel_vel++; } else { left_wheel_vel--; }
// ...
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); left_weel_vel += 2; } else if (heading > 90.0){ left_wheel_vel++; } else { left_wheel_vel--; }
// ...
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); left_weel_vel += 2; } else if (heading > 90.0){ left_wheel_vel++; } else { left_wheel_vel--; }
// ...
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); left_weel_vel += 2; } else if (heading > 90.0){ left_wheel_vel++; } else { left_wheel_vel--; }
// ...
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); left_weel_vel += 2; } else if (heading > 90.0){ left_wheel_vel++; } else { left_wheel_vel--; }
// ...
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); left_weel_vel += 2; } else if (heading > 90.0){ left_wheel_vel++; } else { left_wheel_vel--; }
// ...
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); left_weel_vel += 2; } else if (heading > 90.0){ left_wheel_vel++; } else { left_wheel_vel--; }
// ...
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); left_weel_vel += 2; } else if (heading > 90.0){ left_wheel_vel++; } else { left_wheel_vel--; }
// ...
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); left_weel_vel += 2; } else if (heading > 90.0){ left_wheel_vel++; } else { left_wheel_vel--; }
// ...
! !
*'>&1$1'>#/)
// ... if (heading > 135.0){ uart_printf(“Whoa.\n”); }
// ... \$4#/1((Y.(I$/'$L(.6(I$/'$(+8L(6$D5+6$)1
! !
!"#$%&%"#'()! *"+,'-'&"-).
// 012'()
3. (0)).&4'#
5 6-0'&0-.&4'#
3/ (0)).&4'#."-.012'(
5/ 6-0'&0-.&4'#."-.012'(
7/ #"&.012'(.! 8""(0'#.",0-'&"-).
! 99 :;.<&-20.%=.0%&40-.",0-'#$.%).&-20>! ?? @AB.<&-20.%=.8"&4.",0-'#$.'-0.&-20>! 7 A:C.<#06'&0).",0-'#$>
%=.<D.5/.E.??.D.3.FG>...H.%=.D.%).80&I00#.E.'#$.FGJJJ
! !
!""#$%&%'()*+
! ,+#+-.%/"0+%12*.)#*+%.)1+$
! 3'()*+4%*""#$%526%-$%*"67%-$%.(+%/"60).)"6%)$%.52+
!"#$%&'!"#$%&%"#(&)&&&&*+,-+.%/"#01'(23
!"#$%&''(&)&&&&&&44&$++5&6+7%8%7&&&�/&#&9&67+:,7%;*,7;01%'<=&><<(2&&&&57#0/6'?@"%&67+:&#-&;/A&B*C0?=&#(2&&&&5;D-%'E<<(23
! !
!"#$%&%"#'()*)+"",)-.(()/0'1,(2
!"#$%&'#%()*$+
$$,-./0!"!#)112$13444442$1444*5
$$.'#%."$45
6
!"#$%78!")*$+
$$9:!;'$)1*$+
$$$$<;/8#$=',$>$,-./0,'#0=',.''&)*5$$$$!<$)=',$?$4*$+
$$$$$$7/#/.0&'#0@';)4234*5
$$$$$$7/#/.0&'#0@';)12A4*5
$$$$6$';&'$+
$$$$$$7/#/.0&'#0@';)42A4*5$$$$$$7/#/.0&'#0@';)1234*5
$$$$6
$$6
$$.'#%."$456
! !
!""#$%&%'"(
! )*#*+,%-".*%!%,/0*$
!"#$%!"!#!$%!&'()*+,"-!#!,"*#,*+,"#!".')*/#'0*,0'($#!,"1$&$$$$'"()"*+,-./0%123
./,$.2
!"#$%!*2*3)*!*42*35)*!661$&$$$4#./,!%56'$7/58$.123
! !
!"#$%&'(&)*+,-&(.(/*--(012,&"2&'
!"#$%&$'()*$&(+,+-'.'/)(*+012"(+345'6
'''''!"#$%&$'7!-&(+,+-'.'3)#)(89&-+):3%5';'<==50''''''"/'37!-&(+,+-'>>'?()*$&(+,+-5'6
'''''''''*+-,8&*+$&@8*3=A'BC450'''''''''@)!*+3B==50
''''''''''''''''''''''*+-,8&*+$&@8*3=A'DD=50
'''''''''@)!*+3C==50'''''E'
'''''()*$&(+,+-'.'7!-&(+,+-0E
! !
X4>6$1'>)
// ...
float d2, d; d2 = (myX-mouseX)*(myX-mouseX) + (myY-mouseY)*(myY-mouseY);
d = sqrt(d2);
if (d < 5.0){ stop(); }
// ...
! !
X4>6$1'>)
// ...
float d2, d; d2 = (myX-mouseX)*(myX-mouseX) + (myY-mouseY)*(myY-mouseY);
d = sqrt(d2);
if (d < 10.0){ // mouse within 10cm? stop(); }
// ...
A.5(-#&()$-/#6$(%5/"+>/$=#6+#</$'(#"(.&-$1
! !
X4>6$1'>)
uint8_t nearMouse(float x1, float x2, float y1, float y2){
float d2; d2 = (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2);
return sqrt(d2) < 10.0;}
! !
X4>6$1'>)
uint8_t nearMouse(float x1, float x2, float y1, float y2){
float d2; d2 = (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2);
return sqrt(d2) < 10.0;}
2$-/#6$("G>$#&)(.6)$6(.8",$(#645%$&"'
2$8+&$(",$(6$"56&("G>$1MC(<+G(6$'5/"(+'(#(5+&"JK"N
! !
X4>6$1'>)uint8_t nearMouse(float,float,float,float);
int umain (void) { // ... if (nearMouse(myX, mouseX, myY, mouseY)){ stop(); } // ...}
uint8_t nearMouse(float x1, float x2, float y1, float y2){ // body of nearMouse() ...}
! !
X4>6$1'>)uint8_t nearMouse(float,float,float,float);
int umain (void) { // ... if (nearMouse(myX, mouseX, myY, mouseY)){ stop(); } // ...}
uint8_t nearMouse(float x1, float x2, float y1, float y2){ // body of nearMouse() ...}
2$-/#6$(",$(85&-"+.&(#"(",$(".>1
]'$(+"(#&G*,$6$
^5"(G.5(,#=$(".(#-"5#//G(+%>/$%$&"(+"('.%$*,$6$(",$(8+/$9(.8(-.56'$111
! !
X4>6$1'>)uint8_t nearMouse(float,float,float,float);
int umain (void) { // ... if (nearMouse(myX, mouseX, myY, mouseY)){ stop(); } // ...}
uint8_t nearMouse(float x1, float x2, float y1, float y2){ // body of nearMouse() ...}
! !
X4>6$1'>)uint8_t nearMouse(float,float,float,float);
int umain (void) { // ... if (nearMouse(myX, mouseX, myY, mouseY)){ stop(); } // ...}
uint8_t nearMouse(float x1, float x2, float y1, float y2){ // body of nearMouse() ...}
! !
X4>6$1'>)
uint8_t nearMouse(float x1, float x2, float y1, float y2){
float d2; d2 = (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2);
return sqrt(d2) < 10.0;}
! !
X4>6$1'>)
uint8_t nearMouse(float x1, float x2, float y1, float y2){
float d2; d2 = (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2);
return sqrt(d2) < 10.0;}
! !
X4>6$1'>)
uint8_t nearMouse(float x1, float x2, float y1, float y2){
float d2; d2 = (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2);
return sqrt(d2) < 10.0;}
! !
X4>6$1'>)uint8_t nearMouse(float,float,float,float);
int umain (void) { // ... if (nearMouse(myX, mouseX, myY, mouseY)){ stop(); } // ...}
uint8_t nearMouse(float x1, float x2, float y1, float y2){ // body of nearMouse() ...}
! !
X4>6$1'>)uint8_t nearMouse(float,float,float,float);
int umain (void) { // ... if (1){ stop(); } // ...}
uint8_t nearMouse(float x1, float x2, float y1, float y2){ // body of nearMouse() ...}
! !
X4>6$1'>)uint8_t nearMouse(float,float,float,float);
int umain (void) { // ... if (1){ stop(); } // ...}
uint8_t nearMouse(float x1, float x2, float y1, float y2){ // body of nearMouse() ...}
! !
X4>6$1'>)
void driveForward(int16_t vel){ motor_set_vel(0, vel); motor_set_vel(1, vel);}
_5&-"+.&'().&3"(,#=$".(6$"56&(#&G",+&41 0,+'(85&-"+.&("56&'(.&(#
%.".6(*+",(=$/.-+"G(",#"6#&4$'(86.%(OST`(".(ST`1
! !
X4>6$1'>)
void driveForward(){ motor_set_vel(0, 100); motor_set_vel(1, 100);}
// ...float x = doStuffWithNumbers(5.6,7);if (x == 42){ driveForward();}// ...
_5&-"+.&'().&3"(,#=$".(,#=$(#645%$&"'9($+",$6111
! !
!"##"$%&'()*+,(
!"#$%$&$'(
!)$*%$&$+,$-
$$./!"#)*0123450,(
6
)789#$%$&$:;<(
!)$*%$=$>;?$5&$',$-
$$./!"#)*0@A2B$3ACD50,(
6
E!"#FG#$!(
)8/$*!$&$>($!$H$:>>($!==,$-
$$./!"#)*IJKL"MN$!,(
6
! !
!"##$%"&
! '(%)*+,-./010(+,"%/"0/02*/&*.,--,-.
! 3*")/*-0,+*/%"&
! 4-%$/-**)/0(/"501"%%$/6,+*/1#/02*/7(%%(6,-.8
! 9:/;(0(+
! <$+(
! =+*">&*"?
! @(1/5"-/0*A0/.$+(/"-)/&+*">&*"?/(-/$(1+/(6-/2"##$&("+)
! B*/2"C*/+*-0"%/&(0A/,7/$(1/6"-0/0(/0+$/(10/)5/?(0(+AD/A*+C(A
! E7/$(1F+*/-(0/A1+*/62,52/#,-/,A/62,52/G/A**/02*/*H"?#%*/A*-A(+A
! !
!"#$%&'#()*+*,*#$*!"#"$%&'()%!*+",-(-(,*./(%0*("%('#(1(,*%",#3(4(',(5
%,%&.#'()%!*+",-(-(,*./(%0*(.#.6'7(8'6%.7*('#(1(,*%",#3(4-549:(;4-<=>
/.$.('0)$'1)&*/.$.(231)&-(-(3*%(?'%',(8*6'$&%@(;-9<<(%'(9<<>
/.$.('4(%5)*/.$.(-(-(AB,.C*A(?'%',
0)(1.'0)$'+.0*0)(1.23+.0-3-(3*%3(%0*(3*,8'(%'(.(31*$&+&*/(1'3&%&'#(;4-<55>
0)(1.'!"0%4&)*0)(1.-(-(%",#3('++($'#%,'6(3&7#.63(%'(3*,8'(-("3*+"6(%'(3%'1($'#%&#"'"3(,'%.%&'#(3*,8'3
6(.4'()%!'(%,#)*&.7238"#8-(-(,*./3(%0*(+,'B(-(,*%",#3(.(#"?B*,(+,'?(6'D(%'(0&70E
+%90)*/"&&"0-(-(1."3*(%0*(1,'7,.?
+(",$6*+%(%/0:::-(-(D,&%*('"%1"%(%'(%0*(FGH(1',%
#.';&";5*-3<30$.+';&";5*-(-(1."3*(*I*$"%&'#("#%&6(7'J3%'1(1,*33*/
#.'+()00*-3<30$.+'+()00*-(-(,*%",#3(5(&+(7'J3%'1(&3($",,*#%6@(1,*33*/
),;.!)('()%!*+",-3-(,*./(*#$'/*,($6&$C3
),;.!)('()0)$*+",-3-(,*3*%(*#$'/*,($6&$C3(%'(4
#)$'$"/)*-(-(7*%(K('+(?&66&3(3&#$*(L.11@B'.,/(D.3(%",#*/('#
#)$'$"/)'90*-(-(7*%(K('+(?&$,'3*$'#/3(3&#$*(L.11@B'.,/(D.3(%",#*/('#