Microsoft PowerPoint 구현.pptx

Size: px
Start display at page:

Download "Microsoft PowerPoint 구현.pptx"

Transcription

1 소프트웨어공학 () 문양세강원대학교 IT대학컴퓨터과학전공

2 In this chapter (1/2) 구현, 즉코딩 (coding) 은 설계된내용을원시코드 (source code) 로변환시키는작업 설계사양 (design spec.) 코딩 원시코드 (source code) 컴파일디버깅 목적코드 (object code) 코딩의원칙 설계내용을철저히반영시킨다. ( 어렵다고빼고진행하면나중에후회 ) 원시코드는간단명료하도록한다 디버깅이쉽도록한다. 시험이용이해야한다. 수정이간편해야한다. Page 2

3 In this chapter (2/2) We will cover 프로그래밍언어 4 세대프로그래밍언어 비주얼프로그래밍언어 코딩스타일 원시코드의문서화 Page 3

4 프로그래밍언어의역할 컴퓨터를제어 (control) 소프트웨어의구현및저장 프로그래머사이의의사소통 논리흐름의표현 문서화 (documentation) ti 언어의기능 vs. 사용자들의반응 소프트웨어의구조와알고리즘적인특성을크게좌우 적합한프로그래밍언어의선택이중요한요소임 Page 4

5 프로그래밍언어의발전 (1/5) 제 1 세대언어 : Machine language, assembly language 제 2 세대언어 : Fortran, Cobol, Algol60, Basic 제 3 세대언어 범용 : PL/1, Pascal, Modula-2, C, Ada, C++, SIMULA, Smalltalk, Java, 특수 : CHILL, RPG, Lisp, Prolog, APL, 제 4 세대언어 (4GL, non-procedural language): MANTIS, IDEAL, RAMIS II, SQL, Page 5

6 프로그래밍언어의발전 (2/5) Assembly language 예제 Intel Chip (Linux) Page 6

7 프로그래밍언어의발전 (2/5) Assembly language 예제 Intel Chip (Linux) Sparc Chip (Solaris) Page 7

8 프로그래밍언어의발전 (3/5) Fortran 프로그램예제 Page 8

9 프로그래밍언어의발전 (4/5) Pascal 프로그램예제 Page 9

10 프로그래밍언어의발전 (5/5) C 프로그램예제 Page 10

11 프로그래밍언어선택시고려사항 프로젝트의상황 프로그래밍언어자체의특성 Page 11

12 프로젝트의상황 (1/2) 사용자의요구 유지보수를사용자가직접담당하는경우특정언어를요구할수있음 프로그래머의지식 ( 가장 ) 숙달된언어 기능의제한성이파악된언어 완성되었거나현재진행되는프로젝트에사용되고있는언어 익숙한언어 두개이상의프로젝트가진행 가능한하나의언어로통일하는것이유리 Page 12

13 프로젝트의상황 (2/2) 컴파일러의가용성과품질 하드웨어 적당한가격 목적코드의효율성, 품질, 오류메시지의분량 소프트웨어개발도구의지원 에디터 (editor) 디버거 (debugger) 링커 (linker) 추적기 (tracer) 호환성 Page 13

14 프로그래밍언어자체의특성 표현력과적합성 단순성, 명확성, 직교성 언어의문형 제어구조 자료형 상수 프로시저와함수 프로시저및자료추상화 재사용 Page 14

15 표현력과적합성 원하는작업을얼마나효율적으로충분히표현할수있는가? 예제 COBOL : 사무응용분야 C 언어 : 시스템프로그래밍, 임베디드응용 Pascal : 프로그래밍교육 ( 풍부한자료구조 ) Modula-2 : 시스템프로그래밍에적합 Ada : 실시간처리응용 Lisp, Prolog : 인공지능 ASP, PHP, JSP : 웹프로그래밍 Java : 인터넷프로그래밍 작업자체를실현하기에가장적합한언어를선택하는것이바람직함 Page 15

16 단순성, 명확성, 직교성 단순성 : 예약어 (reserved word) 의개수가적어야함 적을수록쉽게이해하고익숙해질수있음 COBOL-74: 300 여개, Pascal: 74 개, Modula-2: 64 개, Fortran 48 개 명확성 : 언어가의미를잘담고있으며모호하지않아야함 직교성 : 언어의기능들이쉽게결합될수있어야함 예 1) 함수의리턴값은 ( 일반적으로 ) 이미정의된타입이어야함 예 2) 동일한용어가여러의미 / 기능으로사용되어서는안됨 Page 16

17 언어의문형 ( 구문 ) (1/2) 일관적이고원시코드의명료성을증진시킬수있어야함 1 Pascal 의경우 if TotalSales > BonusLevel then Bonus := Commission + (BonusPercent * TotalSales); if TotalSales > BonusLevel then begin Bonus := Commission + (BonusPercent * TotalSales); BonusMonths := BonusMonths + 1 end 2 Ada에서 endif, endwhile의사용 보다일관적 if TotalSales > BonusLevel then Bonus := Commission + (BonusPercent * TotalSales) endif if TotalSales > BonusLevel then Bonus := Commission + (BonusPercent * TotalSales); BonusMonths := BonusMonths + 1 endif Page 17

18 언어의문형 ( 구문 ) (2/2) 3 dangling else else가어디에해당? if conditiona o then if concitionb then action1 else action2 if conditiona then if concitionb then action1 endif else action2 endif Page 18

19 제어구조 (Control Structure) (1/2) 기본적인제어구문 : if-then-else 선택구조 (case 구조 ) case 선택자의타입은가능하면제한이없어야 case 문장의레이블은범위를표시할수있어야 선택자가가질수있는모든값을열거하도록강요해서는안된다 case Person of end case; when Newborn Infant => Infant_Seat; when Toddler.. Child => Lap_Belt; when Others => Shoulder_and_Lap_Belt; Page 19

20 제어구조 (Control Structure) (2/2) 반복구조 반복횟수를나타내는타입이정수로제한되어서는안됨 반복횟수를나타내는변수, 초기값을배정하는수식, 점증값을반복되는구조안에서바꾸는것은바람직하지않음 반복횟수를나타내는변수의정의범위는반복문장안으로제한하는것이바람직함 반복구조의구문예 : for, while, repeat-until, loop, Page 20

21 자료형 (Data Type) Strong typed language 타입검사가매우강한특성을가진다. ( 정수변수 := 실수 는컴파일시에러발생 ) Ada, Modula-2, Pascal Dynamic typed language 수행중간에변수의형이변할수있다. Lisp, APL, PHP 단순자료형 실수, 정수, 논리형, 문자형 포인터형 (Ada, C, Modula-2, Pascal) 사용자정의타입 type Ages=(Infant, Toddler, Preschool, Child, Teenager, Adult); var Person: Ages; Page 21

22 구조자료형 (1/2) ( 일반적으로 ) 배열 (array) 과구조체 (structure) 를의미함 정적배열 프로그램수행초기 ( 혹은컴파일타임 ) 에배열의크기가결정됨 Fortran, Pascal, Modula-2 동적배열 프로그램수행중간에 ( 메모리할당등을통하여 ) 배열의크기가결정됨 C, Ada type Puzzle is array (integer range <>, integer range <>) of character; subtype SundayPuzzle is Puzzle(1..50, 1..50); Page 22

23 구조자료형 (2/2) 구조 (Structure) 여러개의기본타입으로보다복잡한자료형을생성하는방법 생성된구조체를레코드라부르기도함 type SubscriberType = record Name: array[1..50] of char; IDNumber: ; IssuesSent: ; IssuesRemaining: ; SubscriptionType: (New, Renewal, Free, Lifetime) end; Page 23

24 추상자료형 (Abstract Data Type) 자세한내용이 encapsulation되어있어, 프로그래머는자료값이나오퍼레이션이어떻게구현되어있는지자세히알필요가없는자료형 ( 일반적으로 ) Object-Oriented 언어에서클래스형태로사용함 class BankAccount { public: BankAccount(int won, double rate); BankAccount(); void update(); double get_balance(); double get_rate(); void output(); private: double balance; interest_rate; } Page 24

25 상수 (Constant) 상수란프로그램이수행되는동안에값이바뀌지않는자료이다. Pascal/Modula-2: 단순자료형 ( 실수, 정수, 문자, 논리형 ) 만가능 Ada: 사용자정의타입도허용 C/C++: #define 사용하여정의 Page 25

26 함수 / 프로시저 (1/3) 함수 / 프로시저에전달되는매개변수종류 : 입력, 출력, 입출력 매개변수의전달방식 Call by value: 호출한부분의변수값이함수내의지역변수에복사됨 함수내에서변경한내용이리턴후에반영되지않음 Call by reference: 호출한변수의주소값이함수내에전달됨 함수내에서변경하면, 호출한변수의값이직접변경됨 Call by value result: 지역변수에복사되나, 리턴시매개변수에복사됨 지역변수로연산을수행하나, 마지막에매개변수에복사되는형태임 Page 26

27 함수 / 프로시저 (2/3) An example of call by value Page 27

28 함수 / 프로시저 (3/3) An example of call by reference Page 28

29 재사용 (Reuse) 특정자료형이나목적에맞도록구현하는것이아니라, 일반적자료형및목적에맞도록구현 재사용측면에서유리 Ada example: 모든자료형을지원하는스택의구현 generic type StackItem is private; package Stack is procedure Push(Element: in StackItem); function Pop return StackItem;.. end Stack; package CharStack is new Stack(character); package IntegerStack is new Stack(integer); Page 29

30 구조적프로그래밍 (1/3) 프로그램을계층적으로중첩되게작성하는규율 (formulation) N. Wirth 프로그램을쉽게이해하고오류를줄여, 프로그래밍의생산성을높이려는목적으로프로그램작성에적용하는철학 프로그램의제어흐름을선형화시켜논리구조가명백하게하려는코딩규율 Page 30

31 구조적프로그래밍 (2/3) Proper Program( 의정의 ) 단일입구, 단일출구 모든노드는입구에서도달할수있는경로가있어야 모든노드는출구까지도달할수있는경로가있어야 구조적프로그램 ( 의정의 ) 세가지제어구조 ( 순차, 선택, 반복 ) 로무조건적 goto 에의한복잡한제어흐름을방지 제어구조가하향식 Stepwise refinement 를이용한프로그래밍 Structure Theorem Proper program 은구조적프로그램으로변환가능 최신프로그래밍언어 구조적언어문형 (if-then, if-then-else, case, while, for, repeat-until 등 ) Page 31

32 구조적프로그래밍 (3/3) Goto 文은구조적인제어흐름을해치지않는범위에서사용해야함 가능하면마음속에서, 머리속에서 goto 를지우는것이바람직함 DO 50 I=1, COUNT. IF (ERROR1) GO TO 60. IF (ERROR2) GO TO CONTINUE 60 {Code for Error1 handling} GO TO {Code for Error handling} 80 CONTINUE I=1 fori=1totablesizedo while I <= TableSize and if Table(I) = Target then goto Found Table(I) <> Target do I = I + 1 NotFound: {code for Target not found} if I > TableSize then Found: {code for Target found} {code for target not found} else { code for Target found} (a) 구조적코딩 (b) goto의사용 Page 32

33 We are now 프로그래밍언어 4 세대프로그래밍언어 비주얼프로그래밍언어 코딩스타일 원시코드의문서화 Page 33

34 4 세대언어 (4GL) 1970 년대후반부터나온개념임 누구나쉽게프로그래밍을할수있는언어 를기치로내세움 결국, ( 전문 ) 프로그래머의설자리는없어질것이라며 절차적 / 순서적언어가아니고, 비절차 (non-procedural) 의언어임 즉, how 가나타나지않고, what 을위주로프로그램을작성 실질적으로 실패 했다고보고있음 우리주위에 4GL 이있는가? 4세대언어종류 : Focus, RAMIS-II, SQL SQL 의경우특수목적 (DBMS 처리 ) 으로널리사용되고있음 Page 34

35 Focus 프로그램예 TABLE FILE SALES HEADING CENTER SAMPLE SALES REPORT SUM SALES BY REGION ACROSS MONTH BY YEAR ON YEAR SUMMARIZE ON YEAR PAGE-BREAK END 어떤의미인지정확하지는않지만 아마도 SALES라는파일에서영역, 연도별로, 각달에걸쳐서매출평균을구하는 Page 35

36 SQL 프로그램예 SELECT name, price FROM fruit WHERE color = 빨간색 ; INSERT INTO fruit VALUES ( 멜론, 110, 초록색, 한국 ); UPDATE fruit SET price=120, country= 미국 WHERE name= 멜론 ; DELETE FROM fruit WHERE name= 멜론 ; 어떻게 (how) 찾고, 넣고, 바꾸고, 지우고하는지를기술하는것이아니라, 무엇 (what) 을찾고, 넣고, 바꾸고, 지우고하는지를기술한다. 결국, how 보다는 what 에중점을둔보다지능적인언어라할수있음 내부적으로무엇인가 (query processor, query optimizer) 가엄청고생하겠죠? Page 36

37 We are now 프로그래밍언어 4 세대프로그래밍언어 비주얼프로그래밍언어 코딩스타일 원시코드의문서화 Page 37

38 비주얼프로그래밍언어 C, Pascal, Java 등으로만비주얼프로그래밍을한다면 코드가너무많아질것이다. 버튼하나그리는데 30~40줄 시간이너무많이걸릴것이다. 비주얼프로그래밍 주어진도구 (tool) 를사용하여화면을설계및구현하고, 각객체에대한이벤트 (event) 에대해서액션 (action) 을프로그래밍한다. 관련된많은 API 라이브러리가제공된다. 얼마나많은 API 를아느냐하는경험의척도가기술력이된다. 종류 : Visual C/C++, Visual Basic, J Builder, Delphi, Page 38

39 비주얼베이직예제 (1/2) Visual Basic 의경우 1 원하는윈도우를그린다 2 버튼, 텍스트박스의속성을 (properties) 를설정 Page 39

40 비주얼베이직예제 (2/2) 3 연계 ( 관련 ) 된이벤트에대해서코드를작성한다. Page 40

41 Java Eclipse (Android 개발 ) Page 41

42 We are now 프로그래밍언어 4 세대프로그래밍언어 비주얼프로그래밍언어 코딩스타일 원시코드의문서화 Page 42

43 코딩스타일? 옷을입는것에도스타일이있다. 빨간색을좋아하는사람 빨갱이인가? 진바지를좋아하는사람 청바지가잘어울리는여자 프로그램에도스타일이있다? 정수형은사용하지않는사람 모름지기수란모두실수여 ~ 다섯줄만넘으면함수로분리하는사람 모듈화안배웠어 ~ 나눠! 나눠! 나눠! 포인터를엄청많이사용하는사람 난포인터의황제다 어렵지 ~ 나만알면장땡 ~ 어떤스타일이가장좋은가? 원칙은없다. 다만권고 (recommendation) 가있을뿐 Page 43

44 스타일 1: 명확하게작성하라. (1/3) 부제 : 너무똑똑한체하지말것 내가가장하기어려운 int i, j; float v[n][n];... for(i=1;i <= N;i++) for(j=1;j <= N;j++) int i, j; float v[n][n]; v[i-1][j-1] = (i/j)*(j/i); for(i=0;i < N;i++) for(j=0;j < N;j++) if(i == j) v[i][j] = 1; else v[i][j] = 0; Page 44

45 스타일 1: 명확하게작성하라. (2/3) 일반적으로짧을수록명확해진다. power[1] = base; power[2] = base*base; power[3] = base*base*base; power[4] = base*base*base*base; base; power[5] = base*base*base*base*base; power[6] = base*base*base*base*base*base; power[7] = base*base*base*base*base*base*base; power[8] = base*base*base*base*base*base*base*base;... power[1] = base; for(i=2;i < N;i++) power[i] = power[i-1]*base; Page 45

46 스타일 1: 명확하게작성하라. (3/3) 짧으면항시명확하다? 꼭그렇지만은않다. int IntegerFromHex(char HexDigit) { if(hexdigit < 58) return(hexdigit 48); // 0 = 48 else return(hexdigit 55); // A = 65 } int IntegerFromHex(char HexDigit) { } switch(hexdigit) { case 0 : return 0; break; case 1 : return 1; break;... case 9 : return 9; break; case A : return 10; break;... case F : return 15; break; } Page 46

47 스타일 2: 간결하고직접적으로표현하라. (1/2) 최소값을구하는예제 (x = y, or y = x 인경우, 바른값을찾지못한다. if(x < y) { if(x < z) small = x; if(x > z) small = z; } if(x > y) { if(y < z) small = y; if(y > z) small = z; } small = x; if(y < small) small = y; if(z < small) small = z; Page 47

48 스타일 2: 간결하고직접적으로표현하라. (2/2) If-then-else 에서는짧은선택구조를먼저기술한다. if(in_user_code) { in_user_code = FALSE; r2 = r; reset_pharlap(); p send_sig_segv(); } else revert(); if(!in_user_code) revert(); else { in_user_code = FALSE; r2 = r; reset_pharlap(); send_sig_segv(); sig segv(); } Page 48

49 스타일 3: 임시변수사용을피하라. 임시변수 (temporary variable) 의사용은가급적피한다. t1 = x1 (x2 + x2); t2 = 7 x2; Y = t1 + t1 + t2 + t2; y = 2*(x1 2*x2) + 2*(7 x2); y 2 x 2x 2 7 x ; Page 49

50 스타일 4: 혼돈을초래치않는변수명을사용하라. 혼돈하기쉬운글자들의예 1 과 l a1 al 0 과 O term0 termo 5 와 S TEXT5 TEXTS I 와 l Iist list m 과 n 의연속사용 mnnm mnmn u 와 v 의연속사용 vuvu uuvu 변수수정의예제 positionx, positiony xpos, ypos n, nn, nnn n, nsq, ncube nunit, nsqur, ncube Page 50

51 스타일 5: 일관성있는변수명을사용하라. Hungarian notation: 변수이름의처음몇자는변수의타입이나범위를나타내도록한다. 예 ) ptr_to_date_key ( 포인터 ) 일관성있는이름을사용한다. char buffer[500], mssge[80]; void read_instance(void), id) SaveCurrent(void); void get_line(void), write_line(void); int index1, index2; char buffer[500], message[80]; void read_instance(void), save_current(void); void read_line(void), write_line(void) int i, j; Page 51

52 스타일 6: 문장그룹이명확하도록 { } 와들여쓰기를사용하라. for(i=0;i < N;i++) { k = a[i]; if(k>100) a[i] = i*3; else if(j ==N)... } for(i=0;i < N;i++) { k = a[i]; if(k > 100) a[i] = i * 3; else if(j == N)... } Page 52

53 스타일 7: 한가지선택이면 if 만, 두가지이면 if-else if(swctl == 1 ) goto conti; else { dvictl += 10; swctl = 1 ; } conti; if(swctl!= 1 ) { dvictl += 10; swctl = 1 ; } Page 53

54 스타일 8: if 다음의 if 구조, null else는피한다. if 다음의 if 나 null else 는가독성을크게떨어뜨리며, 오해의소지가있다. if(qty > 10) // A if(qty > 200) // B if(qty >= 500) bill_a += 1.00; // C else bill_a += 0.50; // C else; // B else bill_a = 0.0; // A if(qty >= 500.0) bill_a += 1.00; if(qty < 500 && qty > 200) bill_a += 0.5; if(qty <= 10) bill_ a = 0.0; Page 54

55 스타일 9: 문장의반복은최소화한다. 반복되는문장은가급적반복문을사용하여제거한다. tkn = get_token(); token(); if(tkn == T_END) return; If(tkn == T_START) start_proc(); while(ntokens < T_LIMIT) { } process_token(); add_token(); tkn = get_token(); if(tkn == T_END) return; if(tkn == T_START) start_proc(); for(;;) { tkn = get_token(); if(tkn == T_END) return; if(tkn == T_START) start_proc(); if(ntokens >= T_LIMIT) break; process_token(); add_token(); } Page 55

56 스타일 10: 모듈화하라. 서브루틴을사용하라. 같은역할을하는문장들인경우에는 Grouping 하여모듈화한다. 반복되는기능에대해서는함수로분리한다. Page 56

57 그밖의원칙들 (1/4) 수식표현 명료하게작성하라 - 효율성을위하여명료함을희생하지않도록한다. 번거로운일은기계가하도록만들라. 괄호를사용하여모호성을제거하라. 언어의좋은기능을이용하고불안한기능의사용은피하라. 제어구조 위에서아래로읽을수있도록프로그래밍하라. 중복구조를최소화하라. 맨처음작성한것으로끝나지말고, 계속해서리뷰하라. Page 57

58 그밖의원칙들 (2/4) 프로그램 각모듈은분명한한가지역할만수행하도록하라. 잘못작성된코드는짜맞추려하지하지말고다시작성하라. 차리리버리고, 처음부터다시 큰프로그램은작은단위로나누어따로작성하고따로검사하라. 입출력 자료가한계값을벗어나지않는지항상검사하라. 입력형식은사용자가쉽게준비할수있게하고 출력형식은그모양이스스로드러나게구성하라. 입출력은따로모아서독립된서브루틴으로만들라. Page 58

59 그밖의원칙들 (3/4) 기타 발견된오류만고치지말고, 전체적으로보고수정가능한모든오류 를고친다. 하나차이에의한오류 (off-by-one) one) 를주의하라. 프로그램을방어적으로작성하라. 빠른프로그램보다먼저바른프로그램을작성하라. 빠른프로그램보다먼저명료한프로그램을작성하라. 간결함을유지하면서빠른프로그램을만들라. Page 59

60 그밖의원칙들 (4/4) 기타 ( 계속 ) 주석과코드가일치하는지확인하라. 주석을달때코드를되풀이해서는않도록한다. 잘못된코드에는주석을달지않는다. -- 다시작성한다. 과다하게주석을달지않는다. 덕지덕지고쳐서사용하려고애쓰지않는다. -- 과감히버리고새로작성한다. Page 60

61 프로그램에관한몇가지격언 (1/2) The sooner you start to code, the longer the program will take. ( 코딩을일찍시작하면할수록, 프로그래밍에시간이많이걸린다.) If you can't write it down in English, you can't code it. ( 글로써표현할수없다면, 코딩도할수없다.) If the code and the comments disagree, then both are probably wrong. ( 코드와주석이맞지않으면, 둘다잘못되었을가능성이높다.) If you have too many special cases, you are doing it wrong. ( 너무많은예외케이스가있다면, 뭔가잘못하고있는것이다.) Get your data structures correct first, and the rest of the program will write itself. ( 먼저자료구조를잘잡는다면, 프로그램은저절로써지게될것이다.) Page 61

62 프로그램에관한몇가지격언 (2/2) Don't debug standing up. It cuts your patience in half. ( 서서디버깅하지말아라. 참을성을가지란이야기 ) Each new user of a new system uncovers a new class bugs. ( 새로운시스템에대한새로운사용자는항시새로운종류의버그를발견한다.) (Naïve user는유익한테스트결과를가져올것이고, 새롭게 porting하면항시문제점이생길것임을명심하란이야기 ) Whenever possible, steal code. ( 가능하다면코드를훔쳐라. 즉, 코드를재사용하라.) Always do the hard part first. If the hard part is impossible, why waste time on the easy part? ( 어려운부분을먼저하라. 어려운부분이불가능하다면, 쉬운부분을해서뭣하나?) Page 62

63 We are now 프로그래밍언어 4 세대프로그래밍언어 비주얼프로그래밍언어 코딩스타일 원시코드의문서화 Page 63

64 원시코드의문서화 소스코드의문서화는즉, 주석쓰는것을의미한다. 주석의종류 프로그램헤더 : 전체프로그램의기능을설명하는주석 모듈헤더 ( 함수헤더 ): 해당모듈의기능을설명하는주석 각줄에삽입된주석 : 해당줄을설명하는주석 Page 64

65 프로그램헤더주석 프로그램의제목 제작자 작성일과버전번호 구조와설계 공유변수 사용되는파일 외부참조파일 Page 65

66 프로그램헤더주석의예제 (1/2) /***************************************************************************** **** - EXAM SCORE SUMMARY PROGRAM - WRITTEN BY : HONG, KIL DONG - RELEASE DATE : April 1, PURPOSE : This program produces a variety of statistics on a - group of student's exam scores. For each score that is entered, - the score and a row of stars representing the magnitute of the - score is printed out. In addition, the number of scores, the - average score, the highest score and the lowest score are - printed out. - - DESIGN : The program is composed of the following modules: - Main module - The Main, controlling module - Validate Input - Gets and validates the user's input - Process Valid Score - Prints score and row of stars for one score - Update Statistics - Updates global statistics - Print Summary Report - Prints summary statistics Page 66

67 프로그램헤더주석의예제 (2/2) - MAJOR VARIABLES : - SumOfScore (subrange of integer, ) - - The sum of all score entered - NumOfStudents (subrange of integer, ) - - The total number of score entered - LargestScore (subrange of integer, 0..20) - - The largest score in the set of scores - SmallestScore (subrange of integer, 0..20) - - The smallest score - FILES USED: - Input - contains integer scores, one to a line - Output - contains a one-line histogram for each score - read, followed on the next line by the number of - students and their average score, then on the next line - by the top score, and concluding on the next line with - the lowest score. - EXTERNAL REFERENCES: None ***********************************************************************/ Page 67

Software Engineering

Software Engineering 8. 코딩스타일 1 2008 Software Engineering 옷을입는것에도스타일이있다. 빨간색을좋아하는사람 빨갱이인가? 진바지를좋아하는사람 청바지가잘어울리는사람 코딩스타일? 프로그램에도스타일이있다? 정수형은사용하지않는사람 모름지기수란모두실수여 ~ 다섯줄만넘으면함수로분리하는사람 모듈화안배웠어 ~ 나눠! 나눠! 나눠! 포인터를엄청많이사용하는사람 난포인터의황제다

More information

소프트웨어공학

소프트웨어공학 2 3 Weinberg LOC 1 4 2 5 5 1 5 2-3 3 2 3 4 2 5 1 2-3 4 3 4 1 1: 5: 4 - - Documentation vs. 5 1 ( ), 2 FORTRAN, COBOL, ALGOL60, BASIC 3 : Pascal, Modula-2, C, Ada, C++, Java : CHILL, RPG, Lisp, Prolog,

More information

Microsoft PowerPoint 구현.ppt

Microsoft PowerPoint 구현.ppt 소프트웨어공학 () 2005 년가을학기 문양세컴퓨터과학과강원대학교자연과학대학 In this chapter (1/2) 구현, 즉코딩 (coding) 은 설계된내용을원시코드 (source code) 로변환시키는작업 설계사양 (design spec.) 코딩 원시코드 (source code) 컴파일디버깅 목적코드 (object code) 코딩의원칙 설계내용을철저히반영시킨다.

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

Microsoft PowerPoint - PL_03-04.pptx

Microsoft PowerPoint - PL_03-04.pptx Copyright, 2011 H. Y. Kwak, Jeju National University. Kwak, Ho-Young http://cybertec.cheju.ac.kr Contents 1 프로그래밍 언어 소개 2 언어의 변천 3 프로그래밍 언어 설계 4 프로그래밍 언어의 구문과 구현 기법 5 6 7 컴파일러 개요 변수, 바인딩, 식 및 제어문 자료형 8

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

More information

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

More information

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어 개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,

More information

제4장 기본 의미구조 (Basic Semantics)

제4장  기본 의미구조 (Basic Semantics) 제 4 장블록및유효범위 Reading Chap. 5 숙대창병모 1 4.1 변수선언및유효범위 숙대창병모 2 변수선언과유효범위 변수선언 Declaration before Use! 대부분의언어에서변수는사용전에먼저선언해야한다. 변수의유효범위 (scope) 선언된변수가유효한 ( 사용될수있는 ) 프로그램내의범위 / 영역 변수이름뿐아니라함수등다른이름도생각해야한다. 정적유효범위

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

1

1 04단원 컴퓨터 소프트웨어 1. 프로그래밍 언어 2. 시스템 소프트웨어 1/10 1. 프로그래밍 언어 1) 프로그래밍 언어 구분 각종 프로그래밍 언어에 대해 알아보는 시간을 갖도록 하겠습니다. 우리가 흔히 접하는 소프트웨어 들은 프로그래밍 언어로 만들어지는데, 프로그래밍 언어는 크게 2가지로 나눌 수 있습니다. 1 저급어 : 0과 1로 구성되어 있어, 컴퓨터가

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

歯처리.PDF

歯처리.PDF E06 (Exception) 1 (Report) : { $I- } { I/O } Assign(InFile, InputName); Reset(InFile); { $I+ } { I/O } if IOResult 0 then { }; (Exception) 2 2 (Settling State) Post OnValidate BeforePost Post Settling

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

2002년 2학기 자료구조

2002년 2학기 자료구조 자료구조 (Data Structures) Chapter 1 Basic Concepts Overview : Data (1) Data vs Information (2) Data Linear list( 선형리스트 ) - Sequential list : - Linked list : Nonlinear list( 비선형리스트 ) - Tree : - Graph : (3)

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

Microsoft PowerPoint 세션.ppt

Microsoft PowerPoint 세션.ppt 웹프로그래밍 () 2006 년봄학기 문양세강원대학교컴퓨터과학과 세션변수 (Session Variable) (1/2) 쇼핑몰장바구니 장바구니에서는사용자가페이지를이동하더라도장바구니의구매물품리스트의내용을유지하고있어야함 PHP 에서사용하는일반적인변수는스크립트의수행이끝나면모두없어지기때문에페이지이동시변수의값을유지할수없음 이러한문제점을해결하기위해서 PHP 에서는세션 (session)

More information

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

untitled

untitled (shared) (integrated) (stored) (operational) (data) : (DBMS) :, (database) :DBMS File & Database - : - : ( : ) - : - : - :, - DB - - -DBMScatalog meta-data -DBMS -DBMS - -DBMS concurrency control E-R,

More information

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770>

<342EBAAFBCF620B9D720B9D9C0CEB5F92E687770> 예약어(reserved word) : 프로그래밍 언어에서 특별한 용도로 사용하고자 미리 지정한 단어 - 프로그램의 구성요소를 구별하게 해주는 역할 => 라벨, 서브 프로그램 이름, 변수에 연관되어 다른 변수나 서브 프로그램 등과 구별 - 식별자의 최대길이는 언어마다 각각 다르며 허용길이를 넘어서면 나머지 문자열은 무시됨 - FORTRAN, COBOL, HTML

More information

강의10

강의10 Computer Programming gdb and awk 12 th Lecture 김현철컴퓨터공학부서울대학교 순서 C Compiler and Linker 보충 Static vs Shared Libraries ( 계속 ) gdb awk Q&A Shared vs Static Libraries ( 계속 ) Advantage of Using Libraries Reduced

More information

USER GUIDE

USER GUIDE Solution Package Volume II DATABASE MIGRATION 2010. 1. 9. U.Tu System 1 U.Tu System SeeMAGMA SYSTEM 차 례 1. INPUT & OUTPUT DATABASE LAYOUT...2 2. IPO 중 VB DATA DEFINE 자동작성...4 3. DATABASE UNLOAD...6 4.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 08 함수 01 함수의개요 02 함수사용하기 03 함수와배열 04 재귀함수 함수의필요성을인식한다. 함수를정의, 선언, 호출하는방법을알아본다. 배열을함수의인자로전달하는방법과사용시장점을알아본다. 재귀호출로해결할수있는문제의특징과해결방법을알아본다. 1.1 함수의정의와기능 함수 (function) 특별한기능을수행하는것 여러가지함수의예 Page 4 1.2

More information

untitled

untitled while do-while for break continue while( ) ; #include 0 i int main(void) int meter; int i = 0; while(i < 3) meter = i * 1609; printf("%d %d \n", i, meter); i++; return 0; i i< 3 () 0 (1)

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information

03장.스택.key

03장.스택.key ---------------- DATA STRUCTURES USING C ---------------- 03CHAPTER 1 ? (stack): (LIFO:Last-In First-Out) 2 : top : ( index -1 ),,, 3 : ( ) ( ) -> ->. ->.... 4 Stack ADT : (LIFO) : init():. is_empty():

More information

컴파일러

컴파일러 YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",

More information

02 C h a p t e r Java

02 C h a p t e r Java 02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER

More information

vi 사용법

vi 사용법 유닉스프로그래밍및실습 gdb 사용법 fprintf 이용 단순디버깅 확인하고자하는코드부분에 fprintf(stderr, ) 를이용하여그지점까지도달했는지여부와관심있는변수의값을확인 여러유형의단순한문제를확인할수있음 그러나자세히살펴보기위해서는디버깅툴필요 int main(void) { int count; long large_no; double real_no; init_vars();

More information

07 자바의 다양한 클래스.key

07 자바의 다양한 클래스.key [ 07 ] . java.lang Object, Math, String, StringBuffer Byte, Short, Integer, Long, Float, Double, Boolean, Character. java.util Random, StringTokenizer Calendar, GregorianCalendar, Date. Collection, List,

More information

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE ALTIBASE HDB 6.3.1.10.1 Patch Notes 목차 BUG-45710 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG-45730 ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG-45760 ROLLUP/CUBE 절을포함하는질의는 SUBQUERY REMOVAL 변환을수행하지않도록수정합니다....

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

Microsoft PowerPoint - a10.ppt [호환 모드]

Microsoft PowerPoint - a10.ppt [호환 모드] Structure Chapter 10: Structures t and Macros Structure 관련된변수들의그룹으로이루어진자료구조 template, pattern field structure를구성하는변수 (cf) C언어의 struct 프로그램의 structure 접근 entire structure 또는 individual fields Structure는

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Reasons for Poor Performance Programs 60% Design 20% System 2.5% Database 17.5% Source: ORACLE Performance Tuning 1 SMS TOOL DBA Monitoring TOOL Administration TOOL Performance Insight Backup SQL TUNING

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

02장.배열과 클래스

02장.배열과 클래스 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4> 쉽게풀어쓴 C 언어 Express 제 2 장프로그램개발과정 통합개발환경 통합개발환경 (IDE: integrated development environment) 에디터 + 컴파일러 + 디버거 Visual C++: 이클립스 (eclipse): Dev-C++: 마이크로소프트제작 오픈소스프로젝트 오픈소스프로젝트 통합개발환경의종류 비주얼 C++(Visual C++)

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 06 반복문 01 반복문의필요성 02 for문 03 while문 04 do~while문 05 기타제어문 반복문의의미와필요성을이해한다. 대표적인반복문인 for 문, while 문, do~while 문의작성법을 알아본다. 1.1 반복문의필요성 반복문 동일한내용을반복하거나일정한규칙으로반복하는일을수행할때사용 프로그램을좀더간결하고실제적으로작성할수있음.

More information

C프로-3장c03逞풚

C프로-3장c03逞풚 C h a p t e r 03 C++ 3 1 9 4 3 break continue 2 110 if if else if else switch 1 if if if 3 1 1 if 2 2 3 if if 1 2 111 01 #include 02 using namespace std; 03 void main( ) 04 { 05 int x; 06 07

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using

More information

untitled

untitled Step Motor Device Driver Embedded System Lab. II Step Motor Step Motor Step Motor source Embedded System Lab. II 2 open loop, : : Pulse, 1 Pulse,, -, 1 +5%, step Step Motor (2),, Embedded System Lab. II

More information

09-interface.key

09-interface.key 9 Database insert(record r): boolean find(key k): Record 1 Record getkey(): Key * Record Key Database.? Key equals(key y): boolean Database insert(record r): boolean find(key k): Record * Database OK 1

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

Chapter 4. LISTS

Chapter 4. LISTS 6. 동치관계 (Equivalence Relations) 동치관계 reflexive, symmetric, transitive 성질을만족 "equal to"(=) 관계는동치관계임. x = x x = y 이면 y = x x = y 이고 y = z 이면 x = z 동치관계를이용하여집합 S 를 동치클래스 로분할 동일한클래스내의원소 x, y 에대해서는 x y 관계성립

More information

Microsoft Word - FunctionCall

Microsoft Word - FunctionCall Function all Mechanism /* Simple Program */ #define get_int() IN KEYOARD #define put_int(val) LD A val \ OUT MONITOR int add_two(int a, int b) { int tmp; tmp = a+b; return tmp; } local auto variable stack

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

chap01_time_complexity.key

chap01_time_complexity.key 1 : (resource),,, 2 (time complexity),,, (worst-case analysis) (average-case analysis) 3 (Asymptotic) n growth rate Θ-, Ο- ( ) 4 : n data, n/2. int sample( int data[], int n ) { int k = n/2 ; return data[k]

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

C 프로그램의 기본

C 프로그램의 기본 C 프로그램의기본 목차 C 프로그램의구성요소 주석 main 함수 출력 C 언어의입력과출력 변수 printf 함수 scanf 함수 2 예제 2-1 : 첫번째 C 프로그램 3 2.1.1 주석 주석의용도 프로그램에대한설명 프로그램전체에대한대략적인정보를제공 프로그램수행에영향을미치지않는요소 4 2.1.1 주석 주석사용방법 /* 과 */ 을이용한여러줄주석 // 을이용한한줄주석

More information

Microsoft PowerPoint - 27.pptx

Microsoft PowerPoint - 27.pptx 이산수학 () n-항관계 (n-ary Relations) 2011년봄학기 강원대학교컴퓨터과학전공문양세 n-ary Relations (n-항관계 ) An n-ary relation R on sets A 1,,A n, written R:A 1,,A n, is a subset R A 1 A n. (A 1,,A n 에대한 n- 항관계 R 은 A 1 A n 의부분집합이다.)

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Verilog: Finite State Machines CSED311 Lab03 Joonsung Kim, joonsung90@postech.ac.kr Finite State Machines Digital system design 시간에배운것과같습니다. Moore / Mealy machines Verilog 를이용해서어떻게구현할까? 2 Finite State

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for 2003 Development of the Software Generation Method using Model Driven Software Engineering Tool,,,,, Hoon-Seon Chang, Jae-Cheon Jung, Jae-Hack Kim Hee-Hwan Han, Do-Yeon Kim, Young-Woo Chang Wang Sik, Moon

More information

Orcad Capture 9.x

Orcad Capture 9.x OrCAD Capture Workbook (Ver 10.xx) 0 Capture 1 2 3 Capture for window 4.opj ( OrCAD Project file) Design file Programe link file..dsn (OrCAD Design file) Design file..olb (OrCAD Library file) file..upd

More information

Microsoft PowerPoint Predicates and Quantifiers.ppt

Microsoft PowerPoint Predicates and Quantifiers.ppt 이산수학 () 1.3 술어와한정기호 (Predicates and Quantifiers) 2006 년봄학기 문양세강원대학교컴퓨터과학과 술어 (Predicate), 명제함수 (Propositional Function) x is greater than 3. 변수 (variable) = x 술어 (predicate) = P 명제함수 (propositional function)

More information

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일 Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 Introduce Me!!! Job Jeju National University Student Ubuntu Korean Jeju Community Owner E-Mail: ned3y2k@hanmail.net Blog: http://ned3y2k.wo.tc Facebook: http://www.facebook.com/gyeongdae

More information

윈도우즈프로그래밍(1)

윈도우즈프로그래밍(1) 제어문 (2) For~Next 문 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/17 Contents 학습목표 프로그램에서주어진특정문장을부분을일정횟수만큼반복해서실행하는문장으로 For~Next 문등의구조를이해하고활용할수있다. 내용 For~Next 문 다중 For 문 3/17 제어문 - FOR 문 반복문 : 프로그램에서주어진특정문장들을일정한횟수만큼반복해서실행하는문장

More information

01-OOPConcepts(2).PDF

01-OOPConcepts(2).PDF Object-Oriented Programming Concepts Tel: 02-824-5768 E-mail: hhcho@selabsoongsilackr? OOP (Object) (Encapsulation) (Message) (Class) (Inheritance) (Polymorphism) (Abstract Class) (Interface) 2 1 + = (Dependency)

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을 (structures) 구조체정의 구조체선언및초기화 구조체배열 구조체포인터 구조체배열과포인터 구조체와함수 중첩된구조체 구조체동적할당 공용체 (union) 1 구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined

More information

윤성우의 열혈 TCP/IP 소켓 프로그래밍

윤성우의 열혈 TCP/IP 소켓 프로그래밍 C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct

More information

Chap 6: Graphs

Chap 6: Graphs 5. 작업네트워크 (Activity Networks) 작업 (Activity) 부분프로젝트 (divide and conquer) 각각의작업들이완료되어야전체프로젝트가성공적으로완료 두가지종류의네트워크 Activity on Vertex (AOV) Networks Activity on Edge (AOE) Networks 6 장. 그래프 (Page 1) 5.1 AOV

More information

Microsoft PowerPoint - e pptx

Microsoft PowerPoint - e pptx Import/Export Data Using VBA Objectives Referencing Excel Cells in VBA Importing Data from Excel to VBA Using VBA to Modify Contents of Cells 새서브프로시저작성하기 프로시저실행하고결과확인하기 VBA 코드이해하기 Referencing Excel Cells

More information

untitled

untitled int i = 10; char c = 69; float f = 12.3; int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015

More information

PowerPoint Presentation

PowerPoint Presentation #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을작성하면서 C 프로그램의구성요소에대하여알아본다.

More information

PowerPoint Presentation

PowerPoint Presentation FORENSICINSIGHT SEMINAR SQLite Recovery zurum herosdfrc@google.co.kr Contents 1. SQLite! 2. SQLite 구조 3. 레코드의삭제 4. 삭제된영역추적 5. 레코드복원기법 forensicinsight.org Page 2 / 22 SQLite! - What is.. - and why? forensicinsight.org

More information

본 강의에 들어가기 전

본 강의에 들어가기 전 C 기초특강 종합과제 과제내용 구조체를이용하여교과목이름과코드를파일로부터입력받아관리 구조체를이용하여학생들의이름, 학번과이수한교과목의코드와점수를파일로부터입력 학생개인별총점, 평균계산 교과목별이수학생수, 총점및평균을계산 결과를파일에저장하는프로그램을작성 2 Makefile OBJS = score_main.o score_input.o score_calc.o score_print.o

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf(hihi\n); } warning: conflicting types for functiona 이름 : 학번 : A. True or False: 각각항목마다 True 인지 False 인지적으세요. 1. (Python:) randint 함수를사용하려면, random 모듈을 import 해야한다. 2. (Python:) '' (single quote) 는한글자를표현할때, (double quote) 는문자열을표현할때사용한다. B. 다음에러를수정하는방법을적으세요.

More information

Chapter_06

Chapter_06 프로그래밍 1 1 Chapter 6. Functions and Program Structure April, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 문자의입력방법을이해한다. 중첩된 if문을이해한다. while 반복문의사용법을익힌다. do 반복문의사용법을익힌다.

More information

Chapter 4. LISTS

Chapter 4. LISTS C 언어에서리스트구현 리스트의생성 struct node { int data; struct node *link; ; struct node *ptr = NULL; ptr = (struct node *) malloc(sizeof(struct node)); Self-referential structure NULL: defined in stdio.h(k&r C) or

More information

歯9장.PDF

歯9장.PDF 9 Hello!! C printf() scanf() getchar() putchar() gets() puts() fopen() fclose() fprintf() fscant() fgetc() fputs() fgets() gputs() fread() fwrite() fseek() ftell() I/O 2 (stream) C (text stream) : `/n'

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

KEY 디바이스 드라이버

KEY 디바이스 드라이버 KEY 디바이스드라이버 임베디드시스템소프트웨어 I (http://et.smu.ac.kr et.smu.ac.kr) 차례 GPIO 및 Control Registers KEY 하드웨어구성 KEY Driver 프로그램 key-driver.c 시험응용프로그램 key-app.c KEY 디바이스드라이버 11-2 GPIO(General-Purpose Purpose I/O)

More information

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드] Chapter 03 변수와자료형 2009 한국항공대학교항공우주기계공학부 (http://mercury.kau.ac.kr/sjkwon) 1 변수와자료유형 변수 프로그램에서자료값을임시로기억할수있는저장공간을변수 (variables) 변수 (Variables) 는컴퓨터의메모리인 RAM(Random Access Memory) 에저장 물건을담는박스라고생각한다면박스의크기에따라담을물건이제한됨

More information

SRC PLUS 제어기 MANUAL

SRC PLUS 제어기 MANUAL ,,,, DE FIN E I N T R E A L L O C E N D SU B E N D S U B M O TIO

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT 3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT NOT NULL, FOREIGN KEY (parent_id) REFERENCES Comments(comment_id)

More information