목록Coding (81)
exestudiary
위의 내용은 7월 2주동안 공부한 내용인데원래 한 달안에 끝내는 마음으로 이 책을 시작했는데, 너무 내용을 쉽게 풀어서 써줘서 생각보다 빨리 끝날 것 같다. 이 책이 진짜 쉽게 설명한 만큼 내용이 깊지는 않은데추후에 깊게 공부하기 위해 전반적인 내용을 훑어본다는 느낌으로 공부하면 좋을 것 같다. 딥러닝 파트도 끝나면 정리해서 올려야겠다. (내용은 모두 혼자 공부하는 머신러닝 + 딥러닝을 기반으로 작성되었다.)
매개변수를 포인터로 선언하는 경우1. 함수 간의 변수 공유를 통한 범용의 함수 정의 > 함수와 함수 간의 지역변수를 공유하기 위하여 매개변수에 포인터를 사용한다. > 인수와 매개변수를 통하여 변수를 공유함으로써 코딩의 유연성(flexibilty)을 줄 수 있다.> 매개변수를 통한 변수의 공유가 없다면 반환값을 사용하여 함수 간의 값을 전달을 해야하므로 자료형마다 값을 입력받는 수많은 함수를 만들어야한다. 또한 다양한 자료형을 한꺼번에 입력받기 위한 함수를 만들기는 매우 까다롭다. 2. 대량의 데이터를 함수 간의 공유 > 배열을 함수에 전달할 때 값의 복사 방식을 사용하면 복사본을 만들기 위한 주기억장치 할당으로 실행시간 및 주기억장치 낭비가 발생할 수 있다. 따라서 C언어에서는 기본적으로 배열의 시작 ..
지금까지의 데이터를 저장하기 위하여 변수를 선언한 것은 선언할 때 명시한 변수의 자료형의 크기에 따라 주기억장치를 할당받는 것이고 변수를 사용한다는 것은 변수에 할당된 영역에 값을 저장하거나 저장된 값을 읽어서 사용한다는 것을 의미한다.int var;var = 10;printf("%d\n", var); 포인터는 주소를 저장하기 위한 변수다. 포인터를 사용하는 이유는 값을 간접참조(우회적으로 참조)하기 위한 것이다.예시를 보자. 아래 예시는 위의 예시와는 다르다.(위의 예에서 var을 직접 사용하지 않고 *ptr을 사용하여 간접 참조한다.)int *ptr;ptr = &var;printf("%d\n", *ptr); 여기서 포인터 연산자(*)와 주소 연산자(&)의 의미를 배워보자. 포인터 char *p_chr..
값에 의한 호출(call-by-value)f_sum() 함수를 호출할 때 a값이 전달되어 begin에 저장되며, b 값이 전달되어 end에 저장된다.#include #pragma warning(disable: 4996)#pragma warning(disable: 6031)int f_sum(int begin, int end);int main(){ int a, b, sum; //지역변수 printf("a ~ b까지의 합 구하기 \n"); printf("a는? "); scanf("%d", &a); printf("b는? "); scanf("%d", &b); sum = f_sum(a, b); //함수호출 printf("\n%d ~ %d의 합은 %d", a, b, sum); return 0;}int f_sum..
문자 선언//문자 1개char alpha = 'C';// 문자열 1개char id[5] = "Nabi"; Nabi는 4글자인데 id[5]로 5글자를 저장하겠다고 코드를 작성하면'N' 'a' 'b' 'i' '\0'로 저장이 된다. // 문자열 3개char fr[3][6] = {"Jaeil", "Doori", "Gosu"} 마찬가지로 행의 길이가 6글자로 저장된다고 했는데 5글자, 4글자로 문자열이 저장되어있다.이 같은 경우에도 \0이 남는 자리에 저장이 된다. 원소 호출 원소 호출을 할 때는 2차원 배열을 호출할 때 하는 것처럼 하면 된다. 문자열 단위의 입출력 문자열의 시작주소 char형 1차원 배열일 때배열명: 문자열 시작 주소// 문자열 1개char id[5..
인수 전달이 있는 함수의 정의와 호출을 예시를 통해 바로 이해해보자. #include #include #pragma warning(disable: 4996)#pragma warning(disable: 6031)void f_line(char ch, int n); // 함수 원형 선언int main() // main 함수 정의{ int length = 10; // main 함수의 지역 변수 선언 f_line('>', 5); // '>'를 5개 출력하도록 함수 호출 f_line('-', length); f_line(' 여기서 보면 void f_line(char ch, int n)을 확인할 수 있을 것이다. 이게 어찌보면 가장 중요한데 ..
함수특정한 일을 수행하는 코드 블록평균, 순위, 합격자 수, 둘 중 큰 값, 90점 이상 점수 개수와 같이 특정 값 한 개를 많이 구하는 데 많이 사용한다.종류가 2개가 있는데 반환값이 있는 함수와 반환값이 없는 함수로 나뉜다. #include 가 필요한 수학 함수 #include 가 필요한 범용 함수 함수의 원형 선언 함수의 원형 선언이 필요한 경우의 예시가 있고 그렇지 않은 예시가 있다.보통 함수의 원형 선언이 필요한 경우를 권장하는 편이다.줄 출력하기 예시를 통해 알아보자. 함수의 원형 선언이 필요한 경우 #include #pragma warning(disable: 4996)#pragma warning(disable: 6031)void f_line();int main(){ printf("줄..
예시로 먼저 학습하기 모든 값의 순위 저장하기#include #pragma warning(disable: 4996)#pragma warning(disable: 6031)#define NUM_OF_SCORE 5int main(){ int scores[NUM_OF_SCORE] = { 97, 85, 89, 72, 96 }; int ranks[NUM_OF_SCORE] = { 0 }, i, target; for (target = 0; target 여기서는 순위를 매겨야하기에 ranks[NUM_OF_SCORE] = {0}을 생각해낼 수 있어야 하는 거 같다. 이걸을 먼저 선언하고 초기화할 수 있어야 똑바로 순위를 매겨서 출력을 할 수 있기 때문이다. 2차원 배열에 저장하기 2차원 배열 선언 및 참조2차원 배..
다중선형회귀변수 Y를 X₁,....,Xp로 설명하는 다중선형회귀 모형 회귀계수의 추정 손실분량 최소제곱법data("stackloss")m1 = lm(stack.loss ~ ., data = stackloss); m1여기서 . 의 의미는 stack.loss를 제외한 모든 변수를 덧셈으로 연결한다는 뜻. 후버의 M-추정법m2 = rlm(stack.loss ~ ., data = stackloss); m2 LMSm3 = lqs(stack.loss ~ ., data = stackloss, method = "lms"); m3 LTSm4 = lqs(stack.loss ~ ., data = stackloss, method = "lts"); m4
