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

Similar documents
Microsoft PowerPoint - ch00 - Introduction to Programming Language Lecture

<4D F736F F F696E74202D204C BAB8C3E6BCB3B8ED202D20C7C1B7CEB1D7B7A1B9D6C0DBBCBAB0FAC1A42C C F>

<4D F736F F F696E74202D2031C1D6C2F72D31C2F7BDC32028B0ADC0C7C0DAB7E D20C7C1B7CEB1D7B7A1B9D6BEF0BEEE20B0FAB8F1BCD2B

2002년 2학기 자료구조

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

untitled

쉽게 풀어쓴 C 프로그래밍

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

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for


강의10

untitled

PowerPoint 프레젠테이션

6주차.key

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

Microsoft PowerPoint - chap-02.pptx

11강-힙정렬.ppt

DE1-SoC Board

MPLAB C18 C

Chap 6: Graphs

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

Microsoft PowerPoint - chap-02.pptx

Microsoft PowerPoint - ch20-설계문서작성, Pseudo Code, Sequence Diagram, Class Diagram - 김영탁140609v2

<31325FB1E8B0E6BCBA2E687770>

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1

2007_2_project4

Orcad Capture 9.x

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

UML

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

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

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

chap 5: Trees

PCServerMgmt7

PowerChute Personal Edition v3.1.0 에이전트 사용 설명서

Journal of Educational Innovation Research 2017, Vol. 27, No. 2, pp DOI: : Researc

C# Programming Guide - Types

Manufacturing6

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

untitled

vi 사용법

s SINUMERIK 840C Service and User Manual DATA SAVING & LOADING & & /

PowerPoint 프레젠테이션

10주차.key

슬라이드 1

02 C h a p t e r Java

Microsoft Word - FunctionCall

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

11장 포인터

03.Agile.key

Microsoft Word - ExecutionStack

강의의목표 Compiled Language vs. Interpreted Language 차이이해 Compiling의의미이해 Compiling의결과물확인 통합개발환경구축 Eclipse 통합개발환경을통한예제의 Bulid 및실행 Formatter 등의편집지원기능, Refer

Microsoft PowerPoint - ch08 - 구조체 (structure) am0845

Chap 6: Graphs

WISHBONE System-on-Chip Interconnection Architecture for Portable IP Cores

Coriolis.hwp

adfasdfasfdasfasfadf

PowerPoint 프레젠테이션

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

<313120C0AFC0FCC0DA5FBECBB0EDB8AEC1F2C0BB5FC0CCBFEBC7D15FB1E8C0BAC5C25FBCF6C1A42E687770>

초보자를 위한 C++

1

Journal of Educational Innovation Research 2019, Vol. 29, No. 1, pp DOI: (LiD) - - * Way to

SchoolNet튜토리얼.PDF

PowerPoint 프레젠테이션

김기남_ATDC2016_160620_[키노트].key

SW¹é¼Ł-³¯°³Æ÷ÇÔÇ¥Áö2013

Microsoft PowerPoint - a10.ppt [호환 모드]

Modern Javascript

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

untitled

PowerPoint 프레젠테이션

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

step 1-1

RVC Robot Vaccum Cleaner

U.Tu System Application DW Service AGENDA 1. 개요 4. 솔루션 모음 1.1. 제안의 배경 및 목적 4.1. 고객정의 DW구축에 필요한 메타정보 생성 1.2. 제품 개요 4.2. 사전 변경 관리 1.3. 제품 특장점 4.3. 부품화형

, ( ) 1) *.. I. (batch). (production planning). (downstream stage) (stockout).... (endangered). (utilization). *

Microsoft Word - KSR2014S042

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

untitled

27 2, 17-31, , * ** ***,. K 1 2 2,.,,,.,.,.,,.,. :,,, : 2009/08/19 : 2009/09/09 : 2009/09/30 * 2007 ** *** ( :

USER GUIDE

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

Chap06(Interprocess Communication).PDF

PRO1_09E [읽기 전용]

No Slide Title

DIY 챗봇 - LangCon

디지털포렌식학회 논문양식

Microsoft PowerPoint - Install Guide[ ].ppt [호환 모드]

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Line (A) å j a k= i k #define max(a, b) (((a) >= (b))? (a) : (b)) long MaxSubseqSum0(int A[], unsigned Left, unsigned Right) { int Center, i; long Max

VOL /2 Technical SmartPlant Materials - Document Management SmartPlant Materials에서 기본적인 Document를 관리하고자 할 때 필요한 세팅, 파일 업로드 방법 그리고 Path Type인 Ph

목차 1. 제품 소개 특징 개요 Function table 기능 소개 Copy Compare Copy & Compare Erase

Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은

Microsoft PowerPoint - AC3.pptx

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

본책- 부속물

thesis

13주-14주proc.PDF

Transcription:

2015-1 Programming Language 1. C Programming 기초 March 1, 2015 Prof. Young-Tak Kim Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, College of Engineering, Yeungnam University, KOREA (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr)

Outline 소프트웨어개발과정 알고리즘 C 프로그램작성절차 (Visual Studio) C 프로그램구성요소 디버깅 (debugging) 1-2

인류문명의진화와컴퓨터프로그래밍 인류는새로운도구를효율적으로현명하게사용함으로써문명을진화시켰음 increased productivities ( 생산성 ) with new tools of new materials, powered machines: from stone, stick, bronze, iron, telephone and computers increased collaborations ( 협동 ) among multiple persons increased performance ( 성능 ) in value creation increased energy efficiencies ( 에너지효율성 ) 컴퓨터와프로그래밍을통하여이러한기능을강화시킴 1-3

소프트웨어개발과정 설계 (Design) 구현 (Implementation) Problem Specifications (Requirements, Objectives) Analysis of the requirement Evaluate Feasibility 문법적오류 Edit program source code Compile Source codes.c,.cc Object codes.o Algorithm design Data Structure design Link Executable codes.exe Software system design Subsystem design Block design Module design Class / Function design Load Execute Program Execution output 논리적오류 Correct Output? 1-4 임무완수!!

요구사항분석 프로그램개발자는사용자들의요구사항을만족시키기위하여프로그램을작성 ( 예 ) 3년이상근무한직원들의리스트출력 정규직만 or 계약직포함 기준이되는날짜가오늘? 요구사항명세서 : 사용자의요구조건을만족하도록소프트웨어가갖는기능및제약조건, 성능목표등을포함 요구사항을정리하였습니다. 이정도면될까요? 가계부프로그램이필요합니다. 1-5

알고리즘 Algorithm is a list of instructions when executed, transform information from input to output The instructions are a finite set of steps that can be executed, in a definite deterministic order When these steps are actually executed, the execution must terminate after a finite time. 1-6

알고리즘의개발 핵심적인부분 어떤단계를밟아서어떤순서로작업을처리할것인지를설계 순서도 (flow chart) 와의사코드 (pseudo code) 를도구로사용 알고리즘은프로그래밍언어와는무관 알고리즘은원하는결과를얻기위하여밟아야하는단계에집중적으로초점을맞추는것 프로그램을작성하기전에먼저알고리즘을구상합니다. 1-7

순서도 (flow chart) 프로그램에서의논리순서또는작업순서등을그래픽으로표현하기위한형식 알고리즘이복잡하면기술하기가힘들어진다. 1-8

Pseudo code 의사코드 (Pseudo Code) Simplified list of instructions to show the overall process of algorithm not following the details of programming language the skeleton of the algorithm should be shown 1-9

Pseudo code (1) Procedure FindMax(dataArray, N) 1: //input argument: int dataarray[0..n-1]; // array of data with N elements // output result: maximum value of the given data array 2: int max; 3: int index; 4: index = 0; //initialize index 5: max = dataarray[index]; 6: while (index < N) { 7: if (max < dataarray[index]) 8: max = dataarray[index]; 9: index = index + 1; 10: } // end while 11: 12: printout max; 13: end // end of Algorithm FindMax() 1-10

Pseudo code (2) Procedure FindAvg(dataArray, N) 1: //input argument: int dataarray[0..n-1]; // array of data with N elements // output result: maximum value of the given data array 2: int count; 3: double sum, avg; 4: count = 0; //initialize index 5: sum = 0.0; 6: while (count < N) { 7: sum = sum + dataarray[count]; 8: count = count + 1; 9: } // end while 10: avg = sum / count; 12: printout avg; 13: end // end of Algorithm FindAvg() 1-11

자료구조 (Data Structure) 모든소프트웨어개발에서는효율적인알고리즘 (algorithm) 과이알고리즘에적합한자료구조 (data structure) 를사용하여야우수한성능을발휘할수있음 알고리즘의예 sorting ( 정렬 ): selection sorting, quick sorting search ( 탐색 ): depth-first search, breadth-first search shortest path, minimum spanning tree 자료구조의예 단순배열 (simple array) 구조체 (structure) 구조체배열 (array of structure) 자기참조구조체 (self-referential structure) Linked List, Binary Tree Heap, priority queue Map, Skip list 1-12

효과적인프로그램개발방법 (1) 프로그램설계 ( 알고리즘및자료구조설계 ) 에더많은시간을투자할것 주어진문제를해결하기위한효율적인알고리즘을먼저구성할것 구성된알고리즘에적합한자료구조를선택할것 예 ) 100,000개의학생데이터로부터 0.01초의데이터처리시간내에특정조건을만족하는학생을탐색 (search) 하여야하는경우, 어떤자료구조를사용하며, 어떤방식으로탐색할것인가? array vs. linked list vs. binary tree linear search vs. binary search 1-13

효과적인프로그램개발방법 (2) 프로그램오류수정을위한 debugging 방법을먼저숙달할것 프로그램소스코드상에존재하는문법적에러및논리적인에러를빨리찾아내는방법을먼저숙달 Visual studio의 debugging 기능을먼저확인하고, 숙달할것 break point 기능 trace 기능 각단계에서의 local variable 값확인 1-14

Source Program Coding 알고리즘의각단계를프로그래밍언어를이용하여기술 어떤프로그래밍언어로도가능 알고리즘을프로그래밍언어의문법에맞추어기술한것을소스프로그램 (source program) 소스프로그램은주로텍스트에디터나통합개발환경을이용하여작성 (Q) 알고리즘개발과코딩중어떤것이더어려울까? 드디어코딩을시작합니다. (A) 알고리즘개발이더창의적인작업이고더어렵다 1-15

Source code documentations Standard comment at each source code file produced in this course /** * File Name: "???.c" or "xxx.h", or "yyy.cpp" * Description: * - This program is...... * * Programmed by Gil-Dong Hong, * Last updated: Version 2.0, March 1, 2011 (by Young-Chul Kim). * * ======================================================== * Version Control (Explain updates in detail) * ======================================================== * Name YYYY/MM/DD Version Remarks * John Doe 2009/11/15 1.0 1:1 Chatting on UDP * socket, 2 threads * John Doe 2010/05/01 1.1 User interface has been * updated with GUI * Mark Kim 2010/08/03 2.0 Major change in the * program structure * ======================================================== */ 1-16

Compile 소스프로그램을목적프로그램으로변환하는작업 컴파일러가수행 컴파일오류 : 문법오류 ( 예 ) He go to school; 오류가발생하면소스프로그램을수정한후에다시컴파일 문장에오류가있습니다. 번역가 They goes to school.... 한국어 1-17 영어

Link 컴파일된목적프로그램을라이브러리와연결하여실행프로그램을작성하는것 라이브러리 (library): 프로그래머들이많이사용되는기능을미리작성해놓은것 ( 예 ) 입출력기능, 파일처리, 수학함수계산 링크를수행하는프로그램을링커 (linker) 라고한다. Hello! 1-18

실행 (execution) 과디버깅 (Debugging) 실행파일 : 실행파일은윈도우즈에서는.exe라는확장자 실행시간오류 (run time error): 0으로나누는것 잘못된메모리주소에접근하는것 논리오류 (logical error): 문법은틀리지않았으나논리적으로정확하지않는것 ( 예 ) 1 그릇 1 과그릇 2 를준비한다. 2 그릇 1 에밀가루, 우유, 계란을넣고잘섞는다. 3 그릇 2 를오븐에넣고 30 분동안 350 도로굽는다. 1-19

Debugging 소스에존재하는오류를잡는것 1-20

소프트웨어의유지보수 (maintenance) 소프트웨어의유지보수가필요한이유 디버깅후에도버그가남아있을수있기때문 소프트웨어가개발된다음에사용자의요구가추가될수있기때문 유지보수비용이전체비용의 50% 이상을차지 1-21

Visual Studio 2013 프로그램통합개발환경 1-22