1 00:00:00,000 --> 00:00:00,493 2 00:00:00,493 --> 00:00:09,860 >> [음악 연주] 3 00:00:09,860 --> 00:00:13,520 >> ZAMYLA CHAN : 당신이 오히려받을 것이다 1천만달러 지금 또는 수신 4 00:00:13,520 --> 00:00:17,460 동전 달의 매일 위치 각 후속 하루, 당신은받을 5 00:00:17,460 --> 00:00:21,280 당신이 동전의 양을 두 배로 전날 받았 는가? 6 00:00:21,280 --> 00:00:24,010 동전, 우리는 거 야 증명 왜해야 7 00:00:24,010 --> 00:00:27,000 확실히 동전을. 8 00:00:27,000 --> 00:00:29,130 - pennies.c - 당신의 작업은 작성하는 것입니다 9 00:00:29,130 --> 00:00:33,330 첫 번째 방법을 사용자에게 요청하는 프로그램 거기에 많은 일 개월이며, 10 00:00:33,330 --> 00:00:38,780 다음 사용자 얼마나 많은 동전 묻는다 첫 날에 받게됩니다. 11 00:00:38,780 --> 00:00:41,780 이 프로그램은 다음을 계산한다 사용자가있을 것이라는 점을 양 12 00:00:41,780 --> 00:00:46,530 의 끝에서 축적 된 달을 표시합니다. 13 00:00:46,530 --> 00:00:49,670 >> 우리는이 프로그램을 중단 할 수 있습니다 작업의 몇 가지에. 14 00:00:49,670 --> 00:00:52,830 우리는 당신을위한 메시지를 표시해야합니다 여러 사용자 입력 - 15 00:00:52,830 --> 00:00:55,510 일 개월 및 동전 첫날. 16 00:00:55,510 --> 00:00:59,390 우리는 추적 할 필요가 얼마나 많은 돈을 사용자가 모든이 있고이를 업데이트 17 00:00:59,390 --> 00:01:03,060 하루 양을 두 배로 그들이받는 동전. 18 00:01:03,060 --> 00:01:06,710 그리고 마지막으로, 우리는 인쇄 그들의 달러 최종 합계. 19 00:01:06,710 --> 00:01:08,570 >> 태클 사용자 입력하자. 20 00:01:08,570 --> 00:01:11,560 나는 apples.c을 열거야 호텔 쇼트 프로그램 21 00:01:11,560 --> 00:01:13,840 입력 및 출력. 22 00:01:13,840 --> 00:01:17,310 여기에 상단에, 나는 약간을 포함했습니다 - 내가 필요로하는 라이브러리 23 00:01:17,310 --> 00:01:20,450 CS50의 라이브러리와 표준 I / O 라이브러리입니다. 24 00:01:20,450 --> 00:01:24,310 나는를 사용하여 메시지를 인쇄 에서 printf 함수 25 00:01:24,310 --> 00:01:25,660 표준 I / O 라이브러리입니다. 26 00:01:25,660 --> 00:01:29,740 그러나 사용자의 메시지의 실제 이와 함께 다음 줄에서 발생 27 00:01:29,740 --> 00:01:33,650 CS50 도서관에서 getInt는 기능. 28 00:01:33,650 --> 00:01:38,300 >> getInt는이 사용자로부터 입력을 얻 입력이 정수인지 확인합니다. 29 00:01:38,300 --> 00:01:45,160 그래서 정수로 사용자의 입력을 저장 난에서 1을 뺀 후 30 00:01:45,160 --> 00:01:47,610 나는 경우 새 값을 인쇄합니다. 31 00:01:47,610 --> 00:01:53,050 를 사용하여 apples.c을 컴파일 한 후 명령은 "사과 할,"나는가 32 00:01:53,050 --> 00:01:55,770 실행 파일 사과. 33 00:01:55,770 --> 00:01:58,760 I 입력 1이 (가) 있습니다 실행합니다. 34 00:01:58,760 --> 00:02:02,600 이 프로그램은 나에게 이야기하는 나는 왼쪽으로 0 사과를해야합니다. 35 00:02:02,600 --> 00:02:05,480 그리고 예상대로 작동합니다. 36 00:02:05,480 --> 00:02:09,740 >> 그럼 다시이 실행할 수 부정과 입력 1. 37 00:02:09,740 --> 00:02:13,950 지금 사과 음수 금액을 가지고 정말 이해하지 않지만, 38 00:02:13,950 --> 00:02:18,370 부정적인 때문에 프로그램은이를 허용 1, 잘, 그것은 정수입니다. 39 00:02:18,370 --> 00:02:22,740 그리고 지금 프로그램이나 몬스터 프로그램은 부정을 먹는다 내부 40 00:02:22,740 --> 00:02:26,250 애플은 지금은이 마이너스 2 사과입니다. 41 00:02:26,250 --> 00:02:28,610 흠, 그래서 하나의 교훈 - 42 00:02:28,610 --> 00:02:32,965 비록 getInt는 기능과 관련 GetFlow 같은 기능을하거나, 43 00:02:32,965 --> 00:02:38,100 얻는에게 올바른 데이터 유형을 getString에, 당신 입력이 만드는 있는지 확인해야합니다 44 00:02:38,100 --> 00:02:41,430 프로그램에 대한 감각. 45 00:02:41,430 --> 00:02:45,500 >> 동전에, 그냥 프롬프트하지 않습니다 정수의 경우 확인해야합니다 46 00:02:45,500 --> 00:02:49,550 반드시 사용자가 입력하는 정수를이 그 상황에 주어진 의미합니다. 47 00:02:49,550 --> 00:02:55,690 월은 28을 가질 수 있습니다 29, 30, 31 일. 48 00:02:55,690 --> 00:02:59,160 우리는 지속적으로 요구하고 싶은 유효한 정수. 49 00:02:59,160 --> 00:03:03,240 그들은 입력 우리의 정수 밖에있는 경우 허용 범위는, 우리는 그들을하라는 메시지를 표시합니다 50 00:03:03,240 --> 00:03:07,190 또 다시, 할 때까지 우리에게 유효한 정수를 제공합니다. 51 00:03:07,190 --> 00:03:10,070 >> "될 때까지 반복"을 기억 스크래치에 차단? 52 00:03:10,070 --> 00:03:13,070 당신은 유사한 구문을 만들 수 있습니다 C에 "동안"루프를 사용하여 53 00:03:13,070 --> 00:03:14,830 또는 "할 - 동안"루프. 54 00:03:14,830 --> 00:03:18,280 while 루프 구조는 조건이 충족해야하는 55 00:03:18,280 --> 00:03:20,160 실행하는 루프의 본문입니다. 56 00:03:20,160 --> 00:03:23,080 >> 이것은 거의 유사합니다 조건은 비슷하기 때문에 57 00:03:23,080 --> 00:03:25,970 각도 스크래치 블록 그리고 괄호로 전환 58 00:03:25,970 --> 00:03:27,950 "동안"루프. 59 00:03:27,950 --> 00:03:30,600 그래서 조건이 있는지 확인합니다 정수 내에 60 00:03:30,600 --> 00:03:32,680 적절한 경계. 61 00:03:32,680 --> 00:03:36,620 당신은 정수를 사용 getInt는 메시지를 표시 할 수 있습니다 그리고 당신의 "동안"실행 62 00:03:36,620 --> 00:03:41,030 루프 반복 프롬프트 및 인쇄 지침 동안 입력 63 00:03:41,030 --> 00:03:43,470 유효하지 않습니다. 64 00:03:43,470 --> 00:03:47,610 >> 올바른 사용자 입력을 확인하는 또 다른 방법 , "할 - 동안"루프를 사용하는 것입니다 65 00:03:47,610 --> 00:03:50,400 이는 while 루프와 매우 비슷합니다. 66 00:03:50,400 --> 00:03:54,950 "할 - 동안"루프는 코드를 실행 몸 것들하고 검사 안에 67 00:03:54,950 --> 00:03:57,150 조건이 충족 여부. 68 00:03:57,150 --> 00:04:00,590 이것은 사용자 입력을 얻는 데 유용합니다 당신은 당신이 필요로하는 것을 알고 있기 때문에 69 00:04:00,590 --> 00:04:02,980 한 번 이상 그 메시지를 표시합니다. 70 00:04:02,980 --> 00:04:07,200 조건이 충족되지 않을 경우, 프로그램 후 줄을 실행합니다 71 00:04:07,200 --> 00:04:08,530 당신의 "할 - 동안"루프. 72 00:04:08,530 --> 00:04:13,230 조건이 비록 충족하는 경우, 루프가 반복됩니다 73 00:04:13,230 --> 00:04:17,490 >> 사용자의 유효성을 검사 "할 - 동안"루프 입력은 다음과 같이 보일 것입니다. 74 00:04:17,490 --> 00:04:24,530 나는 변수 N, getInt를 선언하고, n은 유효한 때까지 반복합니다. 75 00:04:24,530 --> 00:04:28,040 이 과정은, 내가 설명, 사용했다 정수 데이터 유형, 어떤 76 00:04:28,040 --> 00:04:29,820 당신은 달의 일에 사용됩니다. 77 00:04:29,820 --> 00:04:33,560 그러나 우리는 알고 동전의 수 하기 위해, 그래서 빨리 쌓아합니다 78 00:04:33,560 --> 00:04:39,160 큰 숫자를 저장할 데이터 타입 사용 LONGLONG,하지만 같은 기억 79 00:04:39,160 --> 00:04:42,590 검증의 원칙이 적용됩니다. 80 00:04:42,590 --> 00:04:47,070 >> 멋진, 그래서 일단 우리는 두 개의 유효한이 사용자로부터 입력 - 81 00:04:47,070 --> 00:04:49,530 월의 일 및 동전 첫날 - 82 00:04:49,530 --> 00:04:52,870 우리는 다음에 이동할 수 있습니다 프로그램의 일부입니다. 83 00:04:52,870 --> 00:04:56,680 첫 날, 사용자가 시작 그들은 지정된 그러나 많은 동전 84 00:04:56,680 --> 00:05:00,370 과 동전의 양을 그들이 다음 날받을 수는 두 배가됩니다. 85 00:05:00,370 --> 00:05:03,130 그래서 추적하는 것이 좋습니다 이 두 금액 - 86 00:05:03,130 --> 00:05:08,890 사용자가 얼마나 얼마나 많은 돈을 많은 동전들은이 제공됩니다. 87 00:05:08,890 --> 00:05:13,760 >> 지금 28~31일 위해 뭔가를하고 반복적이기 때문에의를위한 ""를 사용하자 88 00:05:13,760 --> 00:05:18,220 에서 일을 반복하는 루프 월, 총과 페니 업데이트 89 00:05:18,220 --> 00:05:21,010 때마다 금액입니다. 90 00:05:21,010 --> 00:05:23,550 루프 구문은 포함 "를" 다음 - 91 00:05:23,550 --> 00:05:27,510 초기화, 조건, 및 업데이트. 92 00:05:27,510 --> 00:05:29,590 당신의 "for"루프는 초기화 변수 때 93 00:05:29,590 --> 00:05:31,380 첫 번째는 루프에 들어갑니다. 94 00:05:31,380 --> 00:05:34,860 조건이 충족되는 경우, 신체 루프를 실행합니다. 95 00:05:34,860 --> 00:05:36,860 그 후, 업데이트가 실행됩니다. 96 00:05:36,860 --> 00:05:40,900 조건이 충족되는 경우, 루프는 실행하고 업데이트 및 것 97 00:05:40,900 --> 00:05:45,820 만큼 당신의 상태로 반복 true로 평가합니다. 98 00:05:45,820 --> 00:05:51,080 >> 여기를 나누는 "for"루프이다 2 10 배의 총에 의해 정수 P. 99 00:05:51,080 --> 00:05:55,380 내가 정수 P를 선언하는 방법 참고 내 "for"루프 이외의, 그래서 100 00:05:55,380 --> 00:05:59,850 정수에 액세스 할 수 있습니다 "for"루프 밖에. 101 00:05:59,850 --> 00:06:03,620 달이 경과 한 후, 시간 가 사용자에게 얼마나 많은 돈을 102 00:06:03,620 --> 00:06:04,790 그들은 쪘 구만. 103 00:06:04,790 --> 00:06:08,740 사양 당, 사용자에게 필요 얼마나 많은 달러가 아니라 얼마나 많은 104 00:06:08,740 --> 00:06:10,780 동전, 그들은있다. 105 00:06:10,780 --> 00:06:14,620 그러나 지금까지, 당신은 추적을 유지 한 총과 LongLongs을 사용하여 동전, 106 00:06:14,620 --> 00:06:16,640 전체 숫자는 어떤 수 있습니다. 107 00:06:16,640 --> 00:06:20,560 >> $ 1 100 동전, 그래서이없는 한 동전의 개수는 108 00:06:20,560 --> 00:06:24,860 100의 배수, 당신은해야합니다 소수 자릿수를 나타냅니다. 109 00:06:24,860 --> 00:06:28,060 배 오토 타이프는 할 수 있습니다 이 작업을 수행합니다. 110 00:06:28,060 --> 00:06:32,790 그래서 우리는 어떻게 표현에서 변환합니까 달러 동전? 111 00:06:32,790 --> 00:06:35,330 >> 의를 살펴 보자 pi.c. 112 00:06:35,330 --> 00:06:41,690 이 프로그램은 LONGLONG big_pi 및 소요 100,000으로 분할하고, 인쇄 113 00:06:41,690 --> 00:06:44,270 소수점 다섯 자리까지 결과. 114 00:06:44,270 --> 00:06:48,560 우리는 네 개의 십진수를 표시하려는 경우 장소는, 우리는 그냥이를 대체 할 수 115 00:06:48,560 --> 00:06:49,760 여기에 수. 116 00:06:49,760 --> 00:06:58,370 그러니, 저장 PI를 컴파일하고 보자 다음 결과를 볼 수있는 우리 117 00:06:58,370 --> 00:07:02,240 3.1415 것으로 예상 - 118 00:07:02,240 --> 00:07:04,540 파이의 처음 다섯 자리. 119 00:07:04,540 --> 00:07:06,300 >> 그래도되지 않습니다. 120 00:07:06,300 --> 00:07:07,390 왜? 121 00:07:07,390 --> 00:07:11,920 음, big_pi는 LONGLONG이기 때문에 정수는, 어느입니다하지 않습니다 122 00:07:11,920 --> 00:07:13,740 소수의 추적 보관하십시오. 123 00:07:13,740 --> 00:07:16,850 내가 필요한 수정 확인이 부문에 있습니다. 124 00:07:16,850 --> 00:07:23,300 내가 전에 여기 double로 캐스팅해야 복식 유지할 수 없기 때문에 분할 125 00:07:23,300 --> 00:07:25,260 소수 자릿수 추적 할 수 있습니다. 126 00:07:25,260 --> 00:07:28,080 그리고 새로운 라인을 추가 할거야 여기에 더 나은 서식. 127 00:07:28,080 --> 00:07:33,090 128 00:07:33,090 --> 00:07:34,230 >> 그리고 여기에 우리가 그것을 가지고 - 129 00:07:34,230 --> 00:07:37,660 3.1416. 130 00:07:37,660 --> 00:07:43,520 당신은 3.1416를 인쇄 것을 알 수 있습니다 대신에 3.1415의 예상대로. 131 00:07:43,520 --> 00:07:47,550 동안 그것 때문에 라운드 그건 분할 프로세스처럼 반대 132 00:07:47,550 --> 00:07:50,490 값을 자르는. 133 00:07:50,490 --> 00:07:53,710 이제 인쇄 할 수 있어야한다 완료 정확하게 최종 합계, 134 00:07:53,710 --> 00:07:54,870 프로그램입니다. 135 00:07:54,870 --> 00:07:55,930 >> 축하합니다. 136 00:07:55,930 --> 00:07:57,340 내 이름은 Zamyla입니다. 137 00:07:57,340 --> 00:07:58,720 그리고이 동전이었다. 138 00:07:58,720 --> 00:08:05,589 >> [음악 연주]