컴퓨터프로그래밍 I 강원대학교 컴퓨터학부 2012 년 1 학기 담당교수 : 정충교 1
강사진 강사 : 정충교 교수 연구실 : 공 호 조교 : 3 분반 이남세 연구실 : 공 호 4 분반 전찬주 연구실 : 공 호 2
강의 시간 장소 강의 : 610 호 3 분반 : 화요일 오전 9 시 -10 시 50 분 4 분반 : 화요일 오후 1 시 -2 시 50 분 실습 : 608 호 3 분반 : 수요일 오전 9 시 -10 시 50 분 4 분반 : 수요일 오후 1 시 -2 시 50 분 3
교재와 평가 천인국 저, 쉽게 풀어쓴 C 언어 콘서트, 수정판, 생능출판사, 평가 중간 : 25%, 기말 : 30%, 과제 : 25%, 출석 : 10%, 기타 : 10% 1/3 이상 결석하는 경우 F 절대평가를 실시함 ( 학교의 성적 부여 정책에 맞춰 점수 보정 가능 ) A+, A0, B+, B0, C+, C0, D+, D0 4
목표 자기주도적 학습 능력 / 태도 강화 ( 책 읽기, 스스로 문제 해결하기, 보고서 작성하기 ) 컴퓨터공학에 대한 이해 ( 흥미 느끼기, 자신감 가지기 ) 프로그래밍 기초 기능 갖추기 ( 논리적 사고 능력, 도구 사용법 익히기 ) C 언어 기본 사용법 익히기 ( 문법 이해와 사용 숙달 ) 면학 태도 함양 ( 집중과 몰두 경험 ) 5
수업 운영 매주 정해진 부분을 미리 읽어와야 함 매 이론 수업 시간에 읽어 온 내용에 대한 쪽지 시험을 봄 이론 시간 후반부에는 주어진 과제를 공책에 풀어 정리함 실습 시간에는 주어진 과제를 컴퓨터로 해결함 ( 토요일 자정까지 이메일로 제출 ) 중간고사, 기말고사는 각각 이론시험, 실기시험을 봄 교과서와 공책을 반드시 준비해야 함 6
과제 수행 친구, 선배들과의 토론과 조언은 권장 해답집, 친구, 선배의 코드를 복사하여 붙여넣기하는 행위 금지 해답집, 친구, 선배의 코드를 보면서 그대로 따라 입력하는 행위 금지 위 금지된 행위가 적발되면 학과 징계위원회에 의해 중한 징계를 받 게 됨 7
명예선언 숙제를 제출할 때마다 아래 글귀 전체를 손으로 작성하고 사진을 찍어 함께 제출함 명예선언 나는 2012 년 3 월 8 일 제출하는 숙제를 작성하는 과정에서 해답집, 친구, 선배의 코드를 복사하지 않았으며, 이를 보면서 따라 입력하지도 않았습니다. 홍길동 8
컴퓨터공학을 전공하면 ? 안정된 직장 ? 3D? 9
누구일까요 ? 빌 게이츠 ( 마이크로소프트 창업자, 재산 : 64 조원 ) 스티브 잡스 ( 애플 창업자, 재산 : 6 조원 )
누구일까요 ? 세르게이 브린, 레리 페이지 ( 구글 창업자, 재산 : 각 13 조원 )
누구일까요 ? 마크 주커버그 (26 세 ) ( 페이스북 창업자, 재산 : 각 7.5 조원 )
누구일까요 ? 안철수 ( 안철수바이러스연구소, 재산 : 3000 억원 ) 김정주 ( 넥슨 창업, 재산 : 3.4 조원 )
누구일까요 ? 이해진 (NHN 창업자, 재산 : 4200 억원 ) 김택진 ( 엔씨소프트 창업, 재산 : 1.2 조원 )
Page 15 소프트웨어에 인생을 걸어라 ~ 10 년 후 여러 분 사진을 강의 TP 에 사용할 수 있기를 기대합니다. C 언어 – 과목 개요
컴퓨터프로그래밍 제 1 장 프로그래밍 소개 16
이번 장에서 학습할 내용 프로그램의 이해 프로그래밍 언어 알고리즘 프로그램 개발 과정 17
컴퓨터란 ? 근육질 팔다리, 깡통 머리 ? 앙상한 몸매, 박사님 왕머리통 ? 18
프로그램 19
컴퓨터 컴퓨터는 범용적인 기계 프로그램만 바꿔주면 다양한 작업이 가능 20
스마트폰도 컴퓨터의 일종 애플리케이션만 변경하면 다양한 용도로 사용가능 21
컴퓨터의 구성 요소 컴퓨터는 하드웨어와 소프트웨어로 구성 22
작업을 지시하는 방법 Q) 컴퓨터에게 적당히 작업을 시킬 수 있을까 ? A) 상식이나 지능이 없기 때문에 아주 자세하고 구체적으로 일을 지시하여야 한다. 23
프로그램 안에 들어있는 것 컴퓨터에게 무엇을 어떻게 시킬 지를 기록해놓은 문서가 프로그램 (program) 이다. 프로그램 컴퓨터에게 작업을 지시하는 명령 (instruction) 24
이번 장에서 학습할 내용 프로그램의 이해 프로그래밍 언어 알고리즘 프로그램 개발 과정 25
컴퓨터가 이해하는 언어 컴퓨터는 인간의 언어를 이해할 수 없다. 컴퓨터는 이진수로 된 기계어만을 이해한다. 26
프로그래밍 언어의 역할 27
프로그래밍 언어의 분류 어셈블리어 (assembly language) 고급 언어 (high-level language) 기계어어셈블리어고급언어 컴퓨터 인간 28
컴퓨터에 이진수가 사용되는 이유 이진수는 전자회로로 구현하기가 쉽다. 29
C 1970 년대 초 AT&T 의 Dennis Ritchie 에 의하여 개발 B 언어 ->C 언어 UNIX 운영 체제 개발에 필요해서 만들어짐 처음부터 전문가용 언어로 출발 Ken Thomson 과 Dennis Ritchie 가 클린턴 대통령으로부터 National Medal of Technology 상을 받는 장면 30
C 언어의 버전 K & R C 1978 년 “ C Programming Language “ 책 출간 비공식적인 명세서 역할 ANSI C 1983 년 ANSI(American National Standards Institute) 는 X3J11 이라는 위원회에 의한 표준 C99 1999 년에 ISO 에 의한 표준 C++ 에서 사용되는 특징 추가 아직 마이크로소프트는 지원하지 않음 ( 이유 : C++ 에 집중 ) 31
C 언어의 특징 간결하다. 효율적이다. C 언어는 하드웨어를 직접 제어하는 하는 저수준의 프로그래밍도 가 능하고 고수준의 프로그래밍도 가능하다. C 언어는 이식성이 좋다. 초보자가 배우기가 어렵다. 32
C 언어의 특징 33
C 언어의 미래 Q) 앞으로도 C 언어는 사용될 것인가 ? C 언어는 C++ 와 JAVA, C#, Objective-C 의 공통적인 부분이다. 엠베디드 시스템에서는 C 언어가 많이 사용된다. 엠베디드 시스템 : 컴퓨터가 들어 있는 특수 목적 시스템 (MP3 플레이어, 스마트폰 등 ) 34
이번 장에서 학습할 내용 프로그램의 이해 프로그래밍 언어 알고리즘 프로그램 개발 과정 35
알고리즘 Q) 오븐의 사용법만 배우고 음식 재료만 있으면 누구나 요리가 가능한가 ? A) 요리법을 알아야 한다. 알고리즘 (algorithm): 문제를 해결하는 절차 ( 방법 ) 알고리즘에 맞춰 프로그램을 작성함 36
빵을 만드는 알고리즘 ① 빈 그릇을 준비한다. ② 이스트를 밀가루, 우유에 넣고 저어준다. ③ 버터, 설탕, 계란을 추가로 넣고 섞는다. ④ 따뜻한 곳에 놓아두어 발효시킨다 ⑤ 170~180 도의 오븐에서 굽는다 37
1 부터 10 까지의 합을 구하는 알고리즘 38
알고리즘의 기술 ( 표현 ) 순서도 (flow chart): 프로그램에서의 논리 순서 또는 작업 순서를 그 림으로 표현하는 방법 39
알고리즘의 예 40
이번 장에서 학습할 내용 프로그램의 이해 프로그래밍 언어 알고리즘 프로그램 개발 과정 41
프로그램 작성 과정 42
프로그램 예 #include int main(void) { printf(“ 안녕하세요 ?\n”); return 0; } 43
프로그램 작성 단계 편집 (edit) 에디터를 이용하여 원하는 작업의 내용을 기술하여 소스 코드 작성 소스 파일 (source file): 소스 코드가 들어 있는 텍스트 파일 ( 예 ) test.c 컴파일 (compile) 소스 파일 -> 기계어로 변환 오브젝트 파일 (object file) : 기계어로 변환된 파일 ( 예 ) test.obj 링크 (link) 오브젝트 파일들을 라이브러리 파일들과 연결하여 하나의 실행 파일 생 성 실행 파일 (executable file): 실행이 가능한 파일 ( 예 ) test.exe 44
통합 개발 환경 통합 개발 환경 (IDE: integrated development environment): 에디터 + 컴파일러 + 디버거 45
우리가 사용할 통합 개발 환경 비주얼 C++(Visual C++) 마이크로소프트사의 제품 윈도우 기반의 거의 모든 형태의 응용 프로그램 제작 가능 우리가 사용할 버전 : VISUAL C EXPRESS 46
VISUAL C EXPRESS 설치 및 사용 방법 47
48
49
50
X 51 체크하지 않음
52
솔루션과 프로젝트 솔루션 (solution); 하나의 애플리케이션을 만들기 위한 프로젝트의 그룹. 프로젝트 (project): 하나의 실행 파일을 만들기 위하여 필요한 파일 들의 그룹 프로젝트 솔루션 53
비주얼 C++ 의 실행 54
프로젝트 만들기 1 55
프로젝트 만들기 2 56
프로젝트 만들기 3 57
프로젝트 만들기 4 58
소스코드 작성하기 1 오른쪽버튼 클릭 59
소스코드 작성하기 2 60
소스코드 작성하기 3 키보드로 입력 정확히 입력 ( 한 글자도 틀리면 안됨 ) 61
실행하기 62 ctrl-F5
실행 결과 63
솔루션에 프로젝트 추가하기 1 64 오른쪽버튼 클릭
솔루션에 프로젝트 추가하기 2 65
솔루션에 프로젝트 추가하기 3 66
솔루션에 프로젝트 추가하기 4 67
소스 코드 작성하기 1 68 오른쪽버튼 클릭
소스 코드 작성하기 2 69
소스 코드 작성하기 3 70 키보드로 입력하거나 hello.cpp 로부터 복사 - 붙여넣기 하여 편집
시작 프로젝트 변경하기 71 오른쪽버튼 클릭
P2 프로젝트 실행하기 72 ctrl-F5
P2 프로젝트 실행 결과 73
솔루션 닫기 74
솔루션이 저장된 곳 75 Windows 7 의 경우 ( 다른 운영체제의 경우는 위치가 다를 수 있음 )
저장된 솔루션 열기 1 76
저장된 솔루션 열기 2 77 더블 클릭
저장된 솔루션 열기 3 78 클릭
저장된 솔루션 열기 4 79
Q & A 80