[수강신청시 주의사항]
  • 본 과목은 C언어를 이용하여 설명하기 때문에 반드시, 컴퓨터언어 (C언어)를 수강했어야 합니다.
  • 타과 학생도 수강 가능하나 컴퓨터언어 (C언어)를 배운 경우에 한합니다.
[자료구조]
[기말과제]
  • 기말과제로 수행한 학생들의 작품 소개: 클릭
[강의노트]
[과제제출 및 성적확인]
[과목 게시판]
[과제]

번호

과제내용

비고

#1


다음과 같은 구조체를 갖는 학생정보 배열을 이용하여 해당 배열을 학생이름, 키, 몸무게를 기준으로 정렬하여 출력하는 프로그램을 작성하시오. (단 정렬하는 방법은 실습시간에 배운 선택정렬을 이용할 것)

    #include <stdio.h>
    
    #define N_STUDENTS  4
    
    typedef struct student_info {
        char    name[10];
        int     height;
        float   weight;
    } student_info;
    
    student_info students[N_STUDENTS] = {
        {"이순신", 172, 83.4},
        {"홍길동", 167, 72.5},
        {"김유신", 159, 70.8},
        {"유관순", 163, 58.4}
    };
    
  • 제출 파일 내용
    • 프로그램 소스
    • 동작 화면을 캡춰한 그림
    • 과제중 발생한 문제, 해결방법, 배운 것, 느낀점을 포함할 것
    • 주의사항: 이름으로 정렬할 때는 strcmp() 함수를 이용하여 비교할 것

과제는 웹으로만 제출

아래아 한글 혹은 MS word 파일로 제출

#2


3장 프로그램 3.5는 0이 아닌 요소들만을 나타내는 방법으로 행렬을 나타내고 두개의 행렬을 더하는 프로그램이다. 이 프로그램을 참조하여 0이 아닌 요소들만을 나타내는 방법으로 표현된 두개의 행렬을 곱하는 프로그램을 작성하여 제출하시오.

  • 제출 파일 내용
    • 프로그램 소스
    • 동작화면을 캡춰한 그림
    • 과제중 발생한 문제, 해결방법, 배운 것, 느낀점을 포함할 것
    • 0이 아닌 요소들을 이용하여 먼저 0인 요소들까지 표현하는 행렬로 바꾸고 이를 곱하는 방식을 사용해도 무방함
    • 주의사항: for loop를 사용하여 구현할 것 (일일이 배열별 곱하기를 하는 것 금지)
      • 아래처럼 일일이 배열별 곱하는 것 금지
           c.data[0].value = a.data[0].value * b.data[0].value + 
        		a.data[1].value * b.data[3].value + 
        		a.data[2].value * b.data[6].value;
        				

#3


교재 5장 스택에는 스택을 이용하여 괄호를 검사하는 프로그램, 중위표기식의 수식을 후위표기식으로 만드는 프로그램, 후위표기식을 계산하는 프로그램이 있다. 단, 교재에 있는 프로그램은 정수 한 자릿수만을 계산할 수 있는 프로그램이다. 이 프로그램을 이용하여 한 자릿수 이상의 정수를 계산하는 프로그램을 작성하시오.

  • 동작
    • 연산: +, - , * , / , %
    • 가능한 수: 정수
    • 가능한 괄호: () 소괄호
  • 힌트
    • 문자열 숫자를 숫자로 바꾸는 함수: atoi() 함수 (구체적인 사용법은 인터넷 참조)
  • 제출 파일 내용
    • 프로그램 소스 (라인별로 프로그램 설명하는 주석 있어야함)
    • 반드시 교재에 있는 프로그램을 이용해서 프로그램 해야함
    • 동작화면을 캡춰한 그림
      • 단, 동작화면은 다음과 동일한 입력을 넣어서 캡쳐할 것
      • 동작화면 클릭
    • 과제중 발생한 문제, 해결방법, 배운 것, 느낀점을 포함할 것