Microsoft PowerPoint - Chapter_01.pptx

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


<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

초보자를 위한 C++

강의개요

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

Microsoft PowerPoint - chap-02.pptx

untitled

PowerPoint 프레젠테이션

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

vi 사용법

Microsoft PowerPoint - chap-02.pptx

<4D F736F F F696E74202D204C BAB8C3E6BCB3B8ED202D20C7C1B7CEB1D7B7A1B9D6C0DBBCBAB0FAC1A42C C F>

Microsoft PowerPoint - comp_prac_081223_2.pptx

OCW_C언어 기초

MAX+plus II Getting Started - 무작정따라하기

C 프로그램의 기본

untitled

DE1-SoC Board

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

BMP 파일 처리

PowerPoint Presentation

PowerPoint 프레젠테이션

1

Microsoft PowerPoint - chap-03.pptx

C++-¿Ïº®Çؼ³10Àå

PowerPoint 프레젠테이션

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

Remote UI Guide

MPLAB C18 C

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

Solaris Express Developer Edition

PowerPoint 프레젠테이션

Microsoft PowerPoint APUE(Intro).ppt

Microsoft PowerPoint - u4.pptx

Microsoft PowerPoint - System Programming Lab Week1.ppt [호환 모드]

LXR 설치 및 사용법.doc

Computer Programming (2008 Fall)

Microsoft PowerPoint - 1C언어소개0.PPT

Microsoft PowerPoint - 00_(C_Programming)_(Korean)_Computer_Systems

Interstage5 SOAP서비스 설정 가이드

슬라이드 1

강의10

OCW_C언어 기초

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

No Slide Title

Microsoft PowerPoint - Lesson2.pptx

gyuha.com/doku/doku.php?id=vim:vim_%EB%AA%85%EB%A0%B9%EC

PowerPoint 프레젠테이션

Chapter_06

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

슬라이드 1

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

3차시.ppt

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap03-변수와데이터형.pptx

PCServerMgmt7

Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)

Microsoft PowerPoint - [2009] 02.pptx

1. 도구개요 CppUnit Testing 소개 CppUnit 는 C++ 용 testing Framework 로 Java 의 JUnit 을 C++ 로구현 C++ 언어에서사용할수있도록개발된 Open Source 프로젝트로, source code 의특정 Module 이의도

목차 1. 개요 USB 드라이버 설치 (FTDI DRIVER) FTDI DRIVER 실행파일 USB 드라이버 확인방법 DEVICE-PROGRAMMER 설치 DEVICE-PROGRAMMER

6주차.key

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

쉽게 풀어쓴 C 프로그래밍

untitled

untitled

ESP1ºÎ-04

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

슬라이드 1

11장 포인터

Microsoft PowerPoint - ch01.ppt

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

Microsoft PowerPoint - chap10-함수의활용.pptx

Adobe Flash 취약점 분석 (CVE )

Microsoft PowerPoint - PL_03-04.pptx

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat

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

1217 WebTrafMon II

기술 이력서 2.0

C. KHU-EE xmega Board 에서는 Button 을 2 개만사용하기때문에 GPIO_PUSH_BUTTON_2 과 GPIO_PUSH_BUTTON_3 define 을 Comment 처리 한다. D. AT45DBX 도사용하지않기때문에 Comment 처리한다. E.

Microsoft PowerPoint - chap4_2013 [호환 모드]

Mango220 Android How to compile and Transfer image to Target

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

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

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

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

JVM 메모리구조

untitled

02 C h a p t e r Java

PowerPoint 프레젠테이션

K7VT2_QIG_v3

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

Microsoft PowerPoint - 1장 C 프로그래밍 시작하기 pptx

untitled

작성자 : 기술지원부 김 삼 수

Transcription:

프로그래밍 1 1 Chapter 1. A Tutorial Introduction March, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj

이장의강의목표 2 컴퓨터구조를이해한다. 하드웨어와소프트웨어를이해한다. 개발환경에대한이해 C 프로그램을컴파일하는방법을이해한다. C 언어의기본요소를이해 printf 함수이해이장의결론

컴퓨터구조 (1/5) 3 Hardware / Software 소프트웨어 하드웨어

컴퓨터구조 (1/5) 4 하드웨어 Secondary storage Main memory Input device Output device CPU

컴퓨터구조 (2/4) 5 하드웨어구성요소 중앙처리장치 (central processing unit) 컴퓨터의두뇌 : 데이터연산, 논리연산 (ALU), 제어 (control Unit) 레지스터 (register) x86, ARM, PPC, Sparc, Alpha, MIPS, SH4, XScale, 메인메모리 (memory) : 휘발성 메모리셀 : 메모리내의개별적인저장공간 바이트 (byte) 와비트 (bit) Address Memory Data 저장장치 (storage device) : 비휘발성 디스크, CD-ROM, 플로피, Flash Memory(NOR, NAND 등 ) 입출력장치 입력장치 (input device) : 키보드, 마우스, Key Pad, Touch Screen 출력장치 (output device) : 모니터, 프린터, LCD 통신장치 모뎀 (modem), 이더넷 (Ethernet), IrDA, CDMA, Bluetooth

컴퓨터구조 (3/4) 6 소프트웨어 사용자 응용프로그램 운영체제 하드웨어

컴퓨터구조 (4/4) 7 소프트웨어구성요소 운영체제 자원관리자 (resource manager) 물리적자원 / 추상적자원응용프로그램 사용자의특정목적을달성하게하는소프트웨어 워드프로세서, 게임소프트웨어 데이터베이스 컴파일러프로그램언어

프로그래밍언어 8 프로그래밍언어 개발자와컴퓨터간에약속구문 (syntax) 과의미 (semantics) 로구성 프로그래밍언어구분 기계어 (machine language): 컴퓨터가바로실행가능 이진 (binary) 코드, CPU의종류에따라다름어셈블리어 (assembly language) 기계어명령어와 1:1 대응 어셈블러 (assembler) 고급언어 (high-level language) 하나의명령문이어셈블리어명령문여러개에해당 컴파일러 (compiler) 또는인터프리터 (interpreter) C, C++, Java, Basic, Pascal, Perl,

Overall of Compilation Compiler 9 Editor C file Other Object & Library Compiler ASM file Linker Executable File Error Msg Assembler Object file Loader Input Data Results Debugger

리눅스환경 (1/4) 10 Standalone (usually with multi-boot) Virtualization Client-Server In our course Client: terminal emulator (telnet client, putty, ) Server: Linux system (PC) IP: 220.149.236.4

리눅스환경 (2/4) 11 Client telnet, ssh, ping, putty, SecureCRT, mlterm,

리눅스환경 (3/4) 12 Putty with ssh IP: 220.149.236.4 (type 이 ssh 인지, port 가 22 인지확인 ) Translation: choose UTF-8

리눅스환경 (4/4) 13 Login and shell ID: sys123456 ( 학번 ) Default passwd: ********* (passwd 명령을사용하여바꿀것 )

Command Overview of UNIX/Linux Commands 14

man Utility 15 man : Displays the System Manual $ man passwd $ man 5 passwd Section Finding manual on 1 User Commands 2 System Calls 3 Subroutines 4 Devices 5 File Formats 6 Games 7 Miscellaneous 8 System Administration 9 Kernel 10 New

기본명령어 (1/4) 16 file related command 파일생성 vi, gcc, mknod, 파일복사 / 이동 cp, mv, ln, 파일삭제 rm 파일이름보기 ls 파일내용보기 more, cat, head, tail, objdump, hexdump 파일속성제어 chmod, chown, chgrp, touch 파일 redirection >

기본명령어 (2/4) 17 디렉터리 (directory) a set of files 계층구조를제공 home directory, root directory, current directory relative path, absolute path directory related command 생성 mkdir 이동 cd 삭제 rmdir 현재위치 pwd

기본명령어 (3/4) 18 vi(visual interface) 파일편집기 UNIX 시스템에서사용하는가장일반적인편집기텍스트기반편집강력한기능제공 3가지기본모드제공 명령모드 입력모드 last-line 모드

기본명령어 (4/4) 19 파일속성제어 파일마다 permission 과 owner 존재

VIM (1/5) 20 실행 $ vi [option] filename vi 수행 명령모드 입력모드 I(i)nsert A(a)ppend O(o)pen R(r)eplace Change Command mode Colon(:) slash(/) escape return Last Line mode last line 모드 Input mode 종료 :wq, :x 문서저장후종료 :q! 문서를저장하지않고종료

커서이동명령 VIM (2/5) 21 h, j, k, l 좌, 하, 상, 우 { 한문단위로이동 ( 현재문장의처음으로 } 한문단아래로이동 ) 현재문장의끝으로 ^ or 0 행의시작으로이동 H 화면맨윗줄로이동 $ 행의끝으로이동 M 화면중간줄로이동 gg 문서의시작으로이동 L 화면맨아랫줄로이동 G 문서의끝으로이동 w 다음단어로이동 :n n 행으로이동 b 이전단어로이동 ng n 행으로이동 CTRL+f 한화면아래로 z enter 현재줄을화면의처음으로 CTRL+d 반화면아래로 Nz enter N 번째줄을화면의처음으로 CTRL+b 한화면위로 z. 커서 line을화면중앙으로 CTRL+u 반화면위로 Nz. N 번째줄을화면중앙으로 CTRL+e 화면한줄아래로 z- 현재줄을화면맨아래로 CTRL+y 화면한줄위로 Nz- N 번째줄을화면맨아래로

VIM (3/5) 22 입력모드전환명령 i 커서위치부터입력 o 커서의다음줄에입력 I 커서행맨앞부터입력 O 커서의이전줄에입력 a 커서위치다음부터입력 s 커서위치한글자지우고입력 A 커서행맨뒤부터입력 S 커서위치한줄지우고입력 r 현재커서위치문자를다른문자로변경 C 현재커서위치에서뒤쪽줄을삭제하고입력 R 현재커서위치부터 replace 실행취소 u : 바로전에수행한 vi 명령모드명령어취소 U : 헌재줄에서수행한모든 vi 명령모드명령어취소줄을변경하면취소불가

복사및삭제 VIM (4/5) 23 x or dl 커서위치한글자삭제 yy, Y 커서위치줄을버퍼로복사 X or dh 커서앞글자삭제 Nyy or NY N 줄을버퍼로복사 nx 커서앞 N개글자삭제 u 되돌리기 dw 커서위치단어삭제 p 버퍼내용을커서아래줄에추가 d$ or D 커서위치부터행끝까지삭제 P 버퍼내용을커서위줄에추가 d0 커서위치앞부터행처음까지삭제 dj 커서가있는행과그다음행삭제 dd 커서가있는행삭제 dk 커서가있는행과그이전행삭제 저장및종료 :w 저장 :q 종료 :w! 강제저장 :q! 강제종료 :w filename 현재파일 filename으로저장 :e 현재파일불러옴 :w >> filename filename에덧붙여서저장 :e filename filename 파일불러옴 :wqorzzor:x 저장후종료 :wq! 강제저장후종료

VIM (5/5) 24 그밖의유용한기능 v : block 지정 ctrl + w n: 가로창분할 :%s/old/new/g : old문자열을 new문자열로치환 :2,6s/old/new/g : 2행과 4행사이의 old문자열을 new문자열로치환 / : 문자열검색 n은다음문자, N인이전문자

소스코드컴파일 25 컴파일러의구분 IDE (Integrated Development Environments): 통합개발환경 Command line Compiler 본강의에서사용할컴파일러 GNU gcc, 그외Microsoft Visual C++ (command line 명령은 cl), Turbo C/C++, Borland C/C++,

Compilation in Linux 26 Overall

C 프로그램구성요소 (1/6) 27 C 프로그램의특징 System Software 개발도중프로그래머에의해만들어짐 High-level과 Low-level 언어의장점포함 (middle-level lang.) Brevity ( 간결성 ) Generality ( 범용성 ) C++, Java의기반알고리즘기술언어. 프로그래머간의대화도구

C 프로그램구성요소 (2/6) 28 기본요소 변수와유형 확장요소 연산자와수식 함수 배열과포인터 구조체 입출력 문장

C 프로그램구성요소 (3/6) 29 comment ( 주석 ) keyword hello.c /* First Example of C */ #include <stdio.h> preprocessor directive header file int main(void) { main 함수 printf("hello world~\n"); return 0; } 함수인자함수의시작과끝라이브러리함수호출문 문장의끝은항상 ; 선행처리지시자 (Preprocessor Directive) 문장은 ; 으로끝나지않는다.

C 프로그램구성요소 (4/6) 30 프로그램 모든 C 프로그램은함수들로구성 ( 최소한 main 함수하나는포함 ) 함수 { } 함수는문장또는연관된문장의집합 (block) 으로구성 함수이름, 반환자료형, 매개변수 ( 인수, 인자 ) 함수이름에는알파벳, 숫자, 특수문자로는 _ 만사용가능, 숫자가첫문자일수는없음 ( 실제이부분은 compiler dependent) caller, callee /* 함수프로토타입 */ ret-type function-name(param-lists) { statement sequence }

C 프로그램구성요소 (5/6) 31 문장 프로그램의수행동작 (operation) 을의미모든문장은 ;( 세미콜론 ) 으로끝남문장은수식과연산자, 그리고 C 키워드로구성문장의종류에는제어문, 반복문, 치환문, 선택문, 선언문등이존재 수식과연산자 변수 수식은변수 ( 또는상수 ) 와연산자로구성연산자에는산술, 논리, 관계, 치환, 비트연산자등이존재 메모리의특정주소를이름으로접근가능하도록함 유형 (type) 을갖는다.

C 프로그램구성요소 (6/6) 32 라이브러리함수 다양한부가기능을제공하는함수집합 입출력 메모리할당 스트링 ( 문자열 ) 조작 수학함수 통신 C 는전처리기사용 선행처리지시자 (preprocessor directive) #include #define 조건컴파일 인라인처리 위두가지의사용이 C 를매우간결하면서매력적인언어로만들었다

프로그램에주석달기 33 주석 : /* */, 일부컴파일러에서는 // 도지원 주석의중요성 여러개발자가각자가맡은부분을프로그램한이후통합하였다. 다음문제가발생했을때이중가장벌금을많이내야할개발자는? 컴파일시에오류를야기하는프로그램개발자 수행중에버그를야기시킨개발자 프로그램에주석을달지않는개발자 ( 프로그램은잘동작함 ) 기한내에완료하지못한개발자 주석인없는프로그램보고서는제출하지않은것과동일!!! 주석에는날짜, 작성자, 프로그램명세 ( 설계서수준 ), 필요할경우각문장별주석기술 Indentation 도반드시지킬것

표준라이브러리와 printf 함수 (1/2) 34 printf 사용예 PrintfOne.c (p. 43) #include <stdio.h> int main(void) { printf("hello Everybody\n"); printf("%d\n", 1234); printf("%d %d\n", 10, 20); return 0; } Results Hello Everybody 1234 10 20 printf( ) 함수 첫번째인자내용을화면에출력 \n : 줄바꿈 (escape sequence) %d : 부호가있는정수출력 ( 서식문자 )

표준라이브러리와 printf 함수 (2/2) 35 printf 사용예 printf 내에서인자는, 로구분 printf( 인자 1, 인자 2); printf("%d\n",1234); printf("1234\n"); printf( 인자 1, 인자 2, 인자 3); printf("%d %d\n", 10, 20); printf("10 20\n"); Results 1234 10 20

요약 36 컴퓨터구조 리눅스정의, 접근방법이해 파일, 프로세스관련명령어이해 컴파일관련시스템프로그램이해 C 언어의기본요소를이해 함수, 헤더파일, 문장구분 표준라이브러리 printf 함수이해 기본사용법 과제 #1. - printf 함수와 %d 서식문자를사용하여구구단 2 단을출력하시오. - 10 개이상리눅스명령어사용하기 (vim 과 gcc 포함 ). - 보고서에는반드시본인 ID 가있어야함 (eg. whoami, date 사용 )

( 부록 ) Windows 프로그램컴파일과정 37 과정 1: 프로그램작성

( 부록 ) Windows 프로그램컴파일과정 38 과정 2: 컴파일 (compile) cl (MS Visual C++), bcc (Borland C++), gcc (Linux), tc (Turbo C)

( 부록 ) Windows 프로그램컴파일과정 39 과정 3: 수행 prompt> cl /help 사용해볼것. C:\Program Files (x86)\microsoft Visual Studio 12.0\VC\bin

( 부록 ) Windows 프로그램컴파일과정 40 What is Visual Studio? An integrated development environment (IDE) from Microsoft Microsoft Windows, as well as web sites, web applications and web services C, C++ and C++/CLI (via Visual C++), VB.NET (via Visual Basic.NET), C# (via Visual C#), and F# <https://www.visualstudio.com/ko-kr/products/visual-studio-community-vs>

( 부록 ) Windows 프로그램컴파일과정 41 IDE (Integrated Development Environment) 사용 <Visual Studio 2013>

( 부록 ) Windows 프로그램컴파일과정 42 IDE 사용 (project 생성 ) New Project

( 부록 ) Windows 프로그램컴파일과정 43 IDE 사용 (project 생성 ) Visual C++ Win32 Win32 Console Application

( 부록 ) Windows 프로그램컴파일과정 44 IDE 사용 (project 생성 ) Select Next

( 부록 ) Windows 프로그램컴파일과정 45 IDE 사용 (project 생성 ) Select Next

( 부록 ) Windows 프로그램컴파일과정 46 IDE 사용 (project 생성 ) Source Files Add New Item

( 부록 ) Windows 프로그램컴파일과정 47 IDE 사용 (project 생성 ) Select C++ File (.cpp) Enter new file name (.c).c or.cpp?

( 부록 ) Windows 프로그램컴파일과정 48 IDE 사용 (project 생성 ) Enter source code /* Description : The First Example */ /* Date : March 1. 2015 */ /* Author : Jung Kyu Park */ #include <stdio.h> int main(void) { printf("hello world~ written in IDE\n"); }

( 부록 ) Windows 프로그램컴파일과정 49 프로젝트컴파일 : F7 ( 파일컴파일 : Ctrl+F7) 수행 : Ctrl+F5 or 명령프롬프트

( 부록 ) Windows 프로그램컴파일과정 50 F7 로컴파일이안될때 Tool Option (Environment Keyboard Visual C++ 6)

( 부록 ) Windows 프로그램컴파일과정 51 IDE 사용 (project 생성 ) Check error

( 부록 ) Windows 프로그램컴파일과정 52 결과보기 : Method 1 system( pause ) 넣기 /* Description : The First Example */ /* Date : March 1. 2015 */ /* Author : Jung Kyu Park */ #include <stdio.h> main() { printf("hello world~ written in IDE\n"); system("pause"); }

( 부록 ) Windows 프로그램컴파일과정 53 결과보기 : Method 2 Project Properties (ALT+F7) Configuration Properties Linker System Subsystem Console (SUBSYSTEM:CONSOLE)

( 부록 ) Windows 프로그램컴파일과정정리 54 시작 step 1: MS Visual C++ 실행프로젝트생성 step 2: [File]-[New] 선택 step 3: project 생성 Visual C++, Win32, Win32 Console Application step 4: Console Application, An empty project step 5: project 생성완료 *.sln 프로젝트파일생성됨파일생성 step 6: [Project]-[Add New Items ] or Right Click on Source Files step 7: C++ File (.cpp) 프로그램작성 step 8: 프로그램작성. [File]-[Save] 컴파일 step 9: [Build]-[Build Solution] (F7) step 10: Output windows 상에서 error, warning 확인수행 step 11: [Debug]-[Start without Debugging] (Ctrl+F5) step 12: 실행결과확인