728x90

프로그래밍 209

C(&C++) 이론 16. 배열

내용 참고 YES C (정보공학연구소/생능출판사) 혼자 연구하는 C/C++ (Soen.kr/와우북스) Microsoft Docs (구 MSDN) 배열(Array) ■ 배열은 동일한 타입을 갖는 유한개의 변수들을 한 가지 이름으로 묶어서 메모리에 순서대로 저장해 놓은 것이다. ■ 배열 내의 변수에 순서대로 접근하기 위한 숫자를 인덱스(Index)라고 부른다. ■ 인덱스가 n개라면 n차원 배열이라고 한다. ■ 예를들어 arr[10][10][10]은 인덱스가 3개이므로 3차원 배열이라고 한다. Ⅰ. 배열의 선언 ⅰ. 배열의 길이 ■ 배열을 선언할 때는 반드시 배열의 길이를 명시적으로 설정해야한다. ■ 배열의 길이는 변수로 정할 수 없으며, 반드시 상수 혹은 상수 표현식(constexpr)으로 지정해야한다. ■..

C(&C++) 이론 15. 함수

내용 참고 YES C (정보공학연구소/생능출판사) 혼자 연구하는 C/C++ (Soen.kr/와우북스) Microsoft Docs (구 MSDN) 함수 Ⅰ. 프로그래밍에서의 함수 ⅰ. 절차지향 프로그램에서 함수의 의의 ■ 함수란 C로 만들어진 프로그램에서 프로그램을 구성하는 단위이다. ■ 이는 C언어가 기본적으로 절차지향 프로그래밍 방법론에 따라 설계되었기 때문이다. ◆ 절차지향 프로그래밍 (Procedual Oriented Programming) ■ 절차치향 프로그래밍에서는 분할정복전략으로 문제를 해결한다. ◆ 분할 정복 전략 (Divide and Conquer) ■ 분할정복전략이란 큰 문제를 여러개의 작은 문제로 나눠서 해결하는 문제 해결 전략이다. ■ C 프로그램은 주로 함수라는 기능별 문제 해결 단..

C(&C++) 이론 14. 제어구조 / 강제 분기문

내용 참고 YES C (정보공학연구소/생능출판사) 혼자 연구하는 C/C++ (SoEn.kr /와우북스) Microsoft Docs (구 MSDN) 강제 분기문 ■ 이 포스트에서는 조건문과 반복문 외에 프로그램의 흐름을 제어하는 분기문들을 알아본다. Ⅰ. 강제 분기문(Jump Statement) ⅰ. goto문 ■ 구문 : goto identifier; ■ 같은 함수 내에 지정된 식별자로 표시된 labeled문으로 이동한다. ■ goto문은 같은 함수 내의 어떤 위치로든 조건없이 이동시켜주는 매우 강력한 명령어이다. ■ 이러한 강력함 때문에 goto문을 남용할 경우 코드의 가독성이 매우 떨어질 수 있다. ■ C언어와 같이 구조적 프로그래밍 언어에서는 goto문 사용을 지양하고 조건문이나 반복문 등으로 구조..

C(&C++) 이론 13. 제어구조 / 조건문과 반복문

내용 참고 YES C (정보공학연구소/생능출판사) 혼자 연구하는 C/C++ (SoEn.kr /와우북스) Microsoft Docs (구 MSDN) 조건문과 반복문 ■ 제어문의 대상이 되는 목표 문장이 한 문장일때는 블록을 쓰지 않아도 의도한대로 동작한다. ■ 하지만 확장성과 가독성 그리고 실수를 방지하기 위해서 목표 문장이 한 문장이더라도 블록으로 묶는 것을 추천한다. Ⅰ. 조건문(Alternative Statement) ⅰ. if문 ■ 구문 : if ( test_expression ) statement; ■ 조건식의 값이 참일 때만 목표 문장을 실행한다. ⅱ. if-else문 ■ 구문 : if ( test_expression ) statement1; else statement2; ■ 조건식의 값이 참이..

C(&C++) 이론 11. 연산자 우선순위 및 결합 방향 표

내용 참고 C++ 기초 플러스 4판 (Stephen Prata저, 윤성일역 / 성안당) Microsoft docs (구MSDN) C언어 이론 5 / 연산자 우선순위 표 연산자 우선순위와 결합 방향에 관한 표는 대부분의 C++ 교재에서 제공된다. 이를 외우고 있으면 유리하겠지만 굳이 C 및 C++을 공부할 때 처음부터 연산자 우선순위를 외우려고 할 필요는 없다. 왜냐하면 연산자 우선순위라는 것은 쓰다보면 결국 익숙해지고 외워지는 내용이기 때문이다. 본 포스트에서는 연산자의 형식과 우선순위, 결합 방향, 오버로딩 가능 여부를 중심으로 표시하는데 중심을 두었다. 각 연산자에 대한 자세한 설명은 이후에 관련 주제와 함께 설명할 예정이다. Ⅰ. 연산자 우선순위와 결합 방향의 의미 ⅰ. 연산자 우선순위 ■ 문장 안..

C(&C++) 이론 8. 데이터 타입과 상수

내용 참고 YES C (정보공학연구소/생능출판사) 혼자 연구하는 C/C++ (SoEn.kr /와우북스) 자료형(Data type)과 상수(Constant) Ⅰ. 자료형/데이터 타입(data type) C언어에서 자료형이란 데이터를 메모리에 저장할 때 알맞은 공간을 할당하고, 적절한 형태로 출력하기 위해서 사용되는 것이다. 1. 기본형 : 하나의 데이터를 저장하기 위해 사용되는 자료형 ■ 문자형 : 문자 하나를 저장하는데 사용.내부적으로는 정수형과 구조가 같다. (char 등) ■ 정수형 : 소수점이 없는 정수 데이터를 저장하는데 사용. (int, long, short 등) ■ 실수형 : 소수점이 있는 실수 데이터를 저장하는데 사용. (float, double 등) ■ void형 : 아직 타입이 지정되어있..

C(& C++)이론 4. 객체 지향

C++의 설계 철학 C++을 개발한 Bjarne Stroustrup은 1994년에 출간된 "The Design and Evolution of C++"에서 C++을 설계 할 때의 원칙을 다음과 같이 기술했다. 1. C++은 엄격하게 타입 검사를 하고, 범용 언어로 사용할 수 있으며, C언어만큼 효율적이고 이식성이 높아야 한다. 2. C++은 여러 가지의 프로그래밍 스타일을 지원할 수 있어야 한다. (절차 지향 프로그래밍, 데이터 추상화, 객체 지향 프로그래밍, 일반화 프로그래밍) 3. C++은 만약 잘못될 가능성이 있다고 하더라도 프로그래머가 자유롭게 선택할 수 있도록 설계되어야 한다. 4. C++은 C에서 쉽게 옮겨갈 수 있도록 최대한 C와 호환성이 있어야 한다. 5. C++은 플랫폼에 의존적이거나 일반..

C(&C++)이론 2. C언어와 Cpp언어의 차이점

1. 변수 선언을 변수를 쓰기 전이라면 어디에서 해도 된다. (원래는 스코프 처음에 해야만 했다.) C스타일 Cpp스타일 int main() { int result, a = 3, b = 4;int i; result = a + b; for (i = 0; i < 10; i++) { result += i; } return 0; } int main() { int result, a = 3, b = 4; result = a + b; for (int i = 0; i < 10; i++) { result += i; } return 0; } 2. 'bool형'이 추가되었다. bool형은 참과 거짓만을 갖는 자료형이다. C언어에서는 C99에서 stdbool.h 를 포함하면 사용할 수 있다. 3. 'reference'가 추가..

C(&C++) 실습 8. 입출력 속도를 BOJ에 최적화하기

문제 출처 backjoon 15552번 문제 0. 문제 ⅰ. N개의 A+B를 입력받고 결과를 출력하라. ■ 입력되는 값은 N은 1이상 1,000,000이하의 값이며 A,B는 1이상 1000이하의 값이다. ■ 프로그램 실행 시간 제한은 1초이다. ■ 온라인 저지나 코딩 테스트를 위해서 실행속도를 높이는 팁이 중심이 되는 문제. 1. 팁 ⅰ. 이제부터 시간과 메모리 제한도 조금씩 신경써야한다. #include using namespace std; int main() { int N; cin >> N; int a,b; for(int i = 0; i > a >> b; cout N; int a,b; for(int i = 0; i > a >> b; cout

반응형