안녕하세요, 어서 오세요 이 데모에서 마지막 과제를 위한 해결책을
제공하고 싶어요 C# 프로그램에
대한 솔루션을 제공하고 싶습니다 시간을
많이 들여서 며칠 동안 나타나게 되고 몇 년이 걸릴지
알 수 있죠
실용적인 프로그램은 아니지만
연산 연산자를 이용해서 키보드로
배울 수 있는 몇 가지 핵심 개념을 보여드릴
거예요
또한 cast연산자를 이용해야 합니다. 이번 모듈에서는 이야기
한 적이 없는 것 같은데요. 여러분이 해결했기를
바랍니다. 왜냐하면 cast연산자를 사용할 필요가 없기 때문입니다.
솔루션에는 Modulus 연산자가 필요하다고
생각했어요. 모듈러스에선
2 int면 될 거예요
그럼 시작해 볼까요? 콜드블록을 시작하고 프로젝트를
생성해보죠 이 시점에서 우리가 잘 아는 기본을 살펴보죠
자세히 설명하진 않을 테니 그냥 보기만 하세요
새 프로젝트를 생성해 콘솔 프로젝트로 하겠습니다 C#으로
하겠습니다 이것도 이름을 붙이겠습니다
항상 의미 있는 이름을 원하시잖아요
분 단위 변환이라고 할게요
분 단위 변환 앱 같은 거죠
이제 메인 메뉴를 수정할게요 c 파일요
이건 치우죠 include문을 유지할 거예요
늘 그렇듯 주석도 추가하세요 제가 안 한다고
해서 여러분도 하지 말라는 건 아니죠
그게 관행이에요 효율성과 시간 문제 때문에 빼놓는 거예요
저는 프로그램의 맨 위에서 사용해야
할 변수를 확인하고 초기화하는 걸 좋아해요
그렇게 시작하죠 정수 변수를 생성하겠습니다 사용자가
입력할 거예요 입력된 몇 분을 호출할게요 0으로 시작할게요
몇 년 동안 대역을 만들 거예요 얼마나 많은 계산을 원하느냐에
따라 더 길어질 수도 있어요 소수점까지 들어갈 수도
있으니까요
길면 더 좋고요 지금은 더블을 사용할게요
0을 초기화하죠 0일과 0일은 0일이죠
0개요
이제 사용자로부터 입력을 받아야죠
사용자로부터 입력을 받기 위해 가장 먼저 할 일은 사용자에게 입력을 입력하라고 말하는 거죠
출력을 표시할게요 분수를
입력해 주세요
여기에 콜론과 스페이스를 넣고 세미콜론으로
끝맺을 거예요
다음은 실제로 입력을 얻도록 하죠
여기서 주석으로 사용자에게서 입력을 받으라고 하겠죠
사용자에게서 어떻게 입력을 받죠? scanf 함수를 사용하죠
이전에 했던 것을 기억하세요 scanf라고 합니다 printf와 비슷하죠
첫 번째 매개 변수 인수는 데이터 유형으로
변환을 위해 읽기 원하는 거죠
모든 건 문자열이나 텍스트로 읽힌다는 걸 기억하세요
그래서 그걸 어떻게 저장할지에 따라 변환해야 해요
큰 따옴표를 넣는 거죠 printf처럼요 형식 지정자를 사용하죠
여기요 그냥 10진수로 저장하겠다고 하죠
d 정수라고 입력할게요 10진수
정수가 아니라요, 죄송해요
다음 인수는 어떤 변수에 그걸 저장할 것인가 하는 거죠
몇 분 안에 저장할 거예요
scan f를 기억하세요 문자열을
제외한 모든 데이터 타입을 scanf로 스캔하면
됩니다 ampersand를 제공해야
하죠 주소 교환원이에요
그걸 제공해야 해요 숫자가 나오고 있어요 &를 해야 해요
강연에서 배웠잖아요 그런 다음 세미콜론과 함께 이걸 추가하고 싶어요
이 시점에서 테스트를 해야겠죠
사용자로부터 입력을 받을 수 있도록 하세요 입력한 걸 디스플레이하기 위한 printf가 있겠죠
하지만 이게 맞는다는 걸 알았으니 넘어가죠
15번째 줄에서 계산해 볼게요
몇 년 치 기록을 저장하고 싶어요
제가 잊어버린 또 다른 변수를 생성하겠습니다
연도의 몇 분을 저장하는 거죠
이게 더 쉬울 테니까요 여기 분과 연도를 입력할게요
제가 여기서 변수를 명명할 때 사용하는 규칙이 낙타자리예요
첫 번째 워드에 소문자를 쓰고 그
이후의 모든 단어는 대문자로 첫 번째 문자를 쓰는 거죠
아까 설명을 안 해서 그냥 말씀드리는 거예요
첫 번째 계산에서는 분 단위와 연도를 설정합니다
이렇게 연도를 계산하기
때문이죠 분과 연도가 같을 거예요 저는 정리를
위해 괄호를 사용해요 모든 게 명확하게요 가독성이 높아지죠
60분일 거예요 60분은
한 시간의 분수거든요 거기에 하루의 시간을 곱하면 24가 되죠
거기에 1년의 날 수를 곱하면 365일이
되죠
그래서 이 계산은 한 해에 몇 분이 소요되는지를 알려주는 거예요
이제 이걸로 나이를 계산할 수 있어요
여기 다음 줄에서 년 =∙∙∙ 할당 연산자를 사용하고
있죠 등호요
16번째 줄의 괄호 안에 있는 건 별표예요
이건 곱셈이죠 근사하죠
연도는 그냥∙∙∙ 괄호를 사용하고 싶어요
입력된 분수는 사용자가 한 것으로 연도의
분수로 나누죠
5천 분을 입력하면 1년당 2천 분이니까 5천을 2천으로
나누면 총 몇 년인지 알게 됩니다 0.5가
되겠죠
날짜를 계산하기
위해 여기에 입력된
분수를 60으로 나누라고
적을게요 0이란 숫자는
1시간에 60분이거든요
일단 시간을 입력하면 그걸 일수로 나눌 수 있죠
즉, 24요 0개요
마음만 먹었으면 다른 계산법으로 할 수도 있었어요
하지만 올바른 순서로 하고 싶어요
먼저 분과 엔터를 60으로 나누죠
사실 이것과 관련해 걱정하실 필요는 없어요
여기서 나눗셈을 할 거니까요 부합성이 왼쪽에서 오른쪽으로
가게 되죠 이 괄호는 필요 없어요 하지만 전 항상 괄호를 추가하는 걸 좋아해요 가독성이 더 좋아지거든요
마지막 걸 추가하죠
중복되는 말이네요 여기도 필요 없어요 첫 번째 것만
남겨두죠 우리의 일상을 보여 줄 거예요
연산자를 이용해서 계산을 해 봤는데요
데이터를 출력하기 위해 printf를 하고 싶어요
회의록을 먼저 출력하라고 할게요
% d분수는
% f years, % fday를 뜻하죠
그런 다음 라인 피드를 추가할 거예요
이게 하는 일은 printf를 이용해 변수의 출력을 표시합니다
그리고 % 기호들은 마크업 지정자를 기억하세요
가장 먼저 분수를 출력하고 싶어요 첫 번째 쉼표 다음에 분수를 입력해야 해요 입력됐을 때요
두 번째 것은 년도입니다. 연도로 할게요. 왜냐하면 퍼센트가 f years니까요.
세 번째는 그런 날이죠
이제 컴파일하고 실행하면 저를 위해 변환해줘야 하죠
그럼 빌드해보죠 아침도 실수도 없었죠
1년에 몇 분이나 되는지도 모르겠어요
어떻게
테스트할지 모르겠지만 일단 5천 분으로 시작할게요
프로그램을 실행하면 분수를 입력하라고 하죠 5,000을 입력할게요
숫자를 입력하지 않았다면 충돌이 일어날 수도 있어요
scanf 함수에서 숫자로 변환하고 있으니까요
리턴 키를 누르면 5천 분은 대략 0분이라고
나오죠 009513년
3년요 47222일이니
그럴 만도 하죠 한 시간에 60분이니까 거기에 24를 곱하면
하루 동안 대략 2,400일이니까 2,400일씩
아니, 60일이네요
죄송하지만
60 곱하기 24는 대략 1,200이네요
그러니까 하루에 천 2백 번이 5천 번으로 늘어나죠 아마
3백 번 정도일 거예요 4시쯤이요
대충 맞는 것 같아요
이걸 여러 번 실행할 수 있어요 여러분이 보시게 될 큰 숫자들을 입력하는 거죠
여긴 두 개밖에 없어요 그래서 실행하고 너무 큰 숫자를
입력하려 하면 예를 들어 6천억 같은 거요
오류가 날 수 있어요 그래서
오류가 날 수 있죠 이것은 데이터 타입의 문제들을 보여주고 있어요.
int에 저장하고 있어요 Int는 8바이트밖에 안 돼요 엄청난 숫자를 입력했어요
저장하면 안 돼요 그래서 이걸 출력하러 가면
완전히 다른 번호가 나와요 184298154번이죠
제가 입력하는 게 int보다 크거든요
따라서 이 프로그램이 좀 더 정확하길 원한다면
더 큰 숫자를 입력해 데이터 유형을 바꾸든 int를 더블로 바꾸든
심지어 더블을 롱으로 바꾸든 고려해 보세요
350년 하고도 127,000일 정도라고 하네요
아주 좋은 변환 앱입니다 연산자와 데이터
타입에 대한 이해를 돕기
위해 노력하죠
다양한 변환 앱을 가질 수 있죠 여러분이 더 연습하고
싶은 또 다른 앱은 화씨 대 섭씨 앱이에요
화씨로 입력할 수 있게 해주는 앱을 만드세요 그런 다음 그걸 섭씨로 전환하는 거죠
여러 가지 시나리오가 있어요 하지만 오퍼레이터들을 써야 할 거예요
원하면 여기서 캐스팅도
할 수 있어요 날짜가 너무 정확한 게 맘에
안 들면 더블을 int로 바꿀 수도 있어요
우린 그걸 좀 덜 정밀하게 만들고 싶어요 괄호를 제공하고 int를
이용하여 IT로 캐스트를 할
수 있죠
이 숫자는 며칠이 걸려요
소수점 3이면요? 549인가 그래요 3으로 변환되죠
사용자에게 더 나을 수도 있어요 여러분에게 달렸죠
하지만 당분간은 더블로 하죠
그렇게 배우는 거죠 프로그램을 이리저리 조작하며 다양한 시나리오를
시도하고 다양한 입력을 시도하며 모든 게 올바른지 확인하죠 고마워요