Microsoft PowerPoint - 07-C#-2-기초문법.ppt [호환 모드]

Similar documents
Microsoft PowerPoint - CSharp-2-기초문법

선형대수학 Linear Algebra

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

K&R2 Reference Manual 번역본

PowerPoint Presentation

PowerPoint Presentation

PowerPoint Presentation

PowerPoint 프레젠테이션

PowerPoint Presentation

C# Programming Guide - Types

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Microsoft PowerPoint - chap06-1Array.ppt

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft PowerPoint - lec2.ppt

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

슬라이드 1

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

초보자를 위한 C# 21일 완성

Microsoft PowerPoint - ch07 - 포인터 pm0415

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

PowerPoint 프레젠테이션

Microsoft PowerPoint - C++ 5 .pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint - Java7.pptx

PowerPoint Presentation

gnu-lee-oop-kor-lec11-1-chap15

OCW_C언어 기초

02장.배열과 클래스

07 자바의 다양한 클래스.key

chap 5: Trees

JAVA PROGRAMMING 실습 02. 표준 입출력

Microsoft Word - java19-1-midterm-answer.doc

금오공대 컴퓨터공학전공 강의자료

PowerPoint 프레젠테이션

금오공대 컴퓨터공학전공 강의자료

강의 개요

슬라이드 1

02 C h a p t e r Java

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

PowerPoint Presentation

Microsoft PowerPoint - chap06-2pointer.ppt

PowerPoint Presentation

C++ Programming

Microsoft PowerPoint - hci2-lecture4.ppt [호환 모드]

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Microsoft PowerPoint - chap11-포인터의활용.pptx

JAVA PROGRAMMING 실습 02. 표준 입출력

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - hci2-lecture4 [호환 모드]

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

C++ Programming

Microsoft PowerPoint - chap04-연산자.pptx

PowerPoint Template

03장.스택.key

설계란 무엇인가?

TEST BANK & SOLUTION

untitled

Microsoft PowerPoint - Chapter_04.pptx

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

슬라이드 1

Microsoft PowerPoint - e pptx

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

Microsoft PowerPoint - 2강

Tcl의 문법

목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2

11장 포인터

4장.문장

PowerPoint Presentation

JVM 메모리구조

슬라이드 1

Java ...

PowerPoint 프레젠테이션

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

03_queue

PowerPoint 프레젠테이션

PowerPoint Presentation

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

설계란 무엇인가?

Microsoft PowerPoint - 7장 배열 pptx

untitled

Microsoft PowerPoint - chap10-함수의활용.pptx

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

Microsoft PowerPoint - lec3.ppt

JAVA PROGRAMMING 실습 08.다형성

Microsoft PowerPoint - Chapter 6.ppt


Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - 04-UDP Programming.ppt

chap x: G입력

항상쌍 ( 키, 값 ) 으로만데이터를저장하는클래스 의최고조상 : Map - Map을조상으로하는클래스, HashTable, HashMap, LinkedHashMap, TreeMap 등은데이터를저장할때반드시 키 와 값 의쌍으로저장한다. - Map에저장되는 키 는중복되면안되

chap10.PDF

자바 프로그래밍

Microsoft PowerPoint - chap05-제어문.pptx

Slide 1

Transcription:

기본자료형 연산자와제어문 배열 컬렉션과반복자 순천향대학교컴퓨터학부이상정 1 기본자료형 순천향대학교컴퓨터학부이상정 2

C# 자료형 C# 은.NET 프레임워크가제공하는 CTS(Common Type System) 자료형을사용 CTS는닷넷기반의여러언어에서공통으로사용되는자료형 CTS 는값 (value) 형과참조형 (reference) 형지원 CTS가제공하는모든데이터형은 System.Object를상속받아구현 값형 (Value Type) 과참조형 (Reference Type) 값형실제데이터의값을저장스택 (stack) 영역에데이터저장 참조형데이터에대한참조만을저장힙 (heap) 영역에데이터저장 순천향대학교컴퓨터학부이상정 3 단순자료형 C# 에서사용되는값형 단순자료형 : bool, char, int, long, float, double 등 사용자정의형 : enum( 나열형 ), struct( 구조체형 ) 등 bool 형 참일경우 true, 거짓일경우 false char 형 유니코드 (unicode) 문자하나를저장, 2바이트 정수형 Signed: sbyte(1 byte), short(2 byte), int(4 byte), long(8 byte) Unsigned: byte(1 byte), ushort(2 byte), uint(4 byte), ulong(8 byte) 부동소수점형 float (4 byte), double (8 byte) decimal 형 금융이나회계용프로그램에사용되는더정밀한수표현 (16 byte) 순천향대학교컴퓨터학부이상정 4

class SimpleTypeTest public static void Main() int e = 3; int f = 4; bool bgte = (e >= f); bool blt = (e < f); Console.WriteLine("i >= j : 0, i < j : 1", bgte, blt); 단순자료형예 float a = 22f; float b = 7f; float c = a / b; Console.WriteLine("float type pie = 0", c); double i = 22; double j = 7; double k = i / j; Console.WriteLine("double type pie = 0", k); decimal x = 22m; decimal y = 7M; decimal z = x / y; Console.WriteLine("decimal type pie = 0", z); 순천향대학교컴퓨터학부이상정 5 나열형 나열형 (Enumeration Type) 이름을가진상수들의집합으로구성된자료형 형식 예제 enum 나열자이름 : 기반자료형 나열멤버1, 나열멤버2, 나열멤버3 enum Color : int Red, Yellow, Blue 순천향대학교컴퓨터학부이상정 6

나열형예 class EnumTest enum Color Red = 4, Yellow = 25, Blue, White = Red * Yellow * Blue public static void Main() Console.WriteLine("First member of Color is 0", Color.Red); Console.WriteLine("Value of Second member Yellow is 0", (int)color.yellow); Console.WriteLine("Third member of Color is 0", Color.Blue); Console.WriteLine("Value of Blue is 0", (int)color.blue); Console.WriteLine("Value of White is 0", (int)color.white); 순천향대학교컴퓨터학부이상정 7 참조형 참조형 (Reference Types) 클래스, 인터페이스, 배열, 델리게이트로구분 이장에서는클래스형중에서 C# 의기본내장형인 object 와 string 소개 object 형 object 는모든자료형의조상으로어떤값이든저장 GetType() 메쏘드 :.NET 프레임워크자료형 ToString() 메쏘드 : 자료형값 string 형 문자열을저장하는자료형 순천향대학교컴퓨터학부이상정 8

참조형예 class ObjectTest public static void Main() object a = 22; object b = 3.14; object c ="abc"; Console.WriteLine("Value of a : 0", a); Console.WriteLine("Value of a : 0", a.tostring()); Console.WriteLine("Type of a : 0", a.gettype()); Console.WriteLine(); Console.WriteLine("Value of b : 0", b); Console.WriteLine("Value of b : 0", b.tostring()); Console.WriteLine("Type of b : 0", b.gettype()); Console.WriteLine(); Console.WriteLine("Value of c : 0", c); Console.WriteLine("Value of c : 0", c.tostring()); Console.WriteLine("Type of c : 0", c.gettype()); string u = " 순천향대학교 "; string d = " 컴퓨터학부 "; int g = 2007; string h = " 저는 " + u + d + g.tostring() + " 학번입니다."; Console.WriteLine(h); 순천향대학교 컴퓨터학부이상정 9 연산자와제어문 순천향대학교컴퓨터학부이상정 10

연산자 (1) 연산자범주 산술연산자 + - * / % 연산자 논리연산자 ( 부울및비트 ) & ^! ~ && true false 문자열연결연산자 + 증가, 감소연산자 ++ -- 시프트연산자 << >> 관계형연산자 ==!= < > <= >= 할당연산자 = += -= *= /= %= &= = ^= <<= >>= 멤버액세스연산자. 인덱스연산자 [] 캐스트연산자 () 조건연산자?: 대리자연결및제거연산자 + - 개체작성연산자 new 형식정보연산자 as is sizeof typeof 오버플로예외처리연산자 간접참조및주소연산자 순천향대학교컴퓨터학부이상정 11 checked unchecked * -> [] & 연산자 (2) check, unchecked 정수형산술연산과변환에대한오버플로우체크 is is 연산자는지정된형이서로호환되는동일한형인지를체크 typeof 어떤형 (type) 에대한 System.Type 개체를얻기위해사용 순천향대학교컴퓨터학부이상정 12

연산자예 class OperatorTest static void Main() int x = 1000000; int y = 1000000; int z; z = unchecked(x*y); // z = -727379968 // z = checked(x * y); => compile error, overflow Console.WriteLine("z = 0", z); int a; Console.WriteLine("typeof(int) = 0", typeof(int)); if (a is System.Int32) Console.WriteLine(" 정수형입니다."); else Console.WriteLine(" 정수형이아닙니다."); 순천향대학교컴퓨터학부이상정 13 제어문 제어문은프로그램실행흐름을변경 C, C++ 에서제공하는제어문과유사 선택문 : if ~ else, swith 반복문 : for, while, do ~ while, foreach 기타제어문 : continue, break, goto foreach 문 배열 (Array) 이나컬렉션 (collection) 에있는원소들을차례대로순회하는반복문 형식 foreach ( 자료형변수이름 in 배열이나콜렉션 ) 실행블럭 ; 순천향대학교컴퓨터학부이상정 14 예 int[] array = new int[]3, 6, 9, 13, 16, 19; foreach ( int n in array ) Console.WriteLine( n : 0, n);

foreach 문예 class TotalSum // foreach 문사용 public static void Main() int sum = 0; int[] arr = 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ; foreach (int i in arr) sum += i; Console.WriteLine("1 부터 10 까지합은 0 입니다. ", sum); 순천향대학교컴퓨터학부이상정 15 배열 순천향대학교컴퓨터학부이상정 16

배열 배열 배열 (Array Type) 은동일한자료의연속된집합 각요소는배열의인덱스를통해접근 C# 의모든배열은 System.Array 클래스를상속받아구현 형식 예 자료형 [] 배열변수명 ; 배열변수명 = new [ 자료형 ][ 배열크기 ]; int [] data; data = new int[5]; int [] data = new int[5]; int [, ] array2 = new int[3,5]; int[,,]array3=, new int[2,5,7]; 순천향대학교컴퓨터학부이상정 17 배열초기화 선언과동시에초기값지정 예 int[] Arr = new int[5] 1, 2, 3, 4, 5; int[] Arr = new int[] 1, 2, 3, 4, 5; int[] Arr = 1, 2, 3, 4, 5; int [, ] data = newint[, ]123 1,2,3, 456 4,5,6, 789; 7,8,9 ; 순천향대학교컴퓨터학부이상정 18

System.Array 클래스 C# 의모든배열은 System.Array 클래스를상속받아구현 System.Array 클래스에는배열의사용에관한메쏘드제공 System.Array 클래스에서제공하는중요메쏘드 메쏘드 설명 Sort 오름차순으로정렬 Reverse 내림차순으로정렬 Clear 모든요소를초기화 Clone 동일한내용을갖는배열을복사 GetLength 요소의개수를반환 GetLowerBound 시작요소의첨자를반환 GeyUpperBound 마지막요소의첨자를반환 GetValue 선택된인덱스위치의요소값을반환 SetValue 선택된인덱스위치에요소값을저장 순천향대학교컴퓨터학부이상정 19 System.Array 클래스예 (1) class ArrayTest public static void Main() int[] array = 9, 4, 7, 2, 10, 3 ; int[] clone_arr = new int[6]; // clone 함수테스트하기위해사용할배열 Console.WriteLine("GetLength() : 요소의개수 => >0" 0", array.getlength(0)); Console.Write("Sort() : 오름차순정렬 => "); System.Array.Sort(array); for (int i = 0; i < array.length; i++) Console.Write( Write(" 0 ", array[i]); Console.Write(" nclone() : 배열복사 => "); clone_arr = (int[])array.clone(); // 리턴값이 object 형이므로형변환 for(inti=0;i<clone i i clone_arr.length; arrlength;i++) Console.Write(" 0 ", clone_arr[i]); Console.Write(" ngetupperbound() : 마지막요소인덱스 => "); Console.WriteLine( WriteLine(" 0 ", array.getupperbound(0)); 순천향대학교컴퓨터학부이상정 20

System.Array 클래스예 Console.Write(" ngetvalue() tv l () : 인덱스위치의요소값 => "); Console.WriteLine(" 0 ", array.getvalue(3)); Console.Write("SetValue() : 인덱스위치에요소값저장 => "); array.setvalue(20, 3); Console.WriteLine(" 0 ", array.getvalue(3)); Console.Write("Clear() : 배열을초기화 => "); System.Array.Clear(array, 0, array.length); for (int i = 0; i < array.length; i++) Console.Write(" 0 ", array[i]); // 출력 Console.WriteLine(""); 순천향대학교컴퓨터학부이상정 21 가변배열 C# 은배열요소마다차원과크기를다르게지정할수있는가변배열 (jagged array) 을지원 예 배열의요소에배열이저장 int[][] myjaggedarray = new int[3][]; myjaggedarray[0] = new int[4]; myjaggedarray[1] = new int[2]; myjaggedarray[2] = new int[3]; 순천향대학교컴퓨터학부이상정 22

public class JaggedTest public static void Main() int[][] arr = new int[3][]; 가변배열예 arr[0] = new int[] 4, 2, 8, 9 ; arr[1] = new int[] 2, 3 ; arr[2] = new int[] 5, 2, 7 ; for (int i = 0; i < arr.length; i++) Console.Write("(0) 번째배열의요소 : ", i); for (int j = 0; j < arr[i].length; j++) Console.Write("0 ", arr[i][j]); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("arr의차수 0 입니다.", arr.rank); Console.WriteLine("arr[0] 의차수는 0 입니다.", arr[0].rank); Console.WriteLine("arr[1] 의차수는 0 입니다.", arr[1].rank); Console.WriteLine("arr[2] 의차수는 0 입니다.", arr[2].rank); 순천향대학교컴퓨터학부이상정 23 컬렉션과반복자 순천향대학교컴퓨터학부이상정 24

컬렉션 C# 은다양한자료구조의컬렉션클래스 (collection class) 를 제공 ArrayList, HashTable, Stack, Queue 등 System.Collections 네임스페이스에정의 object 형기반구성 ArrayList 배열과비슷하지만, 요소를동적으로삽입하거나제거 예 ArrayList list = new ArrayList(); // ArrayList 객체생성 list.add( 123 ); // 첫번째요소추가 list.add( abc ); // 두번째요소추가 list.removeat( 0); // 첫번째요소제거 순천향대학교컴퓨터학부이상정 25 using System.Collections; class MainApp static void Main(string[] args) ArrayList list = new ArrayList(); ArrayList 예 Console.WriteLine("Adding 3 items..."); list.add("123"); list.add("456"); list.add("789"); Console.WriteLine("Length of list : 0", list.count); foreach (object o in list) Console.WriteLine(o); Console.WriteLine(); Console.WriteLine("Removing an item at 1..."); list.removeat(1); Console.WriteLine("Length of list : 0", list.count); foreach (object o in list) Console.WriteLine(o); 순천향대학교 컴퓨터학부이상정 26

Hashtable Hashtable Hashtable은정수의인덱스대신에객체키 (Key) 를이용하는자료구 조 클래스나구조체, 정수나소수형까지모두키로사용가능 예 Hashtable ht = new Hashtable ( ); ht [ "frequency" ] =" 주파수 "; ht [ "function" ] = " 함수 "; ht [ "evaluate" ] = " 평가하다 "; 순천향대학교컴퓨터학부이상정 27 Hashtable 예 using System.Collections; class MainApp static void Main(string[] args) Hashtable ht = new Hashtable(); ht["frequency"] = " 주파수 "; ht["function"] ti "] = " 함수 "; ht["evaulate"] = " 평가하다 "; Console.WriteLine("frequency : 0", ht["frequency"]); Console.WriteLine("function : 0", ht["function"]); Console.WriteLine("evaluate : 0", ht["evaulate"]); 순천향대학교컴퓨터학부이상정 28

반복자 반복자 (iterator) 클래스에내장된배열이나컬렉션을foreach 문을통해접근할수있도록해주는메쏘드 System.Collections.IEnumerator 형을반환하는 GetEnumerator() 메쏘드로구현 yield return foreach 문이실행되면서몇번째의컬렉션요소를반환해가져갔는지를기억하도록함 예 class MyStringArray private string[] string_array = new string " 가나다 ", " 라마바 ", " 사아자 " ; public System.Collections.IEnumerator GetEnumerator ( ) for ( int i = 0; i < array.length; i++ ) yield return string_array[i]; 순천향대학교컴퓨터학부이상정 29 반복자예 class MyArray private object[] array; class MainApp static void Main(string[] args) MyArray myarray = new MyArray(3); public MyArray(int size) array = new object[size]; public void Set(int index, object value) array[index] = value; myarray.set(0, " 재미있는 "); myarray.set(1, " 프로그래밍! "); myarray.set(2, "C# 과함께하세요!"); foreach (object o in myarray) Console.WriteLine(o); public System.Collections.IEnumerator GetEnumerator() for (int i = 0; i < array.length; i++) yield return array[i]; 순천향대학교컴퓨터학부이상정 30

과제 N 명의학생의이름, 번호, 국어, 영어, 수학점수를배열로표현하여학생별총점, 평균과과목별평균및학생의석차를구하는프로그램을작성하라. 순천향대학교컴퓨터학부이상정 31