본문 바로가기

전체 글

C_조건) 표준입력으로 받은 세정수에서 최소값을 출력하는 프로그램 1. 표준입력으로 받은 세정수에서 최소값을 출력하는 프로그램을 작성하시오. 최소수를 구할 때는 if 문을 사용과 삼항 연산자를 이용한 메크로로 정의하여 사용, 두가지방법으로 작성해 보시오. 실행예) 세 정수를 입력: 10 30 20 최소 수: 10 #include int main() { int x,y,z; printf("세 숫자를 입력하세요\n"); scanf("%d %d %d",&x,&y,&z); if(x y) { if(yz) printf("if 문 사용:최솟값은 %d이다",z); } switch(x>=y) { case 1: if(yz) printf("삼항 문 사용:최솟값은 %d이다",z); break; case 0: if(xz) printf("삼항문 사용: 최솟값은 %d이다",z); break; } .. 더보기
비실존적 삶 에서 실존적 삶으로_ 기억 속의 우물 2019 – 2 학기 서양현대철학 철학 에세이 ‘진심 어린 이해’ : ‘실존적인 삶’을 향한 문. ​ 심리학과 오범준 ​ It’s not your fault, It’s not your fault 영화 "굿 윌 헌팅" 중에서 영화에 나오는 한 구절이다. 별다른 특수 효과 하나 없이, 나지막하게 뱉는 이 한마디는 관객에게 깊은 여운을 남긴다. 왜 ? 이 반복되는 한 마디의 파동이, 관객들의 마음 속에서는 큰 파도가 되어 울렁거리는 걸까. ​ 왜냐하면, "나한테" 말해주는 것 같으니까. ​ ​ 분명히 상대 배우에게 뱉는 말이지만, 마치 나에게 해주는 말 같으니까. 멧 데이먼의 주인공에 관객들, 아니 우리들은, 의식하지 못하는 사이에, 감정이입하고 있으며 멧 데이먼의 삶 중에서 일부를 우리의 삶과 동일시하고 있.. 더보기
C 전화번호부 v4.0_2) load if( read_line ( fp, buffer, BUFFER_LENGTH) < = 0 ) : 더 이상 읽을 게 없으면, break 만일 유효한 정보가 있다면, name ~ group 정보를 읽고, 그 기준은 # 구분자를 기준으로 적용하는 것이다. 첫번째 ~ 4번째 token 이 각각 name ~ group 으로 들어가는 것이다. 기억할 것은, 존재하지 않는 항목은 한칸의 공백 문자이다. 이름이 없는 사람은 없으니, 해당 사항이 없지만, number ~ group 같은 경우, 없을 수 있으므로, 그 경우에는 한 개의 공백 문자로 이루어진 string 이 되는 것이다. 그리고 다 읽게 되면, 그것을 add ( ) 를 통해 directory에 추가한다. ​ add 4개의 문자를 받는다. 그리고, 알.. 더보기
C 전화번호부 v4.0_1) 1. 개요 지금까지는, 이름, 전화번호, 이메일 주소, 그룹을 지정할 수 있다. 이름 제외한 다른 항목들은 비워둘 수도 있다. 어떤 사람은 이름과 이메일 주소만. 있을 수도 있다. 위를 보면, 예를 들어, add 함수를 실행하고 사람 이름을 치면, 컴퓨터가 물어본다. phone ,email, group 은 뭐냐. 라고 불필요한 2개의 공백은 저장될 때 1개의 공백으로, 프로그램이 알아서 저장한다. 우리는, 입력한 정보를 directory.txt 로 저장한다. 그렇기 때문에, 파일의 형식을 살펴봐야 한다. 1) 각각의 사람에 대해 이름, 전화번호, 이메일, 그룹 등을 모두 지정해야 하는데, 어떤 사람은 1개만, 2개만 등등이 있을 수 있다. 그런데, 지금까지 전화번호부를 만들었을 때와 동일한 방식으로 저장.. 더보기
C 전화번호부 v2.0_2) 4) add 자. 여기서부터는 이제 위에서 설명한 ' 정렬' 을 반영해서 할 건데, 왜 load 함수에서는 저러한 것들을 반영 안했어 ? 왜냐하면, 우리는 파일을 불러올 때, 이미 그 파일이 정렬되었다고 가정하기 때문이다. 당연히 add 할 때는, 우리가 새로운 사람을 추가하는 것이니까, add 할 사람의 이름과 번호를 buf1, buf2 에 입력받는다. 이제 이 사람을 전에는 그냥 맨 뒤에 추가했는데, 정렬을 반영해서 넣는 것이다. ​ 처음에 i = n - 1; 즉, i 가 맨 마지막 사람을 뜻하는 것이다. 그 다음 strcmp( names[ i ] , buf1 ) i 번째 사람의 이름과, 내가 추가할 사람의 '이름'을 비교하는 것이다. strcmp( names[ i ] , buf1 ) 두 문자열이 같.. 더보기
C 전화번호부 v3.0 Q. 왜 .... **name 이야 ? 왜 이중 포인터 배열을 쓴거야 ?? 1. 개요 예를 들어, 이와 같이, 명령 프롬프트 다음에 특정 명령을 입력하지 않고, 엔터를 쳐서 그 다음 줄로 넘어가게 되면, 명령 프롬프트 다음으로 넘어가는 것이 아니라, 엔터를 쳐서 그다음으로 넘어가게 된다. 따라서 우리는, 명령 프롬프트를 실행해서, 아무런 명령 없이 엔터를 쳐도, 그 다음 명령 프롬프트로 바로 넘어갈 수 있게 해주는 것이 목적이다. 또한, 이상한 명령어를 넣으면, 그에 해당하는 적절한 오류 메시지를 출력하도록 해주는 것이다. 이를 위해서는 사용자가 엔터를 칠 때까지, 그것이 몇개의 단위로 구성되었는지 관계없이, 라인 단위로 입력을 받고, 그에 대한 처리를 하는 것이 필요하다. 배열의 용량을 초과할 경우에는.. 더보기
C 전화번호부 v2.0_1) 1) 추가할 기능 ​ 1) 이 프로그램에 추가할 기능은 전화번호부 정보를 file 에 저장하고, 다시 읽어오는 기능 먼저 file 안에 저장할 때 어떤 형식으로 저장할지 지정해야 하는데, 이 file 안에 한줄 당 한 사람의 정보가 저장이 된다. 이름. 전화번호. 이렇게 간단한 형식으로 저장이 된다. 프로그램 실행 후 read , 파일 이름. txt 이를 통해, 파일 안의 정보를 읽어오고, add 를 통해, 사람의 정보를 추가 delete 을 통해 , 지우고 status 로 현황 파악 save로 현재 파일을 저장. 이러한 과정을 반복한다. 2) 뿐만 아니라, 저장을 할 때, 사람들의 이름이 알파벳 순서대로 저장될 수 있게 끔 해주어야 한다. ( 추가 기능 ) ​ ​ ​ 2) 전화번호부 2.0 2번째 전화.. 더보기
C 전화번호부 v1.0_2) 1) add 함수 우선, add 명령어의 경우, 아래의 그림과 같이. 2개의 인자값을 줘야 한다 사람 이름 그 사람의 전화번호 다시 2번의 scanf 를 통해 즉, buf1, buf2 를 통해, 사람 이름.과 그 사람의 전화번호.를 받는다. 사람 이름은 buf1, 전화번호를 buf2 names[ n ] = strdup( buf1 ) numbers[ n ] = strdup( buf2 ) 각 배열의 n 번째 칸에 저장한다. 왜 n 번째 칸일까 ? n 이라는 것은, 이미 저장되어있는 사람 수. 처음 n 은 0이다. 배열 index 는 0부터이니까 따라서 만약 5명의 사람이 저장되어 있다면 배열 index 상으로는 0 ~ 4 일 것이다. 그러므로 names[ 5] 를 하게되면, 그 다음 사람을 추가하는 개념이 .. 더보기