^^ Computer Programming 2 dmpr.cnu.ac.kr/~daygax
실습 명령어 줄 실행인자란? Visual Studio 6.0 에서 Compile->Build 후에 Debug 폴더를 보면, .exe 의 실행파일이 생성됩니다. 이 실행파일을 커맨드 모드로 실행시킵니다. (윈도우 시작키 -> 실행 -> cmd 입력) 해당 Debug 폴더로 이동하여, 실행파일의 이름을 입력하여 프로그램을 실행시킵니다.
실습
실습 명령어 줄 실행인자란? 커맨드 상에서 프로그램을 실행시킬 때, 실행 파일 이름 다음에 들어가게 되는 인자 값들. 여러 개를 넣어도 무방함. 띄어쓰기로 구분하여 실행인자의 개수를 체크함 엔터를 치면 프로그램 실행
실습 메인 함수의 형태 int main(int argc, char * argv[]) { …… }
실습
실습 Sample Code int main(int argc, char* argv[]) { int i; printf(“입력받은 인자의 수 : %d\n”, argc); for ( i=0 ; i<argc ; i++ ) { printf(“[%d] %s\n”, i, argv[i]); } return 0;
실습
실습 문제 실습 문제 중, 1번과 2번은 오늘 실습 시간에 구현하여 검사를 받습니다. 실습문제 3번은 다음주까지 과제를 하여, 메일로 소스 코드를 보냅니다. e-mail : daygax@gmail.com 9
실습 문제 과제 제출 방법 09번 과제 미제출하신 분은, 이번 주 중에 보내주세요~ E-mail을 통해서 제출 : daygax@gmail.com Subject : CP2_학번_이름_10 File : code source file (xxxx.c) 기한 : 다음주 목요일(11월 26일)까지. 09번 과제 미제출하신 분은, 이번 주 중에 보내주세요~ 10
실습 문제 - 1 실습 문제 – 1 명령어 줄 전달인자 문제 (교재 15장 6절 관련)
실습 문제 - 1 3개의 문자열을 입력 받아 출력하고, 그 문자열을 대문자로 변환하는 프로그램 작성. 대문자로 변환하는 함수는 문자열 라이브러리에 있는 함수를 사용. 문자열이 3개 미만이거나 3개를 초과하면 예외처리. 에러 메시지 출력 후, 프로그램 종료.
실습 문제 - 1 명령어 줄 실행인자로 임의의 소문자열 세 개를 전달해서, 다음을 수행하는 프로그램을 작성하고 실행결과를 보이시오. 실행인자로 전달받은 세 개의 소문자열을 화면에 출력하시오. 세 개의 소문자열을 각각 대문자열로 바꾼 후에 출력하시오. 대문자열로의 변환은 문자열 라이브러리의 함수를 이용하시오. ( char * strupr(char*) )
실습 문제 - 1
실습 문제 - 2 실습 문제 – 2 구조체 초기화 및 입출력 문제 (교재 16장 1절 ~ 3절 관련)
실습 문제 - 2 구조체를 정의하고, 구조체 자료형 변수들을 선언한 후, 초기화 및 입출력에 관련된 프로그램 문제. 다음과 같은 수업정보를 담을 수 있는 구조체를 정의하시오. struct classes { char title[40]; // class name int point; // class point int numOfStudent; // class student info. }
실습 문제 - 2 구조체 자료형 변수를 3개 선언. 변수의 이름은 마음대로 정의하여도 됩니다. 예) struct classes class1, class2, class3 첫 번째 변수에는 초기화로 값을 저장합니다. 저장하는 값은 현재 과목 정보입니다. 예) struct classes class1 = {“programming2”, 3, 40};
실습 문제 - 2 두 번째 구조체 변수의 값은, 사용자로부터 입력을 받아서 저장합니다. 예 ) struct classes class2; printf(“input class title : “); gets(class2.title); printf(“input class point : “); scanf(“%d”, &class2.point); printf(“input class number of student : “); scanf(“%d”, &class2.numOfStudent);
실습 문제 - 2 세 번째 구조체 변수의 값은, 첫 번째 구조체 변수의 값을 복사합니다. 복사한 값 중, 학생수에 해당하는 구성요소의 값을 두 번째 변수의 값으로 다시 복사합니다. 예) struct classes class3; class3 = class1; class3.numOfStudent = class2.numOfStudent;
실습 문제 - 2 값이 저장되어 있는 구조체 변수 3개의 값들을, 각각 출력합니다. 구조체의 title, point, numOfStudent의 값들을 printf() 함수를 이용하여 출력합니다.
실습 문제 - 2
실습 문제 – 3 (과제) 실습 문제 – 3 구조체 포인터와 배열 문제 (교재 16장 4절 관련)
실습 문제 – 3 (과제) 실습 문제 2번의 세 개의 구조체 변수를 구조체 배열로 전환하여 동일한 프로그램 작성. 실습 문제 2번의 세 개의 구조체 변수를 구조체 배열로 전환하여 동일한 프로그램 작성. 단, 구조체 선언은 typedef 를 이용하여 간략하게 선언. 예) typedef struct classes CLASSES; CLASSES myclass[3];
실습 문제 – 3 (과제) 구조체 배열의 0번 인덱스에는, 해당 과목의 정보를 입력. 예) 초기화 과정 CLASSES myclass[3]={{“Programming 2”,3,40}}; 1번과 2번 인덱스의 구조체 변수는 초기화를 하지 않음
실습 문제 – 3 (과제) 1번 인덱스의 구조체 변수의 값은, 사용자로부터 입력 받아서 저장. (실습 문제 2와 동일) 2번 인덱스의 구조체 변수의 값은, 0번 구조체의 내용을 복사하여 저장하고, 학생수인 numOfStudent는 1번 인덱스 구조체의 값을 복사. (실습 문제 2와 동일)
실습 문제 – 3 (과제) LOOP문 (for, while, …)을 이용하여 구조체 배열의 값을 화면에 출력. 2번 문제와 동일하게 3개의 구조체 내용을 화면에 출력합니다. 그리고, 2번 인덱스의 구조체(myclass[2])의 내용은 구조체 포인터 변수를 이용하여 다시 한번 출력해줍니다.
실습 문제 – 3 (과제) 구조체 포인터 구조체 자료형 포인터 변수를 하나 생성. 예) CLASSES *ptr; 배열 구조체 중 2번 인덱스의 구조체 변수의 주소값을, 포인터 변수에 대입. 예) ptr = &myclass[2]; 포인터를 이용하여 화면에 출력. printf(“TITLE : %s”, ptr->title);
실습 문제 – 3 (과제)
실습 문제 과제 제출 방법 09번 과제 미제출하신 분은, 이번 주 중에 보내주세요~ E-mail을 통해서 제출 : daygax@gmail.com 메일이 반송되는 경우 : daygax@naver.com Subject : CP2_학번_이름_10 File : code source file (xxxx.c) 기한 : 다음주 목요일(11월 26일)까지. 09번 과제 미제출하신 분은, 이번 주 중에 보내주세요~ 29
실습 시작~!