본문 바로가기

기계공학부 시절의 기록153

1.10~ 1.11 함수파일쪼개기, 헤더파일 만들기 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! 매우 긴 코드. 매우많은 함수가 있는 상황에서 main함수는 저 뒤에 있어 보이지도 않고 함수들만 보일 때, 함수를 저멀리 뒤로 보내고 main함수를 앞으로 불러오는 대신에 선언과 정의를 구분하여 코드를 정리할 수 있다. 1.10 선언과 정의 분리 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 #include using namespace std; //forward declaration int add(int a, int b).. 2021. 5. 2.
삼항연산자, 보기 좋은 코드 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! 삼항연산자 int y = (x > 0) ? 1 : 2; 괄호안이 참이면 ?뒤 왼쪽 수를 y에 대입 1 2 3 4 5 6 7 8 9 10 11 12 13 #include using namespace std; int main() { int x = 2; int y = (x > 0) ? 1 : 2; cout 2021. 5. 2.
1.7 지역범위(Local Scope) 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! 첫번째 x, 두번째 x, 세번째 x는 식별자 이름은 같지만 해당 지역({})에서만 존재하고 그 지역을 벗어나면 사라진다. 다른 메모리 공간이기 때문에 이름이 같아도 상관이 없다. 반면에, 새로운 괄호안에서 int x로 새로운 객체정의가 아닌 기존의 객체x에 할당하는 x=을 쓴다면 바깥 영역의 x 메모리에 할당하게 된다. #연습문제 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include using namespace std; void doSomething(.. 2021. 5. 2.
1.6 키워드와 식별자 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! 핵심 : 의미를 가지되, 간결한 것. 빠르게 타이핑하기 좋은 것. 협업자들의 문화에 맞는 것을 쓰자. 식별자 : 객체의 메모리 주소를 구분하기 위한 이름들 메모리 주소를 프로그래머가 알기 쉽게 지은 이름 주의사항 : 기존에 있는 함수, 기능의 것들과 겹쳐서는 안된다. 타이밍 속도를 높이기 위해서 처음에는 익숙치 않더라도 언더바(_)와 같은 자주, 많이 쓰이는 것들은 연습을 하자. 대문자 : shift + 예제) int total; o int _orange; o int VALUE; x 대문자로는 관습적으로.. 2021. 5. 2.
1.5 함수 활용 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! 함수 function : 복잡한 식을 내장시켜 여러번 찍어쓰기에 유용 리턴값 return values : 함수의 출력값, 반환값 매개변수 parameters : 함수의 매개변수 인자 arguments : 매개변수에 input되는 인자 # 함수만들기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include using namespace std; int addTwoNumbers(int num_a, int num_b) { int sum = num_a + num_b; ret.. 2021. 5. 2.
1.4 iostream : cin(console-in) cout(console-out) 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! cin : console in cout : console out endl : end line : '줄이 끝났다 & 다음줄로 옮기자' 두가지 의미를 내포 # cout 1 2 3 4 5 6 7 8 9 10 11 12 #include // cin, cout, endl 등이 정의된 라이브러리 int main() { int x = 1024; double pi = 3.141592; std::cout 2021. 5. 2.
1.3 int x = 123; 의 작동원리 : 변수, 초기화, 할당 #객체 objects 컴퓨터는 메모리와 CPU로 일을 한다. 물체가 실재함은 어떤 공간을 차지함을 보고 인식할 수 있다면 컴퓨터상에서 무언가 실재함은 메모리상에 존재하느냐로 인식할 수 있다. 메모리상에 존재하는 것이 객체이다. 객체는 메모리에 담겨있다. #변수 variables 메모리상에 존재하는 객체에 이름을 붙인 것. 예를 들어 메모리를 아파트, 객체를 그 안에 사는 가구라고 하면 특정 가구의 위치는 ***동***호이다. 이렇게 숫자로 이루어진 ***동***호는 컴퓨터에게는 익숙하지만 사람에게는 '누구누구네집'이 더 와닿는다. 그래서 객체에 이름을 짓고 이름을 가져와 코드 작성을 하는 것이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include int main() { // x라.. 2021. 5. 1.
1.2 주석만 잘달아놨어도 하루를 아낄 수 있었을텐데 # 주석을 다는 이유 1. 출처표시 2. 명령문 설명 3. 오류구문 무시 # 단축기 범위 드래그 후 ctrl + k, 그리고 난 뒤 ctrl + c는 주석, ctrl + u는 주석해제 1 2 3 4 5 6 7 8 9 int main() { int n_item = 180; /*아이템 하나당 1천원, 1+1event*/ n_item / 2 * 1000; return 0; } cs 이처럼 코드를 해석한 내용이 아닌 코드 내용이 왜 이렇게 이루어져 있는지를 설명해줘야 함. 출처) 홍정모의 따배씨++ www.youtube.com/playlist?list=PLNfg4W25Tapw5Yx4yuExHNybBIUk68aNz 좋은 강의에 너무나 감사하다. 이전에는 그냥 무작정 따라썼던 코드들을 한줄한줄 이해하며 공부할 수 .. 2021. 5. 1.
1.1 프로그램 구조 (feat. 가장 빨리 프로그래밍 실력 늘리는 방법) 제가 빠르게 복기하기 좋게 정리한 글입니다. 파일을 추가하는 세세한 방법과 과정은 마지막에 첨부된 영상으로 확인하시면 좋을 것 같습니다 :) 강의목차의 번호와 같은 목차번호를 사용하고 있으니 참고하세요! #배울 용어 (표현)식 Expressions 명령문 Statements : 하나의 문장. 마무리는 ;로 해야함. 여러 표현식이 모여 하나의 명령문이 됨 함수 Functions : 하나의 기능을 수행하는 프로그램 최소 단위. 라이브러리, 표준라이브러리 : 하나의 목적 수행을 위해 필요한 여러 함수들을 모아놓은 zip? #코드 실행원리 프로그램을 실행시킨다는 것은 윈도우나 MAC, 리눅스와 같은 OS(Operating system)에 ~해주세요라고 요청하는 것. 우리가 바로 뭔가를 실행시키는 것이 아니라 O.. 2021. 5. 1.
적응력을 가진 프로그래머가 자유를 누린다.(c++ vs. java) 얼마전 친구와 치열히 이야기했던 주제였다. 나는 c++을 하면 어떤언어든 접근할 수 있다 나는 c++하고 싶다@!라고 했던 나와 그 언어로 하고싶은게 뭔데?! 자바가 훨씬 많이 쓰이고 개발자는 웹개발은 자바가 필수야@!!!라고 했던 친구. 결국에는 나는 그냥 c++이 하고싶어라며 그럼 서로 다른 걸 배우면서 알려주기로 했다. 프로그래머는 특정 언어에 국한되면 안된다. 어떤 것이든 만들 수 있고, 어떤 것이든 손에 익힐 수 있다는 적응력에 자신감이 있어야 한다. 그런 실력이 있을 때, 엔지니어의 최대 장점인 자유로움을 누릴 수 있다. 로봇을 접점으로 c++을 많이 만났고 그때마다 벽을 느꼈다. 자료구조 수업을 들으면서도 c++을 해야겠다는 생각이 강해졌고 c++을 언젠가는 한번 제대로 파보고자하는 마음을 .. 2021. 5. 1.
따배씨++ 시작 공부이유) ROS를 다루면서도 C++이 소스코드로 필요했다. C++을 익힌 뒤 어떠한 언어에도 쉽게 접근이 가능하다. Python도 내부적으로 c++로 돌아간다. 데이터가 사람을 대신해 일하게 하기 위해서 공부방법) 좋은 예술가는 따라하고 위대한 예술가는 훔친다 처음은 따라하는 것부터 시작하자. 첫 시작에서 틀을 이해하는 것이 중요하다. 이번 글 이후로는 기록하기 보다는 빠르게 수업을 듣고 예제를 하는 것에 집중할 계획이다. 이번 글에서는 IDE환경에서 코드를 WRITE하고 COMPILE했을 때 어디에 어떻게 파일들이 만들어지고 어떻게 실행되는지 정리하였다. 자료출처 www.youtube.com/playlist?list=PLNfg4W25Tapw5Yx4yuExHNybBIUk68aNz 강의0.1 컴파일러와 .. 2021. 4. 30.
지금까지 한 것 목차정리 너무 정신없이 링크만 정리해 놓으면서 글이 혼잡해졌다. 지금까지의 상황과 방향을 정리해본다. 로봇에 관심을 갖다보니 ROS를 알게되었고 Modern robotic를 공부하며 로봇에서 configuration을 위해서 tf가 중요함을 알게되었다. ROS를 직접해보고자 했는데 개발환경세팅에만 많은 시간을 써버린 느낌적인 느낌이다. 바로 인공지능을 활용하겠다는 생각이었는데..ㅎㅎ 되겠지~가 아니라 하나하나 파고들어 되게 만들어야 했다. PC 환경(노트북) OS : 우분투 18.04 ROS : Melodic CPU : i5 Hardware Openmanipulator-X (ROBOTIS) OpenCR 1. Moveit으로 Openmanipulator-X 동작시키기도(완료) 1.1 다이나믹셀-OpenCR-remo.. 2021. 4. 22.