피보나치 수열이란? 피보나치 수열은 첫번째 항과 두번쨰 항을 더해서 세번째 항을 만들고 두번쨰 항과 세번쨰 항을 더해서 네번쨰 항을 만드는 방법으로, 계속해서 다음항을 만들어가는 수열입니다. 피보나치 수열의 10번째 항까지의 합계 구하기 3개의 변수로 먼저 첫번째 항(A), 두번째 항(B), 세번째 항(C)를 만든 후, 두번째 항(B)를 첫번째 항(A)에 치환하고 세번째 항(C)를 두번째 항(B)에 치환한 후 첫번째 항(A)와 두번째 항(B)를 더하여 다시 세번째 항(C)를 만드는 방법을 반복합니다. C언어 / C++ 코드 #include main() { int a = 1, b =1; //첫번째항, 두번쨰항 int c; //세번째항 int sum = 2, cnt = 2; //합계 sum, 항의갯수 cnt..
팩토리얼 수열이란? 수학에서, 자연수의 계승 또는 팩토리얼은 그 수보다 작거나 같은 모든 양의 정수의 곱입니다. n이 하나의 자연수일 때, 1에서 n까지의 모든 자연수의 곱을 n에 상대하여 이르는 말입니다. 기호는 느낌표(!)를 사용합니다. 팩토리얼이라고 읽으며 팩토리얼을 줄여서 팩이라고 읽기도 합니다. 팩토리얼 수열의 5번째 항까지의 합계구하기 (1!+2!+3!+4!+5!) 팩토리얼의 합계를 구하는 알고리즘을 풀기 위해서는 각 항 사이에서 일정한 비율로 증가하여 곱할 값으로 사용할 증가 배수 변수 i, 증가 배수를 곱하여 수열의 각 항을 만들어 저장할 변수 Sum, 그리고 수열의 각 항인 j가 만들어질때마다 그 값을 누적할 변수 K가 필요합니다. C언어 / C++ 코드 #include main() { ..
1번문제 : 1 ~ 100까지의 합계 (1+2+3+4···+100) 0에서 1씩 증가시켜 100까지 변경되는 수열을 더하려면 두개의 변수를 선언하셔야 합니다. 변수 i에는 수열의 각항을 만들기 위하여 반복문을 사용하여 +1씩 더하여주고, 또다른 변수 Sum에는 수열의 각 항이 1씩증가할때마다 그값을 누적하여 저장하면 됩니다. C언어 / C++ 코드 #include main(){ int i,sum; //정수형변수 i와 sum을 선언 i=0; sum=0; //i와 sum을 0으로 초기화 do{ i++; //i를1씩 증가 sum +=i; //sum값에 i를 누적시켜 저장 }while(i
캐시메모리란 무엇인가? 캐시 메모리는 CPU의 처리속도와 주기억장치의 접근 속도 차이를 줄이기 위해 사용하는 고속 Buffer Memory입니다. 캐시메모리의 특징 캐시는 주기억장치와 CPU사이에 위치하며, 자주 사용하는 프로그램과 데이터를 기억합니다. 캐시 메모리는 메모리 계층 구조에서 가장 빠른 소자이며, 처리속도가 거의 CPU의 속도와 비슷할 정도의 속도를 가지고 있습니다. 캐시메모리를 사용하면 주 기억장치를 접근하는 횟수가 줄어들어 컴퓨터의 처리속도가 향상됩니다. 캐시 주소표는 검색시간을 단축시키기 위해 주로 연관기억장치를 사용합니다. 캐시의 크기는 보통 수십 KByte ~ 수백 KByte입니다. 캐시메모리의 매핑 프로세스 매핑 프로세스는 주기억장치로부터 캐시 메모리로 데이터를 전송하는 방법을 말..
보조기억장치란? 보조기억장치는 주기억장치의 단점을 보완하기 위한 기억장치입니다. 보조기억장치는 주 기억장치에 비해 속도는 느리지만 전원이 차단되어도 내용이 그대로 유지되고 저장용량이 크다는 장점이 있습니다. 보조기억장치의 특징 중앙처리장치와 직접 자료 교환이 불가능합니다. 접근시간이 오래걸립니다. 일반적으로 주기억장치에 데이터를 저장할 때는 DMA방식을 사용합니다. CPU가 직접 접근할 수 없습니다. 여러가지 보조기억장치의 종류 자기테이프 자기테이프에는 주소의 개념이 없고, 처음부터 차례대로 처리하는 순차처리만 할 수 있는 대용량 저장 매체입니다. 평균처리시간이 가장 깁니다. 가격이 저렴하고 용량이 커서 자료의 백업용으로 많이 사용합니다. 자성물질이 코팅된 얇은 플라스틱 테이프를 동그란 릴에 감아 놓은 ..
주기억장치란? 주기억장치는 CPU가 직접 접근하여 처리할 수 있는 고속의 기억장치(Memory)로 현재 수행되는 프로그램과 데이터를 저장하고 있습니다. 종류에는 롬(ROM)과 램(RAM)이 있습니다. ROM(Read Only Memory) ROM은 기억된 내용을 읽을 수만 있는 기억장치로서 일반적으로 쓰기는 불가능 합니다. 전원이 실제로 꺼져도 기억된 내용이 지웢지ㅣ 않는 비휘발성 메모리입니다. 실제로 ROM은 주기억장치로 사용되기보다는 주로 기본 입,출력 시스템(BIOS), 자가 진단 프로그램(POST)같은 변경 가능성이 희박한 시스템 소프트웨어를 기억시키는데 이용합니다. ROM의 종류와 특징 종류 특징 MASK ROM 제조공장에서 프로그램화하여 생산한 ROM으로, 사용자가 내용을 변경시킬 수 없습니다..
기억장치는 컴퓨터에서 사용하는 Data나 Program을 저장하는 장치로 크게 주 기억장치와 보조기억장치로 구분됩니다. 기억장치의 계층구조 기억장치의 계층구조란 여러가지 기억장치를 속도, 용량, 성능에 따라 계층적으로 분류하는 것으로, 전체 메모리 시스템의 가격을 최소화하면서 가능한 최소의 평균접근속도를 달성하는 것이 기억장치 계층화의 목적입니다. 기억장치의 구분 구분방식 내용 내용의 보존 여부 파괴성 메모리 : 판독 후 저장된 내용이 파괴되는 메모리로 파괴된 내용을 재생시키기 위한 재 저장 시간이 필요합니다.(자기코어) 비 파괴성 메모리 : 판독 후에도 저장된 내용이 그대로 유지됩니다..(자기코어를 제외한 기억장치) 전원 단절 시 내용 소멸 여부 휘발성 메모리 : 전원이 단절되면 모든 정보가 지워지는 ..
인터럽트란 무엇인가? 인터럽트는 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할경우 현재 실행중인 작업을 즉시 중단하고 발생된 상황을 우선 처리한 후 실행중이던 작업으로 복귀하여 계속 처리하는것을 말합니다. 일명 끼어들기라고도 합니다. 인터럽트는 외부 인터럽트, 내부 인터럽트, 소프트웨어 인터럽트로 분류하는데, 외부나 내부 인터럽트는 CPU의 하드웨어에서의 신호에 의해 발생하고 소프트웨어 인터럽트는 명령어의 수행에 의해 발생합니다. 여러가지 인터럽트의 종류와 발생원인 외부 인터럽트 외부 인터럽트는 다음과 같이 입,출력장치, 타이밍 장치, 전원 등 외부적인 요인에 의해 발생합니다. 전원 이상 인터럽트 : 정전이되거나 전원 이상이 있는경우 발생합니다. 기계 착오 인터럽트 : CPU의 기능적인 오류 동작..
레지스터란? 레지스터는 CPU내부에서 처리할 명령어나 연산의 중간 값 등을 일시적으로 기억하는 임시 기억장소입니다. 컴퓨터의 프로세서 내에서 자료를 보관하는 아주 빠른 기억장소라고 생각하면 되며 일반적으로 현재 계산을 수행중인 값을 저장하는데 사용됩니다. 레지스터는 메모리 계층의 최상위에 위치하면서 가장 빠른 속도로 접근이 가능하게끔 설계되어있는 메모리입니다. 여러가지 레지스터의 종류 프로그램 카운터, 프로그램 계수기 다음번에 실행할 명령어의 번지를 기억하는 레지스터로 분기 명령이 실행되는 경우 그 목적지 주소로 갱신됩니다. 명령 레지스터 현재 실행중인 명령의 내용을 기억하는 레지스터 입니다. 누산기 연산된 결과를 일시적으로 저장하는 레지스터로 연산의 중심이 되는 레지스터입니다. 상태 레지스터(Statu..
중앙처리장치란? 중앙처리장치(CPU: Central Processing Unit)는 사람의 두뇌와 같이 컴퓨터 시스템에 부착된 모든 장치의 동작을 제어하고 명령을 실행하는 장치입니다. 중앙 처리장치는 제어장치, 연산장치, 레지스터 그리고 이들을 연결하여 데이터를 전달하는 버스로 구성되어 있습니다. 중앙처리장치의 대표적인 구성장치 제어장치 제어장치(Control Unit)는 컴퓨터에 있는 모든 장치들의 동작을 지시하고 제어하는 장치입니다. 제어장치는 명령 레지스터에서 읽어들인 명령어를 해독하여 해당하는 장치에게 제어 신호를 보내 정확하게 수행하도록 지시합니다. 제어장치의 구성요소 명령 레지스터 : 현재 실행중인 명령어의 내용을 기억하고 있습니다. 명령 해독기(Decoder) : 명령 레지스터에 있는 명령어..
매크로 프로그래밍의 개념 및 특징 매크로(Macro)는 프로그램 작성 시 한 프로그램 내에서 동일한 코드가 반복 될 경우 반복되는 코드를 한번만 작성하여 특정 이름으로 정의한 후 그 코드가 필요할 때마다 정의된 이름을 호출하여 사용하는 기법입니다. 1. 일종의 부 프로그램(Sub-Program)으로 개방 서브루틴(Poened Sub-routine)이라고도 합니다. 2. 매크로는 문자열 바꾸기와 같이 매크로 이름이 호출되면 호출된 횟수만큼 정의된 매크로 코드가 해당 위치에 삽입되어 실행됩니다. 3. 매크로 정의 내에 또 다른 매크로를 정의할 수 있습니다. 4. 사용자의 반복적인 코드 입력을 줄여줍니다. 5. 매크로 정의형태는 주로 어셈블리어 형태입니다. 매크로 용어 매크로 정의 : 프로그래머가 일정한 형식..
얼마전 포스팅에서 GitBash를 사용하여 원격 레파지토리에 소스를 등록하는 작업을 해보았습니다. 이렇게 명령어 입력으로도 깃허브를 사용할 수 있습니다. 하지만 많이 불편하죠... 명령어를 다 외우는것도 만만치않은일입니다. 명령어를 사용하여 깃허브를 사용하는것이 불편한 분들을 위한 유틸리티가 있습니다. 바로 소스트리(Source Tree)라는 프로그램인데요. 소스트리란 Git을 그래픽화 시켜준다고 생각하시면 됩니다. 명령어 입력을 할 필요 없이 클릭만으로 Git의 모든 작업을 할 수 있습니다. 소스트리 (SourceTree) 설치하기 1. 소스트리 SetUp파일을 다운받습니다. 소스트리 설치URL 바로가기 위 경로로 가셔서 Download for Windows버튼을 눌러주세요. 2. 다운받은 SetUp파..
이클립스에서 프로젝트를 깃 원격 저장소로 Commit하는 방법에 대해 알아봅시다. 1. 깃 원격저장소에 올리고싶은 프로젝트 -> 우클릭 -> Share Project를 클릭합니다. 2. 화면에 보이는 Use or create repository inparent folder of project 체크박스를 클릭합니다. 3. Create Repository 버튼을 클릭하여 로컬 저장소를 만듭니다. 4. Git Repositories를 엽니다. 5. Git Repositories에 로컬저장소가 잘 만들어졌는지 확인합니다. 위와같이 자신이 원격저장소에 올리고싶은 프로젝트가 있으면 로컬저장소가 잘 만들어진것입니다. 이제 원격저장소에 프로젝트를 올릴 차례군요. 6. 올리고싶은 원격저장소의 주소를 복사합니다. 7. G..