데이비드 J 마란 : 모든 좋아요,이 CS50입니다. 그리고 이것은 분명히 금요일입니다. 그리고 이것은 일주일의 끝입니다. 그래서 우리가 그만 둔 것을 기억 할 수있다, 종류의 클리프 행어와 마지막 시간. 이에 우리는이 거짓말을 노출시키지 아니 그 문제 성장 당신이 배운 것을 , 최대 10로 나눈 1 년,하지 사실, 0.1 0.100 또는 0.10000. 사실, 만약 우리에게이 컴파일 프로그램, 우리가 어제 함께했던 것처럼, 부정확를 확인한 다음 점을, 슬래시, 부정확성, 우리는 이것이 무엇이라고 배웠습니다 (1)는 실제로 10로 나눈. 그래서 정말 아주 그렇지 않다. 그러나 이것은 몇 가지 힌트를 않습니다 컴퓨터의 기본적인 제한. 그리고 실제로, 중 일이 우리가 할거야 오늘은이 이유를 살펴입니다 일,이 무슨 의미, 인류에 오류가 발생했습니다 방법 매우 이것을 이해하기 심각한 situations-- 결과 아주 비극적이었다 또한 expensive--과 우리는 방법을 살펴 실제로 방어 할 수 제한 이러한 종류의에 대하여. 그래서 직관적으로, 아마도, 왜 1가 10로 나눈, 내 컴퓨터에 따라 여기서, 단지 1/10, 0.10? 그래. 어떻게 생각해? 청중 : 기수가 다른가요? 데이비드 J 마란 : 무엇인가? 아, 기수는 다른가요? 그래서 확실히. 그것은 실제로 더 하드웨어에 기본. 다른 생각? 그래. 청중 : 그들은 다른 숫자를 표현? 데이비드 J 마란 : 그래서 있는거야 오른쪽. 그들은 다른 번호를 나타냅니다. 부정확, 분명히. 글쎄, is-- 있도록 다른 무엇으로부터? 아니면 누구부터? 미국의? 청중 : 네. 그들은 소수를 사용하지 않는 [들림]에 시스템. 데이비드 J 마란 : OK. 의미 그래서, 그들은하지 않습니다 십진법을 사용합니다. 후드 아래, 모든 것이, 참으로, 이진 그리고 사실, 관련입니다. 하지만 그것도 간단합니다 보다 설명. 그래. 청중 : 그들은 단지 많은 비트를 가지고있다. 그들은 단지 특정 저장할 수 정도, 소수와 같은. 데이비드 J 마란 : 그래. 이건 정말 그것을 점점 것입니다. 그것은 그 컴퓨터를 밝혀 일반적으로는 항상 만 정보의 유한 한 양을 사용 뭔가를 나타냅니다. 권리? 결국, 우리는 고정이 하드 디스크 공간의 양. 우리가 단지 고정 된 양을 RAM, 또는 컴퓨터 메모리. 그리고 당신 만이있는 경우 뭔가의 고정 된 양, 확실히 당신은 실제로 카운트 수 없습니다 무한대 또는 원하는 번호. 당신은 가지에있다 선택하고 어떤 영역을 선택 의 당신이 지원거야 값. 그래서 예, 한 두 주에 대한 전, 우리가 ASCII에 대해 이야기 할 때, 우리는 약 8 비트를 이야기 또는 바이트는, 그래서, 말하자면 가장 큰 수를 우리가 할 수 8 비트 무엇이었다 대표? 255. 그리고 우리는 256의 총 값을 나타낼 수 있습니다 그러나 우리는 그들 중 하나를 지출하지 않을 경우 잘 0--에, 그러나 우리의 경우 0에 그들 중 하나를 보내고, 다음 가장 큰 수 255 물론이다. 그래서이 것을 밝혀 이 문맥에서 너무 경우. 우리는, 이야기, 마지막으로 시작 부동 소수점 수에 대한 어떤 에서, 정수 다르다 그들은 소수점을 가지고 그리고, 희망, 몇 가지 숫자 그 후,하지만 그들도 있습니다. 컴퓨터는 일반적으로 것입니다 32 비트, 아마도 64 비트를 사용하는 부동 소수점 값을 표현한다. 비록 그래서 우리는 성장했습니다 수학을 배우고 알고 당신은 절대적으로 가질 수 숫자의 무한한 소수점,하지 후 당신은 제한된 메모리를 가지고있는 경우. 당신은, 가지, 반올림해야 또는 선택하고 선택하는 숫자는 당신이 표현하는 것입니다. 그래서 당신은 의미에서 생각할 수있는, 이되는 컴퓨터의 가장 가까운 값 1/10 근사 그 그냥 32 정도 비트, 얻을 수 있습니다. 그리고 그것은 단지 1/10 아니다. 예를 들어, 나는 이것을하기 변경하는 경우 우리가 생각하는 1/3, 심지어 간단하다. 그래서 1 3으로 나눈. 나 파일을 저장할 수 있습니다. 내가 가서 다시 컴파일하자. 그리고 내가 그것을 다시 실행 할 수 있습니다. 여기 너무, 분명히, 1/3은 0.3 아니다 다음 3의 무한한 그 후. 당신은 끝이 부정확 있습니다. 그래서 우리 인간은 정확한지, 어떤 당신은 사실이며, 올바른 학습 그러나 우리는 해주있어 몇 가지 제한 사항에 대하여. 그리고 내가 생각했던 오늘날 우리가 할 것, 시작된다 솔직히,보고에 의해 이 비극적 결과 때로는, 때 인류 아주 구현하지 않습니다 이 현실과 이러한 제한합니다. 그리고 우리는 삽화의 시리즈를 볼 수 있습니다 소요 히스토리 채널에서 어떻게 일을 살펴 잘못 갔다. 그것은 약 팔분 길어 우리는이 이후에 다시 올 것이다 정확히 살펴 다른 무엇이 잘못 될 수 있습니다. 우리는 lights--을 흐리게 할 수 있다면 [비디오 재생] -Computers, 우리는 받아 왔어요 자주 좌절 문제가 그들과 함께 할 것입니다. 버그, 바이러스, 소프트웨어 글리치는 작은 가격입니다 편의를 위해 지불합니다. 그러나 높은 기술과 고속 군사 및 우주 프로그램 응용 프로그램, 작은 문제 수 재난으로 확대 될 수있다. 1996년 6월 4일에서 과학자들은 준비 무인 아리안 5 로켓을 시작합니다. 그것은 과학적인 수행되었다 위성 설계 정확하게 어떻게 수립 지구의 자기장의 상호 작용 태양 바람과 함께. 로켓을 위해 만들어진 유럽​​ 우주국 그 시설에서 들어 올려 프랑스어 령 기아나의 해안. - 그리고 약 30 초에 비행, 그들은 처음으로 눈치 뭔가 잘못 가고 있었다. 노즐 선회되었는지 어떤면에서 그들은 정말 안된다. 비행에 40초 주변, 분명히 차량은 문제가 있었다 그들이 만든 때 그건 결정을 파괴한다. 범위 안전 책임자와 엄청난 배짱 버튼을 누르면, 그 전에 로켓 폭발 공공의 안전에 위험이된다. -이는 처녀였다 아리안 5의 항해, 그 파괴했다 때문에 결함의 장소 로켓의 소프트웨어에 내장. 에 -THE 문제 아리안이었다 그이 필요한 수 있었다 64 비트는 표현 그는 변환하고 싶어 그것은 16 비트 번호. 그들은 수 있다고 가정 매우 큰 될 것되지 않았다, 점에서 그 자리의 가장 64 비트 번호는 0이었다. 그들은 틀렸다. 하나의 -THE 무능력 소프트웨어 프로그램에 동의합니다 생성 수의 종류 또 다른 실패의 루트에 있었다. 소프트웨어 개발이되었다 새로운 기술의 매우 비용이 많이 드는 부분입니다. 아리안 4 로켓은 매우 있었다 소프트웨어의 성공, 너무 많은 그것은 또한이었다 생성 아리안 5에 사용. 년 - 기본 문제는 아리안이었다 5, 더 빨랐다 빠른 가속. 그리고 소프트웨어는했으나, 그를 차지했다. 로켓의 -THE 파괴 거대한 금융 재앙이었다 모든 인해 분 소프트웨어 오류. 그러나 이것은 제 아니었다 시간 데이터 변환 문제 현대적인 로켓 기술을 괴롭혀했다. 시작으로 1991 년 -in 첫 번째 걸프 전쟁, 패트리어트 미사일 비슷한 종류의 경험 수 변환 문제. 그 결과 28 명 (28) 미국 군인 살해에 대한했다 (100) 다른 부상, 때 가정 된 애국, 수신 스커드을 방지하기 위해, 미사일을 발사하는 데 실패했습니다. - 언제 이라크는 쿠웨이트와 미국을 침공 초기 1991 년 사막의 폭풍을 시작, 패트리어트 미사일 배터리가 배치되었다 사우디 아라비아와 이스라엘을 보호하기 위해 이라크의 스커드 미사일 공격. 애국은 미국, 중간 범위 지대공 시스템 레이 시온 회사에 의해 제조. 패트리어트 요격의 -THE 크기, 자체는 약 20 피트 길이, 대한 것입니다. 그리고 약 2000 파운드의 무게. 그리고 그것은 비슷해의 탄두를 운반 나는 대략 1백50파운드 생각합니다. 그리고 탄두 자체, 고성능 폭약이다, 이는 주위 조각이있다. 탄두의 케이스입니다 사슴 사냥 용 총알처럼 행동하도록 설계되었습니다. 년 - 미사일은 4 컨테이너 당, 수행, 및 세미 트레일러에 의해 운반된다. 년 - 애국 반 미사일 시스템 지금 적어도 20 년 전으로 거슬러 간다. 그것은 원래 설계되었습니다 방공 미사일로 적군의 비행기를 격추한다. 첫 걸프 전쟁에서, 그 전쟁이 함께 왔을 때, 육군은에 그것을 사용하고 싶었 스커드가 아니라 비행기를 격추. 이라크 강제하지 않았다 문제가 너무 많은, 그러나 육군은 스커드에 대해 걱정했다. 그래서 그들은하려 애국를 업그레이드합니다. 적을 -Intercepting 미사일 마하 5시 여행 충분히 도전 할 거라고. 그러나 때 애국 서비스로 돌진했다, 육군은 인식하지 않았다 만든 이라크 수정 자신의 스커드 칠 거의 불가능합니다. 무슨 일이 스커드입니다 에오고 있었다, 불안정 그들은 흔들 흔들했다. 이것에 대한 이유는, 순서대로, 이라크를했다 에서 600km를 얻을 수 있습니다 300km의 미사일, 전면 탄두에서 무게를했다 그리고 탄두 경량화. 그래서 지금, 애국의 올하려고 스커드에, 대부분의 시간, 의 압도적 인 다수 시간, 그냥 스커드에 의해 비행 것입니다. 패트리어트 시스템 운영자 - 일단 , 애국자가 목표를 놓친 실현 그들은 애국자의 탄두를 폭발 그것이 가능하면 피해를 방지하기 위해 땅에 떨어지지 하였다. 대부분의 사람들이 본 것을 - 그건이었다 하늘에서 그 큰 불 덩어리, 과 오해 스커드 탄두의 차단. 밤에 비록 하늘, 애국자 등장 성공적으로 할 수 다란에서 스커드를 파괴, 실수있을 수 없다 성능에 대한. 가, 애국의 레이더 시스템 수신 스커드의 트랙을 손실, 그리고, 시작하지 소프트웨어 결함으로 인해. 먼저 발견 한 이스라엘이었다 더 이상 시스템이 켜져 있는지, 더 큰 시간의 편차 때문에 내장 된 시계가되었다 시스템에서의 컴퓨터. 대략 125 이주 전에 다란의 비극, 이스라엘은보고 국방부, 시스템이 시간을 잃고 있다는 그 실행의 약 8 시간 후, 그들은 시스템임을 알게 눈에 띄게 덜 정확 해지고. 국방부에 의해 반응 애국 배터리의 모든 이야기 시스템을 떠나지하기 오랜 시간에. 그들은 오랜 시간이 무엇 말했다 없습니다. 8시간? 10시간? 1천시간? 아무도 알지 못했다. 년 - 애국 배터리 병영에 주둔 다란, 그 결함이 내부에서 100 시간 이상 시계에 있었다 2월 25일의 밤. - 그것은 정확성에 시간을 추적 약 1/10 초 중. 이제 두 번째의 1/10이다 흥미로운 수 그것은 수 없기 때문에 정확히, 바이너리로 표현. 어떤는 할 수없는 의미 표현, 정확하게, 현대의 디지털 컴퓨터에서. 그것은 믿기 어렵다하지만 예를 들어 사용합니다. 이제 수, 1/3 보자. 1/3 표현할 수없는 진수, 정확하게. 1/3 무한대 동안 계속 0.333이다. 그렇게 할 수있는 방법은 함께 없습니다 소수의 절대 정확도. 즉, 정확히 같은 종류의 애국에서 일어난 문제. 더 이상 시스템이 실행, 더 시간 오류가되었다. 운전 100 시간 -after, 오류 시간에 약 1/3 초를했다. 하지만를 대상의 관점에서 미사일 마하 5에 여행, 그 결과 트래킹 600 미터의 오류입니다. 그것은 치명적인 오류가 될 것이다 다란의 군인. 무슨 일이야, 스커드 발사가 있었다 조기 경보 위성에 의해 감지, 그들은 스커드는 것을 새로운 I 자신의 일반적인 방향으로오고. 이오고 어디 그들은 몰랐다. - 그것은 레이더까지 지금이었다 패트리어트 시스템의 구성 요소, 찾아 유지하는 다란을 방어 들어오는 적의 미사일을 추적. 년 - 레이더는 아주 똑똑했다. 실제로 추적 할 것 스커드의 위치 다음 위치를 예측 그것은 아마 것 다음에, 레이더 아웃 펄스를 보냈습니다. 즉 범위 게이트 불렀다. - 그럼, 애국 번 충분한 시간을 가지고 결정 돌아가서 다음을 확인 통과 이 검출 된 객체에 대한 위치, 그것은 거슬러 올라갑니다. 그래서 잘못된으로 돌아 갔을 때 장소는, 그 후 어떠한 객체를 보게되지 그리고 전혀가 있다고 결정되지 객체, 그것은 오 검출 거 트랙을 삭제합니다. 수신 스커드가 사라졌다 레이더 화면에서, 초 후, 그것을 막사를 강타. 스커드 (28)를 살해하고 마지막으로 하나는 첫 번째 걸프 전쟁 때졌습니다. 안타깝게도, 업데이트 된 소프트웨어 다음 날 다란에 도착했다. 소프트웨어 결함이 있었다 하고 고정, 폐쇄 문제가 하나의 장 패트리어트 미사일의 역사. [END 재생] 데이비드 J 마란 : 그래서 우리는 살펴 보겠습니다 조금의 일부 유사한 제한. 하지만 먼저하자 몇 전환은 참고입니다. 이번 주말 one-- 그래서,이 슈퍼 섹션 될 것입니다, 에 대신하는 것을 의미하는 정기적으로 예약 된 섹션, 어떤 따라서 일주일에 시작됩니다. CS50의 웹 사이트에서보세요 이들에 대한 자세한 정보를 얻을 수 있습니다. 또한 촬영 및 스트리밍됩니다 참여할 수없는 사람들을 위해 살고있다. 문제는 1에 설정 이미 코스의 웹 사이트, 우리는 살펴 보겠습니다 조금의 그. 그리고 근무 시간도 걸릴 것입니다 목요일이 월요일 놓습니다. 따라서 이것은 가장 표준이었다 프로그램 우리는 마지막으로 바라 보았다. 그것은 간단한처럼 당신은 C로 쓸 수 프로그램, 심지어 그 대담한 주장의 비트입니다. 권리? 많은 거기 때문에 이 복잡​​성을 보이는. 그럼 잠깐 살펴 보자 어떤 이들 요소 중 일부 했다 후 제공하려고 방법에 대한 정신 모델 프로그램이 간단한 작동하고 우리는 시작합니다 더욱 복잡한 사물을 보는. 그래서이 라인은 여기, 지금 강조 노란색, 우리가 말할 무슨 짓을했는지, 마지막으로, 이것은 우리의 경우와는? 이 역할을하는 목적은 무엇입니까? 멀리 뒤쪽에서 누군가? 그래. 청중 : [들리지] 데이비드 J 마란 : 좋은. 그래서 그것은 당신에게 액세스를 제공합니다 명령에, 또는하자 그들에게 전화 기능, 누군가 다른 선언되는, 썼다, 그래서 다른 파일에, 말하자면. 그래서 우리는 정확히 .H 파일을 볼 수 있습니다 결국, .c 파일 대입니다. 하지만 지금은, 바로 알고 그 printf와, 예를 들면, 왔다 기능 중 하나입니다 어딘가에, 다른 파일에 선언 클라우드의 하드 드라이브에 다른 그 우리는 printf의를 액세스하여 사용할 수 있습니다 재발견 할 필요없이 자신을 바퀴가. 한편, 주. 주, 지난주의 아날로그은 무엇입니까? 그래. 청중 : 녹색 깃발을 클릭. 데이비드 J 마란 : 그래. 스크래치의, 녹색 깃발이 클릭 할 때. 이 퍼즐 조각처럼 그 일을 개막. 그리고 유사하게, 세상을했다 C로 몇 년 전에 결정 다른 언어의 무리, 당신이 프로그램을 작성하려는 경우, 첫 번째 기능 주, 호출 할 수있다. 그리고는 다음과 같이한다. 그러나 우리는 돌아올 것이다 다른 시간, 무엇을, INT, 그리고, 무효, 그 맥락에서 의미한다. 지금은 중괄호 친절 의 스크래치의 퍼즐 조각 모양처럼 그 라인의 어떤 수를 캡슐화합니다. 그리고 라인 중 여기, 여기 하나입니다. printf와는 그 목적의 함수이다 인생은 형식 문자열을 인쇄하는 것입니다. 그리고 포맷으로, 나는 당신을 의미 자리 값에 연결할 수 있습니다, 당신은 얼마나 많은 소수를 지정할 수 있습니다 포인트는, 얼마나 많은 숫자를 인쇄 소수점 등 후. 과의 printf 물론 하나 소요 또는 인수 또는 매개 변수를 더, 그렇지 않으면 더 간단하게 입력으로, 알려져 있습니다. 의 많은 것, 그래서 printf의 함수는 입력을합니다. 그리고 그 입력이 포함된다 여기에 두 개의 괄호로. 그 중 하나의 내부에 입력된다. 그것은 우리가 그것을 호출하기로 문자열이다, 이는 문자의 단지 순서입니다, 단어 또는 어구, 또는 전체와 같은 에세이도, 큰 따옴표 사이에. 그리고 그 영향을 미칠 것 무엇 printf의 행동 때문에, 물론, 그냥 일반적인 인쇄 기능입니다. 그것은 무엇을 알고 않을거야 당신이 그것을 말해 않는 한, 인쇄 할 수 있습니다. 그리고 나서, 일부 특징점. 우리는이 이상한 말을 했는가 심볼의 순서는? 그래. 청중 : 새로운 라인. 데이비드 J 마란 : 새로운 라인. 그래서 당신은 그냥 칠 수없는, 밝혀, 프로그램을 작성하는 경우, 입력합니다. 일반적으로, 컴파일러는 얻을 것입니다 당신이 무엇을 의미하는지에 관해서는 조금 혼란. 오히려, 당신은 문자 그대로를해야 여기에 나에게 새로운 라인을 제공, 말한다. 그리고 / n를 우리 일반적으로 이스케이프 문자를 호출합니다. 그래서 N, 새로운 라인. 그리고 컴파일러는 알고있다 그는 / N을 볼 때, 실제로 컴퓨터를 유도해야 궁극적으로, 또는 printf와,이 경우, 실제 새를 인쇄하기 라인은 타격처럼 입력 키보드의 키를 누르십시오. 그리고 마지막으로, 무엇을 우리가 말을했다 구문의 조각입니다? 그것은 무엇을 상징 하는가? 그래. 청중 : [들리지] 데이비드 J 마란 : 그것은 단지 줄의 끝. 이 문장의 끝입니다. 우리가하지 않는 것을 깨닫게 사방에 넣어. 우리는 확실히 넣어하지 않습니다 모든 라인의 끝에. 예를 들어, 아무도 거기에 없다 첫 번째 줄, 아무도 라인에 없다 메인으로, 아무도 없다 중괄호 후, 하지만 당신은보고 얻을 시작합니다 이 요구 어디에 잘 알고. 그리고 함수 후 거의 항상 어떤 행동, 전화 또는 문 것을 당신은 실제로 복용하고 있습니다. 그리고, 특히 경우 지금 알고 적은 편안한 그 중, 이 멍청한 것들의 종류이다 실수로 두드리는 오게 이상 벽에 머리. 당신은 논리적으로있을거야 때문에 어떤 문제에 자신감 당신은 문제에 대한 해결했습니다 세트, 그냥 망할 것 컴파일 또는 실행되지 않습니다. 그리고 너무 자주, 초기에, 그것은 것 당신은 괄호를 놓친 때문에 수, 또는 당신은 세미콜론을 놓쳤다. 그래서 그냥 염두 이러한 종류의 것들 중, 에 의해 좌절하지 않으려 고 그들을 매우 신속하게이 작업을 수행하기 때문에 오래된 모자된다. 그러나 얻는 것은 매우 간단 결과적으로 초기에 좌절. 그래서 지금의이 방법을 살펴 보자 이 라인은 실제로 작동 다음 약간 보면 더 복잡 하나. 그래서 우리는 여기에, 이상이 이 화면에 그릴 수있는 능력. 그리고의가 있다고 가정하자 이것은 내 컴퓨터 화면입니다 하지만, 안녕하세요 프로그램을 쓰고 있어요 나는, printf의 구현하지 않았습니다. 다른 사람은,의 printf를 구현했습니다. 누가 주장하고 싶습니다 ,의 printf를 구현? 우리는 할 수있다면? 좋아, 당신의 이름은 무엇입니까? 학생 1 :? 코펄. ?] 데이비드 J 마란 : 코펄은 최대 어서. 최대 어서. 괜찮아. 그래서 우리는 여기에,이, 어떤 이름 태그, 우리는이의 작은 게임을 만들 것이기​​ 때문에. 그리고 우리는 printf의 당신을 호출합니다. 그리고 당신이 여기 와서하고 싶은 경우, 내가 그냥 화면에 그려진 것, 그것은 나에게있어, 아주 간단하게이있다. 좋아, 그럼, 안녕 내 이름은이다 printf의, 당신은을에 넣어하려는 경우. 괜찮아. 그리고 당신은 스탠드를 갈 수 있다면 컴퓨터 화면에 의해 비록 당신은 함수이다 그 이 컴퓨터 시스템과 함께 제공. 그리고 삶의 목적이다 실제로 뭔가를 인쇄합니다. 그러나 프로그램 등 많은 우리 단지 여기서, 화면 가졌 우리가해야 할거야 실제로 몇 가지 입력을 제공합니다. 그리고, 내 입력하면, 여기있다 분명히 무슨 일이의 printf 전달, 의 일종의 같이 그것을 조롱 할 수 있습니다. 말 그대로에 쓸거야 종이, "안녕, 세계" 백 슬래시 N. 그리고 명확하게하기 위해, 무엇을 난 그냥,이 종이에 그려진했습니다 다음과 같습니다. 그래서 나는이 프로그램을 실행하고,이 때 코드의 노란 선이 실행됩니다, 그것은, 내가, 안녕하세요 프로그램처럼의 함수에 떨어져 일부 입력을 전달하고있다 다른 사람이 쓴. 그리고 경우, 손가락으로, 실제로 수, 손가락으로, 화면에 그리는대로 당신이 손으로되어있다, 효과는 궁극적이고 정확히, 화면을 참조하십시오. 그리고 여기에 작은 코너 케이스. 그리고 좋은, 우리는 볼 수 없습니다해야 이 시점에서, 새로운 라인. 그것은 당신에 대한 잘못된 것입니다 명시 적으로 줄 바꿈을 그립니다. 그러나 우리가 유지하는 경우에 단어를 작성 화면, 그들은 그 아래에 끝날 것입니다. 그래서 대단히 감사합니다,하지만 스틱 여기 한 순간. 우리는 지금 다른 하나를 필요 자원 봉사, 우리가 할 수있는 경우, 그 역할을해야 할 것 동행입니다 그것은 오케스트라에 유일한 사람이야 지금. 어떻게 확인 비슷해. 바로 여기에. 최대 어서. 당신의 이름은 무엇입니까? 학생 2 :? Ivay. ?] 데이비드 J 마란 : 죄송합니다? 학생 2 :? Ivay. ?] 데이비드 J 마란 : 이단, 최대 어서. 아니? 난, 그 잘못을 받으셨어요 당신이 두 번했다 후? 최대 어서. 그것은 여기 듣고 어렵다. 그래. 그리고 미안 해요, 당신의 이름은 무엇입니까? 학생 2 :? Ivay. ?] [? 데이비드 J 마란 : Ivay. ?] 그래. 지금은, 당신이 아닌 경우 마음, 당신은 getString에있다. 학생 2 : 확인을 클릭합니다. 쿨. 데이비드 J 마란 : 당신이 좋아하면 그래서 잠시 여기 서서, 의는 약간 살펴 보자 더 복잡한 프로그램, 그 이제 코드의 세 줄이 있습니다. 그래서 우리는 하나,이 사용하여 이름을 명시 printf와; 두하여 GetString를 호출, 에 할당 한 다음 변수는 문자열의 호출, 또는 S라고; 다음의 printf에 다른 전화, 하지만 두 개의 입력이 시간. 그래서 우리는 이미 완료 한 상태 당신의 이름, 또는 오히려, 우리는했습니다 이미 printf의 호출을 수행. 그래서 나는 당신의 이름을 주 쓸거야. 그래서, 내가 무슨거야 그냥 순간에, printf의 통과, 이것은 아주 간단하다. 당신이 가서이 그리는 싶다면 화면에, 즉, 귀하의 의견은 지금이다. 괜찮아. 그리고 우리가 지금 가지고 문자열을 잊지 여기에 코드의 우리 자신의 라인. 그래서에서,하여 GetString, 우리는 필요 실제로하여 GetString을 호출합니다. 그래서 인생의 목적은 산책하는 것입니다 오케스트라에 밖으로, 당신은 수 있다면, 누군가의 이름을 돌려줍니다. 그러나의 당신을 제공 할 수 뭔가를에 넣어. 당신이 원하는 경우, 이동 앞서 및 문자열을 얻을, 그 누군가의 이름을 얻을 종이 조각, 당신이 할 수있는 경우. 괜찮아. 그리고 우리는, 단지 순간에 볼 수 있습니다 그의 이름은 우리가 있어요. 한편, 내가 무슨거야 준비, 빈 조각입니다 종이,있는, 내가 갈거야 저장하는 어떤 값을 하여 GetString 나에게 반환된다, 나는,라는 문자열 변수의 존재. 괜찮아. 그래서 당신은 여기에 무엇을해야합니까? 닉. 괜찮아. 그래서 우리는 여기에 닉의 이름이있다. 그래서 이것은 무엇을 말 그대로입니다 반환 된 나에게, 그렇게하여 GetString에 의해, 말하자면. 나는에 가고, 지금,하고 좌변을 실행할 나는 단순히 표현의 오늘의 목적, 닉에 대 한 아래로 복사합니다. 그래서 지금은 변수가 호출, 닉의 명칭 저장,이야. 이미 물려했습니다 printf와, 이전 인수. 그러나 우리의 세 번째이자 마지막 줄에 코드는 실제로 손의 printf에있다 조금 different-- 무엇인가 "안녕, % s의,"백 슬래시 명. 그리고 마지막 줄은 내가 갈거야 난 지난 일을 send--하기 지금 적어 것, 이것이다. 그래서 두 줄의 코드, 또는 코드의 마지막 줄이 아니라, 두 inputs--에 대한 호출 일이, 2 개의이. 우리의 printf 함수의 경우 이렇게 지금 입력으로이 걸릴 수 있습니다, 내가 당신을 위해 화면을 취소 할 수 있습니다. 사실 아니, 당신은 앞서 갈 수 있습니다. 우리는 때문에, 그것을 떠날거야 동일한 프로그램이다. 우리는, 안녕하세요, 닉을 볼 수 있습니다. 괜찮아. 그래서이 꽤 있었다 농구 단지를 통해 이동합니다 쓰고, 주 당신의 안녕하세요, 닉 이름을 지정하고. 그러나 메시지 전달이 간단한 아이디어, 입력 통과 및 출력 수신, 우리가해야 할거야 모델은 정확히 가장 복잡한 기능. 그래서 모두 당신에게 너무 감사합니다. 우리는 사랑스러운 스트레스를 여기 당신을 위해 공. 그리고 우리하여 GetString에 감사합니다 모두와 printf의 자원 봉사자. 고맙습니다. 괜찮아. 여러분 모두에게 감사합니다. 그래서 우리는 얘기를했습니다 지금까지 대부분 문자열에 대한. 그리고는 C 실제로 수 밝혀 몇 가지 다른 데이터 유형을 이해한다. 사실,의​​는하자 여기이 봐. 그래서 C 및 언어를 많이, 문자라는 것을 이해합니다. 문자는 일반적입니다 단일 바이트, 또는 8 비트. 그리고 그것은 하나의 문자를 나타냅니다, 문자, 또는 자본 등 편지, 또는 소문자 또는 느낌표, 또는 문자 당신은에 입력 할 수 있습니다 키보드, 때로는 더. 우리는 또한 수레를 볼 일이. 플로트가 일반적이다 32 비트 값, 또는 4 바이트 다시하기 때문에, 하나의 바이트는 8 비트이다. 따라서 플로트가 부동 소수점 값은, 소수점 뭔가. 그리고 사실, 그게 무슨이다 영화는 말하고 그들은 부동에 대해 언급 할 때 약 소수점 값의 비트 일부 고정 된 수의 실제 수를 나타내는 데 사용된다. 뿐만 아니라 두 배라는 일이있다. 이들은 자바로 존재 당신이 APCS 촬영 한 경우, 더블, 같은 이름 고맙게도 , 제안에 두 번 플로트만큼 큽니다. 아직 실수이다, 그것은 단지 더 많은 비트를 가지고 있는, 더욱 정확합니다 또는 더 큰 숫자를 저장합니다. INT는 간단합니다. 우리는 지난 시간에 대해 이야기했다. 그냥 정수입니다. 그리고 그것은 일반적으로 32이다 비트 또는 4 바이트. 그래서, 만약 당신이,의 지금 보자 32 bits-- 우리가 주 0에 이런 짓을, 만약 당신이 아무리 briefly-- 32 비트, 가장 큰 무엇 당신은 정수로 나타낼 수있는 수? 부여 또는 걸릴? 그것은, 40 억 같다 그리고 우리가하는 경우에만이다 양수 만 표현. 당신은 32 비트를 가지고 있고, 당신이 원하는 경우 뿐만 아니라 음수를 나타내고, 사용자의 범위는 근본적으로, 음수 2000000000 양성에 20 억. 그러나 일반적으로, 우리는 시작합니다 0에서 40 억까지 이동합니다. 만약 정확하게 알 필요하지 않지만 그냥 경우 우리는, 사실,이 볼 수 있습니다 여기에, 작은 계산기를 엽니 다. 나는 32이 수행 할 수 있습니다 그 방법을 정확하게 크다, 얼마나 많은 값을 당신이 할 수있는 32 비트, 나타냅니다. 그리고 약 40 억이다. 그래서 우리는 그 번호를보고하겠습니다 몇 가지 다른 장소에서. 하지만 당신은 더 이상 필요가있는 경우 보다 숫자, 거기의 밝혀 뭔가 오래 오래라고합니다. 그리고 오래 오래입니다 일반적으로 64 비트, 어떤 이 크기의 순서의 의미 INT보다 더 큰. 그래서 난 가장 큰 발음 할 수 없습니다 당신이 나타낼 수있는 수, 그러나 현저하게 커. 지금으로 옆으로, 역사적으로, INT가 32 비트 인 경우, 긴 길이는 64 비트, 어떻게 큰 긴 아닌 오래 오래입니까? 당신은 INT 이상 생각 것 하지만 어쩌면 작은 길이보다 긴 길이, 하지만 실제로 달려있다. 그리고 그것은 하나를 밝혀 너무 좌절감, 특정 시스템에서 코드를 작성과, 입니다 이러한 데이터 형식의 모든 미리 결정된 값을 갖는다. 때로는이 많은 비트를합니다. 때로는 많은 비트를합니다. 그래서 당신이 실제로 알고있다, 때때로, 어떤 하드웨어 당신은에 당신의 소프트웨어를 실행하고 있습니다. 다행히, 다른 언어와 현재 존재하는 다른 데이터 타입, 당신이 더 정확하게 할 수 있습니다. 음, 우리는 문자열을 보았다 우리는, 너무, 부울을 보았다 하지만 사람들은 올 밝혀 단지 CS50 라이브러리. 그래서 사람들은 만들어지는 것이 아니다 C.에 그 대신에, 라는 그 파일에 와서 CS50.h, 그 우리는 결국거야 의 층을 벗겨. 하지만 지금, 그들은 단지이야 추가 데이터 유형. 부울은 참 또는 거짓, 그리고이다 문자열은 일련의 문자입니다, 단어있다. 지금의 printf, 우리는 본 적이있다 자리는 %의 하나입니다. 그리고 당신은, 지금, 할 수 있습니다 이러한 다른 예, 방법에서 추론 당신은 자리를 가질 수 다른 데이터 유형. 예를 들어, 추측을하면 경우 사용하여 하나의 문자를 인쇄하고 싶었다 printf와, 자리 아마 %의 C입니다. 그리고 당신을 인쇄하려면 자리 표시 자 %의 I와 정수입니다. %의 LLD는, 오래 오래 진수 값입니다 그러나 오래 오래, 즉 그 매핑하도록. 부동 그리고 % f를 포인트 값 또는 이중에 대한, 그래서 때때로 그들은 다시 사용할 것 다른 상황에서. 그래서 우리는 확인하고 사용할 것 시간이 지남에 따라 그 중 일부. printf의 및 다른 기능과 지원 타인의 이스케이프 시퀀스, 때때로, 이들은 필요하다. 그래서 백 슬래시 n은 새로운 라인입니다. 백 슬래시 (T)는, 누군가를 수행 자상을 먹고 싶어? 청중 : 탭. 데이비드 J 마란 : 탭. 실제로 싶다면 , 탭을하지 인쇄하기 공간의 고정 된 수 있지만 실제 탭 문자는, 당신은 당신을 때리지 마세요, 키보드의 탭, 키, 일반적으로, 실제로 백 슬래시 (T)를 않습니다. 백 슬래시 큰 따옴표, 내가 왜 그렇게할까요? 권리? 이유는 단지를 입력 할 수 없습니다 내 키보드에 큰 따옴표? 청중 : 그렇지 않으면, 그것의, 때문에 그것이 끝이라고 생각하는 것 의 인쇄 [좋아? 텍스트. ?] 데이비드 J 마란 : 맞아요. 와, 기억 우리 printf의 예, 때를 입력에서의 printf 통과했다, 그 입력 문자열의 왼쪽 그 입력의 오른쪽에 봄은 물론, 큰 따옴표이었다. 자신의 입력은 두 번있는 경우 그 중간에 인용, 컴퓨터 잠재적 수도 에 관해서는, 혼란, 이 따옴표를 수행 중간에 속하는? 그것은 왼쪽 하나에 속해 있습니까? 그것은 바로 하나에 속해 있습니까? 그래서, 당신은 슈퍼를 만들고 싶어 분명, 당신은 큰 따옴표를 백 슬래시 수행 이 탈출이야 있도록, 말하자면,하고 그것은 뭔가 다른으로 융합 아니에요. 그리고, 여기에 몇 가지 다른 사람을 거기에 백 슬래시 R, 작은 따옴표, 0, 그것은 우리뿐만 아니라, 시간이 지남에 볼 수 있습니다. 그리고 지금, 어떤 기능에 대한? 우리가 지금까지 수행 할 수있는 작업 그래서 이 언어로, C, 잘, 우리는 보았다, printf의 물론, 모든 화면과 다른, 여기, 우리가 사용하고 있다고 단지 과정의 처음 몇 주, 때 CS50 라이브러리를 갖추고 있습니다. 그리고 그들은, 그것은 훨씬 쉽게 C는 실제로 사용자의 입력을 얻을 수 있습니다. 그것은 C로 그를 밝혀와 솔직히 몇 가지 언어로, 그것은 할 수있는 목에 실제 고통 프롬프트 사용자 같은 간단한 것을, 자신의 입력을위한 키보드합니다. 그리고 이러한 기능은 쉽게. 그리고 그것은 또한 오류가 전반에 걸쳐 점검, 그렇게 할 때, 즉 수요일 우리에 기억 ,, 다시 시도, 경고를 보았다 나는 협력하지 않았을 때, 나는 단어 대신 숫자를 입력? 우리는 일찍 무거운 일을했습니다 에 사용자가 협력 확인합니다. 그러나이 단지 교육이다 우리가 결국 것이다 바퀴, 신속, 벗어. 요점의 반복에 따라서, 다음, 의 짧은 살펴 보자, 우리는 스크래치에서 함께했던 많은처럼 C의 표준적인 구조 이는 정렬하는 것을 의미한다 의, 회오리 바람 투어가 될, 그냥 그래서 당신은 참조가 당신은 처음에 일을 본 적이있다. 그러나 우리는 실제 코딩에 대해 알아 보겠습니다 이들 빌딩 블록의 일부를 사용한다. 그래서 많은 스크래치처럼, 우리는 문을 좋아했을 때, C로, 우리가해야합니까, 잠깐, 말하거나 printf와 같은뿐만 아니라 기능. 우리는 조건을 표현하려면 C에서, 그것은 정신, 유사, 그 퍼즐 조각에 그 스크래치에이처럼 보였다. 하지만 그 대신, 우리 말 그대로 그냥 경우, 물품. 그리고, 괄호, 우리는 조건을 넣어, 해당 조건이 어디 우리는거야 부울 표현, 다시 전화. 그리고 다시, 이것은 의사의 일종이다. 그리고, 사실, //는 주석이다. 그것은 자신에게 그냥 영어 단어입니다. 그러나 이것은 일반적이다 , 경우, 상태의 구조. 그러나 우리는 콘크리트를 볼 수 있습니다 단지 순간에 예. 당신을 갖고 싶어 도로에서 양방향 포크, 많은처럼 우리는에 우리의 자원 봉사와 함께했던 수요일, 당신은 다른 경우,이있을 수 있습니다. 그리고 당신은 세 번째를하려는 경우 최종 상태, 또는 기본 상황, 당신이 단지 다른 블록을 가질 수 있습니다. 그리고 유사하게, 부울 식으로, 당신이 그들을 함께 할 수있는합니다. 그리고 우리는, 수요일에 보았다 그것은 하나의 앰퍼샌드 아니다, 이것은 더 낮은 수준의 이유로 두하다는 우리는 결국 볼과 함께 플레이합니다. 일을 함께 논리합 2 수직 막대입니다. 미국 키보드에서,이 키는 일반적으로 위의 Shift 키와 키 입력하거나 키를 돌려줍니다. 그리고이 일을 거기에 그 우리는 한 번 또는 두 번, 아마 사용합니다. 그들은 기능적으로 동일 만약 다른 어떤 경우에 당신이 함께 할 수있는, 또 다른 경우, 구성, 그러나 그들은 스위치라는 것입니다. 그들은 매우 다를 수 있지만, 우리는거야 우리의 유통 코드의 일부 참조 미래의 문제 세트, 대부분, 그냥 가끔 예뻐 있다고 전체를 표현하는 방법 조건의 무리, 중괄호를 많이하지 않고도 괄호 및 들여 쓰기의 많은. 그러나 그들은 우리에게 더 이상주지 전원 우리가 이미 가지고있는 것보다. 그리고 지금 루프. 그리고이 하나, 우리는 볼 것이다 더 천천히 조금에서. 그러나, 우리는 이러한 사용을 시작합니다, 특히 이미 익숙한 사람들을 위해. 이 경우 믿을 수 없을만큼, 정식 방법입니다 비밀의 방법은 C에서 루프를 작성하는 이제 스크래치에 루프이었다 매우 간단. 당신은, 영원히, 블록을 가지고있다. 당신은, 반복, 블록이 단지 수는 입력해야합니다. 그리고, 대한 루프, 당신은 할 수 이러한 아이디어를 구현하는 두 하지만 좀 더 기술이다. 하지만 솔직히, 그것은 또한이다 비교적 간단합니다. 당신의 순서를 알게되면 작업, 당신 그대로 단지 값을 연결하려고 무엇을 할 수있는 컴퓨터를 말한다. 그래서 여기에 예입니다. 이 루프입니다, 아주 단순히 하나의 숫자부터 계산 다른 통해. 그냥이기는로 만약하더라도 그것에 아무 이전에 경험하지 이 언어, 어떤 번호 아마에서 계산 시작합니까? 확인, 0. 그리고 나는 당신 때문이다 같은데요 , INT와 나는이 있다는 것을 참조 하는 변수입니다. 그것은 0으로 초기화합니다. 그리고 나중에, 그것은처럼 보이는 우리는 값을 printf의를 통과하고 있습니다. 그리고, 사실, 나는 여기에 약간의 오타했다. 하지만 쉽게 고정입니다. 내가 여기에, 난을에 추가 할 수 있습니다. 우리는 지금의 printf의 존재가 그 자리 값을 통과시켰다. 그리고 통해 카운트 무슨 일이야? 청중 : 50. 50. 49. 데이비드 J 마란 : 49. 그래서 50, 첫눈에 바로 보인다. 그러나, 그것은 밝혀, 될 것입니다 우리가 계속 확인 우리의 조건. 그리고 우리는 한 번 중지거야 나는 더 이상 50 미만이다. 그래서이 루프, 반대로해야 너무 오래 전 50 미만이기 때문에, 실행합니다. 하지만 50, 또는 51이된다 자마자, 또는 더 나쁜, 자동으로 중지해야합니다. 괜찮아. 그래서 실제로 여기에 어떻게됩니까? 그래서 이것의 순서는 루프 작업. 하나, 당신이 가지고있는 초기화 소위. 이 노란색 강조 덩어리 코드의 첫 번째 실행 그것은 효과, 당을 갖는다 수요일, 당신은 아마 상상한다. 이 변수는 내가 그것을라는 만듭니다 그 변수에 저장 값 0. 그래서 이야기를이 시점에서 0이다. 다음 일은 그 이 구조에서 발생, 조건이 확인됩니다 것입니다. 그래서 나는 즉시 확인 나는 50 미만? 그리고 물론, 대답 지금은 그래, 확실히이다. 그래, 난, 0이고, 때문에 그것은 확실히 50 미만이다. 그리고 무슨 일이 있다는 것입니다 코드의 라인이 실행됩니다. 그리고 사실, 만약 다수있다 그 중괄호의 코드 라인, 그들은 모두 하나씩 실행 얻을. 여기에 적용된다 분명히, 인쇄하기 에가는 숫자 I, 0 후 1 다음 2 일. 그런데 왜? 왜이 증가됩니까? 음, 네 번째 것은 그 일이 구문이다 세미콜론 후 실행됩니다. 내가 말하는 속기 방법입니다 ++; I의 값을 가지고, 그것에 추가 1; 다음 주위 다음번 추가 그것은 1; 주위 다음에, 여기에 1을 추가합니다. 그래서 우리는 계속하는 경우, 무슨 일이 일어날 것 다음 나는 않을 것입니다 다시 난을 초기화합니다. 나는 초기화 유지하는 경우 난에 0이 예 때문에 끝이 없을 것 내가 0에 붙어있을 것입니다. 하지만 무슨 일이 일어날 것은 조건이 확인됩니다, 코드 줄이 실행 얻을 것이다, 나는, 증가합니다 조건이 확인됩니다, 코드가 실행 얻을 것이다. 그리고, 다시 자전거를 보관 다시, 다시, I ++ 50까지의 값을 유도한다. 조건은 다음 말한다 50 50 이하? 대답은 물론, 아니하고, 그래서 전체 코드의 실행을 중지합니다. 그리고 당신은 화면에 더 많은 코드가있는 경우 아래로 아래에, 그 다음에 일어날거야. 그것은 이러한 중괄호에서 나타나고 그 후 더 인쇄하고 있습니다. 그래서 폭스 트롯에서 지금 농담, 그 당신은 아마 지금은 이해합니다. 항상 재미있다. 그것은 ㅎ ㅎ처럼 가지, 관류 그리고 당신이 생각하는 당신은해야하지 이 같은 유머에 웃음합니다. 그러나 일부 테이크 아웃이 여기에, 교육적, 너무. 그래서 난 것으로 나타났다 구문의 일부를 누락 또는 폭스 트롯의이 누락 여기 구문의 조각. 우리가 했어, 실종 다른 모든 예에서, 지금까지? 돌아 가기 때문에,이 즉, 다른 뭔가 우리는 머지 않아 다시 올 거 야. 무엇을 누락,하지만? 그래. 청중 : [들림]의 초기화. 데이비드 J 마란 : OK. 그래서 그래. 그래서 실제로,이 음이 is--, 카운트가 초기화됩니다 위까지, 또는 오히려, 위까지 선언했다. 그래서 그 일을하는 또 다른 방법이다. 하지만 한 줄에 비록 유효합니다. 어떻게 여기에 대해? 청중 : 그것은 중괄호인가? 데이비드 J 마란 : 그래. 그래서 중괄호가 누락되었습니다. 그러나이 코드는, 내가 자신의 신용에, 의미, 실제로, 구문 적으로 유효합니다. 그것은 밝혀, 당신은하지 않습니다 중괄호가 필요 당신은 단지 하나의 코드 행이있는 경우 그 당신은 루프의 내부에서 실행하려는. 이제 우리는 항상 클래스와의 우리의 유통의 모든 코드, 중괄호 포함 어쨌든, 단지 명확성을 위하여. 그러나 교과​​서에서 그 실현 온라인 예, 당신은 매우 잘 곱슬 볼 수 있습니다 언젠가 실종 중괄호. 그리고 그 확인을 무엇 만약 당신이 들여 쓰기 의도 한 코드의 단지 하나의 라인이며,하지 잠재적으로 여러 줄의 코드. 괜찮아. 문제에 따라서 관련 부정확는 오버 플로우의 문제입니다 의미에서 그와 마찬가지로, 정수는 그들에게 한계를해야합니까 다만 부동 소수점 값을 같은? 세계 부동 ​​소수점에서 값은, 우리는 따라서 정확하게 할 때때로, 그 후 나쁜 일이 일어날 수있다 우리의 프로그램은 버그 및 오류가 될 수 있습니다. 지금도 정수와, 당신은 문제가 실​​행할 수 있습니다. 이제 정수가 없습니다 소수점이나 뒤에 숫자. 그것은 일반적으로 단지 자연수이다. 그래서 INT와 무엇이 잘못 갈 수 있을까? 나는 INT에 사용하고있는 경우 무슨 일을 갈 수 카운트? 많은 간단 보인다. 그래. 청중 : 만약 수 가져 [들림] 데이비드 J 마란 : 그래. 당신이 그렇게 높은 계산 당신이 경우 어떻게 정말 큰 수를 표현할 수 없습니다. 권리? 어떤 시점에서, 당신은거야 경계를 초과 32 비트 값 또는 64 비트 값. 이제 다시, 어떻게 모르겠어요 64 비트 값을 발음하기, 하지만 32 비트 정수로 알고, 그것이 될 수있는 가장 큰 값, 그것은 단지 긍정적 있다면 값은, 대략 40 억이다. 내가 50 억을 계산하려고한다면, 뭔가 일어날 것입니다. 그러나의 사실, 일어날 수있는, 보자. 정수의 세계에서 오버 플로우, 어디, 어떤 의미에서, 용량 오버플 정수, 어떤 일이 일어날 수 있는가? 그래서 여기 진수 야, 그것은 0으로 후퇴합니다. 그것은 모든 일의, 그리고 자리이다 이, 2의 거듭 제곱은, 그래서 이것은 바이너리입니다. 그래서 이러한 화면 8, 1 비트이다. 그리고 당신이 기억하는 경우 또는 당신은 신속하게 수학을, 어떤 값이 표시되고 여기에 이​​들 8 1 비트? 255. 그리고 당신은 매우 확실하지 않았다하더라도 수학, 당신은 그것을 할 수 있습니다. 아니면 그냥 종류의 수 이유의 그것을 통해, 난 경우, 잠깐 8 비트 값을 나타내는, 나는 256의 값을 가지고, 그러나 처음에는 0이며 난 그냥 알고 가장 큰, 255이 될 것입니다 그리고이 하나있을거야. 그래서이 값으로 1을 추가하려고한다고 가정합니다. 당신은 학년에 무엇을 할 것입니다 학교에 1을 가산하고, 그 때 정말 때문에 적합하지 않습니다 당신은 일을 수행 할 수 있나요? 가는이 숫자는 무엇입니까 당신이 1을 추가하는 경우가 있습니까? 이 0이 될 것입니다. 권리? 더 bits--했고, 경우에 때문에 나는거야 , 가지, 시도 here-- 그것을 입력 우리는 더 많은 비트를했다면 우리 (1)를 추가 여기에 할 수있는, 그리고, 우리는이를 얻을 것. 으악. 우리는 여기에 1 비트 모든 방법이있을 것이다. 그러나 이는 한정된 경우 값이 단지 8 비트의, 그리고는 미리 정해진이다 컴퓨터에 의해, 1 효과적으로 거기있다. 그것은 단지 종류의 절벽에서 떨어진다. 그래서 당신은 255에 1을 추가하는 경우, 어떤 당신은 분명히 값을받을 수 있나요? 0. 그리고 실수로 숫자 때문에, 아마도, 실수, 이처럼 주위 포장 끝. 그렇다면 이것의 의미가 될 수 있습니까? 글쎄, 몇 가지 다른 일이있다. 그래서 하나, 그것은 찾고 결국 않습니다 0 같은 실수, 하지만 당신은 종류의 볼 수 있습니다 심지어 현실 세계에서, 더 나은 또는 더 나쁜, 제한이 아이디어의 표현. 예, 당신의 어떤 누구 이제까지 레고 스타 워즈을했다, 아는 사람 일이 않습니다 동전의 최대 개수 당신은 레고 스타 워즈에서 수집 할 수 있습니다? 에 기초한 추측을 가지고 오늘의 주요 질문. 그것은 256 또는 255보다 더 큰. 그것은 40 억이다. 그래서 그것은 밝혀,과 일부 people--이있다 일부 인터넷 검색을 확인 마지막 night-- 40 억 금화를 입수했습니다, 또는 레고 스타 워즈에서 이것 저것. 분명히 있지만, 거기에 방법은 게임을 속여, 버그의보고와 기능이있다, 그 다음을 수행 할 수 있습니다 단지 많은 포인트를 많이 적립. 그러나 가장 큰 수를 값에 따라 누군가 내가이 스크린 샷에 온라인 발견, 실제로 40 억이다. 이제 그 이유는 무엇입니까? 그것은 정확하게 40 억의 아마 누군가가 결정하기 때문에, 사람이 게임을 작성했다, 그들이 40 억을 수행 할 수 있다는 것을, 뭔가, 뭔가, 뭔가, 값처럼 나는 올려 계산기와 이전,하지만 그것은 인간에 대한 조금 청소기의 최대 수 대답 coins-- 또는 스터드, 그들은 당신 것을 them-- 전화로 수집 할 수있는 40 억이다. 그리고, 이것은 왜? 어떻게 레고 게임이다 카운터를 구현 즉, 추적하는 데있어 당신은 동전의 수? 그들은 무엇을 사용하고? 청중 : 그것은 중지 40 억 후에 계산. 데이비드 J 마란 : 그것은 중지 40 억 후에 계산, 어떤 당신이 할 수 있음을 의미 프로그래머로, 추론, 그들은 아마 걸 32 비트 정수를 사용하여. 프로그래머처럼 말 그대로 단지 입력 된, INT, 자신의 코드에서, 그리고 그 변수의 유형이다 그 그들은 다른 사람의 코드를 저장하는 데 사용하고 있습니다. 그래서 다른 양상을있다 제한 이러한 종류의. 그래서 나는이 game--을 연주 해본 적이 없어 나는 역사에 위로 읽고 있었다 much--으로 만에 확인 문명의 원래 버전 당신은 분명히 각각의 상호 작용 다른과 전쟁을하거나 평화를 가질 수 있습니다, 간디는 하나 있어야했다 가장 평화로운 자, 나는 먼저, 이해 문명의 버전. 사실, 1 내지 10의 스케일, 그의 공격성은 1이었다. 그래서 아무리 약간 공격적, 분명히. 그러나 어떤 시점에서, 당신은 분명히 있습니다 해당 지역에서 민주주의를 설치합니다. 그리고 당신은 민주주의를 설치하는 경우 게임의 버전으로, 다음 침략 수준은 내려갑니다. 그것은 좋은 일이다. 사람들은 더 조용하다 분명히, 그 상황에서. 그러나 분명히, 누군가가했다 , 만약, 조건이없는 코드의 원래 버전. 그래서 간디의 침략 수준은 갔다 (1) 양, 마이너스 2, 1 음에, 하지만 게임은하지 않습니다 음수를 이해합니다. 그래서 일어난 간디의 침략이었다 레벨 1, 음극에, 0, 1에서 갔다 효과 있던 되고 주위에 포장 가장 공격적인 문자 게임에서 255의 값으로, 1 내지 10의 스케일. 그리고 그 이후,이되었습니다 이 게임의 더 화신, 그들은으로 유지했습니다 부활절 달걀의 종류, 간디는 분명히입니다 그래서 정말 공격적. 그러나의 결과였다 아주 간단한 프로그래밍 오류 게임의 초기 버전. 이제 더 방해하고, 더 최근에, 보잉 787 있는 것으로 기록되었다 디바이스의 버그가 아닌 종류 당신은 특히 버그를 갖고 싶어. 그리고 증상이 있음을 나는 읽을 것 여기에 온라인 기사에서, 이, 모델 787 비행기이었다 그는 지속적으로 전원을 끈 248일 모든 잃을 수있다 교류, AC, 때문에 전력, 발전기 제어 장치, GCUs, 동시에 절대 안전 모드로 전환. 그래서이 발행 경고했다 이 문제는 발견되었을 때. 이 조건은 발생 소프트웨어 카운터에 의해, , GCUs 내부 그래서 정수 또는 변수, 248 후 그 뜻 오버 플로우 연속 전력의 일. 보잉의 과정에 GCU 소프트웨어 업그레이드를 개발하는 안전하지 않은 상태를 해결합니다. 미사일 같은 많은 시나리오에있어서, 그들은 변수의 어떤 종류가 있었다 즉, 카운팅하고, 카운팅 된 및 계산하지만, 점차 넘쳐 그 기능의 경계 마찬가지로 지긋 지긋한 비행기를했다 변수 오버 플로우가 실행의 충분한 시간 후. 그리고 혀 -에 - 뺨 방법 이 문제를 해결 작업 진정으로, 재부팅, 비행기의 모든를하다 메모리가 지워 가도록 (듯이) 2백47일, 그리고 변수는 0으로 돌아갑니다. 그러나 실현이 매우 인 소프트웨어의 큰 화신, 그러나 우리는 애플에 대해 듣고, 특히 자동차로가는 운영 체제, 구글에서 자동차를자가 운전 및 소프트웨어의 화신의 수 우리의 일상 생활, 텔레비전에서 시계, 그리고 더 많은, 소프트웨어에 의해 둘러싸여 실현, 이는 모두가 우리 인간에 의해 작성되었습니다. 그리고 우리 모두가 곧 발견 할 것이다로서, 아주 쉽고 아주 전형적인이다 소프트웨어를 작성할 때 실수를 할 수 있습니다. 그리고 당신이 그들을 잡을하지 않는 경우, 나쁜 일이 발생할 수 있습니다. 지금 때때로, 일부 재미있는 일들이 일어날 수있다 또는 적어도 때로는 우리 일부 불량을 기대하는 것을 알고있다. 그래서 0 등급에서 0으로 나눈 학교는 일반적으로 나쁜 일입니다. 그것은 정의입니다. 그리고 그것은 out-- 켜지고의가 있는지 확인하자 이 작업을 선택할 수 있습니다 내 마이크는 애플을 up-- 최근에 몇 가지 재미를했다. 그래서 나는 여기에 아이폰을 가지고있다. 나는 시리에게 말을 물어 갈거야 나에게 0으로 나눈 0에 대한 답을 제공합니다. 0 0 무엇을 나누어 져? SIRI : 0을 가지고 상상 쿠키는, 당신은 균등하게 분할 0 친구들 사이. 각 사람은 얼마나 많은 쿠키를 얻을 수 있습니까? 참조? 그것은 이해가되지 않습니다. 그리고 쿠키 몬스터는 슬픈 어떤 쿠키가 없는지 확인합니다. 그리고 당신은 슬픈 당신은 친구가 없습니다. 데이비드 J 마란 : 그것은 독이 가지입니다. 그래서 그냥 거기에 무슨 말을했는지입니다. 그것은이 정의되어 있지 않은 것, 부정의, 실제로, 많은 프로그래밍 언어 또는, 정말, 컴파일러는 것 때 프로그램에서, 감지, 0에서 0을 분할하려고합니다. 이 생각보다 재​​미있다 그 분명히, 쿠키 몬스터 요즘 트위터에 있습니다. 그리고 그는 이것으로, 이것에 대답, 이는 절대적으로 사랑 스럽다. 하지만 이제에 대해 간략히 살펴 보겠습니다 다른 구조의 커플 다음이 중 일부를 넣어 코드는 좋은 방법으로, 사용할 수 있습니다. 그래서 외에 밝혀 루프, 거기에 뭔가 것으로, while 루프를 호출 다른 외모와 구현 조금 differently--과 우리는 결국 examples-- 볼 수 있습니다 하지만 어떤 의미에서, 그것 때문에 간단 당신이 초기화하는 것을 허용하지 않으며, 루프의 경계 내에서 업데이트 할 수 있습니다. 당신은 아직도 그것을 구현할 수 있습니다. 그래서 당신은 똑같은 일을 할 수있다 while 루프와 for 루프와 같이, 그러나 당신의 구문, ultimately-- 우리는 결국 겠지만 see-- 다른 될 것입니다. DO 루프 동안도있다한다 실제로 약간 다릅니다 그 반면에 대한 루프 항상 while 루프 경우, 먼저 자신의 상태를 확인 당신은 바닥에이 일의 상단을 읽고 이 것처럼 일종의 보인다 그것의 마지막 때문에 그것의 상태를 확인 코드의 진정한 마지막 줄. 그리고 실제로, 그 유용 할 것 우리가 쓰기 특정 프로그램에, 그냥 맹목적으로 뭔가를하려는 경우 결국 상태를 확인합니다. 즉, 반드시 나쁜 것은 아니다. 우리가 변수를 원하는 경우에, 우리는 할 수있다 그것은 다른 몇 가지 방법입니다. 그리고 우리는 폭스 트롯에서 본 만화, 그 일을하는 한 가지 방법, 여기서 당신은 당신의 변수를 선언, INT 카운터 세미콜론 같은, 그리고 아마 다음을 later-- 라인, 어쩌면 10 라인 later-- 당신은 실제로 그것을 초기화합니다. 코드 그래서이 2 선 int 형의 변수를 선언 이 제공되도록하고, 카운터를 호출 나를 충분히 비트는 int를 개최합니다. 다음 결국, 그것을 둔다 그 변수에 값 0. 그것은에 0과 1을 정렬 패턴, 우리가 지난 주부터 알고, 우리가 0으로 알고 수를 나타냅니다. 아니면 솔직히,이 많은 작업을 수행 할 수 있습니다 더 간결하게, 그냥이를 좋아한다. 이제 우리는 또한이 함수를 호출 할 수있는 능력. 그리고 사실, 여기에 2 줄의 프로그램 또는 그 발췌, 그 사실은 우리를 수 코드를 작성하는 user--에서 문자열을 가져옵니다 많은 우리의 자원 봉사 순간 같은 ago-- 결과에 저장 이름라는 변수, 그리고 then-- 많은 우리의 자원 봉사와 같은 이 값 밖으로 printf-- 지문 두 개의 인수를 전달하여, 문자열, 변수 다음에 이름, 그 자체라고. 그럼 전에 살펴 보자 우리는 거기에 다시 마리오에 올 이 지금, 몇 가지 예에. 나는 앞서 열린 갈거야 최대의 기능 - 0.c, 가정 해 봅시다. 그리고 언제나처럼,이 코드는 물론 웹 사이트에서 사용할 수, 그래서 당신은에 따라 재생할 수 있습니다 가정 및 것은 나중에 봐. 그것의에서 그러나 여기 프로그램입니다 라인 (17)에서 22 본질,. 주요 프로그램입니다 프로그램은 항상 시작하는 것입니다. 이 프로그램은 분명히 것입니다 대장을 당신의 이름을 인쇄합니다. 그런 다음,하여 GetString를 호출하는거야 처럼 우리는 우리의 자원 봉사자들과 함께했다. 그리고 나서,이 흥미 롭다 그것은 PrintName를 호출하는 것입니다. 그것은 거기, 모든 시간을 밝혀 PrintName라는 함수가 될 것으로 보인다. 그 사람의 이름을 인쇄합니다. 우리는에서의 printf를 사용할 필요가 없었다 작년, PrintName이있다. 그러나 그것은 오해의 소지 PrintName는하지 않기 때문에 C. 사람들은하지 않았다 함께 40 또는 50 년 전을 발명, 나는 대신했다. 그리고 사실, 나는 이동하면 또한, 통지 아래로 난 내 자신을 작성하는 방법 C의 기능을 우리는 결국거야 우리가 말을 계속 이유를 설명, 무효, 몇 곳에서, 하지만 오늘,하자 이름 만 보면. 라인 (24)에, 당신은 원하는 경우 자신의 함수를 만들 당신은 문자 그대로 쓰기 함수의 이름입니다. 나는 PrintName를 선택했다. 괄호에서 다음 지정 어떤 종류의 입력, 그리고 얼마나 많은 당신 이 기능이 먹고 싶어. 이 경우, 내가 먹고 싶어 1 변수라는 이름, 그것은 될 것 형, 문자열, 그래서거야 일부 문자 순서합니다. 그리고,이 program-- 스크래치처럼 많은, 사용자 지정 퍼즐을 가질 수 pieces-- 이 사용자 지정 동작을해야 할 것입니다. 그것은의 printf를 호출하는거야 에 전달 안녕하세요, 자리, 후 플러그 것 어떤 사용자에 불렀다. 그래서이의 예입니다 무엇 컴퓨터 과학자 것 호출 추상화 또는 기능 단지이다 분해, 제 말은 경우인가의 멋진 방법 당신이 높은 수준의 아이디어를 좋아한다 같은 나는 기능을 원하는 당신은 절대적으로, 누군가의 이름을 인쇄 말 그대로 다음의 printf를 작성하고 있습니다 원하는 인수를 전달, 프로그램이 작동합니다, 그것은 수요일부터 가지고있다. 하지만 당신은 떨어져 추상적으로 시작할 수 있습니다 이름을 인쇄하는 개념. 당신은 그것을 이름을 부여 할 수 있습니다, PrintName,이 같은 주 0에서 레이어링의 생각이다. 이제부터, 나는 당신이 알 필요가 없습니다 또는 PrintName 구현 방법 신경. 네, 그것은 아마, printf의 사용 사람이 사용하는 것을 알고,하지 않는 이유는 무엇입니까? 누가 무슨 상관이 야? 지금은 여기에 이​​야기하고, 대신 아래로 여기. 그리고 실제로, 우리의 프로그램은 얻을로 고급하고 세련된, 당연히 우리는 계속 복용거야 낮은 수준의 퍼즐 조각이 존재한다는 것을. 우리는 그들을 썼다 때문에 또는 다른 사람이 그렇게했다 우리는 그 위에 구축 할 수있다. 의이 살펴 보자 변형, 하나를 작동합니다. 그래서이 사람은 조금 더 고급하지만 밝혀 CS50의 라이브러리에있는 그, 단지의 getInt 기능이있다. 우리는에, 년 전, 생각하지 않았다 GetPositiveInt 기능을 구현한다. 그리고 그건 좀 짜증나 경우 때문에 너희들은 프로그램 특징을 작성 당신은 긍정적 싶어 사용자로부터의 정수, 당신은 절대적으로의 getInt를 사용할 수 있습니다. 그리고 당신은 절대적으로 확인할 수 있습니다 조건 어쩌면 루프 그 INT가 크면 0보다 것은 사용자에 소리 그 또는 그녀는 제공하지 않는 경우 당신 양수. 그러나이 해 만들어 보자 건물은, 자신을 차단, 사용자 정의 스크래치 조각, 당신이됩니다. 나는 프로그램을거야 여기에 궁극적으로, 나는 호출 할 수 있도록하려면 GetPositiveInt, 내가되고 싶어 그 INT는 무엇이든 인쇄 할 수. 그러나 지금은 멀리 추출된다. 그것은 바로 높은 수준의 주어진 것 그것은 무엇을 말한다 이름, 이 때문에 멋진 인 읽기가 지금 매우 직관적. 내가 상관 할 경우 어떤 일이 아래의 후드는, 저를 아래로 스크롤 할 수 있습니다. 그리고 그것은 협박 약간의 처음에, 특히 이 첫 번째 프로그램 인 경우, 하지만 이제 살펴 보자. 나는 더 이상 무효, 말없는거야 이 기능을 밝혀 때문에, 많은하여 GetString처럼, 수 나에게 값을 반환합니다. 그들은 단지가 없습니다 화면에 인쇄하려면 그들은 실제로 손으로 수 날 다시 뭔가. 그리고 PrintName 전에 반면, 난 아무것도 다시 필요하지 않았다. 난의 부작용을 필요 뭔가 화면에 표시 그러나 나는 인간을 필요로하지 않았다 나에게 뭔가를 다시 손에. 여기에, GetPositiveInt와, 의 getInt와 같은, 내가 다시 뭔가를 건네되고 싶어요. 그래서 난, 무효하지 말인지 라인 23 만 INT에, 이는 말한다,이 기능 내가 쓰고 있음, GetPositiveInt가 가고이라고 정수가 아닌 아무것도 나를 다시 손, 무효 없습니다. 한편,이 더 걸릴 것없는 것 입력은, 그래서, 가지, 그것을 반대했습니다. 나는 GetPositiveInt 하나를 포기하지 않을거야 입력, 나는 그것이 나에게 출력을주고 싶다. 그리고 이제 어떻게? 그래서 여기에 내가 변수를 선언 할 수있는 방법이다. 나는, 루프 외부에서 일을했습니다 우리는 결국 볼 수 있습니다 이유로, 그러나 이것은 단지 제공 나 32 비트라는, N, 나는 미리 결정했습니다 그 정수를 저장합니다. 그리고 여기, 구조하는 동안 수행하는 것이이다 유용하고 그 이유이다. 말 그대로 이렇게, n은 1보다 작을 때. 그럼 어떻게되는지 보자. 나는, 제발 인쇄 나에게 긍정적 INT를 제공합니다. 나는 그 CS50의 사용, int를 얻을 기능과 N에 저장된다. 그리고, 코드의 어떤 라인 아마 논리적으로, 다음에 실행됩니다? 어느 줄 수? 그래, 그래서 31. 당신이 때까지 당신이 모르는 것 말 또는 정렬을 추론하고, 하지만 그건 사실입니다. 그것은 위에서 아래로 간다 다음 반복 유지합니다. 나는 수, 말에 입력 한 경우에 따라서 1 음 1 음 n보다 작은? 그래. 1 네가티브 1 미만이기 때문이다. 그래서 어떤 일이 일어날 것인가? 나는이 작업을 수행하는거야 n이 1보다 작은 반면, 그래서 나는 다시 라인 (28)에 갈거야. 그리고 각 time--과의는이 항아리 실행하자 기능 1 컴파일 할 수 있도록, 지금은 기능 1을 슬래시 점. 내가 부정적인 일을 입력하면, 그건 나에게 고함을 유지하는 것 나는 각 있기 때문에 협력까지 내 입력의 1 미만 그것은 1 미만 동안이라면 나는이 일을 계속하겠습니다. 드디어 50처럼에게 번호를주는 경우에, 다행히도, 그것은 50 감사 말했다. 왜? N은 이상일 때문에 자마자 1, 나는,이 루프에 갇혀 점점 중지 이 새로운 키워드 오늘, 반환은, 문자 그대로 않습니다. 그래서 난 그냥에서 구현했습니다 감각에서 getString에 해당하는, 어디 다시 나눠주고있어 누구든지, 어떤 값을 저를 사용하고 있습니다. 그럴 필요는 없다 문자열, 그것은 INT이다. 빠른, 그래서 간단한 예,하지만 우리는 곧거야 좀 더 정교한 참조 여전히 버전. 사실, 이제 살펴 보자 return.c라고 숫자 하나. 그리고이 것은 사실이다 조금 더 간단. 그래서이 프로그램의 목적에 life--의 컴파일하고 실행하자, 그래서 점, 반환을 슬래시, return-- 통지 프로그램은 단순히 2 값 큐브. 그것은, 그것은 하드 꽤 바보있어 코드는, 어떤 입력을하지 않고, 그러나 다른을 입증하지 나 자신을 작성한 기능. 그래서 여기, 내가 선언 한 변수, int 타입, X라는 숫자 2와 동일, 완전히 임의의. 이것은 단지 일부 솜 털 인쇄입니다. 이는 X가 말한다 지금과 같은 예, 큐빙 점 점 점. 그리고 마법은 라인 (21)에 분명히있다. 나는, 큐브라는 함수를 호출하고있어, 나는 그에게 종이를 나눠주고있어 에 쓰여진 숫자 2와, 어떤 값을 수학적으로, 나는 그것을 벗어나고 싶어? 그냥 전성 검사로? 8. 권리? 나는 2는 2, 다시 네모 반듯한 원하는 3의 힘, 그래서 8 백. 어디 큐브 구현? 음, 여기에 아래로 구현있어주의. 그리고 직전처럼, 논리적으로, 심지어 구문은 아마도하지만 당신의 많은 아주 새로운, 나는이 기능을 원하는 한 장을 날 다시 손 그것에 INT 종이. 그래서 INT,이 이름은 임의적이다 하지만 편리 큐브했다. 그것에 입력의 n은 즉, 그래서 정수 입력 나는 번호를 전달 할 수있는 방법 용지에 2. 그리고 그것은 C 지원 밝혀 수학은, 그래서 당신은, 시간에 대한 X의의가 없습니다 당신은 별표 (*)를 사용 곱셈. 그리고이 n 배 n 번을 반환 단순히 승값 N이다. 그렇다면 우리는이 모두와 함께가는거야? 이것은 확실히이다 회오리 바람 투어, 안심, 그 슈퍼 섹션 및 문제에, 1 세트 당신을 걸었다됩니다 이 모든 더욱. 그리고 문제 세트 1, 우리는 전환합니다 스크래치의 그래픽 세계에서 뭔가 더 명령 행 C에서 그러나 우리는 영감을 그릴 것 이 여기에 게임에서 작년, 상기에서 C와의 표준 버전을 사용 P 세트 당신은 마리오의 피라미드를 구현합니다. 그리고의 해커 판에 P 세트,​​ 당신이 그렇게 선출하도록 선택하는 경우, 당신은 조금 더를 구현하는 것 두 개의 피크 피라미드 도전. 당신은 또한을 구현합니다 알고리즘, 욕심 알고리즘. 그것은 거기의 밝혀 몇 가지 흥미로운 논리 과정 뒤에 자기앞 스테이션을 실행 실제로 전달 누군가 다시 변경. 공정의 알고리즘이있다 간단, 그건 당신도 수도 처음 읽을 때 직관적으로 파악 그건 ... 그건 내가 항상했습니다 무엇 실현 누군가 일부를 제공 한 모든 시간을 수행 당신은 항상 할 수 있습니다 돈 back-- 수를 최소화 종이 노트 또는 금속 동전 당신은 다시 사용자에게 전달하고있다. 이것은 물론, 설득력 당신은 CVS 나 이것 저것에 가면 때문에, 당신은 손으로 싶지 않아 사람의 전체 무리 또는 동전의 전체 무리. 당신은 가장 적은 원하는 동전, 아마 가능. 마지막으로, 도전 할 것이다 물을 세계에 손 대고 실제로 감사를 얻을 흐름의 속도 사이의 매핑, 의 샤워, 물을 좋아한다, 얼마나 많은 물은 사용됩니다. 그리고 그 안에 암시, 여기에이 클립 될 것입니다, 우리는 들어 오게하는 다만 60초, 그 의 그림 물감 저 유량 샤워 헤드. [비디오 재생] -괜찮아. 나는 여기에 모든 것을 얻었다. 나는 사이클론 F 시리즈를 가지고 히드라, Jetflow, 스톡홀름 Supersteam, 당신은 그것을 이름. - 그리고 당신은 무엇을 권장합니까? - 왜 찾는거야? - 전원 남자. 권력. -처럼 표백제. - 그건 방사선을 위해입니다. - 그건 맞아. 이 무엇인가 - 이제? - 그건 코만도 (450)입니다. 그 하나를 판매하지 않습니다. -하지만 그게 우리가 원하는거야. 그것은 특공대 450입니다. 아니 나를 믿는다. 그것은 오직 서커스에 사용됩니다. 그것은 코끼리를 위해입니다. 아무것도 지불 할께. 제리에 대해 뭐라고? - 그는 그것을 처리 할 수​​ 있습니다. 그는 섬세한입니다. 오 예. [END 재생] 데이비드 J 마란 : 좋아. 즉 CS50에 대한 경우입니다. 우리는 다음 주에 볼 수 있습니다. 스피커 1 :? 스컬리?], [? 이안,?] 지금까지이 아웃트로 프로젝트로, 너희들은 무엇을 때우기? 스피커 2 : 글쎄, 우리가 준 그것은 생각의 다양한 우리는 가장 좋은 방법이라고 생각 이러시면 스피커 3 : 내가 할 수 있습니까? 스피커 2 : 그래. 꼭 사실. 스피커 3 : 그래서 내가 생각하는 우리는 우리의 생각을 요약 할 수 있습니다 하나 word-- 아무것도 outros합니다. 데이비드 J 마란 : 아무것도? 스피커 3 : 아무것도. 데이비드 J 마란 : 그게 무슨 뜻 이죠? 스피커 3 : outros 아무것도하려고합니다. 스피커 2 : 글쎄, 내 말은, 철학, 내 말은, 아무것도 항상 뭔가 없다. 스피커 1 : 그래서 what's-- 전제는 무엇인가? 스피커 3 : 그래서 인생처럼. 그래. 오늘 뭐 했어? 데이비드 J 마란 : 나는 일어나서했다 아침 식사 및 작업을했다. 스피커 3 : 그건 아웃트로입니다. 스피커 2 : 내 말은하지만,하지 말아야 뭔가 짓이야에 그에게 일이 스피커 3 : 아니, 아니, 아니, 아니. 아무 반응이 없습니다. 스피커 1 : 그래서 왜 우리는 지켜보고있다? 스피커 3 : 때문에 그것은 CS50에 대한 아웃트로입니다. 데이비드 J 마란 : 아직.