0:05 안녕하세요. 오늘 할 내용은 C베이직스 C의 가장 기본적인 그런 내용들을 하도록 하겠습니다. C프링 여러 가지 예제를 통해서 C프라밍이 어떻게 구성이 되는지 보려고 합니다. 먼저 첫 번째 예제는 두 개의 정수를 더하는 프로그램이 되겠습니다. 여기 C 프로그램을 보면 C프레밍은 인클루드 스탠더드 i.h로 H로 시작이 되고 있습니다.요 스탠더드 io.h 인풋 아웃풋을 위한 여기 프린트풋 스캠프가 있는데요. 이런 인풋 아웃풋을 위한 라이브러리가 되고 있고요.인 included라고 하는 거는 C의 프리프로세서가 됩니다.
0:51 C의 프리 프로세서는 컴파일 전에 컴파일 전에 먼저 동작하는 것이고 여기서는 스탠더드.h H이라는 파일에 있는 텍스트를 갖고 와서 여기 복사를 붙여 넣게 됩니다. 그리고 C프밍은요 메인 펑션 메인 함수를 동작을 시키는데요. 메인 함수는 인티저 타입으로 나중에 인티저 값을 리턴하게 됩니다.이 이 메인 함수의 내용을 보면 여기 인티저 정수 타입으로 a와 e와 섬의 변수를 선언하고 있습니다. 그럼 변수 a b a와 b와 썸에이 잡히게 되고요. 그리고 지금
1:37 프린트프를 이용해서요 엔터투 인티저라는 것을 출력을 하고 있습니다. 프린트는 이런 값 출력을 위한 것이 되고요. 그리고 스캠프는 거꾸로 사용자로부터 값을 읽어 드리게 됩니다.요 퍼센 D라는 거는 인티저 타입, 정수 타입을 얘기하고 있고 A와 B의 두 개의 정수 타입을 사용자로부터 받아서 A와 B에 집어넣게 됩니다.요 스캠프는 지금 여기선 포드블락 기준이고 비주얼 스튜디오에서는 약간 변 변형이 필요하게 됩니다. 그래서 스캠프 S, 언더바이스 이런 형태로 변형하는 것이 필요할 수 있습니다.
2:23 그리고 A와 B를 더해서 썸이라는 곳에 집어넣습니다. 이거는 더하기는 오퍼레이터고 더하기 마인 빼기 곱하기 나누기요 퍼센트는요 모듈러 디비전 그래서 어 나누고 나눗셈을 한 다음에 나머지가 되겠습니다. 그리고 결과를 출력할 때 프린트문으로 결과를 출력하고 있는데요. 지금 a + b는 썸로 출력하고 있고 인티저 타입이기 때문에 퍼 형태로 쓰고 있고요. 마지막에 슬래시에는 N은 엔더브 라인이 됩니다. 그래서 다음으로 넘어가는 것을 다음 라인으로 넘어가는 것을 얘기하고 있습니다. 메인 함수의 끝에는요 함수기 때문에 함수의 인자를
3:11 반언하는 결과를 발언하는 것이 되고 여기에 0을 리턴하고 있습니다. 0이라고 하는 것은 x 컨디션 0은 오케를 얘기하고 있고요. 0이 아니고 다른 값으로 반환이 돼서 나중에 수행 결과가 0이 아니고 다른 것이 오게 되면 그럼 오케이가 아닌 뭔가 잘못된 그런 형태로 생각할 수가 있게 됩니다. 여기 초록색으로 쓴 것은 코멘트가 되는데요. 코멘트는 슬 슬렉치 스타로 하게 되면 그러면 슬렉시 스타로 끝나게 되고요. 그 안에 여러 줄에 뭐 여러 줄에 커멘트를 쓸 수가 있습니다. 혹은 커멘트가 한 줄에 끝나게 되면 슬래시를 두 개 쓰면 얘는 슬래시 두
3:56 개 써서 끝 라인의 끝까지이 커멘트로 간주를 하게 됩니다. 다음 이제는 두 개의 정수를 비교하는 것입니다. 역시 인클루드 스탠더이 5. 위치가 있고 인트 메인 메인 함수에 지금 a b를 정의하고 맥스라는 것을 정의를 했습니다. a와 b는이 변수를 선언하면서 값도 할당을 하고 있습니다. a에는 5, b에는 10이라는 값을 할당했습니다. 그리고 a와 b를 비교하는 것이고요. a가 b이면 여기 이퀄이 두 개 있는 것이고요. 이 두 개 있으면 a와
4:44 b가 지금 같은지이를 보게 되고 a와 b는 다르죠. 다르기 때문에 a와 b를 같하는 폴스 포스는 여기서 0이 됩니다. 그래서 a와 b는 여긴 0이 되고이 부분을 동작시켰을 때 맞지 않으니까이 문장이 수행되지 않게 됩니다.이 오퍼레이터는 같은 거, 큰 거, 작은 거, 바른 거 같거나 큰 거 그리고 같거나 작은 거 이런 것들이 있을 수 있습니다. 그리고이 조건이 안 되면 스 이게 if 다음에이 조건이 만족하지 않으면 가게 되고 역시 s 다음에 if가 돼서 a가 b보다 큰지를 검사하고 있습니다. a는 5고 b는 10이니까 a와가 b보다 크다도
5:32 폴스가 되죠. 0이 됩니다. 그래서 이것도 역시 수행이 되지 않습니다. 그러면 이게 아니니까 그다음 스가 수행이 되고 이건 a가 b보다 같은게 있었고 a가 c보다 큰게 있었고 그러니까 a가 b보다 작은 조건이 됩니다. 이것은 맞는 거고요. 그리고 따라서요 문장이 수행이 되고 있습니다. 여기서 주의할 거는 if 다음에 여기 안에 들어올 때 x라고 하면은요 x는 폴스루 0일뿐만 아니라 다른 값을 가질 수 있게 되고요. 근데이 fx는 x가 0이 아닌 것을 얘기를 하고 있습니다. 따라서 if 0이면은 수행을 하지 않고 if 1이면 수행을
6:17 하는데 if 2도 이것도 역시 일종의 참으로 생각해서 수행이 되게 됩니다. 그리고 또 하나 여기 문장은 두 개의 정수 a b의 최댓값을 구하고 있습니다. X는 지금 a보다 b a가 b보다 큰 면은 a 그렇지 않으면 b 이거는 if a가 b보다 크면 맥스는 a 그렇지 않으면은 맥스는 b 이거와 같은 문장은데 이거를 한 번에 쓴 것이 되고 있습니다. 그래서 a와 b의 조건이 만족하면 처음 거 a 그렇지 않으면 b 이렇게 쓰고 있게 되고요. 프린트물을 사용해서 a와 b요 인티저 타입이니까 퍼 d가
7:04 돼서 맥스 오브 a b가요 맥스 d가 된다. 그리고 슬래시에는 다음 라인을 얘기를 하고 있습니다. 그래서 결과는 이런 형태로 나오게 되죠. 역시 프로그램 맨 끝에는 리턴 제로가 수행이 수행이 되고 있습니다. 이번에는 세 개 세 개의 정수를 비교하고 있습니다. 그래서 이번엔 a와 b와 c가 있게 되죠. 그리고 역시 맥스라는 것도 좋습니다. 여기 a b c를 비교하기 위해서 이프스가 있고 그리고 또 요런 맥스를 하는 그런 형태도 지금 있습니다. 세 개
7:51 중에 지금 제일 큰 것을 찾기 위해서 a, b, c가 있으니까 a와 b를 비교하고 a와 c를 비교해서 a가 b보다 크고 a가 c보다 크면은 a가 가장 큰 것이다. 이렇게 출력할 수 있습니다. A가 B보다 크고 A가 C보다 크고이 로지컬하게 엔드는 엔드가 하나가 아니라 엔드 두 개 이렇게 표현하고 있습니다. 역시 로지컬어는 어가이 슬래시가 두 개 있게 하게 되고요.이 하나가 되면 엔드 하나 오 하나게 되면 빗단위로 동작하는 것이고 로지컬하게 참이냐 거짓이냐로 우리가 비교를 한다. 그러면 and는 and드 두 개어는 두 개 이렇게
8:37 하게 됩니다. 낫은요 느낌표로 표현하고 있습니다. 그래서 이게 만족하지 않으면 스가 수행되고 역시 if b가 a보다 크고 b보다 c가 크면 그러면 b가 제일 큰 거로 출력을 하게 됩니다. 그것도 아니면 c가 a보다 크고 C가 B보다 크면은 C가 제일 큰 것으로 출력하게 됩니다. 그럼 여기서는 a가 b보다 크고 a가 c보다 크고 같은 것은 고려져 놨기 때문에 a가 뭐 b와 같고 한 형태가 되면 제일 큰게 하나가 아니라고 하면요 맨 마지막 문장이 수행되게 됩니다. 어전 2에서는 조금 다르게 a를 맥스에다 집어넣고요. 가 맥스보다 크면은 맥스는 B로
9:24 바꿔치기 하고 C가 맥스보다 크면은 맥스는 C로 바꿔치기를 하고 있습니다. 그래서 처음에는 맥스의요 a값 15가 들어가 있는데 b가 맥스보다 크니까 맥스가 20으로 바뀌었고 그리고 맥스가 또 c가 맥스보다 크니까 맥스가 c값으로 25로 바뀌게 됐습니다. 그래서 25가 가장 큰 것으로 출력을 하고 있습니다. 다 25가 제일 크다라고 출력하고 있는데이 문장과이 문장은 조금 다른게요 밑에는 a b c가 같은 값이라도 똑같이 25라도 그 경우에서는 25가 가장 큰 것, a가 제일 큰 것으로 그렇게 나오게 되는데요. 위에서는 그게 아니고 다 세기가 같은 값이라면 val난유니크라고
10:10 출력이 되겠죠. 그래서요 위에 거에서 지금 크다를 이퀄로 바꾸면 밑에하고 비슷하게 되겠지만 위에서는이 부등어를 사용해서 a와 b 값이 이런 다른 경우까지 구별해서 하고 있고요. 밑에서는 그것을 구별하지 못하고 있습니다.어요 문장은요 한료 쓸 수도 있겠죠. 그래서 앞에서 여기 했던 것처럼 지금 if s 대신에 a가 b 이상이고 a가 c 이상이고 하면은 그러면 a고 그렇지 않고 b가
10:57 c 이상이면 b고 그렇지 않은 경우 c 이런 식으로 한 줄로 쓸 수도 있겠습니다. 다음에는 짝스홀수 그리고 나눗셈 그리고 어 증가 감소 이런 것을 좀 보도록 하겠습니다. 역시 인클루드 스탠더드어 점치가 있고 메인 함수가 수행이 됩니다. 그래서 지금 a하고 b라는 정수를 정의를 했고요. a= 8, b는 3 이렇게 정의를 했고 그리고 if a요 퍼센트는 a를 2로 나눠서 나머지가 됩니다. 나머지가 2로 나누 나머지가 0이면 짝수고요. 0이 아니면
11:45 1이겠죠. a로 나눈 2가 0이 아니면 홀수 이렇게 하게 됩니다. a는 8이니까 8은 짝수 이렇게 출력이 되겠죠.요 요 두 번째 파트는 인티저 디비전 하고 리메인더. 그래서 지금 인티저 디비전이 되면 그러면 인티저 값을 나눈 거 여기는 몫을 얘기하고 있고요 퍼센트는 나머지를 얘기를 하고 있어요. 8 나누 3을 하게 되면 인티저와 인티저를 지금 나눈 것이고 이때는 인티저 디비전이 되고 그래서 2라는 정수가 나오게 되고 그래서 그 몫이 나오게 되고 그리고 나머지는요 퍼센트에서 나오게 돼서 8 나 3을 나머지는
12:31 2가 되고 있습니다. 그리고 세 번째는 증가 감소를 얘기하고 있는데 증가를 할 때 넘이라는 걸 증가시킬 때 플러스 플러스 플러스를 두 개 써서 증가시킬 수 있는데 플러스 플러스가 앞에 올 수도 있고 뒤에 올 수도 있겠죠. 앞에 오는 경우는 먼저 증가를 시키고 그다음에 사용을 하는 것이고 뒤에 오는 경우는 먼저 사용을 하고 그리고 나서 증가를 하는 것이 됩니다. 예를 들어서 이런 문장이 되면 a 마스 - b+플를 프린트하게 되면 먼저 프린트 사용을 하게 되고 그리고서 그다음에 감소나 증가를 시키게 됩니다. a가 8이고 b는 3이니까 a 마스 - 마
13:17 b+플는 일단 8 3이라는 값이 사용이 되고 그리고 나서 a는 7로 감소했고 b는 4로 증가를 하게 됩니다. 그래서 a - b +플러스를 출력 출력하면 8 3이 나오는데 바로 또 출력하면 7 4가 나오게 되겠죠. 그리고 또 마이너스 마이너스 플러스 플러스를 하게 되면이 경우에서는 마이너스 마이너스 플러스플러스가 앞에 붙었기 때문에 먼저 감소하고 증가를 한 다음에 사용이 되겠죠. 그래서 7 4에서 7은 6으로 감사하고 4는 5로 증가시킨 다음에 그다음에 사용이 돼서 6 5란 값이 사용이 되고
14:04 출력이 되고 있습니다. 지금이 나눗셈을 할 때 인티저 인티저 디비전을 얘기했고요. 인티저 디비전은요 몫을 얘기라는 것이고 3 나 1을 할 때 1이 되고 슬로팅 디비전은이 경우에선 3.0 나.0을 0을 하면 플로팅끼리 나누게 되면 1.5라는 값이 나오고 있습니다. 이번에는 어 시험 점수를 어떤 그레이드 a b c d 형태로 나타내게 되는 것이고요. 여기서 역시
14:50 included 스탠더드 i5.h로 뭐치를 해서요 프린트프 같은 분을 함수를 사용할 수 있게 하고 있고 또 하나 STDL 스탠더드 라이브러리를 포함시키고 있습니다.요 스탠더드 라이브러리는 여기 엑시트라는 함수 여기 엑시트라는 함수를 사용하기 위해서 있는 거고요. 좀 엑시트라는 함수는요 프린트프는 스탠더드 I점에 있고 엑시트는 스탠더드 라이브러리에 있게 됩니다. 어, 먼저 메인 함수에서 보면 스코어라는 그런 인트 정수값을 정의를 합니다. 지금 83으로 정의를 했고요. 그리고
15:37 그레이드라는 걸 정의했습니다. 얘는 캐릭터 문자로 정의를 했습니다. 먼저 스코어라는 값은 우리가 0부터 100 사이 값으로 한정하고 있는데이 값을 잘못 설정했는지 확인하는 것을 하고 있습니다. 이건 프로텍션 용도로 되고요. 그래서 스코어가 0보다 작거나 스코어가 100보다 클 경우에는 점수로 적합하지 않기 때문에 그때는 일리걸 스코어라는 걸 출력하고 있습니다. 그러면서 계속 진행하는게 의미가 없으니까 ex트에서 -1 원래는 0으로 리턴을 하는데 0으로 끝나게 되는데 -1이라는 값을 주면서 끝나게 그렇게 하고 있는 것이죠.요 요 엑시트라는 거는 스탠더드
16:23 라이브러리에 있고요.이 첫 번째 부분은 스코어를 어떤 그레이드 A, B, Cd로 지금 하려고 하고 있습니다. 여기 두 가지 버전이 있어서 버전 1이 있고 버전 2가 있고요. 버전 2를 보면은 스코어가 90에서 100사이 90에서 100사이로 하기 위해서는 스코어가 90 이상 그리고 엔드 엔드 로지컬 엔드가 돼요. 그리고 스코어가 100 이하 이렇게 두 개로 나눠쓰고 있습니다. 그래서 스코어하고서 뭐 90 이상 100 이렇게 쓰진 않고 스코어가 90 이상이면서 스코어가 100 이하인 경우에서는 그레이드를요 A요 캐릭터는요
17:09 다운표가 하나씩 있는 거로 해서 그렇게 나오게 되고요. 그리고 스트링 문자열에서는 두 개 다음 표관 두 개 있는 형태로 나오게 됩니다. 그게 아니면은 보면은 스코어가 80 이상 89면은 B 그리고 또 스코어가 70에서 79면은 C 스코어가 60에서 69면 D 그렇지 않으면 나머지 조건 0에서부터 59까지는 F 이렇게 쓰고 있습니다. 그리고서 출력을 해서 레터 그레이드는 여긴 퍼 C는 캐릭터 타입으로 출력하고 있는 것이에요. 그레이드가 할당이 됐고 그 그레이드를 캐릭터 타입으로 출력을 하고 있습니다. 똑같은 것을 스위치 문을 사용해서 할 수 있는데 스위치
17:55 문은요 스위치요 괄로 안에 있는 것을 가지고요 케이스들 중에 하나의 매핑이 돼서 수행을 하고 있는 것이고요. 스코어를 10으로 지금 나눴어요. 인티저치 미전했기 때문에 지금 0에서 100 사이의 값은 스코어를 10으로 나눈 거는 0에서 10 사이에 정수값을 얻게 되고 그럼 케이스 10, 케이스 9는 a를 설정하고 있어요. 케이스 10에는 지금 브레이크가 없기 때문에 케이스 10이면 100점이면은 10이란 값을 가질 것이고 여기서 아무것도 안 하고 다음으로 바로 넘어가게 됩니다. 90점일 경우에는 9로 나와서 여기로 바로 가게 되고 그레이드가 A가 된 다음에 브레이크를 하게 됩니다. 브레이크를 안 하게 되면 바로 뒤로
18:41 가서 계속하기 때문에 엉뚱한 결과가 나올 수 있겠죠. 항상 브레이크가 필요하게 됩니다. 그리고 케이스 80 몇 점일 경우에 지금 여기서 83점이니까 케이스 8로 1로 가서 그레이드가 B가 되고 브레이크 만일 브레이크를 안 하면 그다음 거에서 C DF까지 가겠죠. 그리고 스위치 문에서는 쭉 케이스로 한 다음에 이게 다 아니면 디폴트 값이 있어서 10 9 8 7 6도 다 아니면 디폴트 얘는 지금 0에서 5의 값이 되겠죠.이 이 경우에선 그레이드 F로 하고 있습니다. 그래서 레트 그레이드는 지금 퍼센 C 그리고 슬래시에는 다음 라인 그렇게 해서 출력을 하고 있습니다. 여기서는 어 지금 버전 1하고 버전 2는 A B
19:28 C D F로 출력을 하고 있는 것이고요. 그게 아니고 지금 패스 페일로 하기 위해서 또 있는데이 경우에선 그레이드가 어 여기서 이제 그레이드를 만들었기 때문에 그레이드가 a b c 아 a b인 경우에는 패스 c df인 경우에 페일 이런 식으로 지금 하고 있습니다. 그리고 케이스 a 다음에는이 브레이크가 없기 때문에 바로 가게 되고요. 케이스 A나 B가 나오면 케이스 A면 바로 넘어가서 다음 개 수행되고 B면 여기서부터 수행돼서 패스가 되고 브레이크에서 멈추게 됩니다. 그리고 C나 D나 F가 되면 페일이 되죠. 만일요 브레이크문이 없다면 그러면 지금 83이니까요
20:15 문장에 의해서 그레이드는 B가 됐을 거고 패스를 출력한 다음에 멈추지 않고 밑으로 내려가서 또다시 페일이라는 걸 또 출력을 하게 될 것입니다. 여기서는 브레이크가 있어서 패스만 하고 멈추게 됩니다. 그리고 패스 페일 외에 뭐 여기 문장에선 그런게 나오진 않겠지만 그게 아니면 디폴트라는 걸 해서 일리 그레이드라는 걸 항상 해 주는게 좋게 됩니다. 그리고 마지막에 이제 리턴 제로를 통해서 메인을 마무리하게 되겠습니다. 다음은 두 개 시간 두 개 시간을 더하게 되는 것이고요. 그래서 우리가 시 시간과 분으로 표시된 그런 두
21:01 개의 시간을 더하려고 하고 있습니다. 여기서 마찬가지로 인클루드 스탠더드 점치한 다음에 메인이 있고요. 여기선 컨스트라는 걸 통해서 인티저 타입인데 민퍼라는 거를 60으로 정의를 하고 있습니다. 얘는 정소로 해서 민퍼 아워라는 걸 정의했는데 이게 컨스트 컨스트라는 거는 컨스턴트 그러니까 어 값이 수정이 되지 않는다는 걸 얘기하니까 민퍼하워 뒤에 나오는 민퍼하워는 전부 60으로 대체가 된다라고 볼 수가 있게 되겠죠. 그리고 두 개의 시간에서 아, 미니원, 아 2, 미니 2를
21:48 정했고 3시간 45분 그리고 2시간 30분이라는 거 한 다음에 아 3, 미니 3에다 집어넣으려고 하고 있습니다. 그러면 시간은 시간끼리 더하고 분은 분끼리 더하면 되게 되는데 3시간 45분 더하기 2시간 30분을 하게 되면 5시간 75분이란 숫자가 나오게 되겠죠. 근데 75분은 우리가 분을 표시할 때 75분은 그렇게 표시하지 않기 때문에 60분이 넘어가는 경우에는 다시 시간 늘리고 분을 변화시키는게 필요할 수 있을 거예요. 그래서 미닛은 0과 미파워 60 사이에 60보다 작아야 되니까 그러니까이 경우에서는 미니을 인퍼 아워로 나눠서 그래서 75를
22:36 60으로 나눈 나머지 아 몫을 갖다 여기다 5에다 더해서 6를 만들어서 아를 3을 하고 있고요. 여기 플러스 이은 얘는 a + b는 a는 a + b 얘를 얘기를 하고 있습니다. 마찬가지로 마이너스 이은 a - b는 a는 a - b 곱하기 이퀄 나누기 이퀄 이퀄 다 마찬가지로 이런 형태로 사용이 될 수 있습니다. 마찬가지로 미닛 3는 여기 하게 되면은 미닛을 미닛 나누기 민퍼하워 이렇게 된 것이고요. 그러면 75를
23:24 60으로 나눈 나머지가 되니까 15가 들어가게 됩니다. 그래서 결과는 6시간 15분으로 출력이 될 수 있죠. 3시간 45분 더하기 2시간 30분은 5시간 75분이 아니라 6시간 15분으로 출력을 할 수 있게 되겠습니다. 여기 문장은 여러 형태로 사용될 수 있는데요. 한 가지에는 미니스 60분보다 크면 그러면 미니스에서 60을 빼고 아을 증가시켜도 되겠죠. 이렇게 쓸 수도 있고 다양한 형태로 쓸 수가 있게 될 거예요.
24:11 이번에는 시간을 좀 변화시키는 건데 우리가 어 날짜로 받은 데이로 받은 값을 이어 위크데이로 변환을 시키려는 거예요. 412일은 1년 6주 5일 이런 형태로 변화를 시키려고 하고 있습니다. 역시 인클루드 스탠더드 io.h를 해서하게 되고요. 이제 프리프로세서가 스탠더드 io.h에 있는 걸 가져다 여기다 복사해서 넣습니다. 그리고 또 인클루드 스탠더드라이브러리.h H 여기는 엑시트라는게 있어서요 엑시트라는게 있으면은 여기 스탠더 라이브러리 좀 있게 되고요. 그리고 또 디파인이라는 걸 프리프로세스 사용하고 있어요. 디파인은 얘는요
24:59 데이퍼 이어라는 거를 365라는 것으로 바꿔 치기하고 있습니다. 건 앞에서 폰스트 사용하고 비슷한 건데요. 게이퍼 이어라는게 밑에 있으니까 이걸 가져 30 이것을 365라는 그런 정수값으로 바꿔치기 하고 있는 것이죠. 그리고 데이퍼 위크 하게 되면 역시 이것도 7이라는 값으로 바꿔치기 하게 됩니다. 스프리 프로세스가 컴파일 동작하기 전에 데이퍼 이어를 찾아 가지고 360으로 바꾸고 데이퍼 위크를 찾아서 7로 바꾸게 됩니다. 메인에서는 지금 이어 위크 데이를 정의하고 프린트폰에서 엔터 데이를 받고 있습니다. 그리고 이걸 받아들이기 위해서 스캠프를 하게
25:44 되고요. 스캠프로에서 값을 받아서에다 집어넣게 됩니다. 이때 보통은 프로텍션을 위해서가 음수면은 지금 오동자가 될 수 있기 때문에 양수인 거를 지금 확인을 하는게 필요할 수 있습니다. 가 0보다 작으면은 그러면 이건 네가티브 넘버다라고 해서 x -1 -1이라고 하는 거는 우리가 일반적으로 0의 값으로 리턴해서 하는 것이 일반적인데 그렇지 않고 잘못 리턴했다라는 걸 표시할 수 있습니다. 여기 f라는 거는 이제 파일폼에서다 하는 것이고 여기 스탠더드 에러 스탠더드 에러는 에러가 났을 때 출력하는 그런 컨솔을 얘기하고 있고요. 에러가 났을 때 출력하는 곳에다 지금 네가티브 넘버를라는 거를
26:32 출력을 하고 있습니다. 그렇지 않으면은 가서 이어는 데일을 6 60 365로 그렇게 나눈 것이니까 1이 될 거고요. 그리고 데이는 데를 데이퍼 2억 365로 나눈 나머지가 되니까 47이라는게 되겠죠. 얘는 이런 식으로 쓸 수 있습니다. 데이에서 데에서 2 * 365를 빼는 거로 알 수도 있겠죠. 그러면 이제 1년이 빠지고 47일이 남았고요. 위크는 데이에다 데이퍼 위크 7 나 7하면 욕지가 나올 것이고 그리고 데이는네 나머지가 되겠죠. 47에서 7로 나눈 나머지가 되니까 5가
27:17 됩니다. 그렇게 해서 출력을 하게 되면 412일은 1년 6주 5일 이런 형태로 출력이 될 수 있습니다. 다음에는 그 먼스의 월 월에 며칠이 있는지를 보려고 하는 것이에요. 그래서 1 2 3 4 5 6 7 8 9 10 11 12알에서 며칠이 있는지를 보게 되는데 그래서 어 어떤 달에는 30일이 있고 어떤 달에는 31일이 있는데 2월 달 2월인 경우에서는 윤년이면 29일 그렇지 않으면 28일 이렇게 되겠죠. 그래서 6년인지를
28:03 보려고 하고 있습니다. 그래서 해를 받고 먼스 달을 받으면 그러면이 1600년이 6년인지 아닌지를 보려고 하고 있어요. 이게 이제 윤년인지를 보는 그런 조건이 되는 것이고 이건 좀 한 줄로 썼는데 이렇게 좀 복잡한 거를 한 줄로 쓴 것 봅니다. 그래서 6년인지를 보는 거는 400년마다 나오는 거는 400년의 배수는 6년이고 400년이 아닌 그런 100년마다는 6년이 아니고 그래서 어 1600년은 6년이고요. 1700년 1800년 1900년은 6년이 아닌 거죠. 그리고 그게 아니 그게 아니면
28:49 100의 배수가 아니면 4로 나눠서 떨어진 것이면 6년이고 그렇지 않으면 6년이 아닐 것입니다. 이거를 한 줄도 써서 어 400 400에 배수면은 눈이 아니고 그러면 그게 400 100으로 나눠 떨어진게 0이 아니거나 혹은 4로 나눠 떨어지는 것이 되면은 요런 경우에 이제 윤년인지를 보게 됩니다. 지금 그러면서음 워를 지금 표시하기 위해서 if s로 쓸 수도 있고 스위치로 표시할 수도 있는데요. 먼저 여기서 조건에서 먼스가 잘못내 가지고 1보다 작거나 12보다 크면 안 되니까 먼저 이걸 쓰게 되고요. 그래서 1보다 작거나
29:36 12보다 먼스가 크게 되면 잘못된 그런 월이 되겠죠. 그리고 먼스가 이게 되면은 6년이면 29일, 그렇지 않으면 28일을 출력하고 그리고 2월이 아닌 경우 4월, 6월, 9월, 11월은 30일이고 그렇지 않고 나머지는 31일이 되겠습니다. 똑같은 것을 스위치 문으로 쓰게 되면 먼스를 받아서 2월이면 리프 6년이면 29일, 그렇지 않으면 28일 쓰면 되고요. 요거 4 6 9 11 경우에 여기 여기는 브레이크가 있고요 사이 사이는 브레이크가 없죠. 그래서 4 6 9 10 11이 되면은요 문장이
30:22 수행이 됩니다. 그래서 30일이 됐고요. 역시 브레이크가 반드시 있어야 되고 그렇지 않으면 그다음으로 넘어가겠죠. 그게 아니고 1 3 5 7 8 10 12는 31일이 되고요. 이것도 다 아니고 딴 거면은 항상 디폴트라는 걸 써서 이게 다 아닌 경우에서는 뭐가 잘못된 거죠. 그래서 잘못됐으면은 임밸리드 인풋이라는 것을 출력하는게 필요하게 됩니다. 그리고 리턴으로 이제 끝나게 되죠. 지금 2월이기 때문에 1600년에 2월이기 때문에 얘는 윤년이 아니고 아 6년이고 그래서 29일 29일로 출력이 되고 있습니다.
31:10 그리고 이제 변수 요번에는 변수라는 걸 볼 건데요. 변수라는 거는 값을 값을 저장하기 위한 플레이스 홀더라고 돼 있죠. 값을 저장하기 위한 저장 공간이 될 거고요. 여기서 변수를 여러 가지를 보고 있는데 차는 캐릭터고요. 그리고 인트는 인티저 정수고 롱롱이라고 있는데 이거는 좀 긴 정수를 얘기하고 있습니다. 그래서 캐릭터는 한 바이트 찾지. 인티저가 4바이트 차지하는데 비해서 캐릭터는 한 바이트를 차지하고 있고 인티저 중에서 좀 짧은 거는 쇼트라고 표시해서 얘는 2바이트 한 바이트는 8을 얘기하고 있고요. 그래서 인티저는 4바트니까 32이
31:57 되는데 쇼트는 2바이트니까 16이 되겠죠. 그리고롱 혹은 롱롱 인트라고 하는 거는 조금 더 더 큰 숫자를 표현하기 위해서 4바이트가 아니라 8바이트로 표시하고 있습니다. 그래서 값이 굉장히 큰 경우에는 이런 경우에 롱동을 사용할 수 있겠죠. 그리고 플로팅. 그래서 실수인 경우에는 플로팅 포인트로 표시할 수 있게 되고요. 플로팅 포인트는 4바이트로 표시하게 됩니다. 그리고 플러킹 포인트 중에서 조금 더 더 어 프리시즌이 긴 거 더 큰 값 값 값의요 숙제가 큰 거는 더블로 표시해서이 경우에는 8바이트로 표시하고 있습니다. 더블도 롱블이
32:44 있어서 더 긴 거는 12바이트. 이거는 정해져 있는 건 아니고요. 컴퓨터에 따라 가지고 좀 다를 수 있습니다. 그래서이 값들 확인하고 싶으면 사이즈 오브 캐릭터, 사이즈 오브 쇼트 이런 식으로 하면 컴퓨터에서 어떤 값을 쓰고 있는지 확인이 될 수 있어요. 이게 캐릭터냐 인티저냐 플로팅 포인트냐에 따라 가지고 우리가 값을 출력할 때 캐릭터면 퍼 C로 표시할 수 있고 인티저면 퍼센트 D인데 지금 롱롱으로 표시한 거는요 LLD거나 혹은 i64D 이런 식으로 컴파일보다 조금 다른데요. 이런 값 정도로 표시할 수 있습니다. 그리고 플로팅 포인트나
33:29 더블 같은 경우에는 퍼 F로 표시하면 지금 12.345678 3 4 5 6 7 8 이런 식으로 표시가 되고 그리고 퍼센트 2로 표시하게 되면은 여기 어 맨사라고 해서요 1.234 5678에다가 곱하기 10의 1승 이런 형태로 지금 표시를 하고 있습니다. 그리고 여기 사이즈 오브라는 것은이 캐릭터, 쇼트, 인티저 이런게 컴퓨터에서 몇 바이트를 차지하고 있는지를 컴퓨터마다 다르기 때문에 이것을 좀 읽어 드리도록 하는 함수가
34:16 되고 있고요. 그래서 요게 지금요 예제에서는 요렇게 나오고 있죠. 음. 그래서 여기 지금 값을 쓸 때 좀 보면 될 거고요. 여기 퍼센트 5는 옥타를 얘기하고 있고 퍼센 X는 얘는 8진수고 이건 16젠스로 표시할 때가 되고요. 퍼센트는 그래서 0하고 그 이상을 얘기를 하고 있습니다. 퍼 S는 퍼 C는 캐릭터 하나고요. 퍼센트 S는 문자로 얘기하고 있고요. 퍼센트 P는 나중에 포인터를 얘기를 할 거예요. 그래서 포인터를 표현할 때 나타내고 있습니다.요 찌뿔에는 여기에 추가적으로 물 타입이
35:04 있어서요. 얘는 한 바이트를 체제하고 있고 얘는 참이냐 거짓이냐를 나타낼 수 있게 돼요. 이렇게 여러 가지 타입들이 있는데이 타입들을 서로 하나의 타입에서 다른 타입으로 변하는 걸 타입 캐스팅이라고 얘기를 하고 있습니다. 여기 인티저가 있고 어 플로팅이 있고 그렇게 있는데 이거를 타입을 변환해서 바꿀 수가 있게 되겠죠. 그래서 A는 인티저인데 인티저에다 플로팅이라는 걸 붙이게 되면 그러면 인티저에서 플로팅으로 변하게 되고요. 원래 A 나 b를 하면은 인티저
35:51 디비전이 되죠. 그래서 그 경우에서는 3 나 2 여기 5죠. 어, 예를 들면 3이라고 치면은 3 나 2를 하게 되면 1 이런 형태로 나오게 되는데요. 여기서는 음, 5 나 2가 되는데 원래 a b a 나 b를 하게 되면 5 나 2는 2가 되고 그다음에 플로팅을 하게 되면 그러면 2.0이라는 값이 나오게 되겠죠. 근데 A에다 플로팅을 바꾸게 되면 5.0으로 바뀝니다.이 분자 분모 중에서 하나라도 하나라도 어 플로팅 포인트면 플로팅 포인트 결과가 나오게 됩니다. 플로팅 포인트 디비전이 돼서 3.0
36:36 나 2.0도 1.5고 3.0 나 2도 1.5고 3 나 2. 2. 2.0도 1.5가 됩니다. 근데 3 나 2는 1이 되고 있고요. 그래서 이런 경우에 양쪽 중 둘 중에 하나만 플로팅을 붙여도 플로팅 디비전이 돼서 그래서 플로팅 결과가 나오게 됩니다. 여기 점 1F는1F는 플로팅으로 표시하는데1이라고 하는 거는 소수점 첫 번째까지 소수점 첫 번째까지 출력을 하라라는 뜻이 되고 있습니다. 그래서 이런 형태로 테이캐스팅할 수 있고요. 그리고 플러팅을 인티저로 바꾸면 그 CD가 지금 플러팅으로 정리돼 있는데 인티저로 바꾸면 2.3을 인티저로 바꾸면 2, -2.3도 -3도 -2가 되고 있습니다. 이런
37:23 걸 이용해서 지금 트렁케이션 소수점 자리를 자르는 거를 지금 하고 있는데요. 요런 형태로 쓰고 있어요. 2라는 값이 3.4567이 되고 있는데 거기에 100을 곱하게 되면은 그러면 300 45.67이 되겠죠. 그래서 거기다 인티저 타입 캐스팅을 하게 되면 그러면 345라는 값이 나오게 될 것이고 다시 플로팅을 하게 되면 345.0이 0이 될 거예요. 그리고 다시 100으로 나누게 되면 3.4500이래서요 4567요 두 끝에 두 개를 지금 트렁케이션에서 잘라 버려서 없애 버린
38:09 거를 알고 있어요. 그래서 지금 끝에 두 개를 잘려 버렸고 그때 세 개를 잘려 버리려면 여기 1천 뭐 이런 식으로 바꾸면 되겠죠. 그렇게 해서 3.4567은 지금 소수점 둘째짜리 뒤 부분 밑에 부분을 잘라버려서 3.4500으로 그렇게 하고 있어요. 이렇게 출력할 때도 점 퍼점 4이프는 점사f는 소수점 네자리까지 출력을 하라는 뜻이 되고 있습니다. 이번에는 초에서 시간으로 바꾸는 그런
38:58 형태가 되는데요. 지금 여기 메인에서 보면은 세크 4,000초라는 거를 1.1시간 형태로 바꾸려고 하고 있습니다. 또 하나는 km/h 100km/h를 27.8m/s로 /세로 바꾸는 거를 하려고 하고 있어요. 그래서 세를 아로 바꾸고 아를 미/세크로 지금 바꾸려고 하고 있어요. 이걸 위해서 지금 세크 퍼민 1초에 1분의 몇 초가 있는지 그리고
39:44 민퍼하워 한시간에 몇 분 있는지 그리고 킬러오 이걸 정의를 하고 있어요. 이건 컨스트 형태로 정의를 해서 할 수도 있고 앞에서 봤던 것처럼 디파인 형태로 할 수도 있게 돼요. 그래서 초에서 시간으로 바꾸는 거 보면 아를데 세크를 플러팅 포인트로 탑캐스팅을 한 다음에 그래서 4천을 4천.0으로 0으로 바꾼 다음에 그리고 한시간에 세크민 곱하기 민퍼/퍼 아우가 있게 되죠. 그래서 3,600초가 있으니까 3,600으로 나누게 되면 1.1시간이라는 값을 나오고 있습니다. 여기는 1.1은1F
40:31 그래서 소수점 최제끝자리까지 표시해서 1.1로 나오고 있습니다. 이건 여기 세퍼 60 나 60 * 60 이렇게 했는데 혹은 나누기 60한 다음에 또 나누기 60을 해도 돼요. 그래서 나누기 세크민 그리고 나누기 민파/하워 이런 형태로 써도 상관없습니다. 또 두 번째는 km/h를 미/s로 바꾸는 것이고요. 그럼/h워를 미/s로 바꾸면 그러면 km를 미터로 바꾸기 위해서는 거기에 k이라는 거를 곱하고 그리고 다시 또 아를 세크로 바꾸기 위해서는 세크 펌밍과 민퍼 아워를 나눠 주면
41:16 됩니다. 근데 여기도 마찬가지로 플로팅 포인트로 타 캐스팅 한 다음에 그래서 100km/를 100.0으로 0으로 바꾸고 거기다 다시 1000을 곱해서 그래서 10만을 만든 다음에 그다음에 60도 나서 3,600으로 나누게 되면 27.8이라는 값이 나오고 있습니다. 또 소수전 초재 자리까지 출력을 해서 17.8m/s로 8m/ 출력하고 있어요. 만일 여기 플로팅 포인트를 다 제거를 하게 되면 그러면 인티저 디비전이 되는 것이고 그는 4,000 나누 3,600을 인티저 디비전으로 하게 되면 1이란 값이 나오게 되겠죠. 마찬가지로 100km도 슬로팅 포인트로 앞바꾸게
42:02 되면 그러면 값이 좀 다르게 나오게 될 거예요. 이번에는 반올림 반올림을 보려고 하는데요. 플로팅으로 정의된 그런 실수로 정의된 A는 2.3, B는 4.7이 있고 이거를 지금 반올림을 했는데 여기 세 가지 형태로 돼 있습니다. 일단 a는 0과 맥스 사이에 있다고 가정하고요. 맥스는 만이라고 정의하고 있습니다. 얘는 어 컨스턴트로 정의를 했고요. 그리고 지금 반올림이 있고 있고 실링이 있고 플로우 이렇게 세 가지를 정리를 했어요.이 반올림은
42:49 가장 가까운 정수로 바꾸는 것이니까 2.3은 2로 바꾸고 4.7은 7은 5로 바꾸는 건데 링은 올림이고요. 플로잉은 버림이에요. 그래서 플로우 2.3, 플로우 4.7은 다 버려서 2, 4가 되고 스틸링은 울림이라서 2.3 4.7을 울림을 하면 3하고 5가 되고요. 그리고 반올림 라운딩은 2.3은 2가 되고 4.7은 5가 됩니다. 그래서 버림을 할 버림을 할 때는음 그냥 인티저로 하게 되면 그렇게 되면 2.3은 2가 되고 4.7은 4가 되죠. 그래서 내려가는 형태가 될 수 있는데 올림이 되려면은 이런 타입
43:35 캐스팅으로 올림하려고 그러면 그럼 거꾸로 마이너스로 한 다음에 하게 되면 -2.3을 3을 실수로 정수로 바꾸면 -2가 되니까 지금 먼저 마이너스로 바꾸기 위해서 맥스에서 a를 빼고 있고요. 그리고 인티저 타입 캐스팅한 다음에 다시 맥스에서 빼게 되면 만에서 지금 맥스에서 a를 빼면 997.7이 되는데 인티저를 하게 되면 900 97점요 소수점이 날아가서 9,997이 되겠죠. 그리고 나면 3이 될 수 있습니다. 이런 형태로 우리가 올림을 할 수 있고요. 그리고 반올림을 할 때는 a하고 b의 각각에 0.5를 더한 다음에 인티저로 하게 되면 0점보다 큰 경우에는 그 다음 값이
44:20 되고 0점보다 작은 경우에는 그냥 버림이 되기 때문에 그 경우에서는 지금 2.3에서 0.5를 더해서 2.8이 된 다음에 인티저를 하게 되면 2가 되고 4.7에 0.5를 점을 더해서 5.2가 된 다음에 소수점을 버리게 되면 5가 돼서 안올림이 될 수 있습니다. 그리고 이번에는 간단한 여러 가지 계산들인데요.요 요 지금 두 개가 있는데 첫 번째 거는음 더하기 빼기 곱하기 이런 걸 하고 있습니다. 그래서 오퍼레이터가 있고요. 연산자가 있고 여긴 더하기
45:07 더하기 빼기 곱하기 나누 나누기 그리고 나누기도 지금 그냥 나누기가 있고 그다음에 몫이 있고 나머지가 있는 것이죠. 그래서 a와 b가 있으면 오퍼레이터에 따라서 동작을 하면 됩니다. 오퍼레이터가 케이스문으로 해서 플러스면은 더하기를 하면 되고 빼기라면 빼기를 하면 되고 곱하기면 곱하기를 하고 나누기면 나누기를 하면 되겠습니다. 이렇게 그래서 이게 다 아니면은 그러면 오퍼레이터가 잘못됐다. 디폴트문을 항상 써 주는게 좋게 되고요. 여기선 인티저로 동작하고 있기 때문에 인티저로 더하기 빼기 곱하기 나누기에서 인티저 디비전이 일어납니다.
45:53 그래서 지금은 더하기니까 6 + 4는 10 이런 형태로 가게 되겠죠. 지금 퍼센트 D로해서 인티저 디비션이 있고 플로팅을 가려고 그러면이 중에 하나 뭐 둘 다 해도 되는데 하나를 플로팅으로 바꾸게 되면 플로팅 디비전이 일어나서 그래서 우리가 F 형태로 플로팅으로 쓸 수 있게 됩니다. 오른쪽 부분은 숫자가 다섯 개가 있고요. n1, n2, n3, n4, n가 있고 그것을 더하고 평균을내는 그런 형태가 되고 있습니다. 지금 썸은 인티저로 돼 있고 썸은 n1 n2 n3 n4 n하게 되면 407이라는 값이 나오고
46:41 있습니다. 그리고 평균은 그렇게 더한 것을 다섯 개로 나누면 되는데 다섯 개로 나오기 위해서 플로팅 포인트로 타이캐스팅 한 다음에 5로 나누고 있어요. 그러면 평균은 81.4란 값이 나오고 있고 썸은 인티저로 출력하고 있는데 평균은 2F에서 소수점 규7짜리까지 그렇게 출력을 하고 있어요. 그래서 81.40이란 40이란 값이 나오고 있습니다. 오늘은 C의 가장 기본적인 형태들에 대해서 알아봤습니다. 오늘 여기까지 하도록 하겠습니다. 수고하셨습니다.