1 / 45

CHAPTER 01. C 언어 개요

CHAPTER 01. C 언어 개요. 컴퓨터의 구성을 살펴본다 . 프로그램이 무엇인지 살펴본다 . 프로그램 개발과정을 살펴본다 . 프로그래밍 언어가 무엇이며 프로그래밍 언어의 종류를 살펴본다 . 비주얼 C++ 2010 익스프레스를 이용한 프로그램 개발 방법을 배운다 . 프로그램 개발과정에서 발생하는 에러 종류와 디버깅 과정을 살펴본다. 1.0 개요 p.18. ‘커플 메이킹 ’ TV 프로그램 남녀 5 명에 대해 커플이 나오도록 진행할 내용을 순서대로 짜놓은 것. 1.0 개요 p.18.

Download Presentation

CHAPTER 01. C 언어 개요

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CHAPTER 01. C 언어개요 컴퓨터의 구성을 살펴본다. 프로그램이 무엇인지 살펴본다. 프로그램 개발과정을 살펴본다. 프로그래밍 언어가 무엇이며 프로그래밍 언어의 종류를 살펴본다. 비주얼C++ 2010 익스프레스를 이용한 프로그램 개발 방법을 배운다. 프로그램 개발과정에서 발생하는 에러 종류와 디버깅 과정을 살펴본다.

  2. 1.0 개요 p.18 • ‘커플 메이킹’ TV 프로그램 남녀 5명에 대해 커플이 나오도록 진행할 내용을 순서대로 짜놓은 것

  3. 1.0 개요 p.18 • 컴퓨터 프로그램 • 수집한 여러 가지 데이터(data)에 대해정해진 절차대로 특별한 처리를 수행하여의사 결정에 사용할 수 있는 정보(information)를 얻기 위해 컴퓨터에게 내리는 명령을 모아놓은 것

  4. 1.1.1 컴퓨터의 구성 p.19 • 컴퓨터 (computer) • 데이터를 가공하여 정보를 얻기 위해 계산을 하는 기계(machine) • 단순한 기계인 컴퓨터가 강력한 이유 • 계산을 통해서 할 수 있는 일이 상상을 초월함 • 음악 듣기, 동영상 보기, 통신, 게임 등도 컴퓨터의 내부적인 계산을 통해 모두 처리

  5. 1.1.1 컴퓨터의 구성 p.20 • 컴퓨터의 구성 • 하드웨어 하드웨어 물리적(physical) 장치 소프트웨어 하드 웨어에 의해 실행되는 프로그램

  6. 1.1.2 프로그램 p.21 • 소프트웨어 • 컴퓨터 하드웨어에 의해 실행되는 프로그램 • 사용자가 원하는 정보(결과)를 얻을 수 있도록 컴퓨터에게 내리는 명령들을 모아 둔 것 • 운영체제(OS: Operating System) • 사용자 입장 시스템을 보다 편리하게 사용하고 질 좋은 서비스를 받게 함 컴퓨터 입장 하드웨어 장치를 최대한 효율적으로 작동시켜 컴퓨터 처리력을높이게 함 • 부팅 컴퓨터는 운영체제가 먼저 제대로 실행되어야만(부팅되어야만) 사용자가 사용할 수 있는 상태가 됨 • 예 Windows XP, Windows Vista, Linux, iOS(Apple사의 스마트폰iPhone 운영체제), Android(Google사의 Linux 기반 스마트폰 운영체제) 등

  7. 1.1.2 프로그램 p.22 • 응용(application) 프로그램 • 운영체제 외에 사용자의 목적에 맞게 개발되어 배포되는 프로그램 • 워드 프로세서(아래아 한글, MS-워드 등)그래픽 편집 프로그램(포토샵등)프레젠테이션 제작 도구(MS-파워포인트 등)스프레드시트(MS-엑셀등)

  8. 1.1.2 프로그램 p.21 • 프로그램 개발 • 특정 목적에 맞는 응용프로그램이 없을 때는 직접 개발 • 이제부터 자신에게 필요한 프로그램을 C 언어로 직접 개발하는 데 필요한 전반적인 기초 내용을 배워보자.

  9. 1.1.3 프로그램 예와 실행 과정 p.22 • 프로그램 실행 과정 • 프로그램은 주기억장치에 저장 즉 적재(loading)된 후 • CPU에 의해 명령이 하나씩 해석된 후 적절한장치에 의해 실행된다.

  10. 1.1.3 프로그램 예와 실행 과정 p.23 • 질문) 3단계의 명령을 1단계 이전에 둔다면? 밑변과 높이 값도 모른 체 면적을 구할 수 없으므로 올바른 결과를 구할 수 없음 • 주어진 문제의 프로그램을 작성하려면? • 우선 문제를 어떤 순서로 풀어가야 할지 순서를 찾아내야 함 • 이 순서대로 명령문을 작성하면 프로그램이 됨 • 머릿속으로 해결하는 방법이 순차적이지 못한 문제라면? • 순서대로 처리하여 해결할 수 있는 새로운 접근 방법을 찾아내야 함 • 프로그램을 처음 접하는 사람이 어려워하는 부분이 바로 이 과정이며 또 가장 중요한 부분이기도 함

  11. 1.2 프로그래밍 언어와 C 언어 p.24 • 프로그래밍 언어 • 컴퓨터 프로그램을 작성하기 위해 개발된 언어 • 기계어, 어셈블리어, 고급어 • 기계어 • 컴퓨터가 직접 이해할 수 있는 유일한 언어 • 컴퓨터에게 명령을 내릴 때는 기계어를 시용해야 함 • 0과 1의 2진 체계를 사용하므로 사람에게는 매우 어려운 언어

  12. 1.2 프로그래밍 언어와 C 언어 p.24 • 어셈블리어 • ADD, STORE, LOAD처럼 사람이 이해하기 쉬운 기호를 사용하는 언어 • 고급(high-level) 언어 • 사람의 자연어(natural language)에 가깝게 명령을 내릴 수 있어서편리한 언어 • ‘나이가 20살 미만이라면’  ‘if (age < 20)’로 표현 • FORTRAN(최초의 고급 언어), COBOL, BASIC, PASCAL, ADA, JAVA, C, C++, C# 등

  13. 1.2.1 C 언어 p.25 • C 언어 • 1972년 벨 연구소의 데니스리치(Dennis Ritchie)가 DEC사의 PDP-11 미니컴퓨터에서 작동하는 유닉스(UNIX) 운영체제를 개발하기 위해 만든 언어 • 구조화된(structured) 프로그래밍이 가능 • 프로그램의 어느 한 부분을 잘못 만들었거나 내용을 새롭게 수정해야 할 때 해당 부분만 수정하면 되므로 빠르고 효율적이다. • 이식성(portability)이 좋다 • 개발된 프로그램을 조금만 수정해도 다른 종류의 운영체제에서 사용할 수 있다 • 가볍고 효율적 • 이전에 나온 어떤 언어보다 프로그램의 크기가 작고 효율적이며 실행 속도도 빠르다. • 컴퓨터 하드웨어를 세밀하게 제어할 수 있다. • 언어는 특정 기억장소를 직접 지정하여 값을 저장하거나, 입력장치의 값을 가로채는 등 컴퓨터의 하드웨어 자원인 CPU와 주기억장치 등을 직접 제어할 수 있다.

  14. 1.3 프로그램 개발 과정 p.26 • 프로그램 개발 과정

  15. 1.3 프로그램 개발 과정 p.26 개발과정 1. 요구사항 분석 • 개발할 프로그램의 내용과 성격을 파악하고 프로그램 사용자가 요구하는 사항이 무엇인지를 분석하는 단계 • 프로그램 실행 시 어떤 자료를 입력해야 하는지(프로그램의 입력: 데이터) • 프로그램에서 구할 값이 무엇인지(프로그램의 결과: 정보) • 결과 화면을 어떻게 구성할 것인지 등

  16. 1.3 프로그램 개발 과정 p.26 2. 알고리즘 설계 단계 • 알고리즘(algorithm): 주어진 문제를 풀기 위한 방법을 순서대로 표현한 것

  17. 1.3 프로그램 개발 과정 p.26 • 순서도(flow chart)나 의사코드(pseudo code)를 이용하여 나타냄 • 순서도 미리 약속된 도형과 화살표를 이용하여 일의 흐름을 한눈에 볼 수 있도록 나타낸 것 • 의사코드(pseudocode) • 사람의 자연어와 프로그래밍 언어의 중간 수준으로 알고리즘을 표현한 것 • 의사코드를 미리 완성해두면 실제 사용할 프로그래밍 언어로 알고리즘을 쉽게 표현할 수 있음

  18. 1.3 프로그램 개발 과정 p.26 개발과정 • 사각형의 면적을 구하여 출력하는 알고리즘의 순서도와 의사코드

  19. 1.3 프로그램 개발 과정 p.27 개발과정 3. 프로그램 코딩(coding) • 알고리즘을 특정 프로그래밍 언어로 옮기는 작업 • 코딩 과정을 마친 프로그램: 소스 코드(source code), 소스 파일, 소스 프로그램이라고 함

  20. 1.3 프로그램 개발 과정 p.27 개발과정 4. 컴파일하기(compiling) • 고급 언어로 작성한 소스 프로그램을 기계어로 번역하는 작업 • 컴파일러(compiler) 프로그램이 번역을 수행함

  21. 1.3 프로그램 개발 과정 p.28 개발과정 5. 링킹(linking) 분리된 여러 개의 파일을 하나로 합치는 작업 • 여러 소스 파일로 나누어 작업한 경우또는 C 언어에서 미리 제공하는 라이브러리(library)를 이용한 경우 • 여러 소스 프로그램 파일을 하나로 합치고라이브러리와 관련된 프로그램 코드를 실제 오브젝트 프로그램 안에 포함시키는 링킹 과정이 필요

  22. 1.3 프로그램 개발 과정 p.28 개발과정 5. 실행(executing) • 링킹 과정을 마친 *.exe 파일은 로더(loader)에 의해 주기억장치에 적재(loading) 즉 저장된 후 CPU에 의해 실행됨 • 디버깅(debugging) • 버그(bug) 프로그램이 제대로 실행되는 것을 방해하는 에러를 버그(bug)라 함 • 디버깅 • 버그를 찾아서 제거하는 작업 • 프로그래밍 입문 과정에서 어렵고 힘든 과정 중의 하나가 디버깅 과정 숨어있는 버그를 찾기 위해 프로그램 소스 코드를 꼼꼼하게 추적(trace)해야 하므로 인내심과 세심함을 요구

  23. 1.3 프로그램 개발 과정 p.29 • 프로그램의 에러 종류와 예 에러가 발생할 때마다 소스 프로그램을 수정하고 컴파일하고 링크하고 로드하여 실행하는 과정을 반복해야 한다. 쉽게 찾을 수 없으므로 프로그램의 명령문을 실제 실행하는 것처럼 결과 값을 확인하면서 명령문이 실행되는 순서대로 추적해야 한다.

  24. 1.4.1 비주얼C++ 2010 익스프레스 설치 p.30 • 비주얼C++ 2010 익스프레스 • 교육이나 비상업적 목적으로 무료로 설치할 수 있는 C/C++ 프로그램 개발 도구(tool) • 소스 코드 편집기, 컴파일러, 링커, 디버거(디버깅을 도와주는 프로그램) 등을 통합하여 한꺼번에 제공하는 통합 개발 환경(IDE: Integrated Development Environments) • 마이크로소프트 다운로드 사이트에서 다운받을 수 있음

  25. 1.4.1 비주얼C++ 2010 익스프레스 설치 p.30 • www.microsoft.com/visualstudio/en-us/products/2010-editions/express 사이트가 변경되었음

  26. 1.4.1 비주얼C++ 2010 익스프레스 설치 p.30 2. 바탕화면에 다운로드한 파일 ‘vc_web.exe’를 더블 클릭 ① [설치 시작] 창의 [다음] 단추를 클릭  사용 약관 동의 창② [사용 약관] 창의 [동의함]을 선택한 후 ③ [다음] 단추를 클릭

  27. 1.4.1 비주얼C++ 2010 익스프레스설치p.31 3. 설치 옵션 설정하기

  28. 1.4.1 비주얼C++ 2010 익스프레스 설치p.32 4. 비주얼 C++ 2010 익스프레스시작하기 윈도우즈 작업 표시줄 왼쪽의 [시작] 단추  [프로그램]  [Microsoft Visual Studio 2010 Express]  [Microsoft Visual C++ 2010 Express] 선택 비주얼 C++ 2010 익스프레스가 시작됨

  29. 1.4.2 비주얼C++ 2010 익스프레스 사용p.32 • 솔루션(solution) 프로젝트(project) 소스 파일의 관계 • 프로젝트 프로그래머가 작성한 소스 파일 및프로그램 개발 과정에서 생성되는 모든 파일은프로젝트에서 관리됨 프로젝트 단위로 프로그램을 개발 • 솔루션 여러 개의 프로젝트를 개발해야 할 때 프로젝트들을 묶어서 관리하게 해주는 것이 솔루션 • 책상(솔루션)에 • C 언어에 관한 책(소스 파일)이 여러 권 쌓여 있는 것(프로젝트) • 영어 회화에 관한 책(소스 파일)이 여러 권 쌓여 있는 것(프로젝트)과 같은 개념  프로그램을 개발하려면 솔루션 안에 개발할 프로젝트가 포함되어 있어야 하고 프로젝트 안에는 소스 프로그램 파일 및 관련 파일들이 포함되어 있어야 함 솔루션(C실습) 프로젝트1 (표준편차구하기 ) 프로젝트2 (정렬하기 ) 소스파일 (표준편차.cpp) 소스파일 (정렬.cpp)

  30. 프로젝트 만들기 p.32 기존의 프로젝트를 실행하다가 새 프로젝트를 만들 때는 [파일]  [새로 만들기]  [프로젝트] 메뉴를 선택하여 만들 수 있다 • 프로젝트 만들기 • 비주얼C++ 2010 창의 [시작 페이지] 창  [새 프로젝트] 클릭

  31. 프로젝트 만들기p.33 다른 것을 선택하지 않도록 주의한다. 2.

  32. 프로젝트 만들기p.34 3. ① [Win32 응용 프로그램 마법사 시작] 창의 [다음] 단추 클릭② [응용 프로그램 설정] 창에서 [콘솔 응용 프로그램]을 선택③ 추가 옵션을 [빈 프로젝트]로 선택한 후 ④ [마침]을 클릭

  33. 프로젝트에 소스 파일 추가하기 p.34 1. ① [솔루션 탐색기]의 [소스 파일]에서 마우스 오른쪽 버튼을 누르고② [추가]-[새 항목]을 클릭 또는 이 새 항목 추가 단추를 클릭한 후 [새 항목 추가]를 선택해도 된다.

  34. 프로젝트에 소스 파일 추가하기 p.35 2. 추가할 항목의 종류와 이름 지정 추가할 항목으로 [C++ 파일(.cpp)]을 선택한다. (‘C 파일’이란 항목을 제공하지 않으므로 C++ 파일을선택한다.) • 소스 파일명 지정 • 확장자를 생략하고‘hello’만 입력하면 자동으로 확장자가 cpp로 지정되므로 소스 파일의 이름은 ‘hello.cpp’가 된다. • 『주의』확장자가 ‘.cpp’면 C++ 언어에 맞게 컴파일되므로C 언에서만제공하는 기능을 사용하려면 반드시 확장자를 ‘.c’로직접 입력해서 파일명을‘hello.c’로 해야 C언어에 맞게 컴파일된다.

  35. 프로젝트에 소스 파일 추가하기 p.35 3. 프로젝트에 소스 파일이 추가된 후 편집 창에서 소스 프로그램을 입력

  36. 프로젝트에 소스 파일 추가하기p.36 4. 빌드(컴파일 & 링크)하기 ① 소스 프로그램 작성 후 [디버그]-[솔루션 빌드] 메뉴를 선택(단축 키 [F7]) ② [출력] 창에 빌드 결과가 나타남

  37. 프로젝트에 소스 파일 추가하기 p.36 5. 프로그램 실행하기 ① [Ctrl]+[F5]를 눌러 실행 ② 실행이 정상적으로 끝나면 ‘계속하려면 아무 키나 누르십시오…’가 나타나며, 아무 키나 누르면 다시 비주얼C++ 2010 익스프레스 창으로 돌아간다.

  38. 프로젝트에 소스 파일 추가하기 p.37 6. 프로젝트 저장: [파일]  [모두 저장]을 선택

  39. 프로젝트에 소스 파일 추가하기 p.37 7. 솔루션 닫기: [파일]  [솔루션 닫기]를 선택

  40. 프로젝트에 소스 파일 추가하기p.38 팁)[파일]  [최근에 사용한 프로젝트 및 솔루션] 메뉴에는 최근에 작업한 순서로 솔루션 목록이 나타나므로 솔루션 폴더를 찾아가는 번거로움을 덜 수 있다. 8. 솔루션 열기 ① [파일]  [열기]  [프로젝트/솔루션]선택솔루션에 관련된 정보가 저장된 *.sln파일은 프로젝트를 만들 때 [위치]에서 지정한 폴더에 저장되어 있다. ② sample.sln 파일을 연다.

  41. 컴파일 시간 에러(구문 에러) 수정하기p.39 소스 프로그램에서 printf 함수 호출문 끝에 있는 ‘;’을 지우면 다시 빌드를 하지 않아도 확인 가능한 에러가 있다면 즉시 소스 코드에 빨간 밑줄이 나타나며 마우스를 가져가면 에러에 관한 정보가 팁으로 나타난다. 1. 컴파일 에러를 내기 위해 printf 함수 호출문끝의 ‘;’을 모두 지우기

  42. 컴파일 시간 에러(구문 에러) 수정하기 p.39 2. [디버그]-[솔루션 빌드] 메뉴 또는 [F7] 키를 눌러 다시 빌드

  43. 컴파일 시간 에러(구문 에러) 수정하기p.40 • 팁)에러는 가능한 앞에 있는 것부터 수정한다. 컴파일러는 소스 코드를 번역할 때 차례로 번역하다. • 에러 메시지만으로 해당 행의 에러를 찾지 못하는 경우에는 그 이전의 행을 분석해야 한다. 앞의 에러로 인해 컴파일러가 올바른 문장도 잘못 번역하는 경우가 많기 때문에 한 개의 에러를 수정하면 그 뒤의 에러가 자동으로 제거되기도 한다. • 프로그램 작성 초기에는 에러를 한 개 수정한 후 바로 다시 빌드하면 에러를 빨리 제거할 수 있다. 첫 에러(6행의 에러)는 이전 행인 5행의 끝에 ‘;’이 빠져서 발생한 에러. 두 번째 에러(8행) 역시 8행 이전 즉 6행 끝에 ‘;’이 빠져서 발생한 에러. 5행과 6행 뒤에 ;을 추가한 후 빌드하면 에러가 없음을 확인할 수 있다.

  44. 컴파일 시간 에러(구문 에러) 수정하기p.40 • 팁) 에러 수정 후 곧바로 [Ctrl]+[F5] 키를 눌러 실행하기 구문 에러를 수정한 후 빌드한 다음에 실행을 해야 하지만 에러 수정 후 곧바로 [Ctrl]+[F5] 키를 눌러 실행을 요청하는 것이 편리  구문 에러와 링크 에러가 없어야만 실행되므로 [Ctrl]+[F5]는 자동으로 빌드 단계를 처리하기 때문 • [주의] 빌드 단계에서 에러가 있을 때 나타나는 대화 상자 • 에러를 수정하기 위해 [아니오] 단추를 눌러서 [출력] 창의 에러 메시지를 확인하고 에러를 수정하는 작업을 반복한다.

  45. 링크 시간 에러 수정하기p.41 프로그램 안에 main 함수가 반드시 포함되어야 하는데 mein으로 작성되어 main 함수를 찾지 못하여 발생한 링크 에러 링크 에러는 대부분 main 철자를 잘못 적거나, main 함수를 포함하고 있는 두 개의 프로그램을 소스 파일에 같이 추가하여(프로젝트의 소스 파일에는 main 함수가 하나만 있어야 한다) 발생한다. 후자의 경우는 실행하지 않을 프로그램을 프로젝트의 소스 파일에서 제거해야 한다. 링크 에러를 내기 위해 main( )을 mein( )으로 수정 후 [디버그]-[솔루션 빌드](또는 [F7]) 를 선택한 결과

More Related