데이비드 J. 마란 : 그래서이 CS50이다. 그리고 이것은 CS50 자신의 콜튼 오그 덴이었다 좀 더 많은 사람들이 음악은 당신이 할 수 있어요 soundcloud.com/cs50에서 다운로드 할 수 있습니다. 

그래서 오늘은 우리 모두가 더 많은 초점 프로그래밍의 예술에. 우리가 한 부분 그리고 우리가 가지고 지난 주에 떨어져 집중 스크래치에,이이었다 그래픽 기반 프로그래밍 언어입니다. 그리고, 낮은 수준으로 물건을 가지고 전통적인 프로그래밍을 사용 언어 C.로 알려진하지만 도중에, 실현 같은 아이디어가 우리 지난 금요일 이야기 뿐만 아니라이의 재발 언어 C 있지만, 대부분의 다른 모든에서 우리는 이번 학기에 볼 수있는 능력을 가지고 있습니다. 

그래서 우리는이 일을 호출 여기에 무엇을 마지막으로? 이 성명의 대표입니다. 그래서 우리는이 진술했다. 그리고 뭔가를 않습니다. 이 명령어의 그 컴퓨터 또는 스크래치 실행할 수 있습니다. 그리고 이제부터는,의는 시작하자 이 함수 같은 것을 호출 이유로 우리는 곧 보게 될 것이다. 

한편, 우리는 같은 일을 보았다. 그리고 이것들은 일반적으로 구성 무엇으로 알려진? 

청중 : 루프입니다. 

데이비드 J. 마란 : 그래서 루프. 그래서 매우 간단. 그것은 문자 그대로의 말씀한다. 그리고 스크래치에, 당신이 원하는 경우 거기에 더 많은 퍼즐 조각을 밀어 넣는, 조각을 맞게 성장할 것이다. 그리고 우리는 C에서 볼 수 있습니다 그 우리는 같은 일을 할 수 있습니다. 

루프의 다른 유형, 비록 스크래치에 영원히있을 수 있습니다, 또는 수있다 다른 접근 방법. 그러나 이제 더 보자 얼굴 제너럴 모습, 즉, 가능성이 꽤 익숙한 에서 더 일반적으로 반복됩니다. 마크 주커 버그 : 하나 것은 컴퓨터 그 입니다 정말 좋은 명령을 반복합니다. 사람으로, 당신은 얻을 것 정말 지루하면 경우 같은 일을했다 행에서 시간을 많이합니다. 그러나 컴퓨터가 동일한 일을 할 수 수백만 또는 배의 수십억, 지루해하고, 할 수 없습니다 잘하고 실행합니다. 

예를 들어, 그래서 모두를 빌고 싶어요 페이스 북의 생일에 그들에게 이메일을 보내, 그것은 더 이상 나를 걸릴 수 있습니다 세기 실제로 써내는 모든 사람에게 그 모든 이메일. 코드와 몇 줄, 나는 할 수있다 시스템이 모든 사람에게 이메일을 보내 페이스 북은 희망에 그 생일. 그건 그래서 루프가 무엇인지, 왜 그들이있어 가치있는 뭔가 것을 컴퓨터는 아주 잘 할 수 있습니다. 

데이비드 J. 마란 : 그래서 만약 당신은받는 사람 봤는데 CS50의 일부 및 후반의 드롭 박스의 공간 그것은 정확하게 실제로 무엇을 우리 확실히 그런 코드를 사용하여 수행. 우리는 본질적으로 큰이 스프레드 시트에있는 사람들은 입력 된 자신의 이름과 이메일 주소. 그리고 우리는 코드의 작은 비트를 썼다 해당 주소를 반복 할 수 있습니다 과에 고유 한 주소를 뱉어 경우 사람이 여러 번 제출했다. 그리고 그 후, 우리는을 보내 CS50의 봇에서 이메일을 자동화, 쿠폰 코드를 포함. 

이제 우리는 보았다 이 마지막을 구성. 그리고 이것은 특정입니다 무엇의 예? 그래, 좋아, 부울 식입니다. 그리고 형상을 의미 그뿐만 아니라 캡처. 이러한 모든 질문 true 또는 스크래치 거짓 형성 이 같은 작은 선물을 찾을 것입니다. 그리고 우리는이 부울 식 호출합니다. 그것은 참으로 참 또는 거짓 없습니다, 예 또는 아니오. 이 질문에 대답하는 방법입니다. 

그리고 그 사이에 이러한 부울을 사용할 수 있습니다 구조의 내부 표현 어떤 이들처럼 물론 조건은 또는 지점, 속담 도로에 포크. 그리고 그들은뿐만 아니라 볼 수 있습니다 이와 같이, 그러나 또한 수 그들과 함께 else들 관련있다. 그리고 당신은 실제로 세 가지 방법이 있습니다 도로에 포크 나 사 방식 포크 도로에서, 단순히에 의해 이 일을 중첩, 당신이 스크래치에 볼 수 있습니다로 당신은 이미하지 않은 경우. 그리고 당신은뿐만 아니라 C에서 할 수있다. 

의 다른 일반 의사를 보자 뿐만 아니라, alumnist 보는 사람 다른 접근 방법을 제시 할 수 조건이라고이 일에. 

빌 게이츠 : 사람들이 만들 결정 매일. 예를 들어, 당신은 당신이 외부에 가기 전에 가지라고 if 문이 그 다음 비가 경우 I 내 재킷을 얻을 필요가있다. 그리고 컴퓨터는 한 번 놀라운 , 진술, 그런 종류의 결정 이들은 안정적으로 실행할 수 있다는 믿을 수없는 속도로 그 것. 그리고 컴퓨터 프로그램이 정말로 수학 및 일부 약간입니다 문 위치하는 경우 결정이 이루어됩니다. 

데이비드 J. 마란 : 그래서 아시다시피, 그것은이었다 빌 게이츠 같은 사람, 폴 알렌 등 진정으로 개막하는 퍼스널 컴퓨터, 소위 혁명 몇 년 전. 우리가 다이빙을하기 전에 내가 생각 일부 문서 관리로, 우리는 앨버 커키에서 이야기를 연관 것 자연사의 뉴 멕시코 박물관 과학 여기서 빌 게이츠의 일부 ' 와 폴 알렌의 최초의 이야기 우리가 지금 얼마나 회상 아르 오늘날의 PC와 Mac 및 더 많은 것. 이를 위해, 그러나, 우리는이 자원 봉사자가 필요합니다 누가 아주 좋은 나레이션 목소리가 스크립트를 소리내어 읽을 수 있습니다. 

좋아, 어떻게 거기에 대한 정보가 포함되어 있습니다. 올라 와요. 어떻게 앞에 여기에 대한 정보가 포함되어 있습니다. 이리 오게. 여기에 귀하의 장소를 가져 가라. 너희들이 올 때, 부부 관리 발표. 절편, 프로세스 섹션을 선택하는, 이 시작됩니다 금요일, 수요일. 그에 대한 자세한이오고 강의에서 수요일. 

슈퍼 섹션 한편, 아르 우리가 다음 주에 제공 뭔가 이로써 전체 클래스에 초대합니다 상당히 큰 규모에 참여 섹션, 더 편안 하나, 하나 덜 편안하게. 그리고 우리는 특정 사항을 발표 할 예정이다 그뿐만 아니라, 이번 주. 

한편 섹션, 자신이 시작됩니다 주 코스의 3 분의 제로 인덱스, 어떤 사람들은 몇 주 의미 아웃. 그래서 걱정하지. 아직 놓친하지 않은 그 라인을 따라 아무것도. 한편 그 동안 경우 행정적으로 질문이, 자신과 데본과 게이브 이메일 롭 여기이 주소에서. 

마지막으로, 문제는 설정 0 밖으로 물론이다. 당신은 그것을 눈치 챘을 것이다 코스의 웹 사이트에서 찾아 볼 수 있습니다. 그것은 당신을 제공해야한다 질문에 대한 모든 대답 당신은 길을 따라있을 수 있습니다 문제 세트와 함께 시작할 수 있습니다. 하지만 당신은 자신을 발견하는 경우 도움의 손길을 필요로하는, 꼭 근무 시간에 참석, 월요일, 화요일, 수요일, 목요일 저녁에 이번 주 네 식당에서. 내역 거기에 해당 URL을 참조하십시오 근무 시간이 있어야한다 어디. 

이제 만나요 우리 이 손님 오늘 여기. 당신의 이름은 무엇입니까? 

JAY PAUL : 제이 폴. 

데이비드 J. 마란 : 제이 폴, 만나서 반갑습니다. 

히카리 : 히카리. 

데이비드 J. 마란 : 히카리? 

히카리 : 히카리. 

데이비드 J. 마란 : 히카리. 뿐만 아니라 당신을 만나서 반갑습니다. 제이 바울과 히카리에있는 이러한 음악에 대한 그들의 앞에 나는 인쇄이 스크립트를 의미합니다 뉴 멕시코에서 오늘 아침에 밖으로 자연 과학의 역사와 박물관. 그리고 내가 생각했던 나는 오버 헤드에 할 것 당신의 암송을 동반한다 스크립트와이 역사의 시각적 이미지, 아니 놀라움과 함께. 

그리고 사전에 무슨 짓을했는지 스크립트에 사전 강조한다 읽어야 할 것, 당신은 무엇을 읽어야합니다. 그리고 우리는 본질적으로거야 단지 다른 단락. 당신이 모르는 것처럼 그래서 많아요 영어 수업 시간에 했어요. 정말 관객을 강요하는 것 여기에 당신의 이야기를 믿고있다. 할까요? 그래서 여기에 이​​야기는 우리를 가지고있다 BASIC은 그것을 캠브리지에서 시작. 

JAY PAUL : 그것은 겨울, 1974했다, 캠브리지, 매사 추세 츠 여기서 겨울은 추울 수 있습니다. 수염, 긴 머리 대학 중퇴라는 폴 알렌 (Paul Allen)은 하버드에서 drudging했다 그의 생각에 흡수 광장. 당시 그의 주요 집착 어떻게 그의 친구, 빌 게이츠를 얻을 수 있었다 학교를 그만하고 이동 그와 함께 비즈니스에. HIKARI : 두 사람은 이미 갔다 비즈니스 벤처 기업의 숫자를 통해 함께 레이크 사이드에서 시작 시애틀 곳의 학교 그들은 무료 컴퓨터 시간에 지불했다 현지 시간 PDP-10 컴퓨터를 테스트 회사를 공유. 가장 최근의 계획은 종료 있었다 학교와는 소프트웨어 회사를 형성한다. 알렌은 워싱턴을 떠났다 주립 대학. 그러나 마지막 순간, 게이츠 하버드을 고수하기로 결정했다. 

JAY PAUL : 그 날, 하버드를 건너 광장, 알렌, 1 월 발견 인기 전자의 1975 문제 지구 정지 헤드 라인과 함께, 세계 최초의 미니 컴퓨터 키트 상용 모델을 라이벌. 제목이었다 아래에 작은 상자의 사진 조명과 스위치로 장식. 그것은 8800 MITS Altair의 부름을 받았다. 그리고 알렌이 있었다 알고있는 것을 그는 찾고 있었다. 

히카리는 : 토론의 일이 따랐다. 앨런과 게이츠 이해 알테어의 중요성. 그들은 종종 이야기했다 마이크로 프로세서에 대한 무엇을보고 기다리고 있었다 그들과 함께 할 것입니다. 이제 미니 컴퓨터 키트에 있었다 인기있는 전자 제품의 커버. 그것은 분명히 아직 소프트웨어 없었다. 그들은의 나라를 상상 프로그래머는 MITS에 내림차순. 그래서 그들은, 에드 로버츠라는 기업의 선두 의 버전이 주장 BASIC 프로그래밍 언어를 거의 준비 알테어합니다. 그들은하지 않았다. 그리고 로버츠는하지 않았다 알고 있어야합니다. 그는 10 통화에서 일을 얻고 있었다 BASIC은 거의 준비했다 명. 그리고 자신의 스톡 응답 "첫 번째 사람이었다 누가 작업과 함께 보여줍니다 기본 계약을 가져옵니다. " 

JAY PAUL : 게이츠와 앨런 알테어를 본 적이 없었다. 그들은 심지어 본 적이 없었다 인텔 8080 마이크로 프로세서 알테어의 핵심. 그러나 몇 년 앞서 알렌은 프로그램을 작성했다 에뮬레이트 된 메인 프레임 컴퓨터 이전 인텔의 작동 마이크로 프로세서입니다. 그리고 이번에 같은 일을 할 것입니다. 

HIKARI : 인텔 자신의 측면에서 8080 설명서, 알렌에 앉으 하버드 PDP-10 컴퓨터 에뮬레이터와 소프트웨어를 썼다 필요한 도구는 프로그래밍을 할 수 있습니다. 한편 게이츠는 것 정지 클래스와 헌신 BASIC을 설계하는, 모든 트릭을 사용하여 그는 크기를 얻을 수 알고 아래 4킬로바이트 아래. 

JAY PAUL : 앨버 커키 아웃, 에드 로버츠 게이츠로부터 전화를 받았습니다 방법에 대한 자세한 내용은 요청 알테어는 특정 루틴을 처리. 아무도 그 전에 묻지도했다. 그리고 로버트 관심이 생기기 시작했다. 

HIKARI : 발전과 함께 툴 및 설계 준비 게이츠와 앨런은 쓴 PDP-10 코드, 또 다른 하버드 학생 입대, 몬테 다비도프, 수학 루틴을 작성합니다. 의 마지막 밤 후 프로그래밍, 알렌은 비행기에 올라 탔다 MITS에 대한 그들의 기본 제공합니다. 그는 비행기가 걱정 극복 보냈다. 그리고 다시 캠브리지 빌 게이츠는 걱정했다. 그들은 시험을 수행 하였음을 자신의 기본 및 이 에뮬레이터에서 근무했다. 그러나 에뮬레이터가 잘못 이었다면? JAY PAUL : 비행기로 앨버 커키에 접근 알렌 것을 깨달았다 자신의 BASIC, 지금은 깔끔하게 포함 작은 롤 종이 테이프를 것 펀치 별도없는 쓸모없는 프로그램 것을 로더를 호출 어떻게 알테어을 말할 것 종이 테이프의 존재를 읽으려면 텔레타이프 기계에 공급. 그는 자신의 노트북을 꺼내 신속하게 로더 프로그램을 남겼 어셈블리 언어에서, 수동 1과 0으로 그 번역 알테어는 이해할 것이다. 

HIKARI : 알렌이 기다리고 있었다 깨끗하고, 조금, 첨단 기술 회사 비즈니스 정장에 남자에 의해 실행합니다. 로버츠가 만났을 때 그래서 그는 깜짝 놀랐다 그를 공항에서 목장처럼 보이는 손. 로버츠는 놀랐습니다. 그는 하버드 하락하는 경우 비싼 호텔에서 프로그래머, 알렌은 그 고백했다 그는 방을 감당할 수 없었다. 

JAY PAUL : 자체 MITS했다 먼지 스트립 몰에 위치. 어지러워에 내부 워크 벤치는 알테어했다 의 5킬로바이트와로드 메모리 및 케이블에 의해 접속 텔레타이프 기계. 로버츠 수석 엔지니어, 빌 예이츠는 기대에 기다렸다 알렌은 자신의 로더를 토글로 알테어에 프로그램입니다. 텔레타이프는 뽑아로 걷 겠죠 시작 테이프 판독기를 통해 종이 테이프. 그것은 아마도 십오분했다 프로그램을로드합니다. 그런 다음 텔레타이프가 갑자기 인쇄 메모리 프롬프트에서 다음 준비 프롬프트 알렌은 입력 시작 몇 가지 테스트를 명령한다. 모든 사람의 놀랍게도, 소프트웨어는했다. 버그는 물론, 있었다. 그러나 중요한 것은이 일이었다. 

HIKARI : 나중에, 그들의 방법에에 판초의에서 $ 3.00 점심 식사, 말벌이 날아 갔다 픽업의 창 트럭 및 팔에 알렌을 찔렀다. 그러나 그 시점 아무 것도 분위기를 망칠 수있다. 알테어는 이제 기본이 있었다 가정을위한 최초의 상용 소프트웨어 폴 알렌 (Paul Allen)과 빌에 의해 만들어진 컴퓨터, 빌 게이츠는 마이크로 소프트로 사업을하고. 

데이비드 J. 마란 : 많은 우리의이 독자들에게 감사합니다. 

[박수] 

데이비드 J. 마란 : 이제 당신은 당신의 선택의 여지가, 당신이 반짝에, 떠나기 전에 또는 오 dark--의 빛, 잠깐만 기다려, 반짝 잠깐 ... 그리고 어두운 코끼리의 빛 CS50 자신의 쳉 공에서. 히카리는 : 아, 감사합니다. 데이비드 J. 마란 : 모든 바로, 당신이 너무 감사합니다. [박수] 데이비드 J. 마란 : 그래서 실화. 이것은 다음의 모든 말을하는 것입니다 기계 및 용이성가 어떤 우리 지금 사용하고 취 당연, 정말 여기에 단지 몇 걸음을 시작했다 이 실제 극장에서. 그리고 지금 오늘, 당신이하지 한 경우, 이 맥스웰 드워킨, 컴퓨터이며 과학 건물, 또한 모퉁이. 그리고이 2 층 건물은 세 페이지를 끊지 않습니다 원본 소스 코드에서 해당 빌 게이츠와 폴 알렌 (Paul Allen)이 썼다. 사실, 사용하는 경우 당신은 확대 당신은뿐만 아니라 볼 수 있습니다에 자신의 이름 원래 형뿐만 아니라 그들은을 장식 자신의 서명 몇 년 전에 그들은 마지막으로 방문했을 때. 

그러나 특히 강력한 것이었다 이것에 대해 그들이 밖으로 설정 것입니다 하고자하는 프로그램을 작성하는 것이 었습니다 작성하는 다른 사람들을 사용 자신의 프로그램. 당시 모두와 함께 있었다 MITS에 의해 만들어진이 알테어 기계. 그리고 그들이 필요로하는 모든이의 몇 가지 방법이었다 취미와 사람들을 위해 쉽게 그것을 만들기 실제로 프로그램이 방에서 우리처럼 그 반드시 이해없이 어셈블리 코드, 또는 기계 코드, 하나님은 0과 1을 금지하고 있습니다. 우리 프로그래머 등 이 방에있는 우리 표현할 수 있도록하려는 자신을 의사 코드와 같은 훨씬 더 그것은 좀 더 니트는 경우에도 우리가 지난 주 이야기보다 까다 롭고. 우리는 다음과 같이 코드를 작성하지 않으려는, 있는 폴 알렌 (Paul Allen)과 빌 게이츠는 않았다. 우리는 대신 코드를 작성하려는 좀 더 사용자 친화적 보인다. 

이제이 BASIC 언어로 알려져있다. 그리고 줄 번호가 무엇인지 단순히 코드의 줄 번호를하는 데 사용 것을 당신이 쓰고있어. 우리는 심지어 필요가 없습니다 이러한 일을 할 수가 없습니다. 하지만 당신은 여기에서 볼 수 방법 PRINT "안녕하세요 세계" 실제로 아마도 단지를 인쇄 할 것입니다. 그리고 무엇을 빌 바울이 한 일은이었다 다음과 같은 코드를 작성하는 사람들에게 권한을 부여 대신 당신이 살펴 경우 집게 리아 컴퓨터 과학이 같은 코드를 wall--. 

사실, 최근 CS50 기회를 가졌다 교수 해리 루이스와 함께 앉아합니다 컴퓨터 과학 부서에있는 사람 실제로 빌 가르쳐 몇 년 전 빌 게이츠, 그리고 전에 여기 서 발췌의 그 세 페이지를 참조하십시오. 이제 살펴 보자. 

해리 루이스 : 당신이 여기있는 것은입니다 소프트웨어의 초기 부분의 리스팅 빌 게이츠와 폴에 의해 작성 알렌, 마이크로 소프트의 창시자. 그래서 코드는 재미있다 두 가지 이유. 첫째, 그것은되었다 마이크로 소프트의 첫 번째 제품, 에 대한 통역이었다 BASIC 프로그래밍 언어입니다. 둘째,이이었다 첫번째 시도 일 그래서 일반 통역을 만들 수 사람들이 개인용 컴퓨터를 사용할 수 있습니다. 

그래서 빌 게이츠이었다 하버드 학부. 나는 1974 년에 하버드에서 교육을 시작했다. 이 작업은 1975 년에 이루어졌다. 그래서 그의 경력에​​ 빨랐다 일찍 내 경력에서. 실제로 빌 가르쳐 이 때 주변의 코스입니다. 폴 알렌 (Paul Allen)이 아니었다 하버드 학생, 그러나 그는 고등학교 있었다 빌 게이츠의 동급생. 당신은 와서 보면 목록에서, 당신은거야 실제로 세 번째를 찾아 이름, 몬테 다비도프, 누가 게이츠의 동급생이었다 여기 하버드. 

OK, 그래서 여기에 있어요 여기에 흥미로운 코멘트입니다. 그것은 4K에서 제곱근을 삭제할 수 있습니다 "라고 하지만 루프는 여전히 작동해야합니다. " 좋아, 그럼 그게 무슨 뜻인지 것이있다 이 프로그램을 컴파일하는 방법은 두 가지가 있었다. 하나는 버전에서 실행하는 것이 었습니다 이 알테어 컴퓨터의 만의 4K 말을했다 메모리, 메모리 4096 단어. 그러나 큰 버전은 8K 있었다. 그래서 어떤이는 말합니다 것은 그 4K 버전 일부를 삭제했다 코드는 적합 확인합니다. 그리고 것들 중 하나 그 삭제 하죠 제곱근 루틴 될 것이다. 그러나 분명히 루프는 여전히해야에 대한 당신이 아래로 컴파일하는 경우에도 작동 컴퓨터의 단지 4K 버전. 데이비드 J. 마란 : 테마 그래서 하나, 우리는 컴퓨터 과학에서 살펴 보 겠지만, 이 개념은 레이어와 추상화, 정말 어깨에 서 우리 앞에 온 사람들,하지의 빌 게이츠의 일부와는 달리 여기 폴 알렌 (Paul Allen)의 이야기. 그리고 이것이 의미하는 것은 우리가 취할 수 오늘 일이 실제로 부여하는 것이 우리가 코드를 작성하기가 쉽다. 우리는 금요일에 말했듯이 사실 코드는입니다 기술적으로 소스 코드라고도합니다. 그리고 그것은 같은 문법이 영어를하다 그게 더 적절하고 더 잘 정의이다 의사 코드 같은 이상에 대한 어떤 공식적인 정의는 없다. 

그리고 오늘 우리는 무엇을거야 에 초점을하는 것은 소스 코드 즉, 다음과 같이 보이는 틀림없이 첫눈에 완전히 애매한 보인다. 그리고 솔직히,이 방법이 더 심미적이다 복잡한 기본 프로그램보다. 이 모든 프로그램은 수행 리콜, 우리는 무엇을 말 했는가인가? 그냥 "안녕하세요."인쇄 그럼에도 불구하고 우리가 필요로하는 모든 물건을보고 그 아주 간단한 문구를 감싸는합니다. 그러나 모두 오래 전에 이 라인 더 당신에게 더 나은 감각을 만들 것입니다. 

다음과 흐름이다. 우리가 우리의 처분에 필요 소스 같은 코드를 가지고하는 것입니다 우리가 방금 본 코드입니다. 그리고 우리는 새로운 프로그램이 필요 그것을 통해 실행합니다. 우리는 할 수있는 알고리즘이 필요 이와 같이, 소스 코드 변환 오브젝트 코드, 0과 1로. 즉, 어떤 오늘 우리가 배울거야 이 작업을 수행하는 방법을 쓰고있다 소스 코드 맨 위로, 특별한 입력으로 전달 컴파일러로 알려진 프로그램 우리는 오브젝트 코드를 생성하는 것입니다. 어느 단지 멋진 방법입니다 우리가 뭔가를 취할 것 말 즉,이처럼 보이는 전달 컴파일러라는 프로그램으로, 오브젝트 코드를 생성 즉, 다음과 같습니다. 

그래서이 말 그대로 아르 0과 1의 패턴 이해되는 인텔 컴퓨터 요즘, CPU에 의해 해석하는 경우, 컴퓨터의 내부 두뇌 문자 그대로 인쇄됩니다, 아주 간단하게 "안녕하세요." 지금보다 훨씬 더 0과 1을 거기에 이 필요할 수 있습니다 희망합니다. 우리가 구축하고 있기 때문에하지만 그건 복잡성의 좋은 거래에 당연히 우리는 이제부터 걸릴 수 있습니다. 즉, 스마트 많은 사람들 우리에게 멋진 도구를 많이 준 강력한 소프트웨어가 어떤 우리 이제 우리 자신의 프로젝트를 만들 수 있습니다. 

그래서 시작하자. 지난 금요일, 그리고 반면에 문제 설정 0이 주를 들면, 당신이 재생됩니다 이처럼 보이는 세계. 오늘부터와 문제에 대한 다음 주에 코드를 하나 설정 더 작은 보일 것입니다 애매하지만, 기능적이다 가는 동일합니다. 그래서 통지, 최고 스크래치이며, 바닥은 C. 솔직히 스크래치입니다 더 많은 사용자입니다 친절하고 접근. 하지만 당신은 지금 시각적으로 가기 비교한다면 바닥, 1-1 가지있다 간의 일치 퍼즐 조각 및 언어 우리는 놀에 대한 것입니다. 특히, 말 블루 퍼즐 조각까지 최고, 어떤 키워드에 분명히 해당합니다 이 언어 또는 특수 구문 C라고? 청중 : PRINTF. 데이비드 J. 마란 : PRINTF. 즉, 포맷 인쇄를 의미한다. 그리고 그것은 단지 공상이다 C에서의 printf를 말하는 방법 문 또는 기능을 될 것입니다 즉, 화면에 뭔가를 출력합니다. 이 화면에 어떻게 인쇄합니까? 무슨 일이 있어도 내부에 알려 괄호 안에 따옴표,의. 그래서 다시 인정 하듯이, 물건을 많이가있다 당신이 염두에 두어야한다는 것을, 괄호, 따옴표, 세미콜론, 이 모든. 그러나 모든 종류입니다 지점 옆에. 지금은 흥미로운 테이크 아웃 입니다 스크래치의 말 블록 거의 상당하다 C.에서의 printf 문 

한편, 노란색 퍼즐 조각 맨 위로, 녹색 깃발을 클릭하면, 아마도 동일합니다 여기에 키워드 무엇? 청중 : 주. 데이비드 J. 마란 : 그래서 주. 어쩌면 어쩌면 무효, int 형. 그러나 같은 소리의 주요 종류 그것은 중요하고, 참으로입니다. 그래서 녹색 깃발을 클릭하면 다시이며, 퍼즐 조각 그 개막 전체 스크래치 프로그램입니다. 그러나 우리는 지금 될 겁니다 메인으로 알려진이 주,이 기능을 사용하지 않음. 

이제 그 사이에 우리는거야 다음과 같이 일반화. 우리는 전화 기능을 말할 수 있습니다. 그리고 그것은 보일 수 있습니다 구체적으로 다음과 같습니다. 그럼, 루프에 대한? 우리가 변환을 시작하려는 경우 또는 C로 스크래치에 더 많은 번역, 여기에이 일을 분명히 단지 "안녕하세요!"영원히 말한다. 그래서 당신이 연결하는 경우 스크래치에서 고양이와 스크립트, 그냥 자꾸 것 만화 거품의 일종으로, "안녕하세요, 세계, 안녕하세요 안녕하세요 세계, "광고 nauseum, 영원히. 우리는 비슷한 일을하려는 경우 C, 그것은 조금 애매한를 볼 것입니다. 그러나 우리는 동일을 달성 할 수있다 다해는 결국거야, 결과 이 같은 구문 밖으로 찾을 수 있습니다. 나는 다시의 printf를 사용하는거야 때문에 하루의 끝에 나는 인쇄 할 "안녕하세요 세계를." 그리고 나는 분명히을 사용하고 있습니다 영원히없는 키워드. 대신라는 단어입니다. 그러나 단지 의미에서 영어, 동안 가지 루프 또는주기의 어떤 종류를 제안한다. 

그래서 될 일이 C가 사용하는 키워드. 그리고 진정한 동안, 왜 동안 수행 효율적으로 영원히 진정한 의미? 음,,있는 동안은 우리는 곧거야 모두가 더 감사 그 옆이 괄호가 어디 부울 식을 넣을 수 있습니다. 그리고 그와 같은 너무 오래 표현은 사실이 코드, 이 둘 사이의 표시로 중괄호 우리가 전화 할게로, 그냥 또 다시 계속 실행됩니다. 

그래서 사실은 사실이다. 그래서 진정한 의미 동안 영원히 이렇게. 거의 바보 자신을 표현하는 구성. 그러나 영원히에는 없었다 C.의 키워드는 동안 있었다. 그리고 아주 간단한이 있었다 사실 같은 부울 식입니다. 그래서이, 우리는 볼 수 있습니다 동일한 결과를 달성한다. 

어떻게 다른 당신은 루프를 구현할 수? 음, 스크래치에서는 수도 특정 수의 하드 코드 여기에 루프 반복. 그리고 그게 정확히 무엇을 우리 C 버전에서 할 수 있습니다, 우리는 가지고있다 루프 소위. 그리고 여기에 루프는 것입니다 다소 비밀스럽게, 반복하고, 최대의 값을 0에서 뿐만 10 미만. 

스크래치에서 이제 변수. 당신은 없었을 수도 있습니다 행사는 다음을 사용할 수 있습니다. 그러나 일반적으로 점, 무엇을, 변수의 우리는 지난 주 말 했는가? 그게 뭔데? 

청중 : 포인트. 

데이비드 J. 마란은 : 가리려면? 아, 가리 킵니다. OK, 지점을 추적하는 데, 예를 들어, 게임. 또는 더 일반적 일 변수 무엇? 그들의 유틸리티는 무엇입니까? 

청중 : 메모리. 

데이비드 J. 마란 : 네, 메모리. 그것은 무언가를 저장합니다. 그리고 바보 같은 시각 I의 종류 사용 마지막으로이 유리 그릇 같았다. 그리고 우리는 저장하기를 원한다면 변수의 안에 뭔가, 예를 들어 지금 값은 육 때문에이 여기에 여섯 탁구 공입니다. 그것은 기억의 단지 어떤 종류의 용기가 후드 아래 비트 0과 1로 구현하고, 그러나 컴퓨터는 그렇게 발생합니다. 

스크래치에서, 만약 우리 변수를 갖고 싶어 우리는이 같은 오렌지 블록을 사용할 수 있습니다. 우리는 카운터에 전화 할게 이 특정한 경우. 나는 0으로 초기화. 그리고 난 다음 무엇을 그것은? 영원히, 카운터라고하는 경우 당신은 스크래치에 그와 함께 연주 당신은 스크래치를 볼 수 있습니다. 당신이 넣어 고양이 또는 어떤 의상 그 질문에 수를 말하는 것입니다. 

일에 의해 변경 카운터입니다 1 씩 증가 등을들 수있다. 그리고이에 가고 무엇 때문에 어떤에서 계산? 0에서 무한대 전까지, 또는 스크래치 휴식까지, 또는까지 종류의 보고에 흥미를 잃게 그는 실제로 믿을 수있는 방법을 높은. 

그래서 우리가 어떻게 C이 변환 할 수 있습니까? 그것은 조금 애매한를 볼 것입니다. 그러나 다시, 경우 각보고 이 라인의 개별적 일반적으로 라인업 그들은 종류. 그래서 분명히에 가고하는 int C.에서 특별한 의미를 갖는다 우리는 다시 볼 수 있습니다. 옆으로는 정수를 의미한다. 그래서 그냥 번호를 의미한다. 그래서 유형이다 내가 원하는 유리 그릇, 한 즉, 번호를 저장할 수 있습니다 탁구 공을 Ping 할. 그리고 등호를 사용하는거야 그것을 0의 값이 할당합니다. 그래서 꽤 세트처럼 카운터 0하지만, C.에서 

한편, 진정한 동안 그였다 해당 물론, 영원히에, 조금 애매한, 비록 다음 중괄호 내부. 그리고 당신은 이러한 중괄호 생각할 수 있습니다, 하는 당신은 키보드에서 입력 할 수 있습니다 실제로 같은 곡률 같이 되 스크래치에서 이러한 노란색 루프 블록. 그것은 여러 줄의 코드를 포함한다. 

PRINTF은 점점 지금 무서운 작은 I 때문에 뿐만 아니라 괄호 안에 인용을 참조하십시오. 하지만 다른 어떤 것은 새로운 구문이 예에? 퍼센트 D가있다. 그리고 백 슬래시 N이있다. 우리는 심지어, 그 전에 봤어요 나는 그것을 언급하지 않았지만. 다음에 쉼표가있다. 그리고 카운터가있다. 

그러나 우리는을에 볼 수 있습니다 이것은 단지 것을 순간 인쇄 말을하는 표준 방법 "진수,"견적, 맺다, 일부 소수. 하지만 나중에 말해거야 그 진수는 무엇인지. 쉼표가 있다는 사실 그래서 이 라인의 말 printf의에, 가서 인쇄 의미 일부 소수. 오, 그건 그렇고, 수입니다 어떤 이러한 변수의 값이됩니다. 그리고이 이상을 만들려면 우리는 예를 분명히 볼 수 있습니다 오래 전에 정확히 printf와 관련된 실제 C 프로그램의 맥락에서. 

지금은 그냥 몇 가지를 마무리합니다 이러한 구조의. 부울 식, 당신은 없을 수도 있습니다 행사는 프로그램에서 이러한 사용하기 하지만 당신은 아주 잘 수도 특히 조건을 사용하는 경우. 에서 그리고이 두 가지 예 X가 Y보다 낮 으면 의미 스크래치, X가 Y보다 작고 경우 나 y 이하 Z보다, 우리는 어떻게 번역 할 것인가? 

음, C에서 그것은 단지 같을 것. 조금 애매한 더 괄호 몇 가지 이상한 앰퍼샌드하지만, 근본적으로 아이디어는만큼 간단합니다 퍼즐 조각의 세계에 있습니다. 우리는 단순히 어떤 경우 확인 중 다른 것보다 작습니다. 

어떻게 조건에 대한? 영어로 간단히 말해서, 어떤이 작업을 수행합니다 스크래치 코드의 덩어리 당신은 말을합니까? 

관객 : 두 숫자를 비교합니다. 

데이비드 J. 마란은 두 가지를 비교 숫자, X는 Y보다 작 으면 그것은 많이 말한다. X는 Y보다 크면 그만큼, 다른 말한다 X가 같으면 그만큼 y를 말한다. 이제 X와 Y는 어디에서 왔을 까? 누가 알 겠어요. 스크래치의이 덩어리 코드는 문맥이다. 하지만 우리가 원하는 것은 번역이다 잠시이 확인합니다. 

당신이 편안하게 그래서 문제 설정이 주 0이 세상에서 재생 왼쪽에 실현 아이디어는 변경되지 않습니다 다음 또는 이상 또는이 주. 우리는 단순히 갈거야 물건을 쓰기 시작 와 다른 방법으로 우리의 대신 우리의 마우스 키보드. 

그래서 만약 X가 Y보다 작은, 그리고 몇 가지 괄호가있다, 다음 몇 가지 중괄호있다 다시 가지를 캡슐화 노란색 퍼즐 조각을 할 것처럼. 그리고 X는 printf거야 등등과 Y보다 작다. 

무엇 C에 대한 좋은, 당신이 여기에서 볼 수 있듯이, 이 둥지를 얻을 수 없다는 것입니다, 중첩, 즉 필요하다 둥지 오른쪽에 코드를 밀어 것. 대신 모든 것을 할 수 있습니다 라인업 깔끔하게을 좋아한다. 하지만 그건 그냥 미학이다 우리가 오래 전에 다시 볼 수 있습니다 세부 사항입니다. 

좋아. 그래서 다시 우리에게 가져다 이 애매한 찾고 프로그램입니다. 의 실제로 코드를 작성하자. 이제 당신은 어떻게 코드를 작성 가야합니까? 당신이 소유 한이 모든 년 Mac 또는 PC, 데스크톱 또는 노트북, 당신은 실제로 능력을 했어 프로그래밍 코드를 작성하기 시작합니다. 그러나 당신은 아마 놓치고있어 프로그램의 특별한 유형입니다. 당신은 확실히 코드를 작성할 수 있습니다. 하지만 당신은 반드시 할 수 없습니다 상자 밖으로, 그 소스 코드를 변환 오브젝트 코드, 0과 1로 컴퓨터에 무엇을하지? 청중 : 컴파일러. 데이비드 J. 마란 : 그래서 컴파일러, 맞아. 이제 대부분의 아마 컴파일러를 보유하고 있지 않습니다, 컴파일러를 다운로드 한 적이 없다. 하지만 당신은 당신이 그것을 다운로드 할 수 있습니다 볼 수 있습니다 대부분의 소프트웨어 다른 조각 등을들 수있다. 맥 OS의 세계에서 당신은 수도 다운로드하거나 이미 다운로드 한 엑스 코드 또는 GCC 또는 연타라는 뭔가. 당신은 날 때는 윈도우 세계 당신에게 수도 비주얼 스튜디오를 다운로드, Visual Basic에서, 그런 환경. 컴파일러 수십있다 당신이 사용할 수있는 요즘. 그러나 여기에서의 짧은 이 통증이있을 것입니다 그리고, 솔직히 기술 수백 악몽 다른 사람들의 모든 컴퓨터 구성 자신의 시스템을 구성 동일하게 그래서 우리는 모두 같은 페이지에있을 수 있습니다. 

그래서 우리는 대신에, 무엇을 CS50에 우리는 당신을 줄입니다 표준 환경 이다 리눅스 환경 조금 보일 것 이런 식으로 뭔가. 당신은이 개를 볼 수 있습니다 문제 설정 한 사양하는 이번 금요일 밤에 온라인으로 이동합니다. 

그리고 이것은 무엇을 의미하는지 당신이 이제부터입니다 할 수있을거야 다운로드 프로그램을 설치 CS50 어플라이언스했다. 그리고 당신이 다운로드거야와 라는 다른 프로그램을 설치 단지 하이퍼 바이저, 이것을 달성하는 멋진 방법입니다. 당신은 Mac 또는 PC 또는 소유 여부 리눅스 컴퓨터 또는 컴퓨터 솔라리스, 또는 어떤 미친 운영 시스템이 실행중인, 당신은 프로그램을 다운로드거야 하이퍼 바이저이다라고 CS50를 실행하는 것 컴퓨터 용품 아무리 운영 체제가 무엇인지. 환언하면 하이퍼 바이저는 변환 어떤 언어에 대한 우리의 물건, 어떤 지시하여 자신의 컴퓨터가 이해하고 있습니다. 

그래서이 레이어입니다. 그리고 또,이 종류의 컴퓨터 주제의 과학, 가지의 위쪽에있는 건물입니다. 당신은 윈도우가있을 수 있습니다. 당신은 맥 OS가있을 수 있습니다. 그러나 다음 주에 시작 당신이있어 다운로드 한 것 소프트웨어의 무료 조각 하이퍼 바이저했다. 당신은 조각을 다운로드 한거야 소프트웨어 CS50 어플라이언스를했다. 

즉, 하이퍼 바이저에서 실행되는 것 이는 사용자의 컴퓨터에서 실행되는 것입니다. 그리고 최종 결과는 우리 모두의 것 같은 간단한 창이 있습니다 Mac 또는 PC에서이 즉, 우리 모두의 환상을 제공합니다 동일한 운영 체제를 실행하고, 다른없이 컴퓨터에 미치는 영향. 그리고 당신은 전체 화면 수 그것과 행동합니다 실행중인 것처럼 라는 리눅스 운영체제 이는 무엇 CS50입니다 어플라이언스에 기반으로합니다. 

그래서 실제로이를 사용하자 이제 프로그램을 작성합니다. 당신은 프로그램을 작성할 수 있습니다 Microsoft Word를 사용하여. 당신은 프로그램을 작성할 수 있습니다 텍스트 편집기 또는 메모장을 사용하여, 이나 워드 패드, 또는 거의 모든 단어 처리 프로그램 당신이 이제까지 사용했습니다. 하지만 현실은 당신이하지 말아야 정말 이러한 프로그램 중 하나를 사용하십시오. 당신은 확실히 사용하지 말아야합니다 마이크로 소프트 워드, 같은 것을하는 굵은 직면하고 이탤릭체로하고있다 더 큰 글꼴과 작은 글꼴, 컴퓨터가되지 않기 때문에 그 어떤 것도 신경. 모든 컴퓨터는 이다 신경 것 C로 작성 지침과 같은 영어 

그래서 우리는 안에 무엇을 할 거 야 CS50 어플라이언스의 자유롭게 프로그램을 사용한다 사용할 수, 그것과이다 이에 미리 설치 장비, gedit를 불렀다. 그리고 gedit에서 그냥 슈퍼 간단합니다 맥 OS의 텍스트 편집기와 같은 텍스트 편집기 에 무슨 Windows 메모장과 같은 이 같은 작은 선물을 본다. 

그래서 실제로의를하지 말자 이의 슬라이드 봐. 그러나의 사실로 가자 환경 자체. 내가 먼저 갈거야 및 이 다른 창에서 로그인 나는했습니다 내 CS50 어플라이언스에 여기 내 노트북​​에 사전 설치되어 있습니다. 

Windows와 같은 것을 주목하라 맥 OS, 그것은 몇 가지 메뉴를 가지고있다. 윈도우과 마찬가지로 둔다 그것은 거기 대신 거기를두고 맥 OS,의. 그러나 현실은 그것의이다 같은 모든 종류의. 그리고 여기에 전체입니다 소프트웨어의 무리입니다. 드롭 박스가있다. 액세서리의 전체 무리가있다, 그래픽 프로그램을 우리는거야 문제 세트의 관점에서 나중에 사용할 수 있습니다. 그래서 내장 웹 브라우저가있다 이 제몫을 컴퓨터가 있음 컴퓨터의 내부. 

그러나 나는이를 클릭거야 여기에 흰색 아이콘을 왼쪽, 어떤 gedit에서의 아이콘이다. 그리고 창을 열 것 즉, 여기에 세 개의 패널이 있습니다 왼쪽 한, 최고 일, 그리고 바닥 일. 

지금은이 사진 맨 위 오른쪽에있어 그 실제로 코드를 작성하는거야. 그래서이 작업을 수행 할 수 있도록 ,. 내가 저장을 파일로 갈거야. 그리고 당신은 이제까지 보았던하지 않을 수 있습니다 전에이 특정 창. 그러나 이것은 맥 OS 또는 Windows 같다. 그냥 윈도우의 모든 폴더와 나는이 컴퓨터 내부에 가지고있다. 

그리고 저장거야 에서는 hello.c로 파일. 그리고 나는 갈거야 앞서하고 저장을 클릭합니다. 그리고 지금은 탭이 알 왼쪽 상단에서는 hello.c했다. 그래서 아마 꽤 잘 당신은하지 했더라도 전에이 특정 프로그램을 사용했다. 

그리고 지금 나는 그에서 입력 할거야 명령 상당히 애매한 순서 것을 우리는 좀 전에 보았다. 포함, 표준 I / O.h. 그 즉시에 대한 자세한. 이자 주요 무효 오​​픈 곱슬 괄호, 중괄호를 마감했다. 그리고이 안에 내가 생각 여기서 우리는 "안녕하세요!"세미콜론했다. 그리고 지금 저장합니다. 

그래서이 C로 작성된 프로그램입니다 소스 코드에 따라서, 기록. 하지만 난 그냥이 프로그램을 실행할 수 없습니다. 나는 가지 두 배로 할 어딘가에 아이콘을 클릭, 하지만 아이콘이 다른 존재하지 않는 소스 코드 파일보다. 게다가, 다시, 프로세스는 이제 즉 나는 통해이 파일을 실행해야합니까? 청중 : 컴파일러. 데이비드 J. 마란 : 그래서 컴파일러. 그래서 다른 컴퓨터에서 사용하면 다른 방법으로이 작업을 수행 할. 그러나 우리는 여기에 무슨 짓을했는지 이다 CS50 어플라이언스 대표적인 방법은 수도 이 많은 다른 시스템에서 수행 간단히 말해서 나는 갈거야된다 메이크업라는 명령을 실행합니다. 그리고 메이크업은 말 그대로 그렇게 할 것입니다. 나 프로그램을 확인합니다. 

그래서가는되어 있는지 확인 나를 위해 컴파일러를 실행합니다. 그리고 프로그램의 이름 나는 인사입니다 만들고 싶어. 지금하게는 프로그램이다. 그리고 수 있도록 충분히 스마트하다 , 만약 내가 인사하게 실현 자동으로 볼 것 라는 파일에서는 hello.c에 대한 그냥이 왜냐하면 방식으로는 구성입니다. 

그래서 나는 지금 여기,이 입력 쳤을 때 미친 애매한 라인은 단지 실행 받았습니다. 그리고 전에, 날 믿어 긴, 그냥 일 이내에, 당신은 무엇을 모두 이해하게 될 것입니다 그 말도 안되는 수단. 하지만 지금은 그냥 만들 것을 알고 컴파일러의 트리거 실행. 즉, 발견 내 컴퓨터의 컴파일러 즉, 사전 설치되어있어 CS50 어플라이언스에 우리는 문제를 설정 한 당신에 손을 거 야. 그리고 그 다음으로 작성한 hello.c했다 입력 분명히 생산 0과 출력으로 초. 

그리고 기본적으로 그것이 무엇은 저장이다 파일에있는 0과 1이 인사했다. 그리고이 구문하지만 너무 수도 단순히 점을 말함으로써 당신에게 새로운 제품이 슬래시 인사가 될 것입니다 있는 나는이 프로그램을 실행을 의미합니다. 

지금은 적어도 부부 프로그램의 주의 거의 모든 우리는 될 예정 쓰기 흑백 텍스트 창. 아니 쥐, 아니 클릭, 창문도없고, 아이콘. 우리는 간단하게거야 및 기본 아이디어에 초점을 우리는 뭔가에 도착하기 전에 초기에 높은 레벨, 예를 들면, 우리가 이야기 브레이크 아웃 게임과 같은 첫번째 강연 지난 주에 대한 정보가 포함되어 있습니다. 

여기 Enter 키를 누르 때, 그건 텍스트 전용 환경에서 해당 안녕하세요라는 아이콘을 더블 클릭합니다. 당신의 뜻을 원합니까 나는 다음 Enter 키를 쳤을 때 일이? 

청중 : 그것은 "여러분, 안녕하세요."인쇄 해드립니다 

데이비드 J. 마란 : 희망 그것은 "안녕하세요 세계를."인쇄합니다 그리고 실제로 그것은했다. 지금이있었습니다 일부 여기에 암호 같은 구문. 그냥 위해 돌려 보자 잠시 볼 경우 우리 단지에 의해 추론 시작할 수 없습니다 , 땜질 시도와 실패, 여기에 무슨 일이 위해. 내가 백 슬래시 n을 제거하면? 이제 몇 가지했습니다 사람 아마 이전 프로그램 그게 무슨 뜻인지 즉시 알아. 그러나했습니다 사람들을 위해 이전에 프로그램 된 적이 적어도 무슨 일이 일어나고 있는지 자신에게 생각 나는이 프로그램을 다시 실행하면 변경하려면? 그래서 아래로 다시 갈거야 내 작은 검은 색과 흰색 창, 어떤 창이되는 나는이 컴파일 할 수 있습니다. 나는 인사를 다시 컴파일거야. 우리는 같은를 만나러가는 중이 야 명령의 암호 같은 순서. 그리고 안녕 점 슬래시를 할거야. 그리고 지금 누군가가 당신이하고자하는 경우, 사람, 이전에 프로그램 된 적이 없어요 이 때 다른 무엇을 할 수 있는가? 그래. 

청중 : 그것은 멈추지 않을 것 인쇄 "안녕하세요 세계." 

데이비드 J. 마란 : 그것은 아 - 미안이야? 

청중 : 그것은 인쇄를 중지하지? 

데이비드 J. 마란 : 그것은하지 않습니다 인쇄를 중단 "안녕하세요." 그래서 나쁜 생각. 다른 아이디어? 그래. 

청중 : 오류 메시지? 

데이비드 J. 마란 : 오류 메시지를 확인 할 수 있습니다. 다른 건? 청중 : 그것은을 인쇄 할 수 뿐만 아니라 세미콜론 브래킷? 데이비드 J. 마란은 : 인쇄 할 수 있음 뿐만 아니라 세미콜론 브래킷. 그래서 어쩌면 백 슬래시 다음 일부 중요 terminous 가지. 다른 생각? 

그래서 모든 좋은 아이디어. 그리고 사실, 그것은거야 오류 메시지가 될 수 있습니다. 즉, 대부분 아마 일반적으로 해답이 될 수 있습니다 다음 몇 주 동안 우리는 여기에 코드를 배우고있다. 

하지만 지금은 컴퓨터 기억 오직 당신 만이 할 그들에게 뭘. 말도 땅콩 등 많은 버터와 젤리 예. 우리 인간의 컴퓨터는되어 있었다 당신이 할 일은 그들에게 무엇을 할 수 있습니다. 이 경우, 경우에 따라서 컴퓨터를 말하지 않는다 해당 깜박이는 커서를 이동 다음 라인, 그것을하지 않을거야. 그래서 나는이 프로그램을 실행할 때 지금, 차이를 알 수있다. 

벌레처럼 보인다. 그것은 아마도, 미적 버그. 그러나이 무엇이 다를까요 분명 마지막 한 대 출력? 그래. 

청중 : 그것은 새로운 라인을하지 않았다. 

데이비드 J. 마란 : 그것은 새로운 라인을하지 않았다. 지금 당신의 그 사람 어쩌면 만들어진 웹 페이지를 가지고 하기 전에, 당신은 알고 있습니다 BR 태그 또는 단락 태그 정신이 매우 유사. 웹 브라우저가 될 때까지 무시됩니다 정확히 무엇을할지 알려준다. 마찬가지로, C와 같은 언어입니다 만 당신이 그것을 말해 무엇을 할 것. 

이유 그래서 모든 예, 지금까지, 가지가 부담이 백 슬래시가 있었다 거기에, 그 수단이다 하는 당신은 자신을 표현 새로운 라인 문자로, 말하자면. 그리고 당신은 가지, 아마, 감상 할 수있다 이 가지 바보 것 만약 아무것도. 나는 새로운 라인을 원한다면, 단지 타격 종류의 다음 입력하고 그와 같은 코드를 도살 정말 올바른 방법으로 문지르지해야합니다. 그리고 당신은하지 않더라도 정말이 시점에서 관심을, 당신은을 실현합니다 이것은 특히 아니다 코드의 좋은 찾고 조각. 

그래서 어떤 세계 결정 년 전입니다 당신은 넣어하고자 할 때 명시 적으로 새 줄에 커서, 당신은 명시 적으로 말을해야 새로운 라인, 백 슬래시 명. 그리고 몇 가지 다른있다 같은 기호입니다. 그러나 위해 할 지금 우리는거야 백 슬래시 N에 초점을 맞 춥니 다. 

이제 프로그램을 만들어 보자 좀 더 흥미 롭군요. 내가 먼저 갈거야 및 이번에는 새 파일을 엽니 다. 나는이 같은 안녕하세요-1.C을 저장거야. 그리고 그냥 재미로, 내가 갈거야 내 드롭 박스 폴더에 넣어 이동합니다. 

당신은 CS50에서 볼 수 있듯이 기기에 대한 설명서, 문제에 대한 이번 주 한을 설정, 우리는 격려합니다 당신이 드롭 박스를 사용하거나 일부 해당 서비스 코드의의 모든 때문에 가는 자동으로 백업합​​니다. 나는했습니다 이유 때문에 그건 여기에서이 폴더로 갔다. 

그리고 지금은 쓰기거야 약간 다른 프로그램입니다. 표준 I / O.h, 주요 int 무효 포함합니다. 그리고 여기의 printf, 안녕하세요 세계, 이는 이전과 완전히 동일합니다. 

하지만 지금은 뭔가를 인쇄 할 그건 좀 다릅니다. 나는 인쇄 할 "안녕, 데이빗."라고 그래, 분명히 그렇게, 그것은 희망해야 나는 다시 컴파일하는 경우가 이 프로그램은, 다시 실행, 그것은 말할 것 "안녕하세요, 데이비드." 

하지만 내가 원하는 경우하면 소개 변수 이런 종류의, 무슨 용기의 개념 코드를 D--V-I-D 및 하드하지를 저장 내 프로그램에. 그럼 난 무엇을 시작하는 경우 이 같은 일? 

String를, 그래서이 변수입니다. 당신은 문자열을 원하는 경우, 단어 나 문구를 일명. 문자의 순서는 무엇입니까 우리는 프로그래밍에 문자열을 호출합니다. 우리는 일반적으로 통화에 갈거야 그것은 좋은 간단한 이름 때문에 그것은이야. 하지만 난 아무것도를 호출 할 수 있습니다. 

나는 문자열의 같음을 말하는거야 맺다, "데이비드,"세미콜론 인용. 그리고 지금은 삽입 할 D--V-I-D I 인쇄이야 무엇으로. 그리고 우리 전에서 맛보기를 보았다 일부 특수 구문의 화면 그것은 우리를 허용 의 값을 대체합니다. 특별한은 무엇 기호 몇 슬라이드 전? 

그래서 %입니다. 당시는 퍼센트였다 진수에 대한 라. 정말 여기에 해당하지 않는 것 같습니다. 이의를 밝혀 다른 백분율 기호, 약자이다 %의 S, 문자열에 대한 자리 표시 자합니다. 

그래서 지금, 아주 간단히, 난 안녕하세요 - 하나 만들어 갈, 이 파일이 호출 때문에 안녕하세요-1.C, 입력하고 Enter 키를 누르십시오. 그리고 내가 망쳐. 무슨 일이야? 우리가 시작해야 할 곳 음, 여기에 우리는이 명령에있어 있음을 알 행 환경이 전용 환경을 텍스트. 아이콘에는 클릭이 없습니다 지금 폴더 등을들 수있다. 그리고 조금 전에 다시 생각합니다. 어떤에서 폴더는 내가 말할 않았다 내 코드를 저장했다? 그래서 드롭 박스 폴더에 있습니다. 아무것도 부름을 받았다 없습니다. 그러나 드롭 박스 호출 할 수 발생합니다. 그래서 어떻게 든에 두 번 클릭해야합니다 그 드롭 박스 폴더 얻기 위해 그리고 그것으로 얻을 내 코드 안녕하세요-1.C했다. 사실, 내가 가서 최소화하자 단지 잠시 동안이 창. 그냥 Windows 및 Mac OS와 같은, 리눅스의 폴더가 있습니다. CS50 기기의 폴더가 있습니다. 그것은 단지 지금 우리가 구속하는거야 이 텍스트 환경에 자신. 

하지만 클릭을 두 배로하는 경우 드롭 박스에, 거기에 주목 내가 컴파일 할 파일입니다. 그러나 나는이 검은 색과 흰색이 필요 터미널 창, 말하자면. 하지만 내가 필요, 따라서 이동 해당 폴더 또는 디렉토리에. 그래서 약간 난해하지만, 당신도이에 익숙해 져야 해. 

리눅스의 세계에서, 이는 다시 운영이 시스템은 우리가 CS50의 내부에서 실행하고 어플라이언스는, CD라는 명령이있다. 그게 바로 내가 CD, 공간, 보관을 할 수 있다는 것을 의미합니다. CD 디렉토리를 변경합니다. 오른쪽. 위로 하루에 사람들이있을 때 컴퓨터를 발명 및 운영 이 같은 시스템은 그들이 원한 최소한의 키 입력이 가능한 입력합니다. 가장 쉬운 방법은 말을 그래서 변경 디렉토리는 CD였다. 

그래서 CD, 공간 보관을 칠 경우, 여기에 변경된 내용을 확인할 수 있습니다. 괄호 안에 장비는 종류 나를 놀리는 및 내가 어디 날을 상기. 그래서 열린 폴더는 드롭 박스입니다. 나는 지금 LS를 입력하면 목록을 다시 간결, 에 사람들이하지 않았기 때문에 일 리터-I-S-t에 다시 입력합니다. 그래서 그들은 대신 LS 산전했다. 

입력합니다. 나는, 안녕하세요-1.C을 두 사물을 주목하라 다음이 애매한 것은, 소스 1m. 즉, 말하는 그냥 내 방법 주 1 월요일에 대한 소스 코드입니다. 그게 내가에서 다운로드 폴더 내가 오늘 아침에 만든 CS50의 웹 사이트 단지에 넣어 사전에 장비. 

하지만 지금은 유일한을위한 우리 이 프로그램을 만드는 신경. 그래서 안녕하세요-1, 입력하게 ​​입력 할 때. 젠장. 문제가 발생했습니다. 그래서이 떨어져 애타게 할 수 있습니다. 그리고 불행하게도이 어디 것들 처음에는 약간의 스트레스를 얻을, 적어도 당신은했습니다 경우 이전에 프로그램되지 않았다. 

세상에. 나는 2 개의 라인 프로그램을 작성하고 나는 오류의 네 줄이있다. 그래서 여기에 무슨 일이 일어나고 있는지. 무엇보다도 항상 뒤로 스크롤 위 첫 번째 오류 메시지를 찾을 수 종종 단지 컴파일러는 때문에 당신과 내가하는 일에 의해 혼란에 빠진다. 컴파일러는 꽤 바보입니다. 그들은 단지 무엇을 할 것 당신은 어떻게 그들에게 말해. 당신이 그들을 혼동하는 경우, 그들은 그저 가지 손을 던져 것 어쩌면 더 많은 오류 메시지를 던져 보다 실제로 적합하다. 

그럼 첫번째 살펴 보자. 처음에는 슈퍼 애매. 그러나 예고, 여기의 이름입니다 파일이있는 나는 분명히 엉망. 콜론 5 결장 5 단지에 의미 다섯 번째 문자에서 선 5. 그래서 문자의 다섯 번째 열, 오류가됩니다. 선언되지 않은 식별자 문자열을 사용합니다. 당신은 표준 N을 찾으시는 것입니까? 

아니, 문자열을 의미했다. 그리고, 그것은 가지입니다 복사 및 붙여 넣기 정말 그릴 입력 한 내용 내 내가 망쳐 곳으로주의. 어떤 이유로 C에 대한 그래서, 또는 적어도 컴파일러 단어 문자열을 이해하지 않습니다. 우리가 그것을 만들었 기 때문에 그입니다. 그래서 문자열이 존재하지 않습니다 C. 어떤 CS50가 수행에서, 처음 몇 주 동안 단지 클래스의, 우리는 몇 가지 교육을 제공합니다 바퀴는, 말하자면. 그리고 우리는이 훈련 바퀴를 넣어 CS50.h.라는 특수 파일의 내부 

그래서이 두 파일의 두 번째입니다 분명히 점 H로 끝나는 이름. 의 되감기 보자. PRINTF는 문 또는 함수 그것은 분명히 뭔가를 인쇄 화면. 하지만 당신은 나를 보지 않았다 오른쪽의 printf를 구현합니다. 누군가 년 전 printf의 구현. 어떤 파일에서 당신은 그가 내기 것 또는 그녀 구현 넣어 printf와, printf와의 코드? 

표준 I / O.h라는 파일에. 사실,에 아마 이 파일의 표준 I / O.h, 이는 헤더를 의미 파일 및 표준 I / O.c, 어떤 C 소스 코드를 의미합니다. 그래서 그 또는 그녀가 몇 년 전에 풍덩 그들이 그 파일에 쓴 코드 그래서 우리 같은 사람들 년 후를 포함 할 수 있습니다, 그래서 우리의 자신의 프로그램에서 말할 수 있습니다. 

그리고 사실, 그게 무슨 파운드 기호입니다 단어 다음을 수행합니다 있습니다. 또한, 로컬 하드 드라이브에 보인다 표준 I / O.h라는 파일을 찾습니다 하고 효율적으로 복사하고 내 자신의 파일의 내부를 붙여 넣습니다. 그래서 지금 내 프로그램은 알고있다 어떻게 화면에 인쇄합니다. 

그 논리에 의해 그래서 문자열은 정의? 

청중 : CS50.h. 

데이비드 J. 마란 : CS50.h. 그리고 사실, 그건 우리, 핵심 직원이 수행했다. 우리는 약간의 데이터 형식을 발명 한, 그래서 문자열처럼 말하자면, 에 더하여 당신 INT처럼 무료로 얻을. 그리고 우리는 문자처럼 다른 사람을 볼 수 있습니다 문자와 몇 가지 더합니다. CS50.h이 명백하게의 내부 문자열의 적어도 일부 언급. 

그래서 지금 내가 앞서 가자 다시 실행 메이크업 안녕하세요 - 1. 나는 다시 확대 및 내 손가락을 교차합니다. 지금까지이 일을 이루 나는 대부분의 일을 고정으로 변경합니다. 그러나 젠장. 데이터 인수보다 퍼센트. 내가이 시간을 잘못 했는가? 

그래서 여전히 모호합니다. 그러나이 오류가 켜져 7 호선 및 문자 21. 그래서 여기서 찾아 가자. 그것은 조금 미묘. 하지만 생각해 보면 무엇을 여기에 기본적인 아이디어는, 아르 아마도 우리는이 떨어져 애타게 할 수 있습니다. 

그래서의 printf 함수의 이름입니다. 괄호는 지금까지이며, 단지 우리가 주위에 무엇을 넣어 같은 우리가 전달하고있는 물건 함수에 입력으로. 좋아, 단지를 임의의 인간의 규칙. 괄호를 사용합니다. 그 괄호 안에 우리는 따옴표를 넣어 봤는데, 다음과 같은 문자열 "안녕하세요 세계." 

그러나 앞의 예에서 매우 잠시 우리가 스크래치와보고했다. 그리고 우리는 퍼센트 D를 가지고 다른 어떤 그 괄호 안에 있었다 나는 구두로 발생한 것을? 그래. 

청중 : 그것은 그래서 복용하고 있는지 [INAUDIBLE] 내에서 [INAUDIBLE] 어떤이 [들리지? 데이비드 J. 마란 : 그렇지. 그래서 우리는 %의 D 있었다. 그러나 우리는 가까이 있었다 따옴표, 쉼표, 카운터. 오른쪽. 우리는 우리가 원하는 것을 지정 자리로해야 할 일. 그래서 내가 여기서 뭘하고있어입니다 쉼표, 당신은 내가 넣어할까요? 청중 : S. 데이비드 J. 마란 : S, 왜냐하면이 경우에는 S 저장 용기의 이름이다. 그것은 그 유리 그릇의 이름입니다. 이 점에서 카운터되기 전에 반면 간단한 스크래치 예를 우리는 보았다. 그래서 지금이 제출 한 변화는 나에게 확대 할 수 그리고 한 번 더 시도 이 프로그램을 컴파일합니다. 

지금은 그 애매한 라인을 참조하십시오. 그러나 그것은 사실이다 컴파일러의 이름을 지정합니다. 연타 컴파일러의 이름입니다. 그냥 저장되어 있는지 확인합니다 지금까지의 두통 그 긴 미친 명령을 입력하는 정보. 그래서 지금은 도트 안녕하세요-1 슬래시 않는 경우, 나는 "안녕하세요, 데이비드."를 참조한다 

꽤 실망하지만, 그렇지? 우리는 할 수 있었다 이 훨씬 더 간단하게 변수에 대해 이야기하지 않고 CS50.h 그 모든합니다. 그래서이를 만들어 보자 좀 더 흥미 롭군요. 

CS50.h 외에도 문자열 같은 것들을 가지고 선언 CS50 라이브러리 또한 몇 가지 기능이 있습니다. 그러니 그냥 같은 년 ​​전, 누군가가 쓴 printf의 표준 I / O.h에 넣어 그리고 몇몇 다른 파일입니다. 

우리는 CS50 직원은, 함수를 썼다 에서는 GetChar, GetDouble, GetFloat라고, getInt는, GetLongLong, getString에, 그리고 우리는 파일 내부에 올려 놔 CS50.h 및 CS50.c.라고 그리고 우리는 안에 넣어 CS50 어플라이언스의. 그리고 사람들은 수 그들이 경우 온라인으로 다운로드 에 넣어하려는 자신의 자신의 컴퓨터뿐만 아니라. 우리가 만들었다 고 말을하는 것입니다 어떤 사용자의 입력을받을 기능. 내가 뭘 모든 몰라 이러한 데이터의 종류가 있습니다. getInt와 같은, 가지 간단합니다 사용자로부터 어떻게 든 정수를 얻을. 그리고있는 getString는 GET처럼 아마 단어 또는 사용자로부터 문장. 

그래서 그에 집중하자. 그리고 나는 다시 갈거야 어플라이언스는 내가 먼저 갈거야 하고이 파일을 저장,의 전화하자 나의 두 번째 버전과는 안녕-2.C. 그리고의 변경의 몇 가지를 만들어 보자. 

대신이 시간 하드 코딩 다윗하는 믿을 수 없을만큼 일관성을 만든다 하지만 실망 프로그램 내가 대신 getString에 무엇을한다면? 지금있는 getString을 통지 여는 괄호가, 닫힌 괄호 때문에 그것은 어떤 입력을 필요로하지 않는다. 그냥 가서 것 사용자로부터 문자열입니다. 

그리고 지금은 다른 구문에 대한 단어. 세미콜론은 코드의 라인을 끝낸다. 당신은 모든 곳에서 그들을 필요로하지 않습니다. 하지만 그건 그냥 난 의미 코드 행으로 수행. 나에게 또 다른에 가자 문 또는 함수입니다. 문자열 변수를 선언합니다. 문자열은 말처럼 나에게 그릇을하시기 바랍니다 제공합니다. 그리고 내가 그것을 문자열을 만들어 보자. 

그리고 지금 등호. 등호는 무엇인가 본질적으로 동등? 

대상 : 지정합니다. 

데이비드 J. 마란 : 네, 값을 할당. 그렇다면 I, 예를 들어, 전화 이 기능 getString는, 우리는거야 잠시 볼 수 있습니다 문자열을 사용자에게 메시지를 표시하는 것. 이 날 다음 쓰기시키는 것과 같다 D--V-I-D 종이에. 그리고 문자열을 말할 때 들, getString에 동일 동일 정말 의미하지 않는다 C 프로그래밍에서 동일한. 그것은 오른쪽에서 지정 의미 왼쪽에 편. 

그래서 문자열을 입수했습니다. 그리고 등호 넣어 의미 저장에 컨테이너의 불렀다. 그리고 그 다음에 떨어져이 전달 printf와 실제로 그 일을 할 수 있습니다. 

그럼 최종 결과는 것입니다 약간 다르게 보일 수 있습니다. 의 안녕 -이해야합니까 보자. 하나는 일할 수 있습니다. 당신은 따라 다음과 같은 것입니다. 안녕하세요-2 일을합니다. 도트 안녕하세요-2, 입력 슬래시. 

나는 무한한 것 같다 루프 또는 뭔가. 아무 일도 없어요. 왜? 

청중 : 그것은 무한 루프를 만들고있어. 데이비드 J. 마란 : 그것은 무한 루프입니다. 그것은 가지로 나를 기다리고있어 실제로 일부 입력을 제공한다. 그래서 내가 가서 입력하자 데이비드에 입력하고 Enter 키를 누르십시오. 그리고 지금은 "안녕하세요, 데이비드."라는 나는 다시 실행합니다. 의 롭, 입력하자 "안녕하세요, 롭." 

지금이 최악이다 지금까지 사용자 인터페이스를 제공합니다. 사용자는 명백하게 야 무엇을 해야할지 가정. 그러나 상관없이. 이 같은 건물을 사용하여 그냥 스크래치처럼 블록, 우리는 그 문제를 해결하고 말할 수 제발 당신의 이름과 같이, 대장, 공간, 닫기, 견적 폐쇄 괄호, 세미콜론. 그래서 많은 다시 구문과 어리 석음. 

하지만 난 단지를 추가 한 알 이 한 위의 퍼즐 조각 이 한 위. 그래서 지금 내가이 프로그램을 다시 실행하면, 안녕하세요-2, 입력합니다. 분을 기다리십시오. 무슨 일이야? 그것은 다른 어떤 행동 아니에요. 그래. 

청중 : 당신은 다시 make를 실행하지 않았다. 

데이비드 J. 마란 : 나는하지 않았다 바로 다시 만들어 실행합니다. 그래서 난 내 소스 코드를 변경했습니다. 그러나 다시, 그 흐름이있다. 컴파일러를 통해 소스 코드 제공 당신이 새로운 오브젝트 코드를, 또는 0과 1. 그래서 실제로 필요 안녕하세요-2는 입력을 다시 실행 확인. OK, 일이 일어난 것 같습니다. 도트 안녕하세요-2 슬래시. 귀하의 이름하시기 바랍니다. 그리고 지금 명확하게 왜이다 같은 줄에 커서? 정확히. 나는 백 슬래시를 넣어하지 않았다 N까지 여기 내 코드에서. 그래서 지금은 쓸 수 Daven 같은 뭔가 입력합니다. 나는 다시 실행하고 입력 할 수 있습니다 게이브 같은은 입력 우리는 다른 프로그램을 얻을 다시하고 다시하고 다시. 

이제 궁극적으로 우리가 필요 해요 몇 가지 다른 기능을 사용할 수 있습니다. 우리는 궁극적으로 몇 가지를 소개합니다 조건은 조건 일을 할 수 있습니다. 어쩌면 그래서 우리가 할 수있는 루프 또 다시 것. 

어쩌면 그것은 우리의 경우 좋은 것 우리 자신의 기능을 구현할 수있다, 등 우리는 우리 자신을 구현할 수 printf의 또는 getString는 우리의 자신의 버전 및 GetFlow 때문에 궁극적으로 더 이 커맨드 라인 환경을 사용 우리는 심지어 대부분의 작업을 수행 할 수 있습니다 사물의 시각적 흥미 롭군요. 

참으로 결론 날 이렇게 할 수 있습니다. 내가 먼저 갈거야 이러한 창을 닫습니다 여기에이 아이콘을 열고, 이는 단지 더 큰 그 버전은 임베디드 터미널 창. 그래서 gedit에서뿐만 아니라이 내 코드를위한 장소 뿐만 아니라, 터미널 윈도우에 내장, 내가 실행할 수 있습니다 검은 색과 흰색 창 명령. 

난 그냥 열 일어 이의 더 큰 버전입니다. 지금은에 갈거야 이미했습니다 폴더 과정의 웹 사이트에 미리 넣어. 내가 먼저 갈거야 및 , thadgavin.c라는 파일을 엽니 다 어떤은 다른 사람에 의해 작성되었습니다. 

그리고 우리는이를 보면, 이 코드의 종류 아니다 우리는 이후 작성됩니다 이 코드의 슛 예쁜를 작성했다 즉, 그 또는 그녀가 할 수 있었던 코드를 찾고, 의 여부에 관계없이 또 다른 사람은 지금까지 수 이 코드를 이해합니다. 

실제로, 매년 무엇이있다 난독 C 경연 대회,라고하는 쓰기 진짜 괴짜입니다 다른 사람이 읽을 수있는 코드, 하지만 그 중 하나가 무언가를 정말 간단하거나 정말 놀랍습니다. 그리고 우리는 우리가 줄 알았는데 이 표정으로 결론 꽤 놀라운 뭔가 당신은 전에 한 번 본 적이 있습니다. 그러나 우리는이 일에 종료됩니다 참고 도트 슬래시, thadgavin. 이는 기다리고 것입니다. 

즉, CS50은 여기까지. 우리는 수요일에 당신을 볼 수 있습니다. 

[음악 연주]