20250901

Jaemyeong Lee·2025년 9월 3일
0

로드맵

목록 보기
1/3

계획

Rookiss

  • 프로그래밍 개론

얌얌코딩

  • 변수, cout, debug 개념

다시 고등 수학

  • 명제와 증명

컴퓨터 구성 요소

1. CPU (Central Processing Unit)

  • 역할: 컴퓨터의 두뇌 역할로, 모든 데이터 처리를 담당하며 명령어를 실행.
  • 특징: 연산 속도가 매우 빠르며, 메모리(RAM)로 데이터를 받아 처리.
    • 데이터를 직접 영구적으로 저장할 수 없고, RAM 및 저장 장치를 통해 데이터 관리.

2. RAM (Random Access Memory)

  • 역할: 데이터를 임시로 저장하며, CPU가 빠르게 접근할 수 있도록 지원.
  • 특징:
    • 휘발성 메모리로, 전원이 꺼지면 데이터가 소실됨.
    • 프로그램 실행 시 데이터를 저장하며, CPU와 데이터 간 빠른 통신을 보장.
  • 메모리 구조: RAM은 4가지 영역으로 나뉨.
    1. Code (Text) Segment:
      • 프로그램 명령어가 저장되는 영역으로, 기계어(0과 1)로 구성.
      • 실행 가능한 코드가 저장되며, 보통 읽기 전용.
    2. Data Segment:
      • 초기화된 전역 변수와 정적 변수가 저장되는 영역.
    3. Heap:
      • 동적 메모리 할당을 위한 공간.
      • 프로그램 실행 중 필요에 따라 메모리 할당 및 해제가 가능.
    4. Stack:
      • 함수 호출과 관련된 정보가 저장.
      • 함수 호출 시 프레임 추가, 함수 종료 시 프레임 제거.

3. SSD (Solid State Drive)

  • 역할: 반도체 기반 저장 장치로 데이터를 영구적으로 저장.
  • 특징:
    • 빠른 읽기/쓰기 속도.
    • 내구성이 높으며 소음이 없음.
    • 가격이 비싸지만, 데이터 접근 속도가 빠름.

4. HDD (Hard Disk Drive)

  • 역할: 자기 디스크를 이용해 데이터를 영구적으로 저장.
  • 특징:
    • SSD보다 느리지만, 용량 대비 가격이 저렴.
    • 충격에 약하며, 소음 발생.

5. 프로그램 컴파일 과정

  1. 컴파일러
    • 고수준 프로그래밍 언어(C++)를 기계어로 번역하는 프로그램.
    • 과정:
      • 소스 코드 작성: 사람이 읽을 수 있는 코드 작성.
      • 전처리: #include 등 전처리 명령어를 처리.
      • 컴파일: 기계어로 변환된 목적 파일(.obj) 생성.
      • 링킹: 여러 목적 파일과 라이브러리를 결합하여 실행 파일(.exe) 생성.
    • 이점: 컴파일된 코드는 효율적으로 실행되며, 컴파일 과정에서 많은 오류를 잡을 수 있음.
  2. 실행 과정
    • 프로그램 실행 시, 실행 파일이 SSD에서 RAM으로 로드.
    • RAM의 데이터가 CPU로 전달되어 명령어를 처리.
    • CPU는 결과를 다시 RAM으로 반환하거나 출력 장치로 전달.

C++의 주요 특징

  1. 멀티 패러다임 지원
    • 절차적, 객체 지향, 함수형 프로그래밍을 유연하게 지원.
  2. 고성능
    • 컴파일된 코드로 실행되며, 저수준 메모리 제어 가능(new, delete, 포인터 사용).
  3. 메모리 관리
    • 개발자가 직접 관리하거나 스마트 포인터(unique_ptr, shared_ptr)로 메모리 누수를 방지.
  4. 표준 라이브러리(STL)
    • 벡터, 리스트, 맵 등 컨테이너와 정렬, 탐색 알고리즘 제공.
  5. 광범위한 응용 분야
    • 게임 엔진, 시스템 프로그래밍, 임베디드 소프트웨어, 금융 소프트웨어 등.
  6. 플랫폼 독립성
    • 여러 플랫폼에서 OS에 독립적인 코드를 작성 가능.

연습 문제

문제 1

#include <iostream>

using namespace std;

int main()
{

		cout << "HELLO WORLD";

		return 0;

}
  • 풀이
#include <iostream>

using namespace std;

int main()
{

		cout << "HELLO WORLD";

		return 0;

}

문제 2

📌 문제 설명

다음과 같이 출력하는 프로그램을 작성하세요:

출력 예시

@@@@
main()
std::cout << “@@@@”;
  • 풀이
int main()
{

	cout << "@@@@" << endl;
	cout << "main()" << endl;
	cout << "std::cout << “@@@@”;" << endl;

	return 0;

}

문제 3

📌 문제 설명

다음과 같이 출력하는 프로그램을 작성하세요:

출력 예시

123###456
  • 풀이
int main()
{

	cout << "123###456" << endl;

	return 0;

}

문제 4

📌 문제 설명

다음과 같이 출력하는 프로그램을 작성하세요.
(주의: #### 사이에는 띄어쓰기 3칸이 들어갑니다)

출력 예시

CODING
##   ##
std::cout “CODING”;
std::cout << std::endl;
std::cout << “##   ##”;
  • 풀이
int main()
{

	cout << "CODING" << endl;
	cout << "##   ##" << endl;
	cout << "std::cout “CODING”;" << endl;
	cout << "std::cout << std::endl;" << endl;
	cout << "std::cout << “##   ##”;" << endl;

	return 0;

}

문제 5

📌 문제 설명

다음과 같이 출력하는 프로그램을 작성하세요.

출력 예시

5 4 3 2 1 GO!
  • 풀이
int main()
{

	cout << "5 4 3 2 1 GO!" << endl;

	return 0;

}

문제 6

📌 문제 설명

  • 변수를 하나 선언하세요.
  • 해당 변수에 5를 저장하세요.
  • 변수 값을 출력하세요.

출력 예시

5
  • 풀이
int main()
{

	int a = 5;
	cout << a << endl;

	return 0;

}

문제 7

📌 문제 설명

  • 변수 t를 선언하고 5를 저장하세요.
  • 아래와 같이 계산된 결과를 출력하세요.

출력 예시

t에서 1씩 증가=5 6 7
t에서 2씩 감소=5 3 1
  • 풀이
int main()
{

	int t = 5;
	cout << "t에서 1씩 증가 = " << t << " " << t + 1 << " " << t + 1 + 1 << endl;
	cout << "t에서 2씩 감소 = " << t << " " << t - 2 << " " << t - 2 - 2 << endl;

	return 0;

}

문제 8

📌 문제 설명

  • 변수 a, b, c 3개를 선언하세요.
  • 각각 아래 값으로 초기화 하세요:
    • a = 5
    • b = -1
    • c = 2
  • 출력 예시와 같이 정확히 띄어쓰기를 맞춰서 출력하세요.

출력 예시

a, b, c 값은 각각 a는 5, b는 -1, c는 2 입니다
  • 풀이
int main()
{
    a = 5;
    int b = -1;
    int c = 2;

    cout << "a, b, c 갑은 각각 a는" << a << ", b는 " << b << " c는 " << c << " 입니다" << endl;

	return 0;
}

문제 9

📌 문제 설명

  • 변수 ab 를 선언하세요.
  • a 에는 7, b 에는 2 를 저장하세요.
  • 두 변수의 합과 차를 아래 출력 예시처럼 출력하세요.

출력 예시

a+b=9
a-b=5
  • 풀이
int main()
{
	a = 7;
    b = 2;
    cout << "a+b=" << a + b<< endl;
    cout << "a+b=" << a - b<< endl;

	return 0;
}

문제 10

📌 문제 설명

  • 변수 kg 를 선언하세요.
  • k 에는 8, g 에는 4 를 저장하세요.
  • 두 변수를 곱한 값과 나눈 값을 아래 출력 예시처럼 출력하세요.

출력 예시

8*4=32
8/4=2
  • 풀이
int main()
{
	int k = 8;
  	int g = 4;

  	cout << k << "*" << g << "=" << k * g << endl;
  	cout << k << "/" << g << "=" << k / g << endl;

	return 0;
}

문제 11

📌 문제 설명

  • 변수 a, b, c, d 를 선언하세요.
  • 각각 변수에 아래 값을 저장하세요:
    • a = 3
    • b = 5
    • c = 3
    • d = 4
  • 수식 ((a + b) * c) / d 의 결과를 출력하세요.

출력 예시

6
  • 풀이
int main()
{
	a = 3;
    b = 5;
    c = 3;
    int d = 4;
    cout <<"((a+b)*c)/d = "<< ((a + b) * c) / d << endl;

	return 0;
}

문제 12

📌 문제 설명

  • 변수 a 를 선언하세요.
  • 변수 a8을 저장하세요.
  • a 를 5번 곱한 값 (a의 5제곱)을 출력하세요.

출력 예시

32768
  • 풀이
int main()
{
	cout << "문제12" << endl;
	a = 8;
	cout << a * a * a * a * a << endl;

	return 0;
}

문제 13

📌 문제 설명

  • Visual Studio에서 트레이스(한 줄씩 실행)를 연습합니다.
  • 변수 a 의 값이 실행 도중 어떻게 변하는지 직접 확인합니다.
  • F10 키를 눌러 한 줄씩 실행합니다.
    조사식(Watches) 에 변수 a 를 등록합니다.
    매 줄 실행할 때마다 a의 값이 어떻게 변하는지 확인합니다.
    *트레이스가 끝나면 Shift + F5 를 눌러 종료합니다.
  • 풀이
#include <iostream>

using namespace std;

int main()

{

		int a;
		a = 8;

		cout << a;
		a = a + 1;

		a++;
		a = 3;
		a = a + 1;
		a++;

		cout << "a값은 : " << a << endl;
		a = a + 1;
		a++;
		cout << "마지막 a값은 : " << a << endl;
		return 0;
}

문제 14

📌 문제 설명

  • 변수 a 를 선언하세요.
  • a8을 저장하세요.
  • a = a + 1a++ 을 적절히 이용하여 a12로 만드세요.
  • 최종 결과를 출력하세요.

출력 예시

12
  • 풀이
int main()
{
	  a = 8;
    a++;
    a = a + 1;
    a++;
    a++;

    cout << a << endl;
    cout << endl;

	return 0;
}
profile
李家네_공부방

0개의 댓글