소스코드 Option Explicit Private Sub cmdJuminCheck_Click() Dim sJumin As String Dim sError As String Dim iSex As Integer Dim sYear, sMonth, sDay, sDate Dim sDigit As String Dim iSum, I As Integer sJumin = Trim(txtJumin1.Text) & Trim(txtJumin2.Text) `1.길이검사If Len(sJumin) <> 13 Then MsgBox "자릿수를 맞추세요"Exit Sub End If `2. 형식 검사If Not IsNumeric(sJumin) Then MsgBox "숫자를 입력해 주세요"Exit Sub End If `3. 년월일 검사sYear = IIf(Mid(sJumin, 7, 1) <= "2", "19", "20") sYear = sYear & Mid(sJumin, 1, 2) sMonth = Mid(sJumin, 3, 2) sDay = Mid(sJumin, 5, 2) sDate = sYear & "/" & sMonth & "/" & sDay If Not IsDate(sDate) Then sError = "1~6 번째는 yymmdd 형태로 입력."
C언어(2) 레포트과제명 : 8장 배열학과 :학년반 :학번 :성명 :담당교수 :제출일자 :2. 학생들의 시험 점수를 통계 처리하는 프로그램을 작성하여보자. 한 학급은 최대 10명까지의 학생들로 이루어진다. 각 학생들은 3번의 시험을 치른다. 사용자로부터 값을 입력받을 수 있도록 한다.학번시험#1시험#2시험#**************************33*************7576545*************97610697588※ 6~10 학급의 시험데이터는 책에 나와 있지 않으므로 임의로 지정(a) 각 시험마다 최고 점수를 출력하여라.(b) 각 학생마다 평균 점수를 출력하여라.(c) 각 시험마다 산술 평균값을 계산하여 출력하여라.7. 주사위를 60000번 던져서 그 결과를 배열로 요약하여보자. 잘 만들어진 주사위라면 하나의 면이 나올 확률은 약 1/6이 되어야 한다. 컴퓨터에서 주사위 던지기는 난수 발생 함수 rand() 를 통하여 구현한다.주사위면 빈도1 10292 9613 . . .4 . . .5 . . .6 . . .
자료구조레포트과제명 : 4장 연습문제학과 :학년반 :학번 :성명 :담당교수 :제출일자 :3-1 선형 리스트에 대하여 설명하시오.연속되는 장소에 저장된 리스트3-2 연결 리스트에 대하여 설명하시오.각 노드들이 데이터와 포인터를 가지고 서로 연결되어 있는 방식3-3 이중 연결 리스트를 설명하시오.각 노드가 한 링크 부분 만큼 저장 공간을 더 쓰면서 두 개의 링크 부분을 갖고 그들이 서로 반대 방향으로 선행, 후속을 지칭하면서 포인터로 연결된 방식3-4 연결 리스트의 삽입과 제거에 관한 알고리즘을 기술하시오.삽입insert(h,x){getnode(i)I→date=“데이터”if(h==0){ h=i;I→link=0}elseI→link=x→linkx→link=I}}제거delete(x,y,h){ if (y==0)h = h→linkelsey→link = x→linkret(x);}3-5 환상 연결 리스트의 장 .단점을 설명하시오.장점어느 한 노드로부터 어떤 노드로 접근할 수 있다.검색 작업시 단일 연결 리스트처럼 처음 노드부터 선형 노드를 찾지 않고 현재의 노드부터 검색할 수 있다,결합, 분리 작업 등이 효율적이다단점리스트의 한 노드를 찾을 때 주의하지 않으면 무한 루프에 빠질 염려가 있다.리스트의 모든 노드 중에서 검색을 끝낼 수 있는 노드가 존재하여야 한다.3-6 단일 연결 리스트의 노드 삽입 과정을 설명하시오.현재 사용하고 있지 않는 노드 하나를 찾아 그 주소를 I로 놓는다.이 노드의 자료 부분에 “데이터”를 저장한다.이 노드의 링크 부분에 현재 “앞의 데이터”가 가리키는 포인터를 옮겨온다.“앞의 데이터”를 저장하고 있는 노드의 링크에는 삽입 하려는 노드의 주소 I를 저장한다.3-7 단일 연결 리스트의 노드 제거 과정을 설명하시오.자료 X를 제거하려면 X의 앞의 노드의 Y를 찾아서 링크에 현재 자료 X를 가리키는 포인터 값을 X의 뒤에 링크로 저장하면 된다.3-8 선형 리스트의 자료 이동에 대하여 설명하시오.n개의 노드를 가진 리스트에서 인덱스 k의 노드를 삭제한다면 k번째를 채우기 위해k+1에서부터 n까지 범위의 노드들을 이동해야 한다. 즉, n-k개의 노드들이 이동한다.삽입의 경우에는 n-k+1개의 노드들이 이동된다.3-9 이중 연결 리스트의 노드 삽입과 제거되는 알고리즘을 작성하시오.삽입dinsert(y,x){data[y]=“data”y→rlink=x→rrlink;y→llink=x;x→rlink→llink=y;x→rlink=y;}제거ddelete(x,1){if(x==1){no_more_nodes;}else{x→llink→rlink=x→rlinkx→rlink→llink=x→llinkret(x);}4-1 스택, 큐, 테크를 설명하시오.스택은 입출력이 리스트의 한쪽 끝에서만 일어나는 선형 구조 이다. 스택에 마지막으로 입력한 노드는 제일 먼저 제거되고 제일 먼저 입력한 노드는 마지막에 제거된다. 그러므로 LIFO(Last In First Out : 후입 선출) 또는 FILO(Frist In Last Out : 선입 후출) 라고도 한다.리스트의 한쪽 끝에서는 삽입을하고 다른쪽 끝에서는 제거를 하는 형태를 큐라 한다. 이 형태로는 가장 먼저 삽입된 노드가 가장 먼저 제거되고, 가장 나중에 삽입된 노드가 가장 나중에 제거된다. 그러므로 FIFO(First In Fist Out : 선입 선출) 또는 LILO(Last In Last Out:후입 후출)라고 하기도 한다.스텍은 TOP에서만 노드의 삽입과 제거 작업을 수행하고, 큐는 각각 다른쪽 끝에서 삽입과 제거 작업을 수행하는 특성을 갖는 반면 테크는 이 두형태의 내용을 복합한 방식으로 구성된다. 리스트의 한쪽 끝에서 삽입, 제거하는 것은 스텍과 같으며 리스트의 한쪽으로 삽입을 하고 다른 쪽에서 제거를 하는 것은 큐와 같다. 그러므로 테크는 선형 리스트 중 가장 일반적이다.4-2 스택 연산에서 중위 표기법에 대하여 설명하시오.연산자가 피연산자 사이에 있는 일반적으로 쓰이는 산술식 표현 방법이다. 즉, 피연산자-연산자-피연산자로 산술식을 표현한다. 이것은 A+B와 같이 연산자인 +를 피연산자인 두 개의 오퍼랜드 A와 B사이에 놓고 식을 포현하는 방법이다.4-3 스택에서 over flow를 방지하기 위한 방법을 설명하시오.스텍에 오버플로우가 발생됨을 방지하기 위해서는 초기에 스택 길이를 충분히 크게 하면 가능하나 스택 길이를 필요 이상으로 길게 정하는 것은 기억 장소의 낭비가 된다. 기억 장소의 낭비를 억제하고 오버플로우가 가급적 발생하지 않도록 하기 위한 방안은 다음과 같다.(1) 하나의 저장 공간에 2개의 스택을 보관2개의 스택을 서로 연결하여 운영하는 것으로 2개의 스택 모두에 입력이 집중적으로 발생하는 경우를 제외하고는 융통성이 있다.(2) n 개의 스택을 하나의 저장 공간에 보관각 스택의 BOTTOM 의 위치를 유동적으로 운영하고, 임의 스택에 오버플로우가 발생하게 되면 빈 공간을 찾아 리패킹 하는 스택의 연결방법4-4 Scroll과 Shelf를 설명하시오.데크는 스택과 큐의 특성을 혼합한 자료 구조로 삽입과 제거를 위해 두 개의 포인터를 사용하는데 이를 각각 LEFT 포인터, RIGHT 포인터라느 명칭을 붙인다. LEFT 포인터는 데크의 왼쪽 끝을 가리키는 포인터로 삽입과 제거가 일어난다. RIGHT 포인터는 데크의 오른쪽 끝을 가리키는 포인터로 삽입과 제거가 일어난다 또한 데크의 입출력에 제한을 두어 삽입 혹은 제거를 리스트의 한쪽에서만 이루어지도록 제한할수 있다. 입력을 한쪽 끝으로만 가능하도록 제한한 데크를 입력 제한 데크 또는 스크롤(scroll)이라고 부른다. 또 출력을 한쪽 끝으로만 가능하도록 제한된 데크를 출력 제한데크 또는 쉘프(shelf)라고 부른다.4-5 정적 기억장치 관리에 대하여 설명하시오정적 기억 장치 관리는 주기억 공간을 일정한 크기로 분할하여 프로그램에 할당하는 방법이다. 여기서 분할이란 다수의 프로그램을 동시에 수행시키기 위해 주기억 공간을 몇 개의 구역으로 나누는 것을 말한다. 정적 기억 장치 관리에서는 파티션마다 상황을 두어서 각 작업의 크기에 맞는 파티션을 할당해서 사용하게 해야 하며 각 파티션을 보호하기 위해 파티션의 시작 주소를 가지고 있는 기준 레지스터와 종료 주소를 가지고 있는 바운드 레지스터를 둔다. 이 방법은 각 작업이 각 파티션의 최소량만을 사용하는 작업이 많으면 메모리의 손실을 보이는 단점이 있다. 정적 기억 장치 관리를 고정 기억장치 관리 라고도 한다.