본문 바로가기

2021/12

C언어 프로그래밍 기초 : 함수와 라이브러리 이번 포스팅에서는 C언어 혹은 C++를 이용해서 복잡하면서도 규모가 큰 프로그램을 작성하는데 필수적인 요소인 함수 (function)와 라이브러리 (library)에 대해서 알아봅시다. 함수를 정의하고 호출하기 위한 방법과 함께, 라이브러리가 어떻게 구성되어 있는지도 짚어보겠습니다. 함수를 정의하고 사용하기 위해서는 함수가 어떤 형태의 데이터를 받아들이고 돌려주는지를 명확히 해야 합니다. 이를 위해서 매개변수와 리턴값의 자료형을 지정하게 되는데요. C언어나 C++ 프로그램에 등장하는 변수들의 여러가지 자료형의 특징에 대해서는 다음 포스팅에 더 자세하게 소개되어 있습니다. C언어 프로그래밍 기초 : 변수와 자료형 여기서는 C언어로 프로그램을 작성하는데 있어서 가장 기본적인 요소들 중 하나라고 할 수 있는 .. 더보기
C언어 프로그래밍 기초 : 연산문과 사칙연산 이번 포스팅에서는 C언어 또는 C++ 프로그램에 등장하는 변수들의 값을 바꾸기 위한 연산문들에 대해 알아봅시다. 여러 개의 연산문들을 순차적으로 실행함으로써, 궁극적으로는 원하는 기능을 구현하게 됩니다. 따라서 사칙연산을 포함한 여러가지 연산자들에 대해 친숙해지는 것은 프로그램을 작성하는 데 있어서 매우 중요하다고 볼 수 있습니다. 변수들을 C언어 프로그램에서 사용하기 위해서는 선언문을 통해서 이들의 존재를 먼저 알려야 합니다. 여러가지 자료형을 통해 다양한 형태의 데이터를 나타내는 변수들을 선언하는 방법에 대해서는 다음 포스팅에 더 자세한 내용이 소개되어 있습니다. 변수와 자료형의 개념이 생소하게 느껴지시는 분들에게 큰 도움이 되리라 생각합니다. C언어 프로그래밍 기초 : 변수와 자료형 여기서는 C언어.. 더보기
C언어 프로그래밍 기초 : 변수와 자료형 여기서는 C언어로 프로그램을 작성하는데 있어서 가장 기본적인 요소들 중 하나라고 할 수 있는 변수 (variable)에 대해서 알아봅시다. 변수들의 종류를 지정하기 위한 다양한 자료형 (data type)들이 어떤 특징을 가지고 있는지에 대해서도 살펴보겠습니다. 이번 포스팅에서는 C언어 프로그램에 대해서 이야기합니다만, 여기서 다루는 내용들은 C++ 프로그램에서도 대부분 적용할 수 있습니다. 변수의 선언 컴퓨터 프로그램의 변수에 대해서 간단히 말하자면 데이터를 저장하기 위한 공간이라고 할 수 있습니다. 프로그램에서 사용하는 변수들은 메모리 혹은 RAM이라고도 부르는 주기억장치에서 할당받은 공간을 차지하게 됩니다. 그리고 프로그램 내의 여러 명령문에 따라서 변수들의 값이 달라지게 되죠. 다만 프로그램이 종.. 더보기
블로그를 위해 공부를 해야되는 이유 다음 검색유입 키워드들을 살펴보다가 재밌는 걸 하나 발견했습니다. 이 블로그에서 자주 다루는것과 동일한 주제를 가지고 제목까지 비슷하게 해서 글들이 올라오는 블로그가 있는겁니다. 제가 글을 발행하고 나면 며칠 뒤에 비슷한 제목으로 글이 올라오고 다음 검색노출에 뜨는 식입니다. 다음 최적화가 된 건지 상위노출은 잘 되는것 같더군요. 제가 전공 공부를 좀 많이 해놔서 해당 주제에 대해 쓸게 많기는 합니다만, 이게 저 혼자만 아는 주제도 아닌지라 키워드 경쟁이 없을 수는 없습니다. 결국 누가 글을 더 잘 쓰는가의 문제로 귀결될텐데요. 사실 저도 처음에는 걱정을 좀 했습니다만, 따라쟁이 블로그에 있는 글 수준을 보니까 걱정 안해도 될 것 같습니다. 내용을 표절하는게 아닌 이상 블로그에 글 쓰는 건 자유지만, 상.. 더보기
수학 상식 : 행렬 (matrix)의 덧셈과 곱셈 이번 포스팅에서는 수학 및 과학 분야에서 널리 쓰이는 개념인 행렬의 연산에 대한 기본적인 내용을 알아봅시다. 행렬의 덧셈과 곱셈이 어떻게 정의되는지와 더불어, 교환자 (commutator) 및 반교환자 (anti-commutator) 등의 확장된 개념들에 대해서도 짚어보겠습니다. 먼저 행렬에 대해서 간단히 말하자면, 숫자들이 사각형 모양으로 배열되어 있는 일종의 집합체라고 볼 수 있는데요. 여기서 숫자는 실수가 될 수도 있고 복소수가 될 수도 있습니다. 가로로 놓인 숫자들을 행 (row)이라고 부르고, 세로로 놓인 숫자들을 열 (column)이라고 부릅니다. 이말인즉슨, 행을 세로로 나열하거나 열을 가로로 나열하면 사각형 모양의 행렬이 된다고도 할 수 있습니다. 행렬에는 사각형 모양으로 숫자 혹은 성분 .. 더보기
C/C++ 함수가 스스로를 부르는 재귀호출 여기서는 C언어 또는 C++ 프로그램에서의 재귀호출 (recursive call)에 대해서 다뤄보겠습니다. 재귀호출에 대해 간단히 말하자면, 특정한 함수가 스스로를 호출하는 과정을 말하는데요. 재귀호출의 예시와 더불어 주의해야 할 점에 대해서도 짚어보겠습니다. C언어나 C++ 프로그램에서 함수가 어떻게 정의되고 사용되는지 궁금하신 분들은 시작하기에 앞서서 다음 포스팅을 읽어보시면 큰 도움이 되리라 생각합니다. C언어 프로그래밍 기초 : 함수와 라이브러리 이번 포스팅에서는 C언어 혹은 C++를 이용해서 복잡하면서도 규모가 큰 프로그램을 작성하는데 필수적인 요소인 함수 (function)와 라이브러리 (library)에 대해서 알아봅시다. 함수를 정의하고 호출 swstar.tistory.com 원리와 알고리.. 더보기
수학 상식 : 행렬식 (determinant)과 역행렬 이번 포스팅에서는 행 (row)과 열 (column)의 갯수가 같은 정사각행렬이 주어졌을때, 행렬식 (determinant)과 역행렬을 구하는 방법에 대해서 알아봅시다. 행렬식을 위한 점화식 (recurrence relation)이 어떤 형태를 띠는지 살펴보고, 이와 더불어 행렬식이 가지는 기하학적인 의미에 대해서도 짚어보겠습니다. 벡터의 내적과 외적을 통해 행렬식이 가지는 기하학적인 의미를 이해해볼텐데요. 여러 개의 성분을 가진 두 벡터를 곱하는 내적과 외적은 각각 스칼라곱과 벡터곱이라고도 불립니다. 내적과 외적의 정의와 특징에 대해서는 다음 포스팅에 더 자세한 내용이 소개되어 있습니다. 수학 상식 : 벡터의 덧셈과 곱셈 (내적, 외적) 이번 포스팅에서는 두 개의 벡터 (vector)의 덧셈 및 곱셈 .. 더보기
물리학 상식 : 유체의 확산과 브라운 운동 여기서는 유체 (fluid)를 이루는 분자나 입자들이 서로 상호작용함에 따라 확산 (diffusion)이 이루어지는 현상과, 이를 통계적으로 다루기 위한 개념인 브라운 운동 (Brownian motion)에 대해서 알아봅시다. 미시세계에서 분자들이 상호작용하는 방식이 반영되는 확산 계수 (diffusion coefficient)라는 개념에 대해서도 짚어보겠습니다. 앞에서 확산 현상을 통계적으로 다룬다고 언급했는데, 이를 위한 방법은 유체를 이루는 입자가 주어진 시간동안 특정한 거리만큼 이동할 확률을 상정하는 것입니다. 입자의 위치는 연속적인 값을 가지기 때문에 확률밀도함수를 다뤄야 하는데요. 확률밀도함수의 개념과, 이로부터 평균 및 표준편차를 계산하는 방법에 대해서는 다음 포스팅에 더 자세한 내용이 소개.. 더보기
수학 상식 : 표본평균의 중심 극한 정리 이번 포스팅에서는 모집단에서 유한한 갯수의 표본을 추출해서 평균값을 추정하는 상황에 대해 다뤄보겠습니다. 유한한 크기의 표준편차를 가지는 모집단이 있을 때, 표본평균의 값이 모집단의 평균에 비해 얼마나 차이가 날 수 있는지 살펴볼텐데요. 이를 결정하는 중요한 이론인 중심 극한 정리 (central limit theorem, 줄여서 CLT)에 대해서 알아봅시다. 먼저 평균, 분산 및 표준편차의 수학적인 정의를 알아둘 필요가 있습니다. 그리고 특정한 확률 분포를 따르는 모집단으로부터 유한한 갯수의 표본을 추출한 뒤 평균값을 구하면, 그게 모집단의 실제 평균과는 일반적으로 다르다는 사실도 인지할 필요가 있죠. 여기에 대해서는 다음 포스팅에 더 자세하게 소개되어 있습니다. 수학 상식 : 표본의 평균, 분산과 표.. 더보기
물리학 상식 : 이체 문제의 환산 질량 여기서는 두 개의 물체의 운동을 뉴턴의 고전역학을 통해 알아보는 데 있어서 유용한 개념인 환산 질량 (reduced mass)에 대해서 알아봅시다. 서로 상호작용하는 두 개의 물체의 위치와 속도가 시간에 따라 어떻게 변화하는지에 대한 문제를 일반적으로 이체 문제 (two-body problem)라고 부릅니다. 이번 포스팅에서 다루는 내용을 이해하기 위해서는 물체에 작용하는 힘이 운동 상태를 어떻게 변화시키는지와 더불어 무게중심에 대해 먼저 알아둘 필요가 있습니다. 물체의 운동이 가지는 파급력을 수치화한 개념으로서 운동량이 있고, 여러개의 물체로 이루어진 집합의 총 운동량으로부터 무게중심의 개념을 도출할 수 있는데요. 다음 포스팅에 더 자세한 내용이 소개되어 있습니다. 물리학 상식 : 에너지, 운동량과 각.. 더보기