1 00:00:00,000 --> 00:00:00,980 2 00:00:00,980 --> 00:00:04,410 >> [음악 연주] 3 00:00:04,410 --> 00:00:11,147 4 00:00:11,147 --> 00:00:12,230 데이비드 J. 마란 : 좋습니다. 5 00:00:12,230 --> 00:00:16,440 이것은 CS50이며,이 주 (2)의 단부이다. 6 00:00:16,440 --> 00:00:18,480 그래서 오늘, 우리는거야 우리의 모습을 계속합니다 7 00:00:18,480 --> 00:00:21,150 우리가 일을 나타내는 방법에 대해 hood-- 멀리 이동 아래 8 00:00:21,150 --> 00:00:23,520 정수와 같은 번호에서 및 부동 소수점 값 9 00:00:23,520 --> 00:00:26,810 문자열에 초점을 맞추고 궁극적으로 더 흥미있는 프로그램. 10 00:00:26,810 --> 00:00:30,140 그러나 우리는 또한 좀 할게요 도메인 별을 문제의 커플 11 00:00:30,140 --> 00:00:33,620 첫번째 할의 암호화를 포함 할, 12 00:00:33,620 --> 00:00:36,570 정보를 스크램블링의 예술, 하는 여기에 위의 내용 참조 13 00:00:36,570 --> 00:00:41,480 라디오 고아 애니의 사진입니다 작년의 비밀 디코더 링. 14 00:00:41,480 --> 00:00:46,490 >> 이것은 실제로 매우 원시적 인 형태이다 및 cryptopgraphy의 어린이 친화 양식 15 00:00:46,490 --> 00:00:50,590 이 반지는 두 disks--을 가지고있다 한 내부와 하나의 외부. 16 00:00:50,590 --> 00:00:54,740 그리고에 의해, 그 중 하나를 수행 할 수 있습니다 회전 본질적으로 같은 글자를 일렬로 17 00:00:54,740 --> 00:00:59,520 다른 문자와 Z를​​ 통해 환언 A. 내지 B 등 18 00:00:59,520 --> 00:01:03,730 말 그대로 알파벳을 회전 할 수 있습니다, 이에 매핑에서 함께 올라오고 19 00:01:03,730 --> 00:01:07,820 문자로 문자가, 만약 그렇다면 당신 비밀 메시지를 보내 원 20 00:01:07,820 --> 00:01:11,820 애니 좋아하는 사람에게, 당신은 쓸 수 다음 회전 메시지 아래로 21 00:01:11,820 --> 00:01:15,370 문자가,있다, 당신은 의미하는 경우 대신 말을 "을"말을 "B"를 22 00:01:15,370 --> 00:01:17,280 당신이 말의 뜻은 "B"를 대신 "C"를 말한다 - 23 00:01:17,280 --> 00:01:20,240 또는 뭔가 좀 더 영리한 거저보다하고, 궁극적 24 00:01:20,240 --> 00:01:24,630 너무 오래 애니는이 디코더가로 반지, 그녀는 메시지를 디코딩 할 수있다. 25 00:01:24,630 --> 00:01:28,540 지금, 당신은, 사실, 기억이 그 수 아주 유명한 영화에서 사용 된 그 26 00:01:28,540 --> 00:01:31,140 동안 광고 nauseum을한다 크리스마스 시즌. 27 00:01:31,140 --> 00:01:32,650 여기서 살펴 보자. 28 00:01:32,650 --> 00:01:35,294 29 00:01:35,294 --> 00:01:37,210 랄 피하고 파커는 "그것을해야 요약에있는 모든 알려진 30 00:01:37,210 --> 00:01:41,000 랄프 파커는 이에 임명된다 어린 고아 애니 비밀의 회원 31 00:01:41,000 --> 00:01:44,860 원과 모든받을 권리가있다 명예와 혜택은 이에 발생. " 32 00:01:44,860 --> 00:01:47,410 >> 랄 피하고 PARKER (나레이션) : 어린 고아 애니 서명. 33 00:01:47,410 --> 00:01:50,070 연대, 피에르 앙드레! 34 00:01:50,070 --> 00:01:51,490 잉크합니다. 35 00:01:51,490 --> 00:01:55,494 명예와 이익, 이미 아홉의 나이에. 36 00:01:55,494 --> 00:01:57,402 >> [음악 연주] 37 00:01:57,402 --> 00:02:00,470 >> [RADIO 잡담] 38 00:02:00,470 --> 00:02:01,470 랄 피하고 파커 : 자. 39 00:02:01,470 --> 00:02:02,344 의 그것과에하자. 40 00:02:02,344 --> 00:02:06,029 난 재즈가 필요하지 않습니다 밀수꾼과 해적에 대한 정보가 포함되어 있습니다. 41 00:02:06,029 --> 00:02:08,820 (라디오 방송) : 내일 봐 결론 모험 밤 42 00:02:08,820 --> 00:02:11,060 블랙 해적선의. 43 00:02:11,060 --> 00:02:14,740 지금, 그것은 시간이 애니의위한거야 당신 구성원에 대한 비밀 메시지 44 00:02:14,740 --> 00:02:17,110 비밀 서클의. 45 00:02:17,110 --> 00:02:20,700 아이, 회원 만 기억 애니의 비밀 서클의 46 00:02:20,700 --> 00:02:23,270 애니의 비밀 메시지를 해독 할 수 있습니다. 47 00:02:23,270 --> 00:02:27,270 >> 기억, 애니 당신에 따라 있습니다. 48 00:02:27,270 --> 00:02:30,060 B-2에 핀을 설정합니다. 49 00:02:30,060 --> 00:02:34,004 다음은 message-- 12, 11, 2 ... 50 00:02:34,004 --> 00:02:36,503 랄 피하고 PARKER (나레이션) : I 내 첫 번째 비밀 회의입니다. 51 00:02:36,503 --> 00:02:40,041 (라디오 방송) : --25, 14, 11, 18, 16-- 52 00:02:40,041 --> 00:02:42,790 랄 피하고 PARKER (나레이션) : 아, 피에르는 큰 음성 오늘 밤이었다. 53 00:02:42,790 --> 00:02:46,110 나는 오늘 밤의 말할 수 메시지가 정말 중요했다. 54 00:02:46,110 --> 00:02:47,930 >> (라디오 방송) : --3, 25. 55 00:02:47,930 --> 00:02:49,940 즉, 애니 자신의 메시지입니다. 56 00:02:49,940 --> 00:02:52,182 아무에게도 말하지 않는 기억하십시오. 57 00:02:52,182 --> 00:02:55,077 >> [PANTING] 58 00:02:55,077 --> 00:02:57,285 랄 피하고 PARKER (나레이션) : 인티 초 후에, 난 59 00:02:57,285 --> 00:03:00,090 에서 유일하게 방에 집 어디 아홉의 소년 60 00:03:00,090 --> 00:03:04,380 개인 정보 보호 및 디코딩에 앉아 있었다. 61 00:03:04,380 --> 00:03:04,990 아. 62 00:03:04,990 --> 00:03:05,680 "B." 63 00:03:05,680 --> 00:03:06,524 >> [했네] 64 00:03:06,524 --> 00:03:08,684 >> 랄 피하고 PARKER (나레이션) : 나는 다음에 갔다. 65 00:03:08,684 --> 00:03:09,610 "E." 66 00:03:09,610 --> 00:03:11,641 첫 번째 단어는 "수"입니다. 67 00:03:11,641 --> 00:03:12,140 예! 68 00:03:12,140 --> 00:03:14,293 지금은 쉽게오고 있었다. 69 00:03:14,293 --> 00:03:15,259 "U." 70 00:03:15,259 --> 00:03:16,225 >> [했네] 71 00:03:16,225 --> 00:03:18,157 >> 랜디 파커 : 아, 랄피을 어서. 72 00:03:18,157 --> 00:03:19,606 난 갈거야! 73 00:03:19,606 --> 00:03:21,538 >> 랄 피하고 PARKER : 나는, 오른쪽 아래 엄마가 될 것입니다. 74 00:03:21,538 --> 00:03:22,504 맙소사. 75 00:03:22,504 --> 00:03:25,402 76 00:03:25,402 --> 00:03:31,220 "T." "O." "확인 에. "무엇을"해야합니다 "? 77 00:03:31,220 --> 00:03:33,981 어린 고아 애니는 무엇인가 말하려고? 무엇을 "해야합니다"? 78 00:03:33,981 --> 00:03:35,522 어머니 : 랄 피하고, 랜디 가야했다. 79 00:03:35,522 --> 00:03:36,735 당신은 나와 주시겠습니까? 80 00:03:36,735 --> 00:03:38,190 >> 랄 피하고 PARKER : 좋아, 엄마! 81 00:03:38,190 --> 00:03:39,787 내가 나갈게! 82 00:03:39,787 --> 00:03:41,995 랄 피하고 PARKER (나레이션) : 나는 가까이 지금 얻고 있었다. 83 00:03:41,995 --> 00:03:43,370 긴장은 끔찍했다. 84 00:03:43,370 --> 00:03:44,794 그것은 무엇인가? 85 00:03:44,794 --> 00:03:47,656 행성의 운명 저울에 달아있다. 86 00:03:47,656 --> 00:03:50,518 >> 어머니 : 랄 피하고, 랜디 가야! 87 00:03:50,518 --> 00:03:53,635 >> 랄 피하고 PARKER : 나는 괜찮을거야 출력, 제발 그만! 88 00:03:53,635 --> 00:03:55,343 랄 피하고 PARKER (해설) : 거의 다! 89 00:03:55,343 --> 00:03:56,520 내 손가락이 날아 갔다! 90 00:03:56,520 --> 00:03:58,500 내 마음은 강철 함정이었다. 91 00:03:58,500 --> 00:03:59,850 모든 구멍은 진동. 92 00:03:59,850 --> 00:04:01,806 그것은 거의 분명했다! 93 00:04:01,806 --> 00:04:02,773 예! 94 00:04:02,773 --> 00:04:03,273 예! 95 00:04:03,273 --> 00:04:03,773 예! 96 00:04:03,773 --> 00:04:04,740 예! 97 00:04:04,740 --> 00:04:10,250 >> 랄 피하고 파커 : "확인 당신 Ovaltine을 마실 수 있습니다. " 98 00:04:10,250 --> 00:04:10,750 Ovaltine? 99 00:04:10,750 --> 00:04:14,864 100 00:04:14,864 --> 00:04:17,539 싸구려 상업? 101 00:04:17,539 --> 00:04:19,439 >> [음악 연주] 102 00:04:19,439 --> 00:04:21,724 >> 랄 피하고 PARKER : 나쁜 놈들. 103 00:04:21,724 --> 00:04:23,460 >> [하하] 104 00:04:23,460 --> 00:04:27,070 >> 데이비드 J. 마란 : 그 다음이다 그래서 어떤 암호화에서 엿볼 105 00:04:27,070 --> 00:04:29,880 이런것이 될 수 있습니다 작년부터 마신다. 106 00:04:29,880 --> 00:04:30,900 그래서 빠른을 발표합니다. 107 00:04:30,900 --> 00:04:33,410 이 무료 인 경우 금요일 오후 1시 15분에서와 것 108 00:04:33,410 --> 00:04:36,610 CS50 우리와 함께 좋아 점심, 여기에이 URL로 향한다. 109 00:04:36,610 --> 00:04:38,080 우선 첫째 평소 역할이 이루어집니다. 110 00:04:38,080 --> 00:04:41,840 그러나 시간이 지남에 따라, 우리는 확인합니다 참여하고 싶은 대부분의 사람 111 00:04:41,840 --> 00:04:43,640 예약이 많다는 수 있습니다. 112 00:04:43,640 --> 00:04:45,170 >> 그래서 문자열. 113 00:04:45,170 --> 00:04:47,940 우리는 Zamyla-- 누구를 당신은 지금 가장 가능성이 만났다 114 00:04:47,940 --> 00:04:50,750 문제 설정에서 1-- 누구 이름은 따라서 철자가. 115 00:04:50,750 --> 00:04:53,570 그리고 당신은 그녀의 이름을 입력한다고 가정 야 컴퓨터 프로그램에 116 00:04:53,570 --> 00:04:55,710 getString는 같은 것을 사용. 117 00:04:55,710 --> 00:04:57,890 검색하기 위해 그 키 입력 방법 118 00:04:57,890 --> 00:05:01,620 우리는을 나타내는 가야합니까 문자열, 단어, 문단, 119 00:05:01,620 --> 00:05:03,960 또는이 여기 같은 여러 문자? 120 00:05:03,960 --> 00:05:06,790 >> 우리는에 대해 지난 시간에 이야기 정수와 문제 121 00:05:06,790 --> 00:05:09,960 그 정수 오버 플로우가 발생할 및 부동 소수점 값 122 00:05:09,960 --> 00:05:12,190 문제가 정밀도 내에서 발생한다. 123 00:05:12,190 --> 00:05:16,080 문자열로, 우리는 적어도 좀 더 유연성을 124 00:05:16,080 --> 00:05:17,970 strings-- 때문에 단지 현실을 전 세계에 125 00:05:17,970 --> 00:05:19,790 꽤 임의의 길이 될 수 있습니다. 126 00:05:19,790 --> 00:05:21,055 꽤 짧은 꽤 긴. 127 00:05:21,055 --> 00:05:23,680 그러나 그렇다하더라도, 우리는에 갈거야 찾아 컴퓨터가 때로는 수 128 00:05:23,680 --> 00:05:27,200 메모리가 부족하고 심지어 실행 충분히 큰 문자열을 저장합니다. 129 00:05:27,200 --> 00:05:30,840 >> 하지만 지금의 시각화하기 시작하자 이 상자에 뭔가 같은 문자열 130 00:05:30,840 --> 00:05:31,340 여기. 131 00:05:31,340 --> 00:05:36,410 따라서 여섯 예컨대 박스, 이들 각각 문자 또는 대표 "문자를." 132 00:05:36,410 --> 00:05:40,646 C-H--r--입니다입니다 - 그래서 "문자는"리콜 C.에 내장 된 데이터 유형 중 하나 133 00:05:40,646 --> 00:05:43,520 그리고 어떤 좋은 것은 당신이 사용할 수 있다는 것입니다 그런 종류의 빌딩 블록으로, 134 00:05:43,520 --> 00:05:47,880 퍼즐 조각, 당신이 경우에,을 형성 우리는 계속해서 더 큰 데이터 유형 135 00:05:47,880 --> 00:05:49,410 "문자열입니다."호출 136 00:05:49,410 --> 00:05:53,650 >> 자, 생각에 대한 유용 이런 식으로 문자열 같은 것들에 대한? 137 00:05:53,650 --> 00:05:57,720 글쎄, 우리가 할 수있는 것이 밝혀 실제로이 구조를 활용 138 00:05:57,720 --> 00:06:01,420 실제로 개별 문자에 액세스합니다 매우 간단한 방법입니다. 139 00:06:01,420 --> 00:06:04,099 내가 가서 만들거야 라는 파일 "stringzero.c" 140 00:06:04,099 --> 00:06:05,765 당신이 원하는 무엇이든하지만 당신은 그것을 호출 할 수 있습니다. 141 00:06:05,765 --> 00:06:08,500 그리고 코스의 웹 사이트에 이미 사전에이 예를 들어, 142 00:06:08,500 --> 00:06:10,430 그래서 당신은 할 필요가 없습니다 모든 것을 입력합니다. 143 00:06:10,430 --> 00:06:13,820 >> 그리고 앞서 갈거야 먼저 주요 int 무효을한다. 144 00:06:13,820 --> 00:06:15,980 그리고 몇 일 이내에, 우리는 떨어져 애타게 시작합니다 145 00:06:15,980 --> 00:06:19,070 그 이유는 무엇 무효가 여기에있다 메인 옆에 등 INT. 146 00:06:19,070 --> 00:06:21,180 하지만 지금의 계속하자 복사 것을 붙여 넣습니다. 147 00:06:21,180 --> 00:06:23,455 >> 나는 S라는 문자열을 선언 할거야. 148 00:06:23,455 --> 00:06:26,920 그리고 난에서 복귀 할거야 에서 어떤 사용자 유형을있는 getString. 149 00:06:26,920 --> 00:06:29,170 이것은 간단하게 될 것입니다 프로그램, 지시 사항, 150 00:06:29,170 --> 00:06:31,336 그냥 맹목적으로 갈거야 사용자가 알고있는 것으로 기대 151 00:06:31,336 --> 00:06:32,600 무엇을 간단하게하기 위해해야​​ 할 일. 152 00:06:32,600 --> 00:06:34,220 >> 지금은 루프를 가지고거야. 153 00:06:34,220 --> 00:06:37,450 그리고 내를위한 루프의 내부에 난 나는 제로를 가져옵니다 INT해야 할 것. 154 00:06:37,450 --> 00:06:40,660 그리고 난, 다시, 그냥 관례 계산을위한 인덱스 변수 155 00:06:40,660 --> 00:06:42,350 하지만 내가 원하는대로이 호출 할 수 있습니다. 156 00:06:42,350 --> 00:06:46,275 난 내가 잘 than-- 이하 할거야 Zamyla의 이름은 여섯 자 이내입니다. 157 00:06:46,275 --> 00:06:48,150 그래서 하드에 갈거야 지금은이 코드가. 158 00:06:48,150 --> 00:06:49,730 >> 그리고 난 + +. 159 00:06:49,730 --> 00:06:53,190 그리고 지금이 곱슬 내부 중괄호 나는, printf의를 할거야 160 00:06:53,190 --> 00:06:55,460 나는 일을 인쇄하려면 한 번에 문자입니다. 161 00:06:55,460 --> 00:06:58,227 그래서위한 %의 C를 사용하려고 해요 아마도 처음. 162 00:06:58,227 --> 00:07:00,560 그리고 나서 각을 인쇄하려면 한 줄에 문자가 있습니다. 163 00:07:00,560 --> 00:07:02,550 그래서 넣어 갈거야 작은 백 슬래시 N이. 164 00:07:02,550 --> 00:07:03,640 닫기 인용. 165 00:07:03,640 --> 00:07:06,250 >> 그리고 지금 내가 여기서 뭔가를하고 싶어요. 166 00:07:06,250 --> 00:07:10,610 나는 밖으로 인쇄 할 문자열에서 특정 문자, 167 00:07:10,610 --> 00:07:13,670 초, 나는 반복 해요로 최대 6에 0에서. 168 00:07:13,670 --> 00:07:17,150 즉, 내가 원하는 S의 i 번째 문자를 인쇄 할 수 있습니다. 169 00:07:17,150 --> 00:07:18,420 지금은이 문제를 어떻게 할 수 있습니까? 170 00:07:18,420 --> 00:07:21,550 >> 그럼 많은 상자처럼 여기이 표현, 171 00:07:21,550 --> 00:07:25,560 가지, 복싱의 개념을 연상 글자, 당신은 마찬가지로 그렇게 할 수 172 00:07:25,560 --> 00:07:32,630 구문 단순히 지정하여 C에서, 나는 문자 i 번째의의의를 인쇄 할 수 있습니다. 173 00:07:32,630 --> 00:07:35,640 대괄호를 사용하여 컴퓨터 키보드 174 00:07:35,640 --> 00:07:38,910 US 키보드에 있는지 일반적으로 리턴 키 위. 175 00:07:38,910 --> 00:07:42,630 >> 그래서 이것은 매우 옳지 않다 아직, 당신은 눈치 챘을 것이다있다. 176 00:07:42,630 --> 00:07:44,780 하지만 난 가지에 갈거야 맹목적으로 여기 점진. 177 00:07:44,780 --> 00:07:47,020 그리고 문자열 공을 할거야. 178 00:07:47,020 --> 00:07:50,860 나는이 작업을 수행하기 전에 그러나,의가 있는지 확인하자 우리 몇 가지 일반적인 실수를 예상 할 수 있습니다. 179 00:07:50,860 --> 00:07:52,844 이 컴파일하는거야? 180 00:07:52,844 --> 00:07:54,510 아니, 사물의 전체 무리를 실종 해요. 181 00:07:54,510 --> 00:07:55,280 도서관 들었어. 182 00:07:55,280 --> 00:07:58,480 >> 그래서 헤더 파일되는 여기서 추가 할 수 있습니다? 183 00:07:58,480 --> 00:07:59,205 그래. 184 00:07:59,205 --> 00:08:01,580 >> 청중 : 당신이 필요로하는 표준 I / O [INAUDIBLE] 185 00:08:01,580 --> 00:08:02,663 >> 데이비드 J. 마란 : 우수. 186 00:08:02,663 --> 00:08:06,060 그래서 표준 I / O가 필요합니다. 무엇 때문에 목적은 I 표준 I / O를 하시겠습니까? 187 00:08:06,060 --> 00:08:06,670 printf의하십시오. 188 00:08:06,670 --> 00:08:09,220 그래서 stdio.h에 포함되어 있습니다. 189 00:08:09,220 --> 00:08:13,490 그리고 당신은 또한 내가 포함하는 것이 제안 어떤 이유로 CS50 라이브러리? 190 00:08:13,490 --> 00:08:14,650 문자열을해야합니다. 191 00:08:14,650 --> 00:08:17,780 그래서 우리는 볼 것이다 무엇 CS50의 라이브러리를하고있다 192 00:08:17,780 --> 00:08:19,260 문자열이 개념을 만들 수 있습니다. 193 00:08:19,260 --> 00:08:21,930 하지만 지금, 당신은 생각할 수 그것의 실제의 데이터 유형. 194 00:08:21,930 --> 00:08:23,596 >> 그래서 조금 정리 될 것으로 보인다. 195 00:08:23,596 --> 00:08:27,060 그리고 지금은 앞서 갈거야 실제로 문자열 공을 다하겠습니다. 196 00:08:27,060 --> 00:08:27,700 컴파일 된. 197 00:08:27,700 --> 00:08:28,370 그래서 좋아. 198 00:08:28,370 --> 00:08:32,799 그래서 우리가 할 수있는 확대 나 보자 ./string0 더 밀접하게 무슨 일이 일어나고 있는지를 참조하십시오. 199 00:08:32,799 --> 00:08:33,850 입력합니다. 200 00:08:33,850 --> 00:08:37,789 Z는-A-M은-Y는-L-A는 입력합니다. 201 00:08:37,789 --> 00:08:39,440 그리고 우리는 Zamyla의 이름으로 인쇄했습니다. 202 00:08:39,440 --> 00:08:40,409 >> 그래서 꽤 좋다. 203 00:08:40,409 --> 00:08:43,220 그래서 지금의 가서하자 이 프로그램을 다시 실행 204 00:08:43,220 --> 00:08:45,659 및 Daven의 전체 이름을 입력합니다. 205 00:08:45,659 --> 00:08:46,450 깜짝 놀람. 206 00:08:46,450 --> 00:08:48,021 입력합니다. 207 00:08:48,021 --> 00:08:48,520 흠. 208 00:08:48,520 --> 00:08:51,750 우리는 Daven의 인쇄되지 않은 제대로 전체 이름. 209 00:08:51,750 --> 00:08:54,250 지금이에서 명백해야한다 때문에 무엇 회고, 210 00:08:54,250 --> 00:08:57,010 종류의 바보 디자인 결정? 211 00:08:57,010 --> 00:08:59,590 >> 그래, 난 하드 코드 내 루프의 여섯 내부. 212 00:08:59,590 --> 00:09:01,610 지금은했다 만 있기 때문에 나는 Zamyla의 이름을 알고 213 00:09:01,610 --> 00:09:02,776 여섯 글자로 가고 있었다. 214 00:09:02,776 --> 00:09:04,720 그러나 반드시이 없습니다 일반적인 솔루션입니다. 215 00:09:04,720 --> 00:09:07,720 알고 보니 그래서 우리는 동적으로 수 문자열의 길이를 알아낼 216 00:09:07,720 --> 00:09:10,440 strlen 함수라는 함수를 호출하여. 217 00:09:10,440 --> 00:09:12,840 >> 다시 말하지만, 의도적으로 간결 단지라는 이름의 218 00:09:12,840 --> 00:09:14,450 입력하는 것이 더 편리합니다. 219 00:09:14,450 --> 00:09:17,170 하지만 그와 동의어이다 문자열의 길이가 점점. 220 00:09:17,170 --> 00:09:23,190 내 단말기로 다시 갈거야 윈도우와 컴파일러를 다시 실행합니다. 221 00:09:23,190 --> 00:09:24,170 하지만 내게 소리입니다. 222 00:09:24,170 --> 00:09:29,130 암시 적으로 라이브러리 함수를 선언 const-- INT 부호없는 유형으로 strlen 223 00:09:29,130 --> 00:09:29,780 무슨 말이야. 224 00:09:29,780 --> 00:09:30,590 완전히. 225 00:09:30,590 --> 00:09:32,940 >> 그래서, 특히 같은 눈이 침침 226 00:09:32,940 --> 00:09:36,000 이 같은 오류 메시지 포커스 솔직히 처음 몇 단어. 227 00:09:36,000 --> 00:09:38,590 우리는 문제에 알고 라인 (8), 여기에 표시된대로. 228 00:09:38,590 --> 00:09:40,500 그리고 그것은 문자열 0.C에 있습니다. 229 00:09:40,500 --> 00:09:43,580 암시 적 선언 라이브러리 함수 나 strlen. 230 00:09:43,580 --> 00:09:47,000 그래서 일반적으로 것입니다 에러 메시지의 패턴 일. 231 00:09:47,000 --> 00:09:49,190 암시 적으로 뭔가를 선언. 232 00:09:49,190 --> 00:09:53,250 >> 그래서 짧은, I가 보였던 것을 가지고 여기, 8 라인과 관련하여 수행 한. 233 00:09:53,250 --> 00:09:56,880 수 있습니다 어떤 해결책도 될 수 당신은 자신의 strlen 사용한 적이 있다면? 234 00:09:56,880 --> 00:09:58,907 >> 청중 : 다른 라이브러리의 일부? 235 00:09:58,907 --> 00:10:00,740 데이비드 J. 마란 : 부품 다른 라이브러리의. 236 00:10:00,740 --> 00:10:02,400 이 선언 그래서, 말하자면. 237 00:10:02,400 --> 00:10:07,510 그것은 일부 파일에 언급 된 STDIO.H 및 CS50.h. 이외의 238 00:10:07,510 --> 00:10:09,179 어디까지가 정의? 239 00:10:09,179 --> 00:10:12,220 솔직히 말해서, 당신이 중 하나는을에이 당신의 머리 위로 떨어져이 사실을 알고, 240 00:10:12,220 --> 00:10:13,640 또는 당신이 구글과 알아보십시오. 241 00:10:13,640 --> 00:10:18,150 아니면이 사실을 알고, 나는 CS50에 연 단말 프로그램을하는 어플라이언스 242 00:10:18,150 --> 00:10:22,200 단지 큰 전체 화면 버전입니다 무슨 일이 gedit에서의 창의 맨 아래에 있습니다. 243 00:10:22,200 --> 00:10:24,970 >> 그리고이 있다고 밝혀 라는 유사 간결 명령 244 00:10:24,970 --> 00:10:29,280 당신이 입력하는 경우 설명서, 대한 사람 와 함수의 이름, Enter 키를 누르십시오 245 00:10:29,280 --> 00:10:32,240 당신은 매우 다시 연락 할게 비밀 문서. 246 00:10:32,240 --> 00:10:35,299 그것은 그 일반적으로 그냥 텍스트입니다 이 같은 작은 선물을 보인다. 247 00:10:35,299 --> 00:10:37,090 그것은 조금 압도 첫눈에. 248 00:10:37,090 --> 00:10:39,048 하지만 솔직히 나는 갈거야 내 눈이 흐릿하게 249 00:10:39,048 --> 00:10:41,930 단 부분에 초점 나는 순간에 대한 관심. 250 00:10:41,930 --> 00:10:42,780 >> 어떤이있다. 251 00:10:42,780 --> 00:10:45,470 어떤 구조적으로 보이는 뭔가 내가 알고 있어요. 252 00:10:45,470 --> 00:10:48,080 실제로 맨 페이지, 그래서 말하자면, 당신을 말할 것이다 253 00:10:48,080 --> 00:10:51,590 무엇에 헤더는 함수 파일 같은 strlen 함수가 정의됩니다. 254 00:10:51,590 --> 00:10:54,170 그래서 gedit를 이제 다시 갈거야. 255 00:10:54,170 --> 00:10:59,070 내가 먼저 갈거야 및 여기에 # 포함에 추가 256 00:10:59,070 --> 00:11:00,480 하고 파일을 저장합니다. 257 00:11:00,480 --> 00:11:04,300 >> 나는으로 화면을 지울거야 제어 L 당신이 궁금했는데합니다. 258 00:11:04,300 --> 00:11:08,210 그리고 메이크업을 다시 실행하려고 해요 string.0,이 시간을 컴파일합니다. 259 00:11:08,210 --> 00:11:11,790 ./string.0 Zamyla. 260 00:11:11,790 --> 00:11:15,020 그 날 가자 일 듯 앞서와 데븐 포트로를 다시 실행하십시오. 261 00:11:15,020 --> 00:11:15,860 입력합니다. 262 00:11:15,860 --> 00:11:17,730 그리고 그 역시 작동하는 것 같았다. 263 00:11:17,730 --> 00:11:21,220 >> 그래서 우리는이보다 조금 더 잘 할 수 하지만, 우리는 정리 정돈을 시작할 수 있습니다 264 00:11:21,220 --> 00:11:23,257 조금입니다. 265 00:11:23,257 --> 00:11:25,590 그리고 사실에 갈거야 이제 한 가지를 소개합니다. 266 00:11:25,590 --> 00:11:28,930 내가 먼저 갈거야 및 다른 파일이 저장합니다. 267 00:11:28,930 --> 00:11:31,770 그리고 내가 전화하려고 해요 이 파일 string1.c 단지 268 00:11:31,770 --> 00:11:34,620 코드와 일치합니다 온라인 찾을 수있을 것이다. 269 00:11:34,620 --> 00:11:37,050 >> 그리고의가에 집중하자 똑같은 코드. 270 00:11:37,050 --> 00:11:39,000 그것은 내가 지금 밝혀 복용하고 종류 271 00:11:39,000 --> 00:11:42,600 부여 사실을 내 노트북​​이, 차례로, CS50 어플라이언스 272 00:11:42,600 --> 00:11:47,450 많은 메모리, 많이 가지고 RAM, 공간의 바이트 많은 273 00:11:47,450 --> 00:11:48,920 있는 나는 문자열을 저장할 수 있습니다. 274 00:11:48,920 --> 00:11:53,560 >> 그러나 현실은 나는 긴 입력 한 경우 충분히, 충분히 키 입력, 275 00:11:53,560 --> 00:11:56,170 나는 이론 유형의 수 더 많은 문자 276 00:11:56,170 --> 00:11:58,830 내 컴퓨터가 아닌 물리적 메모리를 가지고있다. 277 00:11:58,830 --> 00:11:59,830 그리고 이것은 문제가있다. 278 00:11:59,830 --> 00:12:03,050 많은 INT 수 있습니다 만 같은 이론적으로, 너무 높은 카운트 279 00:12:03,050 --> 00:12:06,600 당신은 너무 많은 문자를 벼락 공부를 할 수 있습니다 컴퓨터의 RAM 또는 무작위로 280 00:12:06,600 --> 00:12:07,920 액세스 메모리. 281 00:12:07,920 --> 00:12:11,140 >> 그래서 더 기대했다 이러한 문제에도 282 00:12:11,140 --> 00:12:13,660 그것은 드문 일 수 있습니다하지만 코너의 경우, 말하자면. 283 00:12:13,660 --> 00:12:15,670 자주 발생하지 않는다 일어날 수 있습니다. 284 00:12:15,670 --> 00:12:18,815 이 발생하고 있다면 난 몰라 예측하고 그것을위한 프로그램, 285 00:12:18,815 --> 00:12:20,300 내 프로그램은 무엇을 알고 자 할 수 있습니다. 286 00:12:20,300 --> 00:12:22,220 , 무엇을 재부팅, 동결 만요. 287 00:12:22,220 --> 00:12:24,490 뭔가 일어날 것으로 예상. 288 00:12:24,490 --> 00:12:27,120 >> 그래서 내가 할거야 지금, 이제부터는 정말, 289 00:12:27,120 --> 00:12:31,630 지금까지 맹목적으로 I 전에이다 의 같은 변수를 사용하는 290 00:12:31,630 --> 00:12:36,790 의 리턴 값 할당 된 getstring를 같은 몇 가지 다른 기능 291 00:12:36,790 --> 00:12:40,200 나는 있는지 확인하려고 해요 것으로 그 값은 유효합니다. 292 00:12:40,200 --> 00:12:44,280 그래서 내가 읽은에서만 알고 getstring를위한 CS50의 문서, 293 00:12:44,280 --> 00:12:49,020 궁극적으로 우리는 당신을하겠다, 그 getstring를 특수 기호를 반환 294 00:12:49,020 --> 00:12:53,610 모두 NULL, N-U-L-L라고 뭔가 잘못되면, 모자. 295 00:12:53,610 --> 00:12:55,650 >> 그래서 일반적으로, 그것은 문자열을 반환합니다. 296 00:12:55,650 --> 00:12:59,700 그러나 N-U-L-전 ...를 반환, 그렇지 않으면 경우 우리는 결국 정말 그 무엇을 볼 수 있습니다 297 00:12:59,700 --> 00:13:01,790 이 단지 수단을 의미 하든지 뭔가 나쁜 일이. 298 00:13:01,790 --> 00:13:05,560 지금이 훨씬 스크래치처럼, 의미, 나는 C 여기에 조건을 확인할 수 있습니다 299 00:13:05,560 --> 00:13:08,830 의이 같은 NULL을하지 않습니다 경우. 300 00:13:08,830 --> 00:13:11,930 당신은 전에 본 적이 없다 경우에 따라서, 그냥 뜻이 동일하지 않습니다. 301 00:13:11,930 --> 00:13:15,290 >> 그래서 반대입니다 리콜 동일한 같음, 302 00:13:15,290 --> 00:13:18,940 하나의 다른 할당하다, 같다. 303 00:13:18,940 --> 00:13:23,030 의 동일하지 않는 경우에 따라서 NULL 만 다음을 수행 304 00:13:23,030 --> 00:13:25,980 나는이 코드 줄을 실행합니다. 305 00:13:25,980 --> 00:13:28,080 따라서 환언하면, 나는 맹목적으로 다이빙하기 전에 306 00:13:28,080 --> 00:13:30,919 그리고 반복하기 시작 (S) 위에, 그것을 처리 307 00:13:30,919 --> 00:13:33,710 그것의 순서 인 것처럼 자, 내가 먼저 확인하는거야 308 00:13:33,710 --> 00:13:37,900 잠깐, 확실히 아니다입니다 이 특별한 값과 동일, NULL? 309 00:13:37,900 --> 00:13:40,030 >> 이 경우, 나쁜 일이 일어날 수 있기 때문이다. 310 00:13:40,030 --> 00:13:43,080 그리고 지금은 나쁜 일을 가정 당신의 프로그램이 충돌 수단이 일어나고, 311 00:13:43,080 --> 00:13:45,070 당신은 반드시 복구 할 수 없습니다. 312 00:13:45,070 --> 00:13:46,800 그래서 솔직히, 그것은 추악한 보인다. 313 00:13:46,800 --> 00:13:48,660 그것은 가지에 눈에 지금 혼란 있어요. 314 00:13:48,660 --> 00:13:50,780 하지만이 더 될 것입니다 오래 전에 잘 알고. 315 00:13:50,780 --> 00:13:52,920 >> 하지만 제안하는거야 이제 한 다른 개선. 316 00:13:52,920 --> 00:13:54,660 즉, 정확성 할 수있는 개선입니다. 317 00:13:54,660 --> 00:13:58,800 내 프로그램이 있기 때문에, 더욱 정확 드문 경우에 해당 메모리가 부족합니다 318 00:13:58,800 --> 00:14:01,180 , 나는 그것을 처리 할 존재, 난 그냥 아무것도하지 않는 것입니다. 319 00:14:01,180 --> 00:14:02,680 나는 적어도 충돌하지 않습니다. 320 00:14:02,680 --> 00:14:05,000 >> 그러나 여기서 최종 버전을 수행 할 수 있습니다. 321 00:14:05,000 --> 00:14:07,690 그리고 파일은 string2.c을했다. 322 00:14:07,690 --> 00:14:10,190 그 붙여거야 단지 잠시 동안 동일한 코드, 323 00:14:10,190 --> 00:14:14,210 이걸 강조거야 잠시 여기 라인 11. 324 00:14:14,210 --> 00:14:18,179 지금 현실은 스마트 컴파일러입니다 연타는 우리를 위해이 문제를 해결할 수 있었던 것처럼 325 00:14:18,179 --> 00:14:19,970 뒤에서 우리가 지금까지 알지 못하고. 326 00:14:19,970 --> 00:14:24,670 그러나 이제 이것에 대해 생각해 봅시다 근본적으로 문제가있는 디자인으로. 327 00:14:24,670 --> 00:14:29,010 >> 코드 행은 물론이다 말을, 어떤 변수 내가 0을 초기화합니다. 328 00:14:29,010 --> 00:14:30,260 그것은 매우 간단합니다. 329 00:14:30,260 --> 00:14:34,691 그리고 다시이 무엇인가 문, 여기, 내가하고, + +? 330 00:14:34,691 --> 00:14:37,066 우리는 전에 본 있지만, 한 정말 그것에 대해 얘기하지 않았다. 331 00:14:37,066 --> 00:14:37,900 >> 청중 : 난을 증가. 332 00:14:37,900 --> 00:14:39,191 >> 데이비드 J. 마란 : 증가 나. 333 00:14:39,191 --> 00:14:41,890 을 통해 모든 반복에 따라서 이 루프, 매 사이클마다, 334 00:14:41,890 --> 00:14:43,570 당신은 하나 난을 증가하고 있습니다. 335 00:14:43,570 --> 00:14:45,740 그래서 더 큰, 더 큰 가져오고 루프가 종료 될 때까지 더 큰. 336 00:14:45,740 --> 00:14:46,810 어떻게 종료합니까? 337 00:14:46,810 --> 00:14:49,430 그럼이 중간에있다 우리가 전에 사용했던 상태. 338 00:14:49,430 --> 00:14:52,500 당신은 볼과 한 P 세트에서 연습. 339 00:14:52,500 --> 00:14:53,880 >> 그러나이 말은 무엇인가? 340 00:14:53,880 --> 00:14:58,352 그래서 다음 루프를 수행 오랫동안 나는 무엇보다이기 때문에? 341 00:14:58,352 --> 00:14:59,810 청중 : 문자열의 길이입니다. 342 00:14:59,810 --> 00:15:01,518 데이비드 J. 마란 : 문자열의 길이입니다. 343 00:15:01,518 --> 00:15:04,300 그래서 꽤 깨끗하게 변환 그런 의미에서 영어로. 344 00:15:04,300 --> 00:15:08,810 이제 문제는 매번 그 I 이론적으로이 루프를 반복, 345 00:15:08,810 --> 00:15:10,000 나는이 질문을 부탁 해요. 346 00:15:10,000 --> 00:15:12,250 난의의 문자열 길이보다 작은가요? 347 00:15:12,250 --> 00:15:14,500 난의의 문자열 길이보다 작은가요? 348 00:15:14,500 --> 00:15:18,380 >> 지금은 각 반복에 변화? 349 00:15:18,380 --> 00:15:18,880 때문이다. 350 00:15:18,880 --> 00:15:19,629 + +의 때문입니다. 351 00:15:19,629 --> 00:15:21,700 그래서 반복 할 때마다 내가 더 큰지고 있습니다. 352 00:15:21,700 --> 00:15:25,411 그러나입니다들 커지고, 또는 작은, 또는 전혀 변경? 353 00:15:25,411 --> 00:15:25,910 번호 354 00:15:25,910 --> 00:15:30,240 디자인면, 하나의 축에 따라서 어떤 따라 우리는 코드를 평가하려고 355 00:15:30,240 --> 00:15:32,610 클래스에서,이 가지 바보 같은 느낌. 356 00:15:32,610 --> 00:15:34,690 >> 말 그대로 아르처럼, 모든 반복에 357 00:15:34,690 --> 00:15:37,110 이 루프의 요청 다시 같은 빌어 먹을 질문 358 00:15:37,110 --> 00:15:40,770 다시, 다시, 문자 그대로 그것은 절대로 변하지 않을된다. 359 00:15:40,770 --> 00:15:44,220 나는의 감동 아니에요 적어도 경우 (S)의 내용을 변경하려고. 360 00:15:44,220 --> 00:15:46,610 그래서 나는이보다 조금 더 잘 할 수 있습니다. 361 00:15:46,610 --> 00:15:49,530 >> 그리고 내가 할거야 것은 아니다 단 하나의 i 변수를 선언 362 00:15:49,530 --> 00:15:53,330 하지만 두 번째 변수는 내가 임의로거야 하지만 통상적으로, N을 호출합니다. 363 00:15:53,330 --> 00:15:55,940 n에 동일하게 할당 의 문자열의 길이입니다. 364 00:15:55,940 --> 00:15:59,090 그리고 여기, 내가 갈거야 그래서 영리한 최적화를 수행 365 00:15:59,090 --> 00:16:03,460 하루의 끝에서, 그 말하자면 더 이상 올바른 또는 덜 정확하지 않습니다 366 00:16:03,460 --> 00:16:04,260 이전보다. 367 00:16:04,260 --> 00:16:05,500 그러나 더 나은 디자인입니다. 368 00:16:05,500 --> 00:16:09,480 사실 내가 사용하고 있음 적은 시간, 적은 CPU 사이클, 그래서 369 00:16:09,480 --> 00:16:14,040 같은 대답을, 말하자면 질문하지만, 한 번만. 370 00:16:14,040 --> 00:16:17,870 >> 이 일반에 대한 질문 개선의 원칙, 371 00:16:17,870 --> 00:16:21,294 프로그램의 효율성은 말할? 372 00:16:21,294 --> 00:16:21,991 그래? 373 00:16:21,991 --> 00:16:23,699 관객 : 왜 당신을 [INAUDIBLE]를 사용하세요? 374 00:16:23,699 --> 00:16:25,760 375 00:16:25,760 --> 00:16:27,010 데이비드 J. 마란 : 좋은 질문입니다. 376 00:16:27,010 --> 00:16:30,690 그럼 왜 우리는 말에 + +를 배치해야합니까 I 대신 I의 처음? 377 00:16:30,690 --> 00:16:33,070 이 경우에는 기능적으로 영향을주지는 않습니다. 378 00:16:33,070 --> 00:16:36,670 그리고 일반적으로 나는 경향이있다 후위 연산자를 사용 379 00:16:36,670 --> 00:16:41,750 조금 더 명확 같은 걸 너무 작업이 일어나는 경우에. 380 00:16:41,750 --> 00:16:46,670 >> 그 익숙하지 않은 들어, 다른이 당신이 ++ 나는 할 수있다 문. 381 00:16:46,670 --> 00:16:48,747 이러한 기능적 아르 이 경우의 등가 382 00:16:48,747 --> 00:16:51,080 다른 아무것도 있기 때문에 그 점진 주변. 383 00:16:51,080 --> 00:16:54,435 하지만 당신은 가지고 올 수 케이스 및 코드 라인 384 00:16:54,435 --> 00:16:55,810 하는 그 차이를 만든다. 385 00:16:55,810 --> 00:16:57,810 그래서 일반적으로, 우리는하지 않습니다 심지어이 일에 대해 이야기. 386 00:16:57,810 --> 00:17:00,690 솔직히 때문에, 당신을 만든다 코드 섹시, 그​​리고 종류의 야바위꾼, 387 00:17:00,690 --> 00:17:01,776 적은 문자. 388 00:17:01,776 --> 00:17:04,859 하지만 현실은, 그것은 많이 힘들어합니다 나는 내 마음을 포장도에 대한 생각 389 00:17:04,859 --> 00:17:07,319 가끔 주위, 작업의 순서. 390 00:17:07,319 --> 00:17:09,750 여담으로, 경우에 따라서 정말이 싫어 391 00:17:09,750 --> 00:17:14,650 심지어이 가지 섹시하지만 찾고, 당신은 또한 할 수있는 내가 + = 1, 392 00:17:14,650 --> 00:17:18,880 어떤의 모양은 좋지 버전입니다 후위 점진에 대한 같은 생각. 393 00:17:18,880 --> 00:17:22,250 >> 나는이 당신을 말한다 그것의 재미를해야한다, 394 00:17:22,250 --> 00:17:25,140 하지만 당신은 같은 코드를보고 올 것이다 오래 전에 아름다운 뭔가. 395 00:17:25,140 --> 00:17:27,160 >> [웃음] 396 00:17:27,160 --> 00:17:28,410 >> 데이비드 J. 마란 : 오른쪽? 397 00:17:28,410 --> 00:17:29,360 그래. 398 00:17:29,360 --> 00:17:30,480 중간에 질문. 399 00:17:30,480 --> 00:17:32,146 >> 청중 : 당신은 정수 n을 말을해야합니까? 400 00:17:32,146 --> 00:17:34,020 데이비드 J. 마란 : 당신이 할 정수 n을 말할 필요가 없습니다. 401 00:17:34,020 --> 00:17:37,670 우리는 이미 INT 말했다 때문에 그래서, 당신은 다시 말할 필요가 없습니다. 402 00:17:37,670 --> 00:17:41,820 캐치 N은 가지고 있다는 것입니다 I와 같은 데이터 타입이어야. 403 00:17:41,820 --> 00:17:43,310 그래서 여기에 그냥 편리합니다. 404 00:17:43,310 --> 00:17:44,058 그래. 405 00:17:44,058 --> 00:17:47,806 >> 청중 : 당신은을 통해 갈 수 인쇄 문자의 브래킷 내가 다시? 406 00:17:47,806 --> 00:17:48,930 데이비드 J. 마란 : 물론입니다. 407 00:17:48,930 --> 00:17:52,110 그래서 %의 C, 마지막에서 호출 시간은 단지 자리 표시 자입니다. 408 00:17:52,110 --> 00:17:53,930 그것은 여기에 문자를 넣어 의미한다. 409 00:17:53,930 --> 00:17:56,780 백 슬래시 N, 물론, 단지 수단은 여기에 줄 바꿈을했습니다. 410 00:17:56,780 --> 00:17:59,540 , 지금, 잎 있도록 새 구문이 조각. 411 00:17:59,540 --> 00:18:03,730 그리고 이것은 그대로 잡아, 말하는 문자열의 전화를 가서 그 412 00:18:03,730 --> 00:18:06,050 i 번째 문자, 말하자면. 413 00:18:06,050 --> 00:18:10,590 >> 그리고 i 번째 문자를 자꾸 이 때문에 루프의 각 반복에 414 00:18:10,590 --> 00:18:14,540 우리가 인쇄하는 것처럼입니다 아웃, 첫번째의 브래킷 공, 415 00:18:14,540 --> 00:18:15,780 프로그래머는 말할 수있다. 416 00:18:15,780 --> 00:18:18,680 다음의 다음, 브래킷 일이야 브래킷이 후, 다음 3, 4. 417 00:18:18,680 --> 00:18:21,610 그러나 물론 그것은 변수입니다, 그래서 난 그냥 내가 그것을 표현한다. 418 00:18:21,610 --> 00:18:23,900 >> 키,하지만 실현하는 것입니다, 당신은 적이 없다 특히 419 00:18:23,900 --> 00:18:26,358 이 세계에 익숙해 질하고 프로그래밍, 우리 모두의 420 00:18:26,358 --> 00:18:28,950 꼭, 0부터 계산하는 것 이제 0부터 계산 시작합니다. 421 00:18:28,950 --> 00:18:35,130 때문에 문자열의 첫 번째 문자, Zamyla에서 Z는 좋든 나쁘입니다 422 00:18:35,130 --> 00:18:40,490 위치 숫자 0에서 사는 것. 423 00:18:40,490 --> 00:18:48,210 >> 좋아, 내가 데려 오게 여기 Zamyla에 우리 다시 424 00:18:48,210 --> 00:18:50,746 정말 무슨 일이야 참조 후드 아래에. 425 00:18:50,746 --> 00:18:52,370 그래서 형 변환의이 개념이있다. 426 00:18:52,370 --> 00:18:53,800 당신은 실제로있을 수 있습니다 이미 경기 427 00:18:53,800 --> 00:18:55,970 어쩌면 해커 P의 판 하나를 설정합니다. 428 00:18:55,970 --> 00:19:00,320 그러나 형 변환 단지를 말합니다 C에서 능력과 다른 언어 429 00:19:00,320 --> 00:19:03,170 다른 하나의 데이터 유형을 변환하는 방법. 430 00:19:03,170 --> 00:19:05,450 >> 이제 우리는이 방법을 볼 수 있습니다 꽤 직설적? 431 00:19:05,450 --> 00:19:08,530 그래서 시작이, 리콜 영어의 알파벳입니다. 432 00:19:08,530 --> 00:19:11,265 그리고 문맥에서, 기억 같은 주 전 ASCII이다. 433 00:19:11,265 --> 00:19:13,790 미국 표준 코드 정보 교환. 434 00:19:13,790 --> 00:19:17,080 어느 단지 정말로 긴 방법입니다 편지에서 매핑을 말하는 435 00:19:17,080 --> 00:19:19,370 숫자, 숫자에서 문자로. 436 00:19:19,370 --> 00:19:22,940 >> 그래서 여기 M, 점 점을 통해 점, 선까지, 리콜, 437 00:19:22,940 --> 00:19:25,582 최대의 진수 65. 438 00:19:25,582 --> 00:19:27,290 그리고 우리는 이야기하지 않았다 명시 적으로 이것에 대해, 439 00:19:27,290 --> 00:19:29,850 그러나 확실하게 유사한있다 소문자를위한 숫자. 440 00:19:29,850 --> 00:19:30,820 그리고 실제로,이 있습니다. 441 00:19:30,820 --> 00:19:33,730 세계는 몇 년 결정 전 그 작은, 소문자, 442 00:19:33,730 --> 00:19:35,020 97가 될 것입니다. 443 00:19:35,020 --> 00:19:38,010 그리고 작은 B는 것입니다 등 98 등을 할 수 있습니다. 444 00:19:38,010 --> 00:19:40,200 >> 그리고 다른 키에 대한 키보드는있다 445 00:19:40,200 --> 00:19:42,190 비트의 유사한 패턴이 될 것. 446 00:19:42,190 --> 00:19:44,540 또는 동등 진수. 447 00:19:44,540 --> 00:19:47,110 그래서 손을 질문, 다음, 우리는 어떻게 할 수 있습니다 448 00:19:47,110 --> 00:19:49,400 실제로 후드 아래에이 보여? 449 00:19:49,400 --> 00:19:51,539 그래서 나는 다시의 gedit에 가서거야. 450 00:19:51,539 --> 00:19:53,330 그리고 오히려 형보다 처음부터이 일, 451 00:19:53,330 --> 00:19:55,330 내가 먼저 갈거야 및 뭔가를 열 452 00:19:55,330 --> 00:19:58,350 오늘날의 코드에서 ASCII 제로라고. 453 00:19:58,350 --> 00:20:01,210 >> 그리고 ASCII 제로는 다음과 같습니다. 454 00:20:01,210 --> 00:20:02,710 그럼이 문제를 우리의 마음을 포장 할 수 있습니다. 455 00:20:02,710 --> 00:20:04,969 그래서 첫째, 내가 댓글을 달았습니다 좋은 코드. 456 00:20:04,969 --> 00:20:07,010 그것은 말 그대로 때문에 무엇을 기대하라고 말하고, 457 00:20:07,010 --> 00:20:08,950 대문자에 대한 매핑을 표시합니다. 458 00:20:08,950 --> 00:20:13,690 지금은 확실히 모르는 I 뜻으로, 그래서 추론 할 수 있습니다. 459 00:20:13,690 --> 00:20:16,870 >> 영어에서, 어쩌면 다소 일 techie 영어, 460 00:20:16,870 --> 00:20:20,660 어떤 라인 (18)이 나타나지 않습니다 우리를 위해 일을해야 하는가? 461 00:20:20,660 --> 00:20:21,500 그냥 18 라인. 462 00:20:21,500 --> 00:20:22,430 그것은 무엇을 유도이야? 463 00:20:22,430 --> 00:20:25,192 무엇 여기 킥오프거야? 464 00:20:25,192 --> 00:20:26,100 >> 청중 : 루프. 465 00:20:26,100 --> 00:20:26,630 >> 데이비드 J. 마란 : 루프. 466 00:20:26,630 --> 00:20:28,463 그리고 얼마나 많은 시간이다 반복 할 것인가? 467 00:20:28,463 --> 00:20:31,562 468 00:20:31,562 --> 00:20:33,270 청중 : [목소리를 개재] 여섯 번. 469 00:20:33,270 --> 00:20:34,830 데이비드 J. 마란 : 아니 여섯 번. 470 00:20:34,830 --> 00:20:35,840 관객 : 26 번. 471 00:20:35,840 --> 00:20:36,560 데이비드 J. 마란 : 26 번. 472 00:20:36,560 --> 00:20:37,060 네, 죄송합니다. 473 00:20:37,060 --> 00:20:37,960 26 번. 474 00:20:37,960 --> 00:20:38,460 왜? 475 00:20:38,460 --> 00:20:41,590 글쎄, 그건 좀 이상하지만, 나는 65부터 계산 시작했습니다. 476 00:20:41,590 --> 00:20:43,300 어떤 이상한, 그러나 잘못이 아니다. 477 00:20:43,300 --> 00:20:44,610 그것은 말 당 나쁘지 않다. 478 00:20:44,610 --> 00:20:46,980 그리고 내가하고있어 만 왜냐하면, 예를 들면, 479 00:20:46,980 --> 00:20:50,455 나는 가지 기대 해요 그 자본은 65이었다. 480 00:20:50,455 --> 00:20:53,330 지금이없는 가장 우아한 방법은 하드 코드 가지로,이 작업을 수행하는 481 00:20:53,330 --> 00:20:56,130 비의 값이 아무도 없다 지금까지 기억 할 것으로 예상된다. 482 00:20:56,130 --> 00:21:00,155 >> 하지만 지금 난 것을 알 수 65 플러스 (26)이를 하 고입니다. 483 00:21:00,155 --> 00:21:03,030 분명히 나는​​ 심지어 원하지 않기 때문에 내 머리에 연산을 수행 할 수 있습니다. 484 00:21:03,030 --> 00:21:04,440 그래서 컴파일러가 작업을 수행 할 수 있습니다. 485 00:21:04,440 --> 00:21:08,600 하지만 각 루프에 각각의 반복 루프, 나는 내가이 증가하고 있습니다. 486 00:21:08,600 --> 00:21:10,196 >> 그래서 지금이 조금 애매 보인다. 487 00:21:10,196 --> 00:21:13,320 그러나 우리는 기본 구성이 있어야합니다 와 블록이를 이해한다. 488 00:21:13,320 --> 00:21:15,510 % C는 문자 단지 자리 표시 자입니다. 489 00:21:15,510 --> 00:21:19,010 %의 난 INT에 대한 자리 표시 자입니다. 490 00:21:19,010 --> 00:21:23,310 그리고 이것을 사용하는 것이 밝혀 새 구문이 괄호 때문에 491 00:21:23,310 --> 00:21:26,100 말하고, 데이터 형식 때문에하기 괄호 안의, 492 00:21:26,100 --> 00:21:32,270 나는 치료하는 컴파일러를 강제 할 수 못 정수이지만, 문자 등. 493 00:21:32,270 --> 00:21:35,520 >> 따라서 나에게 문자를 표시 그 번호의 것과 같습니다. 494 00:21:35,520 --> 00:21:37,986 지금 여기로,이 코드 거의 동일하다. 495 00:21:37,986 --> 00:21:39,860 난 그냥 확인하고 싶었 슈퍼 명시 적 사실 496 00:21:39,860 --> 00:21:42,095 나는 97에서 시작하는 걸, 이는 소문자된다. 497 00:21:42,095 --> 00:21:44,080 최대 26 개 이상의 문자를 통해서 전달됩니다. 498 00:21:44,080 --> 00:21:46,970 그리고 나는 다시 하는거죠 해요 내가 캐스팅, 말하자면. 499 00:21:46,970 --> 00:21:49,160 아니면 형 변환 나는, 말하자면. 500 00:21:49,160 --> 00:21:51,420 >> 문자에 대한 INT에서. 501 00:21:51,420 --> 00:21:55,760 그래서 최종 결과가 될 것입니다, 솔직히 정보를 우리는 이미 알고있다. 502 00:21:55,760 --> 00:21:59,411 내가 만들려고 해요 아스키 - 공은 C를 점하지 dot--. 503 00:21:59,411 --> 00:22:02,160 공지 사항, 당신은 아마 것을 만들어 실수를 그냥 실수했던 것처럼. 504 00:22:02,160 --> 00:22:03,820 아스키 - 공을 확인합니다. 505 00:22:03,820 --> 00:22:06,090 지금은 ./ascii-0을거야. 506 00:22:06,090 --> 00:22:09,050 나는 확대, 불행하게도 것 이 화면을 스크롤 할 것입니다. 507 00:22:09,050 --> 00:22:15,060 그러나 우리는 전체 차트 위치를 참조 97에 대한지도, 98 나지도, 508 00:22:15,060 --> 00:22:18,931 우리는 더 위로 스크롤하면 는 물론, 65로 매핑한다. 509 00:22:18,931 --> 00:22:21,180 그래서이 말을 아니라 우리는 무엇을 설교했습니다, 510 00:22:21,180 --> 00:22:25,310 이 등가가 존재이다 실제로 사실 케이스. 511 00:22:25,310 --> 00:22:28,000 그래서이 빠르게 수정. 512 00:22:28,000 --> 00:22:31,220 내가 아스키 - 1.C를 열겠습니다. 513 00:22:31,220 --> 00:22:38,070 그리고 정렬이 영리를 알 의이 명확히. 514 00:22:38,070 --> 00:22:41,770 이 아스키 - 1.C이며, 이 미친 것을 알 수 있습니다. 515 00:22:41,770 --> 00:22:45,120 >> 그리고 이것은 정말 마음에 도달 무슨 컴퓨터가하고있다. 516 00:22:45,120 --> 00:22:48,150 심지어 우리 인간이하고자하지만 나는 편지의 관점에서 계산하지 517 00:22:48,150 --> 00:22:50,380 내가 생각하기 시작하지, 모든 권리 b를, 518 00:22:50,380 --> 00:22:52,590 물리적 객체를 계산하는 사람들을 사용합니다. 519 00:22:52,590 --> 00:22:58,680 당신은 확실히 내가 할 수 있다는 말할 수있다 라는 몇 가지 변수를 초기화 c-- 520 00:22:58,680 --> 00:23:03,220 하지만이 증거를 없애라고 수 있었다 그래서 C는 자본 A.로 초기화된다 521 00:23:03,220 --> 00:23:07,560 >> 하루의 끝에서, 컴퓨터 때문에 당신이 저장하는지 상관하지 않는다, 522 00:23:07,560 --> 00:23:10,170 그것은 단지 당신이 원하는 방법에 관심 그 정보를 제공합니다. 523 00:23:10,170 --> 00:23:13,560 당신은 컴퓨터에 원하는 어떻게 비트의 패턴을 해석? 524 00:23:13,560 --> 00:23:16,320 그래서이 뭔가 내가 아니다 일반적으로 일을 추천 할 것입니다. 525 00:23:16,320 --> 00:23:19,500 그것은 정말 그냥 예입니다 전달 당신은 절대적으로 수 526 00:23:19,500 --> 00:23:22,049 문자의 정수를 초기화합니다. 527 00:23:22,049 --> 00:23:24,090 때문에 아래에 문자의 후드 물론, 528 00:23:24,090 --> 00:23:26,170 0-255 단지 숫자입니다. 529 00:23:26,170 --> 00:23:28,540 >> 그래서 당신은 확실히 할 수 INT의 내부에 넣어. 530 00:23:28,540 --> 00:23:30,890 그리고 어떤이도 됩니다 보여줍니다 우리가 531 00:23:30,890 --> 00:23:34,040 하나에서 변환 할 수 있습니다 여기에, 다른 입력 532 00:23:34,040 --> 00:23:36,780 궁극적으로 같은 일을 인쇄. 533 00:23:36,780 --> 00:23:44,760 그리고 사실, 이것은 내가 online-- 해결됩니다 여기에 다시, 이런 말을했었다. 534 00:23:44,760 --> 00:23:48,610 내가 온라인이 최대를 청소합시다, 우리는거야 필요에 따라 온라인 연습에 참조 535 00:23:48,610 --> 00:23:50,280 어떤이 예정되었다. 536 00:23:50,280 --> 00:23:50,960 >> 확인을 클릭합니다. 537 00:23:50,960 --> 00:23:53,892 이제 포함 그래서 마지막 예 의와 B의 다음 우리는거야 538 00:23:53,892 --> 00:23:54,850 한 단계 물건을 차지합니다. 539 00:23:54,850 --> 00:23:58,330 의와 b 년대와 너무 총액 C의의 540 00:23:58,330 --> 00:24:01,560 와 동등한 그,하자 여기,이 예제를 보도록하자. 541 00:24:01,560 --> 00:24:02,752 또 다른 코드 예제. 542 00:24:02,752 --> 00:24:04,460 우리는거야 하나를 열 것 이미 만들어진, 우리는 이렇게 543 00:24:04,460 --> 00:24:06,440 를 입력 할 필요가 없습니다 모두 처음부터 아웃. 544 00:24:06,440 --> 00:24:09,420 >> 그리고 기대에주의 우리는 여러 헤더를 사용하는 545 00:24:09,420 --> 00:24:13,240 인간에 ​​파일, 우리의 새로운 친구, string.h. 546 00:24:13,240 --> 00:24:15,597 지금이 처음에 보이는 눈 조금 애매. 547 00:24:15,597 --> 00:24:18,180 하지만 우리가 추론 할 수없는 경우 보자 여기에 무슨 일이 일어나고 있는지를 통해. 548 00:24:18,180 --> 00:24:21,150 우선 사용자로부터 문자열을 얻을, 나는 변수에 문자열을 넣어 549 00:24:21,150 --> 00:24:22,286 라고들. 550 00:24:22,286 --> 00:24:24,090 이전에 복사하여 붙여 넣기를. 551 00:24:24,090 --> 00:24:27,250 라인 (22), 나는 분명히 해요 정확히 어떤 일을 552 00:24:27,250 --> 00:24:30,760 내가 반복하고있어, 잠시 전에했던 S의 문자를 통해. 553 00:24:30,760 --> 00:24:34,780 >> 그리고 여기에 새로운 트릭이 사용하는 문자열 길이, 마이너 최적화 554 00:24:34,780 --> 00:24:37,930 N의 문자열 길이를 저장, 오히려 다시 나 strlen 호출하는 것보다, 555 00:24:37,930 --> 00:24:38,850 다시, 다시. 556 00:24:38,850 --> 00:24:41,120 그리고 그냥 내가 n보다 작다는 것을 검사합니다. 557 00:24:41,120 --> 00:24:43,330 지금 여기 일이 얻을 조금 흥미 롭군요. 558 00:24:43,330 --> 00:24:45,980 그러나 그것은 단지 응용 프로그램의 이 같은 새로운 아이디어의. 559 00:24:45,980 --> 00:24:48,470 영어가하는 무엇 내가 표현의 브래킷? 560 00:24:48,470 --> 00:24:51,772 561 00:24:51,772 --> 00:24:54,260 >> 대상 : 각 계산 문자 [INAUDIBLE]. 562 00:24:54,260 --> 00:24:55,926 >> 데이비드 J. 마란 : 각 문자를 계산합니다. 563 00:24:55,926 --> 00:24:58,680 그리고 더 간결하게, 의 브래킷 어떻게 표현? 564 00:24:58,680 --> 00:25:00,950 겠습니까 당신은 말한다. 565 00:25:00,950 --> 00:25:04,084 이 자리에 당신을 넣어하지 않습니다. 566 00:25:04,084 --> 00:25:06,375 >> 청중 : 글쎄 ... 567 00:25:06,375 --> 00:25:09,500 데이비드 J. 마란은 : 말씀이 있다면 .. 바로 그래서 경우 문자열 starts-- Zamyla입니다 568 00:25:09,500 --> 00:25:12,380 청중 : --you과 거래 문자가 separately-- 569 00:25:12,380 --> 00:25:13,690 데이비드 J. 마란 : 좋은. 570 00:25:13,690 --> 00:25:14,190 정확히. 571 00:25:14,190 --> 00:25:17,940 각 괄호 표기를 할 수 있습니다 개별적으로 각각의 문자에 액세스하려면 572 00:25:17,940 --> 00:25:21,120 그래서의 브래킷 0을 될 것입니다 문자열의 첫 번째 문자. 573 00:25:21,120 --> 00:25:24,110 의 브라켓 하나가 될 것입니다 두 번째, 세 번째, 그리고. 574 00:25:24,110 --> 00:25:28,050 그래서 질문 I 부탁 해요, 여기,이 상태에서 무엇입니까? 575 00:25:28,050 --> 00:25:33,984 S의 큰의 i 번째 문자입니다 보다 같거나 소문자로? 576 00:25:33,984 --> 00:25:36,400 그리고 여기, 무엇을 의미 하는가 이중 앰퍼샌드와? 577 00:25:36,400 --> 00:25:36,800 청중 (TOGETHER) : 그리고. 578 00:25:36,800 --> 00:25:37,210 데이비드 J. 마란 : 그리고. 579 00:25:37,210 --> 00:25:38,418 그것은이 단지 해당합니다. 580 00:25:38,418 --> 00:25:42,310 그리고 C에 키워드 아니다, 그럴 필요 사용, 귀찮게, 앰퍼샌드 앰퍼샌드. 581 00:25:42,310 --> 00:25:47,520 그리고 이것은 역으로 요구하고있다 문자 i 번째의의의 이하가 582 00:25:47,520 --> 00:25:49,030 z는 소문자로? 583 00:25:49,030 --> 00:25:52,440 그리고 또, 여기 어디 있어요 기본을 이해 584 00:25:52,440 --> 00:25:54,550 의 구현 컴퓨터가 의미가 있습니다. 585 00:25:54,550 --> 00:25:57,330 내가 가진 경우에도, 그 주목 도트 도트 도트 저기, 586 00:25:57,330 --> 00:26:04,410 소문자 Z까지처럼 보인다 최대 최대에 97에서 모든 연속 값. 587 00:26:04,410 --> 00:26:07,820 >> 그리고 대문자에 대한 동일한 65에서 시작. 588 00:26:07,820 --> 00:26:10,410 그래서 테이크 아웃, 다음, 즉, 영어에 589 00:26:10,410 --> 00:26:12,760 당신이 설명하는 방법 24는 무엇을하고 있는지 라인? 590 00:26:12,760 --> 00:26:15,736 591 00:26:15,736 --> 00:26:16,728 그래? 592 00:26:16,728 --> 00:26:21,575 >> 대상 : 24에 그것은 볼 수 확인 것 여부를 각 문자는 소문자입니다. 593 00:26:21,575 --> 00:26:24,700 데이비드 J. 마란 : 그것은 여부를 확인있어 각 문자는 소문자입니다. 594 00:26:24,700 --> 00:26:28,590 그래서 더욱 간결하다 의 소문자의 i 번째 문자? 595 00:26:28,590 --> 00:26:30,690 그게 우리가있어 전부 논리적으로 여기에 표현, 596 00:26:30,690 --> 00:26:33,750 작은 비밀스럽게하지만, 궁극적으로 꽤 직설적. 597 00:26:33,750 --> 00:26:36,480 문자가 소문자 i 번째의의의인가? 598 00:26:36,480 --> 00:26:40,130 >> 그렇다면, 여기 어디 일이다 조금 마음이 굽힘 얻을 599 00:26:40,130 --> 00:26:44,760 잠시만, 그렇다면 이동 앞서와 문자를 인쇄 할 수 있습니다. 600 00:26:44,760 --> 00:26:47,360 그래서 이것은 단지 자리 표시 자입니다, 하지만 어떤 캐릭터? 601 00:26:47,360 --> 00:26:53,710 왜의 브래킷 내가 뭐하는 거지 마이너스 여기이 식? 602 00:26:53,710 --> 00:26:55,110 >> 자, 여기 패턴을 알 수 있습니다. 603 00:26:55,110 --> 00:26:57,380 실제 숫자는 그렇게 중요하지 않습니다. 604 00:26:57,380 --> 00:27:02,700 그러나 97 인 것을 알 수 얼마나 멀리 떨어져 65? 605 00:27:02,700 --> 00:27:03,560 >> 대상 : 32. 606 00:27:03,560 --> 00:27:04,480 >> 데이비드 J. 마란 : 32. 607 00:27:04,480 --> 00:27:06,890 얼마나 멀리 66에서 98? 608 00:27:06,890 --> 00:27:07,740 >> 대상 : 32. 609 00:27:07,740 --> 00:27:09,890 >> 데이비드 J. 마란 : 큰 C에서 작은 C? 610 00:27:09,890 --> 00:27:10,420 32. 611 00:27:10,420 --> 00:27:14,550 그래서 32 홉 (hop)을 거기에 다른 문자를 하나입니다. 612 00:27:14,550 --> 00:27:17,790 그래서 솔직히 나는, 수 그이를 단순화합니다. 613 00:27:17,790 --> 00:27:20,400 하지만 그때 가지 하드 코딩 해요 이러한 낮은 수준의 이해 614 00:27:20,400 --> 00:27:21,740 어떤 독자가 적없는 그 이해하는 것. 615 00:27:21,740 --> 00:27:25,080 그래서 나는 그것을로 일반화하는거야, I 알고있는 소문자가 더 크다. 616 00:27:25,080 --> 00:27:28,400 I는 대문자가 알고 작은 값, 아이러니하게도. 617 00:27:28,400 --> 00:27:33,216 >> 하지만이 효과적으로 동일합니다 의 브래킷 전에서 32을 빼 말. 618 00:27:33,216 --> 00:27:35,430 이러한 문맥에 따라서 문자, 문자의 경우 619 00:27:35,430 --> 00:27:38,950 소문자 될 일이 , 나는 32 빼기, 620 00:27:38,950 --> 00:27:43,442 그게 무슨 효과가 않습니다, 수학적으로,에는 소문자? 621 00:27:43,442 --> 00:27:44,400 청중 : Capitalizes-- 622 00:27:44,400 --> 00:27:45,691 데이비드 J. 마란 : 그것을 대문자로. 623 00:27:45,691 --> 00:27:48,440 그리고 실제로이 왜 우리의 프로그램은 제로 투자라고합니다. 624 00:27:48,440 --> 00:27:51,590 이 프로그램 중 하나 문자를 대문자로, 625 00:27:51,590 --> 00:27:54,580 이 경우 검사 후에 실제로 소문자. 626 00:27:54,580 --> 00:27:59,810 그렇지 않으면, 라인 (30)에, 나는 경우 어떻게해야합니까 내가 걸 소문자 아니다 627 00:27:59,810 --> 00:28:02,852 특정에보고 루프의 반복. 628 00:28:02,852 --> 00:28:03,890 그냥 인쇄. 629 00:28:03,890 --> 00:28:07,010 >> 그래서 물건을 변경하지 마십시오 그조차 소문자 아니다. 630 00:28:07,010 --> 00:28:10,790 에 자신을 제한 작은 z까지 약간. 631 00:28:10,790 --> 00:28:12,730 지금 이것은 상당히 비밀이다. 632 00:28:12,730 --> 00:28:15,230 하지만 하루의 끝에서, 본 어떻게 한 번 시간에,이다 633 00:28:15,230 --> 00:28:16,460 일 구현했다. 634 00:28:16,460 --> 00:28:19,780 내가 대신 투자 열면 일, 오 하나님 감사합니다. 635 00:28:19,780 --> 00:28:22,320 함수가있다 상단에라는 그 수 636 00:28:22,320 --> 00:28:25,410 우리가했던 모든 것을 할 매우 낮은 수준에서. 637 00:28:25,410 --> 00:28:28,752 >> 지금 상단 재미있다 이 파일에서 선언되기 때문에, 638 00:28:28,752 --> 00:28:31,210 당신 만이 알 것입니다 설명서를 확인하여, 639 00:28:31,210 --> 00:28:35,730 또는 클래스에, 말, 말되는 그것은라는 파일 ctype.h에 존재합니다. 640 00:28:35,730 --> 00:28:37,630 그래서 이것은 우리의 또 다른 새로운 친구입니다. 641 00:28:37,630 --> 00:28:40,750 그리고 상단에 정확히 수행하기 그 이름이 암시 무엇. 642 00:28:40,750 --> 00:28:44,860 >> 당신은 사이 인수로 전달할 수 있습니다 이러한 괄호 일부 문자. 643 00:28:44,860 --> 00:28:48,390 나는 i 번째 문자를 전달하려고 해요 우리의 멋진 새 표기법을 사용하여이야 644 00:28:48,390 --> 00:28:49,870 대괄호를 포함. 645 00:28:49,870 --> 00:28:53,391 그리고 추측을 반환 무엇인가 상단에 값 분명히 것 646 00:28:53,391 --> 00:28:53,890 할 수? 647 00:28:53,890 --> 00:28:56,460 648 00:28:56,460 --> 00:28:57,770 대문자. 649 00:28:57,770 --> 00:28:58,620 대문자. 650 00:28:58,620 --> 00:29:02,330 >> 그래서 소문자에 전달하면, 희망, 상단에의 정의에 의해, 651 00:29:02,330 --> 00:29:05,600 그것은 반환 것 그렇지 않으면 대문자 A., 652 00:29:05,600 --> 00:29:08,590 그것은에서 소문자가 아니라면 우선, 난 그냥 그것을 밖으로 인쇄 할 수 있습니다. 653 00:29:08,590 --> 00:29:10,800 그리고 실제로, 알 여기 두번째 친구. 654 00:29:10,800 --> 00:29:13,840 다만 상단 존재로, 하지만, 낮은 인 655 00:29:13,840 --> 00:29:16,200 실제로 나에게 그 질문에 응답합니다. 656 00:29:16,200 --> 00:29:19,730 >> 이제이 일을 쓴 누구든지 10 초 전 년, 당신이 뭘 알아? 657 00:29:19,730 --> 00:29:23,840 상단에 구현하고있다 다음과 같은 코드를 사용하여 내립니다. 658 00:29:23,840 --> 00:29:27,270 그러나 다시, 일관성 멀리 추상화의이 아이디어, 659 00:29:27,270 --> 00:29:29,190 종류의, 낮은 수준 구현 세부 사항. 660 00:29:29,190 --> 00:29:32,600 그리고 사람의 어깨에 서 누가 함수를 사용하여, 우리 앞에왔다 661 00:29:32,600 --> 00:29:36,300 상단에 추천하고, 낮은 인 놀라 울 정도로 멋지게 아르 662 00:29:36,300 --> 00:29:40,190 그들이 무슨 말을하는 이름입니다 멋진 패러다임을 채택한다. 663 00:29:40,190 --> 00:29:44,040 >> 이제, 내가 읽는다면 밝혀 에 대한 매뉴얼 페이지 상부에, 말 664 00:29:44,040 --> 00:29:45,010 나는 다른 무언가를 배운다. 665 00:29:45,010 --> 00:29:46,890 그래서 사람 TOUPPER. 666 00:29:46,890 --> 00:29:48,050 그것은 조금 압도. 667 00:29:48,050 --> 00:29:51,110 그러나 예고, 여기의 언급이다 내가 사용한다 헤더 파일. 668 00:29:51,110 --> 00:29:54,460 옆으로,이 때문에로 오해의 소지가 함수 669 00:29:54,460 --> 00:29:59,070 정수 대신 문자를 사용 오류 검사의 이유. 670 00:29:59,070 --> 00:30:01,260 그러나 우리는 아마도 올 거 다시 그까지 앞으로. 671 00:30:01,260 --> 00:30:05,910 >> 그러나 위 회심에, 여기에 주목 가능하면 문자 c를 대문자로. 672 00:30:05,910 --> 00:30:07,674 그래서 매우 간단합니다. 673 00:30:07,674 --> 00:30:09,340 그리고 지금의 좀 더 구체적으로 보자. 674 00:30:09,340 --> 00:30:12,750 의이 부분을 살펴 보자 반환 값에서 매뉴얼 페이지를 참조하십시오. 675 00:30:12,750 --> 00:30:15,420 반환되는 값은 것입니다 변환 된 편지. 676 00:30:15,420 --> 00:30:18,690 또는 C, 만약 변환 , 불가능했다 677 00:30:18,690 --> 00:30:20,250 여기서 c는 일본어 입력된다. 678 00:30:20,250 --> 00:30:24,140 어떤 난에서, 여기에서 알 상단에 대한 인수. 679 00:30:24,140 --> 00:30:25,780 >> 그래서 이것의 테이크 아웃은 무엇입니까? 680 00:30:25,780 --> 00:30:28,060 반환되는 값은 것입니다 변환 된 편지, 681 00:30:28,060 --> 00:30:32,110 또는 c, 원래 문자, 경우 변환은 불가능했다. 682 00:30:32,110 --> 00:30:36,460 무엇을 개선 그러므로 나는 할 수있다 내 코드의 디자인을 만들? 683 00:30:36,460 --> 00:30:37,146 그래? 684 00:30:37,146 --> 00:30:38,810 >> 청중 : 당신은 다른 사람을 제거 할 수 있습니다. 685 00:30:38,810 --> 00:30:40,810 데이비드 J. 마란 : 난 할 수있어 else 문을 제거, 686 00:30:40,810 --> 00:30:42,510 뿐 아니라 else 문. 687 00:30:42,510 --> 00:30:44,150 >> 청중 : 당신은 [들리지 제거 할 수 있습니다. 688 00:30:44,150 --> 00:30:46,310 >> 데이비드 J. 마란 : 난 할 수있어 전체 포크를 제거 689 00:30:46,310 --> 00:30:48,209 도로에, 다른 경우 전부. 690 00:30:48,209 --> 00:30:50,250 그래서 참, 내가 열 수 있습니다 이것의 최종 버전, 691 00:30:50,250 --> 00:30:55,540 경우-2를 활용하는 방법과 눈에 띄지 당신은 섹시 코드는 이제 점점 것이다, 692 00:30:55,540 --> 00:31:00,040 점에서 좀 줄어들 것 7 ~ 그래서 그냥 네 라인, 693 00:31:00,040 --> 00:31:03,850 내가 의도 한 기능 단순히 상단에 호출하여, 694 00:31:03,850 --> 00:31:09,410 의 브래킷 난, 인쇄 전달 밖으로 자리 표시 자 % 코팅과, 695 00:31:09,410 --> 00:31:11,090 특정 문자. 696 00:31:11,090 --> 00:31:14,560 >> 지금 틀림없이, 버그가 있습니다, 또는 버그 적어도 위험 697 00:31:14,560 --> 00:31:15,350 이 프로그램. 698 00:31:15,350 --> 00:31:18,200 그래서 그냥 와서 이전 테이크 아웃에, 699 00:31:18,200 --> 00:31:21,820 나는 아마도 무엇을에서해야 이 프로그램은 좀 더 견고하게하기 위해, 700 00:31:21,820 --> 00:31:24,974 방법이 없습니다 그래서 그것은 할 수 심지어 드문 경우에, 충돌? 701 00:31:24,974 --> 00:31:26,390 청중 :이 NULL이 아니다 있는지 확인합니다. 702 00:31:26,390 --> 00:31:28,056 데이비드 J. 마란 : 그것은 NULL이 아니다 있는지 확인합니다. 703 00:31:28,056 --> 00:31:31,030 그래서 정말이 슈퍼로 만들려면 적절한, 나는 그런 짓을한다 704 00:31:31,030 --> 00:31:35,300 S는 NULL이 아니라면 가서 실행 705 00:31:35,300 --> 00:31:38,470 이 코드 줄, 어떤 내가 할 수있는 그와 같은 들여 쓰기, 706 00:31:38,470 --> 00:31:39,870 다음 친한 괄호에 넣어. 707 00:31:39,870 --> 00:31:41,550 함께이 아이디어의 동점 그래서 좋아. 708 00:31:41,550 --> 00:31:42,429 그래? 709 00:31:42,429 --> 00:31:44,470 청중 : 당신이 사용할 수 대신 while 루프합니까? 710 00:31:44,470 --> 00:31:47,270 데이비드 J. 마란 : 수 나는 할 일 동안 루프를합니까? 711 00:31:47,270 --> 00:31:50,020 청중 : --you가 있는지 확인하려면 당신이 실제로 [들림] 그. 712 00:31:50,020 --> 00:31:51,728 데이비드 J. 마란 : 수 당신은 할 일을하는 동안 사용할 수 있습니까? 713 00:31:51,728 --> 00:31:52,450 짧은 대답, 아니. 714 00:31:52,450 --> 00:31:54,700 당신이하려는거야 또 다른 코너 케이스를 소개합니다. 715 00:31:54,700 --> 00:31:56,660 문자열 길이가 0 인 경우. 716 00:31:56,660 --> 00:31:59,600 예를 들어, 난 그냥 칠 경우 지금 Zamyla를 입력 할 필요없이 입력합니다. 717 00:31:59,600 --> 00:32:02,490 내가 다시 실제 당신을 손에거야 문자열, 우리는 결국 보 겠지만, 718 00:32:02,490 --> 00:32:03,780 즉 제로 문자가 있습니다. 719 00:32:03,780 --> 00:32:05,630 아직 문자열입니다, 그냥 슈퍼 짧다. 720 00:32:05,630 --> 00:32:07,960 그러나 당신이 동안 할 일을 사용하는 경우, 당신은 맹목적으로 갈거야 721 00:32:07,960 --> 00:32:10,050 뭔가를하려고 문자열에 대하여, 722 00:32:10,050 --> 00:32:12,537 아무것도가 않을거야. 723 00:32:12,537 --> 00:32:18,607 >> 청중 : 글쎄, 당신이 그랬다면 할 [INAUDIBLE] 사사 동안 724 00:32:18,607 --> 00:32:21,190 데이비드 J. 마란 : 아 내가 볼, 유지 사용자로부터 문자열을 받고. 725 00:32:21,190 --> 00:32:23,525 그래서 짧은 대답하면 , 그리고 괴롭히는 지킬 수있다 726 00:32:23,525 --> 00:32:26,150 그들에게있어 문자열을 제공합니다 메모리에 들어갈 정도로 짧은. 727 00:32:26,150 --> 00:32:26,700 물론입니다. 728 00:32:26,700 --> 00:32:27,630 난 그냥하지가 선택했다. 729 00:32:27,630 --> 00:32:30,505 그들은 나에게 문자열 I를 제공하지 않을 경우 원하는, 내가 그만 둘거야, 내가 포기하고 있습니다. 730 00:32:30,505 --> 00:32:33,260 그러나 절대적으로, 그 목적을 위해, 당신은 절대적으로 그렇게 할 수 있습니다. 731 00:32:33,260 --> 00:32:37,500 >> 그래서 라이브러리의 헤더 파일이 우리는 지금 여기, 이러한 아르에 익숙. 732 00:32:37,500 --> 00:32:41,550 표준 I / O, CS50.h, string.h, ctype.h, 그리고, 참으로, 다른 사람이있다. 733 00:32:41,550 --> 00:32:44,460 여러분 중 일부는 발견했다 math.h.에서 수학 라이브러리 734 00:32:44,460 --> 00:32:48,200 그러나 나에게, 지금 당신을 소개하자 이 자원이 CS50 직원, 다빈, 735 00:32:48,200 --> 00:32:50,630 롭, 그리고 게이브 특히 함께 넣어했다. 736 00:32:50,630 --> 00:32:52,630 즉, 곧에 연결됩니다 과정의 웹 사이트. 737 00:32:52,630 --> 00:32:54,870 그것은 CS50 참조라고. 738 00:32:54,870 --> 00:32:58,230 >> 당신에게 신속하게 제공 할 다음과 같이 맛이 작동합니다. 739 00:32:58,230 --> 00:33:00,740 나를 reference.cs50.net 가자. 740 00:33:00,740 --> 00:33:02,990 당신은 왼쪽에 볼 수 있습니다 압도적 인 목록을 좌우 741 00:33:02,990 --> 00:33:04,595 C와 함께 기능. 742 00:33:04,595 --> 00:33:07,790 하지만이 순간, 생각이 있다면, 나 strlen 같은 약, 743 00:33:07,790 --> 00:33:08,746 내가 거기를 입력 할 수 있습니다. 744 00:33:08,746 --> 00:33:10,870 이 목록을 필터링 내가 걱정하는 단지 무엇을. 745 00:33:10,870 --> 00:33:11,940 나는 그것을 클릭거야. 746 00:33:11,940 --> 00:33:14,740 그리고 지금에, 왼쪽 당신은 우리가 무슨 희망이 표시됩니다 747 00:33:14,740 --> 00:33:18,290 더 간단 인간이다 방법의 친절한 설명 748 00:33:18,290 --> 00:33:19,170 이 기능이 작동합니다. 749 00:33:19,170 --> 00:33:20,600 >> 문자열의 길이를 반환합니다. 750 00:33:20,600 --> 00:33:24,060 여기 시놉시스, 여기있어 그 방법이야 헤더 파일의 관점에서 그것을 사용 751 00:33:24,060 --> 00:33:27,430 어떤 기능의 관점에서 인수의 관점에서처럼 보인다. 752 00:33:27,430 --> 00:33:30,250 그리고 여기, 반품 문자열의 길이. 753 00:33:30,250 --> 00:33:34,280 하지만 더 편안의 사람들을 위해, 당신은 실제로 더 편안하게 클릭 할 수 있습니다 754 00:33:34,280 --> 00:33:37,070 이 내용 페이지, 지금 변경됩니다 755 00:33:37,070 --> 00:33:41,660 무엇의 기본 값이 될 수 있습니다 당신은 사람이 페이지를 사용하여 얻을. 756 00:33:41,660 --> 00:33:44,100 >> CS50, 환언 참조는 단순화 757 00:33:44,100 --> 00:33:46,220 학생들을위한 직원 설명서 페이지의. 758 00:33:46,220 --> 00:33:49,320 특히, 그 이하 편안 과의 사이 있도록 759 00:33:49,320 --> 00:33:51,660 포장하려고 할 필요가 없습니다 당신의 마음을 주위에 솔직히 760 00:33:51,660 --> 00:33:55,030 일부 상당히 애매한 구문 언젠가 및 문서. 761 00:33:55,030 --> 00:33:57,650 >> 그래서 마음에 계속 일에 와서. 762 00:33:57,650 --> 00:33:59,560 그래서 여기에 다시, Zamyla입니다. 763 00:33:59,560 --> 00:34:03,255 그럼 이제 질문을 물어 보자 좀 더 인간의 접근. 764 00:34:03,255 --> 00:34:05,380 되었습니다 장 덕분에, 더 많은 코끼리를 인쇄 765 00:34:05,380 --> 00:34:07,090 지난 몇 일 동안 논스톱. 766 00:34:07,090 --> 00:34:09,730 우리가 제공 할 수있는 기회를 가질 이들 거리 중 적어도 하나. 767 00:34:09,730 --> 00:34:13,239 우리는 단지 하나의 자원 봉사를 얻을 수 있다면 화면에 그릴까지에 와서. 768 00:34:13,239 --> 00:34:14,530 여기 방법에 대해? 769 00:34:14,530 --> 00:34:15,340 >> 올라 와요. 770 00:34:15,340 --> 00:34:16,720 당신의 이름은 무엇입니까? 771 00:34:16,720 --> 00:34:17,219 알렉스 : 알렉스. 772 00:34:17,219 --> 00:34:17,760 데이비드 J. 마란 : 알렉스. 773 00:34:17,760 --> 00:34:18,259 좋아. 774 00:34:18,259 --> 00:34:19,388 알렉스, 최대 어서. 775 00:34:19,388 --> 00:34:21,679 우리는 볼에 대한있어 당신 여기에서 화면에 필기. 776 00:34:21,679 --> 00:34:24,325 777 00:34:24,325 --> 00:34:25,570 좋아, 만나서 반갑습니다. 778 00:34:25,570 --> 00:34:26,429 >> 알렉스 : 만나서 반가워요. 779 00:34:26,429 --> 00:34:27,512 >> 데이비드 J. 마란 : 좋습니다. 780 00:34:27,512 --> 00:34:28,969 그래서, 슈퍼 간단한 운동. 781 00:34:28,969 --> 00:34:31,440 바로 높지 않다 오늘 코끼리를 얻을. 782 00:34:31,440 --> 00:34:33,439 당신은있는 getString의 역할을하고있다. 783 00:34:33,439 --> 00:34:35,980 그리고 난 당신에게 말할거야 당신이 왔 문자열입니다. 784 00:34:35,980 --> 00:34:38,080 그리고, 당신이 있다고 가정 getstring를 호출하고있다. 785 00:34:38,080 --> 00:34:42,480 그리고 인간은, 나처럼,이 Zamyla, Z-A-M-Y-L-A에 입력했습니다. 786 00:34:42,480 --> 00:34:45,650 그냥 가서에 Zamyla 쓰기 화면 당신은 그것을 얻었다 것처럼 787 00:34:45,650 --> 00:34:47,250 메모리에 어딘가에 저장된다. 788 00:34:47,250 --> 00:34:52,370 789 00:34:52,370 --> 00:34:55,570 >> 몇 일 무슨 떠나 방 괜찮아요 다른 words--는 계속. 790 00:34:55,570 --> 00:34:59,620 >> [웃음] 791 00:34:59,620 --> 00:35:00,800 >> 그래서 Zamyla, 우수. 792 00:35:00,800 --> 00:35:04,880 그래서 지금 생각하면 그, getstring를 다시 호출됩니다. 793 00:35:04,880 --> 00:35:09,350 그러므로, 나는, 당신을 제공 키보드, 다른 이름, 벨린다와 함께. 794 00:35:09,350 --> 00:35:17,560 795 00:35:17,560 --> 00:35:18,060 좋아. 796 00:35:18,060 --> 00:35:22,380 이제 다음 시간에서 getString이다 라고, 나는 게이브 같은를 입력 797 00:35:22,380 --> 00:35:27,560 G-A-B-E. 당신은 정말 취하고있어 심장 랜덤 액세스 메모리. 798 00:35:27,560 --> 00:35:29,631 어떤 모든 것을 끌고있다 완전히 무작위로. 799 00:35:29,631 --> 00:35:30,130 확인을 클릭합니다. 800 00:35:30,130 --> 00:35:31,104 >> [웃음] 801 00:35:31,104 --> 00:35:32,520 알렉스 : 죄송합니다 내 필기 나쁘다. 802 00:35:32,520 --> 00:35:33,770 데이비드 J. 마란 : 아니, 괜찮아요. 803 00:35:33,770 --> 00:35:40,480 어떻게 롭, R-O-B에 대한 정보가 포함되어 있습니다. 확인을 클릭합니다. 804 00:35:40,480 --> 00:35:41,020 좋은. 805 00:35:41,020 --> 00:35:43,853 그래서 나는 당신에게 것입니다 예상하지 않았다 가지 이런 식으로 물건을 배치. 806 00:35:43,853 --> 00:35:45,020 그러나 우리는이 일을 할 수 있습니다. 807 00:35:45,020 --> 00:35:48,810 그래서 당신은 누워에 대해 어떻게 됐어 메모리에 이러한 문자 알아? 808 00:35:48,810 --> 00:35:51,310 즉, 우리는 생각한다면 이 직사각형의 검은 화면 809 00:35:51,310 --> 00:35:53,550 를 나타내는 등 컴퓨터의 RAM 또는 메모리. 810 00:35:53,550 --> 00:35:55,850 >> 그리고 RAM 단지입니다 기억 바이트의 전체 무리, 811 00:35:55,850 --> 00:35:57,480 바이트는 비트의 전체 무리입니다. 812 00:35:57,480 --> 00:35:59,350 그리고 비트는 어떻게 든 아르 일반적으로 구현 813 00:35:59,350 --> 00:36:01,119 어떤 형태로 하드웨어 전기. 814 00:36:01,119 --> 00:36:03,160 그래서의 일종 우리가 얘기했습니다 레이어링 815 00:36:03,160 --> 00:36:04,510 당연한 지금 걸릴 수 있습니다. 816 00:36:04,510 --> 00:36:07,020 당신은 어떻게 했나요 여기서 작성하는 방법 결정 817 00:36:07,020 --> 00:36:11,634 롭 대 게이브 대 Zamyla 대 벨린다? 818 00:36:11,634 --> 00:36:14,020 >> 알렉스 : 난 그냥 그것을했다 당신이 나에게 말했다 것을 주문한다. 819 00:36:14,020 --> 00:36:15,650 >> 데이비드 J. 마란 : 그리고 그게 사실이다. 820 00:36:15,650 --> 00:36:20,100 그러나 당신이 어디를 넣어 적용 벨린다의 이름과 게이브의 이름은? 821 00:36:20,100 --> 00:36:20,764 >> 알렉스 : 아무것도? 822 00:36:20,764 --> 00:36:22,930 데이비드 J. 마란 : [웃음] 그래서 작품을, 괜찮아요. 823 00:36:22,930 --> 00:36:25,290 그래서 컴퓨터는 작은 아르 그것보다 더 질서. 824 00:36:25,290 --> 00:36:29,000 그래서 우리는 거기있어 implement-- 때 때 실제로 우리 그냥 순간은 대한 825 00:36:29,000 --> 00:36:31,470 뭔가를 구현 컴퓨터에있는 getString, 826 00:36:31,470 --> 00:36:34,480 Zamyla 꽤 많이 배치 할 수 있습니다 같은 당신이 화면에했다. 827 00:36:34,480 --> 00:36:36,660 >> 그리고주의 키 것입니다 여기에 알렉스가 무슨 짓을했는지, 828 00:36:36,660 --> 00:36:40,260 인 경계 가지가있다 이러한 각각의 단어들 사이, 맞죠? 829 00:36:40,260 --> 00:36:46,580 당신은 작성하지 않은 Z-A-M-Y-L-A-B-E-L-I-N-D-A-G-A-B-- 830 00:36:46,580 --> 00:36:49,740 즉, 어떤 종류의있다 것으로 보인다 경계의, 831 00:36:49,740 --> 00:36:52,370 일종의 임의의 간격 이러한 다양한 단어 사이. 832 00:36:52,370 --> 00:36:54,120 하지만 그 때문에 좋은 우리 인간은 지금 할 수있는 833 00:36:54,120 --> 00:36:56,470 이러한 것을 시각화 네 가지 문자열. 834 00:36:56,470 --> 00:36:59,540 그것은 단지 하나의 시퀀스 아니다 많은 문자. 835 00:36:59,540 --> 00:37:04,190 그래서 컴퓨터, 다음, 한편, Zamyla 같은 문자열이 걸릴 수 있습니다, 836 00:37:04,190 --> 00:37:07,220 그 편지를 각각 넣어 메모리의 바이트 내부. 837 00:37:07,220 --> 00:37:10,400 하지만 그 수는 훨씬 더 큰 것입니다 물론, 여섯 자보다. 838 00:37:10,400 --> 00:37:11,690 >> RAM의 전체 무리가있다. 839 00:37:11,690 --> 00:37:15,330 그래서 이제부터는이 상자의 그리드는 것입니다 840 00:37:15,330 --> 00:37:17,560 어떤 알렉스 단지를 대표하는 화면에 여기 않았다. 841 00:37:17,560 --> 00:37:20,937 그리고 지금, 알렉스, 우리는 당신을 제공 할 수 있습니다 청색 또는 장에서 오렌지 코끼리입니다. 842 00:37:20,937 --> 00:37:22,270 알렉스 : 나는 파란색 코끼리를 취할 것입니다. 843 00:37:22,270 --> 00:37:23,120 데이비드 J. 마란 : 파란색 코끼리. 844 00:37:23,120 --> 00:37:25,580 그래서 큰 박수, 알렉스 여기, 우리가 할 수있는 경우. 845 00:37:25,580 --> 00:37:26,100 >> [박수] 846 00:37:26,100 --> 00:37:26,766 >> 알렉스 : 감사합니다. 847 00:37:26,766 --> 00:37:28,820 데이비드 J. 마란 : 감사합니다. 848 00:37:28,820 --> 00:37:36,230 그래서 테이크 아웃은, 심지어 비록 패턴은 가지 여기, 시간이 지남에 따라 변경 849 00:37:36,230 --> 00:37:40,430 보드에이 있었다 다양한 캐릭터 간의 경계 850 00:37:40,430 --> 00:37:42,610 알렉스는 우리에게있어 그. 851 00:37:42,610 --> 00:37:45,230 이제 컴퓨터, 솔직히, 같은 일을 할 수 있습니다. 852 00:37:45,230 --> 00:37:48,210 그들은 가지 풍덩 수 어디 RAM 문자열. 853 00:37:48,210 --> 00:37:50,710 여기, 여기, 여기, 여기까지 아래로. 854 00:37:50,710 --> 00:37:52,020 >> 그들은 정확하게 할 수 있습니다. 855 00:37:52,020 --> 00:37:54,280 그러나 물론, 그건 아마 가장 좋은 계획. 856 00:37:54,280 --> 00:37:54,780 오른쪽? 857 00:37:54,780 --> 00:37:57,340 나는 알렉스를 묻는 유지하는 경우 이름을 가져, 아마도 그는 거라고 858 00:37:57,340 --> 00:38:01,370 어쩌면까지, 여기에 몇 가지 더 내려 여기, 여기, 여기, 결국 859 00:38:01,370 --> 00:38:02,211 여기. 860 00:38:02,211 --> 00:38:05,460 그러나 좀 더 계획으로, 확실히, 우리는 더 많은 것들을 말끔히를 배치 할 수 있습니다. 861 00:38:05,460 --> 00:38:07,350 그리고 실제로, 그 컴퓨터가하는 일입니다. 862 00:38:07,350 --> 00:38:10,720 >> 하지만 그 댓가가 있다는 것입니다 만약 내가 할 다음 문자열 863 00:38:10,720 --> 00:38:14,050 Zamyla 뭔가 후 벨린다 등 864 00:38:14,050 --> 00:38:17,929 우리가를 작성할 수 있습니다 어디 제안 이 그리드에 대한 B 편지? 865 00:38:17,929 --> 00:38:18,720 어디가는거야? 866 00:38:18,720 --> 00:38:21,480 의 오른쪽에, 아래의 Z, 아래? 867 00:38:21,480 --> 00:38:23,204 첫 번째 본능은 어떤 것입니까? 868 00:38:23,204 --> 00:38:24,120 청중 : Z 아래. 869 00:38:24,120 --> 00:38:25,100 데이비드 J. 마란 : 그래서 Z 아래. 870 00:38:25,100 --> 00:38:26,530 그리고는 예쁘다 간단, 맞죠? 871 00:38:26,530 --> 00:38:29,321 그것은 단정 한 가지, 그것은 우리가하는 일입니다 키보드에 우리가 입력 쳤을 때, 872 00:38:29,321 --> 00:38:31,770 또는 이메일을 할 때 사물의 글 머리 기호 목록. 873 00:38:31,770 --> 00:38:34,310 하지만 현실은 컴퓨터입니다 더 효율적하려고 874 00:38:34,310 --> 00:38:37,170 그리고 많은 확실히 밀어 넣는 가능한 RAM에 데이터, 875 00:38:37,170 --> 00:38:38,890 그래서 당신은 어떤 바이트를 낭비하지 않습니다. 876 00:38:38,890 --> 00:38:41,545 당신이 낭비되지 않도록 모든 화면 부동산. 877 00:38:41,545 --> 00:38:44,170 그리고 문제는,하지만 것입니다 우리는 말 그대로 문자를 넣어 경우 878 00:38:44,170 --> 00:38:49,940 B 후, 우리는 어떻게하려고하는 Zamyla의 이름이 끝나는 위치를 알고 879 00:38:49,940 --> 00:38:51,840 와 벨린다의 이름은 시작? 880 00:38:51,840 --> 00:38:55,270 그래서 그냥, 음, 제안 된 인간이 본질적으로, Enter 키를 누르십시오. 881 00:38:55,270 --> 00:38:56,410 아래에 내려 놔. 882 00:38:56,410 --> 00:38:59,750 아니면 알렉스가했던 것 같이 그냥 쓰기 시작 이전 아래 다음 이름, 883 00:38:59,750 --> 00:39:01,583 그 하나의 아래, 그리고 그 하나 아래. 884 00:39:01,583 --> 00:39:02,510 즉, 시각적입니다. 885 00:39:02,510 --> 00:39:05,960 >> 컴퓨터는 또 다른 시각적 신호를, 하지만 좀 더 간결합니다. 886 00:39:05,960 --> 00:39:07,840 그것은이 펑키 문자입니다. 887 00:39:07,840 --> 00:39:11,890 아마도 백 슬래시 0, 백 슬래시 n의 연상, 888 00:39:11,890 --> 00:39:12,640 등, 지금. 889 00:39:12,640 --> 00:39:14,120 이스케이프 시퀀스. 890 00:39:14,120 --> 00:39:19,120 백 슬래시 0의 방법입니다 열 여덟 제로 비트를 나타내는. 891 00:39:19,120 --> 00:39:22,000 0000 0000. 892 00:39:22,000 --> 00:39:26,130 >> 당신이 그 표현 방법은하지 않는 것입니다 키보드의 숫자 0가 893 00:39:26,130 --> 00:39:28,140 ASCII의 문자입니다 사실 때문이다. 894 00:39:28,140 --> 00:39:30,990 이 숫자처럼 보이지만, 진수는 실제로 895 00:39:30,990 --> 00:39:35,910 그 원형을 나타냅니다 문자 모양, 원형 서체. 896 00:39:35,910 --> 00:39:38,410 한편, 백 슬래시 제로는 문자 그대로 의미 897 00:39:38,410 --> 00:39:40,700 나 여기 여덟 0 바이트를 넣어. 898 00:39:40,700 --> 00:39:42,136 >> 그래서이 다소 임의적이다. 899 00:39:42,136 --> 00:39:44,260 우리는 어떤 패턴을 사용했습니다 수 비트이지만 세계 900 00:39:44,260 --> 00:39:46,610 몇 년 결정 전, 그 표현하기 901 00:39:46,610 --> 00:39:49,710 메모리에 문자열의 끝, 그냥 제로의 전체 무리를 넣어. 902 00:39:49,710 --> 00:39:51,000 우리가 감지 할 수 있기 때문에. 903 00:39:51,000 --> 00:39:54,790 이제 즉, 어떠한 문자 없다 알파벳은 제로로 표현 될 수있다. 904 00:39:54,790 --> 00:39:58,480 >> 하지만, 우리는 이미 본 적이 괜찮아요 우리가 최대의 97에 65을 사용하고있다. 905 00:39:58,480 --> 00:40:00,290 우리는 어디서나하지 않았다 모두 0으로 닫습니다. 906 00:40:00,290 --> 00:40:03,040 907 00:40:03,040 --> 00:40:06,540 컴퓨터의 메모리에 벨린다 그래서 실제로 여기 것입니다. 908 00:40:06,540 --> 00:40:09,764 나는 노란색을 그려 놨 단지 여기에 우리의 관심을 그립니다. 909 00:40:09,764 --> 00:40:11,680 그리고 예고도이 완전히 임의적이다. 910 00:40:11,680 --> 00:40:12,680 나는 그리드로 그려 놨거든요. 911 00:40:12,680 --> 00:40:14,460 마찬가지로, RAM은 그냥 물리적 객체입니다. 912 00:40:14,460 --> 00:40:17,300 그것은 필요가 없습니다 행과 열, 그 자체. 913 00:40:17,300 --> 00:40:20,490 그냥 바이트의 모두 있어요 여하튼 하드웨어로 구현. 914 00:40:20,490 --> 00:40:22,817 그러나 벨린다 난 후 경우 게이브의 이름을 입력, 915 00:40:22,817 --> 00:40:25,650 그는 메모리에 여기 끝날 것 내가 Daven의 이름으로 입력 한 경우, 916 00:40:25,650 --> 00:40:27,316 예를 들어, 그는이 곳에서하는 것입니다. 917 00:40:27,316 --> 00:40:29,310 그리고 나는 계속 할 수 있습니다 더 이름을 작성합니다. 918 00:40:29,310 --> 00:40:32,100 >> 불행하게도, 내가하려고하면 슈퍼 긴 이름 쓰기, 919 00:40:32,100 --> 00:40:33,730 나는 결국 메모리가 부족할 수 있습니다. 920 00:40:33,730 --> 00:40:37,810 이 경우에,이다있는 getString 우리가 말한대로, NULL을 반환 할 것. 921 00:40:37,810 --> 00:40:41,720 그러나 다행히도, 적어도이 시각에 여기에, 우리는 꽤 멀리하지 않았다. 922 00:40:41,720 --> 00:40:45,860 >> 이제 어떻게 좋은 것은이 때문이다 일을 처리의 일반적인 생각 923 00:40:45,860 --> 00:40:49,720 상자에있는 것은 그대로 C의 기능을 대표 924 00:40:49,720 --> 00:40:52,690 및 언어 중 많은 배열로도 알려져 있습니다. 925 00:40:52,690 --> 00:40:55,490 어레이는 데이터의 또 다른 유형이다. 926 00:40:55,490 --> 00:40:57,380 당신이 경우 그것은 데이터 구조이다. 927 00:40:57,380 --> 00:41:01,160 정말 그것의 의미 구조, 가지, 적어도 상자처럼 보이는 928 00:41:01,160 --> 00:41:02,320 마음의 눈에서. 929 00:41:02,320 --> 00:41:09,680 배열은 연속이다 동일한 데이터 형식의 시퀀스 930 00:41:09,680 --> 00:41:11,330 다시 다시 다시 다시합니다. 931 00:41:11,330 --> 00:41:14,720 >> 기타 그래서 문자열 단어, 문자의 배열입니다. 932 00:41:14,720 --> 00:41:16,120 문자의 배열입니다. 933 00:41:16,120 --> 00:41:19,070 그러나 그것은 당신이 할 수 있습니다 밝혀 사물의 다발의 배열. 934 00:41:19,070 --> 00:41:21,870 사실, 우리는 심지어 넣을 수 배열의 숫자. 935 00:41:21,870 --> 00:41:23,920 형태 그래서하는 우리는 시작하는거야 936 00:41:23,920 --> 00:41:26,590 이 데이터를 선언 어레이로 알려진 구조 937 00:41:26,590 --> 00:41:28,250 대괄호를 사용하는 것입니다. 938 00:41:28,250 --> 00:41:31,500 그러나 이러한 대괄호로 가고있다 이러한 맥락에서 다른 의미를 가지고있다. 939 00:41:31,500 --> 00:41:33,450 >> 그리고 다음과 같이 현실을 보자. 940 00:41:33,450 --> 00:41:36,780 I가 열려 있다고 가정하자 여기에 새 파일을 백업합니다. 941 00:41:36,780 --> 00:41:38,535 그리고 ages.c.으로 저장 942 00:41:38,535 --> 00:41:41,280 943 00:41:41,280 --> 00:41:43,470 그리고 여기에 내 폴더에이를 저장합니다. 944 00:41:43,470 --> 00:41:46,130 그리고 지금은 앞서 갈거야 뭔가를 입력을 시작합니다 945 00:41:46,130 --> 00:41:53,940 같은 포함 CS50.h 포함 STDIO.H, 주요 무효를 int 형. 946 00:41:53,940 --> 00:41:57,370 그리고 여기 안에, 내가 원하는 첫째 시대라는 int를 가지고 있습니다. 947 00:41:57,370 --> 00:42:01,371 >> 그리고 난을 얻기 위해 그것을 사용하는거야 자신의 나이에 사용자로부터 int 형. 948 00:42:01,371 --> 00:42:04,620 그러나,이 프로그램에 의해 사용되는 의미 어떤 상황에 대해 여러 명. 949 00:42:04,620 --> 00:42:05,490 나는 사람들의 라인을 가지고있다. 950 00:42:05,490 --> 00:42:08,281 그들 모두는 입력 할 필요가 자신의 아마 일부는 내가 모르는 연령, 951 00:42:08,281 --> 00:42:10,530 경쟁 또는 이벤트 그들은에 도착했다고. 952 00:42:10,530 --> 00:42:13,030 그래서 다음 사람, I 다른 변수가 필요합니다. 953 00:42:13,030 --> 00:42:15,790 >> 난 그냥 할 경우 때문에 나이의 getInt를 얻을, 그건 954 00:42:15,790 --> 00:42:18,500 갈은 소지품을 덮어 쓰합니다 이전 사람의 나이. 955 00:42:18,500 --> 00:42:19,760 그래서 좋은 일이 아니다. 956 00:42:19,760 --> 00:42:21,790 내 첫번째 본능 그래서 수 있습니다, 오, 모든 권리, 957 00:42:21,790 --> 00:42:26,260 나는 여러 사람들의를 얻으려면 ages--,의이 age1 부르 자 958 00:42:26,260 --> 00:42:31,280 INT의 age2는 정수를 얻는다 INT의 age3은의 getInt는 가져옵니다. 959 00:42:31,280 --> 00:42:35,340 그리고 지금은 사용하는거야 여기에 몇 가지 의사 코드입니다. 960 00:42:35,340 --> 00:42:37,679 >> 그 숫자 일 경우 할 일. 961 00:42:37,679 --> 00:42:40,470 우리는 다른 일을 위해 떠날거야 무엇을 우리는이 일을하는지 때문에 우리 만 962 00:42:40,470 --> 00:42:44,200 순간에 대한 관심 age1, age2, age3에 대한 정보가 포함되어 있습니다. 963 00:42:44,200 --> 00:42:46,450 불행히도, 난 한 번 이 프로그램을 컴파일 964 00:42:46,450 --> 00:42:51,140 그리고, 실제 사용자의 전면에 넣어 근본적으로 가난한 디자인은 무엇인가 965 00:42:51,140 --> 00:42:53,890 나는 보인다 결정하게 만들었 어? 966 00:42:53,890 --> 00:42:54,624 그래? 967 00:42:54,624 --> 00:42:55,499 청중 : [들리지] 968 00:42:55,499 --> 00:42:58,071 969 00:42:58,071 --> 00:42:59,820 데이비드 J. 마란 : 네, 난 시도하지 않은 970 00:42:59,820 --> 00:43:02,028 얼마나 많은 나이를 알아낼 난 사실 걱정합니까? 971 00:43:02,028 --> 00:43:05,380 여기보다 적은 삼명이있는 경우, 따라서 세 개 미만의 연령, 972 00:43:05,380 --> 00:43:07,260 난 여전히 맹목적으로 삼을 기대하고 있습니다. 973 00:43:07,260 --> 00:43:08,720 하나님은 사명이 표시 금지하고 있습니다. 974 00:43:08,720 --> 00:43:10,990 내 프로그램은 심지어 그들을 지원하지 않습니다. 975 00:43:10,990 --> 00:43:13,280 >> 그래서이, 긴 이야기 짧은, 좋은 습관이 아니다. 976 00:43:13,280 --> 00:43:13,780 오른쪽? 977 00:43:13,780 --> 00:43:16,530 나는 기본적으로 복사하고, 코드를 붙여 단지 조정 978 00:43:16,530 --> 00:43:17,430 변수 이름. 979 00:43:17,430 --> 00:43:22,410 그리고, 나의 하나님, 당신은이 있다면,하지 세 나이, 그러나 10, 100 또는 심지어 6500 980 00:43:22,410 --> 00:43:23,820 학부생, 예를 들어. 981 00:43:23,820 --> 00:43:26,950 특히 될 수 없습니다 우아한 코드 또는 지속. 982 00:43:26,950 --> 00:43:29,200 당신이해야 돼요 프로그램마다 다시 작성 983 00:43:29,200 --> 00:43:30,760 명 변경의 전화 번호. 984 00:43:30,760 --> 00:43:35,090 >> 그래서 감사하게도 우리의 실제에서 오늘 ages.c 파일 985 00:43:35,090 --> 00:43:36,970 우리는 더 영리한 해결책을 가지고 있습니다. 986 00:43:36,970 --> 00:43:39,800 첫째, 빌려 갈거야 우리는 몇 번 사용했습니다 구성 987 00:43:39,800 --> 00:43:43,744 이 얻기 위하여, 루프 동안 수행 방에있는 사람의 수. 988 00:43:43,744 --> 00:43:46,910 난 그냥 다시 사용자를 훼방하려고 해요 다시, 그 또는 그녀 때까지 날 수 있습니다 989 00:43:46,910 --> 00:43:49,260 양의 정수 n 값의 값입니다. 990 00:43:49,260 --> 00:43:51,590 >> 내가 사용하는 수도, 마지막 시간의 긍정적 인 정수를 얻는다. 991 00:43:51,590 --> 00:43:53,720 그러나 우리는이 없습니다 진짜, 내가 나서서 992 00:43:53,720 --> 00:43:55,660 이 아이디어를 다시 구현. 993 00:43:55,660 --> 00:43:58,410 이제 여기까지,이 새로운 마술이다. 994 00:43:58,410 --> 00:44:02,260 주석으로 라인을 27 일에서 라인 (26)이 제안에, 995 00:44:02,260 --> 00:44:05,180 배열을 선언하는 모든 사람의 나이를 저장합니다. 996 00:44:05,180 --> 00:44:09,320 >> 그래서 당신은 하나의 정수를하지 않습니다 얻으려면 이 정수 있지만, 정수의 전체 무리. 997 00:44:09,320 --> 00:44:13,800 특히 n은 정수였다가 N 수도 100이 될 수 있습니다, 세 수, 천 수 있습니다. 998 00:44:13,800 --> 00:44:17,570 구문은 매우 간단하게하는 것입니다 말하자면, 당신은 어떤 데이터 유형을 원하는가? 999 00:44:17,570 --> 00:44:19,620 당신은 전화를 원하는 작업 메모리의 덩어리? 1000 00:44:19,620 --> 00:44:23,530 당신은 그리드를 호출 원하는 작업 즉,이 그림으로 보이는? 1001 00:44:23,530 --> 00:44:27,700 >> 그리고 여기에 괄호로, 당신은 말 얼마나 큰 당신은 배열이되고 싶어요. 1002 00:44:27,700 --> 00:44:30,450 그리고 이전 버전 때 내가 말했다 구문, 여기에 약간 다릅니다 1003 00:44:30,450 --> 00:44:33,614 우리는 여전히 괄호를 사용하고, 하지만 배열을 선언하고있을 때, 1004 00:44:33,614 --> 00:44:35,530 내부 번호 대괄호 수단 1005 00:44:35,530 --> 00:44:37,610 얼마나 큰 어레이가 원하는 않습니다. 1006 00:44:37,610 --> 00:44:42,490 >> 대조적으로, 때 우리는의를 사용하고 브래킷 내가 조금 전에, S, A 문자열 1007 00:44:42,490 --> 00:44:46,820 문자의 배열, 참으로하지만, 당신이 변수를 선언하지 않을 때, 1008 00:44:46,820 --> 00:44:49,760 여기에이 키워드와 같이, 당신은 단순히 있어요 1009 00:44:49,760 --> 00:44:54,280 특정 인덱스 특정한 해당 배열에서 요소입니다. 1010 00:44:54,280 --> 00:44:57,090 우리가 알고되면, 나머지 이는 간단합니다. 1011 00:44:57,090 --> 00:45:00,765 내가 먼저 인쇄 할거야 새로운 경우 사람 수 난의 연령은 무엇입니까. 1012 00:45:00,765 --> 00:45:03,890 난 그냥 사람의 번호를 하나의 말을 어디 사람의 두 번째, 사람 수를 세. 1013 00:45:03,890 --> 00:45:06,306 >> 그리고 난 그냥 계산을하고 있어요 그래서 같은 일반 명, 1014 00:45:06,306 --> 00:45:09,030 우리는이 하나에서 계산 프로그램, 그리고 제로부터. 1015 00:45:09,030 --> 00:45:13,620 그럼 난의 getInt를 호출하지만 저장 시대에 대답은 내가 브라켓. 1016 00:45:13,620 --> 00:45:16,610 어떤 배열의 i 번째 나이이다. 1017 00:45:16,610 --> 00:45:21,640 마지막으로, 반면 우리가 치료되었다 그래서 Zamyla의 이름에 대한 문자 이러한 상자, 1018 00:45:21,640 --> 00:45:22,490 등이 있습니다. 1019 00:45:22,490 --> 00:45:26,530 지금,이 상자가 나타 32 비트 또는 4 바이트 1020 00:45:26,530 --> 00:45:29,510 있는 우리는 저장할 수 있습니다 중간, 중간, INT. 1021 00:45:29,510 --> 00:45:31,890 모두의 다시, 동일한 데이터 형식이다. 1022 00:45:31,890 --> 00:45:33,890 >> 지금은 뭔가 바보 수행 시간이 지남에 같은 단지 1023 00:45:33,890 --> 00:45:35,510 이 프로그램을 작성 정당화한다. 1024 00:45:35,510 --> 00:45:40,050 그리고 여기에서 아래로, 다시 반복 지금부터 년 말 배열을 통해, 1025 00:45:40,050 --> 00:45:43,090 사람의 번호를 하나의 의지 뭔가 세 이상. 1026 00:45:43,090 --> 00:45:45,010 그리고 알아낼 수 있습니다 math-- 내 말은,이 1027 00:45:45,010 --> 00:45:49,260 매우 arithmetic-- 복잡하지 않습니다 그냥 자신의 나이에 하나를 추가 할 수 있습니다. 1028 00:45:49,260 --> 00:45:51,240 그냥, 다시 이것을 보여주기 위해. 1029 00:45:51,240 --> 00:45:57,910 >> 그냥 색인 할 수있는 문자열로, S, 그래서 연령대의 배열로 수 I 지수, 1030 00:45:57,910 --> 00:45:59,950 이 같은. 1031 00:45:59,950 --> 00:46:03,340 어디이 우리를 복용 될 것입니다? 1032 00:46:03,340 --> 00:46:07,070 그래서 우리는 볼 것이다, 궁극적으로 일 몇 가지가 올 수 있습니다. 1033 00:46:07,070 --> 00:46:09,510 하나, 모든 시간, 때 자신의 프로그램을 작성, 1034 00:46:09,510 --> 00:46:11,239 마리오, 욕심, 신용 등을들 수있다. 1035 00:46:11,239 --> 00:46:13,780 당신의 이름을 입력했습니다 프로그램 및 타격십시오. 1036 00:46:13,780 --> 00:46:15,610 그리고, 사용자의 입력을 받고. 1037 00:46:15,610 --> 00:46:18,137 >> 있는 getString, getInt와 함께, getLongLong 등. 1038 00:46:18,137 --> 00:46:20,720 그러나 그 C 지원 밝혀 뭔가 명령 행 호출 1039 00:46:20,720 --> 00:46:25,740 우리를 할 것입니다 인수, 실제로 사용자가 입력하는 단어를 얻을, 1040 00:46:25,740 --> 00:46:28,570 깜박이는 프롬프트에서, 프로그램의 이름 뒤에. 1041 00:46:28,570 --> 00:46:31,430 >> 당신을 올 일에 그래서 시저 같은 것을 입력 할 수 있습니다, 1042 00:46:31,430 --> 00:46:34,950 또는 ./caesar 후 번호 13. 1043 00:46:34,950 --> 00:46:36,070 우리는 어떻게 작동하는지 볼 수 있습니다. 1044 00:46:36,070 --> 00:46:37,550 참에 있기 때문에 문제는 우리가있어,이 설정 1045 00:46:37,550 --> 00:46:39,383 당신을 소개 할 예정 작은 선물에 1046 00:46:39,383 --> 00:46:42,360 랄피의 연상 지도 제작 이전에 도전한다. 1047 00:46:42,360 --> 00:46:43,970 정보를 스크램블링의 예술. 1048 00:46:43,970 --> 00:46:46,660 이것은 실제로 매우이며 랄 피하고 무슨 짓을 연상. 1049 00:46:46,660 --> 00:46:51,380 >> 이것은 암호화의 예 알고리즘은 R-O-T 13 ROT13을했다. 1050 00:46:51,380 --> 00:46:54,910 어떤 단순히 회전을 의미 알파벳 13 곳에서 편지입니다. 1051 00:46:54,910 --> 00:46:58,309 당신이 할 경우, 당신은 지금 볼 수 있습니다 익숙한 구절은 아마도 것입니다. 1052 00:46:58,309 --> 00:47:01,100 그러나 방법은 우리가 사용하는거야 이는 궁극적으로,보다 일반적이다. 1053 00:47:01,100 --> 00:47:04,390 >> P에서는 표준 버전에서,이 설정 당신은 암호의 몇 가지를 구현합니다 1054 00:47:04,390 --> 00:47:06,720 시저 호출 한, Vigenere라는 하나. 1055 00:47:06,720 --> 00:47:10,090 둘 다 회전 아르 점에서 암호, 당신이 어떻게 든 1056 00:47:10,090 --> 00:47:11,826 다른 편지로 한 편지를 켭니다. 1057 00:47:11,826 --> 00:47:12,950 그리고 카이사르는 슈퍼 간단합니다. 1058 00:47:12,950 --> 00:47:16,220 당신은, 당신이 13를 추가 한 추가 또는 26까지 약간의 수입니다. 1059 00:47:16,220 --> 00:47:19,570 Vigenere은을에 수행 편지 단위. 1060 00:47:19,570 --> 00:47:22,140 Vigenere 그래서 같이 당신은 볼 것이다 스펙에 더 안전합니다. 1061 00:47:22,140 --> 00:47:24,973 >> 하지만 하루의 끝에서 무엇 , 당신은 구현 될거야, 그리고 P는이 설정 1062 00:47:24,973 --> 00:47:29,050 둘 다 사용하는 키는 암호화 및 암호 해독합니다. 1063 00:47:29,050 --> 00:47:32,160 선회하는 과정을 참조 일반 텍스트, 일부 원본 메시지, 1064 00:47:32,160 --> 00:47:34,490 사이퍼 텍스트에있는 뭔가 암호화됩니다. 1065 00:47:34,490 --> 00:47:36,220 그리고 다시 암호를 해독. 1066 00:47:36,220 --> 00:47:38,119 >> 해커 판에서, 그 사이에, 당신은있을거야 1067 00:47:38,119 --> 00:47:40,660 비슷한 임무를 정신으로, 우리는 당신에게 줄 것이다 곳 1068 00:47:40,660 --> 00:47:44,610 일반적인 Linux 또는에서 파일, 맥, 유닉스 시스템이라고 etsy 1069 00:47:44,610 --> 00:47:47,800 전체를 포함 암호 사용자 이름과 암호의 무리입니다. 1070 00:47:47,800 --> 00:47:50,932 그리고 그 암호는 모두가 암호화 또는 해시되고, 1071 00:47:50,932 --> 00:47:53,140 그래서 더 적절하게 말하자면 당신이 사양에서 볼 수있다. 1072 00:47:53,140 --> 00:47:57,090 >> 그리고 해커 판에 도전합니다 다음과 같이 입력을 복용하면, 1073 00:47:57,090 --> 00:47:58,800 암호를 크래킹. 1074 00:47:58,800 --> 00:48:02,590 즉 파악, 무엇 인간의 암호는 사실이었다. 1075 00:48:02,590 --> 00:48:05,570 참으로, 암호가 때문에, 일반적으로 일반 텍스트로 저장되지 않습니다, 1076 00:48:05,570 --> 00:48:08,260 일반적으로 암호 추측하기 어려운 것을해야한다. 1077 00:48:08,260 --> 00:48:09,610 즉, 종종 그렇지 않다. 1078 00:48:09,610 --> 00:48:12,110 >> 그리고 내가 무엇을 우리가 할 것이라고 생각하면됩니다 몇 분 결론 1079 00:48:12,110 --> 00:48:15,160 특히 눈에 암호를 잘못 선택 1080 00:48:15,160 --> 00:48:17,260 영화에서 당신은 사랑스러운 기억 있습니다. 1081 00:48:17,260 --> 00:48:18,915 하지 않을 경우, 당신은 임대해야합니다. 1082 00:48:18,915 --> 00:48:20,070 >> [동영상 재생] 1083 00:48:20,070 --> 00:48:22,320 >> -Helmet, 당신은 악마, 무슨 일이야? 1084 00:48:22,320 --> 00:48:24,240 내 딸에게 무슨 짓이야? 1085 00:48:24,240 --> 00:48:28,010 >> 을 소개하는 날 -Permit 화려한 젊은 성형 외과 의사, 1086 00:48:28,010 --> 00:48:30,010 의사 필립 Schlotkin. 1087 00:48:30,010 --> 00:48:35,020 에서 가장 큰 코를 남자 전체 우주와 비벌리 힐스. 1088 00:48:35,020 --> 00:48:36,140 >> - 당신의 전. 1089 00:48:36,140 --> 00:48:36,820 >> -Nose 작업? 1090 00:48:36,820 --> 00:48:37,700 이해가 안 돼요. 1091 00:48:37,700 --> 00:48:39,070 그녀는 이미 코 수술입니다. 1092 00:48:39,070 --> 00:48:40,800 그것은 그녀의 달콤한 16 본이었다. 1093 00:48:40,800 --> 00:48:42,590 >> 아니, 당신이 생각하는 그런게 아니야. 1094 00:48:42,590 --> 00:48:44,490 그것은 훨씬, 훨씬 더 나쁘다. 1095 00:48:44,490 --> 00:48:48,160 당신은 나에게 제공하지 않을 경우 공기 실드 조합 1096 00:48:48,160 --> 00:48:52,748 의사 Schlotkin는 줄 것이다 딸은 그녀의 오래된 코를 백업합니다. 1097 00:48:52,748 --> 00:48:53,748 - 정말로? Nooooooooooooo. 1098 00:48:53,748 --> 00:48:57,684 1099 00:48:57,684 --> 00:48:59,652 그거 어디서 났어? 1100 00:48:59,652 --> 00:49:00,640 >> - 좋아. 1101 00:49:00,640 --> 00:49:02,506 난 말할거야, 말거야. 1102 00:49:02,506 --> 00:49:03,498 >> - 아니, 아빠, 아니. 1103 00:49:03,498 --> 00:49:04,490 당신은하지 않아야합니다. 1104 00:49:04,490 --> 00:49:06,090 >> 넌 바로 내 사랑. 1105 00:49:06,090 --> 00:49:07,390 나는 새 코를 그리워합니다. 1106 00:49:07,390 --> 00:49:10,990 그러나 나는 그들에게하지 않습니다 조합에 상관없이. 1107 00:49:10,990 --> 00:49:12,450 >> 잘 - 아주. 1108 00:49:12,450 --> 00:49:14,830 의사 Schlotkin은 최악의 해. 1109 00:49:14,830 --> 00:49:15,744 >> - 반갑습니다. 1110 00:49:15,744 --> 00:49:19,860 1111 00:49:19,860 --> 00:49:20,800 >> 안돼! 1112 00:49:20,800 --> 00:49:22,780 잠깐, 잠깐. 1113 00:49:22,780 --> 00:49:24,000 내가 말해주지. 1114 00:49:24,000 --> 00:49:25,830 내가 말해주지. 1115 00:49:25,830 --> 00:49:28,270 >> - 난 잘되기를 알고 있었다. 1116 00:49:28,270 --> 00:49:31,390 좋아, 나 한테 줘. 1117 00:49:31,390 --> 00:49:36,220 >> 년 - 조합은 하나입니다. 1118 00:49:36,220 --> 00:49:36,740 >> - 한. 1119 00:49:36,740 --> 00:49:37,473 >> - 한. 1120 00:49:37,473 --> 00:49:37,972 둘. 1121 00:49:37,972 --> 00:49:38,471 둘. 1122 00:49:38,471 --> 00:49:39,800 둘. 1123 00:49:39,800 --> 00:49:40,300 - 셋. 1124 00:49:40,300 --> 00:49:40,800 - 셋. 1125 00:49:40,800 --> 00:49:41,800 - 셋. 1126 00:49:41,800 --> 00:49:42,300 - 넷. 1127 00:49:42,300 --> 00:49:42,800 - 넷. 1128 00:49:42,800 --> 00:49:44,707 - 넷. 1129 00:49:44,707 --> 00:49:45,521 다섯. 1130 00:49:45,521 --> 00:49:46,430 다섯. 1131 00:49:46,430 --> 00:49:47,930 다섯. 1132 00:49:47,930 --> 00:49:53,480 조합은 하나입니다 - 그래서, 둘, 셋, 넷, 다섯. 1133 00:49:53,480 --> 00:49:56,140 즉, 멍청한 조합이다 나는 내 인생에서들을 수 있습니다. 1134 00:49:56,140 --> 00:49:58,640 즉, 물건의 종류 바보는 자신의 수하물에 할 것입니다. 1135 00:49:58,640 --> 00:50:00,000 >> , 당신의 전을 고마워요. 1136 00:50:00,000 --> 00:50:01,340 >> [REMOTE 클릭] 1137 00:50:01,340 --> 00:50:02,450 >> 당신이 무슨 짓을 한거야? 1138 00:50:02,450 --> 00:50:03,800 >> - 난 벽을 해제. 1139 00:50:03,800 --> 00:50:05,010 >> 아니, 당신은하지 않았다 영화 전체를 해제. 1140 00:50:05,010 --> 00:50:06,220 >> - 난 그쪽은 버튼을 잘못 눌렀습니다. 1141 00:50:06,220 --> 00:50:07,064 >> - 그럼, 다시 넣어! 1142 00:50:07,064 --> 00:50:07,910 다시 동영상을 올려! 1143 00:50:07,910 --> 00:50:08,300 >> - 네, 선생님! 1144 00:50:08,300 --> 00:50:08,799 네, 알겠습니다. 1145 00:50:08,799 --> 00:50:09,660 의는, 아놀드 - 가자. 1146 00:50:09,660 --> 00:50:10,450 그레첸 가자. 1147 00:50:10,450 --> 00:50:12,533 물론 내가 거에요 이 당신을 청구해야합니다. 1148 00:50:12,533 --> 00:50:16,720 1149 00:50:16,720 --> 00:50:17,220 - 어때요? 1150 00:50:17,220 --> 00:50:17,802 그것은 작동 했습니까? 1151 00:50:17,802 --> 00:50:18,510 왕이 어디있어? 1152 00:50:18,510 --> 00:50:20,218 >> - 그것은, 선생님 일 우리 조합이있다. 1153 00:50:20,218 --> 00:50:20,740 잘 했어. 1154 00:50:20,740 --> 00:50:24,810 이제 우리는 모든 마지막 숨을 걸릴 수 있습니다 행성 Druidia에서 신선한 공기. 1155 00:50:24,810 --> 00:50:25,890 조합은 무엇입니까? 1156 00:50:25,890 --> 00:50:28,155 >> 하나, 둘, 셋, 넷, 다섯. 1157 00:50:28,155 --> 00:50:29,890 >> 하나, 둘, 셋, 넷, 다섯? 1158 00:50:29,890 --> 00:50:30,390 네. 1159 00:50:30,390 --> 00:50:31,110 - 그건 놀라운. 1160 00:50:31,110 --> 00:50:34,550 나는 같은있어 내 수하물에 조합. 1161 00:50:34,550 --> 00:50:37,160 에 대한 스페이스 볼 일을 준비 즉시 출발. 1162 00:50:37,160 --> 00:50:38,160 >> 네, 알겠습니다. 1163 00:50:38,160 --> 00:50:40,745 >> 변경 - 그리고 내 수하물에 조합. 1164 00:50:40,745 --> 00:50:41,578 [문 닫기의 SOUND] 1165 00:50:41,578 --> 00:50:42,064 [문 땡그랑 소리가 헬멧을 타격] 1166 00:50:42,064 --> 00:50:42,550 - 아. 1167 00:50:42,550 --> 00:50:43,383 [END VIDEO 재생] 1168 00:50:43,383 --> 00:50:46,700 데이비드 J. 마란 : 그건은 여기까지 CS50, 우리는 다음 주에 볼 수 있습니다. 1169 00:50:46,700 --> 00:50:49,883 내레이터 : 그리고 지금, 깊은 Daven 판햄으로 생각. 1170 00:50:49,883 --> 00:50:53,160 1171 00:50:53,160 --> 00:50:55,860 >> DAVEN 판햄은 : C로 코딩하다 스크래치보다 훨씬 더. 1172 00:50:55,860 --> 00:50:57,320 printf와, 스크래치 거짓말이었다. 1173 00:50:57,320 --> 00:50:59,930 1174 00:50:59,930 --> 00:51:01,430 >> [웃음의 인터뷰 [] 1175 00:51:01,430 --> 00:51:02,486