분류 전체보기
[C] 배열의 합, 평균, 최댓값, 최솟값 출력 : 배열 알고리즘
아래 소스코드는 임의의 10개의 배열 원소를 입력받아 합, 평균, 최댓값, 최솟값 4가지를 출력하는 알고리즘으로 구성되어 있습니다. #include int main(void) { int arr[10]; int max = 0; // 최대값이 저장될 변수 int min = 100; // 최소값이 저장될 변수 (단, 변수에 저장 될 값은 배열 원소값보다 더 큰 값) int sum = 0; // 총 합이 저장될 변수 float avg = 0.; // 평균값이 저장될 변수 // arr input process for (int i = 0; i > input %dth number : ", i + 1); scanf_s("%d", &arr[i]); } // max process ..
Visual Studio 개발 속도를 높여줄 유용한 단축키들
아래 내용은 Visual Studio 2019 버전을 기준으로 하고 있습니다. Ctrl + Z = 이전으로 되돌리기 Ctrl + Shift + Z : 되돌렸다 다시 복구하기 F5 : 디버그 시작 Ctrl + F5 : 디버그 없이 빌드 Ctrl + A : 전체 코드 블럭 잡기 Drag + Ctrl + Shift + / : 드래그한 영역 모두 주석처리 하기 Alt + LButton + Drag : 원하는 영역의 블록을 세로로 드래그하기 Ctrl + Shift + F : 글자 찾기 및 바꾸기 개인적으로 위의 것들을 가장 많이 사용합니다. 이 외에도 아주 많은 양의 단축키들이 있으나, 우리는 이걸 전부 다 암기할 필요는 없습니다. 본인에게 필요한 기능만 찾아서 효율적으로 사용하시길 바랍니다. 가장 중요하다고 생..
[C] 두 점 사이의 거리 출력 : 함수 응용
아래 소스코드는 두 점의 좌표를 각각 입력하여 함수를 통해 두 점 사이의 거리를 출력하도록 구성되어 있습니다. 두 점 사이의 거리를 구하기 위해서는 제곱근과 거듭제곱을 사용해야 하기 때문에 math.h 헤더를 통해 수학함수를 열어줍니다. #include #include double get_distance(double, double, double, double); int main(void) { double x1, y1, x2, y2; printf("첫 번째 점의 좌표를 입력하시오(x,y) : "); scanf_s("%lf %lf", &x1, &y1); printf("두 번째 점의 좌표를 입력하시오(x,y) : "); scanf_s("%lf %lf", &x2, &y2); printf("두 점 사이의 거리 =..
[C] Max / Min 출력 : 함수 응용
아래 소스코드는 임의의 정수형 입력값 5개를 받아서 함수를 통해 최댓값과 최솟값을 출력하도록 구성되어 있습니다. #include int max(int, int, int, int, int); int min(int, int, int, int, int); int main(void) { int a, b, c, d, e; scanf_s("%d %d %d %d %d", &a, &b, &c, &d, &e); printf("max : %d\n", max(a, b, c, d, e)); printf("min : %d\n", min(a, b, c, d, e)); return 0; } int max(int a, int b, int c, int d, int e) { int max_value = a; // 제일 큰 값을 a로 가..
컴퓨터 구조 : 컴퓨터 산술과 논리 연산
부동소수점 수의 표현 10진수에서는 과학적 표기(scientific notation)를 사용하여 아주 큰 수나 아주 작은 수를 간결하게 표현할 수 있다. 274,000,000,000,000 = 2.74 x 10^14 0.00000000000274 = 2.74 x 10^-12 이와 같이 소수점의 위치를 필요에 따라 이동시키는 표현 방법을 부동소수점 표현(floating-point representation)이라고 하며, 그와 같이 표현된 수를 부동소수점 수(floating-point number) 라고 부른다. S = 수의 부호 M = 가수(mantissa) B = 기수(base) E = 지수(exponent) 앞서 보았던 2.74 x 10^14 의 경우 가수 M = 2.74 지수 E = +14 기수 B ..
[C] 1에서 100 사이의 3의 배수의 합 : for, while, do while 반복문의 이해
#include int main(void) { int i, sum = 0; // for for (i = 1; i
컴퓨터 구조 : 기억장치
기억장치의 종류 주기억장치(내부기억장치) 레지스터, 캐시, 메인메모리(RAM, ROM) 보조기억장치(외부기억장치) HDD, SSD, CD, DVD, 자기테이프(M/T- magnetic tape) 기억장치의 액세스 유형 순차적 액세스 (비디오테이프) 처음부터 순서대로, 자기테이프(M/T) 직접 액세스 각 레코드 근처로 직 이동후 순차적 검색, HDD, CD, DVD 임의 액세스 직접 해당주소로 액세스, RAM, ROM 연관 액세스 기억장소별 키값 부여, 검색으로 찾음, 특수한 용도로 사용 기억장치 액세스 속도 관련 항목 액세스 시간 읽기/쓰기 신호가 도착하는 순간부터 데이터 읽기/쓰기가 완료까지의 시간 기억장치 사이클 시간 액세스 시간 + 다음 액세스가 가능할 때 까지의 시간 데이터 전송률(Data Tra..
[C++] C4996 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
위 에러가 발생하는 이유는 입력한 함수가 다른 설정 이름을 갖거나 안전하지 않은 경우, 변형이 있는 경우, 구식인 경우에 해당하기 때문입니다. 오류 메세지를 보면 사용되지 않는 함수 또는 전역 변수를 대체할 수 있는 safe_version 항목을 사용하길 제안해주고 있는데, 현재 사용한 함수의 경우 strcpy_s, strcat_s 가 그 예시입니다. 따라서 strcpy_s(), strcat_s() 를 사용하면 오류가 해결됩니다. 또는 헤더 파일 입력란에 #define CRT_SECURE_NO_WARNINGS 추가하여 안전성을 무시하고 컴파일 하는 방법이 존재합니다. 이 경우, 소스코드를 실제 프로젝트가 아닌 공부 목적으로만 사용하는 경우라면 얼마든지 사용해도 무방합니다.
[C++] C4996 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _getch. See online help for details.
POSIX 함수 이름인 getch 대신 ISO C++ 호환 네임인 _getch 를 사용하면 정상적으로 컴파일 할 수 있습니다. getch 이후 따라오는 putch 또한 동일하게 '_' 를 사용해줍니다.
페도라 리눅스 Chapter 08 리눅스의 부팅과 종료
리눅스 시스템의 부팅 리눅스의 부팅 과정 PC부팅 리눅스 부팅 전원 ON > 바이오스단계 > 부트 로더 단계 > 커널 초기화 단계 > systemd 서비스 단계 > 로그인 프롬프트 출력 바이오스 단계 PC의 전원 스위치를 켜면 가장 먼저 바이오스(BIOS, basic input output system)가 동작 바이오스는 PC에 장착된 기본적인 하드웨어(키보드, 디스크 등)의 상태를 확인한 후 부팅 장치를 선택하여 부팅 디스크의 첫 섹터에서 512B를 로딩 이 512B를 마스터 부트 레코드(master boot record, MBR)라고 명칭 바이오스 단계의 세부 동작 전원 ON > 하드웨어 검사 Post (power on self test) > 부팅 장치 선택 > MBR 로드 > 부트 로더 로드 > 부..