[음악 재생] 제이슨 허쉬 호른 : OK, 모두. 절에 오신 것을 환영합니다. 이것은 우리의 매우 CS50입니다 첫 번째 슈퍼 섹션. 여러분 모두는, 다음 주다시피 일반 섹션이 시작됩니다 하지만 이번 주에 우리는 모두 함께있어. 자신이 있습니다. 내 이름은 제이슨입니다. 나는 컴퓨터 과학 강사입니다. 우리는 CS50의 머리 TA의 앤디를 가지고있다. 그리고 Scaz, 교수 브라이언 Scassellati, 그는 컴퓨터 과학 교수입니다. 우리는 예일대에서 CS50 머리입니다. 당신은 항상 이메일로 보낼 수 있습니다 우리 heads@cs50.yale.edu. 우리는 강의에있을 것입니다. 우리는 근무 시간에 알 수있을 것입니다. 아무것도 이제까지이 있다면 우리는 할 수 당신을 위해 할 아무것도 당신이 필요 우리에게 다가 주시기 바랍니다. 그래서 우리는 오늘 할 건가요? 아니면 그 전에, 무엇이다 이번 주에 오는? 그래서 근무 시간은 월요일, 화요일이다 수요일과 목요일, 8시부터 11시까지. 웹 사이트에 일정이있다. 섹션은 내가 언급처럼 다음 주 시작하고있다. 그리고 당신은이 주에 확인할 수있는 것들 당신의 부분이 시간이, 그것이 무엇인지 하루, 당신의 TA는 누구. 문제 세트 1은 목요일에 의한 늦은 날에 정오에 정오, 금요일. 예, 아홉 늦은 일이 있습니다. 그리고 아홉 문제의 세트가있다. 오직 하나를 사용 문제 세트 당 늦은 날. 예, 효과, 모든 문제 세트는 정오 금요일 예정이다. 그게 전부입니다. 자세한 내용은 강의 계획서에있는 모든 것을. 매주 금요일, 우리는 점심이있다. 우리는이 대형을 좋아 코스는 조금 작은 느낌. 그래서 당신은 답장을 환영입니다. 동료와 함께 무료 점심 친구들과 직원. cs50.yale.edu/rsvp. 이러한 모든 것들이 그 I는, 화면이 더, 당신이 찾을 수 cs50.yale.edu 또는 cs50.harvard.edu는 경우가 하버드로 이동 이 온라인을 지켜보고있다. 또한 해당 웹 사이트에,이 당신을위한 자원의 톤이다. 각 강의뿐만 비디오를 가지고 강의뿐만 아니라 지적한다. 누군가를 볼 것이다 강의와 당신을 위해 메모를. 그래서 당신은 지불 할 수 있습니다 강의 중에주의, 또는 당신은 자신의 노트를 사용할 수 있습니다 / 우리를 자신의 노트를 보완하기 위해 지적한다. 슬라이드 온라인이 있습니다. 소스는 모든 것을 code-- 다윗은 강의를 통해 진행 또는 Scaz는, 강의 넘어 소스 코드를 온라인으로 볼 수 있습니다 뿐만 아니라, 난 등과 같은 비디오를 언급했다. 섹션은, 마찬가지로, 모든 촬영됩니다. 그 슬라이드를 모두 사용할 수 있습니다. 코드의 모든 것 당신을 위해 사용할 수 있습니다. 웹 사이트 위치에 반바지가있다 CS50 직원들은 5 ~ 10 지출 당신을 위해 항목을 통과 분. 그 중 일부는 이미했습니다 문제 세트가 발생했습니다. 근무 시간, 내가 언급 한 바와 같이, 월요일 을 통해 목요일, 8시부터 11시까지. CS50 연구 환상적인 자원이다. 연습 문제가 있습니다, 샘플 슬라이드, 알려진 버그 학생들로 실행하고 싶은 것을, 기본적으로 모든 항목 우리에 대한 이 과정에서 다룰 것입니다. 그리고 마지막으로,이 슬라이드에 적어도, Reference50 이는 당신에게 정보를 제공합니다 C의 모든 기능에 대한 혹시 가능 희망을 수 사용하는 많은, 더 많은. 다시,에 점 점 점 그 화면 하단 에도가 있음을 표시하는 것입니다 두 웹 사이트에 더 많은 리소스 : cs50.yale.edu, cs50.harvard.edu. 그래서, 우리가 오늘하는거야? 음, 처음 난 줄거야 당신은 자원 봐. 이미 그 일을했다. 우리 봐. 이제, 우리는 가서거야 C에서 데이터 형식 및 연산자 그리고 앤디가 여기에 올 것이다 C로 라이브러리를 통해 이동의 printf (), 당신이 이미있는 기능 익숙한 또는 빠르게 매우 될 것입니다 익숙한. 그리고 당신은 갈 거예요 조건문과 루프. 그리고 마지막으로, Scaz CS50 ID를 통해 이동합니다. 당신은에 비둘기하지 않은 경우 이미 문제 세트 1, 뿐만 아니라, 사용 방법 등 단자와 유용한 명령 다음 몇 가지 데모를주고 CS50의 ID 연습 코딩. 나는이에 이동하기 전에 이 쪽의 내용, 아무도 지금까지 질문이 있습니까? 좋아요. 그래. 기어를 변경. [기어​​를 변경하기] 그 날이 이동했다 수동 차에 기어. 그래서 C에서 데이터 유형, 당신은 가질 수 없습니다 변수 x와는 라인 (10)에 수있다, 정수, 어쩌면 숫자 1, 라인 (20)에, 진수 10.5, 다음 몇 라인 나중에 문자열, 나는 CS50을 사랑 해요. C에서 변수는 될 수 있습니다 한 가지, 오직 한 가지. 그래서 당신은 그들에게 종류를 제공해야합니다. 그리고이 보드에, 우리 유형의 목록이 있습니다. 문자는,이있는 문자에 서있다. 그래서 하나의 문자 A, B, C가이다, 또한 공간이 될 수 D., 또는도 할 수있다 새 줄 문자. 그냥있는 정수가있다 숫자, 전체 numbers-- 또는 정수 rather--하지만 소수 없습니다. 소수를 위해, 우리는이 부동 소수점 숫자. 부동 소수점 소수와 숫자입니다. 다음에있는, 걷고있다 본질적으로 더 이상 정수. 당신은 긴 것을 알 수 있습니다 INT 4 반면 8입니다. 나는 두 번째에 해당 얻을 수 있습니다. 걷고도 저장할 수 있기 때문입니다 INT 이상의 정수를 저장할 수 있습니다. 더블 긴 부동이다. 그리고 마지막으로, 우리가 타입이 문자열 것을 당신은 아마 이전에 사용했다. 당신은 해시 태그를 포함하는 경우 소스 파일에서 # includeCS50.h, 다음은 문자열 유형을 사용할 수 있습니다. 그것은 실제로 C.에 내장 아니에요 몇 가지 다른 유형도있다. 그러나이 교장 사람과는 이는 당신이 사용하고 발생합니다. C로, 다시 내가 언급, 마다 그것을 variable-- 단 하나의 유형과 하나의 유형이 될 수 있습니다. C는 정적이기 때문이다 반대로 입력 된 언어, 동적으로 입력 된 언어 어디 변수를 만들 경우 당신은에 저장된 무엇을 변경할 수 있습니다 당신은 당신의 프로그램에 가서. 여기에 오른손에 이상 면, 나는 다른 크기가 바이트 데이터의 이러한 유형. 그래서 문자는 1 바이트입니다. 즉, 8 비트입니다. 그리고 8을하기 때문에 의미 비트 여덟 0과 1을있다. 우리는 처음에 그 데모를 보았다 바이너리 전구 주. 8 비트 또는 1 바이트로, 우리는 할 수 있습니다 0-255 번호를 나타냅니다. 권리. 모든 8 비트가 0 인 경우 0의 그. 첫 번째 비트가 1 인 경우, 즉, 수있어 하나, 등등, 255까지의 모든 방법. 그리고 그 문자 당신이 할 수있는 대한 이유 본질적으로 그 중 255까지가, 하지만 그게 전부 커버하는 많은입니다 문자는 우리가 사용할 필요가있다. 정수의 경우, 0을 가질 수 있고, 다음 32에 2를 뺀 1. 사람들은 얼마나 많은 옵션입니다 당신은 정수에 대한 있습니다. 긴의 경우 0이 2에 64에서 1을 뺀. 그래서, 많은, 많은이 걷고 더 많은 옵션을 제공합니다. 문자열, 즉 물음표입니다 그 이후에 대한 클리프 행어 때문에. 그래. 나는 모두의 말할 수 자신의 좌석의 가장자리에, 같은 그 물음표는 무엇입니까? 그것은 클리프 행어입니다. 우리는 결국의 크기를 다룰 것입니다 문자열 및 문자열에 대한 자세한 이야기​​. 문자열이 실제로 때문에 훈련 바퀴 중 하나 우리는이에 넣어 처음에 코스 다음 나중에 이륙 에 C에서 문자열 때문에 실제로 포인터 문자 배열에. 그러나 다시, 그건 나중에 클리프 행어. 나는이 질문에 이동하기 전에, 의견이 슬라이드에 대한 우려? 그래. 나는 환상적인 설명자해야합니다. 또한 당신은 프로그래밍을 할 때, 이러한 연산자를 사용하는 것입니다. 간단하게 할 수있는 정말 간단한 징후 작업은,있는 당신은 아마있어 이미 잘 알고. 예를 들어, 오른쪽 편, 우리는 추가를 참조하십시오. 추가하려면, 당신은 단지 더하기 기호를 않습니다. 그래서 당신은 할 수 있습니다 두 변수 X와 Y. 당신은 당신의 코드에서의 X + y를 할 수 있습니다. 어쩌면 당신은 당신 말을 이러시면합니다 번호가 7, 3, 당신은 저장할 변수라고 합에. 당신은 유형, 공간 지능을 수행 할 수 있습니다 합, 변수의 이름은 7 + 3 =; 무엇 합에 저장하는 것? 누구? 나는 합계 = 7 + 3이 있다면. 합에 무엇을 저장됩니다? 당신은 그것을 밖으로 소리 수 있습니다. 청중 : 10. 제이슨 허쉬 호른 : 10! 그게 정확히 맞아. 합에 대한 어떤 = 7-3, 난 그냥 대시 기호를 사용합니다. 무엇 저장 될 것? 청중 : 4. 제이슨 허쉬 호른 : 4. 합계는 아마도에 대한 잘못된 이름입니다 그 변수는하지만, (4)는 저장됩니다. C에서 번식하기 위해, 조금 사용 스타 문자, 당신은 X를 사용하지 마십시오. 분할하려면 앞으로를 사용 하지 분할 기호를 슬래시. 그리고 모듈로하는, 백분율 기호를 사용합니다. 그래서 내가 INT Z =보고 싶어 해 봅시다 7 % 3, Z에 무엇을 저장됩니다? 그래서, 그 본질적이다 모듈은 무엇을합니까 물어? 사람이 모듈이 무엇을 알고 있나요? 그래. Y 4. 스피커 1 : 그것은 나머지입니다. 제이슨 허쉬 호른 : 그것은이다 나머지는 분할 할 때. 그래서 3으로 나눈 7은 2 나머지 1입니다. 그래서 1이 저장 될 것이다. 당신은, 뺄셈을했다 그것이 작동하는 방법하지만입니다. 즉, 나머지 연산자가하는 일입니다. 이 숫자로 분할하여 얻어 당신에게 다른 번호를 반환 나머지. 그래서 다시 7 % 3 때문에, 당신에게 1 제공 나머지 7 2 1 3으로 나눈 나머지를 반환합니다. 대한 것은의가 다시 가자 무엇 그 구분 기호에 한 단계. 내가 한 경우 7 / 수행 3으로 나눈 아무도 그 반환 뭔지 알아? 스피커 (2) : 2. 제이슨 허쉬 호른 : 왜이​​ 아니라 2.333? 스피커 2 : 나는 그것을 잘라 생각 정수 오프 후. 제이슨 허쉬 호른 : 그래서 이 정확히 맞아. C에서, 당신의 분할을 할 경우 (3)에 의해 분할 된 두 개의 정수 (7), 이 답을 얻을 수있는 이 경우 2.3333 영원히 그리고 그 소수점을 찾아 소수 후 모두를 자르면 그리고 그것은 단지 당신에게 2를 반환합니다. 내가 3으로 나눈 8을했다한다면. 실제로, 우리는 알고있다 즉, 2.666를 반환 그러나 그것은에서 모든를 자르면 소수는 모두 절단, 그냥 당신이 돌아갑니다. 그래서 6 (3)에 의해 분할 된, 분할 된 7 (3), (8) (3)에 의해 분할 된, 모든 당신이로 돌아 갈 수 있습니다. 사람은 알고, 또는 추측이 있습니까, 나는 실제로 얻을 수있는 방법에 대한 전체 응답 나는 그 진수를 원한다면? 그래. 어서. 스피커 3 : float를 사용? 제이슨 허쉬 호른 : 당신은 무엇을 의미합니까? 스피커 3 : 당신을 말했기 때문에 부동 소수점 숫자입니다 [들림] 제이슨 허쉬 호른 : 오른쪽. 그래서, 정확히 맞아. 도 7은 정수이다. 그러나 나는 그것을 설정하기를 원한다면 부동 소수점 숫자로, 그 저장해야 컴퓨터 때문에 7.0로 정말 우리가 보았다 stupid--된다 PB 및 J example--와 만 정확히 할 것 당신은 무엇을 말해. 그래서 7을 작성하는 경우, 그것은 그 정수 것 같아요. 당신은 7.0를 작성하는 경우에도 우리하지만 그 물건은 동일 알고, 이처럼 그 취급 부동 소수점 숫자. 7.0을 한 경우 분할 그래서 (3)에 의해, 또는 3.0로 나눈 지금 확인을 말할 것 우리는 수레를 처리하고 있습니다. 나는 영원히 2.333333로 돌아갑니다. 하지만 정말 영원히 때문에 우리는 강의도 보았 듯이, 이러한 부동 소수점 수 정확히 정확하지 않습니다. 그래서 당신은 그 소수를 원하는 경우에, 또는 소수의 일부, 당신은 그들 중 하나를 use--해야 부동 소수점 수 있어야한다 컴퓨터가 이해하는 이것은 당신이있어 부동 소수점이 있음 아닌 정수 처리. 해당 테이블에 대한 질문에 오른쪽, 원경? 아니면 왼쪽, 당신의 왼쪽, 왼쪽 편. 그래. 스피커 4 : 오른쪽. 단지 일반처럼 들어 정수, 당신은 것 write-- 당신은 떠 작성해야? 제이슨 허쉬 호른 : 네, 그렇게. 글쎄, 당신은 만들려면 부동의 변수, 당신은 플로트을 말할 필요 Z는 뭔가 같습니다. 스피커 4 : 확인을 클릭합니다. 제이슨 허쉬 호른 :하지만 원한다면 3으로 나눈 7을하고 그 소수를 얻을, 나는 플로트 Z = 7.0 / 3.0로 할 것; 과 그것은 나에게 부동 소수점을 줄 것 수. 스피커 4 : 확인을 클릭합니다. 제이슨 허쉬 호른 : 내가 그랬다면 (3)에 의한 INT Z = 7 / 같은, 그것은 나에게 정수를 줄 것이다, 그 때문에 모든 정수입니다. 말이 돼? 스피커 4 : 예. 제이슨 허쉬 호른 : OK. 좋아요. 해당 테이블에 대한 다른 질문? 정말? 난 너무 흥분 돼. 그래. 그래서 만약 당신이 사용하는 다른 일들이, 자주 조건이나 루프에서, 연산자 인의 이러한 유형은 부울 표현식 이러한 유형. 우리가 배운 그리고, ==는 무엇입니다 두 가지가 동일한 지 여부를 확인하기 위해 사용합니다. X == y는,하자 그래서 만약 여기에 내가 확인 해요 또 x가 7이고, Y는 3이고 가정한다. 그래서, 7 == 3를 쓴 경우 어떻게 그것은 나에게 반환? 그것은 참 또는 거짓인가? 청중 : 거짓. 제이슨 허쉬 호른 : OK. 나는이 하나를 얻을 수 있습니다 모두 같은 느낌. 그래서 모든 사람들, 그 무엇을 반환? 청중 : 거짓. 제이슨 허쉬 호른 : 거짓. 좋아요. 7 세와 동일하지 않습니다. 그래서 7 == 3는 false를 반환합니다. 당신은하지 등호이 경우 그래서 7! = 3, 그게 무슨 반환 확인? 청중 : 사실. 제이슨 허쉬 호른 : 참. 우수. 누군가가 매우 강조했다 뒷면은 감사드립니다. 그런 다음 연산자보다가, 보다 작거나 같음 연산자, 운영자보다 더 큰, 더 큰 보다 크거나 같음 연산자. 그래서 한 번 더 전성 검사. 내가 가진 경우 7 크다 이상 또는 3과 동일. 그게 무슨 반환? 청중 : 사실. 제이슨 허쉬 호른 : 참. 네. 즉, 뒷방, 뒷면 방, 환상적인. 이러한 결합 할 수 있습니다 표현은 당신이뿐만 아니라, 좋아하는 경우 어떤 논리와 함께 && 또는 논리적 OR 이는 || ||. 그래서 지금은 두을 테스트 할 수 있습니다 일하는 것이 재미 together--인가? 그 이유는 재미? 내가 원하는 경우에 따라서, 나는 7을 말할 수 있습니다 (3) 및 2 이상의는 4 미만? 그런데,도 7은 크면 3보다, 그건 사실입니다. (2)는 그 사실, 4보다 작습니다. 그래서이 모든 것은 사실 반환합니다. 내가 7을 테스트하는 경우보다 3 그리고 -이다 난 그냥 임의의 숫자를 따기있어 here-- (4)는 물론, 그 거짓 미만 2입니다. 그래서 진실과 거짓 메이크업 false입니다. 그리고 당신은 갈 수 있고, 당신은 결합 당신이 원하는만큼 함께 많은 상태. 아무도 질문이 있습니까, 의견, 우려까지? 그리고 나는 당신이 사진을 찍는의 일부를 볼 나는 감사 화면에 저를의. 바라 건데, 그것은 스냅 챗 아니에요. 바라건대, 당신의 노트입니다. 그러나이 모든가는거야 온라인으로 제공한다. 그래서 당신은 필요 없어 이 사진을. 나는 모든 것을 언급처럼 당신을 위해 온라인으로 사용할 수 있습니다. 그래. 나는 얻을 약 해요 무대 뒤에서, 그래서 아무도 않습니다 아무 말도 할 그런 일이 전에? 질문이 있으십니까? [목소리를 개재] 제이슨 허쉬 호른 : 아, 그만. 너희들은 너무 좋은입니다. 그래. 나는 밖으로 태그거야. 가자. ANDI 펭 : 우리는 할거야 지금 어려운 마이크 변화. 제이슨 허쉬 호른 : 난 이 벗을 것. ANDI 펭 : 사람을 지원을 주셔서 감사합니다. 당신은 저를들을 수 있습니까? 그 좋은가요? 완벽한. 아름다운. 내가 그냥 그 정력 보자. 그래. 그래서 나는 거대한 같이 할 약 해요 정보는 지금 너희들에 덤프. 그리고 걱정 무엇이든지 당신이있어하지 않는 경우 의 모든 작은 라인을 따르지 않는 것을 난 당신을 보여 주려고. 제이슨 말했듯이, 모든 완전히 온라인 상태입니다. 다만 우리가 소개하려고하는거야 개념을 모두 포함 이 슬라이드의 일부입니다. 그래서 그냥 따라 따릅니다. 걱정하지 당신이 이해하지 않는 경우 모든; 그러나, 어떤 점에서 경우 당신이 잃어버린 느낌, 인상하여 한편, 우리는 걱정을 멈추지 않을 것입니다. 쿨. 그래서 다윗은 무언가를 생각 이미 종류의 강의에서 언급 제이슨 가지 언급하고있다 오늘에 라이브러리가 무엇인지입니다. 그래서 프로그래밍, 우리가 이런 일들은 라이브러리를했다. 여기서, 본질적으로, 모든 그들은 단지 집합입니다된다 기능으로, 즉 의 본질적 코드 이미에 의해 작성되었습니다 다른 사람이 우리는 할 수 있습니다 우리의 프로그램 내에서 사용합니다. 어떻게 정상을한다 라이브러리 작업, 오른쪽? 당신은 라이브러리 문을 입력합니다. 당신은 모든이 책은 당신이 당겨 수 있습니다 당신은 정보에 액세스 할 수 있습니다 그 책 내. 프로그램에서 같은 일. 당신은 이미이 라이브러리가 다른 사람에 의해 작성되었습니다. 그리고 그 방법은 당신이 할 수있는, 프로그래머 또는 학생으로, 그 라이브러리에 대한 액세스를 얻을 수있다 해시 태그의 사용법 #include하는 것입니다. 예를 들어, C의 우리의 세 가지가 C-- 가장 일반적으로 세 C 표준을 사용 입력 / 출력 라이브러리 libraries-- 문자열 라이브러리, 및 수학 라이브러리. 첫 번째 내 그래서 몇 문제는, 설정 그 세 가지가 될 것이다 것을 주로 사용하고 있습니다. 이미 데이비드 그래서 강의 설명, 표준 I / O 라이브러리 또는 표준 입력 / 출력 라이브러리 정확히 않습니다. 그것은 입력, 코드에서, 당신을 수 있습니다 사용자와 출력에서​​ 아무것도 그 화면에, 본질적으로 화면에의 출력. 그래서 언제든지 당신은, 어떤 기능을 사용할 수 예를 들어 함수의 printf () 어느 우리는 다음 슬라이드를 통해 갈거야 표준을 포함​​해야합니다 I / O 라이브러리 또는 다른 당신은하지 않을거야 의 printf () 함수를 사용할 수 있습니다. 당신 때문에 프로그래머 실제로, 그 기능을 쓴 적이 당신은 누군가를 사용하는 자신의 코드 내에서 다른 사람의 코드입니다. 그 말이 모든 사람들합니까? 쿨. 그리고 우리는 본질적에 도착 string.h 라이브러리와 math.h 단지 라이브러리를 의미한다 .H 도서관, 다른 라이브러리 당신은 결국거야 코드 내에서 사용합니다. 그러나 목적을 위해 이 라이브러리의, 우리 또한 우리는 또한 가지고이 그 수업의 잔 마셔요 무엇 CS50 라이브러리를 호출, cs50.h, 우리가 어디를위한 당신의 열람이 만든 많은 중요하고 유용한 기능. 되도록 같은 프로그래머 오프 피기 백 수 우리가 이미 있도록 작성했습니다 당신이 기능의 사용 가능 당신의 사용. 나는 몇을 포함 할 것 기능은 일반적으로, 사용 하지만 이러한 것을 알고 모든 googleable 온라인. 주시기 CS50 라이브러리를 위로 당겨 당신은이 모든 기능을 가지고 있습니다. 그래. 스피커 5 : 당신이 아니었다면 이렇게 소프트웨어를 사용하는 당사에 제공된다 클래스는 것을 않습니다 우리가 다운로드하고 찾을 거라고 의미 이 헤더는 자신을 파일과 이야기 그것이 컴퓨터? ANDI 펭 : 좋은 질문입니다. 정확히. 그래서 당신이하지 않은 경우처럼 도서관에서 물리적으로 존재, 당신을위한 방법으로이 없다 실제로 가서 액세스 할 수 있습니다. 같은 일에 따라서 C 당신, 프로그래밍 당신이 우리 사용하고 있는지 확인해야합니다 장비 라이브러리가 이미 있기 때문에 그것으로 통합되었습니다. 그리고 당신은 해시 태그 할 때 #INCLUDE,이 라이브러리의. 그래. 좋은 질문. 모두 좋은? 쿨. 괜찮아. 그래서 우리는, 칠거야 본질적으로, 무엇이다 첫 번째 함수 그 우리는 프로그래머가되기 때문에 우리의 코드 내에서 사용 할 것. 이것은의 printf () 함수를 호출된다. 그래서,의 printf () 함수, 내가했듯이 이미 마지막 슬라이드에서 말했다, 표준 I에 포함되어 / O, 표준 입력 / 출력, 도서관. 당신이 using--하든 그래서 확인 오, 나 레이저를 잡아 보자 pointer-- 때마다 사용하는 의 printf () 함수, 당신은 I / O 표준을 포함​​해야 라이브러리 또는 다른, 당신은 컴파일 할 때 오류를받을거야 컴퓨터처럼되므로 의 printf ()가 어디 오 나도 몰라, 당신이 나에게 이야기하지 않을 경우의 printf () 이다. 음의 printf ()가 포함되어 있습니다 표준 I / O, 그래서 당신은 ()의 printf를 사용하는 경우, 것을 가지고 있는지 확인 코드 위의 줄. 그래서 예를 들어,의 printf () 여기에 함수이다. 그것은 않는 모든 인쇄 무엇인가이다 사용자에게 괄호 안에. 사람이 자상을 하시겠습니까 코드 바로 어떤이 라인에서 여기에 인쇄 할거야? 따라서, 응답은 스크린이다. 누구? 베르디 : 바닥. ANDI 펭 : 베르디, 당신은 왜 가지 마세요 앞서와 전체 문장을 말할? 베르디 : 안녕하세요, 제 이름은 앤디, 나는 20 살이다. ANDI 펭 : 아, 사랑스러운. 이 줄을 우리가 갈거야 그래서 내 이름은 앤디입니다, 안녕하세요, 인쇄 나는 20 살되는 진정한 문장은 사실이다. 구문. 문법 문제 그래서 몇 그 너희들은 당신이 알고 있는지 확인하려면. 지수. 큰 따옴표는 말 컴퓨터 그 안에 모든 인쇄 될 것입니다. 캔 내부의 모든 것 다만 정확히 어떻게 될 당신은 제외를 입력 일반적 끝에 우리는 포함 할거야 hash-- 오 sorry-- 대시 명. 그래서 대시 명. 사람이 추측을 할 않는다 즉 우리의 코드에 무엇에? 그래. 스피커 6 : 새로운 라인에 넣습니다. ANDI 펭 : 맞아요. 그래서이가하는 모든입니다 일이 무엇이든 허용 이 후,이 사항이 후, 새 줄에 인쇄 할 수 있습니다. 당신이 작성하는 경우 있도록 코드는 무작위로 일을하지 않아도 끝 부분에 압정으로 고정 당신이 원하는하지 않습니다. 즉, 모든 것을 얻는다 깔끔하게 한 줄을 인쇄 그리고, 우리는 다음 줄에 시작합니다. 사람이 어떤 것을 기억 하는가 우리가 코딩 할 때 세미콜론은 무엇입니까? 그래. 스피커 7 : 문. ANDI 펭 : 죄송합니다? 스피커 7 :이 문을 종료합니까? ANDI 펭 : 네. C 또는 프로그래밍에 따라서 언어, 세미콜론 프로그래밍 라인의 끝을 나타낸다. 그래서 예를 들어, 영어로 우리는 시간을 사용 말, 오이 마지막 문장이다. 프로그래밍, 같은 일에, 우리가 세미콜론 라인의 끝을 표시한다. 때때로, 당신은 때이야 프로그램 시작 당신은 당신을 실현합니다 세미콜론을 추가하는 것을 잊지 다음은 실행하려고 당신의 코드와 코드가 작동하지 않습니다. 그리고 당신은 아, 같은거야, 내가하지 그것이 작동해야하는 이유, 알고있다. 기회는 당신이 아마 깜빡입니다 세미콜론 또는 브래킷이나 뭐 어딘가. 그래서, 기억하는 것이 중요합니다. 쿨. 좋아, 손의 표시 방법 여기에 많은 사람들이 지금이 AP 컴퓨터 과학 또는 촬영 이제까지 전에 자바 프로그래밍? 그래. 사랑스러운. 즉 적용되지 않습니다 다음,하지만 자바에서는 에서 System.out.println라는 뭔가를 C.에 존재하지 않는 , 때마다 당신을 C에 따라서 변수에 추가 할 무엇으로 당신이 원하는 거기에, 인쇄하기 특정 구문은 우리가 사용하는 것입니다. 즉,라고 기본적으로 placeholding-- 우리는 자리에 자리 표시자를 추가 정수 또는 변수의 우리는 인쇄 할 것이다. 너희들이 볼 수 있도록 우리는 포함했다 새 라이브러리 헤더는 여기에 파일. CS50 라이브러리. 그리고 CS50 라이브러리에 포함 우리가 사용됩니다 일반적인 기능입니다 우리의 과정에서의 getInt를 호출 (). 누구에 자상을 먹고 싶어합니까 의 getInt ()는 아마도 무슨 일을 할 수있다. 청중 : [들리지] ANDI 펭 : 죄송합니다. 사용자의 음성을들을 수 없습니다. 매디, 사람. 매디 : 오, 프롬프트 정수에 대한 당신. ANDI 펭 : 맞아요. 따라서이 기능을, 다른 이미 기능 다른 사람에 의해 작성되었습니다 것을 우리는 지금에 호출 할 수 있습니다. 이 모두가 당신, 사용자에게 메시지를 표시하고, 당신이 코드로 원하는대로 입력 실행이 whatever-- 저장됩니다 이 경우 우리의 getInt ()있어 - ING, 그래서 우리가있어 의미 정수를 얻었다. 그리고 우리는 저장거야 그 또 다른 정수에 우리는 단지라는 나이를 변경 한 것이다. 모두에게 그 말이? 쿨. 그래서 지금 우리는이 정수를 저장했는지, 우리는 사용자로부터 메시지가 표시 한 것으로, 이 변수에, 우리는했습니다 나이라는 int 형의 생성, 우리는 앞서와 장소 갈 수 있습니다 우리의의 printf () 함수. 그래서 printf의에 대한 일반적 구문은 ()이다 그 때마다 실제의 물리적 라인 당신은 정수를 포함 시키려면, 당신은 바로 그 상징을 와 퍼센트 기호, 당신이 원하는 변수의 유형입니다. 따라서이 경우에 연령 정수이다. 그래서 당신은 포함거야 % I는 정수이기 때문에. 그리고 그 후에 당신의 문, 당신은거야 쉼표와해야 할 일 변수의 이름입니다. 그래서 여기, 우리는 인쇄 할거야 아웃, 안녕하세요, 제 이름은 앤디입니다, 나는 빈 세입니다. sorry--, Hashta-- 또는, 어떤 I 입력과 나이. 그래서 만약 내가 입력했다 여기 내의 getInt 20 (), 그것은 똑같은 일을 출력 할 것이다. 그러나,에게 내가 입력 뭔가를 원하는 경우 다른, 아마도 40 또는 45 등, 당신은 그 반영 볼 것 따라서 코드. 그래서이 예입니다 무엇인가하는 그것을 밖으로 인쇄하고 보이는 당신이 같은 일이있는 경우로, 하지만의 후드 아래에 실제로 거기에 컴퓨터 매우 다른 일들이 일어나고. 쿨. 괜찮아. 그래서 우리는 여러 변수를 어떻게해야할까요? 아주 쉽게. 같은 것. 우리는 또한 새로운 기능이 여기에 ()하여 GetString라고 또한, CS50 라이브러리 내에 포함 그것은 않는 모든 사용자에게 메시지를 표시입니다 인 문자열에 대한 문자 만 세트, 그래서 문장 같은 나 이름 등을들 수있다. 이 경우, 우리는 두했을 문자열 % I에 대한 자리 %들 정수. 그리고 우리는 따를거야 그 두 변수에 의해 우리는 순서대로 포함시킬 그들은 문장에 나타나는. 그래서 예를 들어, 내 이름은 빈, 나는 거기에 이름을 원하는 그래서 먼저 이름을거야. 그리고 그 후, 내가 원하는 나이가 나이 두 번째 갖고 싶어. 그래서 나는, 안녕하세요, 입력 원한다면 내 이름의 앤디, 나는 20 살이다. 나는 앤디와 20를 입력하면 똑같은 인쇄 것이다 그러나, 지금 우리는 두 가지있어 저장 한 이름의 변수뿐만 아니라 INT. 그래. 스피커 8 :이 있을까 당신이 전환 한 경우 실행할 수 그 이름의 끝에서 세? ANDI 펭 : 네. 그건 정말 좋은 질문입니다. 그래서 긴 이야기는 짧은, 아니. 때문에 이름과 age-- 무엇 변수의 유형은 이름인가? 스피커 8 : 문자열. ANDI 펭 : 그리고 변수의 유형은 나이인가? 스피커 8 : 정수. ANDI 펭 : 그래서 여기에 우리가 자리를 문자열과 정수, 오른쪽? 그래서 당신은 이러한 전환한다면, 컴퓨터가 알 수 없을거야. 그것은 문자열을 확인하는거야, 당신이 그것을 int를 제공하려고하면, 이처럼 될 것 나는 혼란 스러워요 당신을 기다립니다 내가해야 나에게 말했다 인터넷 용 메모리를 allotting. 그리고 여기, 때 그것은 정수를 기대 당신은 그것을 이름을 지정 그리고 문자열 대신, 그것은 또한 매우 혼란 될 것, 그것을 정확하게 당신이 그것을 필요로하는 방식으로 실행되지 않습니다. 그래서 여기, 이름 및 구문은 코드를 실행하는 데 매우 중요합니다. 모두 좋은? 그래. 매디. 매디 : 여기, 우리가 검토 한 알 클래스의 예에서, 그들은 어디 물어 당신의 나이 무엇인지, 당신의 이름은 무엇입니까. 여기에, 그게 doesn't-- 것 우리가이 코드를 실행한다면, 그것은 그 요청하지 않을까요? 하지만 당신은 단지 입력 두 숫자를 것 다음은 그와 같은 실행됩니다? ANDI 펭 : 네, 정확히. 당신이 그것을 원하는 경우에 따라서 디스플레이, 나이를 입력하세요 당신은 단지의 printf () 함수를 추가 할 수 있습니다 즉, 당신의 나이를 입력 해주세요 말한다 위. 좋은 질문이다. 그래. 스피커 9 : 그래서, 이미 것 의 getInt에 포함 () [들림]. ANDI 펭 : 아니, 그것은 사실이 아니다. 그래서이가하는 모든 단지입니다 빈 화면을하라는 메시지를 표시 입력 뭔가를 사용자에게. 당신이 그것을 인쇄 할 경우, 원하는 경우 같은 사용자에게 알려줍니다 뭔가 밖으로, 당신에게 다음, 나에게 나이를 적어주세요 () 그 자신을의 printf해야합니다. 모든 사람이 사용하기 때문에 다른 것들에 대한 기능, 당신은 나이를 저장 할 수 당신은 주소를 저장 할 수 당신이 전화 번호를 저장 할 수있다. 그리고 그것은까지 정말 당신의 남자 '개인 사용 당신이 원하는 것은 말할. 그래. 스피커 10 : 그래서, 그냥 여기서 명확히 당신에게 입력의 이름과 나이를 할 그것을 % s의 장소에 표시되도록? ANDI 펭 : 사용자와 마찬가지로? 스피커 (10) : 네, 어떻게 것처럼 할 나는 앤디를 넣어하는 곳 그건 ...을, 어디서 20를 배치해야합니까? ANDI 펭 : 네. 그래서 당신은 것 인 경우 실제로이 코드를 실행, 사실을 운영하지 않는 경우 코드는이 지금 바로 여기에있다. 내가 코드를 실행한다면, 나는 것 코드를 컴파일 할 파일을, 코드를 실행하고있을 것 그냥 입력 그것에 나를 위해 두 개의 공백합니다. 그래. 당신이 연주 할 때 너희들은 볼 수 코드를 자신과 주변. 우리가 이동하는거야 좋아 의 다음 섹션으로 무엇을 우리는 오늘 취재됩니다. 우리는 위로 갈 건지 조건문이다. 너희들이 기억한다면 그리고, 강의에서 리콜 조건문, 그들이 모두 집합입니다 컴퓨터에 지시 어떤 특정 조건에 해당하는 경우, 사용자는 코드를 실행할 해당 조건의 내부. Scratch--에 따라서 본질적으로 오늘부터 큰 테마 너희들은 이미 모두 가지고있다 모든 뒤에 논리를 볼 것을 우리는 취재하고 있습니다. 그리고 우리가하고있는 모든이다 뭔가를 번역 그것은 매우 직관적 스크래치, 그리고 코딩 하드 구문에 우리가 사용할 것 C입니다 클래스 그래서 논리적으로,이 모든 블록이었다 바로 거기에 코드의 조각입니다. 그래. 그래. 우리는 또한 다른 ... 만약에 들어가 다만 추가 층 문 if 문에 복잡성 컴퓨터가이 좀 걸립니다 곳 이 조건에 해당하는 경우와, 이렇게 본다 이 두 괄호 안의 무엇이든의, else-- 너무 친절의 기본 경우 등 그것은 condition-- 이렇게 맞지 않습니다. 그것은 도로에 포크처럼. 이 밖에 비가, 내가 넣어 비 재킷에, 다른 것 다른 나는 비 재킷에 넣지 마십시오. 그 논리는 모두에게 의미가 있습니까? 쿨. 괜찮아. 의 하드 예를 들어 같은 우리는 C에서 볼 것이라고이 난을 만들고 싶었 경우입니다 변수라는 숙제 시간. 그리고 숙제 시간은 작은 경우 다섯보다, 나는 인생은 큰 말한다. 그것은 멋진입니다. 그러나 투쟁 real--라고 이는이 월요일에 우리 모두이다 오후까지 과학 힐은 아마 권리들을 당장 일을 청중 : [웃는다] ANDI 펭 : 그들은 방법 우리 그 주셔서 감사합니다. 우리가 하드 코딩하는 방법과 C에서이의 가정하자 혹시 ...입니다 이미 형의 변수를 갖고 INT는 바로 여기에 숙제 시간을했다. 숙제 시간 미만이면 다섯 가지의 printf ()는, 인생은 중대하다. 기억 유지 / N 때문에 당신이 후 새로운 라인을합니다. 그렇지 인쇄, 투쟁은 진짜입니다. 모든 사람들이 어떻게 이해합니까 나는이 블록에서 전환 이 코드 블록으로? 쿨. 괜찮아. 그래서 지금 우리가 살펴거야 모두 여러 경우 문. 그럼를 가정하자 이 프로그램의 목적 우리는 등급을 사용자에게 메시지를 표시했다. 우리는 대한의 getInt ()를 사용하라는 메시지를 학년, 그들은 입력 값, 당신은 표시 할 등급의 유형 그들은 얻었다. 그래서 만약 내가이 프로그램을 설계했다 우리의 눈 모두에 일반적으로 의미, 이 90-100이며, 80~90 인 B, 및 기타 등등. 이에 어떤 문제가 그렇지 않은 코드의 조각 내가하고 싶은 일을. 그래. 스피커 11 : 그들은, 하한이 하지만 그들은 상한이 없습니다. ANDI 펭 : 맞아요. 모두가 그녀가 말을 들었어? 상단에있을거야 한계가 있지만 하한. 죄송합니다, 다른 방법으로 주위에, 하한, 아니 상한. 그래서 싶습니다 말에 자상을 어떤이에 인쇄 될 것입니다 화면이 코드를 실행한다면. 스피커 11 : 오류? ANDI 펭 : 오류? 좋은 생각, 아주 옳지 않다. 사람이 다른 자상이 있습니까? 그래, 아론. 아론 : 당신은 넣어 경우 90보다 큰 무엇인가, 당신이 가지고있는 모든 등급을 표시합니다. 그것은 당신이있어 보여 것, 당신은 B를 가지고, 당신은 C를 가지고 ANDI 펭 : 네. 그게 정확히 맞아. 그래서, 그 멋진 것. 그러나, 이들은 서로 아르 독점, 나는 생각한다. 내가한다면이 코드 조각을 실행합니다. 그리고 그냥 말을하자, 나는 95의 성적을 입력. 그래서 95 해주기에 저장된 이 등급이라는 int입니다. 그리고 C는 언어이다 즉, 위에서 아래를 실행합니다 그래서 항상 것 바닥까지 실행합니다. 그래서 여기 온거야,이 읽기 등급은 90보다 크거나 같다 의 printf ()는 A. 대왕은 내가있어 (95)이, 그 9​​0 이상이다. 그것은 인쇄 것, 나는 그것은 무슨 대답을 얻었다 그것이 무슨 경우이 살펴보고 95 아니라도 80보다 큰 경우, 말 그것은 당신이 또한 GOT있어 인쇄 것 등 등 B 느낌표 등. 우리 모두가 볼 수 그래서, 이 공통 버그 우리가있을 때 그가 발생할 수 있습니다 코드를 작성하는 것은 피려합니다. 누구나, 어떤 질문에 이유는 무슨 일이 벌어지고? 좋아요. 그래. 그래서 우리는이 문제를 해결 어떻게, 분명히 논리적 다음 질문. 음, 우리는이 아름다운이 또 다른 경우 경우라는 것 다른 if 문. 당신이 볼 수 있도록, 경우 원 그 문제를 변경하려면, 당신은 각을 만들고 싶었다 상호 배타적 인 조건, 당신은 다른 추가 할 수 ... if 문. 그리고 course--의 이들로 생각 사다리, 또는 ladder--에 발판 같은 당신은 당신이 이들의만큼을 추가 할 수 있습니다 당신이 원하는만큼 조건을합니다. 내가 성적을 입력하면 그래서 여기, 95합니다. 등급이 95보다 크면 의 printf ()는, 나는 A. 우수함 얻었다. 그것은 다른 사람을 볼 것 ... 경우 그것이 알고 것, 오, 나는 이미 다른 첫 번째 실행. 나는 하란 또는 제 1 혹시 ... 내가 알고 나는이 모든 볼 필요가 없습니다 그들 중 하나 때문에 이미 사실이었다. 그래서 위에서 아래로 실행하는 것입니다. 즉시 첫 번째는, 참인 모든 나머지는 건너 뛸 것 다른 ... IFS의. 말이 돼? 따라서, 이러한 방법으로, 당신은 판정의 상이한 레벨 마자 그 중 하나는 거짓으로 나머지는 또한, 그들은 심지어 확인하지 않습니다. 쿨. 괜찮아. 그래서 이것의 다른 예는 조건문의 종류 우리는 덜 자주 볼 수 있지만, 우리는 그들을보고를 사용합니다. 그리고 그들은 종종있어 어떤 경우에 대한 효율적입니다. 그래서 우리라고 무슨이 switch 문. 그래서 우리는 다른 사람의 것을 적용하기 전에 문 경우 ... 다른 문. 여기에, 우리는 무엇을해야 스위치 문이라고합니다. 그렇게되면 우리는 스위치를 사용하여 열쇠는 문입니까? 당신은 switch 문에 따라서 일반적으로, 통상적으로, 실제로하면 대한 수 만 입력 정수 당신의 당신이 확인하고 변수입니다. 내가 확인하고 싶어한다면 예를 들어 특정 number-- 등급은 내가 90을 가지고, 경우. 나는, 즉 A의 경우가보고 싶어 B 또는 C는 여기 사건을 가질 수있다. 그러나, 경우가 다른 일정합니다. , 이러한 의미에서 이렇게 스위치 문 수 있습니다 만 두 숫자의 평등을 확인합니다. 그것은 아무것도 확인하지 않습니다. 그건 그래서 뭔가 매우 될 당신이 사용할 때의주의. 내가 확인하기를 원한다면, 그래서 여기에 볼 수 있습니다 90 나의 등급은 90 또는 80와 동일한 경우 70, 60, 다음 인쇄 해당 학년, 나는 쓸 수있을 것 switch 문에. 그래서 여기 온거야, 체크입니다 이 정수와 같은이 정수? 그렇지 않은 경우는 건너 뛸 것입니다. 그것은 정수와 같은 두 등 등, 기본값을 칠 때까지, 그들 중 누구도이 동일하지 않는 경우. 즉시 그 중 하나로서 동일하게 설정되고, 그것은이 작업을 수행 할 것 코드와 휴식의 라인. 어떤이 그 칠거야 의미 실행 휴식, 그냥 완전히 이동 코드의 하단. 기능 그래서 그런 의미에서 종류 if 문 다른 경우 경우 다른있다. 그래서 여기에 구체적인이다 너희들 예. 그래서 내가하고 싶다고 가정하자 년 설립라는 변수를 만듭니다. 그리고 입력하라는 메시지를 표시 할 학교가 설립되었다 년. 그래서 여기에 스위치 문을 생성 할 수 있습니다. 그리고, 내가 입력 1636 그냥 가정 해 봅시다. 여기에이 코드는 스위치를 볼 것입니다 올해는 1,636에 해당하는 설립. 이 경우를 볼 것 1636, 사람들이 같은 오, 의 printf ()는 당신이 있어야하지 않나요 그 학교 북쪽에? 우리가 생각하기 때문에 그들은하지 않습니다 그들은 하버드에 가면 여기, 휴식과 끝으로 건너 뜁니다. 내가 입력 1701,한다면 어느 나는 우리 모두가 입력하고자 가정 그것은이 사건을 건너 뛸 것, 올 경우 1701 두 개의 아래로, 예일에 인쇄에 오신 것을 환영합니다! , 휴식 끝으로 건너 뜁니다. 다른 사람은 아마이 과정을 복용 온라인으로하는 굉장한 환영을 case-- 가에 갈 것 Yale--하기 기본 인쇄, 안녕하세요 인터넷! 그리고 휴식. 그래. 스피커 12 : 당신은 다른 사용할 수 대신이 기본의? ANDI 펭 : 아니, 때문에 방법이이 모든 기능 스위치 내장, 구문 당신에게 사용해야하는 경우 케이스 기본값입니다. 이 경우 다른,이 경우처럼 하나는 케이스의 경우 기본입니다. 그래. 스피커 13 : 당신은 아마 이미이 말했다, 하지만 당신은 이가지 경우보다 더 많은 수 있습니까? ANDI 펭 : 그래, 당신이 할 수 당신이 원하는만큼 많은 경우가 있습니다. 그냥 좋아이라고 생각 무한에 추가. 스피커 14 : 당신이 만약 1636과 1701 스위치 정말하지 않습니다 차이 맞죠? 그것은 단지를 검사 할 것입니다. ANDI 펭 : 그것은이다 정말 좋은 질문입니다. 그리고 우리는에 터치합니다 이 후,하지만 단지 즉, 스위치 알고 문은 그것의 infinitely--됩니다 그것보다 그리고 만약 더 효율적 그렇지 않으면이 작동하기 때문에 경우 함수의 다른 유형을 사용하여 그 본질적으로, 단지를하려면 수 있습니다 로 바로 이동 경우 당신은에서 할 필요가있다. 그래. 스피커 14 : 차가운. 감사. ANDI 펭 : 네 스피커 14 : 그리고 당신은 할 수 없었다 경우 추천하고보다 큰 않습니다. ANDI 펭 : 아니오. 그래서,이에 대한 제한 무슨이다 스위치 문은 당신이 가지고 있다는 것입니다 단지, 단지 정수 상수를 가지고있다. 그래. 그래. 그래서 뭔가 있음을 사람은, 덜 자주 발생합니다 하지만 난 그냥 싶었 케이스에 소개합니다. 우리는 무슨 일이있어 여기에있다 삼항 연산자라고합니다. , 그냥 어디 본질적으로 같다 문은 한 줄에 컴파일합니다. 자, 내가 다음 줄에 갈거야, 다음 페이지, 쉽게이기 때문에 볼 수 있습니다. 그래서 우리는이 모든 권리를 본 적이? 이에 따라 꽤 쉽다. 나는라는 변수를 만들고 싶었다 경우 캐릭터 이름의, 경우 특정 번호 나는 내가 미만 100 제공 문자열로 낮은 할당 할, 다른 나는 높은 할당 할. 여기에이 똑같은 일을하고 코드의 그 팔 라인을하고있다. 그래서 여기에 내가 만들려면 변수 문자열. 그리고이 난 상태이다 숫자가 100 미만이면, 검사 당신은, 낮은 값을 할당 다른 높은 값을 할당합니다. 이 슬라이드는, 걱정 온라인 없을 것 너희들 경우는이를하지 않습니다. 이것은 단지 간단한 방법, 더있다 코드를 작성하는 효율적인 방법입니다. 그래. 그래서 지금 우리가 갈거야 대부분의 사람들에게 무엇을 입력 매우, 매우 혼란처럼 일이 처음에 생각합니다. 루프 섹션. 그래서 오늘, 우리는 이야기거야 루프에 대한 세 가지 유형. 우리는 잠시 시작하는거야 루프는 다음 않지만 루프에 대해 이야기 다음 루프에 대해 이야기. 따라서 본질적으로, 이상 거기에 시각적 학습자, 우리는, 본질적으로, 그래픽이 while 루프가하는 일의 묘사. 프로그램에 따라서, 당신은 시작될 것입니다 그리고 특정 시점에서 루프를 입력합니다. 당신은 상태를 확인합니다. 그리고 조건에 해당하는 경우, 당신은 내부의 코드를 실행합니다. 그리고 당신은 주위에 다시 와서 당신은 확인합니다. 여전히 사실이라면 당신은 계속 실행 루프에서 주변에 주변이 코드. 그 그러나 둘째 조건이 거짓이된다 당신은 휴식과 루프를 종료하는 것입니다. 그리고 이것은 본질적이다 당신이 사용하는거야 구문. 특정 조건이지만 그것은 사실이 아니에요 경우는 true, 이렇게 당신은 끝에 건너 뛸거야 및 프로그램과 함께 앞으로 이동합니다. 그래. 사람이 예를 들어 있나요 잠재적으로 발생할 수 있습니다 무엇에 나는이 코드 조각을 실행하려고하면? 그런데, 그 Scaz, 앤디의 SAJ-- 우리는 우리의 전자 우편을 서명합니다 Jason--, , SAJ을 사랑 해요. 즉 우리를합니다. 그래. 사람은 예를 들어, 또는이 이 인쇄 될지에 대한 생각? 트릭 질문의 종류. 그래서 여기에, 조건 기억 진정한 동안이다 위해 우리는 확인하고 있습니다. 이것이 사실 반면, 그건 그래서 인쇄 것, 내가 SAJ을 사랑 해요! 우리가 거​​라고하는 어떤 지점이 있나요 그렇지 않으면 아무것도로 변경? 바로, 아니? 여기에 그래서, 우리가 아마 무엇 발생 많이 귀찮게 될 것 프로그램, 무한 루프. 당신은 찾아 낼 것이다 당신 경우 이 코드 조각을 실행 그냥 계속 것 인쇄, 나는 SAJ을 사랑 해요! 우리는 지원을 감사 드리며, 우리는 당신의 컴퓨터를 원하지 않는다 당신 때문에 충돌하는 내가 SAJ 사랑 인쇄를 계속! 그래서 제발, 제발, 무한 루프를 방지 이 가고 결코 때문에 false로 평가하기 당신은 결코 않을거야 루프를 떠나. 그리고 당신은 거 야 영원히 흡입 될 수있다. 쿨. 그래. 루프의 두 번째 유형 우리는 오늘에 대해 얘기하자 , do-whil​​e 루프 루프 동안 할 일이다. 그리고 그것은 DO 루프 동안라고 당신은 말고 잠시 동안을 가지고 있기 때문에. 그래서 한 동안 꽤 유사하다 루프,하지만 조금 다른. 여기에서, 당신은 할 거 야 이 내부에 어떤의 특정 조건에 해당된다. 그래서 만약 내가 C와 난 컴퓨터를했다 이 코드 조각을 실행, 나는 상단에 살펴보십시오. 나는이 일을 말을, C로 이동합니다. 그리고 나는이 때, 확인 사실, 나는 그것을 반복해야합니다. 하지만이 거짓 인 동안, 나는 앞으로 이동 나는 다시 그 루프에 갈 수 없다. 사람이 자상 걸릴 수 있습니다 무엇의 차이에서 이 루프 및 하나 우리 사이 단지에서 거의이었다 보았다. 그래. 스피커 15 : 조건 오는 후 대신 전에? ANDI 펭 : 맞아요. 그래서 그녀는 말했다 조건 후가 아닌 전에 온다. 궁극적으로, 차분 이것과 while 루프 사이 그냥 할 거 야한다는 것입니다 에 관계없이이 내부에 어떤의 당신의 상태인지 아닌지 사실, 다음 조건을 확인하십시오. 이 경우, 당신은있어 always-- 이러한 방식으로, 당신은 항상 확인하는 것 어떤 것은 내부에 적어도 실행 한 번보고 확인하기 전에 당신이 원하는 경우 다시 실행합니다. 그리고 여기 예입니다 우리가 그것을 사용하는 것이시의. 그래서 예를 들어, 내가 원하는 경우가합니다 나이라는 이름의 int 형의 변수, 나는 메시지를 표시 할 나이에 대한 사용자, 나는 ()의 printf를 할거야 당신의 나이는 무엇인가? 나이 =의 getInt (), 어떤 사용자에게 메시지를 표시합니다. 그리고 어떤 사람들은 정말 짜증나는 것입니다. 그리고 당신은 버그에하지 않으려는 누군가의 프로그램은, 같은 입력 오 나는 4 살이든 뭐든 부정적입니다. 이 경우 그들이 경우에 ,이 평가 그렇게 내가 갈거야 즉, true로 다시 가서이 일을 계속해야합니다. 그래서이 유지하는 것입니다 다시하라는 메시지를 사용자에게 진짜처럼 당신을 제공합니다 나이 수와 그것의 돌아가서 재실행 유지하는 것 그들이 당신에게 실제 나이를 줄 때까지 보다 큰, 또는하지 제로. 그래서, 힌트 힌트. 이것은 매우, 매우 유용 할 것이다 당신의 PSET 문제 중 하나. 그래. 스피커 16 : 으악, 죄송합니다. ANDI 펭 : 그래. 스피커 16 :, 거기 있습니까 , 병신이 될하지만 ... ANDI 펭 : 아니 걱정. 스피커 16 :이 --are 여기에 다른 규칙, 또는 당신은 잊지 않았다 견적을 넣어? ANDI 펭 : 오, 그래. 죄송합니다, 그것은 완전히 내 나쁜. 그건 분명히했다 인용 있어야하는데. 좋은 캐치. 즉 실행하지 않은 것입니다. 그래. 그래서 루프의 마지막 형태는 우리가 얘기하자 약하고, 궁극적으로, 가장 가지 복잡한 루프이다. 그렇게하지 ​​않으면 걱정하지 마세요 그게 무슨 뜻인지. 처음에는 꽤 혼란. 우리는 예를 통해 이동합니다. 루프에서 일어나는 모든 세 개의 문을 가지고있다 당신은 포함 할 거라고. 그래서 어떤 일을 위해, 당신은있어 변수를 초기화하는 것. 당신은 할 수있는 조건을 추가거야 이는이 루프는 계속 실행됩니다. 다음, 끝에 루프는, 당신은 그것을 업데이트 할 것입니다. 당신은 변수를 업데이트 할 수 있습니다 당신은 추적하려는. 그래서 우리가 일반적으로 사용하는 우리를위한 루프 에 대한 루프를 실행하려면 회 일정량 우리는 이미 오 내가 원하는, 알고 이 루프는, 10 배와 같이 실행할 당신은 내가 가서 것이다 do-- 다음 페이지의 예. 그래서 여기에 예를 들어, 스크래치에, 당신의 경우 10 번 반복하는 것을 원 모든 당신이었다 말을했다, 내가 SAJ 사랑 10 번 반복! 이는 더 허용 우리에 대한 지원의 쇼 오히려 무한 루프보다. 여기, 당신은 어떻게 것 C 및 쓰기 전환 그게 내가 만들거야 int--입니다 또는 나는라는 이름의 int 형의 변수를 선언합니다. 나는 초기화거야 0에, 그래서 = 0; 이 내 상태가 될 것입니다. 그래서 나는 10 미만이다. 그리고 end--에서 당신이있어 마지막 문 가지고가는의 업데이트입니다 어떤 변수 I에 발생 당신의 루프의 끝에서. 그래서 때문에, 종류의 혼란 이 라인의 다른 부분 다른 일어나고있다 루프 타입. 하지만 난 갈 거예요 그 의사 코드 예 아마 이것을 설명 조금 더 나은. 그래서 여기에. 그것은 우리가 방금 본 루프입니다. 기본적으로 의사에, 무엇을 이 프로그램에서 어떤 일이 일어나고, 처음 내가 만드는거야입니다 I는 0으로 초기화. 난 내가 있는지 확인 해요 10보다 작은 경우에 그것이 처음 0 있기 때문에 10 미만이다. 따라서 루프가 실행하는 것입니다. 그리고 내가이 줄을 인쇄 할거야. 그리고이 라인의 끝에서 오른쪽 여기에, 내가, 내가 ++ 증가 할거야, 모든 수단이다 하나하여 증가. 그래서 지금은 1입니다. 나는 경우는, 한 번 0이었다 때문에 지금 1이다, 그것의 증가. 그리고 나는 돌아갈거야 루프의 처음으로 나는 상태를 확인합니다. 여전히 상태가 사실인가요? 예, 1은 여전히​​ 10 이하입니다. 그래서, 다시 인쇄 것 이동 한 후 난을 증가하고, 확인 조건 지속적으로, 지속적으로, 당신은 결국 얻을 때까지 점에 나는 10입니다. 이 10 번 인쇄 할거야 그리고, 나는 10와 동일 할 것이다. 당신은 상태를 확인하는 것입니다. 10 이상 10 이하인가? 아니, 그건 거짓입니다. 따라서,이 루프는 않을 것이다 실행, 그것을 깰 것, 당신은 거 야 당신의 코드에 계속. 너희들이 볼 수 있도록 정말 좋은 예입니다 루프는 점에서 프로그램 할 수 있습니다 시간의 지정된 시간 동안 실행됩니다. 하나 하나 명확? 그래. 스피커 17 : 어떻게 증가에 대한 지수 적으로, 그것은 상이한 코딩입니까? ANDI 펭 : 당신은 우리가 갈거야 주는거 다음 슬라이드에서이 이상. 좋은 질문. 내가 이동하기 전에 anyone--인가 on-- 모든 혼란 사람, 이것은 정말 어려운 개념이기 때문이다. 아니 걱정 것은 .. 확인을 경우. 쿨. 괜찮아. 그냥 일반 슬라이드. 이 while 루프를하고있다 루프에 대한 정확한 같은 일이었다. 그것은 단지 다르게 작성합니다. 너희들은 슬라이드를 정독 할 수 있습니다 나중에 사용자의 편의에. 그러나 단지 여러가 있다는 것을 알고있다 같은 일을 작성하는 방법 다른 루프가 발생합니다. 그래. 그래서, 지금 우리의 문제에서 무엇을 얻을 우리는 루프의 내부 루프가있는 경우. 우리는 현실에 있어요 여기에 처음 타입 물건. 당신은 사물의 여러 작업을 수행 할 때 다른 것들의 내부 시간 즉, 사물을 여러 번 수행 루프 중첩이라고 무엇을 할 수 있습니다. 당신의 사람들을 위해 누가 먼저이를보고 매우 혼란 얻을, 우리 모두 여기에 일을하는지 루프 곳에는 데 우리는 행의 변수를 가지고있다. 그러나 그 안에, 우리는 또한 다른이 변수라는 컬럼의 루프. 그리고 내가보기 엔 당신의 모든 제안 누가 먼저 계속 혼란 이를 끌어 track--이를 그립니다. 그냥 이유에 시도하지 말라 그것을 통해, 그것을 그립니다. 이 조각에 당신의 머리에서, 종이, 또는 무엇이든, 쓰기 행 행에 동일한 내용을 추적. 추적, 칼럼 쓰기 무엇의 열은 동일하다. 그리고 무엇을 추적 모든 반복 함께 인쇄. 이 루프의 각 반복마다 그 큰 루프의 반복, 그냥 논리를 다음과 유지. 그리고 난 당신을 보장, 당신이 무엇을보고 당신은 사랑합니다 아주이기도하기 때문에 문제 세트에 적용. 쿨. 괜찮아. 가장 중요한 것은 그래서 너희들은 아마 모든 것을 지금에 대한 생각, 문제 설정 1 초는, 어느 목요일 / 금요일 예정이다. 당신의 water.c 프로그램에서, 당신이 가진거야 힌트 입력하라는 메시지를 표시합니다. 당신의 mario.c 프로그램 내에서 당신은 할거야 인 루프 중첩을 사용하는 루프의 내부에 대한 루프, 본질적으로, 피라미드의 블록을 인쇄 무엇처럼 마리오를 통해 이동할 수 있습니다. 그리고 내부 당신의 greedy-- 혹은 당신의 어떤 사람 경우, 변경을 이제까지 that-- 들어있다 당신은 매우해야 할거야 최초의 부동 소수점 값에주의. 기억 부동 소수점 및 정수는 같은 것이 아니다. 하나 인 추적합니다. 그리고 당신이 사용하는거야 조건문뿐만 아니라. 좋아, 마지막. 나는 왼쪽으로 몇 분을 가지고있다. 스타일. 그래서이하지 않는 일이다 실제로 효율 효과 또는 코드의 실제 실행합니다. 그러나, 그것은 우리를에 영향을 미친다 당신의 학년, 당신의 독자로. 당신이 있다면 그것은 자신에 영향을 미친다 문제를 찾기 위해 노력. 그것은 코드의 가독성에 영향을 미친다. 당신이 시도 할 때 같은 스타일, 이 경우, 영어 에세이 스타일을 단락을하지 않았다, 당신은 종류의 모든 것을 가지고 한 줄에 함께 뒤죽박죽, 그것을 사람을 위해 정말 어렵게 경우에도, 에세이를 읽으려면 당신의 포인트는 논리적으로 소리입니다. 프로그램에서 같은 일. 당신은 끔찍하게 모호 할 수 있습니다 Scaz 커버하는 코드, 그것은 여전히​​ 실행하고 기능 할 수있다. 그러나 우리와 같은 당신의 사랑스러운 TAS, 것입니다 읽고 당신의 Pset을 평가한다, 그것은 아주 좋은 아니에요. 그래서하십시오 위해서 우리 자신의, 때 해결하기 위해 노력하고 있습니다 코드의 문제, 당신은에 노력하고 자신의 코드를 읽을 수 있도록 확실히 당신은 몇 가지 규칙을 따라야 우리는 이상 갈 거라고. 그래서 처음. 당신의 변수에 의미있는 이름을 부여합니다. 당신은 정수를 저장하려면 나이라고, 그것을 시대의 이름을하시기 바랍니다. 그것을 높이를 지명하지 마십시오. 때 당신이 노력하고 높이 나이를 저장, 이 모든 것을 만든다 우리를 위해 매우 혼란. 우리는 혼동 좋아하지 않는다. 당신은 혼동 좋아하지 않는다. 아무도 혼동 좋아한다. 경우에 당신은 뭔가를 만들려고하고, 그것을 의미있는 이름을 지정합니다. 그러나, 루프에서, 하나의 문자 변수는 일반적으로 정상입니다. 그리고 루프에서, 당신이 원한다면 그냥, j는, K, 그냥 그렇게 주시기 바랍니다. 일관된 초기화. 그래서 무엇을 의미합니까? 즉, 이론적으로 기술적 수단 당신은 시작하고 만들 수 있습니다 같은 줄에 여러 변수. 그래서 예를 들어, 내가 만들 수 있습니다 scaz_age라는 정수, 정수는 andi_age 20 =라고 및 정수라고 jason_age 같은 줄에. 그리고 나는 또한 중 하나만을 지정할 수 있습니다 그들과 값이 아닌 다른 사람. 우리는 당신이 그렇게하지 ​​않는하시기 바랍니다. 여기에 있기 때문에 본질적으로 만든 세 개의 변수,하지만 그들 중 하나 실제로 값을 갖는다. 그리고 우리가있을 때 코드를 읽으려고, 또는 당신은 해결하기 위해 노력하는 경우 코드의 문제, 이에 따라 매우 혼란. 그래서 당신의 가독성을위한 우리의 가독성은 그렇게하지 ​​않습니다. 일관된 중괄호. 어떤 사람들은 자신을 넣어 좋아 다른 장소에서 중괄호. 정말 중요하지 않습니다. 그냥 당신이 일치하고 있는지 확인하여 당신이 그들을 넣어 원하는 위치에 자신의 코드. 일관된 간격. 당신은 뒤에 공백을 넣으면 루프, 항상 그렇게. 그냥 좋아하는 종류의에서하지 마 일부 지역은 다른 사람을하지 않습니다. 그냥 일치. 둘째, 사람이 좋아하면 CS50 스타일 가이드를 정독하고, 우리는 공식적으로 스타일 가이드가 그 당신이 규칙을 모두 알려줍니다 플러스보다. 그것은 온라인입니다. 그것은 cs50.net/style처럼 또는 그런 일. 당신은 그것을 구글 수 있습니다. 일관성이 핵심입니다. 그래서 걱정하지 마십시오 무엇 다른 사람들이하고있는, 당신이 있는지 확인 자신의 코드 내에서 일치. 사람은 그것에 대해 질문이? 그래. 스피커 18 : 그래서 적절한 것은 초기화가 그냥 함께 할 별도의 모든 품목이 라인은, 당신이 무슨 말을하고 있는지입니까? ANDI 펭 : 그래서 거의 이런 일이 없다. 당신이 원하는 경우에, 당신이 원하는 경우 코드에서 공간을 절약처럼되고, 또는 무엇이든, 당신은이 작업을 수행 할 수 있습니다. 우리는 그냥 초기화하지 않는 것이 요청 한 가지가 아닌 다른 사람. 그래서 당신은 INT의 scaz_age를 수행하려는 경우, INT andi_age, INT의 jason_age, 그건 괜찮아요. 그냥 하나를 초기화하지 마십시오 아닌 다른 사람이 전부입니다. 질문이 있으십니까? 괜찮아. 나는 떨어져 통과거야 마이크로폰, 및 레이저 포인터 그리고 지휘봉이 시점에서 Scaz합니다. 이 어색하다. 여기있어. 브라이언 SCASSELLATI : 감사합니다. 어떻게 사운드 그건? 사운드가 ​​좋다? . 우수. 그래. 그래서, 안녕하세요 여러분. 나는 통해 작업하려고하는거야 당신과 함께 실제적인 예. 그리고 우리는 CS50의를 사용하는거야 개발 환경은 무엇이라고 통합 개발 환경. 그리고 당신은 본 적이 강의에 보여 주었다. 그리고 문제 세트 1, 당신이있어 기회를 가질 것 그것을 사용하고 놀러 그것은, 그리고 그것에 익숙해 우리는 그것을 사용하려고하고 있기 때문에 학기의 나머지 부분을 통해. 그래서이 IDE에서, 당신은 무엇을 보이는이 아주 전통적인 파일 브라우저와 같은 위에 한쪽에. 당신은 부분을 가지고있어 상단 어디가는거야 , 소스 코드를 확인하려면 개의 cfile, 당신이 작성하는 코드. 그리고 바닥 아래로, 당신은거야 터미널 창을 당신이 사용됩니다있는 두 프로그램을 컴파일 및 실행하거나 프로그램을 실행합니다. 그래. 그러니 우리에게 약간의를 제공하기 위해 기초, 해당 터미널 창에서, 당신이 될거야 일련의 명령을 사용하여 전반에 걸쳐 표준 명령입니다 그 유닉스 또는 리눅스 시스템의 가장. 그리고 당신은 이제까지 사용한 경우 유닉스, 우분투의 형태, 또는 다른 풍미의 어느 이러한 익숙 할 것입니다. 당신이하지 않은 경우, 걱정하지 마십시오. 그들에 대한 복잡한 것은 없다. 그들은 단지 다른를 사용하는 구문, 다른 이름 지정 당신보다 규칙은 전에 봤어요. 그래서 파일을 나열하려면 특정 디렉토리 내에서, 그들은을 사용하는거야 명령은 LS, 또는 목록을했다. 당신은 모든 것을보고 싶다면 모든 세부 사항과 함께, 당신은 명령을 사용합니다 LS -l와 행 인수. 그리고 그 모든 것을 보여주지 를 포함한 자세한 세부 사항에 파일에 대한 권한을 설정합니다. 디렉토리를 변경하려면, 당신은 cd 명령을 사용합니다. 그리고 당신은 디렉토리를 변경 할 수 있습니다 모두 홈 디렉토리로 이동합니다. 그게 전부가 그냥 CD를의 두와 자체 CD 점 하나를 당신을 반환합니다 이전 디렉토리 수준. 그리고 당신은에 CD도 수 CD에 입력하여 하위 디렉토리 그 하위 디렉토리의 이름입니다. 당신은 또한 새로운 디렉토리를 생성 할 수 있습니다. 그리고 우리는 걷는거야 잠깐이를 통해. 그러나 그냥 넣어 화면에있는 모든. 그래야 당신이 그들을 볼 수 있습니다. 또한 능력을 가지고 있습니다 직접 파일을 조작하기 명령 줄에서. 당신은에, 복사 할 수 있습니다 를 이동하거나 제거하기 위해, 즉, 효율적으로 데이터를 삭제합니다. CS50의 IDE는 당신에게 전체를 제공합니다 명령 줄 인수의 전원을 켭니다. 그리고 당신은 또한 할 수 있음을 의미 매우 위험한 일을. 그래. 예를 들어, 당신은 할 수 제거, 또는 그 삭제입니다 묻지 않고 파일 확인을 위해. 그리고 당신도 제거 할 수 있습니다 그건 recursively-- 대시 R은 전체를 flag-- 하위 디렉토리 및 모든 내용. 그래. 그들은 빨간색에 나와있는 당신 때문에 "위험"를 모든 시간을 생각해야 당신은 그 일을 참조하십시오. 그래. 괜찮아. 이제 마지막으로, 것들 그 당신에게 정말 도움이 될 것, 있는 몇 가지 좋은 트릭이있다 당신이 탐색하고 같이 알고 이 터미널 창을 통해. 첫째, 당신은에서 화면을 취소 할 수 있습니다 그냥 일반 텍스트로 입력하여 언제든지. 그리고 당신은 보게 될 것 나 자주 그렇게. 또한 바로 표시 할 수 있습니다 파일의 텍스트 더 후 파일 이름을 입력하여. 그런 다음 다시 스크롤 할 수 있습니다 및 앞으로 그냥 스페이스와 그와 및 화살표 키를. 당신이있는 경우, 우리는 강의에서 오늘처럼 지속적으로 실행하는 프로그램 무한 루프에, 당신 그 프로그램을 중지 할 수 있습니다 컨트롤에 입력하여 실행에서, 즉, 제어-C를 잡고있다. 그리고 당신은 할 수있다 이 여러 번. 컴퓨터가 훨씬 앞서 당신의 가져옵니다. 그리고 당신은 때때로 필요 그것을 시도 몇 줄 실제로 통해 올 것이다 전에. 당신은 또한 할 수 있습니다 명령을 정렬 방금까지 키를 사용하여 입력했는지, 화살표 키 한 다음 아래쪽 화살표 키를 누르십시오. 그리고 무엇을 가장 유용 대신하다 긴 파일 이름을 입력하는, 당신은에 사용 탭으로 할 수 있습니다 몇 가지 지시 사항을 자동 완성. 이제 우리는 보여거야 잠깐의 그 모든. 당신이 기억하지 못하는 경우에 따라서 그들, 걱정하지 마십시오. 다음은 당신이 할 것들입니다 픽업 우리가 함께 갈로 사용합니다. 그래. C--에 Scratch-- 달리 그래서 C는 컴파일 된 언어입니다. 그것은 우리가 소스를 걸릴거야 의미 file-- 그 당신이 쓰는 텍스트이다, 당신이, 쓰기 명령 의 printf () 문, 루프, 모든 else-- 우리는거야 해당 파일을 가지고 그것을 떨어져 손 프로그램 컴파일러를했다. 컴파일러는 걸릴 것 당신이 작성한 텍스트 그리고로 번역 이진 지침 컴퓨터입니다 실제로 사용하는 것. 즉 객체라고 또는 실행 파일. 이 파일을 보면, 당신은거야 당신이 작성한 코드를 볼 수 있습니다. 이 파일을 보면, 당신은거야 문자의 임의의 순서를 볼 수 있습니다 그 어떠한 의미도하지 않습니다. 이 바이너리이기 때문이다. 그것은 당신이 읽을 수 할 의미가 아니에요. 그러나 언제든지 당신이 원하는 당신이가는 건지, 뭔가를 실행 실행하려면이 오브젝트 파일입니다. 그래서 우리는이 작업을 할 때 파일, 우리는 C에서 파​​일을 작성합니다 우리는 다음을 사용하여 컴파일 것 호출합니다 메이크업 같은 명령 C 언어를위한 컴파일러 그 소리. 그리고 그 객체를 생성합니다 아웃 같이, 파일이나,이 경우, 이름, 내가 넣어 한 내 파일. 괜찮아. 그럼 실제로 해보자. 그래서 예를 내놓았다 내가 원했고 무엇. 그리고 것들 중 하나가 나를 매력적 애니메이션입니다. 그래서 우리는 일을하려고하는거야 애니메이션의 조금 단지 ASCII 문자를 사용하여. 문자는 우리가 지금 쉽게 인쇄 할 수 있습니다. 그래서 여기에 최선 시도이다 당신을 위해 생성에서 토끼의 애니메이션 키 큰 잔디를 통해 실행. 저기입니다. 그래. 그래서 그는 아직 실행되고 있지,하지만 그는입니다 키가 큰 풀밭에가 서. 지금은 애니메이터 인 경우, 이전 학교에서 애니메이션 버전, 내가 내가 생산하는 것입니다 할 것 잔디에서이 토끼의 그림. 그리고 나는 생산할 것 다른 picture-- 다른 사람들은 cell-- 이른바 토끼는 약간 이동했다. 그리고 세 번째했다고 토끼는 조금 더 움직였다. 그리고 전체를 생산하는 것 이러한 세포의 순서. 일부 어디 토끼가 끝난 좌측 상. 그리고 천천히, 하나 이동 중앙을 향해 하나. 그리고 중간에서 오른쪽에있는 이상. 그리고 정말, 그 다음 인 경우 운이 좋은, 나는 그것을 함께 넣을 수 나는 그들을 애니메이션 수 있습니다. 그리고 내 토끼있다 잔디를 통해 실행. 그건 내 큰 파워 포인트의 하루 트릭. 그래. 그래서 이것은수록 좋은 것입니다. 그래. 그래서, 여기에 하나 더, 여기에 우리입니다 잔디를 통해 실행 토끼. 스피커 19 : 다시. 브라이언 SCASSELLATI : 하나의 더 많은 시간, 좋아. 당신의 토끼가있다. 그래. 그래서 오늘 우리가가는거야 우리는거야 할 일은 프로세스를 자동화하려고 이러한 세포를 생성한다. 우리는 아주의 지점에 도착하지 않습니다 함께 그들 모두를 넣을 수있는. 그러나, 우리는 자동화하려고거야 이 시퀀스를 생성하는 방법. 그리고 이것은 무엇의 많은입니다 애니메이션 오늘은 같다. 즉, 당신은 반드시 일을하지 않습니다 손으로 모든 것을 그림으로써. 우리는 자동화하기 위해 컴퓨터를 사용 그 과정의 일부. 그래. 그래서 저를 전환하자 지금 우리의 CS50의 IDE에. 그리고 나는 us-- 및하자에 대한 만들었습니다 나 여기에 내가했습니다 조금 bit--을 확대 출발점은 우리를 위해 만들었습니다. 우리가 앉아 요청할 때마다 아래 코드 조각을 작성, 우리가 정말하고 묻는 것 우리는이 문제를 해결하기 위해 요구하는지된다. 그리고 그 방법은 당신이해야 것을 일을 생각 일부 시작입니다 해당 솔루션의 간단한 부분. 그리고 그 부분에서 구축. 그리고 오늘날 우리가 무엇을 할 것인지입니다. 그래서 대신에 한 번에 모든 것보다 의 코드의 전체 무리를 쓰기 이들을 생산할 예정 10 애니메이션 세포 우리는 대신에 시작하는거야 작동 한 조각. 그리고 우리는을 구축 할 것 그 주위에 조금 조금 더 조금 더. 이제 좋은 일에 대한 문제를 이런 식으로 해결 당신이 시작할 수 있도록하는 것입니다 항상 당신이 알고있는 뭔가 작동하고 하나의 점진적 변화를 소개합니다. 그리고 그것은 좋은 방법 코딩하는 방법에 대한 자세한 내용은, 때마다 당신은을하기 때문에 변화는, 당신은 무슨 영향을 참조하십시오. 그래. 그래서 여기에 우리의 출발점이다. 그래. 내 파일의 시작 부분에 따라서, 나는 해시있는 헤더의 STDIO.H을했습니다. 내가 얻을 수 있도록 때문입니다 의 printf () 기능이 작동합니다. 그때 나는 내 주요 기능을 가지고있다. 그리고 이것은 아직도 조금 보이는 비밀 또는 일부에 모호한. 괜찮아요. 그것이 말하는 모든 것입니다 주요 기능은 소요 더 arguments-- 무효 수단 C. 그리고 아무것도 없다 규칙에 의해 반환하는 정수입니다. 홈페이지는 항상 정수를 반환, 일반적으로 코드는 일을 말 잘 갔다 또는 잘되지 않았다. 그래. 그러나 주요 것을 가지고있다 지금 우리를 위해 형성한다. 나는 다음 코드의 세 줄에 넣었습니다. 그리고 각각의 라인과 함께 코드는, 내가 코멘트를 넣었습니다. 사물의 지금 한 그 우리는 당신이 할 것을 주장합니다 그리고 이러한있어 중요한 프로그래밍 방법, 항상 코드를 언급하는 것입니다. 항상에 적어 영어 코멘트 뭔가 당신을 생각 코드가 수행 할 예정이다. 당신이 되돌아 올 때에, 나중에 그 방법 그것은, 당신은 그것을 볼 수 있습니다 당신은 말할 수 오, 내가 무엇을 기억 이 일과하려고합니다. 또는 TA는 당신과 함께 앉는 때 근무 시간에서 당신을 도우려고, 그들은이보고 갈 수있다, 나는 당신이 뭘하려고했는지 참조 대신이다 무슨 일이 정말 일어나고. 그래. 그래서, 내 코드에 세 부분이있어 나는 모든 인쇄의 처음에 갈거야 시작시 어떤 점 밖으로. 그때 나는 인쇄 할 것이다 나의 매우 멋진 토끼. 그리고 끝 점의 일부 비트. 그리고이 세 가지 인쇄 문은해야 이 시점에서 당신에게 익숙. 나는에하고있어 그 모든 그들 각각의 난입니다 일련의 문자를 인쇄. 관련된 어떤 변수가 없습니다. 모든 것이 평평하다. 그래. 그래서 난 내 terminal-- 지금 내려 가면 나는이 다시 얻을 수 있는지 보자 out-- 나는 다시 클리어 타입거야. 스피커 (20) : 우리가를 사용하십니까 이중 슬래시는 댓글에? 브라이언 SCASSELLATI : 수 double-- 예를 사용합니다. 여러 가지 방법이있다 C. 하나의 코멘트를 남겨 방법은 이중 슬래시를 사용하는 것이다. 다른 하나는 슬래시와 스타를 사용하는 것입니다 다음 스타와 슬래시로 닫습니다. 괜찮아. 우선, 내가 갈거야 여기에 주변 탐색 시작합니다. 그래서 난 내 홈 디렉토리로 이동하는 경우, 나는,이 디렉토리를 변경했습니다 나는보고 무엇을 볼거야 그 디렉토리에, LS, 밖으로 나와 있습니다. 제가했습니다 볼거야 두 개의 서브 디렉토리를 얻었다. 의이 조금 더 큰 만들어 보자 여기에서 우리는 그것을 볼 수 있도록. 제가했습니다 볼 수 있습니다 두 개의 서브 디렉토리를 얻었다. 나는 디렉토리를 변경합니다 작업 공간으로 이동합니다. 그리고 나는 단지 밖으로 입력 할거야 그것의 일부는 다음 단지 탭을 누르십시오. 그리고 그것은 나를 위해 나머지를 완료합니다. 공상. 내가보고 작업 영역에서 볼 수 있습니다. 그리고 지금, 내가 일하고 있어요 SuperSection에 것을 우리는 지금 교육하고 있습니다. 그래서 그 디렉토리로 이동합니다. 그리고 마지막으로,보고를 참조하십시오. 그리고 그 파일 bunny.c있어. 좋아요 그래서 더 한 번 저를 분명히하자. 그리고 난 다시 난들을 당장거야 아직도 그 디렉토리에 머물고 그리고 내가에있어 저를 말하고 그 SuperSection 디렉토리. 나는 앞서 갈거야 및 내 프로그램 토끼를합니다. 그리고 그 명령은 토끼를 만들어, 조금 이상한 소리가 나는 동안, 또한 그 소리 컴파일러를 호출합니다. 그리고 그것은 용으로 제작 있어요 내가하는 출력 실행 funny--의 실행 파일은 토끼를했다. 그래. 그때 나는 할 수 있으며,이 소리 더 나쁜, 토끼를 실행합니다. 그래. 그리고 이제 그것이 무엇을 보자. 그래. 즉, 약간의 내가이 기다리고 있었다. 나는 거기에 내 토끼 사진을 가지고 하지만 난 종류의 그 자체로 모든 것을 원했다. 나는 무엇을 그리워 했습니까? 스피커 21 : L 슬래시 또는 N 슬래시. 브라이언 SCASSELLATI : 슬래시 명. 그래. 그럼 여기에서 밖으로 돌아 가자. 그리고 그 나갈 것입니다. 그리고 나는이 일에 다시 갈거야. 그리고의 현재를 살펴 보자 여기 내 주요 기능에서. 그래서 어떻게해야합니까? 나는 선을 종료 할 수 있습니다. 그래서 나는 코멘트에 넣어 것입니다. 내가 printf의에 넣어합니다 (). 그리고 난에 넣어 무엇을해야합니까? / N. 그래. 나는 무엇으로 종료해야합니까? 세미콜론. 괜찮아. 이제, 하나의 정말 중요한 것은 확인하다 때마다 당신은 변경을 코드에서, 당신은 그것을 저장하는 것이. 당신은 당신의 코드를 저장하지 않은 경우, 당신은있어 이 작은 별을 위로 알 것. 그리고 그 별을 말한다 이 코드를 저장하지 않았습니다. 내가 지금 컴파일하면, 아니에요 그 변경 사항을 반영하는 것, 컴파일러는 파일에 보이기 때문에 즉, 디스크,하지의 파일에의 편집기에서 엽니 다. 괜찮아. 그래서 그것을 저장하게하고 우리는 갈거야 오른쪽 아래로 여기에, 밖으로 돌아와. 내 단말기에 내려와. 그리고 이제 다시 공간을 취소 할 수 있습니다. 그리고 우리는 앞으로 하나 더 갈 수있다 시간은 우리의 토끼 프로그램을 확인합니다. 그리고 토끼를 실행합니다. 그 중 하나가 작동하지 않았다. 잘못된 슬래시. 당신은 내가 뭘 찾았는지를 보면 그래서, 내가 넣어 / N 거기에,하지만 잘못된 슬래시했다. 모든 사용자 컴퓨터 합니까 매우 명시 적입니다. 그래? 문장 부호 하나의 작은 실수와 갑자기 당신은 당신이 원하는 것을 얻을 수 없습니다. 괜찮아. 그래서 밖으로 다시 확대 할 수 있습니다. 우리는 돌아 가야 할 것이다. 그런데 바로 그 빠른 복구를합니다. 우리의 오른쪽 슬래시를 넣어 것입니다. 우리는 그것을 저장합니다. 우리는 다시 확대합니다. 어떤 이유로, 그건 아니에요 행복하고, 그러나의 앞서 가자 우리는 여기에 다시 터미널로 이동합니다. 그것을 취소합니다. 우리는 확대합니다. 그리고 한 번 더, 우리는 토끼를 만들 수 있습니다. 그리고 지금 과연, 그것을 작동합니다. 만세. 그래. 그럼이를 만들기 위해 노력하자 좀 더 일반적인. 보자 경우 대신 단지 하나의 특정 프레임을 인쇄, 우리가 이것을 할 수 있는지 보자 우리는 (10)를 얻을 수 있도록 그 애니메이션의 프레임 우리가 가지고 싶어 그. 그래서 다시,의는하자 한 번에이 단계. 이제 제, 그것을하지 일반화하자 그래서 나는 모든 프레임을 수행하는 것이, 하지만 그래서 하나를 수행 내가 할 수 있습니다 프레임. 그래서 차이점은 무엇입니까 프레임 사이? 토끼는 동일합니까? 청중 : 네. 브라이언 SCASSELLATI : 네. 차이점은 무엇입니까? 청중 : 위치. 브라이언 SCASSELLATI : 그것의 위치, 오른쪽? 그리고 어떻게 위치를 제어하는​​? 얼마나 많은 점 난 처음에 넣어 얼마나 많은 점 나는 해요 마지막에 넣어. 그래서에서 다섯이 있었다 시작과 끝에서 다섯. 의 for 루프와 그 다섯을 대체하자. 그래. 그리고 난의를 만들거야 루프는 지금은 말할 것 나는 약간의 번호를 인쇄 할거야 의 시작 부분에 점. 나는 변수를 사용하려고 해요. ,의 말을하자 내가 어떻게 약으로 내 루프에서 카운터. 그리고 나는 정상에 그것을 선언하는거야. 그리고 루프에 나는 3 일을 할 필요가있다. 내가 가장 먼저해야 할 일은 나는를 초기화해야합니다. 어떻게 초기화한다 는 것으로 시작? 0. 그래. 그럼 무엇을, 말할 필요 종료 조건? 언제 중단해야? 그럼 얼마나 많은 점을 수행 이 하나에 인쇄 할? 청중 : 다섯. 브라이언 SCASSELLATI : 다섯 다시? 에 대한 것은 이제 뭔가를 할 수 있도록하는 방법 다른, 우리는 다섯했다. 의는 다른 있다고 보여 드리겠습니다. 스피커 22 : 두. 브라이언 SCASSELLATI : 두. 그래. 나는 두 개의 점을 원한다면, 나는 여기에 무엇을 넣어해야합니까? 청중 : 세. 브라이언 SCASSELLATI : 세. 그래. 얼마나 많은 시간이다 를 통해 갈? 즉 통해 갈거야 세 번, 0, 1, 2, 오른쪽? 좋아, 이제 다시 아래 2 가자. 이제 우리는 두 개의 점을 얻을 것이다. 그리고 제가 각각의 작업을 수행 할 할 나는 루프를 통해 이동 시간? 어떻게 변경해야 나는 통과 할 때마다? 스피커 23 : 점을 추가합니다. 브라이언 SCASSELLATI : 나는 계속해야합니다. 나는 점을 추가하는거야. 나는 점을 인쇄하는거야, 루프를 통해 각각의 시간. 하지만 어떻게 어떻게 추적을 유지하고있다 여러 번 나는 루프를 통해 봤는데? 나는, 내가 사용하고 변수, 그 카운터. 그래서를 통해 때마다, 내가 갈거야 하나를 사용하여 카운터를 증가합니다. 자,이에 대해 동일한의 나 내가 말하는대로 = 내가 1 +. 괜찮아요. 내가 좋아 that-- 그것을 할 수 속기, 그래서 내가 ++ 말할거야. 그래. 의이 같은 일을하자 여기 아래 하단에. 만 나는 종류의 하나를했다. 나는 너희들에게 할거야 완전히이 하나를 수행합니다. 괜찮아. 그래서 여기에 무엇을 작성해야? 여기에 루프 내를합니다. 나는의 printf를 (할거야) 내가 갈거야 나는 단지 하나의 점을 인쇄 있도록 만들려면 그 아래에. 어떻게 작성해야 지금 루프이 내부에? 우선, 그럼 무엇을 변수를 사용해야합니까? 스피커 24 : J. 브라이언 SCASSELLATI : 나는 J를 사용할 수 있습니다. 저도 같은 일을 할 수 있습니까? 나는 내가 다시 사용할 수 있습니까? 그래. 즉, 괜찮아요 때문에 내가 여기에 사용하고 있음을, 나는 다시 할 때 그들을 필요로하지 않습니다 나는이 점에 내려. 그래서 나는 내가으로 초기화해야합니까? 스피커 25 : 10. 브라이언 SCASSELLATI : 0. 나는 무엇을 확인해야합니까? 얼마나 많은 점 나는 마지막에 지금해야합니까 나는 처음에 두 개의 점을 가지고 있다면? 나는 마지막에 팔 필요, 그래서 난 내가 덜 than--, 확인해야 청중 : 7, 8, 9. 브라이언 SCASSELLATI : 나는 일곱를 들었다. 나는 팔을 들었다. 그리고 구를 들었다. 그래. 그래서 우리는 오른쪽에있는 모든 것 ball-- 제이슨 (10) 말한다. 그래. 나는 두 가지 점을 필요한 경우 첫번째, 얼마나 할 난 - 나는 8 개의 도트가 필요 마지막 one-- 나는, 최대 위의 두 가지를 넣어 내가 아래로 아래에 넣어해야합니까? 청중 : 여덟. 브라이언 SCASSELLATI : 여덟. 그 때문에 것 일곱 통해 제로를 계산합니다. 그리고 그 루프를 8 번이다. 그래. 그리고 마지막에 무엇을해야합니까? 청중 : 내가 ++. 브라이언 SCASSELLATI : 나는 ++. 괜찮아. 그래서이 꽤 좋은 찾고 있습니다. 의 그것을 시도하자의 그것이 무엇을 보자. 그래. 그래서 우리는 그것을 저장하는 것입니다. 니스와 저장. 우리는 밖으로 다시 확대합니다. 우리는 터미널에서 여기에서 시도 할 것이다. 우리는 확대합니다. 죄송합니다. 우리는거야, 한 번 더, 우리의 토끼 프로그램을 확인합니다. 그리고 가서 토끼를 실행합니다. 그리고 거기입니다. 그래서 우리의 토끼가있다. 그것은 처음에 두 개의 점을 갖는 경우 그리고 마지막에 밖으로 여덟 점. 나와 함께 여전히 모두? 그래. 그래서 우리는 그것을 구축. 우리는 하나의 토끼를 구축 하나의 특정 프레임. 이제 우리는 할 수있었습니다 구축이 일반화 프레임의 더 다른 종류. 이제 앞으로 가서 보자 그것은 단지 하나의 프레임을 생성 하지만의 10을 생성 할 수 프레임, 어디 천천히 토끼를 모두 이동하게 들판을 가로 질러 길. 괜찮아. 의 돌아 가자. 그리고 우리는 지금 시도 할 것이다. 그래서 난 정말 여기 변경해야합니까? 나는 무엇 변경해야합니까? 스피커 26 : 당신이 먼저 필요 도트의 최대 수를 변경 처음에. 우리가 10 점을 수행하는 경우 때문에, 그것은 확장까지 할 필요거야. 브라이언 SCASSELLATI : 네. 그래서 지금 나는 종류의 고정 배선이 항상 시작 부분에 두 개의 점을 수행하는 항상 마지막에 여덟 점을. 난 지금, 또 다른 루프를 구축하고 싶어? 에 내가 원하는하지 않기 때문에 단 하나의 토끼 사진을 구축 나는 10 토끼 사진을 구축하려는. 그래서 나는 다른 루프를 구축해야, 나는 그 루프를 진행하면서, 나는 얼마나 많은 변경하려면 점은 내가 처음에 인쇄 나는, 마지막에 얼마나 많은 점을 인쇄 루프를 통해 어떤주기를 기반으로 나는 ~ 안에있다. 괜찮아. 그럼 다른 카운터를 얻을 수 있습니다. 누군가가 전에 J 말했다있어, 그래서 우리는 또 다른 J를 만들 수 있습니다. 그리고 지금, 우리는 갈거야 또 하나의 for 루프를 구축 할 수 있습니다. 어떻게 그 루프 내부에 간다? 이 물건은 가야한다 루프 내부, 오른쪽? 토끼가 있습니까 루프 내에서 이동? 내가 토끼​​가 필요하십니까 이들 프레임들 각각 10? 청중 : 어 - 허. 브라이언 SCASSELLATI : 네. 나는 각각의 토끼를 원한다 10 프레임의 오른쪽? 방법의 점에 대한 결국, 나는 그 필요합니까? 그래. 그래서 나는 그들 모두를 들여거야. 나는 모두를 강조하는거야 이것은, 내가 탭을 칠거야. 그리고 그 모든 것을 그들을 밀어 것 조금, 있도록 나를 위해 쉽게 루프에서 무엇을 볼 수 있습니다. 그리고 나는 그것을 겁니다. 의 말을하자. 그래? 지금,이 루프에 그 나는, 빌딩 안에의 으악 해요 당신이 see-- 수 있도록 그렇게 만들 내 카운터 (j)를 가지고있다. 나는 0으로 시작됩니다. 얼마나 많은 시간을 내가 원하는 수행 이 루프를 통해 이동합니다? 청중 : 10 회. 브라이언 SCASSELLATI : 10 번. 그래서 여기에 무슨 수를 넣어해야합니까? 청중 : 9, 10. 브라이언 SCASSELLATI : 9, 10, 누군가가 바로, 11 말있어? 나는 전에 두 개의 점을 원했다 2보다 내가 덜했습니다. 나는 여덟 점을 원했다 나는 8보다 내가 덜했습니다. 지금은 10을 통해 가고 싶어 시간은, 그래서 덜 than-- J를 넣어 청중 : 10. 브라이언 SCASSELLATI : 10. 우리는 거기에 갈. 그리고 나는 J의 끝에서 무엇을해야합니까? ++를 증가. 그래. 지금, 여기에 까다로운 부분이있어, 무엇이다 지금 내가 이렇게하면 무슨 일이 일어날? 나는 10 프레임을 인쇄 할 것인가? 스피커 27 : 내가 생각하는 그들은 모두 같은 수 있습니다. 브라이언 SCASSELLATI : 그들은거야 모든 권리, 동일? 그들 모두는 여전히 진행되기 때문에 시작 부분에 두 개의 점을 넣어. 하지만 난에 그들 모두를 원하지 않는다 두 개의 점 시작을해야합니다. 얼마나 많은 점 내가 할 처음에 싶어? 청중 : 변경. 브라이언 SCASSELLATI : I 그것은 바로, 변경하려면? 그래서 변화하는 사용자들은 여기에 무엇을해야합니까 루프를 통과 할 때마다? 청중 : 점의 수, J. 브라이언 SCASSELLATI : J, 점의 수. 그래서 J로 변경할 수 있습니다. 관통 처음 루프는 그 무엇은있을거야? 어떻게 내가 처음에 J를 설정합니까? 청중 : 0. 브라이언 SCASSELLATI : 그래서 얼마나 많은 시간이 나는이 작업을 수행하는 것입니까? 0. 루프가 J의 관통 번째 나는 그것을 증가하기 때문에 1이 될 것. 얼마나 많은 점 나는 인쇄 할 것입니까? 1. 루프를 통해 세 번째 시간, 얼마나 많은 점 나는 인쇄 하겠어? 청중 : 세. 브라이언 SCASSELLATI는 : j는 3이 될 것입니다. 얼마나 많은 점 나는 인쇄 할 것입니까? 아, 죄송합니다, j는 2가 될 것입니다. 얼마나 많은 점 나는 인쇄 할 것입니까? 청중 : 2. 브라이언 SCASSELLATI : 2. 좋아, 그래서 계속거야 우리가 함께 갈로하는 것이 증가. 어떻게 아래로 아래는 어떻습니까? 어떻게 내려 간다? 나는 항상 8 싶지 않아 이상 끝? 스피커 28 : 10. 브라이언 SCASSELLATI : 나는 10 점을 줄까? 나도 그것을 변경하고 싶습니다. 그래서 나는 그것을 변경하는 방법을 원하세요? 청중 : [들림]. 브라이언 SCASSELLATI : 글쎄, 난 경우 처음에 다섯 점을, 나는 마지막에 몇 점의를받을 수 있나요? 청중 : 다섯. 브라이언 SCASSELLATI : 나는이있는 경우 처음에 여섯 점, 나는이 말에 얼마나 많은을받을 수 있나요? 청중 : 네. 브라이언 SCASSELLATI : 내가 가지고있는 경우 처음에 일곱 점, 나는이 말에 얼마나 많은을받을 수 있나요? 청중 : 세. 브라이언 SCASSELLATI : 나는 한 경우 , 처음에 J 점을 얻었다 나는이 말에 얼마나 많은을받을 수 있나요? 10-J. 그래. 그래서 그 밖으로 시도 할 수 있습니다. 그래서 우리의 토끼 프로그램을 저장하는거야. 다시 한번 우리는 축소됩니다. 우리는 우리의 터미널에 가서 것이다. 우리는 선택을 취소합니다. 그리고 확대. 우리는 다시 우리의 토끼 프로그램을 만들 수 있습니다. 그리고 우리는 그것을 실행합니다. 어 오. 의는 축소하자, 기다려. 나는 10 프레임을 받으셨어요? 글쎄, 얼마나 많은 토끼 내가 거기까지 볼 수 있습니까? 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. 나는 10 프레임을 얻었다. 그들은 모두 같은입니까? 청중 : 네. 아니. 브라이언 SCASSELLATI : 아니오. 즉, 첫 번째, 토끼는 멀리 왼쪽에 있습니다. 그리고 여기, 토끼에서 멀리 스피커 29 : 오른쪽. 브라이언 SCASSELLATI : 그래서, 내가 뭘 할 것을 잊지 않았다? 스피커 30 일 : 새 줄을 시작합니다. 브라이언 SCASSELLATI : 나는 잊었다 다시, 새로운 라인을 시작합니다. 같은 실수 내가 전에했다. 좋아, 이제 그 문제를 해결 가자. 지금, 나는 아직도 코드를 가지고있어 거기에 새로운 라인을 확인합니다. 왜 작동하지 않았다? 스피커 31 : 그것은 루프 안에 아니다. 브라이언 SCASSELLATI : 아, 그것은 루프 안에 아니다. 맞습니다. 그것은 여기에 외부 앉아있다. 그리고 루프에 대한 모든 것을입니다 즉, 텍스트 내부입니다. 그래서 이동하는거야 이 내부 루프. 그리고 나는 그것의 전면에 탭을거야 그것은 바로 이곳에 있다고 보여줍니다. 그리고 지금, 우리는 다시 저장합니다. 우리는 축소됩니다. 우리는 우리의 터미널로 전환합니다. 확대. 우리는 우리의 토끼 프로그램을 리메이크 할 것이다. 그리고 지금, 지금 우리는 우리의 10 프레임을 가지고있다. [박수] 브라이언 SCASSELLATI : OK. 겠어요 - 여기에 우리의 루프 중첩됩니다. 우리는에 생성 할 수 있었다 내가 원하는 얼마나 많은 점 내부 루프 마지막에, 처음에 인쇄한다. 및 외부 루프 제어 얼마나 많은 프레임 내가 구축했다. 우리는 하나의 작은 시작 문제의 커널, 우리는 그 시점에서 밖으로 내장. 괜찮아. 이제 한 단계를하자. 당신 준비? 한 가지 여기 어디에서있다 우리는 실제로 종류의있어 우리가 필요로하는 것보다 더 복잡. 이제 살펴 보자. 우리 토끼 프로그램에 따라서 여기 축소하는 경우, 실제로 같은 몇 가지 작업을 수행 일이 또 다시. 나는 일종의 무엇을해야합니까 같은 일을 두 번 반복? 스피커 32 : 도트를 인쇄합니다. 브라이언 SCASSELLATI : 네 나는 두 번 그 점을 인쇄 할 수 있습니다. 정말, 내가해야 여기 아래이 댓글. 나는에서 어떤 점을 인쇄 여기까지, 시작. 그리고 내가 마지막에 몇 가지 점을 인쇄 할 수 있습니다. 그리고 나는 종류의 정확히 같은 일을. 우리가 시작하는거야 앞으로 몇 주에 작업 의 그 블록을 수있게되고 우리는 또 다시 사용하는 코드, 및 프로세스를 통해 라는 추상화, 우리가 그들을 꺼내려고하고 한 번에 쓰기 우리가 다음 할 수 있도록 또 다시 재사용. 그럼 그 시도 할 수 있습니다. 준비가 되셨습니까? 우리는 코드 블록을 것입니다. 그리고 나는 거기에서 그것을 걸릴거야. 그리고 define--거야 하단에 아래로, 나는 새로운 기능을 쓸거야. 그것은 아무것도 반환하지 않을거야. 그리고 printDots를 호출거야. 그것은 하나를 걸릴 거예요 인수, 정수 그 내가 인쇄해야 howManyDots을 말한다. 대신 J 점을 인쇄 그리고 지금, 나는거야 내가 인쇄해야 howManyDots에게 인쇄 할 수 있습니다. 그리고 하나의 작은 문제가 여기에있다. 아무도 그것이 무엇인지? 나는이 목록에있어이 무엇을 여기에 그 정의되지 않은거야? 청중 : [들리지] 브라이언 SCASSELLATI : 음 방법 많은 점은 바로 정의 여기에,하지만 난 그 변수 내가 사용하고 있습니다. 그래서 나는 그 변수를 취할거야 내가 나는 여기에서 그것을 아래로 정의 할거야 대신. 그래서 지금은 죄송합니다 stay-- 것, 캡 somehow-- 난에 고정되었다 여기에 난을 유지하는 것. 그래서 지금 여기 내 작은 함수의 또는 서브 루틴, 그리고 말한다, 얼마나 많은 점 나는 인쇄 하겠어? 그리고이 루프를 통해 갈거야, 그리고 반복해서 다시 인쇄 할 수 있습니다. 나는 여기에 내 프로그램을 수정할 수 있습니다. 그리고 내가 그 함수를 호출 했습니까? printDots. 그래서 printDots 전화 할게. 얼마나 많은 점 나는 인쇄 할 할 토끼 전에 처음으로? 청중 : J. 브라이언 SCASSELLATI : J. 얼마나 많은 점 나는 인쇄 할 할 토끼 후 끝에서? 10-J. 그리고 내가 부족 한 가지가있다. 오늘 강의에서 보았 듯이, 우리는 printDots를 선언거야 최대 위의 프로토 타입을 제공합니다. 그래. 그래서 내가 무슨 짓을했는지하는 나는에 시도했다한다 코드의 재사용 부분을 분리 나는 또 다시 한 적이있다. 그리고 나는 그래서 그것을 밖으로 끌어 시도했다 그 전부는 한 위치에 포함된다. 그런 식으로, 어디 선가 실수가있는 경우, 나는 단지 한 자리에서 문제를 해결해야합니다. 괜찮아. 그래서 그것을 저장할 수 있습니다. 그리고 이제 그것이 작동하는지 확인하자. 그래서 밖으로 가자. 우리는 우리의 터미널로 다시 이동합니다. 우리는 확대합니다. 우리는 토끼 프로세스를 만들 수 있습니다. 오. 그리고 그것은 나에게 경고를 제공합니다. 무엇 나를 말하고있다? 그런데 이들의에 시간, 당신은 항상 원하는 맨 처음 error--까지 이동합니다 지금이 하나, 나는 단지 하나있어. 이 라인에, bunny.c에서 저에게 말한다 (8), 열 (9)는 문제가있다. 그것은 당신이이 선언 한 말한다 변수 i와 당신이 그것을 사용하지 않았습니다. 지금 일반적으로, 그건 하지 최악의 오류입니다. 즉, 해결하기 쉬운 하나입니다. 그리고 사실, 우리는 다시 갈 수 있습니다. 우리는 토끼로 되돌아 갈 수 있습니다. 이 경우, 모든 우리 나는 제거된다해야 할, 우리가 사용하지 않는 때문에 주 내에서 내가 더 이상. 우리는 단지 그것을 사용하는 우리의 서브 루틴 내. 그래서 그 내용을 저장 할 수 있습니다. 우리는 돌아 가야 할 것이다. 그리고 확대. 우리는 한 번 더 토끼를 만들 수 있습니다. 그리고 다시 우리의 10 프레임이 있습니다. 그래. 당신이 주어진있어 언제든지 그래 procedure--. 스피커 33 : 내가 혼란 스러워요, 뭐랄까 내가있다. 당신은 다시 코드에 갈 수 있습니까? 브라이언 SCASSELLATI : 그래. 당신이 쓴 그래서 : 스피커 (33) 프로토 타입, 인수 당신에게 그것은 howMany 불렀다라는 있었습니까? 그러나, below-- 브라이언 SCASSELLATI : 오, 그래. 스피커 33 : 그들에게 뭔가를 --called 다른, 이해가되지 않습니다. 브라이언 SCASSELLATI : 왜 그들은 다르다. 그래서 좋은 질문입니다. 그래서 질문까지했다 여기에, 나는, howMany을 썼다 아래로 아래에, 나는 howManyDots을 썼다. 그 이유는, 당신의 프로토 타입이을이다 실제로 관심을 아니에요 당신이 퍼팅 이름으로. 정말에 대한 관심 모든 이 정수는 것이다. 이 양식을 알고 싶어 당신이 퍼팅을하는지의. 지금 oops-- stylistically-- 내가이해야 , 나는이 경기를 만들기 위해 같다 않습니다. 그래. 그게 계속 될테니까 나를 기억하기 쉽다. 하지만 그건 내 실수 그래했다. 스피커 34 : 그리고에 대한 프로토 타입은, 일하기 그 라인을 작성, 프로토 타입을 작성, 오는 기능을 할 수 있습니다 바로 아래의 끝으로 이동 그 의미를 검색? 브라이언 SCASSELLATI : 그것은 의미 컴파일러를 통해 갈 때입니다, 그것의 상단에서 이동 하단에 코드. 그리고이 프로토 타입은 무엇인가 그것은 기본적으로 약속입니다. 그것은있을거야,라고 함수 정의 어딘가. 그것은라는 printDots 될 것. 그리고 그것은 하나의 인수를 취할 것 그 정수가 될 것 그것은 반환 것 아무것도 무효 형. 그래. 나는 당신이 될 것 약속 도로의 아래 어딘가에 정의. 그러나 언제든지 당신이 볼 당신이 아래로 가서, 그 의 나머지 부분을 통해 내 주요 기능, 내가 원하는 당신은 함수로 그 치료를 위해 즉, 하나의 정수 입력을합니다. 그리고 컴파일러는 다운 그렇게 할 때 이를 통해 그 약속을 본다. 그리고 그것은 아래로 오면, 가는거야 계속 유지, 이것은 처음 발견 printDots 언급된다. 그리고 오, 당신이 포기하고, 말한다 날이 J. j는 정수입니다. 그럼 당신은 내게 그 것이다 약속 정수와 맞아. 괜찮아요. 그리고 마지막으로, 아래로 맨 아래에서, 나는의 끝에 도착하기 전에 내 파일, 나는 약속을 잘 만들어 나는 그것을 정의합니다. 그래? 스피커 (35) : 그래서, 그것은 saves-- 프로그램은 빈 공간을 절약 할 수 이 돌아가서 마지막에 채우? 브라이언 SCASSELLATI : 그것은 아니에요 메모리 할당에 대한. 그것은 단지에 대해 실제로 무엇 유형은 당신이보고 기대하고있다. 이 일이 하나를 가지고해야 인수, 또는 다섯 인수? 이 수의 정수가 있어야합니다 그것은, 또는 문자열로 주어진? 즉 찾고 전부 확인하는 것입니다하려면 당신이 나에게주는 인수의 오른쪽 종류. 그래? 괜찮아. 내가 당신을 떠나 보자 다른 하나의 비트가 보는. 아스키 아트는 좋은 모델이되지 않습니다 애니메이션의 오늘날 때문이다. 그러나 물론 어떤 사람들은 물건을 가지고 그들은 자신의 극단으로 밀어 넣습니다. 다윗이 입증 된 바와 같이 이것은이다 코드의 강연에서, 조각 당신은 어떤 상황에서도해야 자신을 복제하려고합니다. 이 문체 끔찍한 때문이다. 사실, 그것은로되도록 설계 어려운 가능한 읽을 수 있습니다. 그래. 그래서, 다시 수행하기 위해, 여기에서 확대 할 수 있습니다. 나는, 지금 디렉토리 변경을 갈거야. 나는 하나를 갈거야 수준, 다시 내 작업 공간. 나는 다음이로 디렉토리를 변경합니다 내가 만든 다른 디렉토리. 그리고 이것은 국제이다 난독 C 프로그래밍 경연 대회. 하드로 난독 수단 가능한 한 이해합니다. 당신이 보는 경우에 따라서, 무서워하지 마세요 이 및 이동에, 나는 그것을 읽을 수 없습니다. 즉, 점이다. 그래? 그러나, 우리는이 난 멋진 프로그램 단지 더 입력하여 볼 것. 그리고 난 축소 할 수 있는지 보자 조금, 그래서 당신은 그것을 볼 수 있습니다 이것은 프로그램이다. 그것은 endo.c.라는 것 그리고이 통 모양 그 안에있는 문자 F-L-U-I-D 가지. 이것은 실제로 프로그램입니다. 그것은 가장 모호한에 쓰여 방법 저자는 아마도 수 를 작성합니다. 그러나 그것은 멋진 작은 조각이다 그 유체 역학의 모델을 생성합니다. 그래서 우리는 줄거야 그 모델의 입력이 의, 다음과 같습니다 용기 세트 staired 일부 유체, 일부 액체, 최대 상단. 그리고 우리는 시뮬레이션해야 무슨 일이 여기에 무슨 일이 일어나고. 그래서 엔도, 그 함수를 호출합니다. 그리고 나는 그것을 줄 것이다 그 내가 했어 입력 파일. 그리고 ASCII 예술의 우리의 전형이있다. 전체 유체 동적 시뮬레이터 몇 줄의 코드에서 실행. 지금 무슨 일이 정말 사실이다 이 작은 프로그램에 대한 놀라운 나는 지금 중지 할 것입니다 그래서 나는 어떤 명령을 사용하는거야? 청중 : 제어-C. 브라이언 SCASSELLATI : 제어-C. 그래. 그래서 제어-C를 사용합니다. 즉, C를 중단됩니다. 나는 다시 취소합니다. 그리고 지금은를 호출하는거야 프로그램, 프로그램을 수행 입력 자체를 사용. 그리고 우리는 유체 다이내믹를 볼 수 있습니다 그것의 시뮬레이션은 용융. 그래. 해당 프로그램을 허용하지 마십시오 당신을 혼란 일을합니다. 우리가 끝낼 수 있습니다 단지 있도록이다 시원하고 흥미로운. 그래. 문제 세트와 행운을 빕니다. 우리는 답변을 드리겠습니다 수업 후 질문. 많은 감사합니다, 여러분.