컴퓨터 수업(64)
-
디버깅
@디버깅이란 런타임 에러를 잡아내는 가장 좋은 방법이다. 컴파일 에러는 뭐 syntax 에러이니 명확하다고 쳐도, 런타임 에러는 개발자가 하나하나 변수를 모니터링하는 방법밖에 없다. @대충은 알고있는데 정확히 알아보자 @중단점을 설정하면 해당 중단점의 시작에서 멈춘다. 따라서 다음과 같은 그림으로 실행되었다고 생각하면 된다. 중단점을 기준으로 그 위까지만 실행된 것. 따라서 for문에 아직 입장하지 못했다. @ 한 단계씩 실행과 프로시저 단위 실행은 내부 함수를 어떻게 처리하냐에 따라 다르다. 한 단계씩 실행은 해당 statement에 함수가 있다면, 그 함수로 가서, 한 단계씩 실행하고 함수를 나온다. 하지만 프로시저 단위 실행은 함수를 무시하고 그저 한 줄 씩 읽는다 @지금은 일단 변수 감시용도로 사용
2020.09.18 -
빌드,컴파일
@어떻게 실행파일. exe를 만드는가? @1은 editor를 의미한다. 뭐 메모장이 될 수도 있겠고, IDE가 될 수도 있겠당(Visual Studio,eclipse 등..) 여기까지 행하면 .cpp 파일을 생성한다. @2는 preprocessor를 의미한다. #include #include "UnsortedType.h" #defien MAX_ITEMS 100 위 3줄이 모두 전처리기를 의미한다. @3은 컴파일 타임을 의미한다. 즉 우리가 1에서 만든 소스코드를 바이너리 코드로 바꿔주는 일을 뜻한다 (컴퓨터가 알아먹는 단어로 만들기). 여기까지 행하면 .obj 파일을 생성할 수 있다. @4는 여러외부 프로그램들을 엮는 행위라고 하는데 우리는 밑의 그림으로 이해하자. @이건 솔루션-프로젝트를 그저 생성만 ..
2020.09.18 -
main함수의 아규먼트// argc & argv
@예제 코드를 보면서 배워보자 #include using namespace std; int main(int argc, char* argv[]) { cout
2020.09.18 -
Big O notation
@어려운 말은 차치하고 n이 클수록, 동작하는데 오래 걸리는 코드라 생각하자. @이때, BigO는 N개의 아이템을 K(최악의 상황)번 탐색 했을 때의 lhs가 1이 된다는 것에서 K는 무엇이 되는가 = 최악의 상황일때, K는 어떻게 표현되는가. @rule 생성된 시간복잡도 식에서 상수와 최고차항이 아닌 것은 제외한다. @예시를 통한 이해 1. for문 for(int i=0;i K = N-1 O(N) 3. binary search 1번의 operation시, N은 N/2로 줄어든다. 2번의 operation시,N은 N/2 * 1/2 로 줄어든다. K번의 operation시 N은 N/2 * (1/2)^K로 줄어든다. 따라서 양변에 로그를 씌우면 K = log2(N)이다. O(log2(N)) ###추가 1번시..
2020.09.15 -
List
@Category -List의 정의 -List의 종류 -ADT와 List, 그 opeartion과 domain -UnsortedType -SortedType -Big (o) 정도...? @List의 정의 리스트의 필수요소로 리스트의 정의를 설명하자면, Linear relationship을 가져야한다. Linear relationship = Each element except the first has a unique predecessor, and each element except the last has unique successor @List의 종류 Unsorted List와 Sorted List가 있다. 1. Unsorted List 리스트 상의 데이터에 순서가 없다. 그 순서는 alphabetical..
2020.09.15 -
buffer란?
버퍼(buffer)는 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역이다. 즉 memory의 영역이다. C에서 array의 변수명으로 사용한다.
2020.09.14