개정판 누구나 즐기는 C언어 콘서트 제1장 프로그래밍 소개 출처: pixabay.

Slides:



Advertisements
Similar presentations
컴퓨터프로그래밍 I 2012 년 2 학기 1. 강사, 교재, 평가 시간 강사 : 이주호 연구실 : 공 호 강의 사이트 : 교재 : 천인국 저, 쉽게 풀어쓴 C.
Advertisements

프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
KUMHO SOFTWARE DEVELOPMENT 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램 2.4 자바 응용 프로그램 2.5 자바 애플릿 프로그램 2. 자바 환경과 자바 프로그램.
© 2012 생능출판사 All rights reserved 쉽게 풀어쓴 C 언어 Express C Express 제 2 장 프로그램 개발과정.
천안천일고등학교 Copyright © by Ryu Bin All rights reserved 프로그래밍 실무.
난이도 : 초급 제1장 앱 인벤터 소개 및 준비.
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
프로그래밍실습 한남대학교 컴퓨터공학과 이 재 광 교수.
컴퓨터는 어떻게 동작?.
컴퓨터와 인터넷.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
제2장 프로그램 개발과정 C Express.
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발 과정 C Express.
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발과정 C Express Slide 1 (of 31)
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Ⅰ. 클라이언트 스크립트 Ⅱ. 서버 스크립트 그렇다면 프로그래밍 언어를 수행하는 컴퓨터의 개념적인 구조를 살펴 본다면, 프로그래밍 언어가 무엇인지 이해하는데 도움이 될 것입니다. 현재 컴퓨터 구조의 모태가 되고 있는 폰 노이만 구조는 그림에서 보는 것과 같이, 명령어와.
Power Java 제3장 이클립스 사용하기.
Power Java 제3장 이클립스 사용하기.
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Part 01 서론 안산1대학 디지털정보통신과 임 성 국.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
C언어 콘서트 제1장 프로그래밍 소개.
Power Java 제2장 자바 개발 도구.
C 언어 1 1주차 C언어 시작하기 - 1차시 C 언어 특징 및 프로젝트 생성 Programming Language.
Kasimov C언어 세미나 1st.
이것이 C 언어다. IT응용시스템공학과 김 형 진 교수.
컴퓨터 기본 원리 프로그래밍 언어 C 프로그래밍 환경 C 프로그래밍 작성, 컴파일, 링크 및 실행
Visual Basic Visual Basic 소개
JSP Programming with a Workbook
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 01. 이것이 C언어다.
Java 기초 (Java JDK 설치 및 환경설정)
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Visual Basic .NET 처음 사용하기.
1. C++ 시작하기.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
컴퓨터과학 전공탐색 배상원.
ARM Development Suite v1.2
제 1장. 멀티미디어 시스템 개요.
Computational Thinking
1. C 언어 개요.
프로그래밍 개요
어서와 C언어는 처음이지 제14장.
Chap 6.Assembler 유건우.
2장. JSP 프로그래밍을 위한 환경구성 제2장.
UNIX Unbounded A Beginning Approach
CHAPTER 04. 프로그래밍 언어 인간과 컴퓨터의 대화_진화하는 소통. 진화하는 컴퓨터
자바 5.0 프로그래밍.
LabVIEW WiznTec 주임 박명대 1.
쉽게 풀어쓴 C언어 Express 제1장 프로그래밍의 개념 C Express.
Part 1 개요 Chapter 1 : 컴퓨터와 프로그램 그리고 자바 Chapter 2 : 자바의 환경
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
( Windows Service Application Debugging )
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
알고리즘 알고리즘이란 무엇인가?.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
OpenCV 설정 2.21 만든이 딩딩.
DK-128 개발환경 설정 아이티즌 기술연구소
Chapter 01 자바의 개요 자바는 최초 전자기기의 내장형 소프트웨어를 위해 개발되었으나, 최근 엔터프라이즈 응용에도 폭 넓게 활용됨 자바의 특징과 실행방법, 개발 환경 및 도구에 대해 소개.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
공학도를 위한 C언어 프로그래밍실습1 -통합개발환경 사용법-
TVM ver 최종보고서
발표자 : 이지연 Programming Systems Lab.
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
Installation Guide.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
개정판 누구나 즐기는 C언어 콘서트 제13장 동적 메모리 출처: pixabay.
개정판 누구나 즐기는 C언어 콘서트 제1장 프로그래밍 소개 출처: pixabay.
1장. C Language Synopsis.
Presentation transcript:

개정판 누구나 즐기는 C언어 콘서트 제1장 프로그래밍 소개 출처: pixabay

프로그램을 작성하기에 앞서서 중요한 개념들을 살펴봅니다.. 이번 장에서 학습할 내용 프로그램을 작성하기에 앞서서 중요한 개념들을 살펴봅니다.. 프로그램이란 무엇인지 이해한다. 프로그래밍 언어가 왜 필요한지 이해한다. 알고리즘이 무엇인지 이해한다. 프로그램의 개발 과정을 이해한다. 비주얼 스튜디오를 성공적으로 설치한다.

이번 장에서 만들 프로그램 "Hello World!"는 많은 사람들이 프로그래밍을 학습할 때, 가장 먼저 작성하는 프로그램이다.

컴퓨터 시스템 컴퓨터 시스템 컴퓨터 시스템은 하드웨어와 소프트웨어로 이루어진다. 컴퓨터 하드웨어 구성 © 우균, 창병모 120 GB 하드 디스크 드라이브 64배속 DVD/CD-RW 콤보 드라이브 512MB RAM 키보드 17인치 LCD 모니터 해상도 1280×1024 2.8GHz 인텔 펜티엄 4프로세서 주 메모리 CPU

컴퓨터 하드웨어 구성 요소 중앙처리장치(Central Processing Unit; CPU) 주 메모리(Main Memory) © 우균, 창병모 컴퓨터 하드웨어 구성 요소 중앙처리장치(Central Processing Unit; CPU) 프로그램의 명령어들을 수행하는 컴퓨터의 두뇌 주 메모리(Main Memory) 프로그램과 데이터를 저장하는 휘발성(volatile) 기억장치 그림 1.1에서 512 메가바이트(MB) RAM 보조 메모리 장치(Secondary Memory) 소프트웨어를 비교적 영구적으로 저장하는 비휘발성 기억장치 그림 1.1의 120 기가바이트(GB) 하드 디스크 드라이브 64배속 DVD/CD-RW 콤보(combo) 드라이브 입출력 장치(Input/Output Device) 인간과 컴퓨터의 상호 작용을 도와주는 장치 키보드, 마우스, 모니터

메모리 위치 및 값 저장 1278 1279 각 메모리 셀은 1 바이트를 저장한다. 10011010 1280 1281 1282 © 우균, 창병모 메모리 위치 및 값 저장 1278 1279 1280 1281 1282 1283 1284 1285 1286 큰 값은 연속된 메모리 위치들에 저장된다. 10011010 각 메모리 셀은 1 바이트를 저장한다.

이진 저장 단위 단위 기호 2n 바이트 바이트 수 킬로바이트 KB 210 1,024 메가바이트 MB 220 1,048,576 © 우균, 창병모 이진 저장 단위 단위 기호 2n 바이트 바이트 수 킬로바이트 KB 210 1,024 메가바이트 MB 220 1,048,576 기가바이트 GB 230 1,073,741,824 테라바이트 TB 240 1,099,511,627,776

© 우균, 창병모 중앙처리장치(CPU)

소프트웨어 시스템 소프트웨어(system software) 응용 소프트웨어(application software) © 우균, 창병모 소프트웨어 시스템 소프트웨어(system software) 컴퓨터 시스템 효율적인 운영과 관리를 위한 소프트 웨어 운영 체제, 컴파일러, 디버거 응용 소프트웨어(application software) 시스템 소프트웨어가 아닌 거의 모든 소프트웨어를 지칭하는 포괄적인 용어 문서 작성 S/W, 데이터 관리 S/W, 스프레드시트,그 래픽 S/W, 웹 관련 S/W, 통계 S/W, 게임 S/W 등

프로그래밍 언어 프로그램을 작성하기 위한 언어 기계어 1001 0001 0001 위치의 값을 누산기에 저장하라. 어셈블리어 © 우균, 창병모 프로그래밍 언어 프로그램을 작성하기 위한 언어 사람이 컴퓨터에게 시키고 싶은 내용을 표현하기 위한 표기법 그 발전 단계에 따라 기계어, 어셈블리어, 고급언어로 분류 기계어 이진수 코드로 CPU 종류마다 고유의 기계어      1001   0001   0001 위치의 값을 누산기에 저장하라.      1100   0010   누산기에 0010 위치의 값을 더하라      1010   0011   누산기의 값을 0011위치에 저장하라. 어셈블리어 기계어의 이진수 코드를 기호화 코드(mnemonics)로 대치한 것      LOAD   Y      Y의 값을 누산기에 저장한다.      ADD     Z      누산기에 Z의 값을 더하라      STORE  X      누산기의 값을 X에 저장하라.

프로그래밍 언어 고급 언어 주요 고급 언어 영어와 비슷한 구문으로 표현되며, 읽고 쓰기가 보다 쉽 다 © 우균, 창병모 프로그래밍 언어 고급 언어 영어와 비슷한 구문으로 표현되며, 읽고 쓰기가 보다 쉽 다 프로그래머가 기계의 세부사항을 알 필요가 없게 해준다 X = Y + Z 주요 고급 언어 FORTRAN, COBOL, BASIC, C, C++, Java 등

주요 고급 언어 FORTRAN(FORmula TRANslation) © 우균, 창병모 주요 고급 언어 FORTRAN(FORmula TRANslation) 1957년에 IBM사가 개발한 최초의 고급 언어 과학계산용 언어로 프로그램을 단순화된 영어 단어와 수학 공식으로 표 현 COBOL(COmmon Business Oriented Language) 1960년초에 개발된 사무용 프로그램을 개발을 위한 언어 COBOL로 작성된 많은 급여, 회계 및 기타 업무용 S/W는 지금도 많이 사용됨 BASIC(Beginner's All-purpose Symbolic Instruction Code) 초보자가 배우기 쉬운 프로그래밍 언어로 개발 원래 학생들에게 프로그래밍 언어를 가르치기 위해 개발 컴퓨터 업계에 소개되면서 비중 있는 프로그래밍 언어가 됨.

주요 고급 언어 C 언어 C++ Java AT&T 벨 연구소에서 개발한 시스템 프로그래밍 용 언어 © 우균, 창병모 주요 고급 언어 C 언어 AT&T 벨 연구소에서 개발한 시스템 프로그래밍 용 언어 1970년대 UNIX라는 운영 체제 개발을 위하여 개발된 언어 고급 언어이면서도 저급 언어(하드웨어에 가까운 언어)의 특성을 가지 고 있음. C++ AT&T 벨 연구소에 의해 개발 C 언어의 기능을 확장하여 만든 객체 지향 프로그래밍 언어 Java 1990년대에 선 마이크로시스템 사에서 개발 인터넷 환경을 위해 개발된 객체지향 언어로 이동 코드실행 지원 Java 프로그램은 한번 작성되면 어느 플랫폼에서나 실행 가능

© 우균, 창병모 소프트웨어 개발과정 요구 요구사항 분석 설계 구현 테스트 유지보수

소프트웨어 개발과정 요구사항 분석(requirement analysis) 설계(design) 구현(implementation) © 우균, 창병모 소프트웨어 개발과정 요구사항 분석(requirement analysis) 사용자의 요구사항 즉 소프트웨어가 해야 할 일을 파악하는 단계 사용자는 요구사항을 명세서(specification) 형태로 제시한다. 설계(design) 요구 사항을 구체화하는 단계로 소프트웨어의 구조를 결정 파악된 문제를 해결하는 알고리즘(algorithm)을 흐름도(flow chart)나 의사코드(pseudo code) 형태로 표현 구현(implementation) 설계된 내용을 구체적인 프로그래밍 언어로 작성하는 단계 프로그램을 작성하는 것을 코딩(coding)한다고 한다.

소프트웨어 개발과정 테스트(testing) 유지보수(maintenance) 프로그램의 오류를 찾아내고 이를 수정하는 단계 © 우균, 창병모 소프트웨어 개발과정 테스트(testing) 프로그램의 오류를 찾아내고 이를 수정하는 단계 프로그램 오류는 컴파일시간 오류, 실행시간 오류, 논리 오류 등이 있음 유지보수(maintenance) 개발된 소프트웨어를 실제 상황에서 운영하면서 상황 및 변화된 요구에 따라 소프트웨어를 적절하게 수정하는 단계

프로그램 작성 및 실행 오류 프로그램 개발 과정을 돕기 위한 소프트웨어 도구 프로그램 작성 및 실행 과정 © 우균, 창병모 프로그램 작성 및 실행 프로그램 개발 과정을 돕기 위한 소프트웨어 도구 편집기, 컴파일러, 디버거, 인터프리터 등 이들을 통합하여 제공하는 개발환경을 통합개발환경(IDE) 프로그램 작성 및 실행 과정 오류 프로그램 편집 및 저장 프로그램 컴파일 프로그램 실행 및 결과 평가

오류의 종류 컴파일시간 오류(compile-time error) 논리 오류(logical error) © 우균, 창병모 오류의 종류 컴파일시간 오류(compile-time error) 컴파일 과정에서 생긴 오류 컴파일러는 프로그램의 구문, 데이터, 의미 없는 문장 등을 검사 이런 경우 편집기로 돌아가서 오류를 수정한 후 다시 컴파일 해야 함 논리 오류(logical error) 성공적인 컴파일 후 프로그램을 실행하면서 잘못된 결과를 내는 경우 원하는 결과를 내도록 프로그램 수정 후 다시 컴파일해서 실행해야 함 실행시간 오류(run-time error) 프로그램실행 중에 예상치 못한 이유로 비정상적으로 종료 예: 어떤 값을 0으로 나누려고 하면 프로그램은 실행을 멈추고 종료 좋은 프로그램은 실행시간 오류가 가능한 한 발생하지 않아야 함

© 우균, 창병모 디버깅 디버깅(debugging) 프로그램의 결함을 찾고 수정하는 과정을 디버깅이라고 함

컴파일러 및 인터프리터 인터프리터 컴파일러 입력 출력 인터프리터 목적 프로그램 컴파일러 © 우균, 창병모 컴파일러 및 인터프리터 인터프리터 별개의 컴파일 단계 없 이 한 번에 한 문장씩 번 역(혹은 해석)하여 실행 한다. 컴파일러 고급 언어로 작성된 코 드를 동등한 의미의 저 급 언어로 된 코드로 번 역하는 소프트웨어이다 소스 프로그램 입력 출력 인터프리터 목적 프로그램 소스 프로그램 컴파일러

프로그램이란? 프로그램 안에는 무엇이 들어 있을까?

명령어란? 로봇을 움직이는 프로그램이라면 로봇을 움직이기 위한 명령어들이 프로그램 안에 나열되어 있다.

컴퓨터와 인간 컴퓨터는 강인공지능이 아니라면 프로그래머가 지시한 대로만 행동 한다.

Lab: 로보트 움직이기 비봇(bee-bot)을 A 지점에서 B 지점으로 이동하게 하려면 어떤 명 령어들을 어떤 순서로 입력해야 할까?

Sol: 로보트 움직이기 비봇에 대한 프로그램

컴퓨터가 이해하는 언어 한국어나 영어 등으로 작업을 지시한다면 컴퓨터는 전혀 이해할 수 없을 것이다.

컴퓨터가 이해하는 언어 0과 1로 구성되어 “001101110001010...”과 같은 이진수로 된 기계 어(machine language)이다. 전선을 연결하여 프로그래밍하고 있다.

프로그래밍 언어의 역할

프로그래밍 언어의 분류 기계어(machine language) 어셈블리어(assembly language) 고급 언어(high-level language) 기계어 어셈블리어 고급언어 컴퓨터 인간

C언어 1970년대 초 AT&T의 Dennis Ritchie 에 의하여 개발 B언어->C언어 UNIX 운영 체제 개발에 필요해서 만들어짐 처음부터 전문가용 언어로 출발 Ken Thomson과 Dennis Ritchie가 클린턴 대통령으로부터 National Medal of Technology상을 받는 장면

C언어의 특징 간결하다. 효율적이다. C 언어는 하드웨어를 직접 제어하는 하는 저수준의 프로그래밍도 가능하고 고수준의 프로그래밍도 가능하다.  C언어는 이식성이 뛰어나다. 초보자가 배우기가 어렵다.

C언어의 특징

알고리즘 Q) 오븐의 사용법만 배우고 음식 재료만 있으면 누구나 요리가 가능한가? A) 요리법을 알아야 한다.

알고리즘 문제를 풀기 위하여 컴퓨터가 수행하여야 할 단계적인 절차를 알고 리즘(algorithm)이라고 한다. (예) 전화번호부에서 친구인 “박철수”의 전화번호를 찾는 문제

빵을 만드는 알고리즘 ① 빈 그릇을 준비한다. ② 이스트를 밀가루, 우유에 넣고 저어준다. ③ 버터, 설탕, 계란을 추가로 넣고 섞는다. ④ 따뜻한 곳에 놓아두어 발효시킨다 ⑤ 170~180도의 오븐에서 굽는다

알고리즘의 기술 순서도(flow chart): 프로그램에서의 논리 순서 또는 작업 순서를 그 림으로 표현하는 방법

순서도의 예

중간 점검 프린터의 고장을 해결하는 알고리즘을 만들어보라. 친구에게 전화를 거는 알고리즘을 만들어보라. 세탁기를 이용하여서 세탁을 하는 알고리즘을 만들어보라.

프로그램 작성 과정

프로그램 작성 단계 편집 (edit) 컴파일 (compile) 링크(link) 에디터를 이용하여 원하는 작업의 내용을 기술하여 소스 코드 작성 소스 파일(source file): 소스 코드가 들어 있는 텍스트 파일 (예) test.c 컴파일 (compile) 소스 파일->기계어로 변환 오브젝트 파일(object file) : 기계어로 변환된 파일 (예) test.obj 링크(link) 오브젝트 파일들을 라이브러리 파일들과 연결하여 하나의 실행 파일 생성 실행 파일 (executable file): 실행이 가능한 파일 (예) test.exe

통합 개발 환경 통합 개발 환경(IDE: integrated development environment): 에디터 + 컴파일러 + 디버거

비주얼 스튜디오 마이크로소프트사의 제품 윈도우 기반의 거의 모든 형태의 응용 프로그램 제작 가능 우리가 사용할 버전: 비주얼 스튜디오 2017 http://www.visualstudio.com/ko

비주얼 스튜디오의 설치

비주얼 스튜디오의 설치

비주얼 스튜디오의 설치

비주얼 스튜디오의 실행

솔루션과 프로젝트 솔루션(solution); 하나의 애플리케이션을 만들기 위한 프로젝트의 그룹. 프로젝트(project): 하나의 실행 파일을 만들기 위하여 필요한 파일 들의 그룹 솔루션 프로젝트 프로젝트 프로젝트

[파일]→[새로 만들기]→[프로젝트] 메뉴를 선택하여 새로운 프로젝트를 생성한다.

대화 상자에서 [Visual C++] 템플릿을 선택한다.

Win32 응용 프로그램 마법사

소스 파일 작성

소스 파일 추가

소스 코드 입력

소스 코드 입력 한글자도 틀리면 안됨!

컴파일과 링크

프로그램 실행

오류가 있었다면?

우리가 작성한 프로그램 다음 장에서 자세히 설명할 것입니다. Hello World! /* 첫번째 프로그램*/ #include <stdio.h> int main(void) { printf("Hello World!"); return 0; } 다음 장에서 자세히 설명할 것입니다. Hello World!

중간 점검 1. 새로운 프로젝트를 생성하고 프로젝트에 소스 파일을 추가하는 메 뉴는 무엇인가? 2. 프로젝트에 속하는 소스 파일을 컴파일하여 실행하는 메뉴는 무엇 인가? 3. C 언어에서는 대문자와 소문자를 구별하는가?

Q & A