카테고리 없음

202208026이종윤 c++ 프로그래밍 4주차 수업후과제

jong133 2024. 9. 24. 13:53

if문에서 조건이 참이면 다음 한 문장이나 {}을 실행한다.

출처:https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

범위를 지정하고 판단하는경우에 switch~case문을쓰지만 이런 소스는 범위케이스가 너무많이 때문에 쓰는것이 적절하지 않다.

출처:https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

 

Smile Han

 

www.youtube.com

c언어에서 무한루프로 가는 3가지 방법이 있는데 while,do while,for이 조금씩 차이가있다.

출처:https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

break 문은 여러 프로그래밍 언어에서 루프나 switch 문에서 빠져나오는 데 사용됩니다. 각 언어에서의 사용법은 다음과 같습니다.

출처:https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

1. C/C++

cpp

for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break; // 반복문을 종료
    }
}

2. Java

java

for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break; // 반복문을 종료
    }
}

3. C#

csharp

for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break; // 반복문을 종료
    }
}

4. Python

Python에서는 break 문을 사용하여 루프를 종료할 수 있습니다:

python

for i in range(10):
    if i == 5:
        break  # 반복문을 종료

5. JavaScript

javascript

for (let i = 0; i < 10; i++) {
    if (i === 5) {
        break; // 반복문을 종료
    }
}

6. Ruby

ruby

for i in 0..9
    if i == 5
        break # 반복문을 종료
    end
end

요약

break 문은 다양한 언어에서 루프나 switch 문을 종료하는 데 사용되며, 문법은 언어마다 약간의 차이가 있습니다

argument는 동전,parameter는 자판기 안에 들어간동전

현재 시간을 알아내는 c++소스를 작성해줘

 

답변

현재 시간을 알아내는 C++ 소스 코드는 다음과 같습니다. 이 코드는 <iostream>과 <ctime> 라이브러리를 사용하여 현재 시간을 출력합니다.

cpp

#include <iostream>
#include <ctime>

int main() {
    // 현재 시간 가져오기
    std::time_t currentTime = std::time(nullptr);
    
    // 현재 시간을 로컬 시간으로 변환
    std::tm *localTime = std::localtime(&currentTime);
    
    // 현재 시간 출력
    std::cout << "현재 시간: "
              << (localTime->tm_year + 1900) << '-' // 연도
              << (localTime->tm_mon + 1) << '-'     // 월
              << localTime->tm_mday << ' '           // 일
              << localTime->tm_hour << ':'           // 시
              << localTime->tm_min << ':'             // 분
              << localTime->tm_sec << std::endl;     // 초
    
    return 0;
}

설명

  1. <ctime>: 시간 관련 기능을 제공하는 라이브러리입니다.
  2. std::time(nullptr): 현재 시간을 초 단위로 반환합니다.
  3. std::localtime(): std::time_t 형의 시간을 로컬 시간 구조체인 std::tm으로 변환합니다.
  4. 출력: 연도, 월, 일, 시, 분, 초를 출력형식에 맞춰 출력합니다.

이 코드를 실행하면 현재 시간이 출력됩니다. 

 

 

 

주사위게임을 할려고하는데 c나 c++로 작성해줘

 



답변

아래는 C++로 작성한 간단한 주사위 게임입니다. 이 게임은 플레이어가 주사위를 굴려서 얻은 점수와 컴퓨터가 굴린 점수를 비교하여 승자를 결정합니다.

C++ 코드 예제

cpp

#include <iostream>
#include <cstdlib>  // rand(), srand()
#include <ctime>    // time()

int rollDice() {
    return rand() % 6 + 1; // 1에서 6 사이의 난수 생성
}

int main() {
    std::srand(static_cast<unsigned int>(std::time(nullptr))); // 랜덤 시드 초기화

    char playAgain;
    do {
        int playerScore = rollDice();   // 플레이어 주사위 굴리기
        int computerScore = rollDice();  // 컴퓨터 주사위 굴리기

        std::cout << "플레이어의 점수: " << playerScore << std::endl;
        std::cout << "컴퓨터의 점수: " << computerScore << std::endl;

        // 승자 결정
        if (playerScore > computerScore) {
            std::cout << "플레이어가 승리했습니다!\n";
        } else if (playerScore < computerScore) {
            std::cout << "컴퓨터가 승리했습니다!\n";
        } else {
            std::cout << "무승부입니다!\n";
        }

        std::cout << "다시 하시겠습니까? (y/n): ";
        std::cin >> playAgain;

    } while (playAgain == 'y' || playAgain == 'Y'); // 'y' 또는 'Y'를 입력하면 다시 게임

    std::cout << "게임을 종료합니다. 감사합니다!\n";
    return 0;
}

설명

  1. rollDice() 함수: 1부터 6까지의 난수를 생성하는 함수입니다. 주사위를 굴린 결과를 반환합니다.
  2. 랜덤 시드 초기화: srand()와 time()을 사용하여 랜덤 숫자를 생성할 때마다 다른 결과를 보장합니다.
  3. 게임 루프: 사용자에게 계속 게임을 할지 물어보고, 사용자가 'y' 또는 'Y'를 입력하면 다시 게임을 진행합니다.
  4. 점수 비교: 플레이어와 컴퓨터의 점수를 비교하여 승자를 결정하고 결과를 출력합니다.

이 코드를 컴파일하고 실행하면 간단한 주사위 게임을 즐길 수 있습니다. 추가적인 질문이 있으시면 말씀해 주세요!

 
 
 

srand함수는 왜쓰는거야?

 

답변

srand() 함수는 C와 C++에서 난수 생성기의 초기값(시드)을 설정하는 데 사용됩니다. 난수를 생성할 때, 동일한 시드 값을 사용하면 항상 같은 난수 시퀀스를 생성하게 됩니다. 따라서 srand()를 사용하여 매번 다른 시드를 설정하면 매번 다른 난수를 얻을 수 있습니다.

사용 이유

  1. 난수의 다양성: srand()를 사용하여 현재 시간을 시드로 설정하면, 프로그램을 실행할 때마다 다른 난수 시퀀스를 생성할 수 있습니다. 예를 들어, srand(time(nullptr))을 사용하면 현재 시간에 따라 매번 다른 시드가 설정됩니다.
  2. 재현 가능성: 동일한 시드 값을 사용하면 동일한 난수 시퀀스를 얻을 수 있습니다. 이는 디버깅이나 테스트할 때 유용할 수 있습니다.

코드 예제

아래는 srand()와 rand()를 함께 사용하는 간단한 예제입니다:

cpp

#include <iostream>
#include <cstdlib>  // rand(), srand()
#include <ctime>    // time()

int main() {
    std::srand(static_cast<unsigned int>(std::time(nullptr))); // 현재 시간으로 시드 설정

    for (int i = 0; i < 5; i++) {
        int randomNum = std::rand() % 100; // 0부터 99 사이의 난수 생성
        std::cout << "난수 " << (i + 1) << ": " << randomNum << std::endl;
    }

    return 0;
}

요약

  • srand(): 난수 생성기의 초기값을 설정하여 난수의 다양성을 보장합니다.
  • rand(): 설정된 시드를 바탕으로 난수를 생성합니다.

이렇게 srand()를 사용하면 매번 다른 난수를 생성할 수 있어, 게임이나 시뮬레이션 등 다양한 응용 프로그램에서 유용합니다. 추가 질문이 있으시면 말씀해 주세요!

lower camel case는 단어가 바뀌면 첫단어만 대문자로 바뀌는방식이고 첫단어를 소문자로 쓰면 upper camel case

정의는 만들기고 호출는 사용하고 그리고 선언은 사용법이다.

리턴값이 있으면 보관해서 사용한다.

#include <iostream>
void display(void); //선언, 프로토타입(prototype)
void printDoubleNumber(int x);
int returnDoubleNumber(int x);
int add(int x, int y);
double divide(int x, int y);
int main(void)
{
int x;
//display();  //호출, call
//printDoubleNumber(3);  //3은 argument x는 parameter
//x = returnDoubleNumber(10);
//std::cout << x;
//std::cout << returnDoubleNumber(7);
//x = add(3, 4);
x = divide(3, 2);
std::cout << (double)x;
return 0;
}
double divide(int x, int y)
{
return (double)x / y;
}
int add(int x, int y)
{
return x + y;
}
void display(void) //정의
{
std::cout << "하이\n";
}
int returnDoubleNumber(int x)
{
return x * 2;
}
void printDoubleNumber(int x)
{
std::cout << x * 2;
}