CHAPTER 05 프로그래밍.

Slides:



Advertisements
Similar presentations
Informatics Informatics – Programming 김진평 Python 개요 Python Download & Install.
Advertisements

프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
제 11 장 프로그래밍 언어. 2/24 목차 1. 프로그래밍 언어 2. 주요 프로그래밍 언어 3. 제 4 세대 언어 4. 객체지향 언어 5. UNIX/Linux 기반 언어들 6. 닷넷 기반 언어 제 11 장 프로그래밍 언어.
KUMHO SOFTWARE DEVELOPMENT 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램 2.4 자바 응용 프로그램 2.5 자바 애플릿 프로그램 2. 자바 환경과 자바 프로그램.
Introduction to Programming Languages What is Programming Language?
천안천일고등학교 Copyright © by Ryu Bin All rights reserved 프로그래밍 실무.
컴퓨터와 인터넷.
컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
프로그래밍 언어.
Power Java 제3장 이클립스 사용하기.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 1-1 C 언어의 개론적 이야기 프로그래밍 언어란 무엇인가? 컴파일이란 무엇인가? 사람과 컴파일러가 이해할 수 있는 약속된 형태의 언어 C 언어도 프로그래밍 언어 중 하나이다. 컴파일이란 무엇인가? 프로그래밍.
1장. 자바 개요.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
C언어 콘서트 제1장 프로그래밍 소개.
3조 오세혁 김문환 김용현.
Power Java 제2장 자바 개발 도구.
C 언어 1 1주차 C언어 시작하기 - 1차시 C 언어 특징 및 프로젝트 생성 Programming Language.
System Programming 제1장 배경지식 시스템 프로그래밍.
이것이 C 언어다. IT응용시스템공학과 김 형 진 교수.
컴퓨터 기본 원리 프로그래밍 언어 C 프로그래밍 환경 C 프로그래밍 작성, 컴파일, 링크 및 실행
JSP Programming with a Workbook
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 01. 이것이 C언어다.
Java 기초 (Java JDK 설치 및 환경설정)
Visual Basic .NET 처음 사용하기.
1. C++ 시작하기.
C++ Programming: Sample Programs
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
컴퓨터과학 전공탐색 배상원.
제목 CHAPTER 04. 프로그래밍 언어 인간과 컴퓨터의 대화_진화하는 소통. 진화하는 컴퓨터.
Cross Compiler 설치.
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
Visual C++ Programming
Program Language 환경공학과 천대길.
Computational Thinking
Wireless Java Programming
AVR – ATmega103(ATMEL) Compilers & ISP
1. C 언어 개요.
프로그래밍 개요
Chap 6.Assembler 유건우.
2장. JSP 프로그래밍을 위한 환경구성 제2장.
Chapter 01 컴퓨터와 프로그램.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
UNIX Unbounded A Beginning Approach
CHAPTER 04. 프로그래밍 언어 인간과 컴퓨터의 대화_진화하는 소통. 진화하는 컴퓨터
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
프로그래밍 원리 Chapter 05 자바스크립트 기초 신한대학교 IT융합공학부 박 호 균.
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
웹디자인
자바 5.0 프로그래밍.
LabVIEW WiznTec 주임 박명대 1.
Part 1 개요 Chapter 1 : 컴퓨터와 프로그램 그리고 자바 Chapter 2 : 자바의 환경
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
Computers: Tools for an Information Age Chapter 12
쉽게 풀어쓴 C언어 Express 제2장 프로그램 개발 과정 C Express.
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
DK-128 개발환경 설정 아이티즌 기술연구소
Introduction to JSP & Servlet
Chapter 01 자바의 개요 자바는 최초 전자기기의 내장형 소프트웨어를 위해 개발되었으나, 최근 엔터프라이즈 응용에도 폭 넓게 활용됨 자바의 특징과 실행방법, 개발 환경 및 도구에 대해 소개.
공학도를 위한 C언어 프로그래밍실습1 -통합개발환경 사용법-
발표자 : 이지연 Programming Systems Lab.
강의교안 이용 안내 *이 책에 딸린 강의자료는 교수님의 효율적인 수업진행을 돕기 위해 만들어졌습니다.
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
Name Title Company Name
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
학부 컴퓨터공학부 교육과정 (학부) 2학년 4학년 3학년 1학년 1학기 2학기 IPP 자격과정 전공트랙
자바 프로그래밍 입문 : 객체지향적 사고법 chapter 01. 자바 언어의 소개.
1장. C Language Synopsis.
Presentation transcript:

CHAPTER 05 프로그래밍

차례 프로그래밍이란 프로그래밍 언어 프로그램 구현 기법 프로그램 실행 과정 프로그래밍 절차 C로 작성한 프로그램 예

SECTION 01 프로그래밍이란

01 프로그래밍이란 프로그램(program) 프로그래밍(programming) 특정한 작업을 수행하기 위해 컴퓨터가 실행하는 명령어의 나열 컴퓨터에게 주어지는 일련의 명령문들 프로그래밍(programming) 프로그램을 만드는 과정 프로그래머들이 컴퓨터가 일을 하도록 명령하는 일련의 창의적인 과정 프로그래밍 언어(programming language)

Quiz C 언어 C 언어 프로그램

Program Development Life Cycle 프로그램을 개발하기 위한 일련의 반복적인 과정

Who / How Good Programmer ?

SECTION 02 프로그래밍 언어

What is best programming language ? 02 프로그래밍 언어 기계어와 자연 언어의 중간 형태로 고안된 언어 컴퓨터가 읽을 수 있고 사람이 읽을 수 있는 형식으로 계산을 서술하기 위한 표기 체계 작성된 프로그램을 기계어로 번역해주는 프로그램 필요 주어진 문제의 종류나 프로그램의 용도 등을 고려하여 선택 What is best programming language ?

기계어 (machine language) 저급 언어(low-level language) 하드웨어에 의존적인 언어 컴퓨터가 직접 이해할 수 있는 언어(0과 1의 이진수) [Quiz] 만일 컴퓨터가 32bits 에서 62bits로 변경되면… By Human In MIPS 001001 11101 11101 1111111111111000 001000 00001 00000 0000000000001010 001000 00001 00001 0000000000000010 101011 11101 00001 0000000000000000 001000 00010 00001 0000000000000100 101011 11101 00010 0000000000000100 001001 11101 11101 0000000000001000 x = 10+2 y = x+4

어셈블리어 (assembly language) 니모닉화한 언어 : 기계어의 명령문을 기호로 나타낸 언어 어셈블러(assembler)를 이용하여 기계어로 번역함 예: X와 Y를 더한 값을 Z에 저장한다

고급 언어(high-level language) C, C++, Java 등 컴파일러(compiler)를 이용하여 기계어로 번역함 예: X와 Y를 더한 값을 Z에 저장한다

2.2 프로그래밍 언어의 세대 세대 종류 1세대 1945년 기계어 2세대 1950년대 중 어셈블리어 3세대 1960년대 초 고급 언어. Fortran, COBOL, BASIC, C 절차적 언어 4세대 1970년대 초 초고급 언어, C++, VB, Delphi 문제 해결형 언어(비절차적 언어) (예)마우스나 키보드 이벤트가 일어나면 절차에 상관없이 비절차적으로 실행 5세대 1980년대 초 자연 언어 시각적 그래픽 인터페이스를 통해 3G/4G 언어 컴파일러로 컴파일 할 수 있는 원시코드를 작성

포트란(FORTRAN, FORmula TRANslation) 1954년 IBM컴퓨터에서 과학 계산을 위해 개발된 고급 언어 수학 연산식의 기술이 용이 Fortran 77 (~1990년대), Fortran 90/95, Fortran 2003, Fortran 2008 최신 버전에서는 VS2008에서 Visual Fortran 실행 Source.f90 PROGRAN power READ (*,*) x,y Z=x**y WRITE (*,*) z END PROGRAN

COBOL (COmmon Business Oriented Language) 제3세대 프로그래밍 언어이고, 1959년 일반 사무처리 언어로 개발되어 지금도 사용 코볼 2002(COBOL 2002)부터 객체 지향 프로그래밍도 포함

BASIC (Beginner’s All-purpose Symbolic Instruction Code) 1964년에 교육용으로 개발된 절차형 언어 인터프리터 방식 또는 컴파일러 방식 10 PRINT "Hello, world!“ 20 END INPUT "이름을 입력하세요"; UserName$ PRINT "안녕하세요 "; UserName$ DO INPUT "별이 몇 개 필요하세요? "; NumStars Stars$ = "“ Stars$ = REPEAT$("*", NumStars) '<-ANSI BASIC PRINT Stars$ INPUT "별이 더 필요하세요(Y/N)?"; Answer$ LOOP UNTIL Answer$ <> "“ LOOP WHILE UCASE$(LEFT$(Answer$, 1)) = "Y“ PRINT "안녕히 가세요 "; FOR A = 1 TO 200 PRINT UserName$; " "; NEXT A PRINT

C 1972년에 유닉스 운영체제에서 사용하기 위해 개발된 프로그래밍 언어 시스템 프로그램 개발에 적합 (하드웨어에 대한 직접 제어가 가능) #include <stdio.h> int main(void) { printf("hello, world\n"); return 0; }

C++ C 언어의 확장 (C 언어 + 객체지향성)이므로 시스템 프로그래밍에 적합 Class, 연산자 중복, 가상 함수와 상속성 비야네 스트롭스트룹

Visual C++, Visual.NET MS사가 개발한 C++언어와 windows의 개발통합환경을 결합하여 Windows 시스템을 쉽게 개발할 수 있는 소프트웨어 언어 및 도구 # include <iostream> // std::cout을 제공 using namespace std; // std namespace를 사용할 수 있게 함 int main() { cout << "Hello, world!" << endl; return 0; }

JAVA 가전제품의 네트워크 제어를 목적으로 탄생 (SUN Microsystem 社) 현재 웹 어플리케이션 개발과 모바일 기기용 소프트웨어 개발에 널리 사용 문법적으로 C 언어에 매우 유사 Java 언어로 작성된 프로그램을 컴파일러는 바이트코드라는 바이너리 형태로 변환 이를 실행하기 위해서는 JVM(Java Virtual Machine)이 필요. 따라서, 바이트코드는 CPU나 운영체제의 제한이 없음 결과적으로, 플랫폼에 독립적인 객체지향 언어가 탄생 Eclipse, J builder는 자바와 Windows 통합 개발 환경을 결합한 소프트웨어 언어 및 도구 애플릿 (Applet) - HTML에 포함되어 웹 브라우저에서 실행되는 자바 프로그램 James Gosling

HTML (Hyper Text Markup Language) 웹 문서를 작성할 수 있도록 한 표준형식 (일종의 서식언어) 기능의 한계 Flash – 웹 애니메이션 VRML – 3D 구현 JAVA – 다양한 효과 JavaScript – 동적인 효과 ASP – 게시판 방명록 Tim Berners <html> <head> <title>Hello HTML</title> </head> <body> <p>Hello World!</p> </body> </html>

TIOBE programming community index

SECTION 03 프로그램 구현 기법

번역 기법 (translation) 원시 프로그램을 컴퓨터가 이해할 수 있는 기계어로 번역하여 목적 프로그램(object program)으로 만드는 방법 목적 프로그램 목적 코드(object code) 기계어로 번역된 프로그램 프로그래밍 언어마다 각각 다름 어셈블러(assembler) 컴파일러(compiler)

어셈블러 (Assembler) 어셈블리어로 작성된 원시 프로그램을 기계어로 번역하여 목적 프로그램으로 만들어주는 번역기

컴파일러(compiler) 고급 언어(포트란, 코볼, C, C++ 등)로 작성된 원시 프로그램을 기계어로 된 목적 프로그램으로 만들어주는 번역기

인터프리터(interpreter) 베이직과 같은 고급 언어로 작성된 원시 프로그램을 명령문 단위로 하나씩 읽어서 기계어로 번역한 후에 바로 실행되도록 함 인터프리터 고급언어로 작성된 원시 프로그램 입력자료 실행결과

하이브리드(hybrid) 기법 번역 기법과 인터프리터 기법 모두를 사용하는 기법 (예) 네트워크를 통한 Java 프로그램 실행 과정

혼합 기법: Java의 프로그램 변환 & 실행 Java Compiler (javac) Interpreter (java) Class Name .class .java 실행 결과

프로그래밍 언어와 자바 언어의 비교 Java 소스코드 일반 A기종 컴파일러 B기종 BYTE 코드 (플랫폼 독립) 기계어 코드 인터프리터

SECTION 04 프로그램 실행 과정

프로그램 실행 과정 Syntax Error Linking Runtime Compile Link Load 원시 프로그램 (Source) 목적 프로그램 (Object) 실행 프로그램 Compiler Linker Loader Compile Link Load Library Syntax Error Linking Runtime

코딩(coding) 원시 프로그램을 작성하는 과정 문서 편집기(text editor) 사용

컴파일 목적 파일(object file) 생성

링크 따로 작성되거나 컴파일된 파일들을 모아 실행 가능한 하나의 단위로 만들어진 프로그램으로 연결하는 과정 실행 파일(executable file) 생성

실행 결과 실행 결과 확인 프로그램 실행 과정 원시 파일 => 컴파일러 => 목적 파일 => 링커 => 실행 파일 => 로더 => 실행

SECTION 05 프로그래밍 절차

05 프로그래밍 절차

5.1 문제 분석 해결해야 할 문제를 정확하게 이해하는 단계 프로그램 사용자 파악 컴퓨터로 처리 가능한지의 여부 결정 입출력 데이터의 내용과 형식 등 결정

5.2 알고리즘 설계 (1/2) 알고리즘(algorithm) 순서도(flowchart) 등을 사용하여 설계 문제를 해결하기 위한 방법과 절차 순서도(flowchart) 등을 사용하여 설계 순서도(flowchart) 처리할 일의 내용과 흐름을 약속된 기호로 간결하게 나타내는 그림

5.2 알고리즘 설계 (2/2) 구조적 프로그래밍(structured programming) 하향식 설계(top-down design) 방법, 모듈화, 제어 구조(control structure)를 사용하여 작성하는 방식 세 가지 기본적인 제어 구조

5.3 프로그램 구현 설계된 알고리즘에 따라 적합한 프로그래밍 언어를 선택하여 코딩(coding) 함 컴파일 과정을 거치면서 구문 오류(syntax error)가 발생하면 수정하고 다시 컴파일 과정을 반복함 모의 실행을 통해 논리 오류(logical error)를 수정함

5.4 프로그램 문서화 및 유지 보수 프로그램의 문서화(program documentation) 하드웨어와 소프트웨어의 요구 사항, 입출력과 프로그램 파일 관리 등 프로그램 운영에 필요한 모든 사항을 문서로 정리하여 기록하는 작업 유지 보수(maintenance) 프로그램을 항상 오류가 없는 상태, 최신의 상태로 유지하기 위한 활동

SECTION 06 C로 작성한 프로그램 예

6.1 세 과목의 점수를 출력하는 프로그램 프로그램 출력 결과

6.2 세 과목의 점수를 입력받고 총점을 출력하는 프로그램 출력 결과

6.3 세 학생의 점수를 입력받고 총점을 출력하는 프로그램 출력 결과

The End