C 1
This presentation is the property of its rightful owner.
Sponsored Links
1 / 16

C ++ 다지기 1 부 PowerPoint PPT Presentation


  • 129 Views
  • Uploaded on
  • Presentation posted in: General

C ++ 다지기 1 부. 1. ex_1.1_grade. 문제 학생의 이름을 묻고 입력 받으시오 . 그 후 중간고사와 기말고사 성적을 입력받으시오 . 그 후 과제 성적을 묻고 입력받으시오 . 단 과제 성적은 몇 개가 되던 상관 없이 입력받을 수 있도록 하시오 .( 최소 3 개 이상입력 ) 과제 입력 종료는 콘솔창에서 컨트롤 +z 키입니다 . 과제값은 평균 값 을 내서 반영하도록 하시오 . 과제 값의 비율은 중간 20% 기말 40% 과제 40% 입니다. 1. ex_1.1_grade.

Download Presentation

C ++ 다지기 1 부

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


C 1

C++ 다지기 1부


1 ex 1 1 grade

1. ex_1.1_grade

  • 문제

    • 학생의 이름을 묻고 입력 받으시오. 그 후 중간고사와 기말고사 성적을 입력받으시오. 그 후 과제 성적을 묻고 입력받으시오. 단 과제 성적은 몇 개가 되던 상관 없이 입력받을 수 있도록 하시오.(최소3개 이상입력) 과제 입력 종료는 콘솔창에서 컨트롤+z 키입니다. 과제값은평균 값을 내서 반영하도록 하시오.

    • 과제 값의 비율은 중간 20% 기말 40% 과제 40% 입니다.


1 ex 1 1 grade1

1. ex_1.1_grade

  • 스코프(scope) 및 namespace

    • 스코프란 그 이름이 프로그램 상에서 의미를 갖는 범위을 말함.

    • 즉, std::cout는 한정된 이름으로써 :: (스코프연산자)를 사용한다.

    • 여기서 std는 네임스페이스를 지칭.

Namespace 는 왼쪽처럼 쓸 수도 있고

오른쪽처럼 개별적으로 정의할 수도 있다.


1 ex 1 1 grade2

1. ex_1.1_grade

  • 입출력문

    • C++ 의 입력은 cout로 이루어진다.

      • cout << “hi”;

      • cout << “안녕하세요” << endl;

    • C++ 의 출력은 cin으로 이루어진다.

      • cin >> final;

      • cin >> midterm >> final;


1 ex 1 1 grade3

1. ex_1.1_grade

  • end-of-file

    • 콘솔창에서 입력을 그만 받고자 할 때 사용한다

    • ctrl + z 키를 누르면 입력을 그만 받는다.

^z 가 바로 ctrl + z 키를 누르면 나오는 동작


1 ex 1 1 grade4

1. ex_1.1_grade

  • while 조건식을 cin 으로?

    • while 조건식으로 cin >> x 와 같이 입력을 받을 수 있다.

    • 이렇게 한다면 조건식을 테스트 할 뿐 아니라 x에 값을 읽어들이는 작업까지 한번에 처리가 가능하다.

while 문 조건식 안에 입력을 받는 모습


1 ex 1 1 grade5

1. ex_1.1_grade

  • 정밀도(자리수) 정하기

    • setprecision() 함수를 이용하면 원하는 자리수 만큼 숫자를 출력할 수 있다.

    • 단 자릿수 출력시 출력이 끝난 후 다시 초기화를 해주어야 한다.

setprecision() 을 이용해서 자리수를 출력하는 예제와 출력 결과


1 ex 1 2 grade vector

1. ex_1.2_gradeVector

  • 문제

    • 학생의 이름을 묻고 입력 받으시오. 그 후 중간고사와 기말고사 성적을 입력받으시오. 그 후 과제 성적을 묻고 입력받으시오. 단 과제 성적은 몇 개가 되던 상관 없이 입력받을 수 있도록 하시오.(최소3개 이상입력) 과제 입력 종료는 콘솔창에서 컨트롤+z 키입니다. 과제값은중간 값을 내서 반영하도록 하시오.

    • 과제 값의 비율은 중간 20% 기말 40% 과제 40% 입니다.


1 ex 1 2 gradevector

1. ex_1.2_gradeVector

  • 평균값 대신 중앙값 사용하기

    • 중앙값이란 들어온 데이터들을 정렬해서 그 정렬된 값들중 중앙에 존재하는 값

    • 중앙값을 사용하는 이유는 전체 평균에 큰 타격을 줄 수 있는 급격히 낮은 성적에 영향을 받지 않으면서 어느정도 일정한 성능을 내주기 때문.

평균값을 사용한 결과 (상) 중앙값을 사용한 결과 (하)


1 ex 1 2 gradevector1

1. ex_1.2_gradeVector

  • 중앙값 사용하기

    • 중앙값을 사용하기 위해서는 모든 과제성적을 읽고 저장해야 한다. 그 후 데이터를 정렬하고 그 중간에 해당하는 값을 선택하면 된다.

    • 하지만 기존의 방식의 경우 한번 입력받고 저장하고 다시한번 입력받고 저장하는 작업을 반복한뒤 최종적으로 sum / count 형식으로 나누어주기 때문에 중앙값을 구할 수 없다.

    • 보편적으로 배열을 떠올릴 수 있지만 우리는 vector 를 이용하여 계산한다.


1 ex 1 2 gradevector2

1. ex_1.2_gradeVector

  • Vector

    • vector 은 주어진 타입에 대한 일련의 값을 저장하고 추가적인 값들을 허용 할 수 있도록 필요한 때에 크기가 커지며 개별값들을 효과적으로 접근 가능하다.

    • 즉, 우리가 잘 알고 있는 배열과링크드리스트의 장점을 합쳐놓았다고 볼 수 있다.

vector 의 맴버함수


1 ex 1 2 gradevector3

1. ex_1.2_gradeVector

  • Vector 입력받기

    • Vector 안에 있는 push_back 함수를 이용하여 입력받은 데이터를 순차적으로 저장.

기존 ex_1.1의 입력부분 (좌), vector를 이용한 입력(우)


1 ex 1 2 gradevector4

1. ex_1.2_gradeVector

  • Vector 사이즈 확인

    • 중간 값을 알기전에 vector 의 사이즈를 확인한다.

    • 여기서 typedef 는 코드 작성시 typedef 를 넣게 되면 그 이름을 변수로 사용하는 것이 아니라 해당 타입에 대한 동의어로써 정의 하는것. 즉 vec_sz 라는 변수의 이름을 vector<double>::size_type 에 대한 동의어로 정의한 것이다.

    • 아래 구문은 vec_sz 라는 변수를 vector 이 제공하는 vector이 담을 수 있는 최대 값을 저장할 수 있는 적절한 타입인 size_type 로 정의한다. 라고 해석할 수 있다.

    • 왜 int 형을 사용하지 않고 vector 클래스가 제공하는 size_type 를 사용하는가?

      • 그 이유는 vec_sz 의 값은 homework 의 크기에 따라 달라지는데 만일 homework 의 값이 int 형으로 표현 가능한 길이보다 더욱더 큰 값을 가지고 있다면 int 형으로는 그 값을 감당 할 수 없기 때문에 미리 정의한 타입을 사용하는 것이 좋은 방법이다.

homework 라는 백터의 사이즈를 확인하는 구문


1 ex 1 2 gradevector5

1. ex_1.2_gradeVector

  • Vector 정렬

    • sort 를 이용하여 오름차순으로 데이터를 정렬하고 중간위치를 찾는다.

sort 함수를 이용하여 백터의 값을 정렬


1 ex 1 2 gradevector6

1. ex_1.2_gradeVector

  • 중간값을 찾기 위한 삼항연산자

    • 데이터가 정렬되고 나면 중간값을 찾을 수 있는데 중간값을 구하는 방법은 데이터의 개수가 짝수일 때, 홀수일 때 두가지 경우로 나눌 수 있다.

    • if 와 else 로 나눠서 사용할 수도 있지만 우리는 코드를 간결하게 하기 위해삼항연산자를 사용한다.

    • 삼항연산자 아래와 같은 형식으로 동작한다

    • (조건문) ? (참인 경우) : (거짓인 경우)

3항 연산자를 사용하여 homework 의 중간 값을 구한다


1 ex 1 3 gradevector

1. ex_1.3_gradeVector

  • 문제

    • 여러개의 정수 값을 읽어들여 먼저 모든 수를 출력하고 그 다음에 그 중 가장 큰 네개의 값들만 출력하시오.


  • Login