'2019/12/26'에 해당되는 글 1건

안녕하십니까? 수성비입니다. 오늘은 C언어를 이용하여 함수의 극한을 만드는 프로그램을 만들어 보도록 하겠습니다.

 

직접 만들기 귀찮으신 분들은 아래 파일을 받으셔서 편집하시기 바랍니다.

 

함수의 극한.c
0.00MB

소스코드도 아래에 거의 다 작성할 것이니, 위의 첨부파일 없이 직접 만들어 보실 분들은 아래 과정을 따라오시면 되겠습니다.

 

C언어 컴파일러 설치하기

저는 지금 C언어로 프로그래밍하는 방법을 알려드리려고 합니다. C언어 컴파일러를 준비해 주세요.

Visual C++를 사용하셔도 되고, Dev-C++(http://orwelldevcpp.blogspot.com/)를 사용하셔도 되고, 다른 것이 있다면 그걸 쓰셔도 됩니다. 쓰고 싶은 컴파일러를 설치하세요.

(참고로 저는 Dev-C++ 씁니다.)

 

프로그램 첫화면 미리보기

첫화면을 통해 프로그램의 틀을 알고 가시는 것이 좋을 것 같아 이미지를 올려드립니다.

우리가 만들 프로그램은 함수 f(x)가 있으면 x에 수를 대입하는 방식입니다. 예를 들어, 위 이미지를 보시면 1~5번의 메뉴가 있는데 1번의 경우 f(0), f(1), f(2), f(3), ..., f(9999999999)를 출력합니다.

 

헤더파일

1

2

3

#include <stdio.h> //기본적으로 있어야 하는 헤더파일

#include <windows.h>//Windows 운영체제에서 쓸 수 있는 헤더파일. Windows CMD 명령어를 쓸 수 있도록 도와줍니다. Windows 운영체제가 아니라면 include하지 마세요.

#include <math.h>//다항함수 이외의 유리함수, 무리함수, 지수함수, 삼각함수 등 다양한 함수를 만들기 위해 include한 헤더파일입니다. 자세한 사용법은 위키피디아를 참고하세요.

cs

 

매크로 함수

1

#define f(x) 함수입력 //←←여기에 x에 대한 함수를 입력하십시오.

cs

 

함수입력 부분에 원하는 함수를 입력합니다. 예를 들면 1.0/x

주의하실 점이 있습니다! 실수 계산을 위해서는 정수도 소수 형태로 써야 합니다.

예를 들면, 3→3.0

전부 다 그래야 하는 건 아니고, 정수끼리의 연산 결과가 정수가 아닌 수일 때에 해당하는데 이런 거 따지기 귀찮으면 그냥 전부 다 소수 형태로 바꿔 쓰세요.

 

본격적인 시작

1

2

3

4

int main(void){

 

 

}

cs

 

이제 시작하겠습니다. 저 중괄호 안에다가 소스 코드를 작성할 겁니다.

 

변수 선언

1

double num=1, quest=1, k=1, x=0, y=1;

cs

 

변수를 설명해 드리겠습니다.

 

num: 반복문을 만들기 위해 필요합니다.(증감식에 사용)

quest: 메뉴 선택(1~5)을 만들기 위해 선언했습니다.

k: 3~4번 메뉴에서 사용할 변수입니다.

x: '변수'

y: '함숫값'. f(x)라고 생각하셔도 좋습니다.

 

모든 변수는 double 자료형으로 선언되었습니다.

따라서 -1.7×10^(-307) 이상 +1.7×10^307 이하의 실수만 표현할 수 있으며, 그 이외는 무한대로 표현합니다.

∞=1.#INF00

-∞=-1.#INF00

 

첫화면

1

2

3

4

5

6

7

8

9

10

11

printf("<<함수의 극한>>- 제작자: 주성우(수성비)\n\n"); //프로그램의 제작자 이름은 제 이름을 썼습니다. 여러분이 직접 타이핑하실 건데 제작자 이름에서 빠진 게 억울하시면 이름 추가하세요.^^

printf("lim\n");

printf("x→?\n\n");

printf("몇부터 몇까지 대입할지 아래 선택지 중에서 고르시오.\n");

printf("1. 0~∞\n");

printf("2. 0~-∞\n");

printf("3. k~0\n");

printf("4. -k~0\n");

printf("5. 도움말");

printf("--------------------------------\n");

scanf("%lf", &quest);

Colored by Color Scripter

cs

 

1~5번의 메뉴가 있는데 이 중 일부 기능을 제외하고 싶으시다면 빼셔도 됩니다.

메뉴 선택은 번호를 입력하는 방식입니다. 번호 입력 후 enter를 누르시면 그 번호가 quest 변수에 저장됩니다. 그 quest 변수에 따라 메뉴에 진입하여 '대입'을 시작하며 '함숫값'들을 구합니다.

 

메뉴에 진입하기 전에(화면 넘어가기)

여기서는 windows.h 헤더파일에서 제공하는 함수인 system 함수를 사용합니다.(함수 아닐수도 있음. 부정확한 점 양해 바랍니다.) windows.h 헤더파일을 안 쓰시는 경우 이 과정을 건너뛰시기 바랍니다.

1

2

system("cls");//화면 지움.

printf("<<함수의 극한>>- 제작자: 주성우(수성비)\n\n");

cs

 

1~5번에 해당하는 기능 코딩하기

지금부터 1~5번에 해당하는 기능들을 넣을 것입니다. 각 메뉴는 if문으로 구분됩니다. 만약 1번, 3번 기능만 필요하시다면 아래 소스코드에서 if(quest==1){ } 부분과 if(quest==3){ } 부분만 복사하여 가져가시면 됩니다.

가져가실 때 주의하실 점이 있습니다. 2~5번 코드는 else if로 묶여 있습니다. 만약 2, 4번 메뉴를 가져가고자 한다면 else if(quest==2){ } 앞의 else를 지워 주시기 바랍니다.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

if(quest==1){

 

printf("1. 0~∞\n\n");

 

for(num=1; num<=10000000000; num++ )

{

y=f(x);

printf("f(%f)=%f\n", x, y);

x++;

}

 

}

 

else if(quest==2){

 

printf("2. 0~-∞\n\n");

 

for(num=1; num<=10000000000; num++ )

{

y=f(x);

printf("f(%f)=%f\n", x, y);

x--;

}

 

}

 

else if(quest==3){

 

printf("3. k~0\n");

printf("k를 어떤 수로 정하시겠습니까?(단, k>0)\n");

printf("--------------------------------\n");

scanf("%lf", &k);

system("cls");//화면 지움.

printf("<<함수의 극한>>- 제작자: 주성우(수성비)\n\n");

printf("3. %lf~0\n\n", k);

x=k;

 

for(num=1; num<=k+1; num++ )

{

y=f(x);

printf("f(%f)=%f\n", x, y);

x--;

}

 

}

 

else if(quest==4){

 

printf("4. -k~0\n");

printf("k를 어떤 수로 정하시겠습니까?(단, k>0)\n");

printf("--------------------------------\n");

scanf("%lf", &k);

system("cls");//화면 지움.

printf("<<함수의 극한>>- 제작자: 주성우(수성비)\n\n");

printf("%4. %lf~0\n\n", -k);

x=-k;

 

for(num=1; num<=k+1; num++ )

{

y=f(x);

printf("f(%f)=%f\n", x, y);

x++;

}

 

}

 

else if(quest==5){

 

printf("5. 도움말\n");

printf("이 프로그램은 함수의 극한을 눈으로 쉽게 확인하기 위해 제작된 프로그램입니다.\n");

printf("프로그램을 사용하기 전 소스 편집을 통해 극한을 구할 함수를 입력하여 주시기 바랍니다.\n\n");

printf("이 프로그램은 double 자료형을 사용하므로 -1.7×10^(-307) 이상 +1.7×10^307 이하의 실수만 표현할 수 있으며, 그 이외는 무한대로 표현합니다.\n");

printf("∞=1.#INF00\n");

printf("-∞=-1.#INF00\n\n");

printf("자세한 설명이 필요하시면 아래 주소로 접속하시기 바랍니다.\n");

printf("http://toopyo.tistory.com/entry/limitfx\n");

 

}

Colored by Color Scripter

cs

 

 

메뉴 번호를 잘못 입력했을 경우 뜨는 오류 메시지

1

2

3

else{

printf("잘못된 번호를 입력하셨습니다. 프로그램을 재실행 해 주시기 바랍니다.\n");

}

Colored by Color Scripter

cs

 

프로그램 종료

1

2

3

printf("\n\n");

system("pause");//계속하려면 아무 키나 누르십시오 . . .

return 0;

Colored by Color Scripter

cs

 

system("cls");와 마찬가지로 system("pause");windows.h 헤더파일이 있어야 작동합니다. windows.h 헤더파일이 없는 경우 쓰지 마시기 바랍니다.

 

이렇게 프로그램이 완성되었습니다. 원하시는 대로 프로그램이 나왔나요? 잘 안 된다면 글 초반부에 올려드린 첨부파일과 비교해 보세요.

코드에 오류가 있는 경우 댓글로 제보 부탁드립니다. 제작자(본인)가 바쁜 관계로 빠른 수정이 어려울 수 있습니다. 양해 부탁드립니다.

감사합니다. 다음에 만나요!

 

블로그 이미지

수성비

컴퓨터(PC, 스마트폰 등)를 주제로 하는 누리사랑방인 수성비 전자방입니다.

댓글을 달아 주세요