분류 전체보기 159

임베디드 시스템 스위치를 이용한 LED 구동

#include // 머크로티에서 Mega128을 위한 헤더 파일을 가져옵니다. #define LED_CON *((unsigned char *)0x8000) // LED_CONTROL을 위한 메모리 주소를 정의합니다. void main(void) { // 메인 함수 시작 DDRB = 0x00; // PORTB를 입력으로 설정 (0x00은 모든 핀을 입력으로 설정합니다). MCUCR = 0X80; // 외부 메모리 및 I/O 제어를 활성화합니다. // 외부 I/O 디바이스 초기화 LED_CON = 0X00; // LED GLCD 제어 버스를 초기화합니다. while(1) { // 무한 루프 시작 static unsigned char Switch_Button = 0; // 스위치 버튼 값을 저장하기 위한 변..

C/C++ OpenGl을 이용한 간단한 태양계 구축 프로젝트(1)

Windows MFC (Microsoft Foundation Classes)를 사용하여 OpenGL을 초기화하고 간단한 2D 그래픽을 렌더링 하는 뷰 클래스를 사용하여 간단한 태양계 구축하기. 이번에는 OpenGL을 사용하여 태양계 모델링을 구현과 MFC(Microsoft Foundation Classes)를 사용하여 Windows 환경에서 OpenGL을 초기화하고 3D 모델을 렌더링 하여 보자. COpenGLView 클래스 COpenGLView 클래스 생성자 (COpenGLView::COpenGLView()) 클래스 생성자에서는 행성과 달의 회전 등 각도 초기화를 수행한다! COpenGLView::PreCreateWindow 함수 윈도우를 생성하기 전에 윈도 클래스 및 스타일을 수정하며, OpenGL ..

C\C++/OpenGL 2023.11.08

[알고리즘] 트리1 - 트리와 이진트리

목차 01 트리의 이해 트리(Tree)는 자료들이 리스트, 스택 큐와 같은 1:1 관계의 선형 구조가 아니라 1:n 관계의 비선형 자료구조이며, 계층 자료구조이다. 트리의 구성 요소 노드 Node: 트리를 구성하는 원소(자료)를 노드(Node)라고 한다. 간선 Edge: 노드를 연결하는 선. 루트 Root 노드, Level 0: 트리의 시작 노드. 형제 Sibling 노드: 같은 부모 노드를 가진 자식 노드들. 조상 Ancestor 노드: 루트 노드까지 이르는 경로에 있는 노드는 모두 그 노드의 조상. (노드 K의 조상은 F, B, A) 서브 트리 Subtree: 자식 노드들은 독립하여 새로운 트리 구성이 가능 따라서 각 노드는 자식 노드 수만큼 서브트리를 가짐. (노드 B의 자손 노드는 서브트리 E의 ..

알고리즘 2023.11.03

[알고리즘] 연결리스트 스택 구현(자료구조6)

연결 리스트 스택 방식 #include #include #include // 구조체 정의 typedef struct Node { int x; // 노드의 데이터 필드 struct Node* link; // 다음 노드를 가리키는 링크 필드 } Node; // 노드를 연결 리스트에 삽입하는 함수 Node* insertNode(Node* tail, int data) { // 새로운 노드 생성 Node* newNode = (Node*)malloc(sizeof(Node)); if (!newNode) { fprintf(stderr, "메모리 할당 실패.\n"); return NULL; } // newNode 초기화 newNode->x = data; newNode->link = NULL; if (tail == NUL..

알고리즘 2023.09.17

[알고리즘] 순자 자료구조와 선형 리스트(자료구조5)

목차 # 순차 자료구조의 개념 자료는 구조화하는 방법에 따라 리스트, 스택, 큐, 데크, 트리, 그래프 등으로 나뉘는데 이러한 자료구조 유형을 프로그램으로 구현하는 방식에는 순차 자료구조와 연결 자료구조가 있다. 순차 자료구조 메모리 저장 방식 : 순차 자료구조는 구현할 자료들을 논리적인 순서대로 메모리에 연속하여 저장하는 방식. 연산 특징 : 삽입, 삭제 연산을 해도 빈자리 없이 자료가 순서대로 연속하여 저장되며 변경된 논리적인 순서와 저장된 물리적인 순서가 일치. 프로그램 기법 : 배열을 이용하여 구현 연결 자료구조 메모리 저장 방식 : 연결 자료 구조는 노드라고 하는 여러 개의 메모리 청크에 데이터를 저장하며, 메모리에 저장된 물리적 위치나 순서와 상관없이, 링크에 의해 논리적인 순서를 표현하는 방..

알고리즘 2023.09.16

[알고리즘] 재귀호출(자료구조4)

목차 # 재귀호출의 개념 재귀호출은 함수가 자기 자신을 호출하여 순환하여 수행되는 것으로 순환 호출 또는 Recursion이라고 부른다. 함수에서 실행해야 하는 작업에 따라 재귀호출을 사용하여 함수를 만들면 프로그램의 크기를 줄이고 간단하게 작성이 가능하다. 재귀호출을 사용하는 경우는? 팩토리얼 함수 대표적인 재귀호출 함수는 팩토리얼(Factiroal)인데 n에 대한 팩토리얼 함수는 1부터 n까지 모든 자연수를 곱하는 연산이다. #include int fact(int n){ int value; if(n

알고리즘 2023.09.16

[알고리즘] 구조체(자료구조3) + 데이터베이스 테이블

목차 # 구조체 개념 구조체도 배열처럼 여러 데이터를 그룹으로 묶어 하나의 자료형으로 정의가 가능하며, 배열은 자료형이 같을 때만 그룹으로 묶을 수 있지만, 구조체는 서로 다른 자료형도 그룹으로 묶을 수 있어 다양한 자료형을 가지거나 복잡한 자료의 형태를 정의할 때 유용하게 사용한다. 자료를 체계적으로 관리하려면 일정한 단위 형식으로 구성해야 하는데, 밑에 표가 이를 알려준다. 행, ROW, RECORD, 데이터베이스(RECORDS, Tuple) 열, Column, Field 행 ROW RECORD 김00 2014년 가입 3000 하00 2015년 가입 4000 홍00 2018년 가입 2000 권00 2023년 가입 5000 열, Column, Field 명칭 열, Column, Field 행 ROW R..

알고리즘 2023.09.15

[알고리즘] 포인터(자료구조2)

목차 # 포인터 개념 사용한느 모든 변수는 메모리의 특정 위치에 저장되는데 그 위치를 나타내는 메모리 주소를 포인터라고 한다. 포인터 변수는 메모리의 주소값을 저장하며, 포인터 변수 P가 어떤 변수 A의 주소를 저장하고 있다는 것은 포인터 변수 P가 변수 A의 위치(메모리 주소)를 가리키고 있다는 의미이다. 다른 말로는 포인터를 사용해 다른 변수를 액세스 할 수 있다는 소리이다. int A; int *P = &A; // 메모리 주소 한 개 저장. /* *int A에서 int 형 A변수를 선언했을 때 할당된 메모리 번지 예를들어 1번지라할 때, int *P = &A에 의해서 *변수 A의 주소 1번지를 포인터 P에 저장하므로 포인터 P는 변수 A를 가리키게 된다. *그러면 변수 A와 포인터 P가 논리적으로 ..

알고리즘 2023.09.14