컴퓨터공학 💻
-
함수의 매개변수로 포인터 전달 포인터는 다른 변수의 주소를 값으로 가지는 변수입니다. 포인터의 연산자 *(asterisk)는 포인터가 가리키는 값을 의미합니다. 즉, int *a = &b 로 선언했을 때 포인터 변수a는 변수b의 주소를 값으로 가지며 *a는 변수 b가 가진 값을 가리키는 것입니다. 이것을 다른 말로 'dereferncing' 한다고 말합니다. 포인터를 이야기하면 항상 나오는 개념이 배열입니다. 포인터는 배열과 매우 비슷합니다. 배열 int a[4] 를 선언했다고 합시다. 우리가 배열에 들어있는 특정 인덱스의 값에 접근하려면 a[0] = 2, a[2] = 30 등 이러한 방식으로 사용합니다. 이것은 포인터에서 *a = 2, *a = 30 과 유사합니다. 지정 영역에는 차이가 있지만 둘 다 ..
[자료구조] 함수의 매개변수로 포인터 전달함수의 매개변수로 포인터 전달 포인터는 다른 변수의 주소를 값으로 가지는 변수입니다. 포인터의 연산자 *(asterisk)는 포인터가 가리키는 값을 의미합니다. 즉, int *a = &b 로 선언했을 때 포인터 변수a는 변수b의 주소를 값으로 가지며 *a는 변수 b가 가진 값을 가리키는 것입니다. 이것을 다른 말로 'dereferncing' 한다고 말합니다. 포인터를 이야기하면 항상 나오는 개념이 배열입니다. 포인터는 배열과 매우 비슷합니다. 배열 int a[4] 를 선언했다고 합시다. 우리가 배열에 들어있는 특정 인덱스의 값에 접근하려면 a[0] = 2, a[2] = 30 등 이러한 방식으로 사용합니다. 이것은 포인터에서 *a = 2, *a = 30 과 유사합니다. 지정 영역에는 차이가 있지만 둘 다 ..
2021.04.10 -
리눅스 기본 명령어 리눅스 기본 명령어 사용방법에 관한 문제들입니다. (1) 루트 디렉터리 (/) 아래의 디렉터리 구조를 cd, pwd, ls 명령어를 이용해 탐색해보자 1-1. 루트 아래의 구조를 탐색하여 두 단계 정도를 트리 모양으로 그리시오. (2) 자신이 그린 트리에서 임의의 파일 혹은 디렉터리를 지정했을 때 그 절대경로명과 상대경로명을 적어보자 2-1. ced계정의 홈 디렉터리로 갈 수 있는 절대 경로와 상대 경로를 입력하시오 >> cd /home/ced >> cd ../../home/ced 2-2. root 디렉터리안의 snap - core18 - 1988 안에 있는 디렉터리들에 접근하기 위한 절대 경로와 상대 경로를 입력하시오 >> cd /snap/core18/1988 >> ../../sna..
[시스템 프로그래밍] 리눅스 기본 명령어 & 관련 문제리눅스 기본 명령어 리눅스 기본 명령어 사용방법에 관한 문제들입니다. (1) 루트 디렉터리 (/) 아래의 디렉터리 구조를 cd, pwd, ls 명령어를 이용해 탐색해보자 1-1. 루트 아래의 구조를 탐색하여 두 단계 정도를 트리 모양으로 그리시오. (2) 자신이 그린 트리에서 임의의 파일 혹은 디렉터리를 지정했을 때 그 절대경로명과 상대경로명을 적어보자 2-1. ced계정의 홈 디렉터리로 갈 수 있는 절대 경로와 상대 경로를 입력하시오 >> cd /home/ced >> cd ../../home/ced 2-2. root 디렉터리안의 snap - core18 - 1988 안에 있는 디렉터리들에 접근하기 위한 절대 경로와 상대 경로를 입력하시오 >> cd /snap/core18/1988 >> ../../sna..
2021.03.25 -
가상머신 사용자 계정 생성과 삭제 VMware Ubuntu 18.04 버전의 가상머신에서 작업한 내용입니다. 리눅스 명령어를 사용하여 사용자 계정을 생성하고 삭제하는 방법, 사용자 계정의 암호를 변경하는 방법을 알아보겠습니다. 01. 두 개의 계정 추가하기 root 권한을 얻어 adduser 명령어를 통해 두 개의 계정을 생성하는 과정입니다. useradd 명령어는 계정 생성은 가능했으나 계정 진입이 안되어 adduser 명령어를 사용하였습니다. 02. 추가한 두 개의 계정으로 각각 로그인 후 useradd, passwd, groupadd 등의 명령어 실행해보기 Root 권한 없이는 계정을 추가하거나 group을 생성하는 것이 불가능하고 현재 로그인 된 계정의 암호를 변경하는 것은 가능합니다. 03. 다..
[시스템 프로그래밍] 가상머신 사용자 계정 생성과 삭제 및 암호 변경가상머신 사용자 계정 생성과 삭제 VMware Ubuntu 18.04 버전의 가상머신에서 작업한 내용입니다. 리눅스 명령어를 사용하여 사용자 계정을 생성하고 삭제하는 방법, 사용자 계정의 암호를 변경하는 방법을 알아보겠습니다. 01. 두 개의 계정 추가하기 root 권한을 얻어 adduser 명령어를 통해 두 개의 계정을 생성하는 과정입니다. useradd 명령어는 계정 생성은 가능했으나 계정 진입이 안되어 adduser 명령어를 사용하였습니다. 02. 추가한 두 개의 계정으로 각각 로그인 후 useradd, passwd, groupadd 등의 명령어 실행해보기 Root 권한 없이는 계정을 추가하거나 group을 생성하는 것이 불가능하고 현재 로그인 된 계정의 암호를 변경하는 것은 가능합니다. 03. 다..
2021.03.23 -
배열을 이용한 다항식 표현 다항식의 일반적인 형태는 다음과 같습니다. 프로그램에서 다항식을 처리하려면 다항식을 위한 자료구조가 필요합니다. 배열을 이용한 다항식의 표현 방법에는 2가지가 있습니다. >> (1) 모든 항을 저장한다. >> (2) 0이 아닌 항만을 저장한다. (1) 모든 항을 저장하는 방식 #define MAX_DEGREE 101 // (다항식의 최대차수 + 1) 101 #include typedef struct { int degree; //최고차항의 지수 float coef[MAX_DEGREE]; }polynomial; polynomial a = { 5,{10,0,0,0,6,3} }; //10X^5+6X+3 polynomial poly_add1(polynomial A, polynomial ..
[자료구조] 배열을 이용한 다항식 표현1배열을 이용한 다항식 표현 다항식의 일반적인 형태는 다음과 같습니다. 프로그램에서 다항식을 처리하려면 다항식을 위한 자료구조가 필요합니다. 배열을 이용한 다항식의 표현 방법에는 2가지가 있습니다. >> (1) 모든 항을 저장한다. >> (2) 0이 아닌 항만을 저장한다. (1) 모든 항을 저장하는 방식 #define MAX_DEGREE 101 // (다항식의 최대차수 + 1) 101 #include typedef struct { int degree; //최고차항의 지수 float coef[MAX_DEGREE]; }polynomial; polynomial a = { 5,{10,0,0,0,6,3} }; //10X^5+6X+3 polynomial poly_add1(polynomial A, polynomial ..
2021.03.21 -
배열과 구조체의 활용 배열 >> 같은 자료형의 변수들이 연속된 메모리 공간을 차지하는 자료구조 >> 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료구조 >> 자료형이 같은 데이터들을 하나로 묶는 방법 구조체 >> 하나 이상의 변수를 묶어 그룹화하는 사용자 정의 자료형 >> 자료형이 다른 데이터들을 하나로 묶는 방법 배열과 구조체 자료구조의 활용 문제들입니다. 문제를 먼저 풀어보시고 풀이를 확인해보시기 바랍니다. 1. 크기가 8인 배열 pow[]를 선언하고 여기에 3의 제곱 값들을 저장해보자. 즉 배열의 첫 번째 요소에는 3^0을 저장하고 두 번째 요소에는 3^1값을 저장한다. 마지막 요소에는 3^7값을 저장한다. for 루프를 이용하여 pow[] 배열의 전체 요소의 값을 출력하는 프로그램을 작성하라...
[자료구조] 배열과 구조체의 활용배열과 구조체의 활용 배열 >> 같은 자료형의 변수들이 연속된 메모리 공간을 차지하는 자료구조 >> 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료구조 >> 자료형이 같은 데이터들을 하나로 묶는 방법 구조체 >> 하나 이상의 변수를 묶어 그룹화하는 사용자 정의 자료형 >> 자료형이 다른 데이터들을 하나로 묶는 방법 배열과 구조체 자료구조의 활용 문제들입니다. 문제를 먼저 풀어보시고 풀이를 확인해보시기 바랍니다. 1. 크기가 8인 배열 pow[]를 선언하고 여기에 3의 제곱 값들을 저장해보자. 즉 배열의 첫 번째 요소에는 3^0을 저장하고 두 번째 요소에는 3^1값을 저장한다. 마지막 요소에는 3^7값을 저장한다. for 루프를 이용하여 pow[] 배열의 전체 요소의 값을 출력하는 프로그램을 작성하라...
2021.03.19 -
1. 순환 알고리즘 같은 프로그램에 대해서 순환알고리즘을 사용하는 경우와 반복알고리즘을 사용하는 경우가 있습니다. 어떤 프로그램이냐에 따라 두 알고리즘의 효율성이 다르게 작용합니다. 두 알고리즘의 차이를 비교해가며 코드를 먼저 풀이해보시고 설명을 확인해보시기 바랍니다. 1-1. 다음을 계산하는 순환 함수를 작성하라 > 1 + 2 + 3 + … + n int factorial (int n) { if ( n == 1 ) return 1; else if ( n >= 2 ) return ( n + factorial (n - 1) ); } 함수 설명 더보기 (1) factorial 함수에 n을 매개변수로 보냅니다 (2) n이 1이면 1을 return합니다 (3) n이 1이 아니고 2와 같거나 크면 n을 retur..
[자료구조] 순환 알고리즘과 반복 알고리즘 비교1. 순환 알고리즘 같은 프로그램에 대해서 순환알고리즘을 사용하는 경우와 반복알고리즘을 사용하는 경우가 있습니다. 어떤 프로그램이냐에 따라 두 알고리즘의 효율성이 다르게 작용합니다. 두 알고리즘의 차이를 비교해가며 코드를 먼저 풀이해보시고 설명을 확인해보시기 바랍니다. 1-1. 다음을 계산하는 순환 함수를 작성하라 > 1 + 2 + 3 + … + n int factorial (int n) { if ( n == 1 ) return 1; else if ( n >= 2 ) return ( n + factorial (n - 1) ); } 함수 설명 더보기 (1) factorial 함수에 n을 매개변수로 보냅니다 (2) n이 1이면 1을 return합니다 (3) n이 1이 아니고 2와 같거나 크면 n을 retur..
2021.03.19