[Powered by Google Translate] 데이빗 MALAN :이 CS50이며,이 주 1의 시작입니다. 우리는 우리가 어떻게 생각 오늘 다시 살펴이다 당신의 많은 것이 아마 일부 과거를 걸어 시간은 지금 조금 낯이 익 수 있습니다. 여기이 것은 물론이에 - 대상 : 과학. 데이빗 MALAN : 과학 센터를 운영하고 있습니다. 그래서 실제로 최초의 컴퓨터 중 하나입니다 1940에서 백업합니다. 처음 전기 컴퓨터 중 하나 즉, 특히 긴 어쩔 수 자기 지속 계산하고, 우리는 실제로에 표시 과학 센터는이 물건의 작은 조각입니다. 우리가, 우리가 할 생각을하면 동영상에 다시 한번입니다 그이를 소개, 얼마전되었다 세계 일. 그리고 당신은 음악을하고 실제로 음성들에서 볼 수 있습니다 아주 행복한 시간이었다. [동영상 재생] -A 수학, 기계 기술의 승리가있다 하버드 대학의 멋진 새로운 자동 계산기. 수학 복잡한 문제는 겪어야 테이프에 코딩 된 형태의 기계가 정확하게에서 해결 아르 시간 분 일부는 인간에 필요한 계산. 의 모든 양식을 신속하게하기 위해 설계된 수학 및 과학 연구, 거대한 기계의 뇌가 미국을 위해 일한다고 전쟁의 끝까지 미국 해군. 데이빗 MALAN : 뭘 알고하지 않을 수도 것은이에 있었던 것입니다 우리가 이제 거의를 용어 바로이 같은 장치 당연한 버그 있다는 주장. 따라서 엔지니어 중 하나가이 컴퓨터에서 작업 그대로 결과 기계의 작은 나방을 발견 잘못된 계산 인치 소문에 의하면 그 나방은이 로그에 붙어 있었어 여기 저널, 다시 1940 대 년 9 월 9 일부터, 그래서 세계의 용어 "버그"를 탄생했습니다. 그럼 이제부터 우리는 버그가에서 실수를 어떤 종류로 간주 프로그램, 인공 아니면,이 경우, 곤충. 몇 공지 그래서 같이 우리는 진행합니다. 그럼 CS50은에 종류의 점심을 제공의 전통을 가지고 우리가 30로 학기 중에 가장 금요일 40 불에 학생들과 캐주얼의 광장에서 얼음 잡담, 컴퓨터 과학에 대한 이야기​​, 미래에 대해 이야기. 우리가 채팅을 업계에서 졸업생과 친구들을 초대 학생뿐만 아니라. 정말 상당히 큰 수준인지하기의 끝을 향해 모든 더 친밀 적어도 한 번 이상에 대한 동안 학생의 일부. 이 금요일 우리와 함께하고 싶은면, 1시 15분의 PM이로 이동 RSVP에 CS50.net/lunch. 당신이하지 않으면 우리는 recurringly이 작업을 수행하므로 걱정하지 마십시오 처음 30 정도 이번 주 중. 서기 노트 그럼. 이제이 가능 시작합니다 자원에 단어 클래스의 학생들합니다. 머리가 강의 중에 다운 필요가 없습니다 있도록 나는 우리가하는 일, 등등 말을하고 모든 것을 내려 낙서 대신 교수진에서 제공되는 메모 표준 집합입니다. 그래서 우리는 우리의 교육 친구들 중 하나, 앤드류 Sellergren을 가지고 누가 그런 다음, 각 주 앉고 동영상을 검토하고, 우리가 상당히 생각하는 일을 아래로 쓰기 메모 권위있는 세트입니다. 그리고에 snarky 각주를 넣는 물론, 앤드류 좋아, 하단. 그래서 희망을위한 참고 도서 이러한을 즐길 수 기회가 검토로 재미 있으며, 시간을 퀴즈와 개별 강의에 무슨 일이 있었는지. 그래서 그는 강의 페이지에 연결되어 있습니다. 문제 세트 0 한편, 부족합니다. 그리고 당신은 사용할 수있는 자원의 관점에서 - 연습. 마일로는 금요일에 처음을 이끌었습니다. 이것은 촬영 된, 토요일에 의해 온라인 상에 올리고. 당신은 시작 위치를 정말 잘하지 않으면 그리고, 실현 이 문제 또는 P-세트 미래를 항상하려면 먼저 켜 연습이나 동영상 그. Sectioning가 진행 중입니다, cs50.net/section에서 곳입니다 당신이하지 않은 경우, 환경 설정을 제출해야 이미 오늘까지. 섹션이 오는 일요일, 월요일을 시작합니다 때문에 과 화요일. 우리는 모든 주, 3 일 섹션을 대부분 학기. 그리고 우리는 다시 다른 트랙을 소개합니다. 따라서,이 sectioning 양식에 묻는 메시지가 표시됩니다 만약 당신이 그 적게들 경우, 이미 보지 못했다 편안하고, 좀 더 편안한, 또는 어딘가 사이 인치 그리고 당신이 울타리에 정렬의 경우, 일반적으로 어디에서 사이에 대부분의 학생들이 검사 결국거야. 근무 시간은 오늘 밤 시작됩니다. 따라서 스크래치는 매우 자연이지만, 매우 낮은 열쇠입니다 다양한 버그로 실행하거나 방법에 관해서 불확실 할 무언가를 구현합니다. 그래서 우리는 이번 주에 근무 시간을 시작합니다 알고있다. 그들은 Annenberg에 월요일, 화요일, 수요일, 있습니다 목요일 8시에서 뇌 휴식 기간 동안 오후 11시합니다. 상단 classmen가에 타, 그리고 다시 문제가있을 경우 점점 수 있습니다 사람들이 패스 한 번 찍어 주시면됩니다 있기 때문에 문에, 당신의 방법을 이야기 과 설명은 CS50 함께. 일반적으로 직원에 대한 우리의 20-30 도움이있을 것입니다 을 하나 하나. 도착시 생각이 있습니다 : 당신이 노트북을 가지고 갈 게요, 귀하의 충전기를해야합니다, 우리는 추가 전원 코드가됩니다 특히 Annenberg의 남쪽 벽을 따라있는 곳 전기 콘센트가 많이있다. 그리고 사무실 시간 Q & A의 주 진입 점으로 이동하는 것입니다 cs50.net/discuss는 및 게시에 이 질문. 그리고 pset 0 또는 pset 1을 라벨에 어떤 주 로 발생할 수 있습니다. 그리고 우리가 할 것은 교육 친구들의 테이블을 가지고 있습니다 일반적으로 8 또는 우리의 10 그래서 당연히 보조, 를 통해가는 보드에 경계를 유지하고, 정말 최대한 빨리 할 수​​있는 한 질문을 뜯어, 당신이 사람들을 발견하지 않은 경우 관련 게시물을 추천 적절한 너희 온라인 참조. 그리고이 문제가 있으며, 거기로 불가피하게하는 경우 이 될, 또는 그냥 하나 하나 앉아 더 많은 의미가됩니다 사람이 문제를 통해 작동합니다. 또는 당신은 정말 근무 시간에 와서 그러한 사고 방식을 필요. 당신은 전자 양식을 통해 가고 싶지 않아 정말 사람을 만나고 싶습니다. 우리에게 그 의사 소통, 그리고 일이 일어날 것입니다 때 질문은 직원이 볼되었으며 우리 예 마님을 결정, 이것은 20 중 하나에 파견해야 로컬 여기에 30 팀 구성원, 당신은 상단에 표시됩니다이 왼쪽 대기열 버튼을 약간을 입력하면 / cs50.net에 깜박 시작 토론합니다. 그리고 여러분이 지금, 그래서 초대 한 사실을 말하고 대기열을 입력, 말씀. 그리고 그 버튼을 클릭하여, 당신 이름은 다음에 나타납니다 CS50의 인사, 코스의 헤드 중 하나 인 것 아이 패드 누가 다음 Annenberg의 입구 근처 것이다 개최 에 대해 질문이 있으시면 여기를 묘사 참조, 학생들 왼쪽, 오른쪽에 존재하는 직원. 그리고 왼쪽과 오른쪽의 클릭으로 귀하의 웹 브라우저는 것 교수 McGonnagal 예를 들어, 가능한 빨리 깜박 시작 Annenberg에서 특정 테이블에서 당신을 볼 준비가되어 있습니다. 그래서 우리는이 마지막 년의 일부를 했어요. 우리는 사무실의 시간을 다시 부팅 한 소프트웨어의 많은 재 구현. 그래서 이번 주 데워 될 것 알고 있습니다. 뿐만 아니라 들었 수도로, 과거 몇 년 동안도 실현 친구에서 영업 시간은 참으로 50을 가지고 한 번에 150 명. 우리는 그 처리하기 위해 그리고 단순히 수 없습니다 효과적으로 저녁 내내 한 하나. 그리고 우리가 정말 올해 수행하려고 할거야 것은 많은 질문이 사실을 활용 자주 묻는 종종 더 나은 답변을 얻을 수 있습니다 비동기. 그래서 당신은, 직원의 응답을 통해 생각의 정렬 할 수 있습니다 우리는 온수없이 코드를 생각할 수 있습니다 반드시 고민의 압력 나란히을 통해이 쪽. 그래서 우리는 예측이 질문에 대략 세 번째 또는 이분의 일 사람에 파견 될 것이며, 우리는 다음과 같이 오프 따려고 노력 할게요 더 많은 전자 반 또는 많은 근무 시간 동안. 그리고 우리는 토론을 계속 사용할 것 일주일 내내뿐만 아니라. 그리고 마지막으로,이 과정이 실패 / 통과 촬영 할 수 알고 있습니다. 담에있는 또는 당신이 정말로 있다고 생각한다면 이 일이 당신의 세계할지, 또는 정말 않습니다 당신에게 아주 외국인이 훌륭한 방법이다는 것을 에 단계로 몇 가지 자신감을 얻기의 클래스, 나는 솔직히처럼, 몇 년 전에. 그리고 다섯 주에 그림으로 해결해야 당신이 실패 / 통과를 유지하기 위해 자신은 문자로 전환 학년 또는 같은. 그리고 일반적으로 실패 / 통과, 내 생각 엔, 학생들에게 무엇입니까 즉, 그 10시간, 20 시간, 무슨 일이든에 넣어 경우 일부 문제에있을 수 있습니다, 당신은 머리를 흔들며하고 벽에 기대 당신은 정말 뭔가를 추격하고 할 수 없습니다 솔직히, 당신이해야 할 많은 다른 일이 있어서요, 내가 이 실패 / 통과 생각은 가장자리를 벗고 이런 상황. 어디 가지 길의 90 %를 잡았습니다. 당신은 아주 완벽하지에요. 하지만 당신은 그럼에도 불구하고, 그것 때문에 많이 있겠죠. 당신을 해주는으로 실패 / 통과 고려 정신 모델, 아마도. 좋아요, 그럼 지난 주에 우리는 스크래치로 내렸다, 우리 상당히 높은 그래픽 수준에서의 프로그래밍 이야기. 그리고 오늘 우리는 언어로 전환 할 C, 상단에 낮은 수준의 프로그래밍 언어라고 대다수의 현대적인 언어는 현재 일부 포함 내장되어 사람의 우리는 기간의 끝 부분에 사용됩니다. 그리고 구문, 그들은 같은 일을 봐요 모두 당신을 아주 비슷합니다. 그래서 여기 전환이하기 위해 시작하자. 그래서이 프로그램은 그 가장 간단한했다 지난 주 세계 프로그램 안녕하세요. 그것은 단순히 함께 화면 안녕하세요 세계로 인쇄 작은 풍선은 고양이에서 나오는 것이 었습니다. 글쎄, 우리가 다른이를 번역 지금 시작하는 경우 언어, 커다란 아이디어, 오늘 수요일 동일하지만 구문은 변경 시작합니다. 지난 주에 우리가 가진 반면 그래, 녹색 깃발이 클릭했을 때, 말 안녕하세요. 오늘 우리는 INT, 메인, 무효, printf를 할거야 뿐만 아니라 거기에 다른 문법으로 돌아. 중괄호 및 괄호, 따옴표, 그리고 이것 저것. 그러나, 여기에서 아이디어의 핵심은 인쇄가 아니라는 것을 파악 궁극적으로 주요 이제 가고 있다는 사실은 할 수 프로그램의 시작과 동의어. 메인은 ​​녹색 깃발이 일을 개막 곳 될 것입니다. 그래서 지금의 여기 빌딩 블록의 일부를 분리 올리지하게 우리는 구체적인 예제에 뛰어 전에. 이건 그냥된다 그래서 우리는이 성명을 지난 주에 전화 명령. 이 작업을 수행 -이 경우, 인사 세계를 말한다. 우리가 그 라인에서 보면 음 C에서, 우리가 야 방법입니다 특정 퍼즐 조각을 표현부터 시작 : printf ( "안녕하세요");. 그리고 지금 우리는 시간이 지남에 따라이 떨어져 더 올리지됩니다 하지만 패턴이 있다는 알고 있습니다. 한 명은, 우리는 printf이라는 것을,이 단어 본질적으로 유사들은 말한다. 그게 할거야거야. Printf, 여기 F는 "포맷"을 의미합니다. 그래서 그냥 삽입 할 수 있음을 의미 다양한 미적 내용을보십시오. 따라서 견적 인용을 끝 맺다가 우리가 가야 할 일의 시작에 불과하다 문자열을 호출 시작합니다. 단어, 구문, 문장. 프로그래밍 언어에서의 문자열은 제로의 순서입니다 문자를 이상을 사용하십시오. , H, E, L, L-O, 쉼표 자, 등등입니다 견적 인용을 끝 맺다, 문자열입니다. 그리고 지금은 백 슬래시 N, 약간의 구문 이상하지만, 이미 무엇을 의미로 지난 주 정의? 단지 새 줄입니다. 당신이 원하는 컴퓨터에 전달 단지 방법 거기에 입력을 누르 상응하는,하지만 당신은 그럴 필요가 없어요 실제로 입력하고 따라서 모든 망치 치고 싶어 실제 프로그램의 서식. 이제 괄호는이 문자열을 둘러싸 열린 괄호와 가까운 괄호, 그리고 내부의 우리의 문자열입니다. C에서, 그리고 다른 프로그래밍 때문에 계신데 언어는 일이 printf 인수를, 또는 걸릴 좋아 매개 변수입니다. 따라서 본 보라색해라 블록 지금 생각 시작 프로 시저와 같은 기능, 방법으로. 당신은 정말 당신이 지금 원하는 건 뭐든지을 호출 할 수 있지만 그 하나가 할짓이 작은 프로그램의 일종 이죠 한 줄, 이하의 것. 따라서 printf 우리가 전화를 시작 할 건지 있습니다 이 경우에는 - 기능 및 기능은 뭔가를 화면에 포맷 된 문자열을 출력합니다 - 하지만 기능은 인수 또는 매개 변수를. 그리고 인수 또는 매개 변수에 의해, 감사합니다, 우리는 의미 자신의 행동은 귀하가 전달 무엇에 의해 영향을받을 수 있다는 괄호 안에. 따라서이 경우 printf 요구는 인쇄 할 말대로, 될 우리 에 그냥 여기 따옴표로, 문자열을 전달 우리 실제로 인쇄 할. 그리고이 라인의 맨 끝에서 세미콜론은 그냥이다 역사 폐가된다 코드의 대부분 줄의 끝에서, 당신은 컴퓨터에 슈퍼가 명확하게하기 위해 세미콜론을 넣어 이 코드 줄은 여기서 끝을 내자 것을. 프로그램이 더 많은 정보를 얻을로 우리가 보게 될 있기 때문에 지금이 좋은 복잡한 세미콜론는 슈퍼 우리에게 분명 인간을 것입니다, 또한 컴퓨터, 어디에 코드의 시작과 끝의 라인. 일부 언어는 일부가없는 거라고 생각 이와 같은 세부 사항. 그리고 사실, 자바 스크립트에서, 당신은 항상 무언가를 필요하지 않습니다 세미콜론처럼. 그러나보다 더 빨리합니다. 따라서 루프. 우리는 어떻게, 명백한, 매우 직관적으로이 같은 일을 저질렀다 뭔가 또 한번, 또 한번 다시. 양말에 넣어, 또는이 경우 인사처럼. 음, C에서 오늘부터, 우리는이 스크래치를 표현 할 수 동안으로 차단 (TRUE) printf ( "안녕하세요"). 우리가 문자 그대로 퍼즐을 구축하기 시작 그래서를 발견 이전의 작품. 우리는 같은 보라색 블록을 가지고 있지만은이 안에있어 괄호 영원히 블록, 그 번역하는 가장 좋은 방법은 C에 다음과 같습니다. 더 영원히 키워드가 없습니다. 당신은 C.에있는 F-O, R, E-V-E-R 입력 할 수 없습니다 따라서 가장 가까운 아날로그가 동안입니다. 값이 않기 때문에 이제 (TRUE) 약간 멍청 해 보이는 동안 진정한 적 변화? 아마도 없습니다. 진정한 동시에,이 중에 한 동안 말을 같아요. 그것은 모두 같은 일이야, 사실은 항상 경우가 있습니다. 그래서 루프는 실제로 루프 어떤 종류의를 일으킬 수 있습니다? 그냥 무한 루프, 좋아. 영원히 루프 또는 우리는 지난 주에 전화를 그냥 무한 루프. 그래서 때로는 나쁜 일. 당신이 얻을 왜 가끔 그런 벌레, 가끔은 그게 회전 비치 볼 또는 모래 시계 또는처럼. 하지만이 사건의 경우 우리 의도적으로 무엇이든을위한 이유는, 다시 같은 일을 인쇄하고 싶었다 다시 다시. 아니면 시계 등의 경우, 당신은하고 싶은 뭔가 또 한번, 또 한번 다시. 그럼 무한 루프가 이해 할 수 있습니다. 그리고이 C에서 우리가 코드에 영구 번역하는 방법을 수 있습니다. 이제이 녀석은 좀 더 구체적입니다. 우리는 10 배 다음과 같은 내용의 진술을 반복했다. 사실이 있기 때문에 (사실이) 상당히,이 작동하지 않습니다 동안 항상 진실. 우리가 대신 C 버전 보면 그럼 이제 구문를 얻을 좀 더 암호화. 하지만 당신이 이걸보고 시작하면 솔직히 말해서, 모든 도착 신속하게 아주 잘 알고. 그래서이 루프에 대한라고 할 수있어. 루프에 대한 뭔가를 컴퓨터를 말할 것입니다 또 한번, 또 한번 다시 한은에 대한 이것들은 사실입니다. 이제 우리는 그게 무슨 뜻 이죠? 음, 루프에 대한 세 가지 부분이고, 우리는가는거야 실제의 상황이로 돌아와 순간의 예입니다. 가 상당히 전혀 한 번에 침몰하지 않는 경우 그럼 걱정하지 마십시오. 그러나 INT I = 0 나에게 달라는, 길고도 짧은 이야기 변수 타입 정수의이야, 그래서 나에게 전화 번호를 알려 내가 전화를하고 0으로 초기화합니다. 그건 대수 변수 x처럼 날을 제공하고 있습니다 0으로 초기화합니다. 그러나이 경우에는 우리는 그것을 i를했다. 그런 다음 중간에, 내가 10 개 미만이라 더군요. 오랫동안 다음과 같은 물건을 컴퓨터를 모르 겠네 전 10 개 미만이기 때문입니다. 그리고 분명이 10 개 미만 때문에를 시작 그는 0시에 시작한다. 그런 다음 마지막으로, 당신은 아마 제가 + + 수단을 추측 할 수 있습니다. 단지 i를 증가 의미 구문 약간의입니다. 그러니 다시 다시 다시, 내가 1을 추가합니다. 우리가이 루프를 보게 될 그리고,이 문법은, 오히려 구현 정확하게 그 같은 문제는, 솔직히, 스크래치에 너무했다 훨씬 표현하기 쉽게. 10 반복하면됩니다. C에서, 대부분의 프로그래밍 언어로, 우리는 할 필요 실제로 좀 더 컴퓨터의 유익과 이런 짓을 지정합니다. 그러나 우리는이 문제와 기타 구문에 돌아올거야. 어떤 변수는? 스크래치에서 우리는,이 오렌지 블록 같은 것을 가지고 어디 변수를 선언 수 있습니다. 하자 임의로은 카운터 전화하십시오. 가 0으로 초기화하자하고 뭔가를 영원히 보자. 이 경우 스크래치에 나는 카운터를 말하므로, 고양이는 연설을 약간 풍선을 가지고거야 이 변수에 번호입니다. 그리고 우리는 1 변경 카운터가 있습니다. 그래서 모두 영구 잠금 내부 포장되어 있습니다. 그래서 우리는 이미 지금은 C의 빌딩 블록을 가지고 이 번역된다. 우리가 할 수있는 한 가지 방법이 있습니다. 나에게 정수를 줘이 카운터 전화하십시오. 0으로 초기화 거기에 첫 번째 행 인치 (사실) 그래서 그냥 순간부터 그런 생각을 훔쳤다고 동안 전 가서 다음을 수행하십시오. 카운터를 인쇄 한 다음 카운터를 증가 다시, 다시, 다시. 하거나 다시, + + 뭔가에 1을 추가합니다 의미합니다. 그러나 문법의 새로운 조각은 여기 있습니다. 로하지 이전 예제들 뭘 알아 어때요? 예,이 % d 개. 그럼 당신은 아마 기반으로, 솔직히,이 무엇을하고 있는지 추측 할 수 내용에 스크래치 블록하고있다. 다시 한 번 C에서, 우리는 조금 더 특정 할 필요 그것은 자신을 표현 할 때. 따라서 printf ( "% d 개 \ N"). 그럼 우리는 잘 알고으로 던져 버릴 수있는 대부분의 그런. 따옴표는 그냥 문자열 뜻, 역 슬래쉬 N 단지 새 줄 것입니다. 따라서 유일한 새로운 것은 여기에 % d 개입니다. 그리고, 그 모든 자리 표시 자입니다. %의 d는 10 진수를 나타내는 것입니다. 그리고 % d 개의 수단 컴퓨터, 여기 10 진수를 넣어. 글쎄, 당신은 거기에 넣어 몇 번할까요? 당신은 아마 추측 할 수다시피, 쉼표 후 말 카운터, 우리가 선언하거나하는 변수의 이름이 있어요 몇 라인을 이전에 만든. 이 단지에 변수에 도전 C의 방법입니다 그래서 동적 문자열입니다. 반대로 왜냐하면, 제가 대신 같은 일을했다면 이, printf ( "카운터"), 무슨 일이 겠어 이 프로그램은 대신 아마, 무슨 짓을 한 겁니까? 그것은 문자 그대로 "카운터"를 인쇄합니다. 그래서 내가 원하는 효과되지 않습니다. 좀 숫자 값에 대체해야합니다. 그래서 우리가 printf와 같이 해당 기능을 볼 수 있습니다, 없습니다 수 같은 막 하나의 인수, "여러분, 안녕하세요!". 그들은 몇 가지 변수 후 견적 인용을 끝 맺다에 쉼표를, 수 우리가 이전 문자열을 보게 될 그로 연결을 얻을 것이다 이 % 기호 자리 표시를 통해. 그래서 뭐 부울 표현은 어때? 부울 표현식은 true 또는 false이 값을,했다. 예, 아니오. 1 또는 0. 사용 또는 사용 중지. 따라서 스크래치에 사람들은 다음과 같이하고,주의 그 여기 아래 블록은 실제로 함께합니다 두 개의 작은 블록. 그래서 가지 드래그 세 퍼즐 조각을 떨어 뜨 함께 그래서 거기에 더 이상 퍼즐 조각을 만들어 그 I 나는 여기서 x는 Y보다 말하고 싶지 있다는 생각을 전달 할 수 y는 z는보다 작아야합니다. 그래서 나는 다음과 같은 두 별도의 선을 번역 할 수 있습니다. 상단 하나는 매우 trivially, C로 번역 할 수 있습니다 을 갖는 X 가, 말은 우리의 방법입니다 포함 C, 나를 다른 사람이 쓴 기능에 액세스 할 수. 제가 printf 원하기 때문에이 경우에는 신경. 이제 우리는 INT 메인을 (무효)를 얻을 수. 그래서 솔직히이 일 중 하나입니다, 그 날 영에, 그냥이기 때문에 거의 나는 영역에서의 종류에 왔어요 재미 있지 지적, 구문의 일부. 하지만 지금은 달리 알려진 그 기능을 알 절차, 또는 방법은 일반적으로 어떤 가치를 생산하고 있습니다. 그들은 뭔가를. 그들은 답을 갖추고 있습니다. 그들은 출력을 생산하고 있습니다. 따라서 INT 메인 옆에 말하는 우리의 속기 방법입니다 이 기능이 절차는 결국 갈 것을 번호를 다시 제공합니다. 그리고 이유는, 우리는 다시 올거야. 메인은 ​​기본의 기본 세계 표준입니다 때 C 프로그램에서 실행을 당할 것이다 기능 당신은 그걸 실행합니다. 플레이는 그냥 일을 의미 주요도,도지지 않습니다 이 경우 인수. 그래서 명시 적 초인거야. 여기에는 문자열도없고 쉼표가 없습니다. 플레이 메인에 인자 아무런 의미합니다. 지금 마지막으로, 다행히도 마지막 두 줄은 잘 알고 있습니다. 중괄호 안에 우리는 printf가 우리는 수익을 갖추고 있습니다. 그리고 반환은 우리가해야하는 가지 불행한 이 경우는 모든 일을 안하기 때문에, 거기에 뒀을 관심 많이. 그러나 컴퓨터 프로그램에 때 함수는 0을 반환 모든 잘 의미한다. 아무 문제가 발생했습니다 없습니다. 반대로, 함수 또는 1 또는 제외 어 1, 반환하는 경우 부정적인 1,337, 또는 같은 임의의 숫자, 그 일반적으로 오류가 실제로 발생했음을 의미합니다. 당신이 본했다면, Mac 또는 PC에으니 컴퓨터 나 충돌 때문에 일부 원치 않는 메시지 냉동, 그리고 이상한 오류 메시지가 그리고 몇 가지 코드와 같은 시스템 코드 1,2,3,4, 일부 번호, 그는 일반적으로 말할 필요가 세부 사항입니다 우리가 인간의 대부분하지만 그게 어떤 함수 나 일부입니다 이 프로그램은 실제로 0이 아닌 값을 반환했습니다. 그리고이의 이익은 0이 모든뿐만 아니라 의미이며, 다음은 본질적으로 그 물건의 무한한 번호가 잘못 할 수 있습니다. 그들은 좋은 0을 선택하고를위한 0이 아닌 값 때문이다 나쁜, 등 우리가 곧 보게 될 것이다. 그러니 어서 가서 쓰기 보자. 그래서 다른 날 난을 열어 내 Mac을 사용했던 기억 터미널 창, 그리고 난 같은 텍스트 프로그램을 열어 텍스트 편집기, 나는 몇 가지 코드를 작성 시작했다. 그럼 괜찮아요. 하지만 당신의 경험은 Mac에서 다른 수있을거야, 나입니다 솔라리스 컴퓨터, 리눅스 컴퓨터에 어떤 운영 시스템이 사용하는 것 뿐이예요. 그리고 과정에서, 우리가 대신 사용하려면 뭔가가 있습니다 CS50 어플라이언스했다. 따라서 CS50 어플라이언스는 소프트웨어의 다운로드 조각입니다 즉, 당신이 리눅스라는 운영 체제를 실행할 수 있습니다 자신의 Mac 또는 PC에서 구체적으로 페도라 리눅스. 그리고 당신은이 하이퍼 바이저라는 걸을 다운로드하여이 작업을 수행합니다. 그래서 모두 문제 세트 1 문서화 될 것입니다. 그리고 당신은 다운로드해야 할 일으로 안내됩니다. 그러나 최종 결과는, 당신은 Mac이나 PC을 가지고 있는지, 너 일부 무료 소프트웨어를 다운로드 할 수 있습니다. 그런 다음 CS50 어플라이언스를 다운로드, 당신은 그렇게 말해 자유 소프트웨어는 - 하이퍼 바이저 - 컴퓨터의 창에 CS50 어플라이언스를 실행합니다. 그리고 어떤 일이 생기하면이 있습니다. 지금 여기 발견 한, 어떻게 바탕 화면으로 나타납니다 환경. 그리고 저 실제로 하나의 창을 축소 보자. 그래서 지금 여기에 약간의 창, 내 맥이며, 내부 이 창을 완전히 할 일 다른 운영 체제. 실제로이 시작 메뉴 연상은 여기가 등의 하위 메뉴를 왕창되어있는 Windows, CS50 설명서, 보관 및 같은에 대한 링크. 그리고이 환경은 지금 표준 환경은 무엇입니까 우리 모두 지금 사용할 수있는, 그래서 무슨 일이 있든간에 당신의 컴퓨터가 당신이에 설치 한 것은, 어떤 버전 실행중인 맥 OS 또는 Windows 때문에, 우리는 지금이 동일한 환경을 제공합니다. 그리고 지금이 상황에서 우리는 몇 가지 코드를 작성할 수있을 것입니다. 그래서 가서 gedit라는 프로그램을 열거야. 이 Notepad.exe가 비교, 또는 Mac에서 텍스트 편집기. 그리고 이것은 바로 슈퍼 간단한 텍스트 편집 프로그램입니다 그 첫 눈에이 것 같습니다. 이제 상단에, 나도 하단에있는, 백색 팔레트가 jharvard @ 어플라이언스를 말합니다 검은 색 창을 갖추고 있습니다. 우리는 사용자 계정을 미리 만든 때문에 그건 모두에게 존 하버드라고합니다. 그는 모든 파일 가려하는거야 폴더를 가지고 있으며, 우리가 몇 가지 코드를 작성할 수있어. 그럼 내가 여기 가서 그냥 조금 확대 해 있으며, 전 어떻게 할 것이 # , int는 주를 (무효)를 포함하고, 그럼 내가 ( "안녕하세요") printf하는 겁니다 , 0을 반환합니다. 이제이 모두 당신을 아주 검은 색과 흰색입니다. 내가 가서 그리고 난 어떤 gedit을 가르쳐 한 일을하자 실제로 하죠. 내 이름으로 저장 가자. 나는 jharvard 여기 왼쪽에 선택하는거야. 그러니 다시, 당신은 솔직히 전에 리눅스를 사용하지 않을 경우에도 요즘 그들 모두는 기본적으로로 devolving 아르 인터페이스의 동일한 유형 - 맥 OS, 윈도우, 리눅스. 그래서 여기 jharvard의 홈 폴더를 선택했습니다. 그리고이 파일 hello.c로 저장거야. 그래서 상단에, 나는 hello.c를 입력, C의 이름을 지정 . C 확장명을 가진 프로그램입니다 일반적인 연습거야. 그리고 저장을 누르십시오. 그리고 지금 좋은 건지, 제가 효율적으로 gedit을 가르쳤 한 것입니다 이 C 프로그램입니다. 내 검은 색과 흰색 텍스트가 이제 코딩 색이된다는 것을 명심, 또는 단지 내 주목을 받고 구문 강조, 프로그램의 다른 의미 부분. 상단에있는 내 프로그램이 더 복잡대로, 전, 거기두고 내가 쓴 한 모든 일에 대한 요약 정보를 갖게 돼. 그래서 그게가있다. 그럼 내가 지금 축소하고 터미널 창으로 가자. 그래서 아마 많은 사람들에게 새로운 기능입니다. 당신은 명령 줄 환경을 사용하지 않을 경우, 당신은 한 번도 DOS를 사용하거나 리눅스를 사용한 적이 있고, 열어 본 적이 귀하의 맥 OS 터미널 창, 당신 많은이 이러한 지적을 클릭으로 GUI와 함께 할, 그리고 할 수 드래그 및 드롭, 그리고 같은,하지만 일반적으로 - 확실히 컴퓨터 과학의 세계에서 - 귀하의 마우스가없는 명령 행을 사용하여 일반적으로, 당신은 키보드를 가지고 실제로 많은입니다 인터페이스보다 더 강력한 한 번 당신은에 적응하게 다양한 명령. 그리고 당신은 지적 할 필요가 무료로 자신의 종류를 클릭 모든면에서. 따라서 gedit에서 우리는 다음 두 세계의 최고를 정렬 할 수 있습니다. 우리는 텍스트를 드래그 앤 드롭 할 수 있습니다, 우리가 볼 수 니스 (Nice)와 색상 코딩. 그러나 우리의 프로그램을 실행 시간을 때, 우리는 때때로드립니다 여기이 작은 창을 사용합니다. 그래서 가서이 일을 할거야. 아래 검은 색과 흰색 창에서, 나는 먼저 갈거야 그리고 그 소리를 써주세요. 그리고 그 소리는 컴파일러의 이름입니다. 내 소스 코드를 변환하는 프로그램입니다 에, 그러니까, 객체 코드입니다. 우리가 지난 주에 잠시 본 0s와 1 초. 지난 주에 온 기억, 우리는 우리가가는 줄 약속 이런 일부터 시작 - 우리가 할 필요 과 같이 - 그리고 이건 정말 인간이가는 것이 아닙니다 수동으로합니다. 대신에 우리는 프로그램을 사용하려고, 그 프로그램에있어 이 경우는 꽝이라고합니다. 그리고 프로그램의 이름은 hello.c입니다. 에 소스 코드에서 hello.c를 컴파일 할 수 있도록하려면 오브젝트 코드, 또는 0s와 1S, 그건 막에 충분합니다 이 입력하고 Enter 키를 누르십시오. 그래, 아무 일 것 같습니다 없습니다. 하지만의 기본 이름, 현재, 또는 지난 주에 온 알 C로 작성된 프로그램은, 어리석게도 a.out라고합니다. 대부분의 흥미 이름은 당신이 시간 때우기 수 있습니다. A는 알파벳의 첫 글자입니다이었다 무엇 출력하지만, 그래서 수. 이건 내 프로그램으로, 지금 점 슬래시, 우리는 보게 될 것입니다 보안 기능을 실제로 일종의 때문에 a.out은 제가 쓴 프로그램입니다. 그것은 내 컴퓨터와 함께 제공되지 않은, 그건 하지 프로그램 파일 인치 그것은 맥 OS의 응용 프로그램 폴더에 없습니다. 나는 컴퓨터와 슈퍼 명시 할 필요가 있으며, 말 이 프로그램 a.out은 현재 폴더에있는 현재 디렉토리. 그리고이 같은 환경에서이 대표하는 방법 점은 인치 현재 어떤 폴더에 나타냅니다됩니다 그리고. / 그냥 실행 a.out을 의미합니다 현재 폴더 인치 그리고 입력하면, 봐라, 내 첫 프로그램이 실행됩니다. 지금 저 단계를 다시 봅시다. 이 창은 약간 작은, 그리고 실현 밑에있는 여기 어플라이언스의 왼쪽 또 다른 아이콘이 있습니다. 하나는 그냥 웹 아주 익숙한되는, 크롬입니다 어플라이언스의 내부 브라우저. 그리고이 검은 색과 흰색 아이콘은입니다 더 큰 터미널 창. 이 분류에 약간 성가신를 얻을 수면 그저 상호 작용되는 윈도우의 아주 작은 조각 프로그램, 우리는 대신이 작업을 수행 할 수 있습니다. 그리고 지금 몇 곧 입력을 시작하게 익숙한 명령을 할 수 있습니다. 혹시. 그래서 혹시이 목록에 대한 명령입니다. 그래서 맥 OS 나 Windows에서, 당신은 일반적으로 두 번 누릅니다 폴더를하고, 좋아, 당신은 다양한 파일을 모두 볼 및 폴더. 만 입력 할 수있는 명령 행 환경에서 명령 또는 텍스트가 적힌 동일합니다. 따라서이 디렉토리에 걸 보여줍니다. 지금은 물건의 무리가 좀 모두 야 여기가 친숙하고 약간 익숙하지. 그러나 예고 일단은 Windows 및 Mac OS, jharvard 같은 바탕 화면 폴더가 있습니다. 내 바탕 화면에있는 모든 아이콘이 일어날 수 있도록 해당 폴더에 있어야합니다. 다운로드 폴더, 그런가 크롬 거기에 넣어 수 있습니다. 보관. 따라서 어플라이언스는 보관을위한 내장 지원을 제공 그래서 결국 학기 동안, 당신은 귀하의 Tea와 동기화 할 수 있습니다 계정 수 있도록 프로그램을 모두 백업됩니다. 그들은 다른 컴퓨터에 액세스 할 수 있습니다. 아무 적 어플라이언스 잘못되면 할 수 있습니다 아주 쉽게 보관에서 복구 할 수 있습니다. 그럼 그 폴더는 거기에 있습니다. hello.c - 내가 만든 두 개의 파일이 와 a.out. 그리고 오른쪽에있는 다른 폴더가 있습니다 우리가 할 시간 웹으로, 학기의 끝을 향해까지 프로그래밍. 그러는거야 그래서 난 알아. / a.out, 입력, 시작 디렉토리에 나는 현재 디렉토리에서, 그리고 실행 이 프로그램은 바로 a.out했다. 좋아, 그럼 그 좋은 좋은 만, 모든 것이 아니에요 a.out 도움이라는 프로그램을 쓸 수 설득력. 그래서 우리는 실제로 감이 다르게 약간의 작업을 수행 할 수 있습니다. 대신 실행 그 소리가 너무, hello.c, 그럼 추가 할 수 있도록 명령 줄 인수를라는 것을. 따라서 명령 줄 인수, 또는이 경우 스위치는 단지입니다 이 후 프롬프트에 입력하는 다른 단어 나 문구 당신이 실행하려는 프로그램입니다. 따라서이 경우에는, 그 소리 내가 실행하고자하는 프로그램으로,-O 수단의 출력이 더 이상 a.out라는 없어 파일입니다. 출력 파일은 인사라고하고,를 컴파일하여 수행 라인에 마지막으로 할 말은, hello.c. 그래서 짧은에이된다 아주 한계 개선 대신이 바보라는 이름의 파일 a.out를 갖는, 지금은 그 소리-O여보세요, 다음 hello.c 할, 수 입력 한 다음 Enter 키를 누르십시오. 아무 일도 안 일어 날 것 같습니다 없지만, 다시 훨씬 0 좋아 -시 아무 잘못된 건 일을 의미 일어날 것 같네요 - 그래서 지금 실제로 입력, 지금이게 한번 해보자 구, 그리고 인사 프로그램을 갖추고 있습니다. 지금 안부를 입력하면, 명령을 찾을 수 없습니다. OK,. /. 그럼 정확히 맞아. 따라서이 프로그램 때문에 내가 쓴, 그리고 함께 오지 않았어 컴퓨터. / 안녕, 입력을 의미합니다 지금은 인사를 실행하는거야. 그래서 그게가 있습니다. 이제 우리는 결국 더 많은 명령 줄에 가지게 될겁니다 우리는 더 많은 작업을 수행 할 수 있도록 인수,하지만 단지에 사람들을 위해 이 낡은 모자 일 수도 누구, 내가 실제로에 가자 디렉토리는 여기로와 당신에게 얼마나 다른 우리의 맛보기를 제공 안녕하세요 세계를 구현하는 방법에 대한 갈 수 있습니다. 내가 여기서로 가자, 내가 열어거야. 그래서 사실은 내가 뭘하는지 설명 할게 때문에 이 유용합니다. 날 다시 보자. 그래서 난이에게 일을 오랫동안 해왔습니다. 그럼, 오른쪽 채지 몇​​이 있습니다 이상한 source1m 및 source1w 이름은 디렉토리입니다. 이것은 우리가 사용 어리석게 대회입니다. 소스는 단지 소스 코드를 의미하며, 1이 주입니다 의미하며, m은 월요일, 그리고 w가 수요일는 뜻을 의미합니다. 이 암호 그럼 아무 없습니다. 단지 속기 표기법입니다. 이 푸른 일들이 달리 알려진 폴더입니다 디렉토리입니다. 지금 그 폴더로 가고 싶어하고, 일반 컴퓨터에서 난 그냥 폴더 아이콘을 두 번 클릭하고 수 모든 파일이 있어요. 그러나 명령 줄 환경에서, 꽤 할 수 없어 그, 그래서 대신 내가 수동으로 디렉토리를 변경해야합니다. 그때 CD 및 source1m를 입력하면, 입력 것을 그 내 프롬프트 왼쪽에 흰색의 문제는, 그냥 바뀌 었습니다. 그리고 실제로, 단지 다음 괄호와 말할 때 내가 였어 작은 squiggle, 틸드 기호, 존 하버드의 홈 디렉토리에있는 자신의 내 문서, 그의 개인 파일. 그러나 지금은 괄호 안에 그 ~ / source1m는 말합니다. 이 내가 source1m라는 폴더에있어 의미 존 하버드의 홈 디렉토리에 그입니다. 지금은 쉽게이 폴더에있는 파일을 나열하고 싶다면 문제는, 난 그냥이게을 입력합니다. 지금은 내가 오늘날의 미리 만든 모든 파일을 볼 수 강의는, 또는 일어날 대부분의 모두의 . C로 끝나야합니다. 그럼 내가 지금 가서라는 프로그램의 gedit를 실행하게 어떤 임의의 해커에 의해 제작되어 holloway.c, 인터넷에서, 이번처럼 조금 보입니다. 우리는이 하나를 통해 갈 수 없습니다 세부, 그러나 그보다 편안를 들어, 특히 경우 이 프로그램이 여기에 무엇을에 같은 추측을하고 싶습니다. 나머지는, 당신은 더 이상 편안한이든, 보장 우리는 말에 썼다까지 안 이번 학기. 이것은 읽을 C 경연 대회의 예를 들어 어떤입니다 수단은 가능한 가장 이상한 보는 프로그램을 작성 다른 스마트 사람을 능가 할 수 비슷하게 누구야 일을 작성하고 쓸 수있는 으시 대며 당신보다 더 이상한 일. 그래서이에서 잘 작성된 프로그램의 예하지 않습니다 스타일의 관점이 그 프로그램의 예입니다 사람들이 노력을 위해 경연 대회를 승리 애매하고 추상적합니다. 우리가이 일을 실행 경우, 내 터미널 창으로 가자 말하자면합니다. 그래서 흑백 환경이라고합니다 일반적으로 터미널 창. 내가 진행하고 컴파일한다. 이 프로그램 때문에 나는 그 소리를 사용하지 않을 거에요 약간의 암호와는 다른 필요 컴파일러 GCC이라 부릅니다. 그러나 같은 일을하지 않습니다. 이 객체 코드를 소스 코드를 소요됩니다. 그리고 지금은 a.out, 해당 프로그램에게 당신을 운영하는 경우 일이 있습니까 보았다. 그 동료 그래서 그 해는 대회를 받았다. 어쨌든, 우리는 그 방향 이라기보다는에 못 들어간다. 그럼 실제로 지금 우리가 할 수있는 일을 떨어져 애타게 봅시다 이러한 기본적인 빌딩 블록을 더 만들어 재미있는 프로그램. 우리가 프로그램을 작성했습니다 그래서, 우리는 프로그램을 실행했습니다. 이제 우리는 실제로 단순화 할 수 있으며 더 이상 쓸 필요가 없습니다 프롬프트에서 단어 연타하다. 우리 프로그램은 더 많은 암호화를 먹어 가면서 밝혀, 우리가 할 수있는, 또는 더 복잡한 오히려, 우리는 실제로이 명령을 실행할 수 있습니다. 그래서 나는 내 홈 디렉토리로 돌아 가자, 말하자면, 저에게 알려 제거 - RM은 제거 명령입니다 - 난 제거 할 파일 a.out 전화를 안녕하세요. 그리고 지금은 양처럼 명령 줄 환경에서 발견 GUI, 당신은 묻는 메시지가 얻을. 비록 버튼을 클릭 할 수 없습니다, 나는 예를 들어, 예에 y를 y를 입력해야합니다. 그리고 지금은 다시 통지를인가요를 입력하면 그 녹색이 프로그램 - a.out과 안녕 - 사라 수 있습니다. RM 조심하십시오. 그것은 드래그하여 단지 당신처럼 나쁜 일을 할 수 휴지통으로 가지. 그래서 지금의이 앞서 가자 - 난 이걸 할 수 - 그 소리-O 여보세요,여보세요 - 난 이미 그 명령을 입력 지겨워. 나는 빨리 좀를 입력에도 불구하고. 그래서 우리는 대신 인사 할 수 있습니다. 그래서 컴파일러는되지 않습니다 확인하십시오. 그것은이에 단지 리눅스와 함께 제공되는 친절한 프로그램입니다 케이스 - 운영 시스템 - 그 프로그램을 컴파일하는 과정을 자동화합니다. 그래서 그 대신에 그 소리-O 파일 이름 등을 기억 그리고 등등, 특히 한 번 그 줄은 이상하고 더 이상 그냥 만들어 쓸 수 있습니다. 그리고이 물건 그 전체 무리를 뱉어 것입니다 우리는 결국 이번 학기를 볼 수 있습니다. 그러나 지금이 발견 된 경우 I 형인가요, 안녕 내 디렉토리에 다시입니다. 그리고 실제로 나는 함께 실행할 수 있습니다. / 안녕하세요. 그럼 그냥 어떤 실행 프로세스를 자동화 할, 이 경우, 훨씬 더, 더 복잡한 명령을 사용합니다. 그래서 우리는, 가득해서, 제조업체를 사용하여 시작할 거에요 더 우호적 인 사용자입니다. 하지만, 지금은 더 재미있는 프로그램을하자 보다 그냥 인사 나. 따라서 프로그램에서 우리는 지금까지 메인이 작성했습니다. 그건 그냥 모든 개막 기본 일이야. 하지만, 다른 기능은 거기뿐만 아니라 있고, stdio.h 우리의 상단에 본 일이 파일을 이전, 그건 표준 라이브러리로 알려진거야. 표준 라이브러리의 내부 기능의 전체 무리입니다 다른 사람이 쓴, 우리는이를 사용할 수 있습니다 기능은 더 쓸 수 재미있는 프로그램을 자신. 그럼 내가 다시 어플라이언스에 가자. 이 터미널 창을 닫습니다거야. 나는 우리가 이전에 쓴 일을 닫을하고, 그냥가 있어요 hello.c로, 이제주의 I는 다음과 같은 작업을 수행 할 수 있습니다. 안녕하세요 세상이 모두 관심이없는, 나도 그러고 싶지만 자신이 프로그램을 맞춤 설정합니다. 대신 세계를 말하는 그럼, 내가 갈거야 가서 말 - 난 데이빗을 입력 할 수 있습니다 -하지만 이건 정말 종류입니다 근본적으로 동일합니다. 그러나의이 자리 표시 자 아이디어를 사용해 보자. 오히려 printf에서, C에서 해당을 기억, 우리는이 일을했다 자리 표시 자, 그리고는 % d 개 이상 있습니다. % 그래서 d는, 빠른 정신 검사했습니다. 그래, 그게 진수입니다. 자릿수가 모두 있습니다. %의 C 그래서, 우리는 발생되므로, 문자가 될 것입니다. Z를 통해 여기에 문자를 넣고, 편지, 구두점 기호 나. 단일 문자 %의 말뜻은, 다른 언어에서 아는 사람? 부동 소수점 값을 그럼. 실제 번호입니다. 그럼하지 10 진수 -이 실제로 실제 번호입니다 소수점이, 왼쪽에 자리 중 일부 수 오른쪽 그. % s을, 문자열입니다. 우리는 매우 자주 보러 간다고 하나입니다. 문자열은 다시, 그냥 단어, 구문,의 순서입니다 개인 자까지 입력 할 수 있습니다. 그리고 마지막으로, lld? 그래서이 코너 케이스에 가깝습니다. 긴 진수. 이 큰, 당신 단지 번호를하지 싶다면 더 큰 숫자를 원하는, 당신은으로 지정해야 할거야 가 특정 크기라고 컴퓨터. 그럼이 조금 조정할 보자. 오히려 데이비드, 그냥 하드 코드보다 저를 조금 알려 동적 % s을 (를) 말한다. 따라서 문자열에 대한 자리 표시 자입니다, 여기에 % s을 (를) 넣어. 그런 다음 여기에 "데이비드"그럼 내가 쉼표을하게합니다. 이제이이 모든 지적 관심이없는 지금 한 모든 사실에 대한 더 많은 작품을 만들어 있기 때문에 컴퓨터. 이 모두 한 번에 컴퓨터를 않는 말보다는 지금입니다 이 작업을 수행하고, 결국 쉼표를 여기에 문자열을 삽입 말하며, 여기에 문자열입니다. 그래서이 더 나은 개선 아니지만, 적어도 그게 더 재미있는 프로그램을 향해 한 걸음. 지금 때문에, 내가 가서이 창을 조금을 덜어주지 더 큰, 제가 가서 인사 할 실행할 수 있습니다. 그리고 지금은. / a.out이 작동하지 않습니다, 왜? 그래, 지금은 인사라고. 그러니 다시 확인하고 또한-O와 연타하다, 이름을 변경 이 프로그램은 더 흥미로운 것을 할 수 있습니다. 그리고 여기에도 : 지금은 인사 데이비드 말합니다. 좋아요, 여전히 바보 같은 프로그램입니다. 그래서 지금의이 실제로 돌아 가서 개념을 소개하겠습니다 변수의. 나는 변수를 선언 할 수 있다면 그것은 좋은 것 같지 않아 문자열은 누구의 유형입니까? 그리고 변수의 값은 실제로 사용자로부터 제공 그 사람 자신. 따라서 임의로, I는 내 변수들, 전화해서 한 변수가 그냥 일반적인 국제 대회라는 문자열입니다. 나는 등호을 할거야, 그럼 내가 전화 할게 기능은 GetString을했다. 그럼 GetString는 C. 그런 거여에 내장되어 있습니다 것이 아닙니다 CS50 직원들이 단지에 대해 작성하는 기능 과정을 단순화 주이 처음 몇, 사용자의 입력을 받고 형태의 사용자 입력을 받고 문자열, 숫자, 그리고의. 그럼 GetString는 printf처럼하지만, 분명히보다는 그것의 이름이대로 할거야 인쇄 문자열을. 그러나 GetString을 사용하려면, 우리는 변화를해야 돼 여기,이 이후. 따라서 직관적으로,이 프로그램은, 바라건대, 어떻게 든 갈 수 있습니다 사용자의 문자열을 받고, 다음에 어떻게 그것을해야 할거야 그 문자열로, S라고? 그것은 바로, 그것을 인쇄 할거야? 아직 안 자극 프로그램이 있기 때문에이 올 할 것은 여기서 % s의에 해당 값 플러그인입니다 가 가야 말합니다. 적어도이 작업에서 볼 수있어 그럼 보자. 제가 저장하고 축소 보자. 지금 내 터미널 창에서 아래로 여기 하나의 작은 조각, 안녕하세요, 날 다시하자. 좋아요, 아, 젠장, 나는 오류를 많이 가지고. 나 스크롤, 우리는 우리를 먼저 보자 - 그래서 당신은 실제로 수 있도록 더 큰 창에서이 작업을 수행 두자 나는 어떻게 망쳤는지에 나쁘게 볼 수 있습니다 - 이렇게 인사합니다. 그래, 맞아, 재해거야? 나는 코드 세 줄을 작성하고, 한 그 날 12 오류를 주어있어. 왜인가요? 그래서 다행히, 당신이 보는 종종 많은 오류를 당신이 없기 때문에 한 번에 토, 정말 그냥 여기에 컴퓨터를 혼동. 그리고 여기 버리기 때까지 혼란 남아 있습니다. 그리고 이건 그냥 배신, 그리고 비틀를 시작하고, 더 무서운 물건을 토 것은보다 실제로 적용됩니다. 따라서 일반적으로 항상 상단 하나를 시작합니다. 그럼 빨간색의 맨 위에 가장 예 오류 메시지가 있습니다. 나는 선언하지 않은 식별자 문자열 않은 사용 의 표준인가요? 난 안 그랬어. 나는 문자열을 의미하지만이 역시 때문에 단어 문자열 나는 구두 실제로 계속 사용하는 중 C에 존재하지 않습니다. 그것은 우리가 처음 두 주에 사용할 뭔가가 여기하지만 cs50.h.라는 파일에 존재 그럼 지금부터,이 다른 라이브러리가 알고 그 직원들은 곡인데, 그것은 최근 이상 기록 된 stdio.h. 그러나 내부 cs50.h 중의 동의어 정의입니다 종류, 그게이 단어 문자열을 만듭니다. 이제 내 터미널 창으로 돌아 가자. I는 Ctrl-L에 의해이 모든 혼란을 지우 겠어. 우리는 단지드립니다 모든 깨끗하게 닦아, 내가 가서 할 겁니다 안녕하세요 다시 입력합니다. 이제 무슨 일이 있었습니까? 이제 이러한 오류는 모두 떠나 갔다. 그럼 내가 정말 무슨 짓을 한거야? 난 그냥 문자열이 존재하는 컴퓨터를 가르쳐 왔으며, 그건 cs50.h.라는 그 파일 안에 그럼 어디 있는지 지금 당신이 알고 있기 때문에 그만 좀 투덜 거려 그 함수의 선언은 말하자면합니다. 이 세계에 존재 곳. 그래서 저는 가서 인사 실행하는거야. 나는 무한 루프, 아무 일도을 갖고있는 것 같다. 그래서 여기 뭔가를 입력해야합니다. 내 프로그램에서 코드의 첫 번째 줄은 GetString되었습니다. 나 문자열을하기 때문에 그대로 기다리고있어. 그럼 의미에서 예, 무한 루프입니다. 분명히 GetString에서 기본 동작은 우리 작성 - 직원 - 그, 그냥 기다려 기다려 기다려 기다려 기다려 말한다 사용자가 들어 뭔가를 입력하여 당신에게 문자열을 제공 할 때까지 I-D 입력 - 그럼 내가 가서 D--V를 입력 보자. 그리고는 데이비드 인사입니다. 그냥 연기처럼 지금이 드는 데요? 내가 가서 토미 입력 보자. 좋아, 입력 작업을 할 것 같습니다. 롭, Zamyla에 대한 작품에 대한 작품에 적용 - 알았어. 그래서 대부분 작동거야. 그럼, 우리가 실제로주고 어떤 인쇄한다 우리는 여기 좀 어려울 수 있습니다. 우리가 인사처럼 뭔가를하면 봅시다. 여기에 갈 수, 복사, 붙여 넣기를 보자. 나는 여러 번 붙여 넣기 할 수 않을거야. 붙여 넣기, 알, + Ctrl 키를 + V. 방향으로 그래서 수 여기에 나쁜 일이 일어날까요? 좋아, 그럼 segfaults. 따라서 일부 이전 배경은 알 수 그들은 때 일반적으로, 컴퓨터에게 입력을 많이주는 나쁜 - 아마이 같은 긴 이름을 수신하기위한 수 없습니다 일이 생겼어요. 사실, 웹의 세계도,이 꽤 발생 당신이 때 당신은 웹 사이트를 설계,하고 상기 할 때 디자인 페이스 북, 당신은 임의의 결정을 내려야 얼마나 오래 될 사람의 같은 앞, 페이스 북 사용자 이름은 수? 또는 얼마나 오랫동안 다른 사람의 이름이 될 것인가? 얼마나 다른 사람의 전화 번호가 있어야하고 좋아합니다. 프로그래머가 나쁜 가정을한다면, 프로그램은 깨 당신은 그들에게 추가 정보를 입력 더 많은 출력을 제공하려고하기 때문에 오히려, 그들은 메모리가보다. 또는 RAM, 난 Enter 키를 그래서 지금 경우에 할당하고, 우리가 도서관에 있었기 때문에 그 프로그램이 실제로 일 우리는 실제로 특정 사건을 예상. 그러나 의심 할 여지없이 이번 학기, 당신은 하나 이상을 기록합니다 이러한 단어를 말할 것이다 프로그램입니다. 지금부터이 주 기억, 아마 지금부터 이틀 이요. 세분화 잘못 나쁜 일입니다. 당신하고 뭐 그 컴퓨터에 참조합니다 예상하지 않았다. 당신과 그 경우, 프로그래머가 예상하지 않았다. 대부분 양말의 더미는 다양한 있었 맘에 코너의 경우는 우리가 발생했을 수 있습니다. 마찬가지로 프로그램에서 당신은 얼마나 긴 기대하지 않은 경우 사람의 이름은 될거야. 또는 무엇을 나는 악의있는​​ 사용자를 가지고 있고, 자신의 이름이있는 경우 꽤 짧은,하지만 그들은 단지 노력 중입니다 나를 엿먹이려고? 어떻게 내 프로그램의 동작 할거야? 그렇다면, 무슨 일이 실제로 충돌 할 수 있습니다. 그래서 한번 해보자 구. 90 분이 끔찍한 시간이 오래입니다 컴퓨터 과학을합니다. 왜 우리는 5 분을 복용 습관에 못 여기 깨, 우리가 돌​​아 왔을 때, 우리는 몇 가지로 잠수 할것입니다 더 복잡하고 강력한 프로그램? 5 분. 괜찮아요. 어느 빠른 댓글 달기를 수행 할 수 있습니다. 나는 그이 전에 화면에었지만, 뭐 저는 들었습니다 내 입에서 나온 cs50.net/rsvp이었다. 이 올바른 것입니다. cs50.net/lunch. 이제 당신은 / 점심 시간에 이거 RSVPing 시도 할 수 있습니다. 그러나 지금은이 작업을 수행 까. 그래서이 사람들의 많은을 위해 빠르게, 슈퍼 새로운 있었다. 일부 사람들에 대한 오래된 모자. 그러니까 그냥 잠시 돌려 보자, 우리가에 도착을 확인 잠시만 전에이 여러분, 안녕하세요 출력. 그래서 일단,이 CS50 어플라이언스가 있습니다. 다시, 소프트웨어, 문제의 부분은 1로 설정하는 것은 말할 거에요 를 다운로드 할 위치를 어떻게 클릭하는지, 그것을 다운로드 등등. 당신이 그 지침을 따르십시오되면 그 다음, 당신은 할 수 있습니다 창문을 극대화하고, Mac 또는 PC가 보 이와 같은 작은 선물. 검정색 배경, 모든 상단의 홈 폴더 파일은 휴지통 상단 왼쪽에 수,가 맨 아래에있는 메뉴를 선택합니다. 그럼 다시, 맥 OS 또는 Windows에 정신에 아주 유사한, 이 리눅스로 발생하더라도. 그래서 우리는 다음에 무슨 짓을 한거야? 음, 우리는 프로그램을 작성하는 시작했다. 모든이를 작성하는 데 걸리는 지난 주에 온 기억 프로그램은 간단한 텍스트 편집기입니다 메모장이나 텍스트 편집기처럼. 솔직히, 당신은 Microsoft Word를 사용 할 수도 있습니다. 그게 아주 때문에 나쁜 일이 결국 발생합니다 강압적 프로그램을 작성하기위한 솔루션 플러스는주지 그 잘못된 파일 형식 저장합니다. 하지만 그게 전부 그냥 텍스트 편집기, 워드 프로세서이야, 프로그램을 작성해야했습니다. 그래서 CS50 어플라이언스에, 우리는 하나의 간단한 방법으로이 작업을 수행 할 수 있습니다. 우리는 왼쪽 하단에이 아이콘을 클릭 할 수 있습니다. 그리고 다시, 문제는 1이 당신을 조언하고, 짜잔을 설정 - 당신은 우리가 시작할 수 있습니다 검은 색과 흰색 인터페이스를 코드를 작성. 그러니 다시 슈퍼 간단한 프로그램을 작성하는 시작하자. 나는 파일 저장하도록 갈거야, 나는 전화해서 이, hello2.c, 보자. 그리고 난 그냥 jharvard를 클릭하여 말하는데, 넣어 의 홈 디렉토리에, 난 정말 상관 없어요 이 사람이 어디로 가는지. 그리고 저장합니다. 그리고 지금은 내 프로그램을 작성할 수있을 것입니다. 그리고 이전에 제가 INT를 작성해야한다는의 기억 주 (무효). 맨 왼쪽에 확대합니다. 그리고는 printf 말하고 싶은 두보십시오. 지금은 줄 바꿈, 가까운 견적, 가까이 괄호, 세미콜론. 그리고 제 생각 엔 내 터미널 창으로 여기에 이​​동 단지 편의를 위해 gedit에 내장. 그리고 난 가서 인사 할 쓰겠는 모르겠지만 혼자, hello2 안녕하세요. 그래서 내 파일 hello2.c라고. 그러므로 내 파일 이 경우 hello2를 호출해야합니다. 젠장, 내가 무슨 짓을 한거야? 당신이 기억을 되살려 좋아, 내가 분명히 선을 생략 무엇 이전 프로그램이 같아. 하지만 우리가 떨어져이 뭐라 할 수 있는지 보자. 불행하게도, 대부분의 사람들은 프로그램을 작성하는 사람이있는 우리는 프로그램이 모두 잘 일을 단순화하지 않습니다 써주세요. 그래서 우리는 매우 무엇을하지 않는 이상 탈지 종류의해야 여기 감지하고 우리가 무슨 문제가있는 지 알아 낼 수 있는지 확인하십시오. 암묵적으로 C를 선언가 매우 첫 번째 줄 말한다 유형 INT와 printf 라이브러리 함수. 좋아, 내가 그 부분을 이해. 그러나 내가 printf 사용한 사실에 alluding 것 같다 잘못 든. 그리고 무슨 느낌이 뭐가 문제 야? 난 그냥이 파일에있는 컴퓨터를 가르치는 안 stdio.h했다. 지금은 지금 printf 것을 기억해야 stdio.h에, 그리고 실제로 다른이있을거야 우리가 익숙해 질거야하는 동일한 파일에 작동합니다. 그래서 지금 내가 진행하고 Ctrl-L 방금 삭제 나갑시다 그 거리 hello2을 다시 실행하면, 봐라. 그리고 우리는을 위해 다시 더 복잡한 명령을 설명합니다보다 오늘의 목적. 그러나 그 소리를 실행 못했고, 그 소리는 소스 코드를 소요 0s와 1 초에서 침을 뱉. 이 경우 0s와 1S 그는 어떤이라고? 좋아요, 코드를 반대합니다. 그리고 그들이 처한 파일은, 그래서,라고합니다 이 경우 hello2. 내 텍스트 파일 hello2.c이기 때문에 입력합니다. 그리고 이제 두 느낌표, 감탄을했습니다 포인트, 느낌표. 좋아, 지금 우리가 문자열을 얻을 수있는 능력을 가지고 있으므로 분명. 음, 우리는 사용자로부터 다른 무엇을 얻을 수 있나요? 잘 CS50 도서관에서, 다른 기능은 그거 이 첫 몇 일 동안 우리의 삶을 단순화 할 수 있습니다. GetChar, GetDouble, GetFloat, GetInt, GetLongLong, GetString. 음,이 첫번째의 쉬운을 꺽을 두자. GetString 그대로 그렇게하지 ​​않습니다. 단지에 뭔가를 입력 할 사용자를 기다리고 앉아서 그리고 최대한 빨리에 뭔가를 입력하고, 그 입력을 누르으로 이 값에 뭐가 않습니다. 그러니 정확히 볼 수는 예로 돌아 가자 GetString 짓습니다. 내가 가서 gedit, hello.c에서 열어 보자, 그리고 기억 우리가 그만 둔 곳이 바로 휴식하기 전에이 있습니다. 그럼 이제 좀 더 자세히 구별을 애타게 보자. 따라서 6 호선에 두 가지가 있습니다 현재 벌어지고 있습니다. 같은 기호는 상반기와 하반기를 분리합니다. 따라서 등호의 왼쪽에, 우리는 문자열의 말을. 그리고, 그냥 일반 시민들의, 문자열의 무슨 하고, 당신은 생각하십니까? 이 무엇을 만드는거야? 그럼 S라는 문자열을시키고 있어요. 지금 그건 정말 무엇을 의미합니까? 음, S라는 문자열 공간을 예약있어. 꽤 괜찮 없습니다. 이것은 무엇을하는거야? 아시다시피 컴퓨터는 하드 드라이브를 가지고, 그 어디 파일이 저장됩니다. 컴퓨터 RAM를 가지고 있고, 프로그램이로드되는 곳 이죠 그들은 실행하는 동안. 그래서 당신은 때 아이콘 및 Microsoft Word 열립니다을 두 번 클릭 업, Microsoft Word는 인, RAM에 말하자면, 실행중인 컴퓨터의 전자 부품. 회전 수도 없어 실제, 기계 부품, 어디서 데이터는 일반적으로 장기적으로 저장됩니다. 따라서 문자열 s은 (는) 거의 컴퓨터가 나에게 말하고 충분한는 문자열에 맞게 RAM. 때문에 지금 생각하면 oversimplification 약간입니다 문자열의 크​​기 제한은 어떻게 할거야? 자, 우리가 실제로오고 있으므로 주, 아직 몰라 우리는 실제로 문자열 층을 다시 끌어 낼거야 우리는 정말 무엇인지 말해주지. 문자열은 지금, 우리의 세계의 좋은 단순화합니다. 그러나 문자열 s은 (는) 지금, S라는 문자열을 선언합니다. 문자열을 선언합니다. 하지만 사용자가 문자열을 RAM의 일부 공간을 보유 입력하는 방법에 대한. 지금의이 등호의 오른쪽에서 찾아 보자. 그럼 GetString ()는 그 말한다. 그리고 약간 정신이 확인합니다. 괄호 안에 아무 것도 없다는 사실 GetString에 대한 무엇을 의미? 이 인수도도지지 않습니다. 즉, 어떤 방법으로 그 행동에 영향을 미칠 수 없습니다. 당신이 그것을 사용 때마다, 그것은 문자열을 얻을 것이다 그게 전부예요. 대조적으로, printf, 희망의 동작 수행 때마다 변경할 수 있습니다. 그렇지 않으면, 꽤 쓸모 인쇄 기능입니다 경우 이 같은 일을하지 않습니다. 항상 데이비드라도 인쇄되면 임의의 모든 시간을. 따라서 printf 인자를 가지고하는 것이 합리적이다. 내가 원한 때문에 GetString 정말 인자를 필요가 없습니다 사용자의 문자열을하며 무슨 사용자의 방법 다른 문자를 입력하여 역 동성을 제공하는 키보드마다. 따라서 궁극적으로 무엇을합니까 GetString는 무엇입니까? 이 작은 블랙 박스로 생각하시면됩니다. 그리고이 블랙 박스는 입력을지지 않습니다,하지만 때 탕에 어서, 어서 사용자가 들어 입력했다는 문자열을 침을 뱉 그리고 등호가 있다는 사실이 소요될도 의미 오른쪽에 내 치고 내부를 저장하는지 왼쪽에거야. 여기에 따라서 등호가 실제로 의미하지는 않습니다 평등, 비교적 기술적 과제를 의미합니다. 오른쪽에있는 값을 가지고, 그리고에 넣고 왼쪽에있는 변수. 그래서 모두 거기 일어나는 그입니다. 지금 7 호선에서, 우리는 printf이라고합니다. 따라서 printf 잘하면 지금 쯤은 좀 지루을 받고있다. 그래서 형식 문자열을 인쇄 할 수 있습니다. 어떤 문자열? 인쇄, "H-E-L-L-O, % s을 ! \ N ". 좋아, 내가 % s에 대한 플러그인에 무슨 일을하려는 거죠? 그대로, 무엇이든지 S에 저장됩니다. 따라서이 경우, 작은 정신 검사, 얼마나 많은 인자 않습니다 printf 걸릴? 그래, 난 하나를 들었습니다. 또 하나 들었습니다. 둘째, 난 두 들었습니다. 그리고 방법에 대한 세번째는 요? 좋아, 셋? 좋아요. 세 가지 답은 둘 중 한 사람 만이 올바른 것입니다. 그래서 인수는 다시 함수의 동작에 영향을 미칩니다. 과거에는 printf 하나의 인수를 않았다. '여러분, 안녕하세요 "는 하나의 인수했습니다. 이 쉼표가있는 곳 그러나, 지금 확인합니다. 쉼표는 의미 견적 / 인용을 끝 맺다, 외부입니다 야 printf, 여기 두 번째 인수를 제공합니다. 따라서 대부분의 프로그래밍 언어에서 쉼표 별도의 여러 인수. 그래서 답은 있기 때문에, 확실히 하나가 아닙니다 이 쉼표가 있습니다. 따라서 최소한, printf 분명 두하고있다 인수이 시간. 하지만 여기 트릭 질문 할 수있는 기회가 무엇인지 이 쉼표는? 이 세 가지 인수가 실제로이 있다는 의미합니까? 이,이,이. 그래서 더 그 쉼표는 인용 부호 안에 있기 때문에, 어떤 없습니다 정말 영어 만 아름다움이라는 뜻이에요. 그것은의 수와는 아무 상관이없는 일 이 프로그램에 인수. 그래서 쉼표 따옴표 외부에 있습니다. 그리고 0을 반환합니다. 지금의달라고 종류의에 대한 신념에이 한 명을 데려와 오늘, 그리고 기능이 완료되면 실행 알 코드의 라인은, 그들은 일반적으로 어떤 값을 반환해야합니다. 이 경우, 단지 주는 정수를 반환해야하기 때문에 그것은 바로 언어 C 작동 방법입니다. 아무것도이 잘못되지 않도록하기 때문에이 프로그램의 느낌 좋아, 난 그냥 열심히 반환 0에서 코딩. 그러나 반면에, 나는 의사 코드에서이 작업을 써야 겠어 우리는 양말을 한 경우, 지금 많은 요셉과 같은가요 예를 들어 지난 주에. 뭔가 잘못되었을 경우 -이 실제 코드가 아닙니다 - 갔다 잘못된 그럼, 그럼 ..., 1을 반환합니다. 다른 0을 반환합니다. 그래서 우리가이가는 곳입니다. 이것은 단지 의사 실제 C 코드가 아닙니다. 그러나 여러분이 제공 할 수 방법입니다 다른 가능한 값. 하지만 지금은 그냥 가서 공을 반환하는거야. 자, 지금까지 문법, 기능에 대한 질문 나 맘에 들어? 네, 다시 인치 대상 : [안 들리게] 데이빗 MALAN : 당신이 더 크게 조금 말할 수 있습니까? 왜이 프로그램을 반환 0 짓을하고? 대상 : [안 들리게] 데이빗 MALAN : 제가 게으른이기 때문에 아, 저, 미안 해요. 더 좋은 학업 응답, 0을 반환하지 않습니다. 주 경우의 종류, 기술적으로 C 말하여이 작업을 건져 내 수 명시 적으로 값을 반환하지 않는 경우, 0이 반환됩니다 자동으로. 사실 어떤, 난 그냥 안 가려진거야. 하지만, 난 이런 식으로 처리해야했다 네. 내 실수 아닌 다른 것보다 더 흥미로운 테이크 아웃 없습니다. 응? 청중 : 보통은 무효에 입력 할 때, 그 말은 당신을 의미 뭔가를 반환하지 않습니다. 데이빗 MALAN : 맞아요. 대신 경우에, 함수의 이름 앞에 지정 여기를 예를 들어, 무효, 기능 아무 것도 반환하지 않습니다. 따라서 난, 반품 또는 전혀 아무것도 말할 것입니다 그리고 그건 일관성이 될 것입니다. 그리고 우리는 그에게 다시 돌아 올꺼예요. 그리고 그냥 FYI, 학습과 어획량 중 하나 책의 수백을 가진 세계에서 프로그래밍과 거기에 웹 사이트의 수백이 늘 것입니다 다른 책에서 다른 구문을 참조하십시오 다른 사람들에 의해. 우리가 할 섹션 및 강의에 최선의 노력을 다하겠습니다 실현 일관성. 하지만 가끔은 당신이 충돌 구문을 볼 수 있습니다. 따라서 의심, 그냥 부탁을 할 때마다. 일반적으로, 우리는 강의 섹션에 처리 할게 거의 항상 올바른 방법에 제시한다. 지점의 경우 때문에 나는 거의 항상 말한다. 다른 질문? 대상 : % s이 (가) 어플라이언스의 외부 존재합니까? 데이빗 MALAN : % s이 (가) 어플라이언스는 외부의 존재합니까? 예. s은 (는) C.와 함께 우리가 그것을 사용하는 사실을 수행하는이 % 수 있도록 어플라이언스는 근본적와는 아무 상관이없는 일 우리가 사용하는 언어의 기능을 제공합니다. 사실, 지난 주에 우리가 내 Mac을 사용할 때, 제가 쓴 곡 내 Mac에서 C 코드입니다. 내 Mac에서 % s을 (를) 쓸 수 있으며, 당신은 그걸를 사용할 수 Windows 컴퓨터가 컴파일러를 설치하는 경우, 같은 Microsoft의 비주얼 스튜디오입니다. % s에 그럼. 우리가 오늘이 창 안에서하고있는 모든에있다 와 C. 그리고 근본적으로 아무것도와 문제의 시스템을 운영. 반대로, 흑인과 백인 터미널 창 -시 나는 혹시 같은 일을 입력하고, RM, 및 CD거야 - 그 운영 체제와하고 있습니다 주변 탐색. 그래. 대상 : 내 말은, CS50 라이브러리를 라이브러리를 의미. 데이빗 MALAN : 좋아, 키워드 문자열을 의미하면, 그 만 올바른, CS50 라이브러리에 존재합니다. 그 C 그 자체가 존재하지 않으며, 실제로는 몇 주의 우리는 CS50 라이브러리를 버리고 시작됩니다 말하자면, 처음 자신의 일을. 다른 질문? 그래. 대상 : [안 들리게] 데이빗 MALAN : 좋은 질문입니다. 명령 케이스는 문자를 구분 있습니까? 그리고 내가 여기서 구별을 보자. 따라서 명령은 일반적으로 우리가에 작성해야하는 것들 터미널 창에서 창 하단에. 여기 물건은 성명 또는 C 코드 것입니다. 그러나 두 경우 모두에서, 대답은 동일합니다 네. , C의 상단에있는 코드와 이러한 환경 모두 에서 운영 체제 명령 행 하단 케이스를 구분합니다. 그래서 당신은, 자본 G와 GetString를 대문자로해야합니다 자본 S. 귀하는 모두 소문자로 printf 작성해야합니다. 당신은 소문자로이게를 입력해야합니다. 그럼 거의 모든 상황에서 이번 학기, 사건에 있어요, 윌 사실, 문제. 예. 대상 : [안 들리게] 데이빗 MALAN은 : 아, 괜찮 니, 우리는 파일을 어떻게 있다면 hello.d했다. 그럼 D는 프로그래밍 언어입니다 밝혀졌다. 그리고 경우에, 우리는 실제로에서 프로그램을 작성할 수 그렇게 패션에서 해당 파일을 컴파일합니다. 우리는 할 수있다, 실제로, 짧은 대답은, 나도 몰라. 그래서 우리는이 작업을 수행하는거야. 내가 가서 새 파일을 만들 수 있습니다. 여기 스핀은, 솔직히 일반적으로, 때마다 의심입니다 이번 학기에, 당신은 어플라이언스 또는 컴퓨터가 열, 가서 뭔가를 시도하십시오. 그래서 hello.d라는 파일을 저장거야. 이 저장합니다. 그리고 입력 안부 make 명령을 실행시킬거야. 그것은 C가 더 가능성이 있다고 추론 할 듯 D보다 이번 케이스는 아니군요. 다른 질문입니다. 그래. 대상 : [안 들리게] 데이빗 MALAN : 네, 한번 더 그런 말을. 대상 : [안 들리게] 데이빗 MALAN : 어떻게 당신이 그걸를 진단하거나에 대해 갈거야 문제 해결인가? 그들은 다른 언어, 그러니 가능성이 높습니다, 때문에 대부분 당신은 완전히 얻을 것입니다 다른 프로그램은 출력. 당신은 완전히 다른 메시지를 것입니다. 또한 단지 디자인의 관점에서, 아마 틀림없이 될 가난한 디자인 결정 두 가지를 작성 할 거의 동일라는 이름의 파일이있는 언어에 를 사용하여 동일한 디렉토리 수 있도록 같은 자동 도구입니다. 그래서 또한, 밀어과이 일을 15 년 동안 말할 수 그런 실수를하지 않습니다. 발생할 수 있습니다. 하지만, 내 생각 엔, 그냥 여러가 장소에 기술적 방어. 또한 상황이 발생할 것입니다 오류 메시지는 해당 겠어 결국 문제가 무엇인지 알 수있다. 그러나 가능한 코너 케이스. 좋아요, 그럼의 다른 중 몇을 소개하겠습니다 기능은 여기 이제, 우리는 더에 구축 시작할 수 있습니다 더 복잡한 프로그램입니다. 그럼, 우선 수학. 따라서 수학 예제는 첫 주에 쉽게이긴합니다. 이것은 모든 프로그래밍에 관한 말하지 않는 것입니다 수학. 물론, 다양한 기능을 이해 수학은 대수 특히,이 여기에 큰 관련. 높은 수준의 CS 클래스, 선형 대수에 미적분과 같은. 하지만 우리가 이번 학기를 무슨 짓을할지 대부분은되지 감소 그다지 수학, 그리고 확실하지 산술 이라기보다는에, 정말 단지 논리와주의 생각합니다. 그리고 컴퓨터 과학은 오래 결합을 가지고, 특히 고등학교 수준에서, 수학과 함께합니다 약간의 오해의 소지가. 우리가 정말 쓸 거라고 프로그램의 대부분은, 때문에 문제 해결에 대한 높은 수준과 집중의 일종 즉, 물론, 어떤 또한, 뺄셈, 다양한를 사용할 수 있습니다 수학 공식이나 같은, 하지만 하루의 끝에서, 그것은 생각에 관한이 아닌 당신은 TI처럼에서라면 어땠 구현 고등학교 계산기. 그 말과 함께 그래서, 지금이있는 일을 해보자 구 우리가 여행을 할 수 있도록 존재 수학 연산자 프로그래밍의 기본 요소 중 일부 나에 이상 CS50 라이브러리는 제안으로이 경우 C. 그래서,있다 오늘날 우리는 GetString을 사용하는 -과 순간에 아마 다른 기능 - 하지만 컴퓨터에 다른 데이터 유형이 있습니다. 하루의 끝에서, 컴퓨터는 0s와 1S 알아요. 그러나 지난 주에 우리는 이진 시스템에 대해 얘기하는 기억 숫자 0과 같은 숫자,, 1, 2를 대표에 네이트의 동영상에서와 같이 최대 8까지의 모든 방법. 그리고 우리로 훨씬 더 높은 셀 수 여기를 무대로 했어요. 하지만 당신은 숫자 만 문자뿐만 아니라를 대표하고 싶다면, 우리, 인간은 어떤 임의의 시간 때우기해야 컨벤션으로서, 하루의 끝에있는 경우 모든 컴퓨터 0s와 1S, 잘 우리가 당연를 표현 할 수있는 능력은있다 대표 0s와 1S의 패턴을 표준화 시작 다른 것들. 문자를 나타냅니다 0s와 1S의 패턴. 편지 Z를 대표 0s와 1S의 패턴. 색상 청색을 나타내는, 또는 0s와 1S의 패턴 빨강, 또는 같은. 우리는 자신을 표현하기 위해이 0s와 1S의 모든을 사용할 필요가 하지 않은 다른 방식으로 다른 상황, 반드시 숫자. 따라서 표현의 관점에서, C는 다른 데이터 유형이 우리는 지금까지이 중 하나를 봤어요. 우리는 INT 보았는데, 화면에 고지 그게 아니 잖아 지금 문자열입니다. 문자열이 사실에 다시 C.에 존재하지 않습니다, 그것은 네요 단순화 우리는 첫 번째로 제시하는 주 몇. 문자는 개별 문자입니다. float이 소수점과 숫자를, 진짜 숫자입니다 왼쪽과 오른쪽의. 이중 다시 이전의 배경 사람들을 위해 무엇인가? 따라서 이중 두 번 일입니다. 많은 정밀도로 두 번 추가합니다. 그래서이 무엇을 의미합니까? 따라서 이러한 각각의 경우에, 세계 표준화가 있죠 얼마나 많은 비트 표현하는 데 사용됩니다 이 일의 각. 당신은 일부를 이미 네이트의 ASCII 동영상을 감상 한면 pset 0, 나중에 이번 주에 당신은, 당신은 아마 알 수있을 것입니다 그 ASCII - 문자 표현 - 얼마나 많은 비트를 사용합니까? 그리고 당신은 심지어 데모에서 어떻게 지난 주를 기억 할 수 많은 사람들이 무대에 있었다. 일반적으로, 7 자, 8. 일반적으로 8 자, 그리고 연장이라고 뭔가가 있군요 모든 8 비트 대신 7을 사용하여 ASCII. 그러나 일반적으로, 우리는,이 경우에 2의 거듭 제곱에 8 이야기. 따라서 프로그래밍 언어에서 문자는 일반적으로 8 비트입니다. 따라서 정수는 일반적으로 32 비트입니다. 부동은 일반적으로 32 비트입니다. 더블은 일반적으로 64 비트입니다. 그리고 그게 무슨 뜻 이죠? 당신이 더 큰 숫자를 나타내는 수 있다는 것을 의미, 또는 경우에 실제 숫자, 당신은 이후 더 많은 숫자를 가질 수 소수점 자리. 이 경우에 더 많은 정밀도. 이제 긴 긴 안타깝게도 이름입니다. 따라서 32 비트입니다 정수가 있습니다. , 32 비트 아뇨입니다 긴이 있습니다. 그리고 64 비트입니다 긴 긴. 하지만 그 중 일부는 상황에 문자를 구분합니다, 그것은 따라 달라집니다 당신은이 컴퓨터의 어떤 종류. 따라서 일반적으로, 우리는 숙제 나 퀴즈에 지정합니다 때 실제로 문제. 그러나 중요한 점은 서로 다른의가 있습니다 여기에 표현. 그럼 실제로 프로그램에 뛰어 보자. 처음부터이 하나를 작성하기보다는, 제가 앞서 가자 오늘날의 소스 코드에서 엽니 다 -이 모두의 온라인 -에 당신이 온라인으로 주변에 땜장이 노릇을하다하려는 경우, 또는 반환 컴퓨터의 어플라이언스 수요일 안내 하는 것은 코스의 홈페이지에 연결됩니다. 여기에 슈퍼 간단한 프로그램입니다. 그러나 그 상단에 새로운 뭔가를 조금있어 그 우리는 이전에 없었어요. 텍스트의 푸른 라인의 많은. 따라서이 파란색 라인은 의견을 나타냅니다. 그래서이 쓸 수 있도록 프로그램에 매우 유용 자신에 대한, 또는 동료, 또는 친구에게, 또는 일부 의견 교육 친구들, 그 종류의에 어떤 일이 일어나고 있는지 설명 이 파일을하지만, C 코드 자체와는 아무 상관이 없습니다. 기능적으로 프로그램과는 아무 상관이 다만 미학. 그래서 C에서이 작업을 수행하는 방법은 일반적으로 시작되어있는 / *, 그리고 당신과 의견이와 함께 귀하의 의견을 종료 * /. 그리고 당신은 정말 항문과 사진의 종류를 그릴 같은 경우, 다음 별 전체 많이 넣어 드리고 싶은데요을 할 이와 같은 작은 상자. 그게 중요한 게하지만, 아무도하지 않습니다. 그일이 중요한 건 처음이다 그리고 가장 마지막. 이 멀티 라인 주석을라는거야. 그리고 자주 별과 상자를 어떻게 그냥 사람 컨벤션 같은에서 일하면 자유 시간이 많은 경우. 당신이 의견에 기록 한 후 따라서, 일반적으로, 이리와 프로그램의 실제 배짱. 다음은 익숙는 # 포함입니다. 그리고 그냥 빨리이 필요 필요하거나하지? 대상 : 필요한. 데이빗 MALAN : 그럼 실제로 필요가 없습니다. 왜,하지만, 그럴 필요는 없네? 그래서 더 printf가 없습니다. 사실. 우리가이 프로그램에하고있는 모든 수학입니다. 그래서 실제로 그런 삭제할 수 있습니다. 그래서 당신은 항상에서 아무것도 포함 할 필요가 없습니다 프로그램의 상단. 그럼이 비트를 단순화 보자. 그리고 지금이 프로그램이 무엇을 확인합니다. 하지 많은 관심. INT X = 1. 음,이게 무슨 짓을하는 건가? 음, 전에서 다시 정신 모델을 생각합니다. 이 식의 왼쪽은 무엇입니까? 정수위한 공간을 만듭니다. 따라서 공간이 얼마나? 음, 우리는 32 비트 이제는 줄 수있어. 이전 문자열은 기술적으로 32 비트했지만, 더 많은 미래에 그 있습니다. 그러나 정수는 32 비트입니다. 여기 왼쪽에있는이 식 그래서 정수는 x 단 안녕 말한다 운영 체제 나에게 RAM의 32 비트를 제공 - 그렇지 않으면 RAM의 4 바이트로 알려진 - 그게 내가 그 공간에서 정수를 넣을 수 있습니다. 어떤 정수에 놔두고 싶지 거죠? 음, 그냥 숫자 1. INT y는 2지면 동일한 일을하더라도 숫자는 크기면에서 더 큰 것입니다. 숫자 자체는 아직도 32 비트입니다. 그냥 비트의 패턴 것은에 다른 1 대 2를 나타냅니다. INT z는 지금, 다른 32 비트를 제공 그 Z 전화, 그리고 넣어 말한다 거기에 1과 2의 합계. 이제 z는 아마도, 값 3을 저장 될 수 있도록 그리고 0을 반환합니다. 이제이 프로그램은 그 관심 있는게하나요? 그래서 실제로 어떤에 흥미있는 아무 짓도하지 않습니다 감각 때문에 왜? 그것은 어떤 수학을하고 있어요. 하지만 .. 답을 반환 없어. 그것은 0을 반환있어. 이 답을 인쇄 없어. 그래서이 프로그램이 같이 근본적으로 쓸모가 지금 서 있습니다. 그것은 일을 좀하고 있어요. 그것은 몇 초 번호 또는 마이크로에 걸릴 거예요 실행하지만 실제로 아무 짓도 안하고있어 인간에 ​​대한 유용합니다. 그럼 실제로 지금 실제로 있어요, 지금 math2을 열어 결과를 인쇄합니다. 그래서도 우리는 앞의 예에서 유추 할 수 있습니다. 나는 간단한 수학을 수행하려는 경우, INT X = 1, Y = 2. Z은 1 플러스 2입니다. 이는 분명히 인쇄하려면 어떻게가는거야? 그냥 3. 너무 빨리 정신이 확인합니다. 내가이 디렉토리에 이동하세요. CD source1m 했어요. 내가 가서 math2을 입력 보자. 어떤 오류 메시지가 나오지, 그럼 내가 실행 보자 - 저 math2을 실행 a.out-- 두지. 입력합니다. 그리고 실제로, 그것은 3 출력한다. 음의이의 변종을 살펴 봅시다. math3.c에서, 우리는 지금이 예를 갖추고 있습니다. 그래서 재미 중의 하나이기도 해. 그럼 여기서 하나에, 대답은 (10)에 의해 1 나누어 얻을 수있다 그리고 내가 float 타입으로 선언 한 것을. 왜 나는 부동되고 싶어합니까? 음, 분수입니다. 진짜 번호가 생길거야. 이 경우 10 % - 그럼 희망 0.1이 될거야. 그리고 아웃 한 다음 인쇄 할 무엇을 원하는 겁니까? 음,이 답변. 음,이 간격 먼저 애타게 까. 따라서 왼쪽에 선언 떠, 그 답 전화하십시오. 오른쪽에서 1 (10)에 의해 나누어 것을 삽입합니까 변수의 내부를 바랍니다. 자,이 줄은 좀 더 이상한 보입니다. 하지만 일부 친숙한 기능을 확인합니다. %가 나오고 의미 자리 표시 자. F 뜻은 실제 부동 소수점 값입니다 번호, 소수점이있는 것을. 무슨 0.2 뜻은? 누구나 이전 경험 알지? 두 소수점 이하 자릿수. 그래서 우리가 전에 본 적이 없는데,하지만 중 방법 조금 더 printf 제어 및을 행사 말하며, 소수점 이후에 나에게 30 점을 제공하지 않습니다 대신 나에게 단 2을 제공합니다. 그리고가 가서이를 실행할 수 있습니다. 따라서 수학 3 할, 그리고 지금 입력, 제가 수학 3 실행할 수 있습니다. 그리고 그건 옳지 않아. 우리는 우리의 첫번째 진짜 버그가 발생 것 같습니다. 글쎄, 난 그냥 충분히 원하는 것도 아니다. 그럼 내가 여기 가자고, 그리고이 날은 20 진수를 넣어 이 포인트 장소. 그리고 저를 컴파일 해 실행, math3을합니다. 확실 (10)에 의해 나누어 하나는 0이 아닙니다. 그래서 무슨 일이에요? 괜찮아, 음, 사실이 일 필요는 없습니다. 그건 좋은 생각입니다. 이 단지 우연의 일치 우리가이 일을하고 있는지. 그러나 이번이 아니라는 것을 증명하기 위해, 나는드립니다 무작위로 뭔가를 반환합니다. 그냥 잘못을, 집에서이 작업을 수행하지 마십시오. 그러나 math3을 저에게 그걸 실행할 수 있습니다. 그래서 재하는지와는 아무 상관이없는, 오직해야하는 제가 인쇄 좋겠어요. 하지만 여기가 들었습니다. 왜? 청중 : 그럼 우리가 숫자를 작성해야 같은 부서 - 데이빗 MALAN : 그래, 좋아. 그래서 우리는에 참가 번호를 작성해야 부동 소수점 여기를 부서는 스스로 값. 그럼 문제가 여기로 이전됩니다 : C, 많은과 마찬가지로 언어는 서로 다른 데이터 유형이 있습니다. 그리고 그 데이터 유형은 예를 들어,이 여기에 있습니다. 그리고 여기, 1을 입력 할 때 그리고 나서 문제의 데이터 유형 유형 10, 어떤 데이터 유형은 아마입니까? 그래서 그래, 아마 int는거야? 더 소수가 없기 때문에 확실히 부동 아닙니다 점 또는 그런 건. 그래서 정말, 내가 정수로 나눈 정수를 갖추고 있습니다. 따라서 수학 및 컴퓨터에 대한 흥미로운 것은이 - 당신은 정수를 사용하여 분할하는 경우 1 10으로 나눈 값, 예 0.1입니다. 그러나 정수하여 정수를 구분 할 때, 답변은 지금에 때문에 정수 여야합니다. 그리고 함축 한 다음 뭐죠? 그럼, 답변이 1 10로 나눈 경우는 0.1 동일 무엇 컴퓨터가 어떻게 할 것은 어떻게에 아무 생각이 없습니다 그 부동 소수점 값이 아니라니까, 0.1을 나타냅니다 정수, 그것은 이후 모든을 잘라 버려야하는거야 소수점하고 당신에게 처음에 0을 표시합니다. 그리고 부동 소수점으로 출력 있다는 사실 값은 단지 미적 일이야. 나는 컴퓨터가로 인쇄 강요 해요 때문이다 포인트 값을 떠. 그리고 실제로 나는 부동으로 선언했지만 수학은 여기에 무슨 일이. 그럼 내가 실제로 한 아주 쉬운 방법에서이 문제를 해결하자. 왜 그냥하지만​​, 10.0 및 1.0 안 기술적으로 난 그냥 그 중 하나를 수행 빠져 나가지 수 있습니다. 지금 내가 가서 math3을 보자. 내가 가서 지금 math3을 실행 입력 보자. 그리고 지금, 친구 오. 이제 우리는 모두 새로운 문제가 있습니다. 그래서 지금 더 나은, 우리는 0.1 접근은했지만, 분명히 무슨 여기에 잘못? 하지 않는 한 우리는 오른쪽 년 동안 당신에게 거짓말을 했어요? 한, 그래서 뭐가 사실별로 0.1이 10으로 나눈 값 정말 여기가 어디지? 그럼이를 통해 이유의 종류 논리적으로 할 수 있습니다. 컴퓨터는 시작 RAM의 유한 금액이있는 경우 로하고, 실제로 컴퓨터는 32 비트를 사용하고 있습니다 포인트 값을 떠, 그 이유를 위해 서 이 경우 비트, 32 유한 수는, 그래, 당신은 할 수 짐을 많이 나타냅니다. 사실은 사십억 다른 값이 될 수 있습니다 32 비트, 2 32,하지만 여전히 유한 야와 함께 차지했다. 그럼 문제가 실​​제의 무한한 숫자가 있습니다 숫자, 좋아. 당신이 저에게 실제 번호를 알려면, 항상 하나를 찾을 수 있습니다 단지 조정에 의해, 약간은 덜 약간 더 큰 소수점 뒤에 숫자를. 당신은 비트의 무한 번호가되지 않을 경우, 가능성이 무한을 대표 할 수 없습니다 실제 숫자의 번호입니다. 그래서 컴퓨터에서이 고유 한 부정확가 있는데, 이것은 심지어 가장 간단한에있는 모든 시간이 걸려 넘어지기 이 같은 프로그램. 뿐만 아니라뿐만 아니라 아주 실제 문제 인치 사실, 그냥 좀 봐 잠시 시간을 가져 가게 실제로 현실에서 일어난 일. 우리는 분 중 첫 부분을보고, 그리고 것 우리는 링크를 온라인으로 게시됩니다. 그러나 이것은 매우 잘못 갈 수 단지 일에 선언과도 같은 것입니다 솔직히, 매우 비극적 인 방법으로 이런 일이 없을 때 평가하거나 할 때 우리 인간은 실수를 현대적인 컴퓨터의 구현 세부 정보 이러한 종류의. [VIDEO 연주] - 우리는 지금 현대 경이로운에 엔지니어링 재해로 돌아갑니다. 컴퓨터. 우리는 종종 좌절 문제를 받아들이 왔어요 그들과 함께 그를 이동합니다. 버그, 바이러스, 소프트웨어 결함은에 작은 가격 아르 편의를 위해 비용을 지불합니다. 그러나 첨단 기술과 고속 군사 및 공간에 프로그램 응용 프로그램은 가장 작은 문제가 될 수 있습니다 재해로 확대. 1996년 6월 4일에서 과학자 무인를 시작 할 수 있도록 준비 아리안 5 로켓. 그것은 수 있도록 설계 과학 위성을 운반되었다 설립 정확하게 어떻게 지구 자기장 태양 바람과 상호 작용합니다. 로켓은 유럽 우주기구 및 위해 만든 거죠 프랑스 령 가이아나 해안에서의 시설에서 떠낸. -에서 비행기로 37에 대한 초, 그들은 먼저 발견 무언가 노즐이 있다는, 잘못된 줄 그들은 정말 안돼 방식으로 선회. 분명 비행기로 약 40 초, 차량 문제가 있었고, 그들은을하기로 결정하였습니다 때입니다 그것을 파괴한다. 엄청난 배짱과 다양한 안전 책임자 누르면 이 될 수도 전에 버튼은 로켓을 날려 공공 안전에 위험이 있음. - 이건 아리안 5 처녀 항해이었고, 그 파괴 때문에에 포함 된 결함 위를 차지 로켓의 소프트웨어. - 아리안의 문제는 숫자가있을 있다고했습니다 표현하는 64 비트가 필요하고 그것을 변환하고 싶어 16 비트 숫자. 그들은 숫자가 적이 없다고 가정 매우 큰 될거야 그 64 비트 번호를 그 자리의 대부분은 0s했다. 그들은 잘못했다. - 하나의 소프트웨어 프로그램의 무능력이 동의하는 다른에 의해 생성 된 번호의 종류의 루트에 있었는데 오류가 발생했습니다. 소프트웨어 개발은​​ 매우 비용이 많이 드는 부분이되었다 새로운 기술. 아리안 4 로켓은 매우 성공적이었다. 만들어진 소프트웨어의 많은도 사용되었다 아리안 5인치 - 기본 문제는, 아리안 5 빠르게이라는 점이었습니다 빠른 가속. 그리고 소프트웨어는 차지 않았다. - 로켓을 파괴하는 거대한 금융했습니다 재해, 분 소프트웨어 오류로 인해 모든. 하지만이 데이터 변환 문제가 가지고 처음이 아니 었어요 현대적인 로켓 기술을 괴롭혀. 데이빗 MALAN : 우리는 상태를 유지합니다. 하지만이 증명해입니다 얼마나 적용도 일부 우리가 시작 한 다음 낮은 수준의 세부 정보 아르 오늘날 탐험 해보세요. 당신은의 일부가 아마도 정신을 좀 얻을 그래서,로 구문 여기 arcaneness는 걸 그 이상 용어는 우리는 그냥이가 얼마나 적용에 초점을 맞춘됩니다 지금까지 CS없는 세계. 우리는 수요일에 표시됩니다.