전체 글 219

[강의] 8월 16일 수업정리

1. 과제에 관한 이야기코드 작성과 계획의 중요성inlcude int main(){ int nRectangleWidth{}; int nRectangleHeight{}; int nRectangleArea{}; nRectangleWidth = 10; nRectangleHeight = 3; nRectangleArea = nRectangleWidth * nRectangleHeight; cout  위의 코드는 직사각형의 넓이를 계산하는 간단한 예제입니다. 우리가 일반적으로 직사각형의 넓이를 계산할 때는 "밑변 * 높이"를 사용합니다.위 코드에서 nRectangleArea = nRectangleWidth * nRectangleHeight와 같이 작성한 경우..

C++ 2024.08.16

[과제] 직사각형의 넓이를 구하는 프로그램을 작성하시오

[ 주어진 정보 ] 데이터는 정수형 밑변과 높이다#include int main() { int nRectangleWidth{}; int nRectangleHeight{}; int nRectangleArea{}; std::cout > nRectangleWidth; std::cout > nRectangleHeight; nRectangleArea = nRectangleWidth * nRectangleHeight; std::cout  사각형의 넓이를 구하는 방법은 밑변과 높이를 곱하면 된다. 각각의 사각형의 밑변(nRectangleWidth)과 사각형의 높이(nRectangleHeight)에 값을 입력할 수 있게 설정을 하였다.이후 사각형의 밑변(nRectangleWidth..

과제 2024.08.14

[강의] 8월 14일 수업정리

오늘은 간단한 코드 예제를 통해 수업을 진행했습니다. int nData1{};int nData2{};int nTotal{};nData1 = 100;nData2 = 100;nTotal = nData1 + nData2;std::cout  코드 작성의 기본 원칙코드를 작성할 때는 단순히 암기하는 것이 아니라, 작성된 코드의 의도를 파악하고 해석하는 능력을 기르는 것이 중요합니다. 이는 마치 운전을 할 때 단순히 조작 방법만 외우는 것이 아니라, 다양한 상황에 맞게 운전하는 것과 비슷합니다. 프로그래밍도 마찬가지로, 코드를 이해하고 응용하는 능력을 키워야 합니다.코딩의 나쁜 습관과 개선 방법1. 주석을 달지 말라주석은 코드의 작동 방식이나 목적을 설명하기 위해 사용됩니다. 하지만 주석을 자주 달게 되는 이유는 ..

C++ 2024.08.14

[강의] 8월 13일 수업정리

저번 수업의 복기 내용프로그래밍의 본질프로그래밍은 결과가 정해져 있는 상황에서 그 결과를 어떻게 구현할지 고민하고, 이를 코드로 표현하는 과정입니다.클래스 코딩의 핵심Class 코딩에서 중요한 것은 사용자가 객체의 변수에 직접 명령을 내리는 것이 아니라, 객체가 제공하는 기능(메서드) 중 무엇을 사용할지 선택하는 것입니다. 이는 '물건을 사용한다'는 개념으로 이해할 수 있습니다.내 객체가 구체적으로 무엇을 하는지 알 필요가 없다는 관점이 핵심입니다. 프로그램에서 객체의 사용 순서객체 사용의 흐름객체 사용 시 정해진 흐름이 있습니다: [생성 -> 준비 -> 사용 -> 해제 -> 삭제]'준비' 과정의 중요성'준비' 단계는 간단한 로직에서는 생성 단계에 포함될 수 있지만, 복잡한 로직에서는 별도로 준비 단계가..

C++ 2024.08.13

[과제] 유닛폼 초기화 (암기)

오늘은 유닛폼 초기화에 대해서 알아오라고 과제를 내주셨다. 유닛폼 초기화란 무엇인가? 유닛폼 초기화 혹은 균일한 초기화(Uniform Initialization)라고 하는데  위에 코드를 컴파일을 했으면 어떤 결과가 나올까? 결과는 아무것도 나타나지 않는다. 사실은 위 코드가 A의 객체 a를 만든것이 아니라. A를 리턴하고, 인자를 받지 않는 함수 a 를 정의한 것이기 때문입니다.왜냐하면 C++의 컴파일러는 함수의 정의처럼 보이는 것들은 모두 함수의 정의로 해석하기 때문입니다. 조금 더 복잡한 예시를 들어보면 위에 코드를 컴파일을 했으면 어떤 결과가 나올까?  결과는 아무것도 나타나지 않는다.  위에 코드를 보면 마치 b 라는 클래스 B의 객체를 생성하는 것 같이 보이지만, 사실은 인자로 A를 리턴하고 ..

과제 2024.08.12

[강의] 8월 12일 수업정리

1. 비주얼 스튜디오 설정줄 번호 비활성화: 줄 번호를 끄는 설정을 했는데, 그 이유는 줄 번호에 의존하는 습관을 없애기 위해서입니다. 줄 번호를 외우는 것보다는 코드를 보고 그 의미를 파악하는 능력을 키우는 것이 중요합니다. 특히, 팀 프로젝트에서 다른 사람이 코드를 수정하면 줄이 밀려 줄 번호의 의미가 없어지기 때문에, 줄 번호에 의존하지 않도록 하는 것이 좋습니다.2. 자료형의 간단한 개념자료형의 역할 부여: 변수에 적절한 이름을 부여하여 그 역할을 명확하게 하는 것이 중요합니다. int와 같은 자료형에 명령을 내리는 방법을 배우면서, 변수의 이름을 통해 그 변수가 어떤 역할을 수행하는지 쉽게 알 수 있도록 설정하는 것이 필요합니다. 처음부터 변수를 설정할 때 어떤 행동을 하겠지?라는 생각을 버리고..

C++ 2024.08.12

[강의] 8월 8 ~9일치 수업정리

이번 주 강의에서는 프로그래밍 언어의 학습보다는 프로그래밍 사고를 어떻게 발전시킬지에 대한 방향성에 대해 논의했습니다. 강사님은 언어 자체를 배우는 것보다는 프로그래밍의 사고방식을 배우는 것이 중요하다고 강조했습니다.프로그래밍 사고 방식강사님은 프로그래밍 사고에서 중요한 것은 로직이 아닌 행동 기준으로 생각하는 것이라고 설명했습니다. 다음은 두 가지 예시입니다:태트리스:일반적으로 블록의 좌우 움직임, 블록이 한 줄이 되었을 때 지워지는 것 등을 고려할 수 있습니다. 그러나 강사님은 ‘지워지는 블록’과 ‘지워지지 않는 블록’을 기준으로 사고해야 한다고 강조했습니다.슈팅게임:적, 적 총알, 아이템, 플레이어 등을 고려할 수 있지만, 강사님은 ‘나와 상호작용 가능한 것’, ‘화면에 돌아다니는 객체’, ‘충돌 ..

C++ 2024.08.09

[과제] 연산자(Operator), 네이밍 규칙 확인 / [헝가리안 표기법]

1. 연산자(Operator)연산자는 컴파일러에게 특정한 수학적 또는 논리적 동작을 수행하도록 지시하는 기호입니다.1.1 산술 연산자+ : 두 값을 더함.- : 좌항의 값에서 우항의 값을 뺌.* : 두 값을 곱함./ : 좌항의 값을 우항의 값으로 나눔.% : 좌항의 값을 우항의 값으로 나눈 나머지 값.++ : 숫자값을 1만큼 증가시킴.-- : 숫자값을 1만큼 감소시킴.1.2 관계 연산자== : 좌항의 값과 우항의 값이 같은지 확인.!= : 좌항의 값과 우항의 값이 다른지 확인.> : 좌항의 값이 더 큰지 확인. : 우항의 값이 더 큰지 확인.>= : 좌항의 값이 크거나 같은지 확인. : 우항의 값이 크거나 같은지 확인.1.3 논리 연산자&& : 논리곱, 두 값이 모두 True일 때만 True.|| : 논..

과제 2024.08.09

[과제] 자료형은 왜 나누는 걸까?

강사님께서 처음 내주신 과제의 내용은 자료형은 왜 나누게 된 거일까? 를 생각해 보라는 것이었다. 우리 가 아는 정수형은 이렇게 표현이 된다. 많은 정수형이 있는 것은 과거로 돌아가야 한다.과거에는 컴퓨터의 용량이 그렇게 크지 않아 한정된 용량 안에서 데이터를 집어넣어야 하기 때문에 세세하게 나누어 효율적으로 사용하기 위해서 나눴다고 강사님께서 이야기해 주셨다. 나의 개인적인 생각은 하나로 전부 통합해서 하게 되면 메모리를 많이 먹게 되어 하나하나 나누어 적절한 상황에 효율적으로 사용하려고 나눴다고 생각을 해보았는데 대충 비슷한 답변이 나와 나름 만족했다.

과제 2024.08.09