전체 글
-
C언어 기초#13 스트림과 파일 입출력 printf scanf 심화, fopen(), fclose(), 이진 파일 읽고 쓰기, 버퍼링, fseek(), rewind(), ftell(), foef()Programming 기초/C Language 2023. 5. 3. 19:20
* 스트림(stream) 스트림이란 모든 입력과 출력을 바이트(byte)들의 흐름으로 생각하는 것. 장점 : 장치 독립성. 입출력 장치에 상관없이 프로그램을 작성할 수 있다. 특징 : 버퍼(buffer) 사용. cpu의 속도가 입출력 장치보다 훨씬 빠르기 때문에 버퍼에 어느 정도 데이터가 쌓이면 cpu가 한 번에 데이터를 가져간다. 출력도 마찬가지. * 표준 입출력 스트림(standard input/output stream) 프로그램이 시작될 때 자동으로 만들어지고, 프로그램이 종료될 때 자동으로 소멸된다. 이름 스트림 연결 장치 관련 함수 예시 stdin 표준 입력 스트림 키보드 scan() stdout 표준 출력 스트림 모니터의 화면 printf() stderr 표준 오류 스트림 모니터의 화면 fpr..
-
C언어 기초#12 전처리 및 비트 필드Programming 기초/C Language 2023. 4. 28. 17:04
* 전처리기(preprocessor) 본격적으로 컴파일하기에 앞서 소스 파일을 처리하는 컴파일러의 한 부분. 전처리기는 보통 컴파일러에 포함되어 있고 자동으로 실행되며 컴파일러의 하나의 요소로 취급됨. 전처리기는 소스 파일을 처리하여 수정된 소스 파일을 생산한다. 전처리기는 몇 가지의 전처리기 지시자들을 처리한다. 이 지시자들은 #기호로 시작한다. e.g) #include 하나의 프로그램이 만들어지기까지의 과정은 위의 그림과 같다. 두 번째 단계에 해당하는 컴파일러의 내부를 살펴보면 아래 그림과 같이 전처리기와 컴파일러가 있다. (오브젝트 파일은 기계어로 번역된 파일이다.) * 단순 매크로(macro) #define 지시자를 이용하면 숫자 상수에 의미 있는 이름을 부여할 수 있다. #define 문을 이..
-
[Python 기초 #10] 예외 처리Programming 기초/Python 2023. 4. 27. 16:54
* try try: ... except [발생 오류[as 오류 메시지 변수]]: ... else: # 오류 발생하지 않은 경우 실행 (try가 참값일 때) ... finally: # 무조건 마지막에 실행 여기서 [ ] 기호는 괄호 안의 내용을 생략할 수 있다는 관례 표기법이다. except 발생 오류: 는 오류가 발생했을 때 except문에 미리 정해 놓은 오류 이름과 일치할 때만 except 블록을 수행한다는 뜻이다. except 발생 오류 as 오류 메시지 변수: 는 오류메시지의 냉요을 알고 싶을 때, 발생오류를 지정한 오류 메시지 변수에 담는 것이다. try: 4/0 except ZeroDivisionError as e: print(e) ----------------------------------..
-
[Python 기초 #9] 패키지Programming 기초/Python 2023. 4. 27. 15:45
* 패키지(Packages) 도트(.)를 사용하여 파이썬 모듈을 계층적(디렉터리 구조)으로 관리할 수 있게 해준다. * 패키지 만들기 예) game 패키지의 구조 game/ _ _init_ _.py sound/ _ _init_ _.py echo.py wav.py graphic/ _ _init_ _.py screen.py render.py play/ _ _init_ _.py run.py test.py 여기서 gmae, sound, graphic, play는 디렉터리 이름이고 확장자가 .py인 파일은 파이썬 모듈, game 디렉터리가 이 패키지의 루트 디렉터리이고 sound, graphic, play는 서브 디렉터리이다. 1. 서브 디렉터리(폴더)를 만들고 빈 파일의 모듈을 만들어 놓는다. 2. echo모듈..
-
[Python 기초 #8] 모듈Programming 기초/Python 2023. 4. 25. 19:56
* 모듈 모듈이란 함수나 변수 또는 클래스를 모아 놓은 파일이다. 모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이라고도 할 수 있다. 파이썬 확장자 .py로 만든 파이썬 파일은 모두 모듈이다. * import 이미 만들어 놓은 파이썬 모듈을 사용할 수 있게 해주는 명령어이다. 예로, mod1.py 파일에 있는 add 함수를 사용하기 위해서는 mod1.add처럼 모듈 이름 뒤에 '.'(도트 연산자)를 붙이고 함수 이름을 쓰면 된다. 모듈 이름 없이 함수 이름만 쓰고 싶은 경우에는 'from 모듈 이름 import 모듈 함수1, 함수2, ...'를 사용하면 된다. ' from 모듈 이름 improt * '로 *문자를 사용하면 해당 모듈의 모든 함수를 불러서 사용한다는 뜻이다. <..
-
[Python 기초 #7] 클래스, 객체와 인스턴스 차이, 생성자, 상속, 오버라이딩Programming 기초/Python 2023. 4. 21. 18:27
* 클래스(class) 클래스는 거푸집과 같다. 같은 기능을 하는 함수를 필요할 때마다 찍어내는 '함수 틀'이다. 클래스로 생성된 함수들을 객체(object)라고 부른다. c언어에는 클래스가 없다. c언어에서는 같은 기능을 하는 함수라도 매번 이름을 약간씩 바꿔가면서 새롭게 정의해야한다. 클래스 이름을 지을 때, 관례적으로 첫 글자를 대문자를 사용한다. 클래스 안에 구현된 함수는 메서드(Method)라고 부른다. 파이썬 메서드의 첫 번째 매개변수 이름은 관례적으로 self를 사용한다. 객체를 호출할 때 호출한 객체 자신이 전달되기 때문에 self를 사용한 것이다. 객체와 인스턴스(instance)의 차이 클래스로 만든 객체를 인스턴스라고도 한다. a =Cookie() 이렇게 만든 a는 객체이다. 그리고 ..
-
[DL for VS #9] LeNet-5Machine Learning 2023. 4. 19. 22:12
5.1 CNN의 디자인 패턴 * 첫 번째 패턴 : 특징 추출과 분류. 합성곱 신경망은 크게 특징 추출을 맡는 부분(일련의 합성곱층)과 분류를 맡는 부분(일련의 전결합층)으로 나뉜다. * 두 번째 패턴 : 이미지 깊이(색상 채널)는 증가, 크기는 감소. 입력층에서 색상 채널에 해당한 깊이가 합성곱층에서는 특징맵으로 바뀌어 깊이가 계속 증가한다. 입력 이미지 모양 = 높이x폭x채널({r,g,b}=3) 이미지 모양 = 높이 x 폭 x 특징맵수 * 세 번째 패턴 : 전결합층. 앞의 두 패턴만큼 반드시 지켜지지는 않음. 대부분 전결합층은 유닛 수가 같거나 이어지는 층에서 점차 유닛 수가 감소하는 패턴을 보임. 이어지는 층에서 유닛 수가 증가하는 경우는 매우 드물다. 5.2 LeNet-5 1998년 르쿤의 연구진은..
-
[Python 기초 #6] 함수, 사용자 입력과 출력, 파일 읽고 쓰기Programming 기초/Python 2023. 4. 19. 16:50
* 파이썬 함수의 구조 def 함수 이름(매개변수) 수행할 문장1 수행할 문장 2 ... def는 함수를 만들 때 사용하는 예약어(keyword) 매개변수(parameter) : 함수에 입력으로 전달된 값을 받는 변수. 인수(arguments) : 함수를 호출 할 때 전달하는 입력값. 매개변수와 인수는 혼용해서 사용됨. * 입력값과 결괏값에 따른 함수의 형태 일반적인 함수 결괏값을 받을 변수 = 함수 이름(입력 인수1, 입력 인수2, ...) 예) def add(a, b): result = a + B result result # a+b의 결괏값 반환 입력값이 없는 함수 결괏값을 받을 변수 = 함수 이름() 예) def say(): return 'Hi' 결과값이 없는 함수 함수 이름(매개변수1, 매개변수2..