SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
파스칼 삼각형




       20083430 강승우
       20093539 황준호
       20093468 김현호
       20093474 박구남
       20113281 김정무
   1
목차

1.일정(3)



2.역할(4)



3.회의 내용(5~8)
   ① 3. 08 목요일
   ② 3. 13 화요일
   ③ 3. 15 목요일
   ④ 3. 20 화요일




4.소스(9~11)
   ① 3. 13 화요일
   ② 3. 15 목요일
   ③ 3. 20 화요일




5.결론(12)
   ① 결론
   ② 보완점


                 2
1.일정


3.08 ~ 3.13                  3.13 ~ 3.15
주요내용 : 각자 역할 분담, 휴대폰         주요내용 : 첫 번째 소스의 분석 및
번호 교환                        문제점, 해결방안 토의




3.15 ~ 3.20                  3.20
주요내용 : 두 번째 소스의 분석 및         주요내용 : 소스의 분석 및 문제점
문제점 해결방안 토의, 시간 공간복          해결방안 토의, 시간 공간 복잡도
잡도 토의                        계산.




               3.22
               주요내용 : 파스칼 삼각형 프로그램
               최종 발표.




                        3
2. 역할


 ① 강승우 황준호 : 시간 복잡도 공간복잡도.




 ② 김현호 박구남 : 프로그램 작성.




 ③ 김정무 : 보고서 작성




                  4
3. 회의 내용
 ①   3. 08 목요일   : 수강정정기간이 끝날 무렵으로 실직적인 프로젝트 시작일로 조원이
     확실해 지면서 각자의 역할을 분담하게 되었다. 역할 분담에 대한 회의에서는 조원 모두
     프로그래밍에 대해 능숙하지 않아 각자 공부를 하면서 서로에게 도움을 주자는 내용으로
     토의를 진행하였다. 그 다음으로 파스칼 삼각형 프로그램 작성에 대해 토의를 하였는데,
     기본적으로 파스칼 삼각형은 행과 열로 구분되어 있기 때문에 배열을 사용하되 이차원
     배열을 사용하여 각 행과 열에 대해 조건을 붙여 만들자는 의견이 나왔다.
     또한 프로젝트 모임에 관해서는 첫 프로젝트는 굳이 따로 만나지 않고 수업시간에 모여
     회의를 진행해도 될 것이라는 조언을 듣고 따로 정하지 않았다. 하지만 다음 프로젝트부
     터는 수업 시간 외에 만나 회의를 해야 할 것이라는 의견이 지배적이었다. 마지막으로
     각자 맡은 역할을 충실히 하고 조원끼리 핸드폰 번호를 교환하여 연락이 되도록 하고 회
     의를 끝내었다.




                           5
②   3. 13 화요일   : 첫 번째 프로그램이 작성되어 그 부분에 대해서 토의를 진행하였다.
                                                 첫 번째 문제점으로
                                                 는 기본적으로 제시
                                                 되어 있는 파스칼 삼
                                                 각형 그림의 삼각형
                                                 모양이 아니라 직각
                                                 삼각형의 모양이라는
                                                 것. 두 번째 문제는
                                                 왼쪽의 사진에 나와
                                                 있는 것처럼 파스칼
                                                 삼각형의 숫자 다음
                                                 의 빈 공간에는 모두
                                                 0이 출력된다는 점이
                                                 었다. 왼쪽의 사진에
    서는 배열을 [10][10]으로 잡아 출력한 사진이나 실제 [1000][1000]의 값으로 출력을 하면
    0이 무수히 많이 나오는 문제가 발생하였다. 마지막으로 제시된 문제점으로는 배열의 크
    기가 너무 크다는 것이다. [1000][1000] = 1,000,000의 크기를 차지하면서 출력형태가 int
    형이기 때문에 총4,000,000의 크기를 차지하게 되는데 이것을 줄일 수 있는 방법을 찾아
    야 했다.
    이번에 제기된 문제점들의 해결방안으로는 두 번째 문제였던 나머지 부분에 0이 출력된
    다는 점에서는 파스칼 삼각형을 출력한 후 그 다음 값이 나오지 않게 if문에 조건을 걸어
    break를 걸어보자는 의견이 나왔다.
    그리고 시간복잡도와 공간복잡도에 대한 토의는 개념들에 대해 설명을 들었으나 해당 개
    념에 대한 설명은 인터넷 상에 잘 나와있으나 제시된 예들은 간단한 프로그램에 대한 것
    들이었고 조금만 복잡해지는 경우에는 계산하기가 매우 어려워졌다. 게다가 아직 프로그
    램이 시작 단계이기 때문에 프로그램이 많이 변할 수도 있다는 점을 감안하여 시간복잡
    도와 공간복잡도는 계산하지 않았다.




                              6
③   3. 15 목요일   : 먼저 지난 회의에서 제기되었던 문제점들에 대해 회의를 진행했다. 첫
    번째 문제이던 직각삼각형의 출력형태에 대한 문제는 굳이 정삼각형의 형태로 출력을 하
    지 않아도 된다는 정보를 얻어 지금 현재 출력되는 형태는 그대로 두라고 하였다. 두 번




    째 문제인 빈 공간에 0이 출력되는 문제는 왼쪽의 사진처럼 빈칸으로 출력되게 하였으며
    그에 따라 출력시간도 줄어들게 되었다. 하지만 마지막 세 번째 문제인 4,000,000에 달하
    는 이차원 배열의 크기를 줄이는 방향은 찾지 못했다. 그리고 사진에 나와있는 것처럼 2
    행부터는 0이 출력되지 않지만 1행 2열에 0이 하나 출력되는 문제가 발생하게 되었다.
    그 부분에 대해서 좀더 보완이 필요했다.
    또한 두 번째 프로그램에서는 마지막에 행(n), 열(m)을 입력하여 해당 부분의 값을 출력
    하는 부분을 추가하게 되었다. 끝으로 공간복잡도는 까다로워 시간복잡도에 대해 계산을
    하였는데 for문이 2중으로 돌아가기 때문에 시간복잡도는 O(nଶ )로 계산되었다.




                            7
④   3. 20 화요일   : 15일 목요일 회의에서 문제점으로 발견된 1행 2열에 0이 출력되는 문




    제는 빈칸으로 출력되게 하여 해결하였다.
    그리고 이전시간에 계산하지 못한 공간복잡도를 계산하였는데 이 역시 for문이 2중으로
    돌아가 nଶ 에 변수가 4개임으로 +4 또 배열을 [1000][1000]으로 잡고 출력형태가 int 형이
    기 때문에 4,000,000으로 총 nଶ +4,000,000+4 라는 값이 나왔다.
    가장 큰 문제가 발생하였다. 기존에 [1000][1000]로 잡은 상태에서 출력을 하면 실행창이
    나오는 값들만큼 크지 못하여 다음 줄로 밀려서 출력이 되며 게다가 이 부분에서 화면상
    으로는 마지막 값까지 출력이 되어 아무 이상 없는 것처럼 보이지만 실제로는 출력할 수
    있는 값의 크기가 계산되는 값의 크기보다 작아 제대로 된 값을 출력하지 못한다는 정보
    를 얻게 되었다.
    이후 이 문제를 해결하기 위해 int형을 double, long 등을 사용하여 시도해봤으나 성공하
    지 못하여 int형을 그대로 두기로 하였다.




                                8
4. 소스

3.13
#include <stdio.h>


int ar[1000][1000];                            //이차원 배열을 [1000][1000]으로 지정


void main()
{
    int i,j;
    ar[1][1]=1;                                 //1행 1열의 값=1
    for(i=1; i<=1000; i++)                      //각 행의 반복문
    {
               ar[i][1]=1;                          //각 행의 1열의 값은=1
               printf("%u ",ar[i][1]);              //각 행의 1열의 값을 출력
               for( j=2; j<=1000; j++)               //각 열의 반복문
               {
                         ar[i][ j]=ar[i-1][ j-1]+ar[i-1][ j]; //파스칼 삼각형의 계산.
                         printf("%u ",ar[i][ j]);         //계산한 값들을 출력
               }
               printf("n");                             //값이 출력되면 개행
    }




                                                     9
3.15
#include <stdio.h>


int ar[1000][1000];
int n,m;                                                   //값을 찾을 변수 n, m을 선언


void main()
{
    int i,j;
    ar[1][1]=1;
    for(i=1; i<=1000; i++)
    {
               ar[i][1]=1;
               printf("%u ",ar[i][1]);
               for( j=2; j<=1000; j++)
               {
                         ar[i][ j]=ar[i-1][ j-1]+ar[i-1][ j];
                         printf("%u ",ar[i][ j]);
                         if(ar[i][ j]==1,i<=j) //각 열의 마지막 부분에 1이 출력되면 break
                         {
                                    break;
                         }
                                    }
               printf("n");
    }
    printf("p(n,m)?");                         //입력받을 n, m을 출력
    scanf("%d%d",&n,&m);                       //n, m 을 입력받음
    printf("P(n,m) = %un",ar[n][m]);          //입력받은 n, m의 값 ar[n][m]을 출력
}




                                                     10
3.20
#include <stdio.h>


int ar[1000][1000];
int n,m;
void main()
{
    int i,j;
    printf("%un", ar[1][1]=1);                  /*기존의 ar[1][1]=1의 선언에서 ar[1][1]을
    for(i=2; i<=1000; i++)                          출력 한 후 2행부터 반복문 실행*/
    {
               ar[i][1]=1;
               printf("%u ",ar[i][1]);
               for( j=2; j<=1000; j++)
               {
                         ar[i][ j]=ar[i-1][ j-1]+ar[i-1][ j];
                         printf("%u ",ar[i][ j]);
                         if(ar[i][ j]==1,i<=j)
                         {
                                    break;
                         }


               }
               printf("n");
    }
    printf("p(n,m)?");
    scanf("%d%d",&n,&m);
    printf("P(n,m) = %un",ar[n][m]);
}




                                                     11
5. 결론
①   결론 :     메모리 할당 – ar[1000][1000]
            출력형태 - int
            시간복잡도 – nଶ
           공간복잡도 – nଶ ൅ 4000000 ൅ 4




②   느낀점 :     프로젝트를 진행 하면서 느낀 것은 프로젝트를 시작하는 첫 회의에서 각자 맡은
    역할 뿐만 아니라 다른 조원들이 맡은 부분에 대해 공부를 하여 서로 도움을 주기로
    하였는데 이번 프로젝트에서는 그 부분이 잘 되지 못하였다. 그리고 마지막 발표를 앞둔
    시간에 모임을 가지기로 하였는데, 그 전의 만남은 모두 수업시간에서만 이루어졌던 것이라
    처음 수업시간 외에 모임을 가지려고 하니 서로 시간이 맞지 않아 어려움을 겪었다.
    하지만 이제 두 번째 프로젝트가 시작되면 각자 맡은 역할 뿐만 아니라 다른 조원들이 맡은
    부분을 공부하여 공유하고 조언하는 것들이 늘어날 것이고, 이제 학과 행사도 줄어들고 각자
    일정이 거의 확실하게 잡아가는 시점이라 수업시간 외에도 서로 시간을 맞추어 만나 의견을
    나눌 수 있는 시간도 많아질 것이다.




                                       12

Weitere ähnliche Inhalte

Was ist angesagt?

자료구조1보고서
자료구조1보고서자료구조1보고서
자료구조1보고서KimChangHoen
 
이산치수학 Project5
이산치수학 Project5이산치수학 Project5
이산치수학 Project5KoChungWook
 
이산수학 C1 프로젝트 5
이산수학 C1 프로젝트 5이산수학 C1 프로젝트 5
이산수학 C1 프로젝트 5pkok15
 
2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdfkd19h
 
2021 1학기 정기 세미나 6주차
2021 1학기 정기 세미나 6주차2021 1학기 정기 세미나 6주차
2021 1학기 정기 세미나 6주차Moonki Choi
 
이산수학 C1 프로젝트 4
이산수학 C1 프로젝트 4이산수학 C1 프로젝트 4
이산수학 C1 프로젝트 4pkok15
 
2021 2학기 정기 세미나 4주차
2021 2학기 정기 세미나 4주차2021 2학기 정기 세미나 4주차
2021 2학기 정기 세미나 4주차Moonki Choi
 
2012 Dm A0 04 Pdf
2012 Dm A0 04 Pdf2012 Dm A0 04 Pdf
2012 Dm A0 04 Pdfkd19h
 
[신경망기초] 퍼셉트론구현
[신경망기초] 퍼셉트론구현[신경망기초] 퍼셉트론구현
[신경망기초] 퍼셉트론구현jaypi Ko
 
마칭 큐브 알고리즘 - ZP 2019 데캠
마칭 큐브 알고리즘 - ZP 2019 데캠마칭 큐브 알고리즘 - ZP 2019 데캠
마칭 큐브 알고리즘 - ZP 2019 데캠동환 김
 
2012 Dm C3 03
2012 Dm C3 032012 Dm C3 03
2012 Dm C3 03chl132435
 
딥러닝기본-신경망기초
딥러닝기본-신경망기초딥러닝기본-신경망기초
딥러닝기본-신경망기초jaypi Ko
 
유니티 고급 과정 -2-
유니티 고급 과정 -2-유니티 고급 과정 -2-
유니티 고급 과정 -2-Kiyoung Moon
 

Was ist angesagt? (18)

자료구조05
자료구조05자료구조05
자료구조05
 
자료구조05
자료구조05자료구조05
자료구조05
 
자료구조1보고서
자료구조1보고서자료구조1보고서
자료구조1보고서
 
이산치수학 Project5
이산치수학 Project5이산치수학 Project5
이산치수학 Project5
 
이산수학04
이산수학04이산수학04
이산수학04
 
이산수학 C1 프로젝트 5
이산수학 C1 프로젝트 5이산수학 C1 프로젝트 5
이산수학 C1 프로젝트 5
 
이산치2번
이산치2번이산치2번
이산치2번
 
2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf
 
이산수학05
이산수학05이산수학05
이산수학05
 
2021 1학기 정기 세미나 6주차
2021 1학기 정기 세미나 6주차2021 1학기 정기 세미나 6주차
2021 1학기 정기 세미나 6주차
 
이산수학 C1 프로젝트 4
이산수학 C1 프로젝트 4이산수학 C1 프로젝트 4
이산수학 C1 프로젝트 4
 
2021 2학기 정기 세미나 4주차
2021 2학기 정기 세미나 4주차2021 2학기 정기 세미나 4주차
2021 2학기 정기 세미나 4주차
 
2012 Dm A0 04 Pdf
2012 Dm A0 04 Pdf2012 Dm A0 04 Pdf
2012 Dm A0 04 Pdf
 
[신경망기초] 퍼셉트론구현
[신경망기초] 퍼셉트론구현[신경망기초] 퍼셉트론구현
[신경망기초] 퍼셉트론구현
 
마칭 큐브 알고리즘 - ZP 2019 데캠
마칭 큐브 알고리즘 - ZP 2019 데캠마칭 큐브 알고리즘 - ZP 2019 데캠
마칭 큐브 알고리즘 - ZP 2019 데캠
 
2012 Dm C3 03
2012 Dm C3 032012 Dm C3 03
2012 Dm C3 03
 
딥러닝기본-신경망기초
딥러닝기본-신경망기초딥러닝기본-신경망기초
딥러닝기본-신경망기초
 
유니티 고급 과정 -2-
유니티 고급 과정 -2-유니티 고급 과정 -2-
유니티 고급 과정 -2-
 

Andere mochten auch

자바스터디(6기) 3
자바스터디(6기) 3자바스터디(6기) 3
자바스터디(6기) 3Jina Lee
 
Minima -Panel Formwork System
Minima -Panel Formwork SystemMinima -Panel Formwork System
Minima -Panel Formwork SystemRMD Kwikform Ltd
 
UX Programming: The Sakai 3 Approach
UX Programming: The Sakai 3 ApproachUX Programming: The Sakai 3 Approach
UX Programming: The Sakai 3 ApproachCarl Hall
 
Metrics Program Implementation: Pitfalls and Successes by Kris Kosyk
Metrics Program Implementation: Pitfalls and Successes by Kris KosykMetrics Program Implementation: Pitfalls and Successes by Kris Kosyk
Metrics Program Implementation: Pitfalls and Successes by Kris KosykSoftServe
 
LA HÉLADE: CIUDADES (mapa interactivo)
LA HÉLADE: CIUDADES (mapa interactivo)LA HÉLADE: CIUDADES (mapa interactivo)
LA HÉLADE: CIUDADES (mapa interactivo)Carlos Viloria
 
Anesthetic management of hyperthyroid patient posted for elective
Anesthetic management of hyperthyroid patient posted  for electiveAnesthetic management of hyperthyroid patient posted  for elective
Anesthetic management of hyperthyroid patient posted for electiveRavindra Singh Chouhan
 

Andere mochten auch (7)

자바스터디(6기) 3
자바스터디(6기) 3자바스터디(6기) 3
자바스터디(6기) 3
 
2015 Branson Tournament Schedule
2015 Branson Tournament Schedule2015 Branson Tournament Schedule
2015 Branson Tournament Schedule
 
Minima -Panel Formwork System
Minima -Panel Formwork SystemMinima -Panel Formwork System
Minima -Panel Formwork System
 
UX Programming: The Sakai 3 Approach
UX Programming: The Sakai 3 ApproachUX Programming: The Sakai 3 Approach
UX Programming: The Sakai 3 Approach
 
Metrics Program Implementation: Pitfalls and Successes by Kris Kosyk
Metrics Program Implementation: Pitfalls and Successes by Kris KosykMetrics Program Implementation: Pitfalls and Successes by Kris Kosyk
Metrics Program Implementation: Pitfalls and Successes by Kris Kosyk
 
LA HÉLADE: CIUDADES (mapa interactivo)
LA HÉLADE: CIUDADES (mapa interactivo)LA HÉLADE: CIUDADES (mapa interactivo)
LA HÉLADE: CIUDADES (mapa interactivo)
 
Anesthetic management of hyperthyroid patient posted for elective
Anesthetic management of hyperthyroid patient posted  for electiveAnesthetic management of hyperthyroid patient posted  for elective
Anesthetic management of hyperthyroid patient posted for elective
 

Ähnlich wie Project#1파스칼 삼각형

2012 Ds B2 02 Pdf
2012 Ds B2 02 Pdf2012 Ds B2 02 Pdf
2012 Ds B2 02 Pdfkd19h
 
2012 Ds B2 02
2012 Ds B2 022012 Ds B2 02
2012 Ds B2 02chl132435
 
자료구조 Project2
자료구조 Project2자료구조 Project2
자료구조 Project2KoChungWook
 
2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdfjinwookhong
 
Project#2 데이터베이스 시스템 Hwp
Project#2 데이터베이스 시스템 HwpProject#2 데이터베이스 시스템 Hwp
Project#2 데이터베이스 시스템 HwpKimjeongmoo
 
2데이터베이스 시스템
2데이터베이스 시스템2데이터베이스 시스템
2데이터베이스 시스템herojoon1378
 
프로젝트 보고서
프로젝트 보고서프로젝트 보고서
프로젝트 보고서hyungoh kim
 
자료구조 Project6
자료구조 Project6자료구조 Project6
자료구조 Project6KoChungWook
 
2012 Ds D0 01 Pdf
2012 Ds D0 01 Pdf2012 Ds D0 01 Pdf
2012 Ds D0 01 Pdfkd19h
 
2012 Ds D0 01
2012 Ds D0 012012 Ds D0 01
2012 Ds D0 01chl132435
 
이산치수학 Project4
이산치수학 Project4이산치수학 Project4
이산치수학 Project4KoChungWook
 
이산치보고서
이산치보고서이산치보고서
이산치보고서mil23
 
이산수학 D1 프로젝트 2
이산수학 D1 프로젝트 2이산수학 D1 프로젝트 2
이산수학 D1 프로젝트 2pkok15
 
이산치수학 Project2
이산치수학 Project2이산치수학 Project2
이산치수학 Project2KoChungWook
 
자료구조2보고서
자료구조2보고서자료구조2보고서
자료구조2보고서KimChangHoen
 
자료구조 Project1
자료구조 Project1자료구조 Project1
자료구조 Project1KoChungWook
 

Ähnlich wie Project#1파스칼 삼각형 (20)

자료구조01
자료구조01자료구조01
자료구조01
 
2012 Ds B2 02 Pdf
2012 Ds B2 02 Pdf2012 Ds B2 02 Pdf
2012 Ds B2 02 Pdf
 
2012 Ds B2 02
2012 Ds B2 022012 Ds B2 02
2012 Ds B2 02
 
자료구조 Project2
자료구조 Project2자료구조 Project2
자료구조 Project2
 
2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf2012 Dm A0 02 Pdf
2012 Dm A0 02 Pdf
 
Project#2 데이터베이스 시스템 Hwp
Project#2 데이터베이스 시스템 HwpProject#2 데이터베이스 시스템 Hwp
Project#2 데이터베이스 시스템 Hwp
 
2데이터베이스 시스템
2데이터베이스 시스템2데이터베이스 시스템
2데이터베이스 시스템
 
프로젝트 보고서
프로젝트 보고서프로젝트 보고서
프로젝트 보고서
 
자료구조 Project6
자료구조 Project6자료구조 Project6
자료구조 Project6
 
2012 Ds D0 01 Pdf
2012 Ds D0 01 Pdf2012 Ds D0 01 Pdf
2012 Ds D0 01 Pdf
 
2012 Ds D0 01
2012 Ds D0 012012 Ds D0 01
2012 Ds D0 01
 
이산치수학 Project4
이산치수학 Project4이산치수학 Project4
이산치수학 Project4
 
이산수학02
이산수학02이산수학02
이산수학02
 
3.포인터
3.포인터3.포인터
3.포인터
 
이산치보고서
이산치보고서이산치보고서
이산치보고서
 
이산수학 D1 프로젝트 2
이산수학 D1 프로젝트 2이산수학 D1 프로젝트 2
이산수학 D1 프로젝트 2
 
이산치수학 Project2
이산치수학 Project2이산치수학 Project2
이산치수학 Project2
 
자료구조2보고서
자료구조2보고서자료구조2보고서
자료구조2보고서
 
DM_02
DM_02DM_02
DM_02
 
자료구조 Project1
자료구조 Project1자료구조 Project1
자료구조 Project1
 

Mehr von Kimjeongmoo

Project#6 오탈자 검사 D0 Hwp
Project#6 오탈자 검사 D0 HwpProject#6 오탈자 검사 D0 Hwp
Project#6 오탈자 검사 D0 HwpKimjeongmoo
 
Project#5 최단거리 찾기 D0 Hwp
Project#5 최단거리 찾기 D0 HwpProject#5 최단거리 찾기 D0 Hwp
Project#5 최단거리 찾기 D0 HwpKimjeongmoo
 
Project#4상호참조 생성기 Hwp
Project#4상호참조 생성기 HwpProject#4상호참조 생성기 Hwp
Project#4상호참조 생성기 HwpKimjeongmoo
 
Project#3다항식의연산 Hwp
Project#3다항식의연산 HwpProject#3다항식의연산 Hwp
Project#3다항식의연산 HwpKimjeongmoo
 
Project#2말의여행 Hwp
Project#2말의여행 HwpProject#2말의여행 Hwp
Project#2말의여행 HwpKimjeongmoo
 
Project#7 Group Codes Hwp
Project#7 Group Codes HwpProject#7 Group Codes Hwp
Project#7 Group Codes HwpKimjeongmoo
 
Project#6 2 비트 덧셈기 Hwp
Project#6 2 비트 덧셈기 HwpProject#6 2 비트 덧셈기 Hwp
Project#6 2 비트 덧셈기 HwpKimjeongmoo
 
Project#5 통신망에서 길 찾기 Hwp
Project#5 통신망에서 길 찾기 HwpProject#5 통신망에서 길 찾기 Hwp
Project#5 통신망에서 길 찾기 HwpKimjeongmoo
 
Project#4 Syntax Of Languages Hwp
Project#4 Syntax Of Languages HwpProject#4 Syntax Of Languages Hwp
Project#4 Syntax Of Languages HwpKimjeongmoo
 
Project#3 How Fast Can We Sort Hwp
Project#3 How Fast Can We Sort HwpProject#3 How Fast Can We Sort Hwp
Project#3 How Fast Can We Sort HwpKimjeongmoo
 
Project#1 지식 기반 시스템 Hwp
Project#1 지식 기반 시스템 HwpProject#1 지식 기반 시스템 Hwp
Project#1 지식 기반 시스템 HwpKimjeongmoo
 

Mehr von Kimjeongmoo (11)

Project#6 오탈자 검사 D0 Hwp
Project#6 오탈자 검사 D0 HwpProject#6 오탈자 검사 D0 Hwp
Project#6 오탈자 검사 D0 Hwp
 
Project#5 최단거리 찾기 D0 Hwp
Project#5 최단거리 찾기 D0 HwpProject#5 최단거리 찾기 D0 Hwp
Project#5 최단거리 찾기 D0 Hwp
 
Project#4상호참조 생성기 Hwp
Project#4상호참조 생성기 HwpProject#4상호참조 생성기 Hwp
Project#4상호참조 생성기 Hwp
 
Project#3다항식의연산 Hwp
Project#3다항식의연산 HwpProject#3다항식의연산 Hwp
Project#3다항식의연산 Hwp
 
Project#2말의여행 Hwp
Project#2말의여행 HwpProject#2말의여행 Hwp
Project#2말의여행 Hwp
 
Project#7 Group Codes Hwp
Project#7 Group Codes HwpProject#7 Group Codes Hwp
Project#7 Group Codes Hwp
 
Project#6 2 비트 덧셈기 Hwp
Project#6 2 비트 덧셈기 HwpProject#6 2 비트 덧셈기 Hwp
Project#6 2 비트 덧셈기 Hwp
 
Project#5 통신망에서 길 찾기 Hwp
Project#5 통신망에서 길 찾기 HwpProject#5 통신망에서 길 찾기 Hwp
Project#5 통신망에서 길 찾기 Hwp
 
Project#4 Syntax Of Languages Hwp
Project#4 Syntax Of Languages HwpProject#4 Syntax Of Languages Hwp
Project#4 Syntax Of Languages Hwp
 
Project#3 How Fast Can We Sort Hwp
Project#3 How Fast Can We Sort HwpProject#3 How Fast Can We Sort Hwp
Project#3 How Fast Can We Sort Hwp
 
Project#1 지식 기반 시스템 Hwp
Project#1 지식 기반 시스템 HwpProject#1 지식 기반 시스템 Hwp
Project#1 지식 기반 시스템 Hwp
 

Project#1파스칼 삼각형

  • 1. 파스칼 삼각형 20083430 강승우 20093539 황준호 20093468 김현호 20093474 박구남 20113281 김정무 1
  • 2. 목차 1.일정(3) 2.역할(4) 3.회의 내용(5~8) ① 3. 08 목요일 ② 3. 13 화요일 ③ 3. 15 목요일 ④ 3. 20 화요일 4.소스(9~11) ① 3. 13 화요일 ② 3. 15 목요일 ③ 3. 20 화요일 5.결론(12) ① 결론 ② 보완점 2
  • 3. 1.일정 3.08 ~ 3.13 3.13 ~ 3.15 주요내용 : 각자 역할 분담, 휴대폰 주요내용 : 첫 번째 소스의 분석 및 번호 교환 문제점, 해결방안 토의 3.15 ~ 3.20 3.20 주요내용 : 두 번째 소스의 분석 및 주요내용 : 소스의 분석 및 문제점 문제점 해결방안 토의, 시간 공간복 해결방안 토의, 시간 공간 복잡도 잡도 토의 계산. 3.22 주요내용 : 파스칼 삼각형 프로그램 최종 발표. 3
  • 4. 2. 역할 ① 강승우 황준호 : 시간 복잡도 공간복잡도. ② 김현호 박구남 : 프로그램 작성. ③ 김정무 : 보고서 작성 4
  • 5. 3. 회의 내용 ① 3. 08 목요일 : 수강정정기간이 끝날 무렵으로 실직적인 프로젝트 시작일로 조원이 확실해 지면서 각자의 역할을 분담하게 되었다. 역할 분담에 대한 회의에서는 조원 모두 프로그래밍에 대해 능숙하지 않아 각자 공부를 하면서 서로에게 도움을 주자는 내용으로 토의를 진행하였다. 그 다음으로 파스칼 삼각형 프로그램 작성에 대해 토의를 하였는데, 기본적으로 파스칼 삼각형은 행과 열로 구분되어 있기 때문에 배열을 사용하되 이차원 배열을 사용하여 각 행과 열에 대해 조건을 붙여 만들자는 의견이 나왔다. 또한 프로젝트 모임에 관해서는 첫 프로젝트는 굳이 따로 만나지 않고 수업시간에 모여 회의를 진행해도 될 것이라는 조언을 듣고 따로 정하지 않았다. 하지만 다음 프로젝트부 터는 수업 시간 외에 만나 회의를 해야 할 것이라는 의견이 지배적이었다. 마지막으로 각자 맡은 역할을 충실히 하고 조원끼리 핸드폰 번호를 교환하여 연락이 되도록 하고 회 의를 끝내었다. 5
  • 6. 3. 13 화요일 : 첫 번째 프로그램이 작성되어 그 부분에 대해서 토의를 진행하였다. 첫 번째 문제점으로 는 기본적으로 제시 되어 있는 파스칼 삼 각형 그림의 삼각형 모양이 아니라 직각 삼각형의 모양이라는 것. 두 번째 문제는 왼쪽의 사진에 나와 있는 것처럼 파스칼 삼각형의 숫자 다음 의 빈 공간에는 모두 0이 출력된다는 점이 었다. 왼쪽의 사진에 서는 배열을 [10][10]으로 잡아 출력한 사진이나 실제 [1000][1000]의 값으로 출력을 하면 0이 무수히 많이 나오는 문제가 발생하였다. 마지막으로 제시된 문제점으로는 배열의 크 기가 너무 크다는 것이다. [1000][1000] = 1,000,000의 크기를 차지하면서 출력형태가 int 형이기 때문에 총4,000,000의 크기를 차지하게 되는데 이것을 줄일 수 있는 방법을 찾아 야 했다. 이번에 제기된 문제점들의 해결방안으로는 두 번째 문제였던 나머지 부분에 0이 출력된 다는 점에서는 파스칼 삼각형을 출력한 후 그 다음 값이 나오지 않게 if문에 조건을 걸어 break를 걸어보자는 의견이 나왔다. 그리고 시간복잡도와 공간복잡도에 대한 토의는 개념들에 대해 설명을 들었으나 해당 개 념에 대한 설명은 인터넷 상에 잘 나와있으나 제시된 예들은 간단한 프로그램에 대한 것 들이었고 조금만 복잡해지는 경우에는 계산하기가 매우 어려워졌다. 게다가 아직 프로그 램이 시작 단계이기 때문에 프로그램이 많이 변할 수도 있다는 점을 감안하여 시간복잡 도와 공간복잡도는 계산하지 않았다. 6
  • 7. 3. 15 목요일 : 먼저 지난 회의에서 제기되었던 문제점들에 대해 회의를 진행했다. 첫 번째 문제이던 직각삼각형의 출력형태에 대한 문제는 굳이 정삼각형의 형태로 출력을 하 지 않아도 된다는 정보를 얻어 지금 현재 출력되는 형태는 그대로 두라고 하였다. 두 번 째 문제인 빈 공간에 0이 출력되는 문제는 왼쪽의 사진처럼 빈칸으로 출력되게 하였으며 그에 따라 출력시간도 줄어들게 되었다. 하지만 마지막 세 번째 문제인 4,000,000에 달하 는 이차원 배열의 크기를 줄이는 방향은 찾지 못했다. 그리고 사진에 나와있는 것처럼 2 행부터는 0이 출력되지 않지만 1행 2열에 0이 하나 출력되는 문제가 발생하게 되었다. 그 부분에 대해서 좀더 보완이 필요했다. 또한 두 번째 프로그램에서는 마지막에 행(n), 열(m)을 입력하여 해당 부분의 값을 출력 하는 부분을 추가하게 되었다. 끝으로 공간복잡도는 까다로워 시간복잡도에 대해 계산을 하였는데 for문이 2중으로 돌아가기 때문에 시간복잡도는 O(nଶ )로 계산되었다. 7
  • 8. 3. 20 화요일 : 15일 목요일 회의에서 문제점으로 발견된 1행 2열에 0이 출력되는 문 제는 빈칸으로 출력되게 하여 해결하였다. 그리고 이전시간에 계산하지 못한 공간복잡도를 계산하였는데 이 역시 for문이 2중으로 돌아가 nଶ 에 변수가 4개임으로 +4 또 배열을 [1000][1000]으로 잡고 출력형태가 int 형이 기 때문에 4,000,000으로 총 nଶ +4,000,000+4 라는 값이 나왔다. 가장 큰 문제가 발생하였다. 기존에 [1000][1000]로 잡은 상태에서 출력을 하면 실행창이 나오는 값들만큼 크지 못하여 다음 줄로 밀려서 출력이 되며 게다가 이 부분에서 화면상 으로는 마지막 값까지 출력이 되어 아무 이상 없는 것처럼 보이지만 실제로는 출력할 수 있는 값의 크기가 계산되는 값의 크기보다 작아 제대로 된 값을 출력하지 못한다는 정보 를 얻게 되었다. 이후 이 문제를 해결하기 위해 int형을 double, long 등을 사용하여 시도해봤으나 성공하 지 못하여 int형을 그대로 두기로 하였다. 8
  • 9. 4. 소스 3.13 #include <stdio.h> int ar[1000][1000]; //이차원 배열을 [1000][1000]으로 지정 void main() { int i,j; ar[1][1]=1; //1행 1열의 값=1 for(i=1; i<=1000; i++) //각 행의 반복문 { ar[i][1]=1; //각 행의 1열의 값은=1 printf("%u ",ar[i][1]); //각 행의 1열의 값을 출력 for( j=2; j<=1000; j++) //각 열의 반복문 { ar[i][ j]=ar[i-1][ j-1]+ar[i-1][ j]; //파스칼 삼각형의 계산. printf("%u ",ar[i][ j]); //계산한 값들을 출력 } printf("n"); //값이 출력되면 개행 } 9
  • 10. 3.15 #include <stdio.h> int ar[1000][1000]; int n,m; //값을 찾을 변수 n, m을 선언 void main() { int i,j; ar[1][1]=1; for(i=1; i<=1000; i++) { ar[i][1]=1; printf("%u ",ar[i][1]); for( j=2; j<=1000; j++) { ar[i][ j]=ar[i-1][ j-1]+ar[i-1][ j]; printf("%u ",ar[i][ j]); if(ar[i][ j]==1,i<=j) //각 열의 마지막 부분에 1이 출력되면 break { break; } } printf("n"); } printf("p(n,m)?"); //입력받을 n, m을 출력 scanf("%d%d",&n,&m); //n, m 을 입력받음 printf("P(n,m) = %un",ar[n][m]); //입력받은 n, m의 값 ar[n][m]을 출력 } 10
  • 11. 3.20 #include <stdio.h> int ar[1000][1000]; int n,m; void main() { int i,j; printf("%un", ar[1][1]=1); /*기존의 ar[1][1]=1의 선언에서 ar[1][1]을 for(i=2; i<=1000; i++) 출력 한 후 2행부터 반복문 실행*/ { ar[i][1]=1; printf("%u ",ar[i][1]); for( j=2; j<=1000; j++) { ar[i][ j]=ar[i-1][ j-1]+ar[i-1][ j]; printf("%u ",ar[i][ j]); if(ar[i][ j]==1,i<=j) { break; } } printf("n"); } printf("p(n,m)?"); scanf("%d%d",&n,&m); printf("P(n,m) = %un",ar[n][m]); } 11
  • 12. 5. 결론 ① 결론 : 메모리 할당 – ar[1000][1000] 출력형태 - int 시간복잡도 – nଶ 공간복잡도 – nଶ ൅ 4000000 ൅ 4 ② 느낀점 : 프로젝트를 진행 하면서 느낀 것은 프로젝트를 시작하는 첫 회의에서 각자 맡은 역할 뿐만 아니라 다른 조원들이 맡은 부분에 대해 공부를 하여 서로 도움을 주기로 하였는데 이번 프로젝트에서는 그 부분이 잘 되지 못하였다. 그리고 마지막 발표를 앞둔 시간에 모임을 가지기로 하였는데, 그 전의 만남은 모두 수업시간에서만 이루어졌던 것이라 처음 수업시간 외에 모임을 가지려고 하니 서로 시간이 맞지 않아 어려움을 겪었다. 하지만 이제 두 번째 프로젝트가 시작되면 각자 맡은 역할 뿐만 아니라 다른 조원들이 맡은 부분을 공부하여 공유하고 조언하는 것들이 늘어날 것이고, 이제 학과 행사도 줄어들고 각자 일정이 거의 확실하게 잡아가는 시점이라 수업시간 외에도 서로 시간을 맞추어 만나 의견을 나눌 수 있는 시간도 많아질 것이다. 12