ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 투자노트 금융공학 퀀트 프로그래밍 과정 4주차 과제
    금융공학 퀀트 프로그래밍 과정 2020. 4. 12. 15:02

    제출안내

     1. 방법 : 본인 블로그에 작성   게시판에 링크를 업로드

               또는  게시판에 작성제목은 '투자노트 금융공학 퀀트 프로그래밍 과정 x주차과제등으로 작성 

               (  게시판에 작성한 내용은 주기적으로 삭제  정리되오니 강의 내용을 가지고 

                  있으시려면 본인 블로그에 작성하시오)

     2.  : 최종과제 스크린샷 1 이상 첨부스크린샷을 반드시 첨부하시오.

     3. 기한 : 매주 일요일 오후 12 전까지

     

     

    준비

     지난 1주차 과정에서, c 편집할  있는 프로젝트를 생성한  

     다음 기본 코드로부터 시작하여 아래 문제들을 해결하시오.

       int main()

     { return 0; }

     

     

    기본과제  제출 양식

    1. 증감연산자가 무엇인지 찾아보고 x 초기값이 1일때의 사용 예시를 적고 결과값을 printf 보시오. (0.5시간 소요)

    증감 연산자는 변수에 저장된 값을 1 증가 및 감소시키는 경우에 사용되는 연산자다. ++ 또는 부호가 변수의 앞에 있는 경우, 선 증가(감소), 후 연산을 하고 부호가 변수 뒤에 있는 경우 선 연산, 후 증가(감소)를 한다.

      . x++ : 속한 문장을 먼저 진행한 후, 값을 1 증가 시킨다.

    int num = 1;

    printf("num++ : %d\n", num++); // 1을 출력

    printf("num : %d", num); // 2를 출력

      . x-- : 속한 문장을 먼저 진행한 후, 값을 1 감소 시킨다.

    int num = 1;

    printf("num-- : %d\n", num--); // 1을 출력

    printf("num : %d", num); // 0을 출력

     

     

    2. 자동형변환(올림변환내림변환) 대해 조사하고 아래 문항을 해결하시오(1시간 소요)

      자동형변환(올림변환내림변환 대해 50 이내로 요약하여 설명해보시오.

    대입 연산자의 왼편과 오른편에 존재하는 두 피연산자의 자료형이 일치하지 않으면, 왼편에 있는 피연산자를 대상으로 형 변환이 자동으로 일어난다. 이 때 데이터의 표현범위가 보다 넓은 자료형으로의 형 변환을 올림변환, 좁은 자료형으로의 형 변환은 내림변환이라 한다.

      . double a = 10, double b=3 일때 a/b=3.333... 이지만, int c = a/b처럼 짜면 어떤 값이 나오는지 printf  확인하고  이유를 설명하시오.

    double a = 10, b = 3;

    int c = a / b;

    printf("c : %d\n", c); // 3을 출력

    실수형 데이터를 정수형 데이터로 변환하는 과정에서 소수부분의 손실이 발생하기 때문이다. 올림변환의 경우 데이터의 손실이 발생하지 않으나, 내림변환의 경우 데이터의 손실이 발생할 수 있다.

     

     

      . int a = 10, int b=3일때 a/b=3 이지만캐스팅 연산자 (double) 사용하여  (double)a/ (double)b 처럼 계산  이것을 double x 대입한  값을 확인하면 3.333....  정상적으로 나옴을 확인하시오그리고 이유를 설명하시오.

     

    int a = 10, b = 3;

    double x;

    x = (double) a / (double) b;

    printf("x : %lf\n", x); //3.333333 출력

     

    내림변환과 달리 올림변환의 경우 데이터의 손실 없이 형 변환이 일어난다. 정수 103을 각각 10.03.0과 같이 실수형으로 변환하여 실수의 연산을 수행할 수 있게 한다.

     

      임의의 유리수를 입력받아 소수점자리에서 올림버림 하여 정수부분만 뽑아주는 프로그램을 구현하시오.

    double num;

    int a;

     

    printf("유리수 입력 : ");

    scanf("%lf", &num);

     

    a = num;

     

    printf("정수 부분 : %d", a);

     

      . ''를 이용하여 임의의 유리수의 소수부분을 뽑아주는 프로그램을 구현하시오.

    double fl;

    fl = num - a;

     

    printf("소수 부분 : %lf", fl);

     

      . math.hinclude 한 뒤 ','를 이용하여 임의의 유리수의 log값을 알 때 그 숫자를 소수넷째짜리까지 찾아주는 프로그램을 만드시오.

    double log;

     

    printf("로그값 입력 :");

    scanf("%lf", &log);

     

    double r = pow(10, log);

    printf("진수 : %.4lf.", r);

     

     

     

    return 0;

     

     

     

    3. 구구단 2~9단을 출력해보시오. , 반복문을 사용하지 마시오 (3시간 소요)

      . int a=2, int b=1 시작하시오.

      . a * b = c라고 출력해보시오.

      . b++ 하여 b 2 만드시오.

      . a * b = c라고 출력해보시오.

      . b++ 하여 b 3 만드시오.

      . a * b = c라고 출력해보시오.

      . b++ 하여 b 4 만드시오.

      . a * b = c라고 출력해보시오.

      ~아의 방식으로 b 9일때까지 출력해보시오

       항이 끝나면 a++ 하여 a=3으로 만드시오. b=1 주어 초기화하시오.

      다시 ~아의 방식으로 b 9일때까지 출력해보시오.

      ~카의 방식으로 a 9일때까지 출력해보시오

     

    int a = 2, b = 1;

    int c = a * b;

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

     

    a++;

    b = 1;

     

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

     

    a++;

    b = 1;

     

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

     

    a++;

    b = 1;

     

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

     

    a++;

    b = 1;

     

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

     

    a++;

    b = 1;

     

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

     

    a++;

    b = 1;

     

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

     

    a++;

    b = 1;

     

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

    printf("%d * %d = %d\n", a, b++, c = a * b);

     

     

     

    심화과제 제출 양식안해도  )

    1. 다음 증감연산자의 역할과 차이를 설명하고 이를 printf 보이시오http://tujanote.cafe24.com/bbs/board.php?bo_table=pds2&wr_id=55&sca=C&page=2  참조하시오.

    ++ 연산자는 변수에 저장된 값을 1 증가시키는 경우에 사용되는 연산자다. ++부호가 변수의 앞에 있는 경우, 선 증가, 후 연산을 하고 부호가 변수 뒤에 있는 경우 선 연산, 후 증가를 한다.

     

      . x++ : x++ 하기 x후의 x 비교하여 printf

    int num = 10;

     

    printf("num : %d\n", num); // 10 출력

    printf("num++ : %d\n", num++); // 10 출력 (속한 문장을 먼저 진행한 후, 값을 1 증가)

    printf("num : %d\n\n", num); // 11 출력

     

     

      . ++x : ++x 하기 x후의 x 비교하여 printf

    int num2=10;

    printf("num2 : %d\n", num2); // 10 출력

    printf("++num2 : %d\n", ++num2); // 11 출력 (값을 1 증가 후, 속한 문장의 나머지를 진행)

    printf("num2 : %d\n\n", num2); // 10 출력

     

    -- 연산자는 변수에 저장된 값을 1 감소시키는 경우에 사용되는 연산자다. --부호가 변수의 앞에 있는 경우, 선 감소, 후 연산을 하고 부호가 변수 뒤에 있는 경우 선 연산, 후 감소를 한다.

      . x-- : x-- 하기 x후의 x 비교하여 printf

    int num3=10;

     

    printf("num3 : %d\n", num3); //10 출력

    printf("num1-- : %d\n", num3--); // 10 출력 (속한 문장을 먼저 진행한 후, 값을 1 감소)

    printf("num3 : %d\n\n", num3);

      . --x : --x 하기 x후의 x 비교하여 printf

    int num4=10;

    printf("num4 : %d\n", num4); // 10 출력

    printf("--num4 : %d\n", --num4); // 9 출력 (값을 1 감소 후, 속한 문장의 나머지를 진행)

    printf("num4 : %d\n\n", num4); // 9 출력

     

     

    2. 나눗셈을 하는 프로그램을 만들되 % 사용하지 마시오.

      제수와 피제수를 int형으로 입력받으시오.

       수를 나누어 몫을 구하고 int 변수에 넣으시오

      두수를 나눈 제수피제수몫으로 부터 나머지 정리(검산식) 이용하여 나머지를 구하시오. 힌트 : b=aQ+R, b-aQ=R

      제수피제수나머지를 출력하시오예를들어, ~ ~으로 나누면 몫은~이고 나머지는~이다  출력하시오

     

    int num1, num2, div, res;

     

    printf("피제수 입력 : ");

    scanf("%d", &num1);

     

    printf("제수 입력 : ");

    scanf("%d", &num2);

     

    div = num1 / num2;

     

    res = num1 - num2 * div;

     

    printf("%d을 %d로 나누면 몫은 %d이고, 나머지는 %d입니다.", num1, num2, div, res);

Designed by Tistory.