# 제출안내
1. 방법 : 본인 블로그에 작성 후 본 게시판에 링크를 업로드
또는 본 게시판에 작성. 제목은 '투자노트 금융공학 퀀트 프로그래밍 과정 x주차과제' 등으로 작성
(※ 본 게시판에 작성한 내용은 주기적으로 삭제 및 정리되오니 강의 내용을 가지고
있으시려면 본인 블로그에 작성하시오)
2. 양 : 최종과제 스크린샷 1장 이상 첨부. 스크린샷을 반드시 첨부하시오.
3. 기한 : 매주 일요일 오후 12시 전까지
# 기본과제 및 제출 양식
1. 문자열 편집을 위해 string.h 를 인클루드 하고 다음 문항에 답하시오. (2시간 소요)
가. strncpy의 용법은 다음과 같다.
strncpy(값을넣을변수,넣을값이있는변수,넣을문자개수)
이를 암기하시오. https://modoocode.com/80 를 참조하시오.
또한, char[] 형으로 "123456789"를 선언 후, '넣을값이있는변수'항에 넣으시오.
나. char[] 형으로 '값을넣을변수'를 만드시오. 크기는 5로 하시오.
다. 넣을 문자의 개수를 5개로 하고 strncpy하여 '값을넣을변수' 를 받고, 이를 출력해보시오.
라. strncpy는 특정 문자열의 처음부터 n항까지 잘라주는 역할을 함을 확인하시오.
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<string.h>
#pragma warning(disable:4996)
int main() {
char str1[] = "123456789";
char str2[6];
strncpy(str2, str1, 5);
str2[5] = '\0';
puts(str2);
return 0;
}
마. strncat의 용법은 다음과 같다.
strncat(앞에올문자열,뒤에붙일문자열,붙일개수)
이를 암기하시오. https://modoocode.com/82 를 참조하시오.
바. '앞에올문자열'에 'Ori' 를 주시오.
사. '뒤에붙일문자열'에 'QuackQuack' 를 주시오.
아. strncat을 이용하여 'OriQuack'이 출력되도록 붙일개수를 조정해 보시오. 또한, 붙인값을 출력해보시오. strncpy는 특정문자열에 다른 문자열을 n개만 잘라 붙이는 기능을 함을 확인하시오.
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<string.h>
#pragma warning(disable:4996)
int main() {
char str1[20];
char str2[20];
strcpy(str1, "Ori");
strcpy(str2, "QuackQuack");
strncat(str1, str2, 6);
puts(str1);
return 0;
}
2. 문자열 편집을 위해 string.h 를 인클루드 하고 다음 문항에 답하시오. (2시간 소요)
가. memmove의 용법은 다음과 같다.
memmove(원문에서붙일위치,붙일글자시작점,붙일글자개수)
이를 암기하시오. https://modoocode.com/78 를 참조하시오.
나. char[] 형으로 "123456789"를 넣고, 크기는 20으로 하시오.
다.123456456789가 되도록 붙일글자시작점과 붙일글자 개수를 조정해보시오. 또한, 붙인값을 출력해보시오.
라.1234589가 되도록 붙일글자시작점과 붙일글자 개수를 조정해보시오. 또한, 붙인값을 출력해보시오. memmove는 특정문자열에서 n번째 이후를 삭제 한 후, 필요한 값을 m개 붙일수 있는 기능을 함을 확인하시오. 참고) 필요한 값을 0으로 주면 삭제만 할 수 있음
#include<stdio.h>
#include<ctype.h>
#include<stdlib.h>
#include<string.h>
#pragma warning(disable:4996)
int main() {
char str1[20] = "123456789";
memmove(str1 + 6, str1 + 3, 6);
puts(str1);
return 0;
}
# 심화과제 제출 양식( 안해도 됨 )
1. 자바의 substring은 시작지점부터 n번째 자리부터 끝까지를 반환할 수 있다. 또한, 시작지점부터 n번째 자리에서 시작하여 m번째 자리까지 뽑아낼 수 있다. https://blog.naver.com/eun2ee/221495754814 를 참조하여 자바의 substring함수를 c에서 사용할 수 있도록 구현해보시오. https://modoocode.com/235 를 참조하시오. https://codingdog.tistory.com 를 참조하시오. strlen과 이번주에 다룬 함수를 이용하시오.
가. 시작지점부터 n번째 자리까지 잘라주는 함수를 구현하시오. 예를들어, "123456789" 에서 잘라 "12345"를 만들어주는 함수를 만드시오.
나. 시작지점부터 n번째 자리에서 시작하여 m번째 자리까지 잘라주는 함수를 구현하시오. 예를들어, "123456789"에서 잘라 "3456"이 나오도록 해 보시오.
다. '나'를 이용하여 n번째 자리부터 m개의 문자열을 잘라주는 함수를 구현하시오. 예를들어, "123456789"에서 잘라 "234567"이 나오도록 해 보시오.
라. php의 substr은 뒤에서 n번째 문자부터 끝까지를 반환할 수 있다. 또한, 시작지점에서부터의 순서와 끝 부분부터의 순서를 주어 그 사이 값을 반환할 수 있다. https://blog.naver.com/changbab/221381035019 를 참조하시오. 뒤에서 n번째 문자부터 끝까지를 반환하는 함수를 만드시오. 예를들어, "123456789"에서 -3(뒤에서 세번째란 의미) 을 주면 789 가 나오도록 해보시오.
마. 앞에서 n번째 문자부터 뒤에서 m번째 문자까지 추출하는 함수를 만드시오. 예를들어 5,-2(앞에서 5번쨰, 뒤에서 2번째란 의미) 를 주면 5678이 나오도록 해보시오.
2. 다음과 같은 원시데이터가 있다.
대전에서 서울까지 가는 버스 시간표를 나타낸 것이다. 데이터 획득주소는 https://www.kobus.co.kr/mrs/rotinf.do 이다. 심화 1에서 설계한 함수 및 이번주에 다룬 함수를 적극적으로 이용하시오.
38 석 심야고속(주)동양고속23 : 15 44 석 고속(주)천일고속21 : 40 22 석 우등(주)동양고속21 : 30 39 석 고속(주)동양고속21 : 00 39 석 고속(주)한일고속20 : 30 17 석 프리미엄금호고속(주)20 : 10 28 석 우등금호고속(주)19 : 30 39 석 고속(주)천일고속19 : 20 25 석 우등(주)천일고속19 : 10 13 석 프리미엄(주)한일고속18 : 50 23 석 우등(주)동양고속18 : 30 39 석 고속(주)한일고속18 : 20 19 석 우등(주)동양고속16 : 50 22 석 우등(주)한일고속16 : 40 15 석 프리미엄(주)천일고속16 : 00 26 석 우등(주)중앙고속15 : 50 28 석 우등(주)동양고속15 : 40 16 석 프리미엄(주)중앙고속15 : 10 42 석 고속(주)동양고속14 : 40 25 석 우등(주)동양고속14 : 10 43 석 고속(주)천일고속13 : 55 43 석 고속(주)동양고속13 : 30 14 석 프리미엄금호고속(주)13 : 10 42 석 고속(주)한일고속13 : 00 28 석 우등금호고속(주)12 : 40 21 석 프리미엄(주)한일고속12 : 00 43 석 고속(주)천일고속11 : 50 25 석 우등(주)천일고속11 : 30 22 석 우등(주)동양고속11 : 00 32 석 고속(주)한일고속10 : 40 19 석 우등(주)동양고속09 : 20 14 석 프리미엄(주)천일고속09 : 10 18 석 우등(주)한일고속08 : 20 23 석 우등(주)동양고속08 : 10 21 석 프리미엄(주)중앙고속08 : 00 17 석 우등(주)중앙고속07 : 30 43 석 고속(주)동양고속06 : 10 13 석 심야우등(주)동양고속00 : 10
가. 출발시간, 고속버스회사명, 버스등급(고속/우등/프리미엄), 심야여부, 잔여좌석을 저장할 적절한 자료구조를 설계하시오.
나. 위 데이터를 적절히 잘라 자료구조에 값을 넣으시오. 단, 출발순서가 빠른 순서대로 넣으시오.
다. 출발 시간의 '시'를 입력 받으면 그 시각 이후로 출발하는 모든 버스를 출력하도록 해보시오. 예를들어, '시'를 13으로 입력받으면 13시 이후에 출발하는 버스들이 검색되도록 해보시오.
라. '고속'은 45석, '우등'은 28석, '프리미엄'은 21석이다. 판매된 좌석이 전체 좌석의 몇%인지를 계산하고 이를 출력해보시오.
마. 프리미엄19600원, 우등15100원, 고속10300원, 심야프리미엄21500원, 심야우등16600원, 심야고속11300원이다. 이를 이용하여 모든 버스의 가격을 출력하도록 해 보시오.
바. 각 버스 회사가 현재까지 예매한 총 일간 매출을 구하시오.
사. 각 버스가 운용에 고속은 15만, 우등은20만, 프리미엄은 25만원이 들 때, 몇%가 탑승하여야 이득이 되기 시작하는지 구하시오. 단, 각 버스(고속,우등,프리미엄)의 탑승률은 회사가 같으면 모두 같다고 가정하시오. 즉, 각 버스 회사별로 탑승률에 따른 손익분기점을 구하시오.
'프로그래밍 > C' 카테고리의 다른 글
C언어 22주차 과제 (0) | 2021.03.11 |
---|---|
C언어 21주차 과제 (0) | 2021.03.02 |
C언어 18주차 과제 (0) | 2021.02.14 |
C언어 16주차 과제 (0) | 2021.01.29 |
C언어 15주차 과제 (0) | 2021.01.12 |