ð§âðCèšèªã§åŠã¶ããã°ã©ãã³ã°ïŒProcessingããCèšèªãž
1. Cèšèªã£ãŠã©ããªèšèªïŒProcessingãšã®éã
Processingã§åŠãã ã倿°ã»åå²ã»ç¹°ãè¿ãã»é¢æ°ã»é åãã®ç¥èãCèšèªã§åŠã³çŽããããã«**ããã€ã³ã¿ããšãæ§é äœã**ãšããæ°ããæŠå¿µã®ç¿åŸãç®æããŸãã
Processingã®é·æãšçæ
-
Processingã®åªããŠããç¹:
- å°å ¥ãç°¡å: ã€ã³ã¹ããŒã«ããã ãã§ãç°å¢èšå®ãã»ãšãã©äžèŠã§ãã
- èŠèŠç衚çŸã«ç¹å: ã°ã©ããå³åœ¢ã䜿ã£ãå ¥éåŠç¿ããããããªã£ãŠããŸãã
- ã³ã³ãã¥ãŒã¿ã®å éšæ§é ãæ°ã«ããªããŠOK: ã¡ã¢ãªã®äœ¿ãæ¹ãªã©ãæ·±ãç¥ããªããŠãããã°ã©ãã³ã°ãã§ããŸãããã®ãããããã°ã©ãã³ã°ã®ãå ¥éæè²ããšããŠã¯éåžžã«é©åã§ãã
-
Processingã§ã¯äžååãªç¹:
- ã³ã³ãã¥ãŒã¿ã®å éšæ§é ãžã®çè§£ãæµ ããŸãŸã«ãªããã¡: é«åºŠãªããã°ã©ãã³ã°ã§ã¯ãã³ã³ãã¥ãŒã¿ã®å éšæ§é ãçè§£ããããšãå¿ é ã§ãã
- çŸå Žã§ãã®ãŸãŸå©çšãããã±ãŒã¹ã¯å°ãªã: å°éçãªæ å ±ç§åŠãåŠã¶äžã§ã¯ãProcessingã ãã§ã¯äžååãšãããŠããŸãã
ãªãCèšèªãåŠã¶ã®ãïŒ
Cèšèªã¯ãã³ã³ãã¥ãŒã¿ã®å éšæ§é ãææ¡ããªããããã°ã©ãã³ã°ãã§ãããããããé«åºŠãªããã°ã©ãã³ã°ãå¯èœã«ãªããŸãããŸããå€ãã®é«çŽããã°ã©ãã³ã°èšèªã®åºç€ãšãªã£ãŠãããããCèšèªãåŠã¶ããšã§æ§ã ãªèšèªãžã®å¿çšåã身ã«ã€ããŸãã
ProcessingãšCèšèªã¯ãæ§æãå€å°ç°ãªãã ãã§ãæ¬è³ªçãªæžãæ¹ã¯å€ãããŸãããdraw()
ãCèšèªã®main()
ã«çžåœãããã倿°ã»æ¡ä»¶åå²ã»é¢æ°ã¯ã»ãŒåãèãæ¹ã§äœ¿ããŸããé
åã®å®£èšãåºååœä»€ã®æ§æã¯å°ãç°ãªããŸãããåºæ¬ã¯åãã§ãã
2. ããã°ã©ã ã®äœæã»ã³ã³ãã€ã«ã»å®è¡ãµã€ã¯ã«
Cèšèªã§ããã°ã©ã ãäœãåºæ¬çãªæµããçè§£ããŸãããã
- å®çŸãããåŠçãèããã
-
ããã¹ããšãã£ã¿ã§ããã°ã©ã ãäœæãããxxx.cããšããŠä¿åããã
- ææ¥ã§ã¯Emacsãæšæºç°å¢ã§ãããæ £ããŠãããšãã£ã¿ã䜿ã£ãŠãåé¡ãããŸããïŒãã ããææ¥å 詊éšã§ã¯Emacséå®ã®å¯èœæ§ããããŸãïŒã
-
ã³ã³ãã€ã©ãçšããŠãxxx.cããã³ã³ãã€ã«ããã
- ã³ã³ãã€ã«ãšã¯ãããã°ã©ã ã®ãœãŒã¹ã³ãŒããã³ã³ãã¥ãŒã¿ãå®è¡å¯èœãªæ©æ¢°èªã«ç¿»èš³ããããšã§ãã
-
gcc
ãšããCèšèªã®ã³ã³ãã€ã©ã䜿ããŸãã -
ã³ãã³ãäŸ:
$ gcc -o hello.exe hello.c
-
å®è¡å¯èœãªãxxx.exeããå®è¡ããŠã¿ãã
-
ã³ãã³ãäŸ:
$ ./hello.exe
-
ã³ãã³ãäŸ:
-
æåŸ
éãã®çµæã確èªããã
- ããæåŸ éãã§ãªããã°ãã¹ããã1ã«æ»ã£ãŠèãçŽãããããœãŒã¹ã³ãŒããä¿®æ£ããŸãã
å®éã«ãã£ãŠã¿ããïŒãHello Worldãããã°ã©ã
æºå: ãã©ã«ãã®äœæãšDockerã³ã³ããã®èµ·å
ãã®è¬çŸ©ã§ã¯ãLinuxç°å¢ïŒUbuntuïŒäžã§Cèšèªã®ããã°ã©ãã³ã°ãè¡ããŸããDockerã䜿ãããšã§ãç°¡åã«ãã®ç°å¢ãæ§ç¯ã§ããŸãã
- 端æ«ïŒã¿ãŒããã«/PowerShellïŒãèµ·åããŸãïŒç®¡çè æš©éã§èµ·åããªãããæ³šæããŠãã ããïŒïŒã
-
ãã©ã«ããäœæããŸãã
mkdir -p lecture/pp1
-
ls lecture
ã§ãã©ã«ããäœæãããã確èªã§ããŸãã
-
Dockerã³ã³ãããèµ·åããŸãã
- Macã®å Žå:
$ docker run -it --rm -v $(pwd)/lecture/pp1/:/home/is-user/work/ ischs/jisshu2
- Windowsã®å Žå:
$ docker run -it --rm -v ${pwd}/lecture/pp1/:/home/is-user/work/ ischs/jisshu2
- ããã³ããã
is-user@...
ã§å§ãŸããã®ã«åãæ¿ãã£ããæåã§ãã
- Macã®å Žå:
ããã°ã©ã ã®äœæã»ã³ã³ãã€ã«ã»å®è¡
-
äœæ¥ãã©ã«ããžç§»åããŸãã
$ cd work
-
Emacsãèµ·åããŠããã°ã©ã ãäœæããŸãã
$ emacs hello.c
-
Emacså ã§ä»¥äžã®ããã°ã©ã ãå ¥åããŸãã
#include<stdio.h> // æšæºå ¥åºåã©ã€ãã©ãªãèªã¿èŸŒã int main( ){ // Cèšèªããã°ã©ã ã¯ããããå®è¡ããã printf("Hello World!Â¥n"); // ç»é¢ã«ãHello World!ããšè¡šç€ºããæ¹è¡ãã return 0; // ããã°ã©ã ãæ£åžžçµäºããããšã瀺ã }
-
Emacsã®åºæ¬æäœ:
-
ä¿å:
C-x C-s
(CtrlããŒãæŒããªããxãç¶ããŠsãå ¥å) -
éãã:
C-x C-c
(CtrlããŒãæŒããªããxãç¶ããŠcãå ¥å)
-
ä¿å:
-
Emacsã®åºæ¬æäœ:
-
ããã°ã©ã ãä¿åããEmacsãéããããã³ã³ãã€ã«ããŸãã
$ gcc -o hello.exe hello.c
-
å®è¡ããŸãã
$ ./hello.exe
-
Hello World!
ãšè¡šç€ºãããã°æåã§ãïŒ
ããã°ã©ã ã®ãããã°
ã³ã³ãã€ã«æã«ãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããããããã¯ããã°ã©ã ã«ãã¹ããããµã€ã³ã§ãããšã©ãŒã¡ãã»ãŒãžãããèªã¿ãå 容ãçè§£ããäžã§ä¿®æ£ããããšãäžéã®è¿éã§ãããšã©ãŒãææãããè¡çªå·ãšãã®ååŸã®æèã確èªããŸãããã
3. Cèšèªã«ããç»é¢åºå
Cèšèªã§ç»é¢ã«ã¡ãã»ãŒãžã衚瀺ããã«ã¯ãprintf
颿°ã䜿ããŸãã
åºæ¬çãªç»é¢åºå
#include<stdio.h>
int main( ) {
printf("Hello WorldÂ¥n"); // ãHello Worldããšè¡šç€ºããæ¹è¡ãã
printf("Hello World"); // æ¹è¡ããªã
printf("Hello World¥n");
printf("Â¥n"); // 空è¡ãæ¿å
¥ãã
printf("Hello World¥n");
return 0;
}
-
#include <stdio.h>
: æšæºå ¥åºå (standard input & output) ãè¡ãããã«å¿ èŠãªã©ã€ãã©ãªstdio.h
ãèªã¿èŸŒãåœä»€ã§ãã -
printf("ã¡ãã»ãŒãž");
: æšæºåºåã«ã¡ãã»ãŒãžã衚瀺ããŸãã衚瀺ãããæååã¯"
ïŒããã«ã¯ã©ãŒããŒã·ã§ã³ïŒã§å²ã¿ãŸãã -
Â¥n
: ãšã¹ã±ãŒãã·ãŒã±ã³ã¹ãšåŒã°ããæ¹è¡ã衚ããŸãããÂ¥ãã¯ããã¯ã¹ã©ãã·ã¥ã®ããšã§ããÂ¥t
ã¯ã¿ãã衚ããåºåãæŽåœ¢ããã®ã«åœ¹ç«ã¡ãŸãã
èšç®çµæã®åºå
printf
颿°ã¯ãèšç®çµæã衚瀺ããããã«ã䜿ãããŸãããã®ãšãã**ã倿æå®åã**ãšãããã®ã䜿ããŸãã
-
%d
: æŽæ°å (int
) ã®å€ã衚瀺ããŸãã -
%f
: æµ®åå°æ°ç¹å (double
,float
) ã®å€ã衚瀺ããŸãã -
%g
: æµ®åå°æ°ç¹å (double
,float
) ã®å€ã衚瀺ããŸãã%f
ãããèªåçã«é©åãªè¡šç€ºåœ¢åŒãéžãã§ãããŸãã
#include<stdio.h>
int main( ){
printf("%d + %f = %f Â¥n", 189, 1.1, 189 * 1.1 ); // %? ã®äœçœ®ã«ãåŒã®èšç®çµæã代å
¥ãããŠè¡šç€ºããã
return 0;
}
-
"
ã§å²ãŸããã¡ãã»ãŒãžäžã«å€ææå®åãèšè¿°ãããã®åŸã«ã«ã³ãåºåãã§å¯Ÿå¿ããå€ïŒå€æ°ãåŒïŒã䞊ã¹ãŸãã
4. 倿°: ããã°ã©ã ã®èšæ¶é å
倿°ã¯ãããã°ã©ã å®è¡äžã«å¿ èŠãªæ å ±ãä¿æããããã®èšæ¶é åã§ããäŸãããªãã**æ å ±ãäžæçã«ããŸã£ãŠãããç®±ã**ã®ãããªãã®ã§ãã
倿°ãæ±ãäžã§ã以äžã®4ã€ã®èŠçŽ ãæèããŸããã:
- åå: åç §ã®ããã«ä»ããããååãèšæ¶å å®¹ãæ³åã§ããååãè¯ãã§ãã
- å (Type): èšæ¶ã§ããå€ã®çš®é¡ãç®±ã®ã圢ããã倧ãããã«çžåœããŸããCèšèªã§ã¯ãåŸããåã倿Žããããšã¯ã§ããŸããã
- å€: 倿°ã®äžã«å®éã«èšæ¶ãããŠããå 容ãäžã€ã®å€æ°ã¯ãäžã€ã®å€ããèšæ¶ã§ããŸããã
- äœæ (Address): ç®±ã眮ããŠããå Žæããã€ã³ã¿ãåŠã¶ãšãäœæãã倿°ãç¹å®ã§ããããã«ãªããŸãã
倿°ã®å®£èšãšåæå
倿°ã䜿ãåã«ããŸã宣èšããŠæºåããå¿ èŠããããŸãã
-
宣èš:
åã®åå 倿°å;
- äŸ:
int num;
(æŽæ°åint
ã®num
ãšããååã®å€æ°ãæºå)
- äŸ:
-
åæåã䌎ã宣èš:
åã®åå 倿°å = å€;
- äŸ:
int num = 8;
- äŸ:
ãã䜿ã倿°ã®å
åç§° | èªã¿ | ãµã€ãº | æå³ |
---|---|---|---|
int |
ã€ã³ã | 4ãã€ã | æŽæ°å |
double |
ããã« | 8ãã€ã | å粟床浮åå°æ°ç¹åïŒå®æ°ïŒ |
char |
ãã£ãŒããã£ã© | 1ãã€ã | æåå |
倿°åã«é¢ããã«ãŒã«
Cèšèªã®å€æ°åã«ã¯ä»¥äžã®èŠåããããŸã:
- 倧æåãšå°æåã¯åºå¥ãããŸãã
- ããŒã¯ãŒãïŒäºçŽèªïŒã¯äœ¿ããŸããã
- æåã®æåã¯è±åïŒA-Z, a-zïŒãã¢ã³ããŒã¹ã³ã¢ïŒ_ïŒã§ãªããã°ãªããŸããã
- 2çªç®ä»¥éã®æåã¯è±åãã¢ã³ããŒã¹ã³ã¢ãæ°åïŒ0-9ïŒã䜿ããŸãã
- 倿°åã«ã¯æå³ãæ³èµ·ã§ããåãããããååãä»ããããšãéèŠã§ãã
ä»£å ¥ãšèšç®
-
代å
¥: 倿°ã«å€ãå
¥ããæäœã§ã
=
ïŒä»£å ¥æŒç®åïŒã䜿ããŸãã倿°å = åŒ;
- ãŸãå³èŸºã®åŒãèšç®ããããã®çµæã巊蟺ã®å€æ°ã«äžæžããããŸãã
- 倿°ã®å€ã®ç²åŸ: åŒã®äžã§å€æ°åã䜿ããšããã®å€æ°ã®å€ãã³ããŒãããŠåãåºãããŸãã倿°ã®å€èªäœã¯å€åããŸããïŒäžæžããããªãéãïŒã
æšæºå ¥åïŒããŒããŒãããã®å ¥åïŒ
ããŒããŒãããããŒã¿ãå
¥åããŠå€æ°ã«æ ŒçŽããã«ã¯ãscanf
颿°ã䜿ããŸãã
-
åºæ¬åœ¢:
scanf("倿æå®å", &倿°å);
-
&
ãå¿ããªãããã«ïŒããã¯å€æ°ã®äœæãåãåºãæŒç®åã§ãå ¥åå€ããã®äœæã«ä»£å ¥ããããã«å¿ èŠã§ãã
-
-
倿æå®å:
-
int
å倿°:%d
-
double
å倿°:%lf
(泚æ:l
ã¯å°æåã®ãšã«ã§ã)
-
äŸ: å ¥åãããæ°å€ã®åèšãèšç®
#include<stdio.h>
int main( ){
int price = 1200; // ååã®å€æ®µ
int num; // åæ°
int total; // åèšéé¡
printf("1人 %d åïŒçšèŸŒã¿ïŒã§ãÂ¥n", price); // 倿®µã衚瀺
printf("äœäººã§ããïŒ ");
scanf("%d", &num); // åæ°ãããŒããŒãããå
¥åããnumã«æ ŒçŽ
total = price * num; // åèšéé¡ãèšç®
printf("%d 人ã§ããÂ¥nåèš %d åã«ãªããŸãÂ¥n", num, total); // çµæã衚瀺
return 0;
}
5. æ¡ä»¶åå²: åŠçã®åãæ¿ã
æ¡ä»¶åå²ã¯ãããã°ã©ã ã®åŠçãæ¡ä»¶ã«åŸã£ãŠåãæ¿ããããšã§ãã
æ¡ä»¶åŒ
æ¡ä»¶åŒã¯ããæ£ãããééã£ãŠãããïŒçãåœãïŒãã倿ããåŒã§ããCèšèªã§ã¯ãæ¡ä»¶åŒã®è©äŸ¡çµæãçïŒTrueïŒã®ãšã㯠1
ã**åœïŒFalseïŒã®ãšã㯠0
**ãšããæŽæ°å€ã«ãªããŸãã
-
æ¯èŒæŒç®å:
-
==
: çãã -
!=
: çãããªã -
>
: ãã倧ãã -
>=
: ä»¥äž -
<
: ããå°ãã -
<=
: 以äž
-
-
è«çæŒç®å: è€æ°ã®æ¡ä»¶ãçµã¿åãããããã«äœ¿ããŸãã
-
&&
(AND
): ããã€ããäž¡æ¹ã®æ¡ä»¶ãçã®ãšãã®ã¿çã -
||
(OR
): ããŸãã¯ããå°ãªããšãäžæ¹ã®æ¡ä»¶ãçã®ãšãã«çã -
!
(NOT
): ãã§ã¯ãªãããæ¡ä»¶ãçã®ãšãã«åœãåœã®ãšãã«çã
-
if
æã®çš®é¡
-
åçŽ
if
æ: æ¡ä»¶ãçã®ãšãã®ã¿åŠçãå®è¡ããŸããif ( æ¡ä»¶åŒ ) { // æ¡ä»¶ãçã®æã®åŠç // å¿ ã { ãš } ã§å²ã¿ãã€ã³ãã³ãããŸããã }
-
if-else
æ: ãããæ¡ä»¶ãçãªãã°Aãå®è¡ãããã§ãªããã°Bãå®è¡ããšããããã«ãæä»çãª2æã®åŠçãè¡ããŸããã©ã¡ããã®åŠçãå¿ ãå®è¡ãããŸããif ( æ¡ä»¶åŒ ) { // æ¡ä»¶ãçã®æã®åŠç } else { // æ¡ä»¶ãåœã®æã®åŠç }
-
å€å²æ¡ä»¶æ (
else if
): è€æ°ã®æ¡ä»¶ã®äžãããæåã«çã«ãªãæ¡ä»¶ã®åŠçã®ã¿ãå®è¡ããŸããelse if
ã¯å¿ èŠãªã ã䞊ã¹ãããšãã§ããŸãããé çªãéèŠã§ããif( æ¡ä»¶åŒ1 ) { // æ¡ä»¶1ãçã®æã®åŠç } else if( æ¡ä»¶åŒ2 ) { // æ¡ä»¶1ãåœã§ãæ¡ä»¶2ãçã®æã®åŠç } else { // å šãŠã®æ¡ä»¶ãåœã®æã®åŠç }
å®éã«ãã£ãŠã¿ããïŒæ¡ä»¶åå²ã®äŸ
äŸ: æ£è² ãŒãå€å®
#include<stdio.h>
int main(void){
int x;
printf("input int-> ");
scanf("%d", &x); // æŽæ°ãå
¥å
if( x > 0 ){
printf("positiveÂ¥n"); // æ£ã®æ°
} else if( x < 0){
printf("negativeÂ¥n"); // è² ã®æ°
} else {
printf("zeroÂ¥n"); // ãŒã
}
return 0;
}
6. 颿°: åŠçã®ãŸãšãŸã
颿°ã¯ãç¹å®ã®åŠçãè¡ãããã®åœä»€ã®ãŸãšãŸãã§ããæ°åŠã®é¢æ°ãšåãããã«ããå€ãäžãããšãæç€ºéãåŠçããŠçµæãè¿ãç®±ããšèãããšåãããããã§ãããã
颿°ã®å©ç¹
- ããã°ã©ã ãæ©èœããšã«æŽçããã: è€éãªåŠçãäžã€ã®ãŸãšãŸããšããŠæ±ããããã«ãªããŸãã
- å¯èªæ§ãäžãã: ããã°ã©ã ãèªã¿ããããªããŸãã
- ãããã°ã容æã«ãªã: äžå ·åã®åå ãç¹å®ãããããªããŸãã
- æ¹è¯ã容æã«ãªã: ä¿®æ£ã®åœ±é¿ç¯å²ãåããããããªããŸãã
颿°ã®åºæ¬çãªæžåŒ
è¿å€ã®å 颿°å(åŒæ°ã®å1 åŒæ°å1, åŒæ°ã®å2 åŒæ°å2, ...) {
// 颿°ãå®è¡ããåŠç
return èšç®çµæ; // èšç®çµæãè¿ã
}
-
è¿å€ïŒæ»ãå€ïŒã®å: 颿°ãèšç®çµæãšããŠè¿ãå€ã®åãæå®ããŸããäœãè¿ããªãå Žåã¯
void
ãšæžããŸãã - 颿°å: 颿°ãåŒã³åºããšãã«äœ¿ãååã§ãã
- ä»®åŒæ°: 颿°ãåãåãå ¥åå€ã®åãšååãæå®ããŸããä»®åŒæ°ã«ã¯ã颿°ãåŒã³åºããããšãã«æž¡ãããå®åŒæ°ã®å€ãã³ããŒãããŸãïŒå€æž¡ãïŒã
-
return
æ: 颿°ã®åŠçãçµäºããæå®ããå€ãåŒã³åºãå ã«è¿ããŸããvoid
å颿°ã®å Žåã¯return;
ã ãã§ãOKã§ãã
ãããã¿ã€ã宣èš
Cèšèªã§ã¯ã颿°ãåŒã³åºãåã«ãã®é¢æ°ã®å®çŸ©ïŒãŸãã¯å®£èšïŒãå¿
èŠã§ããmain
颿°ãããåŸã«å®çŸ©ãã颿°ãããå Žåã¯ãmain
颿°ã®åã«ãããã¿ã€ã宣èšãè¡ããŸãã
-
æžåŒ:
è¿å€ã®å 颿°å(åŒæ°ã®å1, åŒæ°ã®å2, ...);
- åŒæ°åã¯çç¥ã§ããŸãããåã¯å¿ ãèšè¿°ããŸãã
äŸ: 2ã€ã®æŽæ°ã®åèšãè¿ã颿°
#include<stdio.h>
// ãããã¿ã€ã宣èš
int addnum(int n1, int n2);
int main(void){
int n1 = 3, n2 = 5;
int sum = addnum(n1, n2); // addnum颿°ãåŒã³åºããçµæãsumã«ä»£å
¥
printf("%d¥n", sum );
return 0;
}
// addnum颿°ã®å®çŸ©
int addnum(int n1, int n2) {
int sum;
sum = n1 + n2;
return sum; // èšç®çµæãè¿ã
}
屿倿°ïŒããŒã«ã«å€æ°ïŒ
颿°å
ã§å®£èšããã倿°ã¯ããã®é¢æ°ã®äžã ãã§æå¹ã§ãïŒå±æå€æ°ïŒã颿°ãåŒã³åºããããã³ã«æ°ãã倿°ãæºåããã颿°ã®å®è¡ãçµäºãããšãã®å€æ°ã¯æ¶æ»
ããŸããmain
颿°å
ã®å€æ°ãšãä»ã®é¢æ°å
ã®å€æ°ã¯ãããšãååãåãã§ãå¥ã®ãã®ã§ãã
7. ç¹°ãè¿ã: åãåŠçãç¹°ãè¿ã
ããã°ã©ã ã®åºæ¬çãªåŠçã®æµãã®äžã€ã«ç¹°ãè¿ãããããŸããCèšèªã«ã¯äž»ã«3ã€ã®ç¹°ãè¿ãæ§æããããŸãã
while
æ
while
æã¯ãæ¡ä»¶åŒãçã®éãæå®ãããåŠçãããã¯ãç¹°ãè¿ãå®è¡ããŸãã
while ( æ¡ä»¶åŒ ) {
// æ¡ä»¶ãçã®éãç¹°ãè¿ãããåŠç
}
- æåã«æ¡ä»¶åŒããã§ãã¯ãããçã§ããã°åŠçãå®è¡ãããŸãã
- ç¹°ãè¿ãã®ãç¶ç¶æ¡ä»¶ããèšè¿°ããŸãããã®åŒãçã®éãã«ãŒããç¶ç¶ããŸãã
äŸ: 1ãã3ãŸã§ã®æ°åã衚瀺
#include<stdio.h>
int main(void){
int n = 1;
while( n <= 3 ){ // nã3以äžã®éãç¹°ãè¿ã
printf("%d¥n", n);
n = n + 1; // nã®å€ã1ãã€å¢ããããããå¿ãããšç¡éã«ãŒãã«ãªãïŒ
}
return 0;
}
do-while
æ
do-while
æã¯ãæåã«äžåºŠåŠçãããã¯ãå®è¡ãããã®åŸãæ¡ä»¶åŒãçã®éãåŠçãç¹°ãè¿ãå®è¡ããŸããæäœäžåºŠã¯åŠçãå®è¡ãããå Žåã«é©ããŠããŸãã
do {
// æåã«äžåºŠå®è¡ããããã®åŸæ¡ä»¶ãçã®éç¹°ãè¿ãããåŠç
} while ( æ¡ä»¶åŒ ); // ã»ãã³ãã³ (;) ãå¿ããã«
for
æ
for
æã¯ãã«ãŠã³ã¿å€æ°ã䜿ã£ãç¹°ãè¿ãã«ç¹ã«äŸ¿å©ã§ããç¹°ãè¿ãã®åæ°ã決ãŸã£ãŠããå Žåã«ãã䜿ãããŸãã
for( ååŠç; æ¡ä»¶åŒ; åŸåŠç ) {
// åŠçãããã¯
}
- ååŠç: ã«ãŒãã«å ¥ãåã«äžåºŠã ãå®è¡ãããŸãïŒéåžžã¯ã«ãŠã³ã¿å€æ°ã®åæåïŒã
- æ¡ä»¶åŒ: ã«ãŒãã®å é ã§æ¯åãã§ãã¯ãããçã®éã¯ã«ãŒããç¶ç¶ãããŸãã
- åŸåŠç: åã«ãŒãã®æåŸã«å®è¡ãããŸãïŒéåžžã¯ã«ãŠã³ã¿å€æ°ã®æŽæ°ïŒã
for
æã®äŸ
å®éã«ãã£ãŠã¿ããïŒäŸ: 1ãã5ãŸã§ã®åèšãèšç®
#include<stdio.h>
int main(void){
int cnt;
int sum;
sum = 0;
for(cnt = 1; cnt <= 5; cnt = cnt + 1){ // cntã1ãã5ãŸã§1ãã€å¢å ããªããç¹°ãè¿ã
sum = sum + cnt;
}
printf("%dÂ¥n", sum); // çµæã衚瀺
return 0;
}
å€éã«ãŒã
ã«ãŒãã®äžã«ããã«ã«ãŒããèšè¿°ããããšãå€éã«ãŒããšåŒã³ãŸããäŸãã°ãä¹ä¹ã®è¡šãå³åœ¢ãæç»ããéã«ããå©çšãããŸãã
äŸ: ä¹ä¹ã®è¡šã衚瀺
#include<stdio.h>
int main(void){
int row, col;
for(row = 1; row <= 9; row++){ // è¡ã«é¢ããç¹°ãè¿ã
for(col = 1; col <= 9; col++){ // åã«é¢ããç¹°ãè¿ã
printf("%2d ", row * col); // èšç®çµæã衚瀺
}
printf("Â¥n"); // è¡ã®çµããã«æ¹è¡
}
return 0;
}
8. ååž°é¢æ°: èªåèªèº«ãåŒã³åºã颿°
ååž°é¢æ°ã¯ãèªåã®å®çŸ©ã®äžã«ãèªåèªèº«ãåŒã³åºãåŠçãå«ã颿°ã§ãã
ååž°ã®èãæ¹
ååž°é¢æ°ãèããéã¯ã以äžã®2ã€ã®æ®µéãæèããŸã:
- åºåºæ®µéïŒåæ¢æ¡ä»¶ïŒ: ååž°åŒã³åºãããããçŽæ¥çµæãè¿ãæãåçŽãªã±ãŒã¹ã§ããããããªããã°ç¡éã«ãŒãã«ãªããŸãã
- åž°çŽæ®µé: åé¡ãäžã€å°ããªãã®ã«çœ®ãæããŠãèªåèªèº«ãåŒã³åºãéšåã§ãã
å®éã«ãã£ãŠã¿ããïŒéä¹ã®ååž°é¢æ°
éä¹ïŒn!
ïŒã¯ä»¥äžã®ããã«å®çŸ©ã§ããŸã:
-
n == 0
ãªãã°ã0! = 1
ïŒåºåºæ®µéïŒ -
n > 0
ãªãã°ãn! = n * (n-1)!
ïŒåž°çŽæ®µéïŒ
#include<stdio.h>
// éä¹ãèšç®ããååž°é¢æ°
int fact_r(int n){
if( n == 0 ){ // åºåºæ®µé: nã0ãªã1ãè¿ã
return 1;
}
// åž°çŽæ®µé: n * (n-1)! ãèšç®ããããã«èªåèªèº«ãåŒã³åºã
return n * fact_r(n-1);
}
int main( void ){
int n;
printf("Input N-> ");
scanf("%d", &n);
printf("%d! = %d¥n", n, fact_r(n) );
return 0;
}
9. é å: åãåã®ããŒã¿ãè€æ°ãŸãšãã
é åã¯ãåãçš®é¡ã®å€æ°ãè€æ°äžŠã¹ããã®ã§ããããã«ãããè€æ°ã®ããŒã¿ããŸãšããŠå¹ççã«æ±ãããšãã§ããŸãã
é åã®ã€ã¡ãŒãž
- é åå ã®åã ã®å€æ°ãèŠçŽ ãšåŒã³ãŸãã
- åèŠçŽ ã«ã¯**æ·»åïŒã€ã³ããã¯ã¹ïŒ**ãšããéãçªå·ãä»ããŠãããããã䜿ã£ãŠåèŠçŽ ã«ã¢ã¯ã»ã¹ããŸãã
-
æ·»åã¯
0
ããå§ãŸããŸããäŸãã°ãèŠçŽ æ°3ã®é åã®æ·»åã¯0, 1, 2
ãšãªããŸãã
é åã®å®£èšãšåæå
-
宣èš:
åã®åå é åå[èŠçŽ æ°];
- äŸ:
int v;
(æŽæ°åint
ã®èŠçŽ ã3ã€æã€v
ãšããååã®é åãæºå)
- äŸ:
-
åæåã䌎ã宣èš:
åã®åå é åå[èŠçŽ æ°] = {å€1, å€2, ...};
- äŸ:
int v = {10, 20, 30};
- èŠçŽ æ°ãçç¥ããŠ
int x[] = {40, 50, 60};
ãšæžãããšãã§ããŸãããã®å Žåãåæå€ã®æ°ããèŠçŽ æ°ãèªåçã«æ±ºãŸããŸãã - åæå€ã®æ°ãèŠçŽ æ°ããå°ãªãå Žåãæ®ãã®èŠçŽ ã¯0ã§åæåãããŸãã
- äŸ:
é åèŠçŽ ãžã®ã¢ã¯ã»ã¹
-
é åå[æ·»å]
ã®åœ¢åŒã§ãç¹å®ã®èŠçŽ ã«ã¢ã¯ã»ã¹ã§ããŸãã- äŸ:
v = 10;
(é åv
ã®0çªç®ã®èŠçŽ ã«10ãä»£å ¥)
- äŸ:
for
æ
é
åã®èµ°æ» (Iteration) ãšé
åã®åèŠçŽ ãé çªã«åŠçããããšãé
åã®èµ°æ»ãšåŒã³ãŸããæ·»åãæŽæ°ã§ããããšãå©çšããŠãfor
æã䜿ãã®ãäžè¬çã§ãã
äŸ: 5åã®æŽæ°ã®å¹³åå€ãèšç®
#include<stdio.h>
int main(void){
int i, sum;
double avg;
int v; // èŠçŽ æ°5ã®æŽæ°åé
åã宣èš
// é
åã®åèŠçŽ ã«å€ãå
¥å
for(i = 0 ; i < 5 ; i++){
printf("æŽæ°%d? ", i+1);
scanf("%d", &v[i]);
}
// é
åã®åèšãèšç®
sum = 0;
for(i = 0 ; i < 5 ; i++){
sum = sum + v[i];
}
avg = sum/5.0; // å¹³åå€ãèšç®
printf("å¹³å%fÂ¥n", avg);
return 0;
}
#define
ãã¯ã宿° é åã®é·ããåºå®å€ã§ã¯ãªããã¯ã宿°ã§æå®ãããšãããã°ã©ã ã®å¯èªæ§ãä¿å®æ§ãåäžããŸãã
#define ãã¯ã宿°å å€
- ãã¯ã宿°åã¯éåžžã倧æåã§èšè¿°ããŸãã
- ã³ã³ãã€ã«æã«ããã¯ã宿°åããã®å€ã«çœ®ãæããããŸãã
äŸ: ãã¯ã宿°ã䜿ã£ãå¹³åå€èšç®
#include<stdio.h>
#define N 5 // é
åã®é·ããNãšå®çŸ©
int main( void ){
int score[ N ]; // Nåã®èŠçŽ ãæã€é
å
int i, sum;
for(i = 0; i < N; i++){ // Nåç¹°ãè¿ã
printf("Input >");
scanf("%d", &score[i]);
}
sum = 0;
for(i = 0; i < N; i++){ // Nåç¹°ãè¿ã
sum = sum + score[i];
}
printf("avg = %f¥n", (double)sum/N );
return 0;
}
é åãšé¢æ°
- Cèšèªã§ã¯ã颿°ã«é åãæž¡ããšããã®é¢æ°å ã§ã®é åãžã®æäœãåŒã³åºãå ã®é åã«ãåæ ãããŸãã
- ä»®åŒæ°ãšããŠé
åãåãåãå Žåã
å é åå[]
ãšèšè¿°ããŸãã - Processingã®ããã«
.length
ã§é åã®é·ããååŸããããšã¯ã§ããªããããé åã®é·ããåŒæ°ãšããŠæž¡ãå¿ èŠããããŸãã
äŸ: é åã®å 容ã衚瀺ãã颿°
#include<stdio.h>
#define N 5
// é
åã®å
容ã衚瀺ãã颿°ïŒé
åãšé·ããåŒæ°ãšããŠåãåãïŒ
void print_array(int d[], int len){
for(int i = 0; i < len ;i++){
printf("%d ", d[i]);
}
printf("Â¥n");
}
int main( ){
int data[N] = { 1, 2, 3, 4, 5};
print_array( data, N ); // print_array颿°ãåŒã³åºã
return 0;
}
ãããã«
Cèšèªã®åºæ¬çãªæŠå¿µãšãããã°ã©ã ã®äœæã»å®è¡ãµã€ã¯ã«ãç»é¢åºåã倿°ãæ¡ä»¶åå²ã颿°ãç¹°ãè¿ããé åã«ã€ããŠè§£èª¬ããŸããããããã®åºç€ã¯ãCèšèªããã°ã©ãã³ã°ã®åå°ãšãªããŸãã
**Cèšèªã®åŠç¿ã§æãéèŠãªã®ã¯ãæèšãã§ã¯ãªããå埩緎ç¿ã**ã§ããä»å玹ä»ããäŸãå®éã«æãåãããŠè©Šããããå°ãå 容ãå€ããŠã¿ããããããšã§ãçè§£ãæ·±ããŠãããŸãããã
Discussion