LABORATORY

검색 :
RSS 구독 : 글 / 댓글 / 트랙백 / 글+트랙백

글 검색 결과

2009/05
글 2개

교양 C언어 프로그래밍 과제..

2009/05/21 11:58, 글쓴이 Prime's

[adsense1]

교양수업인 컴퓨터 프로그래밍의 과제입니다..^^;;
마름모.. 정말 힘들었어요.. 그래서.. 마름모.. 다른거 참고하면서 했습니다.

===============
숙제 : 마름모를 찍어내야합니다.
조건 : 음수입력시, 짝수입력시, 출력하는 오류메시지를 따로 구성하세요..
===============

강평 1 : 비주얼 스튜디오 6.0 왜 자꾸 컴파일할때 죽을까요??_-;; 진짜로 죽여주길 바라는걸까요??
          이래서 리눅스에서 컴파일 하는걸 좋아합니다..
강평 2 : 만약, 한두번 에러검사후 음수를 넣어버리면 안되니까.. 제대로 된 수를 넣을때까지 계속 에러를 내뱉으라고 while문으로 돌렸습니다.. 착하죠?
강평 3 : 주석과 가독성이 중요하다고 합니다.. 그래서 주석처리도 좀 했구요..
강평 4 : 사용자 정의 함수에 (int n)처럼 넣으려니까 안되네요.. type이 먼저 지정되어 있다나.. 사실, 정수로 받은 n을 다시 정수 n으로 넣는것이잖아요?? 그래서 그냥 n을 입력했더니 잘 됩니다.^^;; 소스가 어떻건 간에. 프로그램이 제대로 돌아가기면 하면 되는것이니까요..
강평 5 : 여름방학때 C언어를 집중적으로 배워볼려구요.. 저의 꿈은, 수학계산프로그램을 만드는 겁니다. 제일 먼저 determinant를 구하는  것을 만들고 싶네요.. n by n과, n by m 두가지 경우가 있으니.. 복잡하겠군요..^^


====================================================

#include <stdio.h>
#include <math.h>
//마름모 찍기
//
//3이상의 수를 입력받아야 함.
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////

//----------------------------------------------------------------------별찍기 함수 시작.

int rhombus(int n)
{
 int i, j, tmp;
 tmp = n / 2;//높이 나누기 2값을 저장

 for(i=0; i<n; i++) //---------------------------전체 높이만큼 실행
  {
         for(j=0; j<n; j++)//-----------------각 줄마다 실행.
                {
                        if(j >= abs(tmp - i) && j < n - abs(tmp -i))
      {//--------------------------별표찍기 검산.
       //한 줄에서, 별표는, (전체줄수-1)/2의 값에 해당 줄 수를 뺀 값보다 큰곳, 전체줄수에서 (전체줄수-1)/2를 뺀 곳에 찍힌다.
       //위에서, n = 5이고, i = 0이라면, 첫번째 줄에서 별을 찍는것이며,
       //첫번째줄에서는 별이 제일 가운데 한개 찍혀야만 한다.
       //(5-1)/2 = 2이고, 별은 2보다 크거나 같거나, 5 - 2 = 3번째보다 작은곳에 찍힌다. 별은 2번째 줄에 찍히는데,
       //처음 시작을 0부터 했으므로, 별은 2 + 1인 3번째에 찍힌다.
       printf("*");
      }
                        else//--------------------------별표가 아닌곳은 전부 공백처리
      {
       printf(" ");
      }
                }
                printf("\n");//한줄이 끝나면 다음 줄로 바꾼다.
        }

        printf("\n");//모양이 이쁘게 하기 위해..

 //printf("%d \n", n); //코딩할때 숫자 보려고 쓴것..
 //printf("%d \n", tmp);//역시나 숫자 확인용..

  return 0;
}
//----------------------------------------별찍기 함수 끝
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////

//----------------------------------------------------------------------메인 함수 시작.
int main()
{
 int n;
 
 printf("마름모의 높이를 입력해 주세요. 높이는 1이상의 홀수입니다. :");
 scanf("%d", &n);//n : 입력받는 수
 
 while( n <= 1 || n % 2 == 0)//전체적으로 n이 1보다 작거나 같은경우, 혹은 n이 짝수인 모든 경우에 대해서 검산
 {
  if( n <= 1)//n이 1보다 작은경우
  {
   if( n = 0)//그중 n이 0으로 입력된 경우
   {
    printf("0이 입력될 수는 없습니다. 다시 입력해 주세요. :");
    scanf("%d", n);
   }
   if( n < 0)//n이 음수인 경우
   {
    printf("음수를 입력하셨습니다. 양수로 다시 입력해 주세요. :");
    scanf("%d", &n);
   }
   //////위의 경우의 수를 제외한 나머지. 여기서는 n = 1인경우 하나만 존재.
   printf("마름모의 높이는 1 보다 큰 양의 홀수입니다. 다시 입력해 주세요. :");
   scanf("%d", &n);
   
  }
  if( n > 1)//n이 1보다 클 경우. n이 짝수인지만 검산하면 된다.
  {
   if( n % 2 == 0)//n이 짝수인 경우를 검산.
   {
   
     printf("짝수를 입력하셨습니다. \n");
     printf("마름모의 높이는 홀수만 가능합니다. 다시 입력해 주세요. :");
     scanf("%d", &n);
   
   }
  }
 }
/////////////////////////////////////////////검산 완료
//----------------------------------------------------------------------별찍기 함수 도입.

 rhombus(n);//rhombus는 마름모라는 뜻.. 사용자 정의 함수 도입. int n으로 하지 않은 이유는, n이 정수형으로 선언되어 있음.
 //int n으로 하면 에러가 납니다.^ ^


 
 return 0;

}
       

크리에이티브 커먼즈 라이센스
Creative Commons License
2009/05/21 11:58 2009/05/21 11:58

맨 위로

디카 구매 프로젝트

2009/05/01 10:53, 글쓴이 Prime's
[adsense1]

예.. 말 그대로 디카를 한번 사 보고자.. 디카를 알아보는 중이지요..

지금 가지고 있는 디카는 캐논 powershot s5 is입니다.
(http://blog.danawa.com/prod/467473/C/842/843/1189/0)

솔찍히 말해서 전문적으로 사진 찍을것도 아니고.. 광학줌이 12배줌이면 상당한 것이라..
그리고 성능도 괜찮고요.. 1000만화소짜리 똑딱이보다는 성능은 훨 좋은것 같습니다..

그러나. 저도 사람인지라.. 간편한걸 가지고 싶더군요..

그래서 다나와에서 열심히 찾아봤습니다.

삼성 Vluu s1060이 15만원대에 1000만화소, 광학 5배줌이더군요..

무엇보다도 가격적인면에서.. 이런저런 추가부품을 따로 구매하게 되어도 20만원 안쪽이면 충분할것 같습니다..
http://blog.danawa.com/prod/645006/C/842/843/1186/

완벽한 디카는 없으니까 말이죠.. 최선의 선택을 해야할것 같습니다..

더 좋은 아이가 있다면 그 아이로 가야할듯 싶군요..

[adsense2]
크리에이티브 커먼즈 라이센스
Creative Commons License
2009/05/01 10:53 2009/05/01 10:53

맨 위로