c++언어를 알고있으면 어떤언어를 배울떄 도움이 되는지 챗gpt에 물어보았다.
자바스크립트가 객체지향 언어인 이유는 다음과 같은 몇 가지 요소 때문입니다:
- 객체 생성: 자바스크립트는 객체를 생성할 수 있는 기능을 가지고 있습니다. 객체 리터럴을 사용하여 간단하게 객체를 만들 수 있습니다.
-
javascript
const person = { name: 'John', age: 30, greet: function() { console.log('Hello, ' + this.name); } };
- 프로토타입 상속: 자바스크립트는 프로토타입 기반 상속을 지원하여, 객체가 다른 객체의 속성과 메소드를 상속받을 수 있습니다.
-
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.
- 캡슐화: 자바스크립트에서는 클로저를 사용하여 데이터 은닉을 구현할 수 있습니다. 이를 통해 객체의 내부 상태를 보호할 수 있습니다.
-
javascript
function Counter() { let count = 0; return { increment: function() { count++; }, getCount: function() { return count; } }; } const counter = Counter(); counter.increment(); console.log(counter.getCount()); // 1
- 다양한 객체지향 패턴 지원: 자바스크립트는 클래스 문법(ES6 이후)과 함께 다양한 객체지향 패턴을 지원하여, 개발자가 OOP 방식으로 코드를 작성할 수 있도록 합니다.
-
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문을 많이 사용하는 언어들을 알려달라고 해보았다.
'2학기 과제 내는곳(대학 c++)' 카테고리의 다른 글
2024000066 김태윤 2주차 수업전예습과제 (0) | 2024.09.09 |
---|