= 곽길문 = == 복습과제 == 1. 컴파일(Compile), 빌드(Build), 링크(Linking)에 대해 책에서 찾아보고 써 주세요. -컴파일 : 프로그래밍언어로 코딩한 것을 컴퓨터가 이해할 수 있는 기계어 코드로 변환하는 작업 빌드: 컴파일과 링크를 합쳐 빌드라 한다. 빌드를 해야 컴퓨터가 실행할수 있는 형태의 기계 링크: 프로그램마다의 라이브러리를 내가 만든 것과 연결해 주는 작업 2.상수형, 변수형에 관해서 쓰고, 그 예를 2개만 들어주세요. -상수형 :상수는 변환 할 수 없는 고유의 수, 프로그램을 개발할 때 변경되어 발생 할 수 있는 버그등의 위험을 줄이기 위해 사용(#define,const) 변수형 (변수의 데이터 타입을 선언해 준다.int, float) 3.char형에 관해 써 주세요. ASCII코드를 통해 나타낸다는 것이 무엇을 의미하는지도 써 주세요. -char형(문자를 저장할 때 써주는 데이터 타입) ascii코드는 표준으로 선택해서 문자를 표현함. 알파벳과 일부 특수문자를 포함하여 128개의 문자로 이루어짐 4.#include, 전처리과정이 무엇인지 쓰고, include의 예를 들어주세요. -전처리 과정이랑 컴퓨터가 코딩한 파일을 컴파일 하기 전에 여러 텍스트를 바꾸고 고치는 기능. include 5.#define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요. - 확장성이 큰 것으로 , 긴 프로그램을 설계할 때 #define으로 정의된 것을 사용할수 있어서 편리하다. 6.++, --, &&, ||, +,-, !=, ==, = 이 무엇을 의미하는지 간단간단히 써 주세요. {{{ -++:하나씩 증가시키는 것 --:하나씩 감소 &&:and ||:or +: 더하는 함수 -: 줄이는 함수 !=:not ==:같다 =:오른쪽의 값을 왼쪽에 할당 }}} 7.if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요. ⁃ #include int main(void) { int num1; int num2; printf(“relationships they satisfy: ”); scanf(“%d%d”,&num1,&num2); if(num1==num2){ printf(“%d is equal to %d\n”, num1,num2); }else if(num1 != num2){ printf(“%d is not equal to %d\n”, num1, num2); }else if(num1 < num2){ printf(“%d is less than %d\n”, num1, num2); }else if(num1> num2){ printf(“%d is greater than %d\n”, num1, num2); } return 0; } 8.switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C) 성적 계산기의 경우 90점이상 A, 80점이상 B와 같은 구조입니다. 100점만점을 10으로 나누면 switch문으로 풀 수 있습니다. #include int main() { int grade; printf(“Enter the grades.\n”); scanf(“%d”,&grade); switch(grade/10){ case 10: case 9: printf(“A”); break; case 8: printf(“B”); break; case 7: printf(“C”); break; case 6: printf(“D”); break; case 5: case 4: case 3: case 2: case 1: printf(“F”); break; } } 9.while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다. #include int main(){ int grade; int counter=1; while(counter <= 3){ printf(“Enter grade:”); scanf(“%d”, &grade); counter= counter +1; } } 10.위 프로그램을 do-while문으로 바꿔 '똑같은'프로그램이 되도록 해보세요. #include int main(){ int counter =1; int grade; do { printf(“Enter grade:”); scanf(“%d”,&grade); counter = counter +1; }while(counter<=3); } 11.위 프로그램을 for문으로 바꿔 풀어보세요. #include int main(){ int counter =1; int grade; for(counter<=3){ printf(“Enter grade:”); scanf(“%d”,&grade); counter = counter +1; } } 12.2중 for문을 이용하여 다음 모양의 별찍기를 작성해주세요. 파일 첨부 == 예습과제 == 예습을 위한 과제 1.함수가 무엇인지 쓰고, 예제 프로그램을 하나 만들어 주세요. - 함수란 프로그램내에서 동일한 명령문들의 반복되는 부분을 모아놓은 집합체이다. 피연산자나 식과 같이, 함수는 데이터형과 값을 갖고 있다. float addfun (para11,para2) // float 데이터형으로 정의된 함수 addfun 선언 float para1,para2; // 데이터형 선언 { float a; // 함수 내부의 지역 변수 a 선언 a= para1 + para2; return a; //반환값 선언 } 2.return이 무엇인지 써 주세요. - return은 현재있는 함수에서 빠져나와 그 함수를 호출했던 곳으로 되돌아 가라는 뜻, 되돌아 가면서 그 함수를 호출했던 곳에 어떤 값을 반환하는 것, return 0;은 0이라는 값을 반환하라는 의미 3.함수형이 무엇인지 쓰고, void타입은 왜 return하지 않는지 써주세요. - 함수형 프로그래밍은 프로그래밍의 주된 구조가 함수 호출에 기반을 둔 프로그래밍을 말한다. 기존 명령형 언어로 작성한 프로그램보다 간결하고 더 추상적이며 이해하기 쉽고 형식적인 분석과 조작이 용이하다는 특징이 있다. void는 값을 반한하지 않는다는 뜻이므로 return하지 않는다. 4.재귀함수가 무엇인지 써 주세요. - 함수내에서 자기자신을 다시 호출하는 함수 5.배열이 무엇인지 쓰고, 왜 배열이란 개념이 나타났는지(왜 쓰는지) 써 주세요. -동일한 데이터형을 가진 자료구조로, 변수이름을 각각 다른 이름으로 사용해야 하는 번거러움을 줄이기 위해 사용한다. 6.배열을 사용한 간단한 프로그램을 하나 만들어보세요. #include int main() { int x[3]; sum =0; x[0] = 10; x[1] = 9; x[2] = 8; for (i=0;i<3;i++) sum+= x[i]; printf("%d\n",sum); } = 한송이 = 1.컴파일(Compile), 빌드(Build), 링크(Linking)에 대해 책에서 찾아보고 써 주세요. 컴파일 : 작성된 *.c파일을 기계어로 변환하는 과정 빌드 : 실행파일을 만들어 내는 것 링크 : 기계어파일을 기타 라이브러리 파일과 묶어서 실행파일을 만드는 과정 2.상수형, 변수형에 관해서 쓰고, 그 예를 2개만 들어주세요. 상수형 : int, double.... ??? 3.char형에 관해 써 주세요. ASCII코드를 통해 나타낸다는 것이 무엇을 의미하는지도 써 주세요. 문자형, 넓은 범위에서 보면 일종의 정수형으로 사용될수 있다. 4.#include, 전처리과정이 무엇인지 쓰고, include의 예를 들어주세요. #include : 전처리 지시자,같은 것을 찾아 지시자가 놓인 위치에 그 파일의 내용을 포함 시키도록 지시한다. 표준 입출력 라이브러리 함수를 사용하기 위해서 쓴다. 전처리 과정 : 컴파일러가 프로그램을 처리하기전에 특별한 일을 수행해주는 과정 5.#define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요. #define : 특정 대상을 정의함으로써 전처리기가 이를 특별하게 다루도록 하고싶을때 사용한다. 이렇게 정의된 특정 대상을 매크로 라고 한다. 매크로는 전처리기 과정에서 정의된 내용으로 확장된다. #include #define MASSAGE " have a nice day!" int main(void) { puts(MASSAGE); return 0; } 6.++, --, &&, ||, +,-, !=, ==, = 이 무엇을 의미하는지 간단간단히 써 주세요. {{{ ++ : 증가연산자 예)a++는 a=a+1과 같다 -- : 감소연산자 예)a--는 a=a-1과 같다 && : 논리 AND 예) a&&b : a,b모두 참이면 1이고 그렇지 않으면 0이다 || : 논리 OR 예)a||b : a,b중 적어도 한개가 참이면 1이고 그렇지 않으면 0이다 + : 더하기 - : 빼기 != : 같지 않다 == : 같다 = : 할당 }}} 7.if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요. #include int main(void) { int a=10; if(a>0) { printf("a는 0보다 크다"); } else if(a<0) { printf("a는 0보다 작다"); } else if(a==0) { printf("a는 0이다"); } return 0; } 8.switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C) #include int main(void) { int a; printf("1~4중 숫자를 선택하세요"); scanf("%d",&a); switch(a) { case 1: printf("1을 선택했다."); break; case 2: printf("2을 선택했다."); break; case 3: printf("3을 선택했다."); break; case 4: printf("4을 선택했다."); break; default : printf("잘못된 입력"); } return 0; } 9.while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다. #include int main(void) { int a=1; while(a<5) { a++; printf("%d\n",a); } return 0; } 10.위 프로그램을 do-while문으로 바꿔 '똑같은'프로그램이 되도록 해보세요. #include int main(void) { int a=1; do{ a++; printf("%d\n",a); } while(a<5); return 0; } 11.위 프로그램을 for문으로 바꿔 풀어보세요. #include int main(void) { int a; for(a=2;a<5;a++) { printf("%d\n",a); } return 0; } 12.2중 for문을 이용하여 다음 모양의 별찍기를 작성해주세요. #include int main (void) { int i,j; printf("1\n") ; for(i=1;i<=5;i++) { for(j=1;j<=i;j++) { printf(" "); } for(j=5;j>=i;j--) { printf("*"); } printf("\n"); } printf("2\n"); for(i=1;i<=5;i++) { for(j=1;j<=i;j++) { printf("*"); } for(j=5;j>=i;j--) { printf(" "); } printf("\n"); } return 0; } 삼각형 #include int main (void) { int i,j; for(i=1;i<=5;i++) { for(j=0;j=i;j--) { printf("*"); } for(j=4;j>=i;j--) { printf("*"); } printf("\n"); } return 0; } = 도상희 = 1. 컴파일(Compile), 빌드(Build), 링크(Linking)에 대해 책에서 찾아보고 써 주세요. 컴파일(Compile) : 컴퓨터가 이해할 수 있도록 기계어로 변환하는 과정 빌드(Build) : 소스파일이 다음 단계를 거쳐 실행파일이 생성되는 과정. 링크(Linking) : 컴파일된 코드를 라이브러리 파일과 연결시켜 주는 단계. 2. 상수형, 변수형에 관해서 쓰고, 그 예를 2개만 들어주세요. 변수형 : 값을 저장하기 위한 공간, 데이터를 저장할 수 있는 메모리 공간에 붙여진 이름을 의미 - int a; (int형 변수 a 선언), float b(실수형 변수 b 선언) 상수형 : 변할 수 없는 고유의 수 - const int max=100; (int형 상수 max를 100으로 선언), #define AA 35(형태를 지정하지 않는 상수명 AA에 정수형 값을 대입) 3. char형에 관해 써 주세요. ASCII코드를 통해 나타낸다는 것이 무엇을 의미하는지도 써 주세요. Char 1바이트 크기의 정수형 변수 ASSCII코드를 통해 나타내는 것 : 숫자를 이용한 문자의 표현. 4. #include, 전처리과정이 무엇인지 쓰고, include의 예를 들어주세요. 표준 라이브러리 함수를 사용하기 위해서 해당 함수의 선언을 포함하는 헤더파일을 포함해야한다. #include 5. #define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요. 매크로 상수를 정의할 때 사용. 01.c 첨부! 6. ++, --, &&, ||, +,-, !=, ==, = 이 무엇을 의미하는지 간단간단히 써 주세요. {{{ ++ : 증가 연산자 -- : 감소 연산자 && : 논리 연산자; 피연산자가 모두 참이면 true를 반환(and의 의미) || : 논리 연산자 ;피연산 중 하나라도 참이면 ture를 반환(or의 의미) + : 덧셈 연산자 / 단항 연산자(피 연산자 하나) 기능도 지님 - : 뺄셈 연산자 / “ != : 같지 않은지 비교하는 관계 연산자 == : 같은지 비교하는 관계 연산자 = : 대입 연산자 }}} 7. if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요. 02.c 첨부! 8. switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C) -성적 계산기의 경우 90점이상 A, 80점이상 B와 같은 구조입니다. 100점만점을 10으로 나누면 switch문으로 풀 수 있습니다. 03.c 첨부! 9. while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다. 04.c 첨부! 10. 위 프로그램을 do-while문으로 바꿔 '똑같은'프로그램이 되도록 해보세요. 05.c 첨부! 11. 위 프로그램을 for문으로 바꿔 풀어보세요. 06.c 첨부! 12. 2중 for문을 이용하여 다음 모양의 별찍기를 작성해주세요. 07.c 첨부! 1. 형변환에 관하여 자동 형 변환 1)대입 연산시 발생 : 오른쪽에 존재하는 데이터가 왼쪽에 존재하는 데이터의 자료형으로 자동 형 변환된다. (값의 표현 범위가 넓은 데이터로의 형 변환은 아무런 문제가 발생하지 않는다.) 2)산술 연산 과정에서의 형 변환 : 산술 연산 과정에서 일어나는 형 변환은 데이터의 손실이 최소화되는 방향으로 진행된다. 강제 형 변환(명시적 형 변환) 변수 앞에 괄호를 열고 자료형의 이름을 넣어준다. 2. 삼항 연산자에 관하여 조건 ? 참 : 거짓 조건이 참이면 참문장 수행, 거짓이면 거짓 문장 수행 3. 혜림이누나, 상희누나 과제를 for문을 각각 3개, 4개만 써서 해보세요.(hint 2*n-1) 08.c첨부 – 힌트(2*n-1)이용해서 다이아몬드 윗부분은 찍었는데 밑에는 못하겠네영! 1. 함수가 무엇인지 쓰고, 예제 프로그램을 하나 만들어 주세요. 필요한 기능을 독립적으로 구현한 코드 09.c 첨부! 2. return이 무엇인지 써 주세요. 현재의 함수에서 빠져나가는 것. 3. 함수형이 무엇인지 쓰고, void타입은 왜 return하지 않는지 써주세요. Void는 반환할 값이 없다고 선언한 것이므로 return 하지 않아도 된다. 4. 재귀함수가 무엇인지 써 주세요. 자신이 스스로를 호출하는 함수 5. 배열이 무엇인지 쓰고, 왜 배열이란 개념이 나타났는지(왜 쓰는지) 써 주세요. 사용자가 원하는 크기 만큼 변수를 선언할 수 있도록 해주는 변수 구조화 방법. 다수의 데이터를 저장하고 처리할 때 유용하게 사용되기 때문에 6. 배열을 사용한 간단한 프로그램을 하나 만들어보세요. 10.c 첨부! 1. 재귀함수를 이용한 프로그램을 하나 짜 보세요.(eg.1~n까지의 합, n!구하기등) 11.c 첨부! 2. 배열에 숫자를 넣고, 그 배열에 특정 값이 있는지 찾는 프로그램(Search)을 작성해 주세요. = 황혜림 = 1) 1.컴파일(Compile), 빌드(Build), 링크(Linking)에 대해 책에서 찾아보고 써 주세요. 컴파일(Compile) - 고급언어로 작성된 프로그램을 기계어로 번역하는 것 빌드(Build) - 컴파일+링크 링크(Linking) - 라이브러리나 다른 파일에 있는 함수들과 연결시키는 과정 2.상수형, 변수형에 관해서 쓰고, 그 예를 2개만 들어주세요. - 상수는 프로그램이 실행되는 동안 값이 변하지 않는 데이터이고, 변수는 데이터를 저장하는 데 사용되는 기억 장소의 이름이다. 3.char형에 관해 써 주세요. ASCII코드를 통해 나타낸다는 것이 무엇을 의미하는지도 써 주세요. - ASCII문자코드는 영문자, 숫자, 특수문자 등을 포함한 128개의 문자를 7비트를 사용하여 표현한다. 8진수로 표현된 가로와 16진수로 표현된 세로를 모으면 해당 문자의 코드가 된다. ‘A’는 10진수 65에 대응되고 ‘a’는 97에 대응된다. 4.#include, 전처리과정이 무엇인지 쓰고, include의 예를 들어주세요. - 컴파일러가 프로그램을 번역하기 전에 소스프로그램을 처리하는 과정 #include 5.#define이 무엇을 의미하는지 쓰고, 이것을 사용한 '간단한' 프로그램을 하나 작성해보세요. - 프로그램에서 여러 번 사용되는 상수 값을 매크로 상수로 정의해서 사용하는 것 6.++, --, &&, ||, +,-, !=, ==, = 이 무엇을 의미하는지 간단간단히 써 주세요. {{{ ++ : 값을 1 증가 -- : 값을 1 감소 && : AND 연산자 || : OR 연산자 + : 값을 더해준다. - : 값을 빼준다. != : 같지 않으면 (비교) == : 같으면 (비교) = : 오른쪽의 값을 왼쪽에 넣어준다. }}} 7.if, else, else if문을 이용한 프로그램을 하나 작성해주세요. else나 else if를 3번이상 써 주세요. 8.switch-case문을 이용한 간단한 프로그램을 하나 짜 보세요.(eg. Grade계산기 A,B,C) 성적 계산기의 경우 90점이상 A, 80점이상 B와 같은 구조입니다. 100점만점을 10으로 나누면 switch문으로 풀 수 있습니다. 9.while문을 이용한 프로그램을 하나 작성해 주세요. C수업시간이나 과제에 나온 것을 새로 짜보아도 좋습니다. 10.위 프로그램을 do-while문으로 바꿔 '똑같은'프로그램이 되도록 해보세요. 11.위 프로그램을 for문으로 바꿔 풀어보세요. 12.2중 for문을 이용하여 다음 모양의 별찍기를 작성해주세요 1. ***** **** *** ** * 2. * ** *** **** ***** 13.혜림이누나, 상희누나만 푸는 과제: 다음 별찍기를 만들어주세요. n으로 일반화하여 입력받은 만큼 별찍기를 하도록 만들면 더욱 좋습니다. 1. ******* ***** *** * 2. * *** ***** ******* ***** *** * 2) 위 과제가 너무 쉬웠던 분들을 위한 추가 과제 1.형변환에 관하여 - 묵시적 형 변환은 한 자료형에서 이 자료형의 값을 저장하는 데 필요한 기억 장소의 크기가 같거나 큰 다른 자료형으로 자동적으로 변환되는 것이고, 명시적 형 변환은 임시적으로 다른 형으로 변환하는 것 2.삼항 연산자에 관하여 ? : 는 C언어의 유일한 삼항연산자이다. 피연산자가 세개가 필요한 연산자이다. 3.혜림이누나, 상희누나 과제를 for문을 각각 3개, 4개만 써서 해보세요.(hint 2*n-1) - 두 번째 별찍기 for문 4개만 사용해서 하는 것은 못했습니다. 3) 예습을 위한 과제 1.함수가 무엇인지 쓰고, 예제 프로그램을 하나 만들어 주세요. - 작은 프로그램, 서브프로그램 2.return이 무엇인지 써 주세요. - 함수의 결과 값으로 돌려주는 명령어 3.함수형이 무엇인지 쓰고, void타입은 왜 return하지 않는지 써주세요. - void타입은 리턴 할 값이 없을 때 사용하기 때문이다. 4.재귀함수가 무엇인지 써 주세요. - 함수 본체를 수행하는 도중에 자신을 다시 호출하는 함수 5.배열이 무엇인지 쓰고, 왜 배열이란 개념이 나타났는지(왜 쓰는지) 써 주세요. - 배열이란 같은 자료형의 변수 여러 개를 하나로 묶을 것을 말한다. 프로그램의 길이를 줄이기 위해서(?) 6.배열을 사용한 간단한 프로그램을 하나 만들어보세요. 4) 위 과제가 너무 쉬웠던 분들을 위한 추가 과제 1.재귀함수를 이용한 프로그램을 하나 짜 보세요.(eg.1~n까지의 합, n!구하기등) 2.배열에 숫자를 넣고, 그 배열에 특정 값이 있는지 찾는 프로그램(Search)을 작성해 주세요.