6장 데이터 타입(3) 2016. 5. 11 순천향대학교 컴퓨터공학부 하 상 호.

Slides:



Advertisements
Similar presentations
2 장 자료형 및 연산자 - 김욱동 -. 목 차목 차  변수  자료형  유니코드  리스트  튜플  세트  사전  부울  얕은 / 깊은 복사.
Advertisements

Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 프로그래밍 언어론 2nd edition Tucker and Noonan 1 장 소 개 A good programming language is a.
Copyright © 2015 Pearson Education, Inc. 6 장 : 프로그래밍 언어.
3 학년 문제가 남느냐, 내가 남느냐 1. ( 아씨방 일곱 동무 ) 아씨의 방에는 바느질을 위한 친구가 몇 명이 있었나요 ? 정답은 ? 일곱.
내 마음의 버 스 이천신하교회 청년부. 이름 : 한상훈 나이 : 30 살 종교 : 기독교 ( 모태신앙 ) 생활신조 : 인생은 한방 ! 로또나 사자 이상형 : 청순 가련한 모태미녀 특이사항 : 걸그룹 노래에 환장함 식스팩을 갖기엔 슬픈 몸을 타고 남.
독서골든벨 2009 학년도 6 학년 1 학기 6-10 반. 1. 이야기 삼국유사 정대한 원효대사는 수행을 위해 떠나던 중 피곤하여 숲 속에서 잠이 들었다. 잠결에 너무 목이 마른 나머지 어디에 담겨있는 물을 맛있게 마셨나요 ?
2013 년 목 차 용어의 정의 위기경보 수준 국가 생물테러 대응 체계도 반 · 팀별 소방의 임무.
두 손 들고 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 두 손 들고 찬양합니다 두 손 들고 찬양합니다 다시 오실 왕 여호와께 다시 오실 왕 여호와께 오직 주만이 나를 다스리네 오직 주만이 나를 다스리네 나 주님만을.
Copyright © 2006 The McGraw-Hill Companies, Inc. 프로그래밍 언어론 2nd edition Tucker and Noonan 5 장 타입 “ 타입은 컴퓨터 프로그래밍의 효소이다 ; 프로그래밍은 타입을 통해 소화할만한 것이 된다.” 로빈.
지금은 기도 하는 시간입니다 1. 송구영신예배를 위해서 2. ‘크리스마스 이브’ 행사를 준비하는 교육 기관을 위하여
제 4 장 변수, 영역, 수명 변수 바인딩 영역 기억장소 할당과 수명 변수와 그 환경 변수 초기화 상수와 변수.
현대사회의 여성문제와 여성복지 3조 권경욱 강향원 황대인 변갑수 박창욱 김지현.
제 3장 프로그래밍 언어 설계 3.1 설계 기준의 역사적 변천 3.2 효율성 3.3 일반성, 직교성, 획일성
어서와 Java는 처음이지! 제2장 자바 프로그래밍 기초.
Chapter 3 – 프로그래밍 언어 설계 Outline 3.1 설계 기준의 역사적 변천 3.2 효율성
고교평준화의 득과 실 김영주 이지영 최윤영.
쉽게 풀어쓴 C언어 Express 제13장 구조체 C Express Slide 1 (of 25)
제 7 장 문장 구조화 제어문 지정문 조건문 반복문 GOTO 문 비결정적문.
알고리즘(Algorithm)  알고리즘 개요 (효율, 분석, 차수) Part 1 강원대학교 컴퓨터과학전공 문양세.
쉽게 풀어쓴 C언어 Express 제13장 구조체 C Express.
제 6 장 데이터 타입 6.1 데이터 타입 및 타입 정보 6.2 타입의 용도 6.3 타입 구성자 6.4 사례 연구
Ruby 프로그래밍 1 문자열 입출력 제어구조 looping 함수 정의
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
Chapter 02 자바 기본구조 자바 프로그래밍의 기초적인 문법을 소개
제7장 제어구조 I – 식과 문장.
2강. JAVA 프로그래밍이란?-II & 변수 JAVA 프로그램 환경설정과 실행 방법 변수란?
제 5 장 자 료 형 기본 데이터 형 포인터 형 배열 데이터 형 스트링 집합 형 레코드 공용체 형 형 시스템.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
프로그래밍언어론 2nd edition Tucker and Noonan
제2절 법인세의 계산구조와 세무조정 1. 각 사업연도소득에 대한 법인세 계산구조 회계와 사회 결산서상 당기순이익
제2장 데이터 및 수식.
문항 제작, 유형 및 분석 윤장민 권애란 민선경 정혜민.
2010년 직원연수 자료 제1차 : 4월 16일 ~ 17일 제2차 : 4월 23일 ~ 24일
제 4주 2014년 1학기 강원대학교 컴퓨터학부 담당교수: 정충교
5장 이름, 바인딩, 영역(2) 순천향대학교 컴퓨터공학과 하상호.
6장 데이터 타입(2) 순천향대학교 컴퓨터공학부 하 상 호.
DataScience Lab. 박사과정 김희찬 (월)
자바의 신 Volume 1 1부(1~3장) 자바의 신 메인 홈 : 자바의 신 페이스북: 자바의 신 문제 풀이 :
Introduction to Programming Language
Java의 정석 제 2 장 변수(Variable) Java 정석 남궁성 강의
알고리즘(Algorithm)  알고리즘 개요 (효율, 분석, 차수) Part 년 봄학기
6장 데이터 타입(2) 순천향대학교 컴퓨터공학부 하 상 호.
2. 상호배제와 동기화 01 program versionone; // 첫 번째 버전
[CPA340] Algorithms and Practice Youn-Hee Han
프로그래밍 원리 Chapter 04 자료 처리와 연산자 신한대학교 IT융합공학부 박 호 균.
4장 - PHP의 표현식과 흐름 제어-.
Apache Spark Tutorial 빅데이터 분산 컴퓨팅 박영택.
프로그래밍언어론 2nd edition Tucker and Noonan
제 5장 변수, 바인딩, 식 및 제어문 5.1 변수 5.6 표현식 5.2 바인딩 5.7 조건문 5.3 선언 5.8 반복문
Chapter 4 변수 및 바인딩.
C 프로그래밍 기초.
Hello, Python! #3 <부제: 코딩은 혼자하는 것이다>
Signature, Strong Typing
Signature, Strong Typing
자바 5.0 프로그래밍.
Signature, Strong Typing
빛 의 합 성 과 학 1 학년 Ⅱ. 빛 > 2. 빛의 색( 8/8 ) [초기 화면]
제1회 PNU 코딩경진대회 부산대학교 소프트웨어교육센터.
언어 언어 사람 사람 사람들간의 의사 소통을 위한 수단
Chapter 3 – 프로그래밍 언어 설계 Outline 3.1 설계 기준의 역사적 변천 3.2 효율성
전류는 자계에서 힘을 받는다 기계공학교육 박지훈 황인석 한만혁 이덕균.
자료구조 강의소개 정성훈 연락처 : 이메일 : 연구실 : 연219호 연락처 : 이메일 : 홈페이지: 정성훈.
8단계 3층을 완성한다 Case 1 Case 2 Case 3 Case 4
Python Tutorial 4: Data Structures
나-는 믿음으로 주 얼굴 보리니- 아침에 깰 때에 주형상에 만족하리 나주님 닮기 원하네 믿음으로 주얼굴 보리라 -
서술형 평가 확대 한국교육과정평가원 김 소 영.
제 1장 프로그래밍 언어 소개 1.1 프로그래밍 언어란 무엇인가 1.2 프로그래밍 언어를 배워야 하는 이유
논리회로 설계 및 실험 9주차.
Python 기본.
9장 부프로그램 순천향대학교 컴퓨터공학부 하 상 호.
Presentation transcript:

6장 데이터 타입(3) 2016. 5. 11 순천향대학교 컴퓨터공학부 하 상 호

목차 서론 기본 데이터 타입 문자 스트링 타입 사용자-정의 순서 타입 배열 타입 연상 배열 레코드 타입 튜플 타입 리스트 타입 공용체 타입 포인터와 참조 타입 타입 검사 강타입 타입 동등

튜플 타입 튜플(tuple)은 레코드와 유사하나 원소들이 명명되지 않는 데이터 타입 In Python myTuple = (3, 5.8, ‘apple’) # 요소들은 동일 타입일 필요가 없다 myTuple[1] # 튜플의 첫번째 원소 참조 myTuple[1] = 5 # Error: 튜플은 변경 불가(immutable) myTuple =+ yourTuple # +는 접합 연산자로 새로운 튜플 생성 del # 삭제 용도: 배열이 매개변수로 전달되나 변경되지 않아야 하는 경우 함수가 여러 개의 값을 반환할 때

리스트 타입 LISP에서 처음으로 도입, 최근에 일부 명령형 언어에 도입 In LISP, Scheme 리스트는 괄호로 구분되고, 원소들은 콤마로 구분되지 않는다. (A B C D) (A (B C) D) 데이터와 코드는 동일한 형식을 갖는다 (A B C)가 코드로 해석될 때, 함수 A가 매개변수 B C에 적용된다 해석기는 리스트가 무엇인지를 알 필요가 있고, 리스트가 데이터일 경우에 어포스트로피로 표시한다. ‘(A B C)는 데이터이다.

리스트 연산 리스트 분리 함수 리스트 생성 함수 (CAR ‘(A B C)) // 리스트의 첫번째 원소 반환 (CDR ‘(A B C)) // 리스트의 첫번째 원소를 제외하고 반환 리스트 생성 함수 (cons ‘A ‘(B C)) // 첫번째 매개변수를 두번째 매개변수 리스트에 // 포함시켜서 새로운 리스트 생성 (list ‘A ‘B ‘(C D)) // 매개변수들을 원소로 포함하는 리스트 생성/반환

리스트 예: Python Python은 리스트 타입 제공 Python의 배열로서도 역할 원소들은 임의 타입 가능 리스트는 변경 가능(mutuable) 튜플처럼 사용 가능: 인덱싱, 접합, 슬라이싱(부분 참조), in 등 myList = [3, 5.8, “grape”] x = myList[1] //x에 5.8을 할당: 리스트 원소들은 0부터 인덱싱 del myList[1] // 두번째 원소 삭제 리스트 함축(list comprehension) 지원: 집합 표기법에 기반 [x*x for x in range (12) if x % 3 == 0] // range 함수는 [0, 1, 2, …, 11, 12]의 배열 생성 // 조건이 배열 각 원소에 적용되어 그 결과들로 구성된 새로운 배열 구성

공용체 타입 공용체(union)는 그 변수가 프로그램 실행 중에 다른 시기에 다른 타입의 값이 저장할 수 있는 타입 설계 고려사항 타입 검사가 요구되는가? => 그러한 타입 검사는 동적 공용체가 레코드에 포함되어야 하는가?

공용체 유형 자유 공용체(free union) 판별 공용체(discriminated union) 타입 검사를 지원하지 않음 언어 예: Fortran, C, C++ 판별 공용체(discriminated union) 타입 검사 지원 판별자(discriminant) 또는 태그(tag)라는 타입 지시자를 포함 언어 예: Ada

예제: 자유 공용체 In C union flexType { int intEl; float floatEl; }; union flexType e; float x; … e.intEl = 27; x = e.floatEl; // 타입 검사가 이루어지는가?

예제: 판별 공용체 Ada에서 가변 레코드(variant record)로 명세 판별자 type Shape is (Circle, Triangle, Rectangle); type Colors is (Red, Green, Blue); type Figure (Form: Shape) is record Filled: Boolean; Color: Colors; case Form is when Circle => Diameter: Float; when Triangle => Leftside, Rightside: Integer; Angle: Float; when Rectangle => Side1, Side2: Integer; end case; end record; 가변 부분

예제: 판별 공용체 type Shape is (Circle, Triangle, Rectangle); type Colors is (Red, Green, Blue); type Figure (Form: Shape) is record Filled: Boolean; Color: Colors; case Form is when Circle => Diameter: Float; when Triangle => Leftside, Rightside: Integer; Angle: Float; when Rectangle => Side1, Side2: Integer; end case; end record; 판별 공용체 사용 Figure: figure1; // 무제한 가변 레코드(unconstrained variant record) Figure: figure2(form=>triangle); // 제한 가변 변수(constrained // variant variable) 선언, // 다른 가변 타입으로 변경 불가 // 정적 타입 검사 가능 … figure1 := (filled=> True, color=>Blue, Form=>rectangle, side1=>12, side2=>3); // 태그 포함 모든 필드 배정 요구 if (figlure1.diameter > 3.0)… // 실행시간중 동적 타입 검사 // Form 태그가 Circle인지를 판단

공용체 평가 공용체가 안전한가? 자유 공용체 vs. 판별 공용체 언어 예 C, C++, Ada Java, C#

공용체 타입 구현 가장 큰 가변 요소를 위한 충분한 기억공간 할당

판별 공용체 타입 구현 판별 공용체 태그는 가변 요소와 함께 저장되며, 각 가변요소에 대해서 서술자 저장 type Node (Tag : Boolean) is record case Tag is when True => Count : Integer; when False => Sum : Float; end case; end record; 가변 요소별로 한 개의 항목 포함