이제, Visual studio 프로그램을 C 컴파일러 프그램을 이용해서
프로세싱에서 배운 내용을 잘 이용해서 간단한 프로그램을 몇 개 만들어 보도록 하겠습니다.
Visual Studio를 이용할 때는 solution이라는 개념과 project라는 개념이 있는데 여러 project 의 묶음을 solution이라고 합니다.
일단 수업 중에는 하난의 solution당 하나의 project 만 사용하도록 합시다.
프로세싱 언어에서는 RUN 버튼을 누르면 되었는데, 아주 조금 복잡하죠?
메뉴도 많고, 금방 적응하기를 바랍니다.
Visual Studio를 이용해서 프로그램할 수 있는 방법이 여러 방법이 있지만
우리는 "Win 32 Console 응용 프로그램"을 만듭니다. 검은색으로 그래픽을 할 수 없는 가장 단순한 형태의 프로그램인 셈입니다.
아래의 프로그램은 가장 간단한 C 프로그램 중의 하나입니다.
아래와 같은 가장 간단한 형태의 프로그램을 작성하고 실행하는 법을 배웠었네요.
printf(" ") 함수가 조금 복잡하죠?
찬찬히 다시 한번 살펴보시기 바랍니다.
이를 Processing 언어와 비교해서 설명해보죠.
/*
C의 기본 문법에는 입출력문이 없습니다. 입출력을 지원해주는 외부 프로그램(라이브러리)를 사용합니다.
그래서 아래의 printf()와 같은 출력 함수를 사용하려면 이 함수와 관련된 정보를 담고있는 header file을 추가해야합니다.
이를 위해서 아래의 문장이 필요합니다.
*/
#include <stdio.h>
/* Processing에서는 setup()이나 draw() 함수가 필요하죠. 프로그램을 실행시키면 자동으로 setup() 함수가 실행되는 것 처럼 C에서는 main() 함수가 꼭~ 필요합니다. 실행시키면 처음에 실행되는 함수가 main() 함수입니다.
*/
int main()
{
/* 문자열을 출력하는 함수입니다. 문자열은 Processing과 동일하게 큰 따옴표로 표현합니다. '\n'과 같은 문자를 escape sequence라고 합니다. 이를 위해서는 참고서적을 보세요*/
printf("Hello, World! \n");
/* return 문은 Processing과 동일합니다*/
return 0;
}
이제 몇가지 변수를 선언해보겠습니다.
이점에서는 Processing과 다른 점이 몇개 있습니다.
지원하는 data types은 Processing과 유사합니다.
다만 C에서는 사용하려는 변수를 모두 한꺼번에 프로그램의 상단에서 선언해야한다는 점입니다.
아래의 프로그램은 조금 복잡해집니다.
#include <stdio.h>
int main()
{
int a;
a = 127;
/* printf() 함수내부의 %로 시작하는 문자가 좀 복잡해보이는데요...
printf() 함수의 parameters는 " ....",와 뒤 따르는 몇개의 값으로 구성됩니다.
" .... " 내부의 %문자는 formatting letters 라고 합니다.
...
...
...
*/
printf("a 의 값은 %d 진수로 %o 입니다. \n",8, a);
printf("a 의 값은 %d 진수로 %d 입니다. \n",10, a);
printf("a 의 값은 %d 진수로 %x 입니다. \n",16, a);
return 0;
}
실습 문제
지난 시간을 통해서 이제 여러분은 Microsoft사의 Visual Studio 컴파일러를 이용해서 C 프로그래밍을 할 수 있습니다.
Visual studio 프로그램을 오늘은 프로세싱에서 배운 내용을 잘 이용해서 간단한 프로그램을 몇 개 만들어 보도록 하겠습니다.
1. printf(“ “) 함수를 잘 이용하여서 자신의 소개를 출력하시오. 최소 10줄 이상을 출력하시오. Escape sequence 문자를 잘 활용하세요. 각자의 교재에 여러 Escape sequence들을 찾아볼 수 있을 겁니다. 예를 들면 \r \n \t \’ \” \\ \a 등이 있으니 골고루 사용해보세요. 각 문자들의 의미도 알아야 합니다. 주석(// 또는 /* */)도 적절하게 기입하기 바랍니다.
2. 위의 프로그램을 컴파일하면서 발생하는 다양한 에러를 만들어보세요. 즉, 일부러 코드를 틀리게 입력해서 에러를 발생시켜보세요. 발생하는 에러 메시지를 5개 이상 파일에 저장하세요.
3. 아래와 같이 코드를 입력해보세요. 그리고 어떤 일이 발생하는지 확인해보세요. 그 이유는 뭘까요?
#include <stdio.h>
main()
{
int i;
for(i=0; 1; i+=10000)
{
printf("%d\n", i);
}
}
4. 위의 문제에서의 변수 i를 char, short int 등으로 바꾸어서 실행해보세요. 어떻게 되나요? 즉 예를 들면 아래와 같이 변경해보세요.
#include <stdio.h>
main()
{
char i;
for(i=0; 1; i++)
{
printf("%d\n", i);
// 이 문장을 printf(“%c\n”, i); 라고 하면 어떻게 될까요?
// 차이점은 뭘까요?
}
}
5. “씹어먹는 C” 책의 28쪽 관련입니다. float 형 변수를 선언하고 다양한 formatting letters를 사용하여 출력하세요. float 타입의 변수는 %f로 출력하세요.
6. 위와 동일한 문제를 변수를 double로 선언하여서 동일한 결과를 출력하세요. double 타입의 변수는 %lf로 출력하세요.
7. 삼각형의 밑변의 길이와 높이를 정수형 변수(int)로 선언하고 이를 이용하여 삼각형의 넓이를 출력하시오. 출력형태는 "밑변 ** cm, 높이 ** cm인 삼각형의 넓이는 **cm^2 입니다"와 같이하시오.
8. 25인치(inch)를 cm로 계산하여 출력하시오. 출력형식은 "25 inch는 *** cm 입니다"와 같이 하세요.