Programming Language 71

[C++] 클래스(Class) (1)

클래스(Class) (1) 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀 자료를 저장하고 자료를 처리할 수 있음 특정한 용도를 수행하기 위한 변수와 함수를 모아 둔 틀 int a, b, c에서 int가 틀이라면 a, b, c 는 틀을 이용하여 찍어낸 변수(객체) 객체(오브젝트) : 틀을 이용하여 찍어낸 개체(변수, 메모리 상의 공간) 접근제어 지시자(access modifier) 객체지향 프로그래밍 언어에서 클래스의 멤버(필드, 메서드)에 대한 접근 권한을 제어하기 위해 사용되는 키워드나 지시자 래스의 내부 구조를 보호하고, 데이터 은닉(data encapsulation)을 지원하여 클래스의 캡슐화를 강화(캡슐화 : 외부에서 접근을 제한하고 내부의 상세 구현을 숨김) private / p..

[C++] 네임스페이스(namespace)

네임스페이스(namespace) 네임스페이스(namespace)는 프로그래밍에서 식별자(identifier)들의 범위를 나타내는 개념 변수, 함수, 클래스 등과 같은 여러 종류의 식별자들이 유일한 이름을 가지고 충돌하지 않도록 하는 데 사용 네임스페이스 프로토 타입 int n; // global variable void set(); // 프로토타입 namespace junseo { // 프로토타입 int n; void set(); } // namespace junseo namespace google { // 프로토타입 int n; void set(); } // namespace google 전역(global) 식별자와 네임스페이스에 속한 식별자 표기 void EX1(void) { ::set(); // g..

[C++] C++ 스타일 함수

C++ 스타일 함수 함수 오버로딩 over load : 다중 정의 함수 오버로딩 : 함수 매개변수의 형을 분석해서 알맞는 함수를 실행시킴 #include // using namespace std; // std namespace 안에 swap함수가 존재해서 사용 x void swap(int &a, int &b) { int tmp = a; a = b; b = tmp; } void swapd(double &a, double &b) { double tmp = a; a = b; b = tmp; } 이런식으로 swap 함수와 swapd 함수를 따로 생성하지 않고 아래처럼 다중 정의할 수 있다.(overload) #include // using namespace std; // std namespace 안에 swap함..

[Java] 02. 자바로 프로그램 작성하기

자바로 프로그램 작성하기 "Hello, world." 출력하기 코드 class Hello { public static void main(String[] args) { System.out.println("Hello, world."); // 화면에 글자를 출력 } } 위 코드를 editor를 통해 작성한 다음 Hello.java로 저장 (이 때, class의 이름 'Hello'가 대소문자까지 정확히 같아야 함) 자바 컴파일러를 통해 소소 코드(Hello.java)로 부터 클래스파일(Hello.class)를 생성 자바 인터프리터로 실행(java.exe) > javac Hello.java > java Hello Hello, world.java 코드 설명 class 클래스 이름 { /* 주석을 제외..

[Java] 01. 자바(Java Programming Language)

자바(Java Programming Language) 자바란? 썬 마이크로시스템즈에서 개발하여 1996년 발표한 객체지향 프로그래밍 언어 자바의 특징 운영체제(플랫폼)에 독립적이다 자봐로 작성된 프로그램은 운영체제의 종류에 관계없이 실행이 가능함 가비지 컬렉터(garbage collector)가 자동적으로 메모리를 관리해줌 프로그래머가 메모리를 따로 관리하지 않아도 된다. 네트워크와 분산처리, 멀티쓰레드, 동적 로딩(Dynamic Loading)을 지원 JVM(Java Virtual Machine) 일반적인 application의 코드는 OS를 거쳐 하드웨어로 전달 일반 application은 OS와 바로 맞붙어 있기 때문에 OS 종속적 다른 OS에서 실행시키기 위해서는 application을 해당 OS..

[Python] 24. GUI(Graphic User Interface) - tkinter

GUI(Graphic User Interface) - tkinter Tcl/Tk 툴킷을 사용하는데 필요한 인터페이스 모듈 (Std library) import tkinter as tk root = tk.Tk() # 실행했을 때 나타나는 창 root label = tk.Label(root, text='Hello World') # root 창에 포함되는 컴포넌트로 label 생성 label.pack() # label 객체를 창에 표시 root.mainloop() # root 창을 event loop에 들어가게 하여 root 창이 종료되지 않고 일을 계속 수행 블로그 프로그램을 만든다고 할 때 사용되는 tkinter component ListBox : 블로그의 목록 Label : '제목&..

[Python] 23. 정규 표현식(regular expression)

정규 표현식 정규 표현식이란? 정규 표현식 : 복잡한 문자열을 처리할 때 사용하는 기법 파이썬 말고도 다른 곳에서도 사용함 정규 표현식이 필요한 이유? example : 주민번호 뒷자리 7자리를 *로 변환하기 data = """ park 800905-1049118 kim 700905-1059919 """ result = [] for line in data.split('\n'): word_result = [] for word in line.split(" "): if len(word) == 14 and word[:6].isdigit() and word[7:].isdigit(): word = word[:6] + "-" + "*******" word_result.append(word) result..

[Python] 22. 표준 라이브러리(Standard Library)(2)

표준 라이브러리(standard library)(2) fnmatch Unix-sytle Pattern Matching 유닉스 shell에서 사용되는 rule에 따라 특정 패턴과 일치하는 string을 찾음 fnmatch(text, pattern) text가 pattern과 match하는지 Test (T/F) 대소문자 구분하지 않음(case-insensitive) fnmatchcase(text, pattern) fnmatch와 유사하나, 대소문자를 구분함 filter(iterable, pattern) 패턴을 만족하는 iterable에 있는 요소들의 list를 반환 example import fnmatch descs = ['My name is Lee and my E-mail is kim@google...

[Python] 21. 표준 라이브러리(Standard Library)(1)

표준 라이브러리(Standard Library) (1) 프로그래밍 언어의 기본 기능과 기능을 확장하는 데 사용할 수 있는 기본적인 모듈과 함수의 집합 Library : 원하는 정보(프로그램)를 찾아 사용하자 프로그래머가 기본적인 작업을 수행하기 위해 처음부터 모든 것을 작성하지 않고, 이미 구현된 함수와 모듈을 사용하여 빠르고 효율적으로 프로그램을 작성할 수 있도록 도와준다. sys 모듈 파이썬 인터프리터가 제공하는 변수와 함수를 직접 제어할 수 있게 해주는 모듈 sys.argv 명령행에서 인수 전달하기 # Terminal, cmd, prompt에서 python test.py abc pey guido --> 파일이름 뒤에 있는 값들이 sys.argv 리스트에 추가됨 sys.exit() 강제로 스크립트 종..