누구나즐기는 C 언어콘서트 제 1 장프로그래밍소개
이번장에서학습할내용 프로그램의이해 프로그래밍언어 알고리즘 프로그램개발과정 프로그램을작성하기에앞서서중요한개념들을살펴봅니다..
컴퓨터란? Q) 컴퓨터 (computer) 는무엇인가? A) 컴퓨터는기본적으로계산 (compute) 하는기계 Q) 컴퓨터를이용하여데이터를처리하려면반드시데이터가숫자형태이어야한다. 왜? A) 컴퓨터는숫자계산을하기때문에데이터는숫자로표시되어야한다.
컴퓨터의정의 Q) 그렇다면계산만빠르게할수있으면컴퓨터인가? A) 현대적인의미에서의컴퓨터는명령어들의리스트에따라데이터를처리하는기계라고할수있다
컴퓨터의장점 Q) 컴퓨터의가장큰장점은무엇일까? A) 컴퓨터는범용적인기계이다. 프로그램만바꿔주면다양한작업이가능하다.
스마트폰도컴퓨터의일종 피처폰과다르게애플리케이션만변경하면다양한용도로사용가능
컴퓨터의구성요소 Q) 컴퓨터의구성요소를크게 2 가지로분류하면? A) 컴퓨터는기본적으로하드웨어와소프트웨어로구분
하드웨어와소프트웨어의분리 최초의컴퓨터에서는분리되지않았음 1950 년대에폰노이만이제시한아이디어 프로그램을메모리에저장 메모리에서프로그램의문장을꺼내와서하나씩실행
프로그램의역할 Q) 컴퓨터에서프로그램이하는일은무엇인가? A) 프로그램이란우리가하고자하는작업을컴퓨터에게전달하여주는역할을한다.
작업을지시하는방법 Q) 컴퓨터에게적당히작업을시킬수있을까? A) 상식이나지능이없기때문에아주자세하고구체적으로일을지시하여야한다.
프로그램안에들어있는것 컴퓨터에게무엇을어떻게시킬지를기록해놓은문서가프로그램 (program) 이다. 프로그램의각문장은컴퓨터에게작업을지시하는명령 (instruction) 으로되어있다.
이번장에서학습할내용 프로그램의이해 프로그래밍언어 알고리즘 프로그램개발과정 프로그램을작성하기에앞서서중요한개념들을살펴봅니다..
컴퓨터가이해하는언어 컴퓨터는인간의언어를이해할수없다. 컴퓨터는이진수로된기계어만을이해한다.
프로그래밍언어의역할
프로그래밍언어의분류 기계어 (machine language) 어셈블리어 (assembly language) 고급언어 (high-level language) 기계어 어셈블리어고급언어 컴퓨터 인간
컴퓨터에이진수가사용되는이유 이진수는전자회로로구현하기가쉽다. 0 0 은열린스위치로, 1 은닫친스위치로표현할수있읍니다. 1
C 1970년대초 AT&T의 Dennis Ritchie 에의하여개발 B언어->C언어 UNIX 운영체제개발에필요해서만들어짐 처음부터전문가용언어로출발 Ken Thomson 과 Dennis Ritchie 가클린턴대통령으로부터 National Medal of Technology 상을받는장면
C 언어의버전 K & R C 1978 년 C Programming Language 책출간 비공식적인명세서역할 ANSI C 1983 년 ANSI(American National Standards Institute) 는 X3J11 이라는위원회에의한표준 C99 1999 년에 ISO 에의한표준 C++ 에서사용되는특징추가 아직마이크로소프트는지원하지않음 ( 이유 : C++ 에집중 )
C 언어의특징 간결하다. 효율적이다. C 언어는하드웨어를직접제어하는하는저수준의프로그래밍도가능하고고수준의프로그래밍도가능하다. C 언어는이식성이뛰어나다. 초보자가배우기가어렵다.
C 언어의특징
C 언어의미래 Q) 앞으로도 C 언어는사용될것인가? C 언어는 C++ 와 JAVA, C#, Objective-C 의공통적인부분이다. 엠베디드시스템에서는 C 언어가많이사용된다. 엠베디드시스템 : 엠베디드시스템이란특수목적의시스템으로컴퓨터가장치안에 MP3 플레이어, 스마트폰등이여기에속한다.
이번장에서학습할내용 프로그램의이해 프로그래밍언어 알고리즘 프로그램개발과정 프로그램을작성하기에앞서서중요한개념들을살펴봅니다..
알고리즘 Q) 오븐의사용법만배우고음식재료만있으면누구나요리가가능한가? A) 요리법을알아야한다. 프로그램이요리와같다면알고리즘은요리법에해당한다. 알고리즘 (algorithm): 문제를해결하는절차 ( 방법 )
빵을만드는알고리즘 1 빈그릇을준비한다. 2 이스트를밀가루, 우유에넣고저어준다. 3 버터, 설탕, 계란을추가로넣고섞는다. 4 따뜻한곳에놓아두어발효시킨다 5 170~180 도의오븐에서굽는다
1 부터 10 까지의합을구하는알고리 즘
알고리즘의기술 순서도 (flow chart): 프로그램에서의논리순서또는작업순서를그림으로표현하는방법
알고리즘의예
중간점검 1. 친구에게전화를거는알고리즘을만들어보라. 2. 세탁기를이용하여서세탁을하는알고리즘을만들어보라.
이번장에서학습할내용 프로그램의이해 프로그래밍언어 알고리즘 프로그램개발과정 프로그램을작성하기에앞서서중요한개념들을살펴봅니다..
프로그램작성과정
프로그램작성단계 편집 (edit) 에디터를이용하여원하는작업의내용을기술하여소스코드작성 소스파일 (source file): 소스코드가들어있는텍스트파일 ( 예 ) test.c 컴파일 (compile) 소스파일-> 기계어로변환 오브젝트파일 (object file) : 기계어로변환된파일 ( 예 ) test.obj 링크 (link) 오브젝트파일들을라이브러리파일들과연결하여하나의실행파일생성 실행파일 (executable file): 실행이가능한파일 ( 예 ) test.exe
Q & A (Q) 소스파일과오브젝트파일, 실행파일중에서반드시보관하여야하는파일은무엇일까? (A) 정답은소스파일이다. 소스파일만있으면컴파일러를수행시켜서오브젝트파일, 실행파일은만들수있다. 하지만소스파일을삭제하면컴파일이불가능하다.
통합개발환경 통합개발환경 (IDE: integrated development environment): 에디터 + 컴파일러 + 디버거
통합개발환경의종류 비주얼 C++(Visual C++) 마이크로소프트사의제품 윈도우기반의거의모든형태의응용프로그램제작가능 우리가사용할버전 : 비주얼스튜디오 2008 http://www.microsoft.com/express/vc/
비주얼 C++ 의실행
솔루션과프로젝트 솔루션 (solution); 하나의애플리케이션을만들기위한프로젝트의그룹. 프로젝트 (project): 하나의실행파일을만들기위하여필요한파일들의그룹 솔루션 프로젝트 프로젝트 프로젝트
소스코드입력 한글자도틀리면안됨!
우리가작성한프로그램 /* 첫번째프로그램 */ #include <stdio.h> int main(void) { printf("hello World!"); return 0; } 다음장에서자세히설명할것입니다. Hello World!
중간점검 1. 새로운프로젝트를생성하고프로젝트에소스파일을추가하는메뉴는무엇인가? 2. 프로젝트에속하는소스파일을컴파일하여실행하는메뉴는무엇인가? 3. C 언어에서는대문자와소문자를구별하는가?
Q & A