일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- main 함수 인자 전달
- 변수
- image sensor
- Patch Cleaner
- 간단한 앱만들어보기
- Gain
- 아이리스
- camera
- 무게선별자동화
- 저장소와 동적메모리
- Zoom Lense
- AppInventer
- c언어
- 이미지센서
- Depth of Fileld
- CS Mount
- 고정비트레이트
- 과초점거리
- 심도
- 저조도
- 변수의 초기화와 대입
- C Mount
- Pixel Bit Format
- ASCCII
- Digital Slow Shutter
- 조건 제어문
- 실생활알고리즘
- 카메라
- 프로그래머스 lv2
- 렌즈
- Today
- Total
목록분류 전체보기 (49)
카메라 개발자 공부방(SW)
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dQBdch/btrhUYFUODl/72nJMyLMWWERdK8b59Wjnk/img.jpg)
오늘은 가변 인자에 대해 배워볼 시간입니다. 가변 인자의 대표적인 함수로는 prinf와 scanf 함수가 있습니다. 함수를 호출하여 인자를 전달할 때, 인자 입력에 제한이 없었죠? printf("%d\n", 1); printf("%d %d\n", 1, 2); printf("%d %d %d\n", 1, 2, 3); printf("%d %d %d %d\n", 1, 2, 3, 4); scanf는 콘솔에서 사용자의 입력을 받는 함수입니다(이제야 소개를 하지만). 이런 함수를 구현해야된다고 생각해봅시다. 인자를 받는 부분을 어떻게 해야 될까요? 이럴 때 생각해볼 수 있는 방법은 가변 인자를 사용하는 것입니다. 아래의 코드를 보시죠 #include void Print(int n, ...) // ... 가변인자입니다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ZLBrS/btrhlAq4NNG/kY6KwokTbWdNiXBLiVeh81/img.png)
App Inventer에서 App을 만들기 위해선 구글 계정이 필요합니다. 구글 계정으로 로그인하고, Project를 생성해보면 (HelloWorld) 아래와 같이 개발을 위한 화면이 나오게 됩니다. 지금 보시는 화면은 여러분들이 제작하시는 앱의 UI와 컴포넌트들을 설계하는 곳인데요~ 이 부분을 front-end 작업이라 생각하시면 이해가 편하실 것입니다. Front-end 작업을 위한 기능들을 컴포넌트 형태로 제공이 됩니다. Palette에서 단지 끌어다가 Viewer에 놓기만 해도 필요한 기능들이 마운트 됩니다. 1) Palette엔 앱을 제작하는데 필요한 대부분의 컴포넌트들이 있습니다. 컴포넌트는 UI , 화면 Layout, Media 등 다양하게 존재합니다. 1-1) UI 관련된 기능(버튼, 체크..
중학생을 대상 방과후 학습으로 블록 코딩을 안드로이드 앱으로 강의 했던 경험이 있습니다. 학생들의 컴퓨팅적 사고와 문제 해결력을 기를 수 있도록 본인이 스스로 코딩을 하면서 결과물을 만들 수 있도록 지도하였습니다. App Inventer 카테고리에선 아이들과 공부했던 내용들에 대해 공유해보고자 합니다. 어려울 것 같다구요? 걱정하지마세요 Android 앱을 컴퓨터 공학 전공자가 아니더라도, 쉽게 제작 할 수 있습니다. App을 쉽게 제작할 수 있는 사이트를 소개합니다. https://appinventor.mit.edu/explore/get-started Getting Started with MIT App Inventor App Inventor is a cloud-based tool, which means..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/boGbd8/btrhdDoFIJC/OyKoUCnkMauWwpW8ENgJSk/img.jpg)
오늘 배워볼 const란 변수 메모리를 상수화 시키는 연산자입니다. 다음의 코드를 보시죠 #include int main() { const int n = 0; n = 4; } // 실행결과 // compile error occur! n이란 변수가 만들어졌지만, const에 의해서 상수화가 되었기 때문에 초기화 과정에서만 메모리에 데이터를 write 할 수 있습니다. 상수 메모리는 대입 연산이 되지 않습니다. 보통이 변수의 상수화는 1) 상수 목적으로 변수를 사용하는 경우나 2) 참조하는 메모리의 데이터를 read 만 한다면 그 때 사용됩니다. (read 할 목적이라도 포인터 주소를 알고 있기 때문에 충분히 write 할 위험이 있습니다. 그것을 막는 것입니다.) 그리고 상수화 시키는 연산은 const도 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/nBCxP/btrhfgTJxlP/fBCVXa2V2NxKVhSS3Iyhq0/img.jpg)
오늘은 파일 입출력에 대해 공부해보겠습니다. 파일 입출력은 메모리에 데이터를 직접 쓰는 방식이 아니라, '스트림'을 활용해서 데이터를 입출력합니다. 여기서 스트림이란 1) 순서가 지켜지는 데이터의 흐름 2) 바이트의 흐름을 의미합니다. 이 스트림을 이용하면 입출력 장치뿐만 아니라 DataBase, Network와 Application과 간에 '공통된 인터페이스'로 활용할 수 있습니다. 스트림이 없다면 Application과 Network의 입출력 연동된 코드를 만들어 놔도 다른 DataBase 시스템과 연동을 할 때는 새로운 코드를 작성해야 되는 수고가 늘어납니다. 스트림을 활용한다면, 이러한 고민을 전혀 할 필요 없습니다~! C언어에서 말하는 스트림은 1) 바이트의 흐름을 나타내는 논리적인 단위 2) ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b8ufJy/btrhdWhDxBy/Tnc165tVt5a3YpJswZALlK/img.jpg)
자 오늘은 재귀 함수에 대해 공부를 해보겠습니다. 재귀 함수란 아래와 같은 형태의 함수를 의미합니다. #include // 1 line // 2 int Print() // 3 { // 4 printf("Print\n"); // 5 Print(); // 6 } // 7 // 8 int main() // 9 { // 10 Print(); // 11 return 0; // 12 } // 13 // 실행결과 // runtime error eccured 자기 자신을 호출하는 함수를 재귀 함수라고 합니다. 위의 코드는 문제가 있는데 실제로 실행해보면 11라인에서 3~6라인 다시 3~6라인 무한히 호출이 됩니다. 함수가 완전히 수행해서 종료가 돼야 Stack 메모리에서 제거가 됩니다. 하지만 위 코드는 계속 콜 하니..