사용자:하늘/문화/지명

< 사용자:하늘
하늘 (토론 | 기여)님의 2022년 4월 3일 (일) 12:24 판

시리즈:초급 프로그래밍 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;
    int * 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;
}

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 활성 파일 빌드"
        },
    ]
}