본문 바로가기

2학기 과제 내는곳(대학 c++)

2024000066김태윤 2학기1주차 수업시간과제

c++언어를 알고있으면 어떤언어를 배울떄 도움이 되는지 챗gpt에 물어보았다.

자바스크립트가 객체지향 언어인 이유는 다음과 같은 몇 가지 요소 때문입니다:

  1. 객체 생성: 자바스크립트는 객체를 생성할 수 있는 기능을 가지고 있습니다. 객체 리터럴을 사용하여 간단하게 객체를 만들 수 있습니다.
  2. javascript

    const person = {
        name: 'John',
        age: 30,
        greet: function() {
            console.log('Hello, ' + this.name);
        }
    };
    
  3. 프로토타입 상속: 자바스크립트는 프로토타입 기반 상속을 지원하여, 객체가 다른 객체의 속성과 메소드를 상속받을 수 있습니다.
  4. javascript

    function Animal(name) {
        this.name = name;
    }
    
    Animal.prototype.speak = function() {
        console.log(this.name + ' makes a noise.');
    };
    
    const dog = new Animal('Dog');
    dog.speak(); // Dog makes a noise.
    
  5. 캡슐화: 자바스크립트에서는 클로저를 사용하여 데이터 은닉을 구현할 수 있습니다. 이를 통해 객체의 내부 상태를 보호할 수 있습니다.
  6. javascript

    function Counter() {
        let count = 0;
    
        return {
            increment: function() {
                count++;
            },
            getCount: function() {
                return count;
            }
        };
    }
    
    const counter = Counter();
    counter.increment();
    console.log(counter.getCount()); // 1
    
  7. 다양한 객체지향 패턴 지원: 자바스크립트는 클래스 문법(ES6 이후)과 함께 다양한 객체지향 패턴을 지원하여, 개발자가 OOP 방식으로 코드를 작성할 수 있도록 합니다.
  8. javascript

    class Car {
        constructor(brand) {
            this.brand = brand;
        }
    
        drive() {
            console.log(this.brand + ' is driving.');
        }
    }
    
    const myCar = new Car('Toyota');
    myCar.drive(); // Toyota is driving.
    

이러한 요소들 덕분에 자바스크립트는 객체지향 프로그래밍의 주요 개념을 지원하는 언어로 여겨집니다.(자바스크립트 객체지향언어인 이유를 예를들어 설명해달라고 해보았다.

 

 

전세계적으로 많이쓰는언어(출처- IEEE Spectrum Top Programming Language)

c++은 c언어다음으로 나온 언어이고,그걸 처음 만든사람의 이름은 c with classes라고 합니다.

c++의 역사.2003년 후로 크게바뀜.

#include <stdio.h> int main() { printf("Hello World"); return 0; }//.c

#include <iostream> int main() { std::cout<<"Hello World"; return 0; }//.cpp

public class Main { public static void main(String[] args) { System.out.println("Hello World"); } }//.java

 

 

 

C 언어

c

#include <stdio.h>
int main()
{
    printf("Hello World");
    return 0;
}
  • #include <stdio.h>: 표준 입력 출력 라이브러리를 포함합니다. 이 라이브러리는 printf 함수와 같은 기본 입출력 기능을 제공합니다.
  • int main(): 프로그램의 시작점인 main 함수를 정의합니다. C 프로그램은 항상 main 함수에서 시작됩니다.
  • { ... }: 함수의 본체를 나타내며, 이 안에 실행할 코드를 작성합니다.
  • printf("Hello World");: "Hello World"를 출력하는 함수입니다. 문자열을 출력한 후 줄바꿈은 하지 않습니다.
  • return 0;: 프로그램이 정상적으로 종료되었음을 나타냅니다. 운영 체제에 0을 반환합니다.

C++ 언어

cpp

#include <iostream>
int main()
{
    std::cout << "Hello World";
    return 0;
}
  • #include <iostream>: C++의 입력 출력 라이브러리를 포함합니다. 이 라이브러리는 std::cout와 같은 입출력 기능을 제공합니다.
  • int main(): C와 마찬가지로 프로그램의 시작점입니다.
  • std::cout << "Hello World";: std::cout는 표준 출력 스트림입니다. << 연산자를 사용하여 "Hello World"를 출력합니다.
  • return 0;: 프로그램이 정상적으로 종료되었음을 나타냅니다.

Java 언어

java

public class Main
{
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}
  • public class Main: Main이라는 이름의 클래스를 정의합니다. Java는 모든 코드가 클래스 내에 있어야 하므로, 클래스 정의가 필요합니다.
  • public static void main(String[] args): Java 프로그램의 시작점인 main 메소드를 정의합니다. public은 접근 제어자, static은 메소드가 클래스에 속함을 의미하며, void는 반환값이 없음을 나타냅니다. String[] args는 커맨드라인 인수를 받을 수 있는 배열입니다.
  • System.out.println("Hello World");: System.out은 표준 출력 스트림을 나타내며, println 메소드는 문자열을 출력하고 줄바꿈을 합니다.

이 프로그램들은 모두 "Hello World"라는 문자열을 출력하는 간단한 예제입니다. 각 언어의 문법과 구조에 따라 다르게 작성되지만, 기본적인 원리는 동일합니다.

언어 장점 단점
C - 고성능: 하드웨어에 가까운 저수준 접근 가능<br>- 간결한 문법<br>- 다양한 플랫폼에서 사용 가능 - 메모리 관리가 수동적 (버그 발생 가능)<br>- 객체지향 프로그래밍 지원 부족
C++ - 객체지향 프로그래밍 지원<br>- 고급 기능(템플릿, STL ) 제공<br>- C의 성능과 호환성 유지 - 복잡한 문법 및 학습 곡선<br>- 컴파일 시간 길어짐
Java - 플랫폼 독립성 (JVM을 통해)<br>- 자동 메모리 관리 (가비지 컬렉션)<br>- 풍부한 라이브러리 및 프레임워크 지원 - 상대적으로 느린 성능<br>- JVM이 필요하여 메모리 사용량 증가<br>- 기본적으로 객체지향 언어에 강제

표를 이용해 장단점을 알려달라고 해보았다.

c++은 다양한 방식으로 할수있는 언어이다.

c,c++구성하는 6가지 단위(토큰)

언어별로 작은따옴표, 큰따옴표 사용하는방법

언어 작은따옴표 사용법 큰따옴표 사용법
C - 문자(char) 자료형을 나타낼 때 사용<br>:char c = 'A'; - 문자열(string)을 나타낼 때 사용<br>:printf("Hello World");
C++ - 문자(char) 자료형을 나타낼 때 사용<br>:char c = 'A'; - 문자열(string)을 나타낼 때 사용<br>:std::cout << "Hello World";
Java - 문자(char) 자료형을 나타낼 때 사용<br>:char c = 'A'; - 문자열(string)을 나타낼 때 사용<br>:System.out.println("Hello World");
Python - 문자와 문자열 모두 사용 가능하지만, 주로 문자열에 사용<br>:s = 'Hello' - 문자와 문자열 모두 사용 가능<br>:s = "Hello"
JavaScript - 문자열에 사용 가능<br>:let str = 'Hello'; - 문자열에 사용 가능<br>:let str = "Hello";

식별자, 리터럴(상수),자료형,변수의 설명

#include <stdio.h> //printf()함수 원형이 선언되어 있음, 전처리기 int main(void) //콘솔 기반 C프로그램의 시작점 { //main()함수의 시작 int num1, num2; //변수 선언문, 보통 실행문 보다 먼저 씀 /* 변수명: 영문자(A-Z, a-z), 숫자(0-9), 밑줄(_)로 구성 변수(variable):프로그램이 실행되는 동안 자료를 기억시키기 위한 기억장소의 이름 */ num1=100; //대문자와 소문자는 다른 변수로 인식 num2=-300; //변수에 상수 대입 printf("두 수의 합은 %d입니다.\n",num1+num2); //표준 라이브러리 함수 return 0;} 이소스의 설명:

1. 식별자 (Identifier)

  • 정의: 프로그램에서 변수, 함수, 배열, 구조체 등의 이름을 나타냅니다.
  • 예시:
    • num1, num2, main
  • 특징: 영문자, 숫자, 밑줄(_)로 구성되며, 숫자로 시작할 수 없습니다. 대소문자를 구분합니다.

2. 상수 (Constant)

  • 정의: 프로그램 실행 중 값이 변하지 않는 고정된 값을 나타냅니다.
  • 예시:
    • 100, -300
  • 특징: 직접적으로 코드에 나타나는 값으로, 변수에 대입되어 사용됩니다.

3. 자료형 (Data Type)

  • 정의: 변수에 저장할 수 있는 데이터의 종류를 정의합니다.
  • 예시:
    • int: 정수형 자료형, num1과 num2의 자료형
  • 특징: C 언어에서는 다양한 자료형이 있으며, 각 자료형은 메모리에서 차지하는 크기와 허용되는 값의 범위가 다릅니다.

4. 변수 (Variable)

  • 정의: 프로그램이 실행되는 동안 데이터를 저장하기 위한 기억장소의 이름입니다.
  • 예시:
    • num1, num2
  • 특징: 변수는 선언 후 값을 할당할 수 있으며, 프로그램의 실행 중에 값이 변경될 수 있습니다.

5. 주석문 (Comment)

  • 정의: 코드에 대한 설명을 추가하여 가독성을 높이는 데 사용됩니다. 컴파일러는 주석을 무시합니다.
  • 예시:
    • //printf()함수 원형이 선언되어 있음, 전처리기
    • /* 변수명: 영문자(A-Z, a-z), 숫자(0-9), 밑줄(_)로 구성... */
  • 특징: 한 줄 주석은 //로 시작하고, 여러 줄 주석은 /*로 시작하여 */로 끝납니다.

이러한 요소들은 C 프로그래밍에서 코드의 구조를 이해하고 작성하는 데 중요한 기초가 됩니다.

연산자의 우선순위와 결합성

언어 기본 문법 예시 설명
C ```c - 기본적인for문 사용법<br>

for (int i = 0; i < 10; i++) { - 초기화, 조건, 증감 표현

printf("%d\n", i); - 0부터 9까지 출력

}
C++ ```cpp - C와 유사한 문법

for (int i = 0; i < 10; i++) {

std::cout << i << std::endl;

}
Java ```java - C/C++와 유사한 문법

for (int i = 0; i < 10; i++) {

System.out.println(i);

}
Python ```python -for문과range함수 사용

for i in range(10): - 0부터 9까지 반복

print(i)
JavaScript ```javascript - C/C++와 유사한 문법

for (let i = 0; i < 10; i++) {

console.log(i);

}
Ruby ```ruby -each메서드를 사용하여 반복

(0...9).each do i

puts i

end
PHP ```php - C/C++와 유사한 문법

for ($i = 0; $i < 10; $i++) {

echo $i;

}
Swift ```swift - C/C++와 유사한 문법

for i in 0..<10 { - 0부터 9까지 반복

print(i)

}
Go ```go - Go 언어의for

for i := 0; i < 10; i++ {

fmt.Println(i)

}
Kotlin ```kotlin - Java와 유사한 문법

for (i in 0 until 10) { - 0부터 9까지 반복

println(i)

}  

for문을 많이 사용하는 언어들을 알려달라고 해보았다.