tuat2.dvi

Similar documents
tuat1.dvi

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

1 C STL(1) C C C libc C C C++ STL(Standard Template Library ) libc libc C++ C STL libc STL iostream Algorithm libc STL string vector l

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

PowerPoint Presentation

ex14.dvi

untitled

新版明解C言語 実践編

Original : Hello World! (0x0xbfab85e0) Copy : Hello World! (0x0x804a050) fgets mstrcpy malloc mstrcpy (main ) mstrcpy malloc free fgets stream 1 ( \n

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

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

mstrcpy char *mstrcpy(const char *src); mstrcpy malloc (main free ) stdio.h fgets char *fgets(char *s, int size, FILE *stream); s size ( )

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

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

: CR (0x0d) LF (0x0a) line separator CR Mac LF UNIX CR+LF MS-DOS WINDOWS Japan Advanced Institute of Science and Technology

P05.ppt

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 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科


新・明解C言語 実践編

cpp1.dvi

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

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

untitled

1 1.1 C 2 1 double a[ ][ ]; 1 3x x3 ( ) malloc() 2 double *a[ ]; double 1 malloc() dou

C C UNIX C ( ) 4 1 HTML 1

3.1 stdio.h iostream List.2 using namespace std C printf ( ) %d %f %s %d C++ cout cout List.2 Hello World! cout << float a = 1.2f; int b = 3; cout <<

untitled

r07.dvi

ohp07.dvi

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

Microsoft Word - no15.docx

C言語入門

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

ex12.dvi

スライド タイトルなし

lexex.dvi

1 1.1 C 2 1 double a[ ][ ]; 1 3x x3 ( ) malloc() malloc 2 #include <stdio.h> #include

void hash1_init(int *array) int i; for (i = 0; i < HASHSIZE; i++) array[i] = EMPTY; /* i EMPTY */ void hash1_insert(int *array, int n) if (n < 0 n >=

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

P03.ppt

double float

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

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

解きながら学ぶC言語

Microsoft Word - no15.docx

main

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)* (

/* 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 */ }

O(N) ( ) log 2 N

(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

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

橡Pro PDF

1.ppt

A/B (2010/10/08) Ver kurino/2010/soft/soft.html A/B

卒 業 研 究 報 告.PDF

r03.dvi

P06.ppt

P02.ppt

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

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

ohp03.dvi

1 4 2 EP) (EP) (EP)

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) * *

情報処理演習 B8クラス

新版明解C言語入門編

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

プログラミング演習 土曜日(Q組)


ディジタル信号処理

debug ( ) 1) ( ) 2) ( ) assert, printf ( ) Japan Advanced Institute of Science and Technology

A

Microsoft Word - no103.docx

A/B (2018/06/08) Ver kurino/2018/soft/soft.html A/B

計算機プログラミング

double 2 std::cin, std::cout 1.2 C fopen() fclose() C++ std::fstream 1-3 #include <fstream> std::fstream fout; int a = 123; fout.open( "data.t

‚æ4›ñ

program.dvi

C B

PowerPoint Presentation

Microsoft PowerPoint - kougi9.ppt

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

I J

1-4 int a; std::cin >> a; std::cout << "a = " << a << std::endl; C++( 1-4 ) stdio.h iostream iostream.h C++ include.h 1-4 scanf() std::cin >>

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

超初心者用

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

gengo1-12

joho07-1.ppt

/ SCHEDULE /06/07(Tue) / Basic of Programming /06/09(Thu) / Fundamental structures /06/14(Tue) / Memory Management /06/1

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

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

Microsoft Word - no14.docx

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

Microsoft PowerPoint - CproNt11.ppt [互換モード]

slide4.pptx

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

thesis.dvi

Transcription:

( 2 ) http://ist.ksc.kwansei.ac.jp/ tutimura/ 2012 7 7 ( 2 ) 1 / 54

(1) (2) (?) (1) (2) 2 ( 2 ) 2 / 54

1. 30 2. 2012 6 30 25 OS ( 2 ) 3 / 54

10 20 1993 1996 2000 2003 = 30 ( 2 ) 4 / 54

1 2 2 ( 2 ) 5 / 54

( 2 ) 6 / 54

(1) for () #include "A" "B" "AB" main() main() main() ( 2 ) 7 / 54

(2) int hoge(); int hoge(void); {} if (is_hoge) { if (is_hoge) printf("a"); { } printf("a"); } if if (is_hoge) { if (is_hoge) printf("a"); printf("a"); } ( 2 ) 8 / 54

(?) long int a; long a; int main(void) {...} main() {...} if (a % 2!= 0)... if (a % 2)... i=10; while (--i>=0) puts("10 \n"); Java int a=10; if (a % 2) {... } ( 2 ) 9 / 54

(C ) (_) ( )is_leap_year,day_of_week,snake_case (C++/Java) ( )isleapyear,dayofweek,camelcase (C/C++/Java) (_) ( )TRUE,MAX_VALUE ( 2 ) 10 / 54

(1) ( )add_item(),get_size() ( )num (number),len (length),str (string), diff (difference), buff (buffer) :flg (flag),tbl (table) flag ( 2 ) 11 / 54

(2) ( )hex2str (hex to string),num2date (number to date) set get, next last (previous), pre post ( 2 ) 12 / 54

(20) (21), (22) (23) (24), (24 ) (25),(25 ), 2 ( 2 ) 13 / 54

(call by value) (call by reference) ( 2 ) 14 / 54

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 ( 2 ) 15 / 54

2 29 4 100 400 400 97 2000 1872 5 ( 2 ) 16 / 54

(20) int is_leap_year(int year) 2001, 2002, 2003, 2005, 2100, 2200,... 2000, 2004, 2008,... ( 2 ) 17 / 54

1 void let_five(int *a) { /* a int */ *a = 5; /* *a int */ } void foo(void) { int i = 1; /* 1 */ let_five(&i); /* */ printf("%d\n",i); /* 5 */ } 1 ( 2 ) 18 / 54

(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 ( 2 ) 19 / 54

(23) (23) (22) void number_to_date(int number, int *year, int *month, int *day) int main(void) { int year, month, day; } number_to_date(12345,&year, &month, &day); printf("%d %d %d \n", year, month, day); return 0; ( 2 ) 20 / 54

(24), (24 ) (24) date_to_number() number_to_date() yesterday() tomorrow() (24 ) 2 int diff_date(int y1, int m1, int d1, int y2, int m2, int d2) ( 2 ) 21 / 54

(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 ( 2 ) 22 / 54

( 2 ) 23 / 54

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() ( 2 ) 24 / 54

2 ( 2 ) 25 / 54

gcc -Wall hoge.c gcc -Wall -O2 hoge.c cl.exe /Wall hoge.c int a; int b=a; if (a=b)...; printf printf("%d",5.5); ( 2 ) 26 / 54

C gdb UNIX, valgrind UNIX, Electric Fence UNIX, VisualStudio Windows Purify Windows/UNIX ( 2 ) 27 / 54

CPU gprof UNIX, Cygwin gcc -pg -g -Wall hoge.c./a.exe gprof a.exe Visual Studio Windows VTune Windows ( 2 ) 28 / 54

(30) scanf(),gets() 2 ( 2 ) 29 / 54

3 C C++ Java stdin cin System.in stdout cout System.out stderr cerr/clog System.err (!) printf(...) fprintf(stdout,...) stdin stdout printf() getchar() gets() scanf() putchar() puts() ( 2 ) 30 / 54

command < file command > file command >> file (sh/bash) command 2> file (csh/tcsh) command >& file ( 2 ) 31 / 54

fopen() stderr fflush() command sort command gzip > output.gz command wc command tee output ( 2 ) 32 / 54

(30) dir > >> ( 2 ) 33 / 54

2 ( 2 ) 34 / 54

scanf(),gets() scanf("%d", &i)??? scanf("%s", buff),gets(buff) int i; char buff[1024]; fgets(buff, sizeof(buff), stdin); sscanf(buff, "%d", &i); ( 2 ) 35 / 54

C99 (5 ) (6) (31), (31 ) (32) 2 ( 2 ) 36 / 54

int hoge1[100]; static int hoge2[100000]; /* */ int *hoge3 = malloc( 100 * sizeof(int) ); int *hoge4 = malloc( 100 * sizeof(hoge4[0])); int *hoge5 = malloc( 100 * sizeof(*hoge5)); int *hoge6 = calloc( 100, sizeof(int) ); if (hoge3 == NULL) { printf("can t allocate memory.\n"); exit(1); } hoge3[12] = 4; free(hoge3); ( 2 ) 37 / 54

int *hoge7 = xmalloc( 100 * sizeof(hoge[0])); free(hoge7); hoge7 = NULL; /* */ void *xmalloc(size_t size) { void *p; } if ( size == 0 ) size++; if ( (p=malloc(size))== NULL ) { fprintf( stderr, "Not enough memory.\n" ); exit( EXIT_FAILURE ); } return p; ( 2 ) 38 / 54

(int *)malloc(size) C ANSI C89, C99, C11 C++ C K&R malloc() C++ ( 2 ) 39 / 54

int c[10], d[10]; int main(void) { int i, a[10], b[10]; } for (i=0; i<1000; i++) { printf("i = %d\n", i); a[i] = -1; /* b[i] c[i]? */ } return 0; ( 2 ) 40 / 54

int hoge_num = 0; /* */ int hoge_max = 10; /* */ int *hoge = xmalloc( sizeof(hoge[0])* hoge_max );... if (hoge_num == hoge_max) { /* */ hoge_max *= 2; */ hoge = xrealloc(hoge, sizeof(hoge[0])*hoge_max); } hoge[hoge_num++] = 123; /* ( 2 ) 41 / 54

C99 C99 void foo(int size) { int a[size]; }... ( 2 ) 42 / 54

(5 ) (6) (5 ) 5 2 (6) 2 1, 10, 100, 1000??? scanf() ( 2 ) 43 / 54

(31), (31 ) 100 40 (31) 40 1 40? 100? (31 ) 10 100 ** 99 * 98 97 ******... 10 * 9 *** 8 * ( 2 ) 44 / 54

(32) (32) 100 25 10 1 ( 2 ) 45 / 54

2 2 2 2 2 2 ( 2 ) 46 / 54

2 int hoge1[10][20]; /* */ int **hoge2 = xmalloc(sizeof(hoge2[0])* 10); for (i=0; i<10; i++) { hoge2[i] = xmalloc(sizeof(hoge2[0][0])* 20); } hoge1[5][17] = 123; hoge2[5][17] = 123; malloc() free() ( 2 ) 47 / 54

2 /* */ void func1a(int a[10][20]) {...} void func1b(int a[][20]) {...} int hoge1[10][20]; func1a(hoge1); func1b(hoge1); /* */ void func2(int **a) {...} int **hoge2; func2(hoge2); ( 2 ) 48 / 54

2 int *hoge3 = xmalloc( sizeof(hoge3[0])*10 * 20 ); (1) hoge3[i][j] hoge3[i*20 + j] (2) #define HOGE3(i,j) hoge3[(i) * 20 + (j)] HOGE3(i,j) ( 2 ) 49 / 54

2 int **hoge4; int i, size1, size2; char *p; size1 = sizeof(hoge4[0]) * 10; size2 = sizeof(hoge4[0][0])*20; p = xmalloc(size1+size2 * 10); hoge4 = (int**)p; p += size1; for (i=0; i<10; i++) { hoge4[i] = (int*)p; p += size2; } ( 2 ) 50 / 54

5 5 1 72 1 http://ist.ksc.kwansei.ac.jp/ tutimura/tuat/ 1 1 ( 2 ) 51 / 54

? 2 1 ( 2 ) 52 / 54

5 5 7/17( ) ( 2 ) 53 / 54

5 ( ) 1,3,5,7,9 1 1,1,3,5,7 2 1,1,2,2,5 3 1,1,1,5,7 5 1,2,3,4,5 1,1,1,2,2 4 1,1,1,1,7 ( 2 ) 54 / 54