tuat1.dvi

Similar documents
tuat2.dvi

橡Pro PDF

I. Backus-Naur BNF : N N 0 N N N N N N 0, 1 BNF N N 0 11 (parse tree) 11 (1) (2) (3) (4) II. 0(0 101)* (

I. Backus-Naur BNF S + S S * S S x S +, *, x BNF S (parse tree) : * x + x x S * S x + S S S x x (1) * x x * x (2) * + x x x (3) + x * x + x x (4) * *

C¥×¥í¥°¥é¥ß¥ó¥° ÆþÌç

‚æ4›ñ

新版明解C言語 実践編

P05.ppt

main

卒 業 研 究 報 告.PDF

PowerPoint Presentation

r07.dvi

ohp07.dvi

II ( ) prog8-1.c s1542h017%./prog8-1 1 => 35 Hiroshi 2 => 23 Koji 3 => 67 Satoshi 4 => 87 Junko 5 => 64 Ichiro 6 => 89 Mari 7 => 73 D

:30 12:00 I. I VI II. III. IV. a d V. VI

:30 12:00 I. I VI II. III. IV. a d V. VI

新・明解C言語 ポインタ完全攻略

/* do-while */ #include <stdio.h> #include <math.h> int main(void) double val1, val2, arith_mean, geo_mean; printf( \n ); do printf( ); scanf( %lf, &v

ex12.dvi

解きながら学ぶC言語

ohp03.dvi

A/B (2018/10/19) Ver kurino/2018/soft/soft.html A/B

Microsoft Word - C.....u.K...doc

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裶²ó ¨¡ À©¸æ¹½Â¤¡§·«¤êÊÖ¤· ¨¡

untitled

PC Windows 95, Windows 98, Windows NT, Windows 2000, MS-DOS, UNIX CPU

I ASCII ( ) NUL 16 DLE SP P p 1 SOH 17 DC1! 1 A Q a q STX 2 18 DC2 " 2 B R b

新・明解C言語 実践編

XMPによる並列化実装2

P06.ppt

joho07-1.ppt

‚æ2›ñ C„¾„ê‡Ìš|

1.ppt

K227 Java 2

ex14.dvi

18 C ( ) hello world.c 1 #include <stdio.h> 2 3 main() 4 { 5 printf("hello World\n"); 6 } [ ] [ ] #include <stdio.h> % cc hello_world.c %./a.o

2008 IIA (program) pro(before)+gram(write) (artificial language) (programming languege) (programming) (machine language) (assembly language) ( )

£Ã¥×¥í¥°¥é¥ß¥ó¥°(2018) - Âè11²ó – ½ÉÂꣲ¤Î²òÀ⡤±é½¬£² –

lexex.dvi

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裵²ó ¨¡ À©¸æ¹½Â¤¡§¾ò·ïʬ´ô ¨¡

Microsoft Word - Cプログラミング演習(8)

ex01.dvi

ex01.dvi

WinHPC ppt

r03.dvi

C言語によるアルゴリズムとデータ構造

新・明解C言語で学ぶアルゴリズムとデータ構造

II 3 yacc (2) 2005 : Yacc 0 ~nakai/ipp2 1 C main main 1 NULL NULL for 2 (a) Yacc 2 (b) 2 3 y

Prog1_6th

BW BW

untitled

C C UNIX C ( ) 4 1 HTML 1

プログラミング方法論 II 第 14,15 回 ( 担当 : 鈴木伸夫 ) 問題 17. x 座標と y 座標をメンバに持つ構造体 Point を作成せよ 但し座標 は double 型とする typedef struct{ (a) x; (b) y; } Point; 問題 18. 問題 17 の

I 2 tutimura/ I 2 p.1/??

¥×¥í¥°¥é¥ß¥ó¥°±é½¬I Exercise on Programming I [1zh] ` `%%%`#`&12_`__~~~ alse

listings-ext

[ 1] 1 Hello World!! 1 #include <s t d i o. h> 2 3 int main ( ) { 4 5 p r i n t f ( H e l l o World!! \ n ) ; 6 7 return 0 ; 8 } 1:

8 / 0 1 i++ i 1 i-- i C !!! C 2

[1] #include<stdio.h> main() { printf("hello, world."); return 0; } (G1) int long int float ± ±

(Basic Theory of Information Processing) Fortran Fortan Fortan Fortan 1

DKA ( 1) 1 n i=1 α i c n 1 = 0 ( 1) 2 n i 1 <i 2 α i1 α i2 c n 2 = 0 ( 1) 3 n i 1 <i 2 <i 3 α i1 α i2 α i3 c n 3 = 0. ( 1) n 1 n i 1 <i 2 < <i

P02.ppt

C による数値計算法入門 ( 第 2 版 ) 新装版 サンプルページ この本の定価 判型などは, 以下の URL からご覧いただけます. このサンプルページの内容は, 新装版 1 刷発行時のものです.


バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

超初心者用

プログラミング基礎

2 P.S.P.T. P.S.P.T. wiki 26

PowerPoint プレゼンテーション

C

kiso2-09.key

ohp08.dvi

Informatics 2014

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

1) OOP 2) ( ) 3.2) printf Number3-2.cpp #include <stdio.h> class Number Number(); // ~Number(); // void setnumber(float n); float getnumber();

/* sansu1.c */ #include <stdio.h> main() { int a, b, c; /* a, b, c */ a = 200; b = 1300; /* a 200 */ /* b 200 */ c = a + b; /* a b c */ }

導入基礎演習.ppt

Condition DAQ condition condition 2 3 XML key value

slide5.pptx

DVIOUT

Java updated

C B

(K&R 2.9) ~, &,, >>, << 2. (K&R 5.7) 3. (K&R 5.9) 4. (K&R 5.10) (argc argv atoi(), atof() ) 5. (K&R 7.5) (K&R 7.6) - FILE, stdin, stdout, std

Cプログラミング1(再) 第2回

新版明解C言語入門編

Minimum C Minimum C Minimum C BNF T okenseq W hite Any D

double float

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

Informatics 2015

1.3 ( ) ( ) C

untitled

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裱£²²ó ¡Ý½ÉÂꣲ¤Î²òÀ⡤±é½¬£²¡Ý

プログラミング及び演習 第1回 講義概容・実行制御

Taro-再帰関数Ⅱ(公開版).jtd

1 4 2 EP) (EP) (EP)

r08.dvi

Microsoft PowerPoint - 説明3_if文switch文(C_guide3)【2015新教材対応確認済み】.pptx

1.1 1 C IIA $ cd comp3a %endminipage ~/comp3a mkdir $ mkdir comp3a $ cd comp3a C.c Emacs Cntrol x Control s 2 Emacs Control-x Control-f Control-

C 言語第 3 回 2 a と b? 関係演算子 a と b の関係 関係演算子 等しい a==b 等しくない a!=b より大きい a>b 以上 a>=b より小さい a<b 以下 a<=b 状態 真偽 値 条件が満たされた場合 TRUE( 真 ) 1(0 以外 ) 条件が満たされなかった場合 F

初歩のC言語ターミナル_2014_May.pages

Transcription:

( 1 ) http://ist.ksc.kwansei.ac.jp/ tutimura/ 2012 6 23 ( 1 ) 1 / 58

C ( 1 ) 2 / 58

2008 9 2002 2005 T E X ptetex3, ptexlive pt E X UTF-8 xdvi-jp 3 ( 1 ) 3 / 58

( 1 ) 4 / 58

C,... ( 1 ) 5 / 58

6/23( ) 7/7( ) 7/21( ) ( 1 ) 6 / 58

C C C C C ( 1 ) 7 / 58

C BASIC, COBOL, Pascal, FORTRAN 1972 D. M. Ritchie B. W. Kernighan AT&T C++, Java, C# ( 1 ) 8 / 58

C OS ( 1 ) 9 / 58

C K&R (1978 ) ANSI C (C89, 1989 ), void, enum C99 (1999 ),, long long,,, 1 (//) C11 (2011 ), gets gets s C99 (K&R C99 ) ( 1 ) 10 / 58

1 B.W. Kernighan, R. Pike,,, 2000. C/C++/Java 2 C ANSI 2 B.W. Kernighan, D.M. Ritchie,,, 1989. ( 1 ) 11 / 58

3 C,, 2004. scanf() 4 C,, 1991. 5 C,, 2003. ( 1 ) 12 / 58

C (1), (2) (1) (2) 1 (2) 2 (3), (4) (5) (5 ) ( 1 ) 13 / 58

(1), (2) (1) Hello, world! (2) Hello, world!? 1 int? double? ( 1 ) 14 / 58

(1) #include <stdio.h> int main(void) { printf("hello,world!\n"); return 0; ( 1 ) 15 / 58

(2) 1 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i, num; num = atoi(argv[1]); for (i=0; i<num; i++) { printf("hello,world!\n"); return EXIT_SUCCESS; ( 1 ) 16 / 58

(2) 2 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int i, num; scanf("%d", &num); for (i=0; i<num; i++) { printf("hello,world!\n"); return EXIT_SUCCESS; ( 1 ) 17 / 58

(3), (4) (3) 2? 1 int? double? (4)? (4 ) 3?? ( 1 ) 18 / 58

(5) (5) 2 2? 1 ( 1 ) 19 / 58

(5 ) (5 ) 5 2 (6) 2 1, 10, 100, 1000??? ( 1 ) 20 / 58

C (7) (8) (9) ( 1 ) 21 / 58

(yes/no, true/false) 2 bool, boolean, 2, TRUE FALSE C ANSI C89 int #define FALSE 0 C99 #include <bool.h> bool, true, false ( 1 ) 22 / 58

if/while TRUE FALSE TRUE FALSE flag is_prime,has_next,visited #include <ctype.h> if (isalpha(a)) printf("%c is an alphabet.\n", a); if (isdigit(a)) printf("%c is a number.\n", a); if (!isdigit(a)) printf("%c is not a number.\n", a); ( 1 ) 23 / 58

(7) (7) isupper(),islower() int main(void) { int c; while ((c=getchar())!= EOF) {... return EXIT_SUCCESS; Cygwin [Enter] [CTRL] [D] ( 1 ) 24 / 58

(8) (8) isupper(),islower() (8 ) TRUE ( 1 ) 25 / 58

(9) (9) 1 10 2 2 3 1 4 5 6 7 8 9 10 (9 ) 1 10 5 (9 ) 1 20 10 2 ( 1 ) 26 / 58

C (10) (10) 1 (10) 2 (10) 3 (10 ), (11) (11) (12)(12 ), (12)(12 ) (12)(12 ) (13), (13) (14), ( 1 ) 27 / 58

( 1 ) 28 / 58

(10) (10) 100 2 1 2 3 2 4 2 2 5 2, 3, 4 ( 1 ) 29 / 58

(10) 1 int main(void) { int i, j, is_prime; for (i=2; i<100; i++) { is_prime = TRUE; for (j=2; j<i; j++) { if (i % j == 0) { is_prime = FALSE; break; if (is_prime) printf("%d\n", i); return EXIT_SUCCESS; ( 1 ) 30 / 58

(10) 2 int main(void) { int i, j, is_prime; for (i=2; i<100; i++) { is_prime = TRUE; for (j=2; j<i && is_prime; j++) { if (i % j == 0) { is_prime = FALSE; if (is_prime) printf("%d\n", i); return EXIT_SUCCESS; ( 1 ) 31 / 58

(10) 3 int is_prime(int n) { int i; for (i=2; i<n; i++) { if (n % i == 0) return FALSE; return TRUE; int main(void) { for (int i=2; i<100; i++) { // C99 if (is_prime(i)) printf("%d\n", i); return EXIT_SUCCESS; ( 1 ) 32 / 58

3 1960 Structured Programming (1967) Go to statement considered harmful (1968) goto ( 1 ) 33 / 58

1. break 1 goto (?) 2. 3. return ( 1 ) 34 / 58

(10 ), (10 ) int main(int argc, char *argv[]) { int num; num = atoi(argv[1]); if (is_prime(num)) printf("%d is prime.\n", num); else printf("%d is not prime.\n", num); return EXIT_SUCCESS; ( 1 ) 35 / 58

(11) (11) ( ) 100 1. 2 99 2. 3. 2 (11 ) 1000 static or malloc() ( 1 ) 36 / 58

(11) int main(void) { int i, j, is_prime[100]; for (i=2; i<100; i++) is_prime[i] = TRUE; for (i=2; i<100; i++) { if (is_prime[i]){ printf("%d\n",i); for (j=i*2; j<100; j+=i) is_prime[j] = FALSE; return EXIT_SUCCESS; ( 1 ) 37 / 58

(12)(12 ), (12) (12 ) 100 2? ( 1 ) 38 / 58

(12)(12 ) int is_prime_flag[100]; void prime_init(void){ int i, j; is_prime_flag[0] = is_prime_flag[1] = FALSE; for (i=2; i<100; i++) is_prime_flag[i] = TRUE; for (i=2; i<100; i++) { if (is_prime_flag[i]){ for (j=i*2; j<100; j+=i) { is_prime_flag[j] = FALSE; ( 1 ) 39 / 58

(12)(12 ) int is_prime(int i) { if (0 <= i && i < 100) return is_prime_flag[i]; printf("is_prime: out of range (%d)\n", i); exit(1); int main(void) { int i; prime_init(); for (i=2; i<=100/2; i++) { if (is_prime(i)&& is_prime(100-i)){ printf("100 = %d + %d\n", i, 100-i); return EXIT_SUCCESS; ( 1 ) 40 / 58

(13), (13) ( 1 ) 41 / 58

(13) int main(void) { int i; prime_init(); for (i=1; i<100; i++) { int p1 = is_prime(i); int p2 = is_prime2(i); if ((p1 &&!p2) (!p1 && p2)) { printf("error: i=%d, %d!= %d\n", i, p1, p2); return EXIT_SUCCESS; ( 1 ) 42 / 58

(14), (14) 100 2 98 2 100 2 100 98 ( 1 ) 43 / 58

(14) #define PRIME_MAX 100 static int is_prime_flag[prime_max]; void prime_init(void){ int i, j; is_prime_flag[0] = is_prime_flag[1] = FALSE; for (i=2; i<prime_max; i++) is_prime_flag[i] = TRUE; for (i=2; i<prime_max; i++) { if (is_prime_flag[i]){ for (j=i*2; j<prime_max; j+=i) { is_prime_flag[j] = FALSE; ( 1 ) 44 / 58

(14) void sum_prime(int n) { int i; for (i=2; i<=n/2; i++) { if (is_prime(i)&& is_prime(n-i)){ printf("%d = %d + %d\n", n, i, n-i); int main(void) { prime_init(); sum_prime(100); sum_prime(98); return 0; ( 1 ) 45 / 58

C (20) (21), (22) (23) (24) (25),(25 ), (1) (2) ( 1 ) 46 / 58

(call by value) (call by reference) ( 1 ) 47 / 58

y m d 2012 6 23 6 22 2012 5 1 4 30 2012 4 1 3 31 2012 3 1 2 29 2011 3 1 2 28 ( 1 ) 48 / 58

2 29 4 100 400 400 97 1872 5 ( 1 ) 49 / 58

(20) int is_leap_year(int year) 2001, 2002, 2003, 2005, 2100, 2200,... 2000, 2004, 2008,... ( 1 ) 50 / 58

(21), (22) (21) int is_valid_date(int year, int month, int day) (22) 1900 1 1 int date_to_number(int year, int month, int day) date_to_number(1900,1,1) 1 ( 1 ) 51 / 58

(23) (23) (22) void number_to_date(int number, int *year, int *month, int *day) int main() { int year, month, day; number_to_date(12345,&year, &month, &day); printf("%d %d %d \n", year, month, day); return 0; ( 1 ) 52 / 58

1 void let_five(int *a) { *a = 5; void foo(void) { int i = 1; /* 1 */ let_five(&i); /* */ printf("%d\n",i); /* 5 */ 1 ( 1 ) 53 / 58

(24) date_to_number() number_to_date() yesterday() tomorrow() ( 1 ) 54 / 58

(25),(25 ), (25) 1900 1 1 int day_of_week(int year, int month, int day) 0=, 1=,..., 6= (25 ) $ cal 6 2012 June 2012 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ( 1 ) 55 / 58

int day_of_week(int year, int month, int day) { if (month < 3) { year--; month += 12; return (year + year / 4 - year / 100 + year / 400 + (13 * month + 8) / 5 + day) % 7; mktime(),localtime() ( 1 ) 56 / 58

(1) 1. 30 2. 2012 6 30 25 OS ( 1 ) 57 / 58

(2) 3. 1900 (=1), (=2), (=3), (=4) 7/2( ), http://ist.ksc.kwansei.ac.jp/ tutimura/tuat/ ( 1 ) 58 / 58