반응형 공부 자료실68 다양하게 아두이노 활용하기 아두이노를 활용한 프로젝트 리스트 다양한 센서를 아두이노와 사용하기 온습도 센서 아두이노 - DHT11을 이용한 온습도 측정아두이노와 DHT11을 사용해서 온습도를 측정해보겠습니다. 먼저 DHT11에 대해 알아보겠습니다. 제가 ...blog.naver.com 적외선을 이용한 움직임 감지 센서 아두이노 - HC-SR501(PIR)를 사용한 LED ON/OFF요즘 어디서든 모션감지 센서 등을 많이 볼 수 있습니다. 오늘은 HC-SR501을 사용해 모션감지 센서 등...blog.naver.com 초음파 센서 아두이노 - HC-SR04를 이용한 거리 측정오늘은 HC-SR04 초음파 센서와 아두이노를 이용해서 거리를 측정해보겠습니다. 초음파란? 간단하게 주...blog.naver.com 초음파 센서 .. 공부 자료실/아두이노 2024. 10. 19. C# - Queue(큐) Queue(큐)는 선입선출(FIFO : First In First Out, 먼저 들어간 자료가 가장 먼저 나가고 마지막에 들어온 자료가 가장 마지막아 나감) 형식의 자료 구조로 순서대로 자료들을 사용해야 하는 상황에서 사용합니다. Queue(큐)는 처음 인스턴스를 생성하는 방법은 여러가지가 있습니다. using System.Collections; namespace test { class Program { static void Main(string[] args) { //var queue = new Queue(); Queue queue = new Queue(); } } } using System.Collections.Generic; namespace test { class Program { static vo.. 공부 자료실/공통 자료실 2021. 5. 4. C++ - 동적 메모리 할당 C언어에서 동적 메모리 할당은 malloc()과 free()를 이용했습니다. 하지만 C++은 새롭게 new연산자와 delete연산자를 사용합니다. 동적 메모리 할당은 메모리의 비효율적인 사용을 관리하고자 사용합니다. 살짝 좀 더 알아보면 메모리는 몇 개의 영역으로 나눌 수 있습니다. '동적 메모리 할당'은 메모리의 힙(heap)영역에 할당됩니다. 보통 우리가 컴파일 전에 할당하는 '정적 메모리 할당'은 대부분 스택(stack)영역을 사용합니다. 스택 영역도 당연하게도 크기를 초과하면 오버플로우가 발생합니다. 그래서 동적 메모리 할당에 대해서 알아보겠습니다. 먼저 동적 메모리 할당에는 new연산자를 사용합니다. 사용법도 malloc()에 비해서 굉장히 간단합니다. int *num = new int; 포인터.. 공부 자료실/C++ 2020. 8. 25. C++ - 클래스(class) 상속 클래스는 '상속'이라는 굉장히 중요한 특징을 가지고 있습니다. 상속이 중요한 이유는 작성한 클래스를 다시 활용함으로 굉장히 많은 코드를 줄여줄 수 있습니다. 예를 들어 학생이라는 클래스와 회사원이라는 클래스를 작성했습니다. 학생과 회사원은 사람이라는 공통점이 있습니다. 그러면 사람의 정보를 상속받고 각각 학생의 추가 정보와 회사원의 추가 정보다 더해준다면 쉽게 클래스를 작성할 수 있게 됩니다. 여기서 사람에 해당하는 클래스를 부모 클래스(parent class) 또는 베이스 클래스(base class)라고 하며 사람을 상속받은 학생과 회사원같은 클래스를 자식 클래스(child class), 파생클래스(derived class)라고 합니다. 이제 예제를 통해서 클래스를 상속해보겠습니다. 부모 클래스의 정의.. 공부 자료실/C++ 2020. 8. 21. C++ - 클래스(class) 생성자와 소멸자 이번에는 클래스의 생성자와 소멸자에 대해 알아보겠습니다. 생성자는 객체가 선언될 때 자동으로 호출이 되는 특수한 멤버 함수입니다. 보통 생성자를 이용해서 객체가 선언될 때 객체를 초기화를 할 수 있습니다. 클래스 이름과 동일한 함수명을 가지고 있습니다. 생성자는 특수한 함수답게 반환값이 없습니다. 반환값이 없다 보니 자료형을 붙이지 않고 정의합니다. 예제를 통해서 알아보겠습니다. #include using namespace std; class Student { public: Student() //생성자 { cout 공부 자료실/C++ 2020. 8. 19. C++ - string 클래스 지금까지는 문자열을 char형의 배열로 선언했습니다. 하지만 C++부터는 string클래스를 이용해서 문자열을 저장해보겠습니다. char배열과 가장 크게 달라진 점은 더 이상 배열의 크기를 신경 쓰지 않아도 된다는 점입니다. 먼저 string클래스를 사용하기위해서는 다음과 같은 새로운 헤더 파일을 추가해야 합니다. #include string클래스에 문자열을 초기화하는 방법은 다음과 같습니다. #include #include using namespace std; int main() { string str = "Hello World"; cout 공부 자료실/C++ 2020. 8. 18. C++ - 클래스(Class)의 구조와 접근 지정자 클래스는 C++ 객체 지향 프로그램의 가장 중요한 요소입니다. C언어에서 사용한 구조체의 확장된 개념이라고 생각하면 됩니다. 구조체에서는 struct키워드를 사용하지만 클래스는 class키워드를 이용해서 타입을 정의하며 변수와 함수의 집합입니다. 클래스 내부에 정의된 변수나 함수를 멤버 변수, 멤버 함수(또는 메서드)라고 합니다. class 클래스이름 { 멤버변수 멤버함수 . . . . . }; 클래스를 사용하기 위해선 구조체처럼 해당 클래스의 변수를 선언해야 합니다. 클래스이름 변수명; 예제로 살펴보겠습니다. #include class Student { }; int main() { Student stn; return 0; } class student를 정의하고 main에서 student의 변수 stn을.. 공부 자료실/C++ 2020. 8. 17. C++ - 네임스페이스(namespace) C++의 입출력 cin과 cout을 하면서 std에 대해서 살짝 알아봤었습니다. std(standard의 약어)는 네임스페이스(namespace)이며 네임스페이스란 C++로 넘어오면서 굉장히 방대한 양의 라이브러리와 식별자들이 나오게 되고 중복이 되는 상황이 발생하게 되면 구분을 할 수 없는 경우가 생깁니다. 이를 해결하기 위해서 나온 개념입니다. 네임스페이스를 사용해서 중복되는 식별자들을 관리할 수 있습니다. namespace 이번에는 네임스페이스에 대해서 알아보겠습니다. 네임스페이스는 직접 선언도 가능합니다. namespace키워드를 이용해서 직접 네임스페이스를 선언할 수 있습니다. 예제로 네임스페이스를 이용해서 같은 이름의 함수를 사용해보겠습니다. #include namespace Aspace{ v.. 공부 자료실/C++ 2020. 8. 13. C++ - 입출력 소스파일을 만들었으니 가장 먼저 "Hello World"를 입력과 출력을 해보겠습니다. C언어에서 stdio.h의 scanf()(또는 scanf_s())와 printf()를 사용했습니다. 그냥 사용해도 에러는 발생하지 않습니다. #include #define ARRAY_SIZE 20 int main() { char str[ARRAY_SIZE]; scanf_s("%[^\n]", &str, ARRAY_SIZE); printf("%s \n", str); return 0; } 하지만 새롭게 C++을 배우기 때문에 C++ 표준 라이브러리를 사용하겠습니다. C++에서 새롭게 등장하는 iostream(Input/Output Stream)은 표준 라이브러리 중 하나입니다. #include 이 표준 라이브러리를 포함해서.. 공부 자료실/C++ 2020. 8. 12. C++ - 프로젝트 생성 C++은 C언어를 기반으로 만들어진 언어입니다. 이름만 봐도 C에 ++를 붙여 한 단계 증가했다는 의미죠. 덴마크에 '비야네 스트롭스트룹'이 만들었으며 1983년에 C++이란 이름으로 불리기 시작했습니다. *초기 1979년에는 C++이 아닌 'C with Classes'였습니다. C언어는 보통 '절차 지향 언어'라고 표현합니다. C++은 절차 지향의 특성도 가지면서 '객체 지향', '일반화 프로그래밍'도 지원합니다. C언어의 확장 개념이다 보니 C언어에서 사용한 많은 부분을 C++에서도 사용 가능합니다. 하지만 C++을 진행하면 할수록 C언어와 다른점이 크게 나타나는 언어입니다. 그러다 보니 C언어를 하지 않고 C++을 배워도 크게 상관없을 정도입니다. C++은 현재에도 굉장히 다양한 부분에서 사용하고 .. 공부 자료실/C++ 2020. 8. 11. C언어 - 동적 메모리 할당 보통 배열의 크기를 컴파일 전에 선언해 두고 사용합니다. 가장 많이 사용하는 방법으로 보통 '정적 메모리 할당'이라고 합니다. 이 경우에는 미리 선언해 두고 해제할 필요가 없다는 장점이 있지만 반대로 미리 선언했기 때문에 비효율적일 수도 있습니다. 예를 들어 100의 크기의 배열을 선언했지만 막상 필요한 크기는 20이 되면 80은 낭비가 됩니다. 그래서 '동적 메모리 할당'을 이용해서 적절하게 메모리를 관리해야 할 경우가 발생합니다. 먼저 동적 메모리 할당을 하기 위해서는 새롭게 라이브러리를 추가해야 합니다. #include 이제 동적 메모리 할당에 필요한 함수에 대해 알아보겠습니다. malloc() void *malloc(size_t _Size); 인자로 전달받은 크기만큼의 메모리를 할당합니다. voi.. 공부 자료실/C언어 2020. 8. 7. 파이썬(Python) - 시간 관련 time 모듈 코딩을 하다 보면 시간을 계산해야 하는 경우가 굉장히 많이 발생합니다. 그래서 시간 관련 time 모듈에 대해 알아보겠습니다. time 모듈을 사용하기 위해 다음과 같이 추가해야 합니다. import time time() 현재시각을 1970년 1월 1일 00:00:00(UTC)을 기준으로 초를 나타내는 실수형으로 반환합니다. (유닉스 시간이라고도 합니다.) import time print(time.time()) gmtime() gmtime(sec)는 입력된 초를 UCT기준으로 변환하여 struct_time으로 반환합니다. 초를 넘겨주지 않으면 time.time()을 기준으로 변환 후 반환합니다. import time print(time.gmtime()) localtime() localtime(sec)는 .. 공부 자료실/파이썬(Python) 2020. 8. 6. 이전 1 2 3 4 ··· 6 다음 반응형