Computer & Program 113

[Computer]방 구석에 굴러 다니던거 정리

예전에 컴퓨터공부(주로 H/W)를 한다고 이것 저것 끄적이던게 방 청소하다가 나왔다. 버리기에는 왠지 아깝다(?)라는 생각이 들어서 필요한 정보 몇개만 적어 놓으려고 한다. □ 컴퓨터 4대 필수 요소 - CPU, RAM, Main Borad, VGA □ 일반적인 배선의 Volt 수 - Red : 5V - Yellow : 12V □ IRQ - Interrupt(간섭) Request(요청) - 0~15번까지로 총 16개 □ Serial & parallel port - serial port = com = 직렬 포트, 9핀, 수컷 - parallel port = 프린트 = 병렬 포트, 25핀, 암컷 □ USB - Universial Serial Bus - USB는 최대 127개까지 사용 가능(현재는 어떤지 알 ..

[C++]계승

C언어와 C++언어를 구별 짓는 특수한 기능들이 있는데 그 중에 하나가 계승(Inheritance)이다. 그럼 계승이란 무엇인가? 계승을 쉽게 말하면 똑같은 요소(함수, 인자)들이 있으면 그것을 각자 가지고 있지 말고 물려받아서 쓰면 효율적이다. 라는 것이다. 그럼 계승에는 어떤것이 있을까? 우선 무엇인가를 계승시켜주는 클래스를 기본 클래스, 기저 클래스, 베이스 클래스, 슈퍼 클래스라고 부른다. 그리고 계승받는 클래스를 파생 클래스, 서브 클래스라고 부른다. 간단한 예를 보면... #include using namespace std; class 기본클래스 { public : int temp; char array[10]; }; class 파생클래스 : public 기본클래스 { public : int i..

[Linux]디렉토리 구조

리눅스 시스템은 아래 그림과 같이 계층적인(hierarchical) 트리(tree)구조로 구성되어 있다. 리눅스는 드라이브라는 개념을 사용하지 않고 파티션과 마운트라는 개념을 사용한다. 리눅스는 루트 디렉토리를 시작으로 계층적으로 구성되어 있고, 각 디렉토리는 다른 디렉토리들과 명확하게 역할이 구분되어 있다. 또한 설치시 각 디렉토리를 별도의 파티션으로 분할하여 마운트시켜 사용할 수도 있다. 주의할 것은 이 디렉토리 구조는 리눅스 커널의 소스 구조와는 다르다. 리눅스는 디렉토리를 포함하여 장치들까지도 파일로 취급하므로 이 디렉토리 구조를 리눅스 파일 구조라 부른다. 그럼 각 하위 디렉토리 구조를 살펴보면 / (root) 최상위에 위치하는 디렉토리로서 루트 디렉토리라고 한다. 일반적인 데이터 파일을 저장하..

[Linux]리눅스의 특징

이번에는 리눅스의 특징에 대해서 말해볼려고 하는데 그렇다고 아래와 같은 기능이 리눅스에만 있는 것은 아니다. 대부분의 OS에서도 아래와 같은 특징을 가지고있다. 그럼 살펴보면... ▶ 멀티태스킹(Multi-tasking) & 멀티유저(Multi-user) 지원 - 멀티태스킹은 동시에 여러 개의 작업을 실행하는 개념이고 멀티유저는 하나의 컴퓨터에 여러 사용자가 접속하여 자원을 동시에 사용할 수 있는 개념이다. ▶ 다양한 하드웨어 플렛폼의 지원 - 리눅스는 x86, Motorola 68k, Digital Alpaha, Sparc. Mips 등등과 같은 다양한 플렛폼의 시스템에 설치하여 사용할 수 있다. 또한 크기가 작아서 PDA나 임베디드 시스템의 운영체제로도 손색이 없다. ▶ 공개 소프트웨어 - MS의 W..

[C/C++]컴파일 & 링크

우리는 흔히 '프로그램을 컴파일 한다.'라고 말을 하지만 정작 그 의미를 정확히 알고 있는 사람은 그렇게 많지는 않은 것 같다. 그래서 컴파일 & 링크에 대해 간단히 쓰자면... 우선 아래의 그림을 보자. ▶ Souuce File - *.cpp or *.c 등의 소스 파일 들. 위에 그림에는 생략됐지만 *.h 파일등도 섞여 있다. ▶ Preprocessor - 컴파일 정의 준비 처리로서, 다음 처리를 한다. 하는 일은 코멘트 삭제, 파일의 인클루드, 인라인의 전개이다. ▶ Compiler - 소스 파일이나 페더 파일에 코딩된 C/C++ 코드를 컴퓨터의 언어(기계어)로 번역(컴파일)한다. ▶ Object Files - *.obj, *.o등의 컴파일러에 의해, 기계어로 번역된 상태의 프로그램 소스 ▶ Lin..

[C++]inline Function

함수를 정의할 때 보면 type funct() { ... } 라고 정의할 때가 있는 반면 inline type funct() { ... } 라고 정의할 때도 있다. 이 두개의 차이는 무엇일까? 그건 바로 함수를 호출에 차이가 있다. 즉 inline없이 선언 했을 경우 함수를 호출하지만 inline를 선언해 주면 그 함수 본체의 코드가 직접 삽입된다. 일반적인 함수 호출(inline 선언 없는 함수) 함수 funct()에 inline이 붙어있었을 경우 void funct() { example code1; example code2; } int main(){ main_function code1; funct(); // 함수 호출 main_function code2; funct(); // 함수 호출 main_fu..

[C++]Function Template

이번에 볼 것은 Tmeplate이다. 얘기도 많이 듣고 책 같은 곳에서 많이 보아는 왔지만 막상 쓰라고 하면 어떻게 써야할지 잘 움직이던 손가락이 멈추는 경험을 해보셨을꺼라 빈다.(나만 그런거면 억울하니까~ - 3-) 우선 Template은 어떨때 쓰는거냐하면 예를 들어 똑같은 동작을 하는데 변수 타입만 다른경우가 있을 때 쓴다. 예를 들어 파라미터로 int형 2개를 넘겨줘서 2개의 곱도 구해야하고 double형 2개를 넘겨줘서 2개의 곱을 구해야 하는 함수가 필요하다고 하자. 이럴때 Template를 사용하면 굳이 2개의 함수를 별도로 만들 필요가 없다. 그럼 간단한 예를 하나 보면... 123456template // typename이 반드시 T일 필요는 없다. 단, 모두 같은 변수 이름을 써야만 한..

[C++]cin의 함정 피하기

C/C++ 코딩을 하는 사람이라면 이런 오류로 골머리를 썩은 적은 최소한 한번은 있을 것이다. 만약에 없다면 이 글은 볼 필요가 없다. 내용은 즉슨 cin or scanf 등으로 키보드로부터 값일 입력 받는데 int 형을 받아야 하는데 char가 들어온다던지 하면 이상한 error가 뜬다. 라기보다 프로그램 실행 중이면 무한 loop에 빠지게 된다. 그것을 막아주는 아주 요긴한 코드를 설명하려고 한다. 참고로 환경은 C++이다. 제목부터 cin이기 때문이다. ㅋㅋ 우선 헤도파일로 #include 를 넣어 준다. 이것을 넣어 주는 이유는 INT_MAX를 사용하기 위해서이다. 그리고 cin을 통해 값을 입력 받고나면 그 아래줄에 (이후부터는 말보다는 코드와 주석으로 설명하겠다. 그게 보기 편함으로...)wh..

01.리눅스 개요 - 리눅스 역사

리눅스는 윈도우 XP와는 달리 얼마든지 내부를 들여다 볼수 있는 오픈 소스이다. 핀란드 헬싱키 대학의 학생이었던 리누스 토발즈에 의해 만들어진 리눅스는 유닉스(UNIX)에서부터 시작되었다. 그런 의미에서 유닉스를 잠시 보면 유닉스는 1969년 미국 AT&T사의 벨연구소에 있던 켄 톰슨 어셈블리 언어로 개발되었다가 1972년에 데니스 리치가 C언어로 다시 작성하였다. C언어로 작성한 것은 큰 의미를 가졌는데 왜냐하면 어셈블리어로 작성을 하면 시스템 종속적이었던 것을 조금의 수정을 통해 다양한 플렛폼에 이식할 수 있게 된 것이다. 그 이후로 수 많은 유닉스가 개발되었는데 그러다보니 상호 호환성 문제와 이식성 문제가 대두 되었는데 이를 해결하기 위해 유닉스 표준화를 시도하였다. 그 결과 만들어 진 것이 POS..

유닉스 기본 명려어

▷ passwd - 비밀번호의 설정과 변경 ex) $ passwd passwd : student용 암호를 변경하는 중 기존 고르인 암호를 입력하시오 : 새 암호 : 새 암호를 다시 입력하시오 : ▷ man - 매뉴얼 참조하기 ex) $ man 명령어(실행파일) ▷ pwd - 현재 위치해 있는 디렉토리 ▷ cd - 디렉토리 이동 ▷ mkdir - 디렉토리 생성 ▷ rmdir - 디렉토리의 삭제 ex) $ rmdir -p abc/abbc -p : 특정 디렉토리를 포함한 하위 모든 디렉토리 삭제시 옵션 ▷ ls - 디렉토리 및 파일목록출력 -a : 디렉토리 내의 모든 파일 출력 -l : 파일허영여부, 소유자, 그룹, 크기, 날짜 등을 출력 -s : KB 단위의 파일 크기를 출력한다. -t : 최근에 만들어진 ..

특수기호 이름들

! Exclamation Point 엑스클러메이션 포인트 " Quotation Mark 쿼테이션 마크 # Crosshatch/Sharp/Pound Sign 크로스해치/샵/파운드 사인 $ Dollar Sign 달러사인 % Percent Sign 퍼센트사인 @ At Sign /Commercial At 앳 사인, 혹은 앳/커머셜 앳 & Ampersand 앰퍼샌드 ` (enter 바로옆) Apostrophe 어파스트로피 * Asterisk 애스터리스크 - Hyphen/Dash 하이픈/대시 . Period /Full Stop 피리어드/풀스탑 / Slash/Virgule 슬래시/버귤 \ Back Slash 백슬래시 \ Won sign 원사인 : Colon 콜론 ; Semicolon 세미콜론 ^ Circumflex ..

7/22 강의

[return & 주소] return타입은 오직 한개만을 return할 수 있다. 하지만 코딩을 하다보면 2개 이상의 값을 return을 해야할 때가 있다. 그럴때는 매겨변수로 값을 넘겨주는 것이 아닌 주소값을 넘겨 주는 것이다. 즉, input(temp, &valu); 로 넘겨주면 받는 함수는 void input(int temp, int *valu)로 받으면 된다. 여기서 받는 함수가 void형인 것은 주소값을 넘겨 주었기 때문에 구지 return을 통해 값을 반환할 필요가 없기 때문이다. 즉, 주소값을 통해 직접적으로 그 값에 관여할 수 있는 것이다. [기억클래스 종류] 정리하기 힘든 관계로 책 참고 바람. (귀찮은건 정말 참을수 없어~ - 3-) [배열] 배열이랑 같은 type, 같은 size를 같..

7/ 15, 7/16 3, 4번째 수업

[/ 및 % 연산자] /연산자는 나눈 몫을 구하는 연사자이다. 즉 10/3을 하면 3이 나오게 된다. %연산자는 나눈 나머지를 구하는 연산자이다. 즉 10%3을 하면 1이 나오게 된다. 여기서 10/3.을 하면 어떻게 될까? 3.은 정수가 아니라 실수 이기 때문에 3.3333....이 나오게 될 것이다. [fflush(stdin)] 이 함수 fflush(stdin)인 scanf로 입력 받았을시 버퍼에 저장된 불필요한 내용들을 클리어 시켜주는 함수이다. 즉, sacnf("%d", %a); scanf("%d", &b); 를 한 경우 입력을 10 20 30 을 하면 a에는 10이 들어가고 b에는 첫번째 scanf에서 받은 불필요한 20이라는 숫자가 들어가게 된다. 이러한 현상을 막기위해 sacnf("%d", ..

7/21강의

[반복문의 차이] 반복문에는 크게 for문과 while문이 있다. 둘다 특정 내용을 반복한다는 데는 같지만 쓰이는 의미에서는 차이가 있다. for문인 경우 특정 구간이 있는 경우에 쓰인다. 즉, 어디서부터 어디까지 라는 조건이 있으면 주로 for문이 쓰인다는 것이다. 그리고 while문은 전체적인 프로그램을 제어하거나 무한루프를 돌때 사용된다. 물론 for 대신 while을 while 대신 for를 사용해도 상관없지만 코딩의 기술적인 면에서 차이가 난다. for문은 while과 달리 초기식, 조건식, 증감식이 다 들어 있어 while문을 사용했을 때 와는 달리 반복문 안에 증감식이 들어갈 필요가 없어 구현도 편하고 가독성도 증가한다. [분기문] 분기문에는, break : 특정 반복문이나 선택문을 벗어나는..

7/14수업 C언어의 개략적인 내용

강사 : 박근여 강의 기간 : 7/14 ~ 8/1 (3주) 홈페이지 : http://myshe.realmind.net 강의실 : Q동 102호 오늘부터 "완벽 C언어 프로그래밍"이라는 강좌를 시작했다. 첫 강의라 그런지 굉~~장히 기초적인 것부터 시작을 했다. visual C++ programing 여는거 부터 시작해서 기타 등등등... 이 수업을 들어보고 괜찮다면 C++ OOP까지 듣고 아니면 혼자서 공부를 하자. 혼자서 공부하는게 얼마나 될지느 모르겠지만. 오늘 들은 강의 내용은 이렇다. 1. C언어의 대략적인 구성. 2. printf()함수 표준 입출력 함수이며 "stdio.h"를 기술해 줘야 한다. 변환문자와 제어문자 옵션을 사용할 수 있다. [제어문자] \n : New line, 줄바꿈 \r :..

반응형