'전체'에 해당되는 글 6

  1. 2010/06/02 물리 9장, 10장 과제 (1)
  2. 2010/05/28 소수 출력, 최대최소평균 출력
  3. 2010/05/20 물리학1 8장 과제
  4. 2010/04/28 파일 복구 하는거 (2)
  5. 2010/04/27 질문하세요 (56)
  6. 2010/03/24 if문ㅋ

물리 9장, 10장 과제

크리에이티브 커먼즈 라이선스
Creative Commons License

배고파

저작자 표시 비영리 동일 조건 변경 허락
Trackback 0 Comment 1

Trackback :: http://comful.net/trackback/6 관련글 쓰기

  1. 123 2010/06/02 10:37 address edit & delete reply

    ㅇㅇ

소수 출력, 최대최소평균 출력

크리에이티브 커먼즈 라이선스
Creative Commons License


#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
 int i = 0;
 int r = 0;
 int j, k;

 cout << "[?] 소수인지 판별할 양수를 입력하시오.\n> ";
 cin >> k;

 cout << "\n[!] 결과는 다음과 같다." << endl;
 for (i = 2; i <= k; i++)
 {
  for (j = 2; j <= i; j++)
  {
   r = i % j;
   if (r == 0)
   {
    break;
   }
  }

  if (i == j)
   cout << setw(20) << i;
 }

 cout << endl;

 return 0;
}

/*
#include <iostream>

using namespace std;

int calAvg(int *);
int calMax(int *);
int calMin(int *);

void main()
{
 int score[10] = {65, 120, 13333, 12123, 42, 123130, 423, 101, 13202, 31111};\

 cout << "평균은 " << calAvg(score) << endl;
 cout << "최댓값은 " << calMax(score) << endl;
 cout << "최솟값은 " << calMin(score) << endl;
}

int calAvg(int *score)
{
 int sum = 0;
 int avg = 0;

 for (int i = 0; i < 10; i++)
  sum += score[i];

 avg = sum / 10;

 return avg;
}

int calMax(int *score)
{
 int temp = score[0];

 for (int i = 1; i < 10; i++)
 {
  if (temp < score[i])
  {
   temp = score[i];
  }
 }

 return temp;
}

int calMin(int *score)
{
 int temp = score[0];

 for (int i = 1; i < 10; i++)
 {
  if (temp > score [i])
  {
   temp = score[i];
  }
 }
 
 return temp;
}
*/

저작자 표시 비영리 동일 조건 변경 허락
Trackback 0 Comment 0

Trackback :: http://comful.net/trackback/5 관련글 쓰기

물리학1 8장 과제

크리에이티브 커먼즈 라이선스
Creative Commons License

밥ㅠㅠ
저작자 표시 비영리 동일 조건 변경 허락
Trackback 0 Comment 0

Trackback :: http://comful.net/trackback/4 관련글 쓰기

파일 복구 하는거

크리에이티브 커먼즈 라이선스
Creative Commons License

2가지

1. Restoration v3.2.13
2. Undelete

1번부터써~~

저작자 표시 비영리 동일 조건 변경 허락
Trackback 0 Comment 2

Trackback :: http://comful.net/trackback/3 관련글 쓰기

  1. BlogIcon stargt 2010/05/19 06:54 address edit & delete reply

    125.133.74.24

질문하세요

크리에이티브 커먼즈 라이선스
Creative Commons License

코멘트로
저작자 표시 비영리 동일 조건 변경 허락
Trackback 0 Comment 56

Trackback :: http://comful.net/trackback/2 관련글 쓰기

  1. BlogIcon stargt 2010/04/27 15:21 address edit & delete reply

    여기다가

    • ysh 2010/04/27 15:23 address edit & delete

      while ( ( grade = cin.get() ) != EOF )
      여기서 cin.get() 과 EOF 의 의미좀 알려줘

  2. 우리ㅟㅇㅁ누륀ㅇ무리 2010/04/27 15:25 address edit & delete reply

    야...
    \r 이거 모야??

    • BlogIcon stargt 2010/04/27 15:42 address edit & delete

      그 문장의 맨앞으로 돌아감

      cout << "babo";
      cout << "\r";
      cout << "haha";

      이렇게되면 babo나오고 커서가 다시 맨앞으로 돌아가서 출력이시작되면서 babo를 갈아엎고 haha만이 최종적으로 화면에 보여

      이거 다 쳐봐 쳐보는게 가장빠르게 외워짐

  3. ysh 2010/04/27 15:27 address edit & delete reply

    while ( ( grade = cin.get() ) != EOF )
    여기서 cin.get() 과 EOF 의 의미좀 알려줘

  4. KSI 2010/04/27 15:30 address edit & delete reply

    || |' |" 이거좀 설명해줘 ㅜ

    • BlogIcon stargt 2010/04/27 15:43 address edit & delete

      KSI // 그게뭐야? ' " 아니야?

  5. 방현진 2010/04/27 15:29 address edit & delete reply

    알고리즘이랑 수도코드를 서술하라고 하면 뭐라고 서술해야하는거???

    • BlogIcon stargt 2010/04/27 15:43 address edit & delete

      현진 // 강의노트보면 예제나와있어
      사람들이 알아보기 쉽게 문장 형식으로 알고리즘을 서술한거야

      ex)
      만약 a가 b보다 크면
      a를 출력한다
      그렇지 않으면
      b를 출력한다

    • BlogIcon stargt 2010/04/27 15:44 address edit & delete

      알고리즘은 수1에서 나온 말그대로 어떤 문제를 해결하기 위한 일련의 과정을 프로그래밍 언어로 표현한것이라고 서술하면돼

  6. 우리ㅟㅇㅁ누륀ㅇ무리 2010/04/27 15:30 address edit & delete reply

    근데 있자너
    \r 했거든..ㅋㅋ
    근데 return 0; 이거 안써도 되던데;;
    왜 그러는거야??

    • BlogIcon stargt 2010/04/27 15:44 address edit & delete

      return 0;
      는 안써줘도 비주얼스튜디오에서 프로그래밍을하면 이 툴(비주얼스튜디오)가 안써진거보고 알아서 처리해줘

  7. ysh 2010/04/27 15:31 address edit & delete reply

    while ( ( grade = cin.get() ) != EOF )
    여기서 cin.get() 과 EOF 의 의미좀 알려줘

    • BlogIcon stargt 2010/04/27 15:41 address edit & delete

      성현 //
      EOF는 End of file인데 입력된 문장의 끝을 만나면 while문을 빠져나오게 되어있어

  8. 김태균 2010/04/27 15:33 address edit & delete reply

    야 short long int char 이거 차이가 뭐임 ?

    • BlogIcon stargt 2010/04/27 15:41 address edit & delete

      태균 // short long int -> 정수
      char -> 문자열

      모두 변수를 나타내는데 정수 3개나있지 저건 각각 저장할수 있는 공간에 차이가있는거임

  9. 윤성현 2010/04/27 15:34 address edit & delete reply

    너무 간단하잖아..ㅠ
    while ( ( grade = cin.get() ) != EOF )
    여기서 cin.get() 과 EOF 의 의미좀 알려줘

    • BlogIcon stargt 2010/04/27 15:43 address edit & delete

      성현 // 파일을 쓰면 EOF가 들어오는데 예를들어서 cin으로 134515135를 입력받고엔터쳤다면 컴퓨터는 134515135\0이 입력된걸로 알아들어 \0이 eof를 나타내는 부분인데 따라서 맨앞 1부터 쭈욱 와일문 돌아가다가 \0만나면 와일문 끝남

  10. BlogIcon stargt 2010/04/27 15:37 address edit & delete reply

    우리ㅟㅇㅁ누륀ㅇ무리 // \r하고 return은 관련이 없는데 ??

  11. 방현진 2010/04/27 15:38 address edit & delete reply

    double int string 이건 알겠는데

    float 는 무슨형임??

    • BlogIcon stargt 2010/04/27 15:40 address edit & delete

      float도 실수형이고
      double도 실수야
      double이 공간이 더 큼

  12. 놋엉호 2010/04/27 15:41 address edit & delete reply

    객체지향 프로그래밍의 정의랑
    구조적 프로그래밍의 정의...........뭐야?

    • BlogIcon stargt 2010/04/27 15:46 address edit & delete

      객체 지향 프로그래밍은 클래스로 객체화를 시켜서 재사용가능하게 만들어 더욱 효율적이게 된 프로그래밍 기술이고
      구조적 프로그래밍은 goto문 없이 여러가지 제어문으로 구조화된 프로그래밍


      이거 강의 노트에 모두 나와 있는 문장이야 강의 노트봐

  13. 놋엉호 2010/04/27 15:42 address edit & delete reply

    if(조건) 다음에 중괄호 안써도 돼??? 다음줄에 쓰면

    • BlogIcon stargt 2010/04/27 15:47 address edit & delete

      한줄->써도되고안써도됨
      여러줄->써야됨

  14. MJ 2010/04/27 15:49 address edit & delete reply

    #include <iostream>
    using namespace std;

    int main()
    {
    int a= 50;
    int b= 3;
    int c= 0;
    int total= 0;

    total = a + b;

    c = static_cast<double>(total) / 4;

    cout << c << endl;
    cout << static_cast<double>(c) <<endl;

    return 0;
    }


    static_cast<>() 을 썼으니 c는 실수형이되어서 더 길게 나와야된ㄴ거 아니야 'ㅅ '??

    • BlogIcon stargt 2010/04/27 15:50 address edit & delete

      4는 실수이기도 하고 정수이기도함

      어떻게 나오는데?

    • BlogIcon stargt 2010/04/27 15:52 address edit & delete

      c = static_cast<double>(total) / 4;

      이걸보면 double형으로 잘바꿨지 근데 그걸 int로 선언된 c에 넣었지
      그다음줄에서 cout << c해주고
      c는 애초에 정수형이야 잘봐봐

  15. BlogIcon stargt 2010/04/27 15:49 address edit & delete reply

    for문은
    for(int i; i<10; i++)
    이렇게 쓰는거야

    for(선언부분; 조건부분; 증감부분)
    {
    ㅇㄻㄴㄹㄴㅇ
    }

    이렇게해서 조건 만족안할때까지 반복됨

  16. 방현진 2010/04/27 15:53 address edit & delete reply

    fixed 랑 scientific 안쓰면

    fixed 형태로 출력되지?

    • BlogIcon stargt 2010/04/27 15:54 address edit & delete

      그런 경우에는 컴파일러가 알아서 자동으로 판단해서 출력해줘
      너무 길면 싸이언티픽 짧으면 픽스드

  17. KSI 2010/04/27 15:55 address edit & delete reply

    string getline 어떻게 쓰는지좀 알려줘

    • BlogIcon stargt 2010/04/27 15:56 address edit & delete

      string은 int나 double같이 자료형의 하나임 문자열자료형임 근데 int나 double처럼 기본으로 지원되는 자료형이 아니라서 쓸라면
      #include <string.h>
      해줘야되고 그다음에

      string k;

      이런식으로 해주면 k에는 띄어쓰기를 포함한 문자열을 저장할 수 있어

      getline이 string에다가 문자열 집어넣는 함수임
      이때 getline(cin, k); 해주면 k를 입력받는 상태가돼 띄어쓰기까지 입력됨

  18. MJ 2010/04/27 15:56 address edit & delete reply

    static_cast<>()를 왜 쓰는지 모르겠다 -ㅅ - 어떻게 사용되는지도 모르겟고 알고있떤 개념이 헷갈리네
    ()안의 타입을 <>안의 타입으로 임시로 바꿔주는거 아닌가?

    • BlogIcon stargt 2010/04/27 15:57 address edit & delete

      맞아 명종이 너의 프로그램이 제대로 작동하려면

      #include <iostream>
      using namespace std;

      int main()
      {
      int a= 50;
      int b= 3;
      int total= 0;

      total = a + b;

      cout << static_cast<double>(total) / 4 << endl;

      return 0;
      }


      이럼 돼

    • MJ 2010/04/27 16:03 address edit & delete

      이해했어

      static_cast<double(total)/4에서
      double 의 영향이 (total)/4 까지 미치는구나;;;

  19. 방현진 2010/04/27 16:00 address edit & delete reply

    setprecision 을 써줄때
    #include <iomanip>
    using std::setprecision;

    쓰잖아?

    근데 그전에
    using namespace std;
    를썼다면
    using std::setprecision;
    이건안써도되는거지?

    • BlogIcon stargt 2010/04/27 16:01 address edit & delete

      직접 쳐봐 ㅋㅋ

    • BlogIcon stargt 2010/04/27 16:05 address edit & delete

      그랰

  20. 윤성현 2010/04/27 16:02 address edit & delete reply

    boolalpha 가 뭐야??

    • BlogIcon stargt 2010/04/27 16:03 address edit & delete

      boolalpha쓰면 참인 값이 1이아니라 true로 나오고
      거짓인 값이 0이 아니라 false로 나옴

  21. 방현진 2010/04/27 16:05 address edit & delete reply

    1e+001 이 무슨값임??

    • BlogIcon stargt 2010/04/27 16:08 address edit & delete

      1*10^1
      이얌

  22. 윤성현 2010/04/27 16:06 address edit & delete reply

    #include <iostream>
    using namespace std;

    int main()
    {
    cout << boolalpha << 1 << endl;
    return 0 ;
    }

    이렇게 하면 왜 true가 안나오지?

    • BlogIcon stargt 2010/04/27 16:08 address edit & delete

      그럼안되고 무슨 조건잉 ㅣㅆ어야돼

      예를들면

      cout << boolalpha << (5<=3);

      하면 false가 나와

    • BlogIcon stargt 2010/04/27 16:08 address edit & delete

      그럼안되고 무슨 조건잉 ㅣㅆ어야돼

      예를들면

      cout << boolalpha << (5<=3);

      하면 false가 나와

  23. 윤성현 2010/04/27 16:08 address edit & delete reply

    #include <iostream>
    using namespace std;

    int main()
    {
    int a = 100;
    int b = 3;
    int c;

    c = a/b;

    cout << static_cast<double>(c) << endl;
    return 0 ;
    }

    이럴때 왜 c가 인트형으로 나오는거야?? 어디가 잘못됬어?

    • BlogIcon stargt 2010/04/27 16:09 address edit & delete

      c = a/b;
      를 보면 c에 다가 100 나누기 3을 저장하는거지
      근데 이러면 c에는 33이 저장돼
      그럼 결국
      cout << static_cast<double>(c) << endl;

      cout << static_cast<double>(33) << endl;
      하고 같은소리가됨

  24. 방현진 2010/04/27 16:12 address edit & delete reply

    #include <iostream>

    #include <iomanip>
    using namespace std;

    int main()
    {

    double a;
    double b;
    a=40;
    b=3;

    cout <<fixed<<setprecision(2)<<endl <<a/b;
    }

    이거쓰면 13.33이 출력되는데

    #include <iostream>

    #include <iomanip>
    using namespace std;

    int main()
    {

    double a;
    double b;
    a=40;
    b=3;

    cout <<setprecision(2)<<endl <<a/b;
    }

    이거쓰면 13 만출력되거든???
    fixed때문인데 왜 그런거야???

    • BlogIcon stargt 2010/04/27 16:15 address edit & delete

      cout은 그냥 아무 서식(fixed나 scientifc)없이 출력해주면 정수형으로 인식해

      cout << 40/3;

      해보면 뭔말인지 알꺼야

      그래서 서식이 필요해

  25. 윤성현 2010/04/27 16:14 address edit & delete reply

    getline 사용하는 문법좀 예를 들어 알려줘...

    귀찮겠지만 부탁 ㅋ

    • BlogIcon stargt 2010/04/27 16:17 address edit & delete

      string ilikebabzip;

      getline(cin, ilikebabzip);

      cout << ilikebabzip;

      하면

      프로그램 실행할 경우 입력창이 나와 이때 "haha zz ~~~"쓰고 엔터치면

      haha zz~~~이 나옴

  26. 방현진 2010/04/27 16:26 address edit & delete reply

    연산자

    ::
    ()
    ++ --

    이런거 우선순위 외워야함??

    • BlogIcon stargt 2010/04/27 16:27 address edit & delete

      ㅇㅇ

      ()
      ++(pre)
      /*
      +-
      =
      >= > <= <
      << >>
      ++(post)

  27. 윤성현 2010/04/27 16:30 address edit & delete reply

    double a = 1.123456789;
    cout << scientific << a << endl;
    이거 출력값이 1.123457e+000 이렇게 나오는데 뭐지?

    • BlogIcon stargt 2010/04/27 16:38 address edit & delete

      scientific이니깐 그렇지 ㅋㅋ

if문ㅋ

크리에이티브 커먼즈 라이선스
Creative Commons License

if문 그냥 아예 처음 배운다고 생각하고 쓸께

일단 if문은 제어문의 한 종류니깐 제어문이 뭔지 간단하게 알아보고 들어가자.

봐도 모르겠으면 폰으로 ㄱㄱ




▣ 제어문

제어문은 말 그대로 프로그램의 흐름을 제어하는 문장 정도로 알고 있으면 돼.

우리가 막

coutcin 이런 말들을 C++ 소스에 써서 실행시키면 위에서부터 차례대로 그 문장이 화면에 쫙쫙 뜨지?

근데 제어문을 쓰면 꼭 차레대로 가지 않고 여러가지 조건에 따라서 다시 위로 갔다가 옆으로 갔다가 쭈욱 아래로 내려갈 수 있어.

말 그대로 프로그램의 흐름을 이리갔다 저리가도록 만들어주는게 제어문임.

if문은 이런 제어문들 중 하나야.

제어문은 if문 외에도 while, for, switch 등이 있는데 책에도 나와있고 아니면 나중에 수업시간에도 알려줄꺼야 아마.




▣ 영어에서의 if

if를 영어로 하면 보통 "만약에"라는 뜻으로 해석되지?

일단 예시로 우리가 알고 있는 영어라는 언어에서 쓰이는 if문을 살펴보자.

If you go, I also go
(너가 가면 나도 간다.)


위 문장을 보면 If가 들어간 절이 조건절이고 쉼표 다음에 오는 절이 주절이지?

정리하면

조건
  = 너가 가면
그러면
  = 나도 간다



이렇게 되겠지.

장난을 좀 더해서 이걸 프로그래밍에서 쓰이는 if문으로 바꾸면 다음과 같아.


if (너 == 간다) {
    나 = 간다
;
}




▣ if문의 기본

이제 프로그래밍에서 쓰이는 if문을 보자

if문의 일반적인 구조는 다음과 같아.



if 다음에 소괄호 안에 "조건식"이라고 들어가 있는거 보이지?

말 그대로 어떤 조건이 들어가는거야.

고등학교나 중학교 컴퓨터 시간에 엑셀 한 번쯤은 만져봤지?

그때 아마 IF(A>B, ~~~) 이런거 쳤던거 기억날꺼야.

그 기억 떠올리면 이해하기 더 수월해. 왜냐면 여기서도 같은 의미거든.

코드를 다음과 같이 쳤다고 해보자.



a를 10이라고 해줬고 b를 5라고 해줬지?

그리고 if문에 a > b 라는 조건을 넣어준게 보이지?

그럼 이제 조건식에 써있는대로 a가 b보다 크면 저 if문 다음에 중괄호{ } 안에 있는 cout << "a가 b보다 큼"; 이라는 게 실행되게 돼.

이제 초등학교 때 배웠던 초과, 이상, 미만, 이하, 같음, 다름 같은 개념만 알고 있으면 if문의 기본은 끝나.

이 개념들을 조건식으로 표현하면 다음과 같아.

 a가 b 초과(보다 큼)  a > b
 a가 b 이상(보다 크거나 같음)  a >= b
 a가 b 미만(보다 작음)  a < b
 a가 b 이하(보다 작거나 같음)  a <= b
 a와 b가 같음  a == b
 a와 b가 다름  a != b

이것들이 이면 중괄호{} 안에 있는 문장들이 실행되는거지.

여기까지 어때?






▣ 조건식을 만족하지 않으면?

if문에 쓴 조건식이 만족하지 않을 때에도 분명 어떤 처리를 해줘야 좋을거야. 그치?

예제를 보면서 하는게 더 쉬우니깐 예제를 보자.



아까 위에 있던 예제에 코드를 조금 추가시켰어.

else if 라는 건데 이건 if문하고 항상 붙어다니는거야.
 
그래서 따로 else if 문이라고 부르지 않아. if문에 이어져서 쓰이는 부속품 같은거야.

정확히 else if 의 기능이 뭐냐면

if 옆에 쓴 조건식이 만족하지 않을 경우 else if 에 있는 조건으로 넘어가서 그게 맞으면 그것에 해당하는 코드를 실행해주는 게 기능의 전부야.

위의 예제에서보면 일단 if문에서 a가 b보다 크면 cout << "a가 b보다 큼"; 을 실행하라고 if문에 써있지?

근데 a는 10이고 b는 15니깐 틀렸잖아.

이때 그 밑에 있는 else if 로 내려와서 또 검사를 해주게 돼.

else if 에는 a < b 이렇게 써있어서 a가 b보다 작으면 cout << "b가 a보다 큼"; 을 실행하라고 써있지?

이건 만족하니깐 결국 cout << "b가 a보다 큼"; 이 실행되는거야.

다음 예제를 보자.




예제를 보니깐 else if문이 하나 더 생겼지?

이렇게하면 먼저 첫 번째 조건 a > b가 맞나 보고 이게 틀리면

그 다음 else if에 있는 조건 a < b가 맞나 보고

이거도 아니면 마지막 else if에 있는 a == b가 맞나 확인한 다음 그 중괄호 안에 있는 문장들을 실행하게 되지.

또 예제 하나만 더 보자.



이번엔 else라는 걸 썼어.

else라는 건 뭐냐면 영어 뜻 그대로야.

위에 모든 조건을 만족하지 않을 경우 다 씹고 실행할 문장들을 else 중괄호 안에 넣어주면 되는거야.

위 예제에서 a = 10, b = 10인데 첫 번째 조건인 a > b도 안 맞고 그 다음 조건인 a < b 하고도 안 맞으니깐 마지막으로 else에 있는 몰라몰라가 출력되겠지.




▣ if문 안에 if문을 쓰자

자 이제 기다리고 기다리던 3주차 과제와 밀접한 부분에 대해 알아보자.

말 그대로 if문 안에다가 if문을 또 쓰는거야.

말이 이상하다고?

어떻게 if문이 있는데 그 안에 if문을 또 쓰냐고?

예제를 우선 보자





(일단 난 티아라 팬까진 아니야 하다보니깐 이렇게됨 ㅋ)

홀 나 지금 나가야된다 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ

빨리 쓸께!!! 이게 마지막이야

일단 Tara가 Kara보다 큰 지 비교했지?

그런데 Tara가 100이고 Kara가 50이니깐 조건이 맞어

이제 조건이 맞으니깐 그 중괄호 안으로 들어가겠지?

근데 중괄호 안에 if문이 있네?

그리고 그 If문에는 Tara가 GirlsGeneration보다 큰 지 비교하는 게 있지?

역시 그게 맞으니깐 그 안에 중괄호로 들어가서 티아라 최고가 출력돼

나 나감 빠이 ㅠㅠ
저작자 표시 동일 조건 변경 허락

'공부 > C/C++' 카테고리의 다른 글

if문ㅋ  (0) 2010/03/24
Trackback 0 Comment 0

Trackback :: http://comful.net/trackback/1 관련글 쓰기