SlideShare a Scribd company logo
1 of 14
An introduction to
computer
Science
- 프로그래밍 언어
2017. 03. 17
황태욱
01 Program Language
02 Variable, Constant & scope
03 Type : 자료형
CONTENTS
04 If, for : 조건문과 반복문
05 Sub program : 부 프로그램
1 Programming Language
저급언어(Low level language)와 고급 언어(high level language)로
구분
- Low Level: 기계어, 어셈블리어
- High Level: FORTRAN, COBAL, C, C++, JAVA …
고급언어
1957년 FORTRAN
1960년 COBAL (기계와 무관한 상업용 프로그램 언어로 개발)
1970년 PASCAL 프로그래밍 교육을 위한 구조화된 언어
1972년 C언어 – 벨연구소
1980년 C++ 객체 지향 프로그램 언어
1991년 JAVA – SUN 마이크로시스템 (지금은 오라클 소유)
1.2 함수 function
함수(function), 서브루틴(subroutine), 루틴(routine), 메서드(method),
프로시저(procedure)는 소프트웨어에서 특정 동작을 수행하는 일정 코드
부분을 의미한다.
함수는 대부분의 프로그래밍 언어에서 지원하는 기능으로, 하나의 큰
프로그램을 여러 부분으로 나누어주기 때문에 같은 함수를 여러 상황에서
여러 차례 호출할 수 있으며 일부분을 수정하기 쉽다는 장점을 가진다.
2.1 변수: Variable, 상수: Constant
다음과 같은 속성들로 변수의 개념이 형성
이름, 형, 주소, 값, 영역
Name, Type, Address, Value, Scope
예:
int x; /* 정수형 변수 x선언 */
변수이름: x
변수 형: int (integer의 약자)
변수 주소 - 프로그래머는 무시해도 됨
변수 값: value 배정문에 의해 부여 - x = 10;
변수 영역: 변수의 효력이 있는 범위
상수: 숫자로 규정된 값 그 자체 (변하지 않는 수)
수학의 상수와는 다소 다름
2.2 영역: Scope
Scope: 변수의 효력이 있는 범위 – 정적영역, 동적영역이 있음
Program main; 정적영역 동적영역
var a, b : integer;
procedure print;
begin
write(a); write(b);
end print;
procedure func;
var a, b : integer;
begin
a=2; b=3;
call print;
end func;
begin
a=0; b=1;
call func;
end main.
3.1 기본 자료형
x = 12 + 3.456;
/* x라는 변수에 12라는 정수형 상수와 3.456이라는 부동소수점형 상수를
더한 값을 넣음 */
변수의 형은 선언문에서 결정
기본자료형
정수형, 실수형, 부울형, 문자열 등
Short int int long int /* 수학적으로는 모두 정수형 */
Float (단일 정밀도) double (이중 정밀도) /* 수학적으로 모두 부동소수점 형 */
문자열형 - PL/I 에서 도입
DCL A CHAR(10); 길이가 10인 문자열 변수 A
다음 같은 연산을 제공 - LENGTH, SUBSTR, INDEX, VERIFY, TRANSLATE
3.2 구조적 자료형: structured data type
배열 : Array 동질적 자료의 모임
int a[5];
정수형 1차원 배열 a[0] … a[4]
타 언어는 1부터 시작하거나 임의로 정할 수도 있음
레코드: Recod 이질적 자료의 모임 c언어에서는 구조체(structure)라고 함
struct student {
char name[20];
int number;
char address[30];
};
struct student A;
레코드를 이루고 있는 자료를 필드라고 하고 이에 접근하면
A.Number = 10;
3.2 기타 자료형
포인터 pointer
C 언에서 사용 – 그러나 많은 오류를 발생하는 원인
객체 (Object-Oriented Language) OOL
가장 간단하게는
C의 struct를 확장하여 해당 struct을 활용할 함수 까지 포함 한 것
4.1 조건 문
If (조건식) then
명령어…
else
명령어…
다자택일문
switch (수식) {
case 상수1:
문장1; break;
case 상수 2;
문장2; break;
:
default;
문장 n
}
4.2 반복문
DO 문 FORTRAN에서 사용
DO 10 i = 1, 5
:
10 CONTINUE
While - DO while - for
While (조건식) {
문장1;
문장2;
:
}
do {
문장1;
문장2;
:
} while (조건식);
for (초기식, 조건식, 변환식);
문장;
}
5. Sub Program
Subroutine, function으로 구분 – C언어는 구분하지
않음
Subroutine : 자신의 이름으로 값을 반환하지 않는다.
Function : 자신의 이름으로 값을 반환
PARAMETER 매개변수, 파라매터
Void function (int x, int y)
{
int sum = x + y;
printf (“sum : %d”, sum);
}
Function (10, 20);
C언어일 경우 값에 의한 전달 (상수, 변수)
주소값에 의한 전달 – 포인터 활용
6. Further Study
Flow Chart: https://www.slideshare.net/taewookh/may-2015-flow-chart
Q&A
For further details, please contact us by e-mail
황태욱 : taewook.hwang@gmail.com
010.9576.5105
Kakao: Aldemaya

More Related Content

What's hot

[0602 박민근] Direct2D
[0602 박민근] Direct2D[0602 박민근] Direct2D
[0602 박민근] Direct2D흥배 최
 
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)MinGeun Park
 
폰노이만 머신 이해
폰노이만 머신 이해폰노이만 머신 이해
폰노이만 머신 이해중선 곽
 
C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현Bongseok Cho
 
Pipelining, processors, risc and cisc
Pipelining, processors, risc and ciscPipelining, processors, risc and cisc
Pipelining, processors, risc and ciscMark Gibbs
 
프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법중선 곽
 
Computer Fundamentals Chapter 07 pam
Computer Fundamentals Chapter  07 pamComputer Fundamentals Chapter  07 pam
Computer Fundamentals Chapter 07 pamSaumya Sahu
 
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)ssuserbe87d6
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기YEONG-CHEON YOU
 
Memory organization
Memory organizationMemory organization
Memory organizationAL- AMIN
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPUYEONG-CHEON YOU
 
Instruction Set Architecture – II
Instruction Set Architecture – IIInstruction Set Architecture – II
Instruction Set Architecture – IIDilum Bandara
 
Computer architecture virtual memory
Computer architecture virtual memoryComputer architecture virtual memory
Computer architecture virtual memoryMazin Alwaaly
 
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발MinGeun Park
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅DongMin Choi
 

What's hot (20)

컴퓨터개론02
컴퓨터개론02컴퓨터개론02
컴퓨터개론02
 
[0602 박민근] Direct2D
[0602 박민근] Direct2D[0602 박민근] Direct2D
[0602 박민근] Direct2D
 
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
[0119 박민근] 기술 면접시 자주 나오는 문제들(ver 2013)
 
폰노이만 머신 이해
폰노이만 머신 이해폰노이만 머신 이해
폰노이만 머신 이해
 
C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현C++20에서 리플렉션 기능 구현
C++20에서 리플렉션 기능 구현
 
Pipelining, processors, risc and cisc
Pipelining, processors, risc and ciscPipelining, processors, risc and cisc
Pipelining, processors, risc and cisc
 
Cache memory
Cache  memoryCache  memory
Cache memory
 
프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법
 
Computer Fundamentals Chapter 07 pam
Computer Fundamentals Chapter  07 pamComputer Fundamentals Chapter  07 pam
Computer Fundamentals Chapter 07 pam
 
충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)충돌 알고리즘(collision detection algorithms)
충돌 알고리즘(collision detection algorithms)
 
나만의 엔진 개발하기
나만의 엔진 개발하기나만의 엔진 개발하기
나만의 엔진 개발하기
 
Memory organization
Memory organizationMemory organization
Memory organization
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
 
Instruction Set Architecture – II
Instruction Set Architecture – IIInstruction Set Architecture – II
Instruction Set Architecture – II
 
Computer architecture virtual memory
Computer architecture virtual memoryComputer architecture virtual memory
Computer architecture virtual memory
 
Virtual memory
Virtual memoryVirtual memory
Virtual memory
 
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발
[데브루키] 유니티와 Play maker를 이용한 쉽고 빠른 게임 개발
 
Cache memory
Cache memoryCache memory
Cache memory
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
 

Similar to 컴퓨터개론05

200819 NAVER TECH CONCERT 04_NDK로 안드로이드에 C++ 끼얹기
200819 NAVER TECH CONCERT 04_NDK로 안드로이드에 C++ 끼얹기200819 NAVER TECH CONCERT 04_NDK로 안드로이드에 C++ 끼얹기
200819 NAVER TECH CONCERT 04_NDK로 안드로이드에 C++ 끼얹기NAVER Engineering
 
소프트웨어 중심 시대를 준비하자
소프트웨어 중심 시대를 준비하자소프트웨어 중심 시대를 준비하자
소프트웨어 중심 시대를 준비하자Deogtae Kim
 
프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어
프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어
프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어Bizmerce Corp
 
델파이와 유니코드
델파이와 유니코드델파이와 유니코드
델파이와 유니코드Devgear
 
1.Startup JavaScript - 프로그래밍 기초
1.Startup JavaScript - 프로그래밍 기초1.Startup JavaScript - 프로그래밍 기초
1.Startup JavaScript - 프로그래밍 기초Circulus
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)정명훈 Jerry Jeong
 
2016 C++스터디 1주차
2016 C++스터디 1주차2016 C++스터디 1주차
2016 C++스터디 1주차Seungwee  Choi
 
변수 이름의 효과
변수 이름의 효과변수 이름의 효과
변수 이름의 효과민욱 이
 
PS 향유회 세미나 - Python을 서브언어로 편하게 PS해보자
PS 향유회 세미나 - Python을 서브언어로 편하게 PS해보자PS 향유회 세미나 - Python을 서브언어로 편하게 PS해보자
PS 향유회 세미나 - Python을 서브언어로 편하게 PS해보자SesangCho
 
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019min woog kim
 
임베디드 시스템 설계 프로젝트: EMPOS-II를 활용한 영어단어 학습기
임베디드 시스템 설계 프로젝트: EMPOS-II를 활용한 영어단어 학습기임베디드 시스템 설계 프로젝트: EMPOS-II를 활용한 영어단어 학습기
임베디드 시스템 설계 프로젝트: EMPOS-II를 활용한 영어단어 학습기Daegi Kim
 
Functional Kotlin makes Kotlin functional
Functional Kotlin makes Kotlin functionalFunctional Kotlin makes Kotlin functional
Functional Kotlin makes Kotlin functionalHyunWoo Lee
 
Tech-days 미니 토요세미나 - 3회 C#편 PPT 자료
Tech-days 미니 토요세미나 - 3회 C#편 PPT 자료Tech-days 미니 토요세미나 - 3회 C#편 PPT 자료
Tech-days 미니 토요세미나 - 3회 C#편 PPT 자료SeongTae Jeong
 
c++ API디자인 ch9. 발표자료
c++ API디자인 ch9. 발표자료c++ API디자인 ch9. 발표자료
c++ API디자인 ch9. 발표자료Mungyu Choi
 

Similar to 컴퓨터개론05 (20)

200819 NAVER TECH CONCERT 04_NDK로 안드로이드에 C++ 끼얹기
200819 NAVER TECH CONCERT 04_NDK로 안드로이드에 C++ 끼얹기200819 NAVER TECH CONCERT 04_NDK로 안드로이드에 C++ 끼얹기
200819 NAVER TECH CONCERT 04_NDK로 안드로이드에 C++ 끼얹기
 
소프트웨어 중심 시대를 준비하자
소프트웨어 중심 시대를 준비하자소프트웨어 중심 시대를 준비하자
소프트웨어 중심 시대를 준비하자
 
프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어
프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어
프로그래밍 언어의 기본 개념과 주요 프로그래밍 언어
 
델파이와 유니코드
델파이와 유니코드델파이와 유니코드
델파이와 유니코드
 
1.Startup JavaScript - 프로그래밍 기초
1.Startup JavaScript - 프로그래밍 기초1.Startup JavaScript - 프로그래밍 기초
1.Startup JavaScript - 프로그래밍 기초
 
팀장 잔소리
팀장 잔소리팀장 잔소리
팀장 잔소리
 
강의자료 2
강의자료 2강의자료 2
강의자료 2
 
What’s new in c++11
What’s new in c++11What’s new in c++11
What’s new in c++11
 
Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)Python study 1강 (오픈소스컨설팅 내부 강의)
Python study 1강 (오픈소스컨설팅 내부 강의)
 
파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)
 
2016 C++스터디 1주차
2016 C++스터디 1주차2016 C++스터디 1주차
2016 C++스터디 1주차
 
변수 이름의 효과
변수 이름의 효과변수 이름의 효과
변수 이름의 효과
 
PS 향유회 세미나 - Python을 서브언어로 편하게 PS해보자
PS 향유회 세미나 - Python을 서브언어로 편하게 PS해보자PS 향유회 세미나 - Python을 서브언어로 편하게 PS해보자
PS 향유회 세미나 - Python을 서브언어로 편하게 PS해보자
 
Interpreter
InterpreterInterpreter
Interpreter
 
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
김민욱, (달빛조각사) 엘릭서를 이용한 mmorpg 서버 개발, NDC2019
 
임베디드 시스템 설계 프로젝트: EMPOS-II를 활용한 영어단어 학습기
임베디드 시스템 설계 프로젝트: EMPOS-II를 활용한 영어단어 학습기임베디드 시스템 설계 프로젝트: EMPOS-II를 활용한 영어단어 학습기
임베디드 시스템 설계 프로젝트: EMPOS-II를 활용한 영어단어 학습기
 
Functional Kotlin makes Kotlin functional
Functional Kotlin makes Kotlin functionalFunctional Kotlin makes Kotlin functional
Functional Kotlin makes Kotlin functional
 
Tech-days 미니 토요세미나 - 3회 C#편 PPT 자료
Tech-days 미니 토요세미나 - 3회 C#편 PPT 자료Tech-days 미니 토요세미나 - 3회 C#편 PPT 자료
Tech-days 미니 토요세미나 - 3회 C#편 PPT 자료
 
Ch09
Ch09Ch09
Ch09
 
c++ API디자인 ch9. 발표자료
c++ API디자인 ch9. 발표자료c++ API디자인 ch9. 발표자료
c++ API디자인 ch9. 발표자료
 

More from Edward Hwang

02 특허와 실용신안 제도
02 특허와 실용신안 제도02 특허와 실용신안 제도
02 특허와 실용신안 제도Edward Hwang
 
게임디자인 레벨 밸런싱
게임디자인   레벨 밸런싱게임디자인   레벨 밸런싱
게임디자인 레벨 밸런싱Edward Hwang
 
Understanding of growth hacking 01
Understanding of growth hacking 01Understanding of growth hacking 01
Understanding of growth hacking 01Edward Hwang
 
Understanding of gamification 03
Understanding of gamification 03Understanding of gamification 03
Understanding of gamification 03Edward Hwang
 
게임디자인 게임시스템
게임디자인   게임시스템게임디자인   게임시스템
게임디자인 게임시스템Edward Hwang
 
게임디자인 게임디자인
게임디자인   게임디자인게임디자인   게임디자인
게임디자인 게임디자인Edward Hwang
 
게임디자인 게임제작 및 시나리오
게임디자인   게임제작 및 시나리오게임디자인   게임제작 및 시나리오
게임디자인 게임제작 및 시나리오Edward Hwang
 
게임디자인 게임역사
게임디자인   게임역사게임디자인   게임역사
게임디자인 게임역사Edward Hwang
 
창업아이디어 2015 2학기
창업아이디어 2015 2학기창업아이디어 2015 2학기
창업아이디어 2015 2학기Edward Hwang
 
Understanding of gamification 2015
Understanding of gamification 2015Understanding of gamification 2015
Understanding of gamification 2015Edward Hwang
 
사업계획서 기본요소
사업계획서 기본요소사업계획서 기본요소
사업계획서 기본요소Edward Hwang
 
May 2015 flow chart 익히기
May 2015 flow chart 익히기May 2015 flow chart 익히기
May 2015 flow chart 익히기Edward Hwang
 
창업아이디어
창업아이디어창업아이디어
창업아이디어Edward Hwang
 
앱을 위한 아이디어 2015
앱을 위한 아이디어 2015 앱을 위한 아이디어 2015
앱을 위한 아이디어 2015 Edward Hwang
 
기술 창업 Idea to business
기술 창업 Idea to business기술 창업 Idea to business
기술 창업 Idea to businessEdward Hwang
 
Lean startup 이해하기 황태욱
Lean startup 이해하기   황태욱Lean startup 이해하기   황태욱
Lean startup 이해하기 황태욱Edward Hwang
 

More from Edward Hwang (20)

컴퓨터개론13
컴퓨터개론13컴퓨터개론13
컴퓨터개론13
 
컴퓨터개론12
컴퓨터개론12컴퓨터개론12
컴퓨터개론12
 
컴퓨터개론11
컴퓨터개론11컴퓨터개론11
컴퓨터개론11
 
02 특허와 실용신안 제도
02 특허와 실용신안 제도02 특허와 실용신안 제도
02 특허와 실용신안 제도
 
게임디자인 레벨 밸런싱
게임디자인   레벨 밸런싱게임디자인   레벨 밸런싱
게임디자인 레벨 밸런싱
 
Understanding of growth hacking 01
Understanding of growth hacking 01Understanding of growth hacking 01
Understanding of growth hacking 01
 
Understanding of gamification 03
Understanding of gamification 03Understanding of gamification 03
Understanding of gamification 03
 
게임디자인 게임시스템
게임디자인   게임시스템게임디자인   게임시스템
게임디자인 게임시스템
 
게임디자인 게임디자인
게임디자인   게임디자인게임디자인   게임디자인
게임디자인 게임디자인
 
게임디자인 게임제작 및 시나리오
게임디자인   게임제작 및 시나리오게임디자인   게임제작 및 시나리오
게임디자인 게임제작 및 시나리오
 
게임의 분류
게임의 분류게임의 분류
게임의 분류
 
게임디자인 게임역사
게임디자인   게임역사게임디자인   게임역사
게임디자인 게임역사
 
창업아이디어 2015 2학기
창업아이디어 2015 2학기창업아이디어 2015 2학기
창업아이디어 2015 2학기
 
Understanding of gamification 2015
Understanding of gamification 2015Understanding of gamification 2015
Understanding of gamification 2015
 
사업계획서 기본요소
사업계획서 기본요소사업계획서 기본요소
사업계획서 기본요소
 
May 2015 flow chart 익히기
May 2015 flow chart 익히기May 2015 flow chart 익히기
May 2015 flow chart 익히기
 
창업아이디어
창업아이디어창업아이디어
창업아이디어
 
앱을 위한 아이디어 2015
앱을 위한 아이디어 2015 앱을 위한 아이디어 2015
앱을 위한 아이디어 2015
 
기술 창업 Idea to business
기술 창업 Idea to business기술 창업 Idea to business
기술 창업 Idea to business
 
Lean startup 이해하기 황태욱
Lean startup 이해하기   황태욱Lean startup 이해하기   황태욱
Lean startup 이해하기 황태욱
 

컴퓨터개론05

  • 1. An introduction to computer Science - 프로그래밍 언어 2017. 03. 17 황태욱
  • 2. 01 Program Language 02 Variable, Constant & scope 03 Type : 자료형 CONTENTS 04 If, for : 조건문과 반복문 05 Sub program : 부 프로그램
  • 3. 1 Programming Language 저급언어(Low level language)와 고급 언어(high level language)로 구분 - Low Level: 기계어, 어셈블리어 - High Level: FORTRAN, COBAL, C, C++, JAVA … 고급언어 1957년 FORTRAN 1960년 COBAL (기계와 무관한 상업용 프로그램 언어로 개발) 1970년 PASCAL 프로그래밍 교육을 위한 구조화된 언어 1972년 C언어 – 벨연구소 1980년 C++ 객체 지향 프로그램 언어 1991년 JAVA – SUN 마이크로시스템 (지금은 오라클 소유)
  • 4. 1.2 함수 function 함수(function), 서브루틴(subroutine), 루틴(routine), 메서드(method), 프로시저(procedure)는 소프트웨어에서 특정 동작을 수행하는 일정 코드 부분을 의미한다. 함수는 대부분의 프로그래밍 언어에서 지원하는 기능으로, 하나의 큰 프로그램을 여러 부분으로 나누어주기 때문에 같은 함수를 여러 상황에서 여러 차례 호출할 수 있으며 일부분을 수정하기 쉽다는 장점을 가진다.
  • 5. 2.1 변수: Variable, 상수: Constant 다음과 같은 속성들로 변수의 개념이 형성 이름, 형, 주소, 값, 영역 Name, Type, Address, Value, Scope 예: int x; /* 정수형 변수 x선언 */ 변수이름: x 변수 형: int (integer의 약자) 변수 주소 - 프로그래머는 무시해도 됨 변수 값: value 배정문에 의해 부여 - x = 10; 변수 영역: 변수의 효력이 있는 범위 상수: 숫자로 규정된 값 그 자체 (변하지 않는 수) 수학의 상수와는 다소 다름
  • 6. 2.2 영역: Scope Scope: 변수의 효력이 있는 범위 – 정적영역, 동적영역이 있음 Program main; 정적영역 동적영역 var a, b : integer; procedure print; begin write(a); write(b); end print; procedure func; var a, b : integer; begin a=2; b=3; call print; end func; begin a=0; b=1; call func; end main.
  • 7. 3.1 기본 자료형 x = 12 + 3.456; /* x라는 변수에 12라는 정수형 상수와 3.456이라는 부동소수점형 상수를 더한 값을 넣음 */ 변수의 형은 선언문에서 결정 기본자료형 정수형, 실수형, 부울형, 문자열 등 Short int int long int /* 수학적으로는 모두 정수형 */ Float (단일 정밀도) double (이중 정밀도) /* 수학적으로 모두 부동소수점 형 */ 문자열형 - PL/I 에서 도입 DCL A CHAR(10); 길이가 10인 문자열 변수 A 다음 같은 연산을 제공 - LENGTH, SUBSTR, INDEX, VERIFY, TRANSLATE
  • 8. 3.2 구조적 자료형: structured data type 배열 : Array 동질적 자료의 모임 int a[5]; 정수형 1차원 배열 a[0] … a[4] 타 언어는 1부터 시작하거나 임의로 정할 수도 있음 레코드: Recod 이질적 자료의 모임 c언어에서는 구조체(structure)라고 함 struct student { char name[20]; int number; char address[30]; }; struct student A; 레코드를 이루고 있는 자료를 필드라고 하고 이에 접근하면 A.Number = 10;
  • 9. 3.2 기타 자료형 포인터 pointer C 언에서 사용 – 그러나 많은 오류를 발생하는 원인 객체 (Object-Oriented Language) OOL 가장 간단하게는 C의 struct를 확장하여 해당 struct을 활용할 함수 까지 포함 한 것
  • 10. 4.1 조건 문 If (조건식) then 명령어… else 명령어… 다자택일문 switch (수식) { case 상수1: 문장1; break; case 상수 2; 문장2; break; : default; 문장 n }
  • 11. 4.2 반복문 DO 문 FORTRAN에서 사용 DO 10 i = 1, 5 : 10 CONTINUE While - DO while - for While (조건식) { 문장1; 문장2; : } do { 문장1; 문장2; : } while (조건식); for (초기식, 조건식, 변환식); 문장; }
  • 12. 5. Sub Program Subroutine, function으로 구분 – C언어는 구분하지 않음 Subroutine : 자신의 이름으로 값을 반환하지 않는다. Function : 자신의 이름으로 값을 반환 PARAMETER 매개변수, 파라매터 Void function (int x, int y) { int sum = x + y; printf (“sum : %d”, sum); } Function (10, 20); C언어일 경우 값에 의한 전달 (상수, 변수) 주소값에 의한 전달 – 포인터 활용
  • 13. 6. Further Study Flow Chart: https://www.slideshare.net/taewookh/may-2015-flow-chart
  • 14. Q&A For further details, please contact us by e-mail 황태욱 : taewook.hwang@gmail.com 010.9576.5105 Kakao: Aldemaya