사용자:하늘/문화/지명: 두 판 사이의 차이

편집 요약 없음
잔글 (Chirho님이 사용자:Cerulean/메모장/C++ 문서를 넘겨주기를 만들지 않고 사용자:하늘/메모장/C++ 문서로 이동했습니다: "Cerulean" 사용자의 이름을 "하늘"(으)로 바꿀 때 문서를 자동으로 이동했습니다)
(차이 없음)

2022년 5월 11일 (수) 10:30 판

시리즈:초급 프로그래밍 c++

c++ 초반

#include <iostream>
using namespace std;

class Cube
{
public:
    int x, y, z;
    int Volume, Area;
    Cube();
    Cube( int x, int y, int z );
};

Cube::Cube( int x, int y, int z) {
    this->x = x, this->y = y, this->z = z; 
    Volume =  x * y * z;
    Area = x * y * 2 + y * z * 2 + z * x * 2;
}

Cube::Cube() :Cube ( 1, 1, 1) {} //위임 생성자

int main(void)
{
    Cube *boxes = new Cube[3];
    boxes[0] =  Cube();
    boxes[1] =  Cube( 3, 3, 3 );
    boxes[2] =  Cube( 4, 4, 4 );

    cout  << "부피" << boxes->Volume << endl;
    cout << "겉면적" << boxes->Area  << endl;
    boxes++;
    cout  << "부피" << boxes->Volume << endl;
    cout << "겉면적" << boxes->Area  << endl;
    boxes++;
    cout  << "부피" << boxes->Volume << endl;
    cout << "겉면적" << boxes->Area  << endl;
}

확률과 통계와 c++

#include <iostream>
using namespace std;

class Data
{
private:
	float *data;
	int size = 0;
public:
	float sum = 0;
	float mean = 0;
	float variance = 0;

	Data(int size, float *data)
	{
		this->size = size;
		this->data = data;
	};

	void getsum()
	{
		int i = 0;
		while ( i < size )
		{
			sum = sum + *data;
			data++, i++;
		}
		data = data - size;
	}

	void getmean()
	{
		mean = sum / size;
	}

	void getvariance()
	{
		float sum = 0;
		for (int i = 0 ; i < size ; i++)
		{
			float meanMINUSdata = mean - *data;
			data++;
			sum = sum + meanMINUSdata * meanMINUSdata;
		}
		data = data - size;
		variance = sum / (double) size;
	}

};

int main(void)
{
	cout << "자료의 크기 ? >>";
	int size;
	cin >> size;

	float *array = new float [size];
	for (int i = 0 ; i < size ; i++)
		cin >> array[i];

	Data data1(size, array);
	data1.getsum();
	cout << "합계 : " << data1.sum << endl;
	data1.getmean();
	cout << "평균 : " << data1.mean << endl;
	data1.getvariance();
	cout << "분산 : " << data1.variance << endl;

	return 0;
}

void (*cha)() = printf; printf("%p", cha); cha("asdf");

vscode c++ 빌드 설정

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: cpp.exe 활성 파일 빌드",
            "command": "C:\\msys64\\ucrt64\\bin\\c++.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "컴파일러: C:\\msys64\\ucrt64\\bin\\c++.exe"
        }
    ]
}

?의 크기를 가진 랜덤 숫자 배열(동적 메모리)

#include <iostream>

int main(int argn, char *argv[]) {

    int size = 30, * start, * random_numbers;

    start = random_numbers = new int[size];

    for (size_t i = 0; i < size; i++)
        *random_numbers = rand(), random_numbers++;
        
    random_numbers = start;

    return 0;
}
#include <iostream>

void insertionSort(int a[], int n);

int main(int argn, char *argv[]) {

    int size = 10, * start, * random_numbers;

    start = random_numbers = new int[size];

    for (int i = 0; i < size; i++)
        *random_numbers = rand() % 100, random_numbers++;

    random_numbers = start;
    
    for (int i = 0; i < size; i++) std::cout << "[" << random_numbers[i] << "]";
    std::cout << std::endl;

    insertionSort(random_numbers, size);

    for (int i = 0; i < size; i++) std::cout << "[" << random_numbers[i] << "]";
    std::cout << std::endl;

    delete[] start;
    return 0;
}

void insertionSort(int a[], int n) {
    for (int i = 1; i <= n; i++) {
        int locate = i-1;
        int newitem = a[i];

        while (locate >= 0 && newitem < a[locate]) {
            a[locate + 1] = a[locate], locate--;
        }

        a[locate+1] = newitem;
        
    }
}
}

vscode c++ 실행 설정

{
    // IntelliSense 사용하여 가능한 특성에 대해 알아보세요.
    // 기존 특성에 대한 설명을 보려면 가리킵니다.
    // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요.
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 시작",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "C:/msys64/ucrt64/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "gdb에 자동 서식 지정 사용",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description":  "디스어셈블리 버전을 Intel(으)로 설정",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++.exe 활성 파일 빌드"
        },
    ]
}