컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부.

Slides:



Advertisements
Similar presentations
Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
Advertisements

프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
제 5 장 구문 정의  프로그래밍 언어의 기본 문자 집합  Alphabet 문자 (A-Z) 26 개 + 아라비아 숫자 (0 - 9) 10 개  예 ) Fortran : 기본 문자 집합 + 13 개의 특수문자 (=+ - * / ( ),. $ ‘ : 공백 ) Algol60.
출석수업 과제 – 총 5문제, 10월 25일 제출 정보통계학과 장영재 교수.
재료수치해석 HW # 박재혁.
Part 03 상수, 변수, 자료형 ©우균, 창병모 © 우균, 창병모.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
Report #5 - due: 4/13 다음 10*5의 희소 행렬 A, B를 고려하라.
C 프로그래밍 I.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
제 9 장 구조체와 공용체.
컴퓨터 프로그래밍 기초 [Final] 기말고사
자료 구조: Chapter 3 (2)구조체, 포인터
3장. 변수와 연산자. 3장. 변수와 연산자 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, / 3-1 연산자, 덧셈 연산자 연산자란 무엇인가? 연산을 요구할 때 사용되는 기호 ex : +, -, *, /
윤성우의 열혈 C 프로그래밍 윤성우 저 열혈강의 C 프로그래밍 개정판 Chapter 12. 포인터의 이해.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
프로그래밍 언어 프로그래밍 언어의 개요 프로그래밍 언어의 구문 정의 변수와 영역 자료형 조건문과 반복문 부프로그램
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
23장. 구조체와 사용자 정의 자료형 2.
C#.
JA A V W. 03.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
C 언어 교육 02 주차 – scanf & 반복문과 조건문 교육부장 조하정.
프로그래밍 개요
5. Context-free 문법 5-1. 서 론 5-2. 유도와 유도 트리 5-3. CFG표기법.
Chap 6.Assembler 유건우.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
Java의 정석 제 5 장 배 열 Java 정석 남궁성 강의 의
3장. 변수와 연산자 교안 : 전자정보통신 홈페이지 / 커뮤니티/ 학술세미나
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
에어 조건문.
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
Choi Seong Yun 컴퓨터 프로그래밍 기초 #06 : 반복문 Choi Seong Yun
자바 5.0 프로그래밍.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
Chapter 02. 자바 기본 문법.
Chapter 08. 함수.
17장. 제어문과 내장 함수 제어문 내장 함수 제어문 내장 함수.
문자열 컴퓨터시뮬레이션학과 2015년 봄학기 담당교수 : 이형원 E304호,
Choi Seong Yun 컴퓨터 프로그래밍 기초 #03 : 변수와 자료형 Choi Seong Yun
[ 단원 04 ] 반복과 배열.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
에어 PHP 입문.
Chapter 09. 포인터 1.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
7장. 다양한 형태의 반복문. 7장. 다양한 형태의 반복문 7-1 반복문이란? 반복문의 기능 세 가지 형태의 반복문 특정 영역을 특정 조건이 만족하는 동안에 반복 실행하기 위한 문장 7-1 반복문이란? 반복문의 기능 특정 영역을 특정 조건이 만족하는 동안에 반복.
C 프로그래밍 I.
Chapter 10 데이터 검색1.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
16장. 변수, 연산자, 사용자 정의 함수 변수 배열과 객체 연산자 함수.
Numerical Analysis Programming using NRs
Chapter 11 구조체.
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
제 4 장 Record.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
어서와 C언어는 처음이지 제21장.
 6장. SQL 쿼리.
6 객체.
2019 2학기 9장 배열과 포인터 1. 주소, 주소연산자(&) 2. 포인터, 역참조연산자(*) 3. 배열과 포인터.
Presentation transcript:

컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부

Chapter 6. 프로그래밍 언어

학습목표 프로그래밍 언어 개념에 대해 살펴본다. 프로그래밍 언어의 구문을 정의하는 대표적인 표기법인 BNF에 대해 살펴본다. 변수의 개념과 영역의 개념에 대해 살펴본다. 다양한 자료형에 대해 살펴본다. 실행 순서에 변화를 가져오는 조건문과 반복문에 대해 살펴본다. 하나의 단위로 만들어진 기능인 부프로그램에 대해 살펴본다.

프로그래밍 언어 기계어 어셈블리어 Section 1: 프로그래밍 언어의 개요 컴퓨터에서 일을 수행하기 위한 명령문의 집합인 프로그램을 작성하기 위해 사용하는 기호 체계 저급 언어(low level language)와 고급 언어(high level language)로 분류 기계어 컴퓨터가 직접 이해할 수 있는 유일한 언어 효율성은 높지만 언어 자체가 복잡하고 어려움 컴퓨터의 종류에 따라 다르며, 컴퓨터에 의존적인 경향을 띄어 표준이 없음 어셈블리어 어려운 기계어의 명령들을 쉬운 기호로 나타낸 것 모든 컴퓨터들의 어셈블리어는 같지 않음 기계어에 비해 프로그램을 작성하기가 쉽고, 고급언어와는 달리 하드웨어에 직접적인 접근을 하기 때문에 수행 속도가 빠른 장점

어셈블리어 고급언어 Section 1: 프로그래밍 언어의 개요 컴파일러 : 고급언어로 작성된 프로그램을 컴퓨터는 직접 이해할 수 없으므로 기계어 프로그램으로 번역하는 소프트웨어

Section 2: 프로그래밍 언어의 구문 정의 BNF(Backus-Naur Form) 프로그래밍 언어의 구문을 기술하기 위하여 가장 일반적으로 사용되는 표기법 1960년 ALGOL 60이란 언어의 구문을 정의할 때 최초로 사용 BNF는 생성 규칙들의 집합으로 구성되는데, 생성 규칙은 다음과 같은 형태 ‘|’ 기호 : 선택적인 구조

Section 2: 프로그래밍 언어의 구문 정의 [예] 첫 자가 영문자로 시작하고, 두 번째 문자부터 영문자나 숫자로 이루어진 식별자 비단말(nonterminal) 기호 : <식별자>, <영문자>와 같이 ‘< >’로 묶인 기호 단말(terminal) 기호 : A, B, 0, 1과 같이 프로그램에 직접 나타날 수 있는 기호

Section 2: 프로그래밍 언어의 구문 정의 BNF 예 ‘AA2’라는 식별자가 문법에 맞는지 살펴보자.

Section 2: 프로그래밍 언어의 구문 정의 BNF 예 파스 트리(parse tree) : 유도 과정을 트리로 나타낸 것

Section 2: 프로그래밍 언어의 구문 정의 [예 2] 배정문

Section 2: 프로그래밍 언어의 구문 정의 [예 2] 배정문 ‘AA = B - 20’이라는 배정문이 문법에 맞는지 살펴보자. 주어진 규칙을 이용해서 ‘AA = B - 20’이 유도되므로 문법에 맞는 배정

Section 2: 프로그래밍 언어의 구문 정의 BNF 예(2) 파스 트리

변수 Section 3: 변수와 영역 다음과 같은 속성들이 모여서 변수의 개념이 형성 선언문에 의해 변수를 선언 ① 변수 이름 : 여기서는 x가 된다. 변수의 이름은 약간의 규칙이 있지만 프로그래머가 임의로 정할 수 있다. ② 변수형 : 변수가 가질 수 있는 값들의 자료형으로, 변수 x는 정수형이 된다. ③ 변수 주소 : 변수가 위치하고 있는 메모리 주소인데, 다음은 변수 x가 메모리 주소 0x1000~0x1003에 위치함을 의미한다.

영역 정적 영역 규칙 Section 3: 변수와 영역 그 이름의 사용이 허락되고 있는 프로그램 범위 ④ 변수 값 : 배정문에 의해 부여되는데, 'x=10;'은 변수 x에 10을 저장하는 C 언어 배정문이다. 이런 변수의 값은 그 변수가 위치하고 있는 메모리 영역에 저장된 내용을 말하는 것으로, 변수 x의 값은 10이 된다. ⑤ 변수 영역 : 앞으로 살펴보자. 영역 그 이름의 사용이 허락되고 있는 프로그램 범위 정적 영역 규칙 ALGOL 60에서 도입, 현재 대부분의 언어에서 사용 이름에 해당하는 변수를 찾을 때 외향적인 구조에 따라 동작하는데, 자신을 포함하고 있는 블록에서 선언되었는지 살펴보고 아니면 그 바깥쪽 블록에서 선언되었는지를 조사

Section 3: 변수와 영역 정적 영역 규칙

정적 영역 규칙 Section 3: 변수와 영역 앞 프로그램 실행 순서 ① 우선 02행에서 a와 b를 선언하고, 14행에서 a에 0을, b에 1을 저장한다. 그리고 15행에서 func를 호출한다. ② func를 호출하면 07~12행이 실행된다. 먼저 08행에서 변수 a와 b를 선언하는데, 02행의 변수 a, b와는 이름은 같지만 전혀 다른 변수다. 그리고 10행에서 a에 2를, b에 3을 저장하고, 11행에서 print를 호출한다. ③ print를 호출하면 03~06행을 실행하여 05행에서 a와 b의 값을 출력한다. 이때 어떤 값이 출력되는지는 영역 규칙에 따라 달라지는데, 정적 영역 규칙을 적용한 경우에 어떤 값이 출력되는지 알아보자. 우선 05행의 a와 b를 포함하고 있는 블록(03~06행)에서 a와 b를 선언하고 있는지 살펴보았는데, 선언된 부분이 없다. 그러므로 그 바깥쪽 블록(01~16행)에서 a와 b를 선언하고 있는지 살펴보았는데, 02행에서 선언하고 있는 것을 볼 수 있다. 이 블록의 14행에서 a에 0을, b에 1을 저장했으므로 0과 1이 출력된다.

동적 영역 규칙 앞의 프로그램을 이용한 설명 Section 3: 변수와 영역 APL, SNOBOL 4 그리고 LISP 초기 버전에서 적용된 방식 이름에 해당하는 변수를 찾을 때 외향적인 구조에 기반하지 않고, 부프로그램들의 호출 순서에 기반 먼저 자신을 포함하고 있는 블록에서 선언되었는지를 보고 아니면 자신을 포함한 블록(부프로그램)을 호출한 문장을 포함하고 있는 블록에서 선언된 것인지를 조사 앞의 프로그램을 이용한 설명 05행을 포함한 블록(03~06행)에서 a와 b를 선언하고 있는지를 살펴보는데, 선언된 부분이 없다. 그러면 이 블록(print)을 호출한 문장(11행)을 포함하고 있는 블록(07~12행)에서 a와 b를 선언하고 있는지를 살펴보는데, 08행에서 선언하고 있는 것을 볼 수 있다. 이 블록의 10행에서 a에 2를, b에 3을 저장했으므로 2와 3이 출력된다.

12는 정수형이고, 3.456은 부동소수점형 변수의 형은 선언문에서 결정 Section 4: 자료형 자료형이란 저장할 수 있는 값의 집합뿐만이 아니라 수행할 수 있는 연산의 집합까지 포함하는 의미를 지님 자료형은 기본 자료형, 구조적 자료형 그리고 포인터 자료형 등으로 구분할 수 있는데, 여기에서는 기본 자료형과 구조적 자료형에 대해 살펴본다.

기본 자료형 Section 4: 자료형 수치형 정수형 int형이 short int형보다는 크기가 크거나 같고, long int형이 int형보다는 크기가 크거나 같다. 부동소수점형 : 실수를 표현하는 방식

문자열형 Section 4: 자료형 PL/Ⅰ : 문자열을 값으로 가질 수 있는 변수를 선언할 수 있는 최초의 언어  길이가 10인 문자열 변수 A를 선언 문자열과 관련된 연산 |는 문자열과 문자열을 연결 LENGTH(A)는 문자열 A의 길이를 반환 SUBSTR(A, I, J)는 문자열 A의 I번째 문자로 시작해서 J개의 문자열을 추출 INDEX(A, B)는 문자열 A에서 문자열 B의 위치를 찾음 VERIFY(A, B)는 문자열 A에서 문자열 B에 속하지 않는 첫 번째 문자의 위치를 찾음 TRANSLATE(A, B, C)는 문자열 A에서 C에 있는 문자들을 B에 있는 문자들로 교체

여러 자료를 묶어서 하나의 단위로 처리하는 자료형 Section 4: 자료형 구조적 자료형 여러 자료를 묶어서 하나의 단위로 처리하는 자료형 배열은 집합체에서의 위치로 원소를 식별하는 동질형 자료의 모임, 레코드는 이름으로 원소를 식별하는 이질형 자료의 모임 배열 이름, 배열의 차원, 배열 원소의 형, 첨자 범위 등으로 특징 FORTRAN, Ada에서는 이름이 A이고 크기가 2×3인 2차원 배열을 다음과 같이 소괄호를 이용해서 나타냄 ALGOL 60, Pascal 등 대부분의 언어는 다음과 같이 대괄호를 이용해서 나타냄 이름이 A, 크기가 5 그리고 원소의 형이 정수형인 1차원 배열을 선언(C 언어)

레코드 Section 4: 자료형 이질형 자료의 모임 1960년대 초기에 COBOL에서 도입 C 언어의 구조체(structure) 정의된 구조체인 struct student형의 변수 선언 필드에 접근

조건문 양자택일문과 다자택일문 Section 5: 조건문과 반복문 조건문은 조건에 따라 둘 또는 그 이상의 실행 경로 중에서 하나를 선택할 수 있는 수단을 제공 양자택일문과 다자택일문 양자택일문 양자택일문을 처음 도입한 언어 : ALGOL 60

양자택일문 Section 5: 조건문과 반복문 C 언어의 if-else 구조 만약 참이거나 거짓인 경우에 실행되어야 하는 문장이 여러 개인 경우 if-else 구조에서 다음과 같은 경우에 else가 첫 번째 if와 연결되는 것인지 두번째 if와 연결되는 것인지 해석이 어려운 경우가 발생 가장 가까이 있는 if와 연결되므로 두번째 if와 연결되는 것이다. 만약 첫번째 if와 연결을 시키려면 중괄호를 이용

Section 5: 조건문과 반복문 양자택일문 else-if 구조

Section 5: 조건문과 반복문 다자택일문 ALGOL-W의 case 문이 처음 도입된 다자택일문 C 언어는 switch 문

반복문 Section 5: 조건문과 반복문 특정 부분을 반복해서 실행하는 구조 FORTRAN의 DO 문

Section 5: 조건문과 반복문 반복문 while 문 만약 반복하고자 하는 문장이 여러 개인 경우

Section 5: 조건문과 반복문 반복문 do-while 문 다음과 같이 중괄호로 묶는 것이 바람직

반복문 Section 5: 조건문과 반복문 for 문 초기식, 조건식, 변환식 등 수식은 생략해도 되지만 수식을 생략할 경우라도 세미콜론(;)은 생략이 불가능 초기식을 생략할 경우

기능A를 하나의 단위로 만든 프로그램 구조 : 부프로그램 Section 6: 부프로그램 기능A를 여러 번 실행하는 프로그램 구조 기능A를 하나의 단위로 만든 프로그램 구조 : 부프로그램

Section 6: 부프로그램 부프로그램 부프로그램A를 ‘부프로그램 정의’ 부분이라 하고, 부프로그램이 실행되도록 명령하는 문장을 ‘부프로그램 호출’이라 함 부프로그램이 있는 프로그램의 실행 순서

부프로그램의 종류 Section 6: 부프로그램 서브루틴(subroutine)과 함수(function)로 구분 함수가 있는 프로그램의 동작

매개변수 Section 6: 부프로그램 매개변수를 이용하면 실행될 부프로그램에게 값을 전달할 수 있음 부프로그램의 형식 호출 형식 C 언어에서 function이라는 함수를 정의하는 예 함수를 호출

부프로그램 Section 6: 부프로그램 매개변수 전달 방식 (C 언어) 값에 의한 전달 실 매개변수의 값을 형식 매개변수에 저장해서 동작하는 방식

Section 6: 부프로그램 부프로그램 주소에 의한 전달 실 매개변수의 주소를 형식 매개변수에 저장해서 동작하는 방식

Thank you