Chapter 5 Data Types SANGJI University KO Kwangman 1. Introduction o Type supports abstraction Real World 유한성 (finite)
|
|
- 보배 해
- 5 years ago
- Views:
Transcription
1 Chapter 5 Data Types SANGJI University KO Kwangman () 1. Introduction o Type supports abstraction Real World 유한성 (finite) 추상화 (abstraction) Programming Language concrete representation Programming Language Implementation Natural Numbers int data 2's complement binary digits in sizeof(int) bytes Real Numbers double data IEEE754 binary digits in sizeof(int) bytes 2 o 타입 (type) ~ 값의집합과그값들에대한연산의집합. ~ 정수타입 값 :..., -2, -1, 0, 1, 2,... 연산 : +, -, *, /, <,... 로구성 ~ 불타입 값 : true, false 연산 : Ù, Ú, Ø 3 1
2 5.1 자료형오류 o 컴퓨터에저장된데이터 ~ 자료형정보를가지고있지않다. ~ 기본적으로비트들의열 (sequence) 을저장 예 : o 비트열의가능한해석 ~ 부동소수점수 비트정수 1,079,508,992. 두개의 16 비트정수 와 0 네개의 ASCII X NUL NUL 4 o 타입오류 (type error) ~ 어떤연산을해당하지않는타입의값에적용함으로써발생하는오류 ~ 어셈블리프로그램작성시에자주발생 ~ 고급언어의경우에는컴파일러와실행시간시스템이타입오류를검사및추출 ~ 타입체계 (type system) 는타입오류를검출하기위한기반을제공 정적및동적타입결정 o 타입체계 ~ 덧셈에사용되는값은숫자여야한다는것과같은제약을보장 ~ EBNF 를사용하여문법적으로표현할수없음. o 자료형검사 ~ 컴파일시간에타입검사수행 C 언어 ~ 실행시간에타입검사수행 Perl 언어 ~ 두가지방법을다사용하기도한다. Java 언어 6 2
3 o statically typed ~ 변수의타입이컴파일시간에선언에의하여고정 ~ 정적으로타입이결정 (statically typed) 되는언어 o dynamically typed ~ 변수의타입이저장되는값에따라실행중에볂하 ~ 동적으로타입이결정 (dynamically typed ) 되는언어 7 o strongly typed 언어 ~ 타입체계가컴파일중이나실행중에모든타입오류를찾아낼수있을언어 ~ 동적타입결정또는정적타입결정. ~ 유니온 (union) 타입 많은언어들에서타입체계의허점의원인 ~ 동적으로타입이결정되는언어는각각의값에타입을함께저장 기본타입 o 현재 32-bit 컴퓨터에서사용되는용어 ~ Nibble: 4 bits ~ Byte: 8 bits ~ Half-word: 16 bits ~ Word: 32 bits ~ Double word: 64 bits ~ Quad word: 128 bits o 대부분의언어에서숫자타입은유한한크기 ~ a + b, Overflow 가능성 ~ 수학과의차이점존재 : a + (b + c) ¹ (a + b) + c 3
4 o 중복 (overloaded) ~ 함수나연산자가인수의타입에따라그의미가달라지는것 ~ a + b in Java 정수덧셈 부동소수점수덧셈 문자열접합 (concatenation) ~ 혼합모드 하나는정수이고다른인수는부동소수점수인경우 o 자료형변환 ~ narrowing 변환 원래값보다더적은수의비트열을결과로생성하는타입변환 ~ widening ~ 묵시적변환이허용되지않는이유? 사용자정의자료형 o 열거형 (Enumeration) : enum day {Mon, Tue, Wed, Thu, Fri, Sat, Sun}; enum day myday = Wednesday; ~ C/C++ 에서위타입들의값은 0,..., 6 이사용된다. ~ Java 는더강력한구조가사용 for (day d : day.values()) Sytem.out.println(d); 12 4
5 Pointer o 포인터 (pointer) ~ 다른변수의주소를가지고있는변수 char a='a'; char *p; p = &a; 26 주소 26 A 포인터 p 변수 a ~ 포인터가가리키는내용의변경 : * 연산자사용 *p= 'B'; 13 o 포인터연산자 ~ & 연산자 변수의주소를추출 ~ * 연산자 포인터가가리키는곳의내용을추출 *p 26 포인터 p 주소 26 A 변수 a &a 14 o 포인터의사용 struct Node { int key; struct Node* next; }; struct Node* head; 15 5
6 o 포인터사용에서발생될수있는문제 ~ 신뢰성있는소프트웨어의개발을방해. ~ 오류가생기기쉽다 ~ 버퍼넘침 (Buffer overflow), 메모리누출 (memory leaks) ~ 특히 C 에서문제가많이발생함 16 Array, List o 배열 (array) ~ 동일자료형 (same type) 의자료들이순서 (linear) 있게구성된집합 ~ 연속된기억공간차지 ~ 유한한개수의자료가저장됨 ~ 직접접근 (direct access) 기준위치에대한상대적위치를나타내는인덱스 (index) 를사용하여가능 시작주소 (base) A[0] A[1] A[9] 인덱스 ( 첨자 ) 배열이름 : 기억장소의시작위치 ( 주소 ) 17 o Java 에서의배열 ~ 선언 (declaration) 생성될배열시작위치저장 int dsint [] ; 1) int dsint [] 3) 생성된배열의 ~ 생성 (creation) 힙메모리에서배열크기만큼의기억공간을할당한후시작주소를배정 시작주소전달 2) dsint = new int[3] dsint = new int[3] ; dsint[0] dsint[1] dsint[2] 18 6
7 o Homeworks ~ 연결리스트 ~ 구조체 ~ 유니온 ~ 문자열 ~ 부분범위형 19 명시적자료형 (Explicit Typing) o 정적자료형검사 (static type checking) ~ static type checking is still controversial. ~ 유연성 (flexibility) 자료형결정및검사를느슨또는반대 ~ 신뢰성 (reliability) 또는보안 (security) 최대한제약성 (restrictiveness) 엄격한번역시간자료형검사 Flexibility type-less language still controversial Reliability (security) strongly typed language 20 정적자료형검사의이유 1. 수행효율성 (execution efficiency) ~ no need to run-time type checking ~ 효율적인메모리할당 ~ 효율적인목적기계코드생성 2. 번역효율성 (Translation Efficiency) ~ 분리컴파일 (separate compilation) 가능 ~ 재컴파일시컴파일되는코드의양을줄일수있음 3. 작성용이성 (writability, Coding Efficiency) ~ 번역시에타입에러를조기에발견 21 7
8 4. 보안과신뢰성 (security & reliability) ~ 실행시발생될수있는에러를사전차단 5. 판독성 (readability) ~ 명시적자료형선언은자료형설계를문서화 ~ good for documentation 6. 모호성제거 (remove ambiguity) ~ 다중적재된명칭 (overloaded names) 에대한모호성해결 (resolving) 자료형정의 o 정의 _1 ~ a set of values ~ ex) the data type int in Java ~ V int = { x x Z, ~ -2,147,483,648 x 2,147,483,647 } o 정의 _2 ~ a set of values with a set of operations ~ ex) the data type int in Java V int = { x x Z, -2,147,483,648 x 2,147,483,647 } with the following set of operations F int = { +, -, *, } 23 자료형검사, 자료형추론 o 자료형검사 (type checking) ~ 번역기가프로그램내에자료형정보에문제가없는지검사한과정 ~ 연산자 ( 서브프로그램 ) 과피연산자 ( 매개변수 ) 사이에자료형의일관성 (type consistency) 을검사한과정 o 자료형추론 (type inference) ~ 수식에자료형부착 (attaching) 시키는동작 ~ z=x/y 에서 z 의자료형을결정하기위해서? x, y 의의자료형이결정되어야함. o 상호의존족 ~ 자료형검사와자료형추론은상호의존적 24 8
9 Constructing Types o 자료형구성자 (type constructors) ~ 기본자료형으로부터새로운자료형을구성 ~ Derived types are parameterized type constructors. Basic Types (primitive types) int, double, type constructors 사용자-정의자료형 (user-defined data type) Derived Types array, structures, type constructors 25 o 자료형선언 (type declaration) ~ 새로운자료형에이름부여 (In C example) typedef int int10[10]; 26 자료형시스템 (type system) o 자료형동등성 (type equivalence) 알고리즘 ~ 두개의자료형이일치하는지여부를결정하는알고리즘 ~ 방법? o 자료형시스템 (type system) ~ 자료형구성방법 ~ 자료형동등성알고리즘 ~ 자료형검사, 자료형추론 ~ 27 9
10 Typing o 엄격한자료형 (strongly-typed) 언어 ~ 모든자료형에러가번역시간에발견 ~ 가능한가장이른시점에프로그램내의모든에러발견 ~ 예외 (exception) 검사 실행도중에만검사할수있는오류 s. ~ 불안전한프로그램은대부분번역시간에거부 ~ 너무엄격해서적법한프로그램까지거부 ~ 적적한자료형정보를프로그래머가명시적으로제공 ~ Ada, Haskell, Pascal, 28 o 느스한자료형 (weakly-typed) 언어 ~ the languages which detect type errors during translation time but allow a few loopholes o 타입결여 (untyped) 언어 ~ 정적자료형시스템을지원하지않는언어 ~ 데이터안전성에관한검사가실행시간에이루어짐. ~ Scheme, LISP, Smalltalk, Perl, 29 Safe Programs o Every well-typed programs are safe but not vice versa. contain datacorrupting Executable Programs errors Legal Programs (Safe Programs) Unsafe Well-Typed Programs Programs 30 10
11 단순타입 (Simple Types) o 단순타입 ~ atomic types ~ the types which contain no other type substructures o 단순타입의분류 Simple Types Predefined Simple Types User-Defined Ordinal Types Defined Operators: successor predecessor comparison Enumeration Types Subrange Types 31 Ordinal Type Example o Enumerated Type in C enum Color { Red, Green, Blue }; o Enumerated Type in Ada type Color_Type is (Red, Green, Blue); o Enumerated Type in ML datatype Color_Type = Red Green Blue; o Java does not have enumerated types. o Subrange Type in Ada type Digit_Type is range 0..9; 32 Some Notes on Simple Types o 순서타입 (ordinal type) ~ 비교연산자를항상지원하지않음 ~ ex) Subrange of floating-point numbers in Ada. type Unit_Interval is range ; o 부분범위타입 (subrange type) type Digit_Type is range 0.. 9; ~ 효과? o 단순자료형은하드웨어상에서직접구현 ~ 하드웨어효율성중시 33 11
12 Type Constructors o 타입 ~ 집합 (set) ~ 집합연산이기존의타입에서새로운타입을구성하는데사용 o 타입구성자 (type constructor) ~ 집합연산이타입에적용 ~ 데카르트곱, 합집합, 멱집합, 함수집합, 부분집합. 34 데카르트곱 (cartesian product) o Cartesian product ~ a set of pairs ~ 두집합 U, V 에대한모든원소들의순서쌍 (ordered pair) U ⅹ V = { (u, v) u U and v V } p 1 : U ⅹ V U p 2 : U ⅹ V V with projection functions p 1 and p 2 : p 1 ((u, v)) = u p 2 ((u, v)) = v o corresponding to the Cartesian products ~ record (structure) constructors 35 Example: Structure Types in C struct IntReal // IntReal = int ⅹ double { int i; double r; }; struct IntReal x = {1, 2.5}; // x = (1, 2.5) IntReal x.i // p 1 (x) x.r // p 2 (x) component selector operation (structure member operation) 36 12
13 합집합 (union) o 합집합종류 ~ 비구별합집합 (undiscriminated union) normal set union ~ 구별합집합 (discriminated union) 원소를구별하기위한태그 (tag) 가첨부 37 o Example: Union in C ~ undiscriminated union: a union itself ~ discriminated union: a union embedded in a structure union IntOrReal { int i; double r; }; enum Disc {IsInt,IsReal}; struct IntOrReal { enum Disc which; union { int i; double r; } val; }; 38 More Safe Union o Variant Records in Ada ~ the discriminant and the value should be assigned at once type Disc is (IsInt, IsReal); type IntOrReal (which: Disc) is record case which is when IsInt => i:integer; when IsReal => r:float; end case; end record;... x: IntOrReal := (IsReal,2.3); o Datatype in ML ~ enumerators may include data fields ~ pattern matching using case expressions datatype IntOrReal = IsInt of int IsReal of real;... fun printintorreal x = case x of IsInt(i) => printint i IsReal(r) =>printreal r ; 39 13
14 부분집합 (subset) o 부분집합 ~ supported by subtypes( 부분자료형 ). o In Ada ~ subtypes and subrange types are different: ~ subtype subtype IntDigit_Type is integer range 0..9; ~ new type (that is a subrange of an existing type) type Digit_Type is range 0..9; ~ fixing the variant part of a variant record type subtype IRInt is IntOrReal(IsInt); subtype IRReal is IntOrReal(IsReal); 40 Arrays and Functions o Consider a function f: U V If U is an ordinal type, f corresponds to an array: U: index type, V: component type f(i) V which i U o Array Size Problem ~ the size of an array may be or may not be the part of an array 41 Array Example: C/C++ o The size of an array is not part of the array. ~ When passing array parameters, the sizes of the arrays may have to be passed as separate parameters. int array_max (int a[], int size); ~ In a formal parameter, the array notation = pointer. o Difference between C and C++. ~ 교재가틀렸다. const int Size = 5; int x[size]; /* illegal C, ok in C++ */ int x[size*size]; /* illegal C, ok in C++ */ 42 14
15 Array Example: Java, Ada o In Java, ~ the size of an array is the part of the array ~ array can be dynamically allocated o Unconstrained Array in Ada ~ dynamically sized array ~ 배열선언시크기결정 // a part of Figure int [] x = new int[u] ; // Dynamic array allocation for (int i = 0; i < x.length; i++) x[i] = i;... type IntToInt is array (INTEGER range <>) of INTEGER;... declare x: IntToInt(1..size); begin for i in x'range loop x(i) := i; 43 Multidimensional Array o Supporting Multidimensional Array ~ Multidimensional array may be simulated by arrays of arrays (C, C++, Java) o 기억장소할당 (memory allocation) ~ Row-Major : natural way for arrays of arrays ~ Column-Major : FORTRAN ~ 특정원소접근공식? Row-Major: Column-Major: Passing Multidimensional Array o 배열을매개변수로전달 ~ 배열의크기가배열의일부로간주 there is no problem of array parameters. ~ 배열의크기가배열의일부로간주되지않는경우 매개변수전달시배열의크기를전달 o passing 2-dimensional array in C/C++. ~ When the both dimensions are known ~ When the 1 st dimension should be passed ~ When the both dimensions should be passed 45 15
16 Passing no Dimensions #include <iostream> using namespace std; const int R = 3, C = 3; int sum(int a[r][c]) { int sum = 0; for (int i = 0; i < R; ++i) for (int j = 0; j < C; ++j) sum += a[i][j]; return sum; } main() { int a[r][c] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; cout << " = " << sum(a) << endl; } 46 Passing the 1 st Dimension #include <iostream> using namespace std; const int R = 3, C = 3; int sum(int a[][c], int row) { int sum = 0; for (int i = 0; i < row; ++i) for (int j = 0; j < C; ++j) sum += a[i][j]; return sum; } main() { int a[r][c] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; cout << " = " << sum(a, R) << endl; } 47 Passing the Both Dimensions #include <iostream> using namespace std; int sum(int a[], int row, int col) { int sum = 0; for (int i = 0; i < row; ++i) for (int j = 0; j < col; ++j) sum += a[i*col+j]; return sum; } const int R = 3, C = 3; main() { int a[r][c] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; cout << " = " << sum(&(a[0][0]), R, C) << endl; } 48 16
17 Some Notes on 2-Dimensional Array o Equivalences and Differences ~ for a constant N int a[n] int a[] int *a ~ for constants M and N int a[m][n] int a[][n] int (*a)[n] ~ beware that int a[][n] int **a o Declarations of C/C++ ~ declarations implies the usages int *a[n]; int (*a)[n]; 49 Pointer(Reference) Types o Pointer(Reference) Type ~ 집합연산에대응되지않는타입구성자 ~ 지정된자료형을지칭 ( 참조 ) 하는모든주소들의집합 ~ 자동쓰레기수집에허용되는언어에서포인턴묵시적 Java, ML, Scheme o 참조 vs. 포인터 ~ 참조 : 시스템제어하에있는객체의주소 값으로사용및연산이가해질수없음. ~ 포인터 값으로사용및연산이가해질수있음. double r = 2.3, &s = r; 50 o In C and C++, arrays are constant pointers int a[] = {1,2,3,4,5}; int* p = a; printf( %d \n, *p); printf( %d \n, *(p+2) ); printf( %d \n, *(a+2) ); printf( %d \n, 2[a]); a[2] *(a + 2) 2[a] // Wow! 51 17
18 Recursive Types o 순환타입 (recursive types) ~ a type that uses itself in its declaration ~ pointers are useful for recursive types o The Size Problem of Recursive Types ~ require that the maximum size of a data type should be determined at translation time. 52 struct CharList { char data; struct CharList next; }; /* illegal! */ union CharList { enum { nothing } empty; struct { char data; union CharList next; } charlistnode; }; /* still, illegal! */ struct CharListNode { char data; struct CharListNode* next; }; typedef struct CharListNode* CharList; /* Now, legal */ 53 Data Types and the Environment Fully Dynamic Environment Traditional Environment (stack & heap) Recursive Types General Function Types Recursive types and function types are implemented by pointers Functional Languages Algol-style Languages 54 18
19 The Type Structure of C 55 The Type Structure of Java 56 Simplified Type Structure of Ada 57 19
20 타입동등성 (Type Equivalence) o 타입동등성이란? ~ 두개의타입이어느때같은 (= 일치 = 동등 ) 한가! ~ 종류 구조적동치 (structural equivalence) 이름동치 (name equivalence) 선언동치 (declaration equivalence) o 구조적동치 ~ 두개의타입이동일한구조 (same structure) ~ 동일한구조 the same type constructor and the same component types. ~ 교재 PP o 이름동치 ~ 두개의타입은공일한이름을가질때에만동등 o Declaration Equivalence ~ Two types are equivalent if they are derived from the same name. 59 Complicating Factors o Array Size ~ 배열의크기를배열의한부분으로간주? o Field Names of Record Types ~ The following RecA and RecB should be structurally equivalent (char ⅹ int) but not in practice because of the field names. struct RecA { char x; int y; }; struct RecB { char a; int b; }; 60 20
21 Language Example: Ada o Ada ~ pure name equivalence the variables a and b in a, b: array (1..10) of integer; are not type equivalent because the above declaration is considered as a shorthand for a: array (1..10) of integer; b: array (1..10) of integer; ~ the new types and the subtypes are different each other new type type Age is new integer; subtype: compatible to the original type subtype Age is integer; 61 Language Examples: Others o Pascal ~ every type constructors introduce a new type ~ new type names for existing type names are equivalent o Java ~ no typedef constructs ~ class and interface declarations introduce a new type name ~ inheritance hierarchy (subtype) ~ structural equivalence for arrays 62 타입검사 (Type Checking) o 타입검사종류 (categories) ~ Dynamic Type Checking 타입정보를실행시간에유지하고검사 ~ Static Type Checking 느슨한 (weakly) 자료형검사언어 Strongly-Typed Languages o Unspecified whether dynamic or static typing is to be used 63 21
22 Type Checking Examples o C/C++ ~ static type checking ~ no a strongly typed language: type conversion o Scheme ~ dynamic type checking but rigorous ~ predefined type test functions: number?, symbol?, o Ada ~ a strongly typed language ~ array bound checks are performed during runtime: exceptions 64 Type Checking and Type Inference o 타입추론 (inference) ~ the process to infer the type of an expression from the types of its subexpressions o Type Checking and Type Inference ~ Type checking rules and type inference rules are intermingled e 1 + e 2 ~ Type checking rules are type inference rules are closely related with the type equivalence algorithm ~ Explicit declarations are helpful for type checking but not mandatory 65 Type Compatibility o Relaxing the type correctness Type Equivalence e 1 + e 2 Type Compatibility e 1 and e 2 should be e 1 and e 2 should be of equivalent types. of compatible types. For assignment compatibility, information preservation is an important requirement. o Language Examples ~ Ada: subrange types of a base type are compatible ~ C, Java: numeric types are compatible 66 22
23 Implicit Types o Implicit Types ~ The types of entities are not explicitly declared but inferred implicitly o Examples ~ C: the types of variables and functions are implicitly int x; /* implicitly int */ f(int x) { return x + 1; } /* returns int */ ~ Pascal: constants are implicitly typed from the literals const PI = ; (* implicitly real *) 67 Type Conversion o Classifying Type Conversions ~ According to the notation Implicit Conversions (coercion) Explicit Conversions (casting) ~ According to the sizes of the types involved Widening Conversions Narrowing Conversions: may involve a loss of data o C Example int x = 3; x = x / 2; 68 int double double int promotion (widening) assignment conversion (narrowing) Notes on Type Conversions o Advantages of Explicit Conversions ~ Type conversions are documented precisely. ~ Make it easier for the translator to resolve overloading. double max(int, double); // max #1 double max(double, int); // max #2... max(2, 3); // calls what? max(2, (double)3); // calls max #1 o Structure Casting ~ The sizes of the structure types should be identical. ~ The translation merely reinterprets the memory 69 23
24 포괄 (generic) Pointers o Generic pointers may point anything. ~ anonymous pointers (void* in C) char * int *... conversion 1 conversion 2 void * ~ C allows the both conversion to be implicit. ~ In C++, the conversion 1 is implicit but the conversion 2 should be explicit. 70 Library Functions for Conversions o Ada Example ~ attribute functions of the character type character'pos('a') -- returns 97 character'val(97) -- returns 'a' o Java Example ~ conversion functions of the Integer class String s = Integer.toString(12345); int i = Integer.parseInt("54321"); 71 24
Introduction o Type supports abstraction Data Types Real World 유한성 (finite) 추상화 (abstraction) Programming Language concrete representation
Introduction o Type supports abstraction Data Types Real World 유한성 (finite) 추상화 (abstraction) Programming Language concrete representation Programming Language Implementation SANGJI University KO Kwangman
More informationMicrosoft PowerPoint - Chapter_04.pptx
프로그래밍 1 1 Chapter 4. Constant and Basic Data Types April, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 기본자료형문자표현방식과문자자료형상수자료형변환 기본자료형 (1/8) 3 변수 (Variables)
More information1
1 1....6 1.1...6 2. Java Architecture...7 2.1 2SDK(Software Development Kit)...8 2.2 JRE(Java Runtime Environment)...9 2.3 (Java Virtual Machine, JVM)...10 2.4 JVM...11 2.5 (runtime)jvm...12 2.5.1 2.5.2
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
More informationMicrosoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt
변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short
More informationC# Programming Guide - Types
C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든
More information<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>
연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.
More informationA Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning
C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationKNK_C_05_Pointers_Arrays_structures_summary_v02
Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",
More informationchap 5: Trees
5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경
More information기초컴퓨터프로그래밍
구조체 #include int main() { } printf("structure\n"); printf("instructor: Keon Myung Lee\n"); return 0; 내용 구조체 (struct) Typedef 공용체 (union) 열거형 (enum) 구조체 구조체 (structure) 어떤대상을표현하는서로연관된항목 ( 변수 )
More informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More information2002년 2학기 자료구조
자료구조 (Data Structures) Chapter 1 Basic Concepts Overview : Data (1) Data vs Information (2) Data Linear list( 선형리스트 ) - Sequential list : - Linked list : Nonlinear list( 비선형리스트 ) - Tree : - Graph : (3)
More information슬라이드 1
Array, Structure, and Pointer 2019 SANGJI University Kwang-Man Ko () 배열 (array) 이란? 같은형의변수를여러개만드는경우에사용 int A0, A1, A2, A3,,A9; int A[10]; 0 1 2 3 4 5 6 7 8 9 반복코드등에서배열을사용하면효율적인프로그래밍이가능 예 ) 최대값을구하는프로그램
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]
More informationMicrosoft PowerPoint - PL_03-04.pptx
Copyright, 2011 H. Y. Kwak, Jeju National University. Kwak, Ho-Young http://cybertec.cheju.ac.kr Contents 1 프로그래밍 언어 소개 2 언어의 변천 3 프로그래밍 언어 설계 4 프로그래밍 언어의 구문과 구현 기법 5 6 7 컴파일러 개요 변수, 바인딩, 식 및 제어문 자료형 8
More information02 C h a p t e r Java
02 C h a p t e r Java Bioinformatics in J a va,, 2 1,,,, C++, Python, (Java),,, (http://wwwbiojavaorg),, 13, 3D GUI,,, (Java programming language) (Sun Microsystems) 1995 1990 (green project) TV 22 CHAPTER
More information02장.배열과 클래스
---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :
More information11장 포인터
누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리
More informationPowerPoint 프레젠테이션
@ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program
More informationMicrosoft PowerPoint - chap03-변수와데이터형.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.
More informationMicrosoft PowerPoint - [2009] 02.pptx
원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include
More information바인딩, 메모리관리 SANGJI University Kwangman Ko 속성 (attributes) o 속성 (attributes) ~ 특성 (properties) 들의집합 ~ 변수의위치 (location) 값이저장될수있는공간,
바인딩, 메모리관리 SANGJI University Kwangman Ko () 속성 (attributes) o 속성 (attributes) ~ 특성 (properties) 들의집합 ~ 변수의위치 (location) 값이저장될수있는공간, 컴퓨터메모리주소 ~ 값 (value) 저장가능한대상 ~ 타입 (data type) 저장되는값의범위 (range) 결정 ~ 명칭
More information강의 개요
DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE
More informationCh.1 Introduction
바인딩, 메모리관리 SANGJI University Kwangman Ko () 속성 (attributes) 속성 (attributes) ~ 특성 (properties) 들의집합 ~ 변수의위치 (location) 값이저장될수있는공간, 컴퓨터메모리주소 ~ 값 (value) 저장가능한대상 ~ 타입 (data type) 저장되는값의범위 (range) 결정 ~ 명칭
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More information10주차.key
10, Process synchronization (concurrently) ( ) => critical section ( ) / =>, A, B / Race condition int counter; Process A { counter++; } Process B { counter ;.. } counter++ register1 = counter register1
More informationchap10.PDF
10 C++ Hello!! C C C++ C++ C++ 2 C++ 1980 Bell Bjarne Stroustrup C++ C C++ C, C++ C C 3 C C++ (prototype) (type checking) C C++ : C++ 4 C C++ (prototype) (type checking) [ 10-1] #include extern
More informationC++ Programming
C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음
More informationMicrosoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]
Chapter 03 변수와자료형 2009 한국항공대학교항공우주기계공학부 (http://mercury.kau.ac.kr/sjkwon) 1 변수와자료유형 변수 프로그램에서자료값을임시로기억할수있는저장공간을변수 (variables) 변수 (Variables) 는컴퓨터의메모리인 RAM(Random Access Memory) 에저장 물건을담는박스라고생각한다면박스의크기에따라담을물건이제한됨
More informationMicrosoft PowerPoint - C++ 5 .pptx
C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성
More information<4D F736F F F696E74202D20C1A63132B0AD20B5BFC0FB20B8DEB8F0B8AEC7D2B4E7>
제14장 동적 메모리 할당 Dynamic Allocation void * malloc(sizeof(char)*256) void * calloc(sizeof(char), 256) void * realloc(void *, size_t); Self-Referece NODE struct selfref { int n; struct selfref *next; }; Linked
More information프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어
개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,
More information1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할
15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p
More information구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을
(structures) 구조체정의 구조체선언및초기화 구조체배열 구조체포인터 구조체배열과포인터 구조체와함수 중첩된구조체 구조체동적할당 공용체 (union) 1 구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined
More informationHW5 Exercise 1 (60pts) M interpreter with a simple type system M. M. M.., M (simple type system). M, M. M., M.
오늘할것 5 6 HW5 Exercise 1 (60pts) M interpreter with a simple type system M. M. M.., M (simple type system). M, M. M., M. Review: 5-2 7 7 17 5 4 3 4 OR 0 2 1 2 ~20 ~40 ~60 ~80 ~100 M 언어 e ::= const constant
More information강의10
Computer Programming gdb and awk 12 th Lecture 김현철컴퓨터공학부서울대학교 순서 C Compiler and Linker 보충 Static vs Shared Libraries ( 계속 ) gdb awk Q&A Shared vs Static Libraries ( 계속 ) Advantage of Using Libraries Reduced
More informationλx.x (λz.λx.x z) (λx.x)(λz.(λx.x)z) (λz.(λx.x) z) Call-by Name. Normal Order. (λz.z)
λx.x (λz.λx.x z) (λx.x)(λz.(λx.x)z) (λz.(λx.x) z) Call-by Name. Normal Order. (λz.z) Simple Type System - - 1+malloc(), {x:=1,y:=2}+2,... (stuck) { } { } ADD σ,m e 1 n 1,M σ,m e 1 σ,m e 2 n 2,M + e 2 n
More information쉽게 풀어쓴 C 프로그래밍
제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using
More informationDesign Issues
11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance
More information컴파일러
YACC 응용예 Desktop Calculator 7/23 Lex 입력 수식문법을위한 lex 입력 : calc.l %{ #include calc.tab.h" %} %% [0-9]+ return(number) [ \t] \n return(0) \+ return('+') \* return('*'). { printf("'%c': illegal character\n",
More informationSIGPLwinterschool2012
1994 1992 2001 2008 2002 Semantics Engineering with PLT Redex Matthias Felleisen, Robert Bruce Findler and Matthew Flatt 2009 Text David A. Schmidt EXPRESSION E ::= N ( E1 O E2 ) OPERATOR O ::=
More informationChapter 4. LISTS
연결리스트의응용 류관희 충북대학교 1 체인연산 체인을역순으로만드는 (inverting) 연산 3 개의포인터를적절히이용하여제자리 (in place) 에서문제를해결 typedef struct listnode *listpointer; typedef struct listnode { char data; listpointer link; ; 2 체인연산 체인을역순으로만드는
More informationBACK TO THE BASIC C++ 버그 헌팅: 버그를 예방하는 11가지 코딩 습관
Hanbit ebook Realtime 30 C++ 버그 헌팅 버그를 예방하는 11가지 코딩 습관 Safe C++ 블라디미르 쿠스퀴니르 지음 / 정원천 옮김 이 도서는 O REILLY의 Safe C++의 번역서입니다. BACK TO THE BASIC C++ 버그 헌팅 버그를 예방하는 11가지 코딩 습관 BACK TO THE BASIC C++ 버그 헌팅 버그를
More informationexample code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for
2003 Development of the Software Generation Method using Model Driven Software Engineering Tool,,,,, Hoon-Seon Chang, Jae-Cheon Jung, Jae-Hack Kim Hee-Hwan Han, Do-Yeon Kim, Young-Woo Chang Wang Sik, Moon
More information초보자를 위한 C# 21일 완성
C# 21., 21 C#., 2 ~ 3 21. 2 ~ 3 21.,. 1~ 2 (, ), C#.,,.,., 21..,.,,, 3. A..,,.,.. Q&A.. 24 C#,.NET.,.,.,. Visual C# Visual Studio.NET,..,. CD., www. TeachYour sel f CSharp. com., ( )., C#.. C# 1, 1. WEEK
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More information목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2
제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해
More informationthesis
( Design and Implementation of a Generalized Management Information Repository Service for Network and System Management ) ssp@nile nile.postech.ac..ac.kr DPE Lab. 1997 12 16 GMIRS GMIRS GMIRS prototype
More informationC 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12
More informationchap x: G입력
재귀알고리즘 (Recursive Algorithms) 재귀알고리즘의특징 문제자체가재귀적일경우적합 ( 예 : 피보나치수열 ) 이해하기가용이하나, 비효율적일수있음 재귀알고리즘을작성하는방법 재귀호출을종료하는경계조건을설정 각단계마다경계조건에접근하도록알고리즘의재귀호출 재귀알고리즘의두가지예 이진검색 순열 (Permutations) 1 장. 기본개념 (Page 19) 이진검색의재귀알고리즘
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,
More informationThe C++ Programming Language 4 장타입과선언 4.11 연습문제 Hello,world! 프로그램을실행시킨다. 프로그램이컴파일되지않으면 B3.1 을참고하자. #include<iostream> //#include 문, 헤더파일, 전처리지시
The C++ Programming Language 4 장타입과선언 4.11 연습문제 4.11.1 Hello,world! 프로그램을실행시킨다. 프로그램이컴파일되지않으면 B3.1 을참고하자. #include //#include 문, 헤더파일, 전처리지시자로호칭 using namespace std; //using 키워드를사용하여 std 네임스페이스를사용선언
More information제4장 기본 의미구조 (Basic Semantics)
제 4 장블록및유효범위 Reading Chap. 5 숙대창병모 1 4.1 변수선언및유효범위 숙대창병모 2 변수선언과유효범위 변수선언 Declaration before Use! 대부분의언어에서변수는사용전에먼저선언해야한다. 변수의유효범위 (scope) 선언된변수가유효한 ( 사용될수있는 ) 프로그램내의범위 / 영역 변수이름뿐아니라함수등다른이름도생각해야한다. 정적유효범위
More informationstep 1-1
Written by Dr. In Ku Kim-Marshall STEP BY STEP Korean 1 through 15 Action Verbs Table of Contents Unit 1 The Korean Alphabet, hangeul Unit 2 Korean Sentences with 15 Action Verbs Introduction Review Exercises
More informationMicrosoft PowerPoint - chap11-포인터의활용.pptx
#include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 포인터를 사용하는 다양한 방법에
More information4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp
2015년도 국가직 9급 컴퓨터 일반 문 1. 시스템 소프트웨어에 포함되지 않는 것은? 1 1 스프레드시트(spreadsheet) 2 로더(loader) 3 링커(linker) 4 운영체제(operating system) - 시스템 소프트웨어 : 운영체제, 데이터베이스관리 프로그램,, 컴파일러, 링커, 로더, 유틸리티 소프트웨 어 등 - 스프레드시트 : 일상
More informationThe C++ Programming Language 5 장포인터, 배열, 구조체 5.9 연습문제 다음의선언문을순서대로작성해보자. 문자에대한포인터, 10개정수의배열, 10개정수의배열의참조자, 문자열의배열에대한포인터, 문자에대한포인터에대한포인터, 상수정수, 상수
The C++ Programming Language 5 장포인터, 배열, 구조체 5.9 연습문제 5.9.1 다음의선언문을순서대로작성해보자. 문자에대한포인터, 10개정수의배열, 10개정수의배열의참조자, 문자열의배열에대한포인터, 문자에대한포인터에대한포인터, 상수정수, 상수정수에대한포인터, 정수에대한상수포인터. 그리고각각의객체를초기화하자. Ex 문자에대한포인터 char
More informationuntitled
- -, (insert) (delete) - - (insert) (delete) (top ) - - (insert) (rear) (delete) (front) A A B top A B C top push(a) push(b) push(c) A B top pop() top A B D push(d) top #define MAX_STACK_SIZE 100 int
More information이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다. 2
제 17 장동적메모리와연결리스트 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 동적메모리란? malloc() 와 calloc() 연결리스트 파일을이용하면보다많은데이터를유용하고지속적으로사용및관리할수있습니다.
More informationMicrosoft PowerPoint - chap10-함수의활용.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향
More informationMicrosoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt
포인터 1 포인터란? 포인터 메모리의주소를가지고있는변수 메모리주소 100번지 101번지 102번지 103번지 int theage (4 byte) 변수의크기에따라 주로 byte 단위 주소연산자 : & 변수의주소를반환 메모리 2 #include list 8.1 int main() using namespace std; unsigned short
More informationIntroduction to Geotechnical Engineering II
Fundamentals of Computer System - chapter 9. Functions 민기복 Ki-Bok Min, PhD 서울대학교에너지자원공학과조교수 Assistant Professor, Energy Resources Engineering Last week Chapter 7. C control statements: Branching and Jumps
More information1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a
6 장복사생성자 객체의생성과대입객체의값에의한전달복사생성자디폴트복사생성자복사생성자의재정의객체의값에의한반환임시객체 C++ 프로그래밍입문 1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y;
More informationMicrosoft PowerPoint - CHAP-03 [호환 모드]
컴퓨터구성 Lecture Series #4 Chapter 3: Data Representation Spring, 2013 컴퓨터구성 : Spring, 2013: No. 4-1 Data Types Introduction This chapter presents data types used in computers for representing diverse numbers
More information03장.스택.key
---------------- DATA STRUCTURES USING C ---------------- 03CHAPTER 1 ? (stack): (LIFO:Last-In First-Out) 2 : top : ( index -1 ),,, 3 : ( ) ( ) -> ->. ->.... 4 Stack ADT : (LIFO) : init():. is_empty():
More informationPowerPoint 프레젠테이션
Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐
More informationPowerPoint 프레젠테이션
Programming Languages 모듈과펑터 2016 년봄학기 손시운 (ssw5176@kangwon.ac.kr) 담당교수 : 임현승교수님 모듈 (module) 관련있는정의 ( 변수또는함수 ) 를하나로묶은패키지 예약어 module과 struct end를사용하여정의 아래는모듈의예시 ( 우선순위큐, priority queue) # module PrioQueue
More informationPowerPoint 프레젠테이션
@ Lesson 3 if, if else, if else if, switch case for, while, do while break, continue : System.in, args, JOptionPane for (,, ) @ vs. logic data method variable Data Data Flow (Type), ( ) @ Member field
More information슬라이드 1
C programming and Data Structures Overview T. H. Cormen, C. E. Leiserson and R. L. Rivest Introduction to, 3rd Edition, MIT Press, 2009 Sungkyunkwan University Hyunseung Choo choo@skku.edu Copyright 2000-2018
More informationMicrosoft PowerPoint 자바-기본문법(Ch2).pptx
자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March
More information01-OOPConcepts(2).PDF
Object-Oriented Programming Concepts Tel: 02-824-5768 E-mail: hhcho@selabsoongsilackr? OOP (Object) (Encapsulation) (Message) (Class) (Inheritance) (Polymorphism) (Abstract Class) (Interface) 2 1 + = (Dependency)
More information61 62 63 64 234 235 p r i n t f ( % 5 d :, i+1); g e t s ( s t u d e n t _ n a m e [ i ] ) ; if (student_name[i][0] == \ 0 ) i = MAX; p r i n t f (\ n :\ n ); 6 1 for (i = 0; student_name[i][0]!= \ 0&&
More information슬라이드 제목 없음
Chapter 5: TREES Trees Trees Def) a tree is finite set of one or more nodes such that 1) there is a special node (root) 2) remaining nodes are partitioned into n 0 disjoint trees T 1,T 2,,T n where each
More information4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona
이름 : 학번 : A. True or False: 각각항목마다 True 인지 False 인지적으세요. 1. (Python:) randint 함수를사용하려면, random 모듈을 import 해야한다. 2. (Python:) '' (single quote) 는한글자를표현할때, (double quote) 는문자열을표현할때사용한다. B. 다음에러를수정하는방법을적으세요.
More informationMicrosoft PowerPoint - Chapter_09.pptx
프로그래밍 1 1 Chapter 9. Structures May, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 구조체의개념 (1/4) 2 (0,0) 구조체 : 다양한종류의데이터로구성된사용자정의데이터타입 복잡한자료를다루는것을편하게해줌 예 #1: 정수로이루어진 x,
More information학습목차 2.1 다차원배열이란 차원배열의주소와값의참조
- Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]
More information2007_2_project4
Programming Methodology Instructor: Kyuseok Shim Project #4: external sort with template Due Date: 0:0 a.m. between 2007-12-2 & 2007-12-3 Introduction 이프로젝트는 C++ 의 template을이용한 sorting algorithm과정렬해야할데이터의크기가
More informationuntitled
年 識 料 ˍˍˍˍˍˍ 不 80 1.25 2 1~80 不 1 列 array A n n matrix 零 lower triangular matrix 列 來 n n(n+1)/2 n(n 1)/2 n n 2 例 行 Y[1][3] 列 INT Y[4][4]; FOR(I=0; I
More informationMicrosoft PowerPoint - chap-11.pptx
쉽게풀어쓴 C 언어 Express 제 11 장포인터 컴퓨터프로그래밍기초 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 컴퓨터프로그래밍기초 2 포인터란? 포인터 (pointer): 주소를가지고있는변수 컴퓨터프로그래밍기초 3 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다.
More informationMicrosoft PowerPoint - a10.ppt [호환 모드]
Structure Chapter 10: Structures t and Macros Structure 관련된변수들의그룹으로이루어진자료구조 template, pattern field structure를구성하는변수 (cf) C언어의 struct 프로그램의 structure 접근 entire structure 또는 individual fields Structure는
More information슬라이드 1
정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
함수의인수 (argument) 전달방법 C 에서함수의인수전달방법 값에의한호출 (call-by-value): 기본적인방법 포인터에의한호출 (call-by-pointer): 포인터이용 참조에의한호출 (call-by-reference): 참조 (reference) 이용 7-35 값에의한호출 (call-by-value) 함수호출시에변수의값을함수에복사본으로전달 복사본이전달되며,
More informationMicrosoft PowerPoint - 제11장 포인터
쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조
More information슬라이드 1
Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치
More informationPowerPoint 프레젠테이션
Lecture 02 프로그램구조및문법 Kwang-Man Ko kkmam@sangji.ac.kr, compiler.sangji.ac.kr Department of Computer Engineering Sang Ji University 2018 자바프로그램기본구조 Hello 프로그램구조 sec01/hello.java 2/40 자바프로그램기본구조 Hello 프로그램구조
More informationfinal_thesis
CORBA/SNMP DPNM Lab. POSTECH email : ymkang@postech.ac.kr Motivation CORBA/SNMP CORBA/SNMP 2 Motivation CMIP, SNMP and CORBA high cost, low efficiency, complexity 3 Goal (Information Model) (Operation)
More informationThe_IDA_Pro_Book
The IDA Pro Book Hacking Group OVERTIME force (forceteam01@gmail.com) GETTING STARTED WITH IDA IDA New : Go : IDA Previous : IDA File File -> Open Processor type : Loading Segment and Loading Offset x86
More information- 2 -
- 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - - 14 - - 15 - - 16 - - 17 - - 18 - - 19 - - 20 - - 21 - - 22 - - 23 - - 24 - - 25 - - 26 - - 27 - - 28 - - 29 - - 30 -
More information제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.
제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터
More informationMicrosoft PowerPoint - 제11장 포인터(강의)
쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조
More informationMicrosoft PowerPoint - o8.pptx
메모리보호 (Memory Protection) 메모리보호를위해 page table entry에 protection bit와 valid bit 추가 Protection bits read-write / read-only / executable-only 정의 page 단위의 memory protection 제공 Valid bit (or valid-invalid bit)
More informationC프로-3장c03逞풚
C h a p t e r 03 C++ 3 1 9 4 3 break continue 2 110 if if else if else switch 1 if if if 3 1 1 if 2 2 3 if if 1 2 111 01 #include 02 using namespace std; 03 void main( ) 04 { 05 int x; 06 07
More informationOCaml
OCaml 2009.. (khheo@ropas.snu.ac.kr) 1 ML 2 ML OCaml INRIA, France SML Bell lab. & Princeton, USA nml SNU/KAIST, KOREA 3 4 (let) (* ex1.ml *) let a = 10 let add x y = x + y (* ex2.ml *) let sumofsquare
More information