반응형

랜덤 수를 발생시키는 Random 클래스를 만들자. Random 클래스를 이용하여 랜덤한 정수를 10개 출력하는 사례는 다음과 같다. Random 클래스가 생성자, next(), nextInRange() 3개의 멤버 함수를 가지도록 작성하고 main() 함수와 합쳐 하나의 cpp파일에 구현하라.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
 
class Random {
public:
    Random() {
        srand((unsigned)time(0)); //다른 랜덤수를 발생시키기 위한 seed 설정
    }
    int next() {
        return rand();
    }
    int nextInRange(int a,int b) {
        return ((rand() % (b - a + 1)) + a); //a이상 b미만 랜덤 정수를 뽑는 알고리즘
        
    }
};
 
int main(void) {
    Random r;
    int i;
    cout << "-- 0에서 " << RAND_MAX << "까지의 랜덤 정수 10개--" << endl//RAND_MAX=32767 상수
    for (i = 0; i < 10; i++) {
        cout << r.next() << " ";
    }
    cout << "\n\n";
    cout << "-- 2에서 " <<  "4까지의 랜덤 정수 10개--" << endl;
    for (i = 0; i < 10; i++) {
        cout << r.nextInRange(2,4<< " ";
    }
    cout << endl;
    return 0;
}
cs



5미만의 수를 rand 출력하려면 4의 나머지를 출력하면 된다. (0~3)

여기서 3~6을 출력하고싶으면 위의 값에 3을 더해주면 된다. 그런데 우리가 가진 인자는 3,6이기 때문에

4를 3,6으로 표현해야 한다. 0~4 = 4개 3~6= 4개 숫자이다. 즉 우리가 원하는건 3~6에 존재하는 숫자 개수이기 때문에

6-3+1을 해주면 된다. 

3미만의 수를 rand 출력하려면 3의 나머지를 출력하면 된다. (0~2)

여기서 2~4를 출력하고 싶으면 4-2+1을 통해 나눠주는 수를 구하고 결과 값에 2를 더해주면 된다.

즉 일반적으로 표현했을 때 a~b 사이 랜덤 정수를 출력하고 싶으면

rand%(b-a+1)+a 를 해주면 되는 것이다.




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C++' 카테고리의 다른 글

EvenRandom 클래스  (0) 2017.10.12
Oval (사각형에 내접하는 타원) 클래스  (0) 2017.09.21
별 출력  (0) 2017.09.09
1부터 10까지 더하기  (0) 2017.09.09
개인정보 출력  (0) 2017.09.09
반응형

다음과 같이 출력하는 C++ 프로그램을 Visual C++로 작성하라.


1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
int main(void){
    int i=0;
    int j=0;
    for(i=1;i<5;i++//총몇줄 입력할지 결정
    {
        for(j=0;j<i;j++){ 
            std::cout<<"*"//별출력
        }
        std::cout<<"\n"//한줄다입력하면 개행
    }
    return 0;
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C++' 카테고리의 다른 글

Oval (사각형에 내접하는 타원) 클래스  (0) 2017.09.21
랜덤 수 출력  (0) 2017.09.16
1부터 10까지 더하기  (0) 2017.09.09
개인정보 출력  (0) 2017.09.09
C++입문  (2) 2017.09.09
반응형

1에서 10까지 더하여 결과를 화면에 출력하는 C++ 프로그램을 Visual C++로 작성하라.


1
2
3
4
5
6
7
8
9
10
#include <iostream>
int main(void){
    int i=0;
    int sum=0;
    for(i=1;i<=10;i++){ //1부터 10까지 반복
        sum+=i; //sum=sum+i
    }
    std::cout<<"1에서 10까지 더한 결과는 "<<sum<<"입니다.\n"//c언어에 비해 편한 표준출력
    return 0;
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C++' 카테고리의 다른 글

Oval (사각형에 내접하는 타원) 클래스  (0) 2017.09.21
랜덤 수 출력  (0) 2017.09.16
별 출력  (0) 2017.09.09
개인정보 출력  (0) 2017.09.09
C++입문  (2) 2017.09.09
반응형

다음 지시대로 자신의 학과, 나이, 희망 직업을 화면에 출력하는 C++ 프로그램을 Visual C++로 작성하라.

솔루션명 : prac1

프로젝트명 : 1-2

소스 파일명 : me.cpp


1
2
3
4
5
6
7
#include <iostream>
int main(void){
    std::cout<<"컴퓨터공학과\n";
    std::cout<<"21세\n";
    std::cout<<"대통령\n";
    return 0;
}
cs



반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C++' 카테고리의 다른 글

Oval (사각형에 내접하는 타원) 클래스  (0) 2017.09.21
랜덤 수 출력  (0) 2017.09.16
별 출력  (0) 2017.09.09
1부터 10까지 더하기  (0) 2017.09.09
C++입문  (2) 2017.09.09
반응형

Visual C++를 활용하여 다음에 지시한 대로 C++ 프로그램을 작성하고 실행하라.


솔루션명 : prac1

프로젝트명 : 1-1

소스 파일명 : name.cpp


1
2
3
4
5
6
#include <iostream>
int main(void)
{
    std::cout<<"My name is Mike.\n";
    return 0;
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C++' 카테고리의 다른 글

Oval (사각형에 내접하는 타원) 클래스  (0) 2017.09.21
랜덤 수 출력  (0) 2017.09.16
별 출력  (0) 2017.09.09
1부터 10까지 더하기  (0) 2017.09.09
개인정보 출력  (0) 2017.09.09

+ Recent posts