>> [음악 재생]
>> SPEAKER 1 : 이것은 CS50이고 이것은 두 주의 시작이다.
자, 잘 무언가에 뛰어 보자 즉 말하자면, 버그입니다.
그래서, 이상 여기 CS50의 IDE 내가했습니다 이 빌어 먹을 screen-- 미리 뽑아
그것.
스포일러 경고.
괜찮아.
나는 여기에이 화면을 뽑아했습니다 이는 매우 간단한 프로그램이있다.
우리는 아래로 스크롤하면 가장 이 단지 코멘트된다,
하지만 여기에 라인 13를 통해 17 우리는 프로그램이 있습니다.
>> 이 경우 의미, 구문 적으로 유효한이다 나는 그것이 컴파일 및 실행, 컴파일
하지만 버그입니다.
이 프로그램은 의견 주장 맨 위로는 10 별을 인쇄해야
하지만 그렇지 않습니다.
그리고 당신의 경험을 바탕으로, 또는 곧 C와 경험이 될 수 있습니다,
당신은 논리적으로 식별 할 수있다 이 사실 버그가 왜?
그래?
청중 : 그것은 0에서 10로 이동합니다.
즉 11의 반복이다.
스피커 1 : 그래.
그래서, 0에서거야 10을 통해 평등,
물론 이는 11의 반복이다.
그래서, 그것은 것 인쇄, 참으로, 11 개입니다.
따라서, 컴퓨터 과학 협약 대부분의 프로그래밍 언어
단지에, 참입니다 제로 카운트 시작
이에 아니라 통해 계산 당신이 실제로 걱정 값.
>> 자,이 한 가지입니다 조금 익숙해 걸립니다
그리고 디자인도 스크래치, 그것은 그대로 비 프로그래머 또는 비 컴퓨터
과학자와 어린이를위한 대체로,이 설계
당신은 하나 일반적으로 계산 시작합니다.
그리고 괜찮아요.
당신은 절대적으로 계산 시작할 수 있습니다 하나가 더 편안합니다.
그리고에 10를 통해 계산하지만, 당신은 이번 주에 특히 실현합니다
그 이후 너무 프로그래밍에서 많은 것을
0은 최초라고 가정 당신이 계산되는 자리,
당신은 쉽게 찾을 거라고 단지 시작의 습관에 들어가
및 0부터 카운트 값까지 당신은에서 지금 걱정
이동 얻을.
>> 그래서, 그 고정했다.
우리는보다 적은을 변경하거나 보다 단지 이하로 동일합니다.
이제 살펴 보자 여기에 두 번째 예.
>> 그래서,이 프로그램은 너무에서 주장의 이 인쇄되어야 함을 상단까지 코멘트
열 개 있지만 지원하지 않습니다.
여기에 버그가 무엇입니까?
>> 그래서, 뭐 ... 그리고 죄송합니다,의는 명확하게 할 수 있습니다.
10 개입니다.
한 줄에 하나씩,하지만하지 않습니다.
그래서, 사실, 내가 가서 컴파일하자 조금 덜 때문에이 하나
그 설명을 기반으로 취소합니다.
내가 우리의 소스 디렉토리로 가자.
버그를 하나의 점 슬래시, 버그를 확인합니다.
좋아, 내가 11 별을 볼 수있는 여전히 문제가
그러나 그들은 한 줄에 모든 것.
여기에서 문제는 무엇입니까?
그래.
청중 : [들림].
스피커 1 : 그래.
그래서이 미묘는 당신이 할 수있다이다 나에 대한 간단한 언급을 기억합니다.
심지어 모든 보이지만 예쁜, 그리고 멋지게 들여있어,
그것은 종류의 스크래치처럼 보이는 16, 17은 그 라인에서,
실제로, 루프 그 아래에 들여 쓰기.
즉 비 물질적이다.
컴퓨터가하지 않습니다 알고 있거나 공백을 참조하십시오.
공백은 단지입니다 우리는 문체, 인간.
당신이 때 컴퓨터가 알 수 있습니까 실제로 중괄호, 어떤이 것,
이 문제를 해결.
>> 그래서, 우리가 실제로 갔던 경우 명시 적으로 괄호에 넣어
즉,이 문제를 해결하는 것 컴파일러 분명하게
실제로 실행하도록 다시 두 줄의 코드,
다시, 다시.
그러나 기본적인 설명은 무엇입니까?
권리?
우리는 엄격하게 필요하지 않습니다 곱슬 모든 시간 교정기
아마 가장 비록 연습 어쨌든 그 습관에 들어가
심지어 두 개의 추가 비록 코드 문자. 왜?
>> 청중 : [들리지]?
스피커 1 : 그래, 그래서 그건 모두 다른 솔루션입니다.
권리?
첫눈에 당신은하지 특히​​ 경우 정말 무슨 일이 일어나고 있는지에 감사드립니다.
음, 확실히 우리는 할 수 단 한 번에 두 가지 일을 할
그냥 모두 문제를 피할 수 있습니다.
그리고, 지금은 괜찮습니다,하지만 오늘의 목적은 무엇
버그에 대한 설명은?
왜 한 줄에 모든 별이었다?
그래?
>> 청중 :이 경우 것 같다 당신은, 한 줄의 코드를
당신은 그없이 그것을 할 수 있습니다.
스피커 1 : 맞아요.
이 단지 인간의 규칙입니다.
사람들은 A의 실현 조금 귀찮은 또는 지루한
모든 중괄호를 넣어해야합니다 당신이 원하는 모든 경우의 시간
한 줄의 코드를 실행할 수 있습니다.
그래서, 인간이 결정 일부 그 괜찮아요 전 시간입니다.
당신은 당신의 루프를 모두 넣어하려는 경우 이 같은 단지 한 줄에,
즉, 하나와 괜찮아요 마지막에 세미콜론.
그러나 당신은 단지 하나의 작업을 수행 할 수 있습니다 중괄호가없는 라인.
>> 그래서, 때 CS50 스타일 가이드 , 당신을 가리 킵니다로
당신은 일반적으로 그를 볼 수 있습니다 그것은 좋은 습관이다
당신이 때까지이 들어가 아주 편안 길 잃은
규칙의 이러한 종류의에서 당신의 자신의 일을하고.
그래서 당신이 일관된 자기를있는 한.
그리고 우리에 대한 자세한 내용을 얘기하자 오늘 나중에 조금 스타일.
>> 그래서, 내가 한 다른 프로그램을 열 수 있습니다.
물론, 우리는해야 뿐만 아니라 그 (10)를 고정한다.
내가 앞서 가자 진짜 쓰기 내가 전화 할게 빠른 프로그램,
의 말을하자, 루프는 C. 그래서, 루프 C를 점 점 그리고 루프 점 C에서 내가 가지고거야
표준 I 포함 / O 점 H 주 공백을 int로.
그리고 지금은 그냥 참, 루프, 할 수 있습니다.
그래서, 4 INT의 난 제로 가져옵니다.
I 50 가령 미만이다.
나는 플러스, 플러스.
그리고 여기에하자 가서 F를 인쇄합니까
그리고 내가를 인쇄하려면 새로운 라인, 세미콜론.
>> 그리고이 모든 인쇄한다 0에서 숫자 50까지?
몇 머리를 끄덕.
몇 호.
이미 버그가 무엇입니까?
내가 만든 쉬운 실수는 무엇입니까?
그래.
>> 청중 : [들림].
스피커 1 : 그래.
그래서 심지어 보이지만 이것이 내가하고자하는 것입니다처럼,
나는 또한 리콜 그냥 ASCII 문자.
>> 그래서, 내가 말할 경우, 인쇄 "I."
말 그대로거야 경우에, 나도를 인쇄 나는
Plug-in에 자리합니다 값 사실이 작업을 수행 할 필요가
다음 플러그인 동적 I의 값입니다.
그렇지 않으면 난 그냥 갈거야 화면에 (50) 나는 년대를 얻을.
>> 그래서, 내가 가서하자 이 루프을, 실행,
그리고, 참으로, 우리는이 49을 통해 방법.
나는 시간을 거슬러 이동하면 내가 참조 처음에 수가 제로.
>> 글쎄, 난 종류의 무엇을 망치면?
내가 이렇게하면?
그냥 내가 생각하고 있지 않다 때문이다.
이 프로그램은 무엇입니까.
일단 컴파일 및 다시 실행, 논리적으로 할 거?
>> 청중 : 없음.
>> 스피커 1 : 아무것도.
그 이유는 무엇입니까?
>> 청중 : 나는 제로를 위해 설계되었습니다.
따라서, 조건은 false입니다.
스피커 1 : 그래, 정확하게.
모든 코드는 문법적으로 정확하다.
이것은,이 컴파일 코드를 실행하지만 아니다
유용한 작업을 수행 할 것 내가 초기화 때문에 0으로.
우리는 그때가 50보다 큰 경우, 확인?
분명히, 아니, 아니에요.
그래서 루프가 전혀 실행되지 않습니다.
>> 우리는 무언가를 할 경우 좀 더 무모?
우리가 INT처럼한다면 그래서 나는 제로를 가져옵니다.
그리고 지금 나에게 동안을 사용할 수 있도록 다른 조건이었다 루프.
나는이 말을하는 동안 그리고보다 큰 동안 또는 0과 같지 한 다음 여기에 내가
루프를 만들 가서 파일을 저장합니다.
그리고 나는 그것을 실행하려고 해요.
어떻게 이걸 볼려고하고있다 while 루프와 시간?
그래.
>> 청중 : 무한 루프?
>> 스피커 1 : 무한 루프?
예, 그 이유는 무엇입니까?
청중 : 그것은 항상 0이기 때문에.
스피커 1 : 그래.
그래서 나는 0으로 초기화된다.
물론 나는 항상 큰 이상의 결과로 또는 0과 동일.
그래서, 난 그냥 갈거야 무한이를 참조하십시오.
그리고 지금,이 번에 도달했습니다 두 번 과정의 머리에.
어떤 때 일어난다 무한 루프가?
>> 청중 : 제어 C.
스피커 1 : 그래.
그래서 컨트롤 C는 결국 응답합니다.
불행하게도, 우리는 인쇄했다 수백만 이미 제로의 수백만
그래서 컴퓨터 갖는다 종류의 나보다 앞서있어.
그래서, 그것은 무시하는거야 나를 조금합니다.
하지만 당신은 컨트롤 C 몇 충돌하는 경우 Mac 또는 PC 키보드의 시간,
결국은, 참으로, 종료한다.
그리고하지 않을 경우하면, 우리는 당신에게 몇 가지를 보여 드리겠습니다 긴 어디를하기 전에 기술
실제로 강제로 프로그램을 죽일 수있다, 많은 Windows 및 Mac OS처럼,
경우가 될 필요는 없다.
그러나의 다른 무언가를 시도 할 수 있습니다.
의 실제 I.인가 증가하자 이 여전히 무한 될 것?
날이 실행하자.
그리고 지금 당신은 종류의 수 무슨 일이 일어나고 있는지를 참조하십시오.
이것도 무한 루프이다.
하지만이 트릭 질문의 비트입니다.
이 영원히 번호를 인쇄 할거야?
>> 청중 : 호
스피커 1 호
왜?
나는 여기에 어떤 번호를 들었다.
네 누굴.
청중 : 당신은 충분하지 않습니다 비트는 정말 계속합니다.
스피커 1 : 좋아.
그래서 충분하지 않습니다 비트는 계속합니다.
그럼, 무슨 일이야?
그것은 단지 중지거야?
>> 청중 : 어떤 점에서 이 짓이야 종료됩니다
스피커 1 : 그것은 종료됩니다 루프 아래로, 그런데 왜?
무엇 일어날 것 그 경계의 맨 끝?
그래?
청중 : 그것은주기 것 다시 음수에.
스피커 1 : 음수, 또는 우리가 긍정적 인 치료 것처럼,
제로 이상.
그래서 그래, 절대적으로.
우리가 지난 시간에 보았던 것을 기억하면 경우 당신의 비트 너무 많은 시간을 증가
당신은 오버 플로우가 이물 지능의 용량
또는 데이터 유형은있어, 무엇이든 랩 어라운드 것, 아마,
두 개의 음수.
아니면 지정 한 경우 범위는 긍정적이어야한다
당신이 할 수있는,하지만 우리는 아직 보지 못했습니다
적어도 다시 제로에서 끝낼 수 있습니다.
, 비록 실제로 그렇습니다.
이 경우, 마이너스 수 있으며,이 경우에
루프가 종료 예정 I가 없기 때문에, 사실상,
이상인 제로는 부정적인 있다면.
>> 그래서, 불행하게도, 방법 오랫동안 우리는 기다려야 할 것인가?
지금 우리는까지있어 무엇을, 200 만 흉내?
우리는 20 억 같다 우리는 기다려야 할거야
때까지 우리는 실제로이 현상을 볼 수 있습니다.
그러나 우리는, 조금 더 빨리 볼 수 있습니다 우리가 방해 할 수 있는지 보자 봐 주길.
어서.
심지어 메뉴가 서서히 나타나고있다.
괜찮아.
그래서, 우리는 오래 전에 다시 그에게 올 것이다.
그것은, 강아지 젠장 time-- 좋다.
>> 그것은 몇 가지 발표를위한 좋은 시간이다.
그래서, 당신은 좋아할 경우 YHack에 종사하는,
이벤트는 인된다 예일에서 우리의 친구에 의해 후원했다.
그리고는, 참으로, 일부 과정의 예일에서 TF가이 참여한다.
YHack 국제이다 해킹 - 마라톤은 주최 및 개최
예일에서, 1,500 소집 마음 해커 모든 광고와 같은
세계.
이 관심 있다면, 여기 좀 봐.
이것은 너무 짧게 경우 화면은, 오늘날의 슬라이드를 살펴
yhack.org의 URL에 대한.
그래서, 또한 몇 가지 간단한 발표.
그래서 공식적으로 섹션이 시작됩니다 다음 주에 모두 여기 뉴 헤이븐.
당신이 점점 될 것 명심하십시오 이메일 이번 주말 가능성이 높습니다.
이는 시간이 오래 걸리는 섹션 CS50에 대한,
에 주어진 모든 사람 클래스 모두가 주위에 이동.
그리고 모든 교육 휄로우 ' 일정은 아직 응고되어,
하지만 이메일과 필요한 경우 계속 지켜봐 주시기 바랍니다 , 당신은 다시 절을 할 수 있습니다 할 수 있습니다 후.
>> Study.cs50.net.
그래서, 당신은 일정한 참석자 경우에도 섹션에서, 거의 모든 것을 실현
자원을 우리는 절에서 사용 CS50에서 공개적으로 사용할 수 있습니다
여기에이 URL에서 공부한다.
그래서, 당신은 지금까지 검토를 다시하고 싶은 경우 또는 미리 읽기 섹션에서 소재,
또는 당신은 몇 주 할 수 없습니다, 그 샘플 슬라이드를 실현,
문제 및 정의, 더뿐만 아니라 모든있다.
>> 근무 시간은 오늘 재개 내일, 수요일,
목요일 코스의를 확인 일정에 대한 웹 사이트.
>> 또한, 지금 시작 오늘은 CS50는 토론이다.
그래서, 만약 당신이에 대한 질문이있을 때 서로 또는 과정의 직원,
일반적으로 작업 일부 문제 세트에,
당신이 필요하지 않는 것이 실현 당신 옆에있는 사람을 설정해야합니다.
아무도 거기에 없다면, 당신은 할 수 우리와 친구들에게 다가
온라인 CS50를 통해 토론한다.
그래서,이 토론은 코스 보드,
이 실현 아마도 최고
당신이있을 때 시작하는 배치 근무 시간의 질문을 할 때 외부
특히.
>> 점심도 이번 주에 시작됩니다.
불과 얼음에서 [들림] 뉴 헤이븐에서.
과정의에서보세요 위해 웹 사이트는 답장합니다.
우선 먼저 와서 그것을 위해 역할을한다.
이 주에 도착하지 않는 경우 우리는 이러한 대부분의 매주 금요일 다하겠습니다
기간 동안.
>> 확인을 해주기 등급에 대한 단어.
우리는 문제를 입력 특별히 이 주에있는, 한 세트
그리고 문제는 두 이후를 설정합니다.
우리는 어떻게 P 세트를 평가 가야합니까 그 품질을 평가?
그래서, 우리가 사용하는 네 개의 축입니다 CS50, 그들은 여기에이 네 가지입니다.
>> 숫자에 포착 범위, P 세트의 얼마나 많은 기초
당신은 태클 않았다.
그것은 약에 해당하는 것 노력, 그리고 그것을 캡처 우리의 방법
당신은 시도의 절반 P 않았다 , P 세트의 모든 설정합니다.
이 완벽 얻을 수있는 쉬운 일입니다 당신이 경우에 점수, 참으로,
P 세트의 모든 측면을보십시오.
그래서, 마음에 보관하십시오.
>> 정확성은 정확하게이다.
사양으로 코드 작동합니까 그리고 직원 '샘플 솔루션으로
코드 제안 사실, 작동합니다.
당신이 그것을 충족하지 않은 경우, (50)를 확인 아직, P에 하나의 규격을 설정
일반적으로 것입니다 당신에게 예 / 아니오 대답을주지
여부에 대한 사용자의 코드는 올바른 것입니다.
적어도 지금까지 우리가 가고있는 한 이 테스트를 기반으로 평가하기 위해
우리는 프로그램 내에서 실행하는 것이.
>> 디자인은 매우 주관적이다.
이 얼마나 잘 작성하는 코드입니다.
그리고 이것은 뭔가입니다 당신은 시간이 지남에 따라 더 나은거야
그것은 뭔가 우리가 정액의 에 대한 질적 인 피드백을 제공한다.
그리고 디자인에 의해 나는 수도 오래 전에 의미 당신
일부 P에 유혹 될 수 있습니다 loopingly 뭔가를 설정,
하지만 어쩌면 세 또는 4, 또는을 가지고 다섯 중첩 앞 루프 또는 중첩 동안
루프.
즉, 일반적으로해야 당신은 싫증이 나다 만드는 시작
일반적으로 것 고려 나쁜 디자인.
그리고 수업 시간에보고 시작합니다 및 일을하는 클래스 좋은 방법 중,
일을하는 나쁜 방법이 모든 정확하지만,하지 않을 수도 있습니다
반드시 잘 설계.
에세이를 작성처럼.
당신은에 단어를 넣어 할 수있을 것 문법적으로 정확 페이지,
에세이 나 있지만, 그들이에있어 논문은 그냥
완전 조리 또는 설득력.
그리고 그에서 아날로그 수 있습니다 나쁜 또는 좋은 디자인의 월드.
>> 그리고 스타일도 상당히 주관적이다.
그러나 적어도 우리는 일관성을 기대합니다.
이 방법을 꽤하는 코드입니다.
일이 잘 들여?
당신의 변수가 아니라 이름을 지정하는 / 모두 당신의 괄호와 중괄호
그들이해야으로 정렬?
우리는 CS50 스타일 가이드가 있습니까 문제 세트에서 당신을 가리 킵니다.
그 더 편안입니다 그에서 이탈에 오신 것을 환영합니다
그래서 당신이 자기 ​​일관성이있다.
그리고 이것은, 너무, 교훈 우리는 절에서 강화됩니다.
그래서,이 모든 조금 경우였다 빠르고 실현 P 세트와 섹션
오래 전에 더 깊이로 이동합니다.
>> 그러나 일반적으로 우리는이 CS50에 대한 거의 버킷.
점수는 규모에 일반적으로 1-3, 또는 1-5의.
우리는 - 말 그대로이고 나는 말할 수 없다 첫 주에이 정도.
세이 좋다.
그래서, 비록, 예, 세 아웃 다섯 일반적 수학적
60 % 또는 D 마이너스처럼 될 수 있습니다.
셋, 실제로 좋다.
그리고, 사실, 우리는 기대 클래스에서 대부분의 학생들
주위의 용어를 시작합니다 조로와 열로, 그리고 발로.
아마 많은하지 파이브.
너무 많이하지 것들.
그러나 일반적에서 시작 곡선이 스위트 스폿 (sweet spot)
그래서 시간이 진행됨에 따라 그, 실내가 실제로있다,
상위 진행을위한 기회.
그래서, 60 %로 세 가지를 동일시하지 말아 주시기 바랍니다.
그것은 훨씬 더 추상적 인 것보다입니다.
우리가 계산되는 식 다음과 같이 등급은 가중된다.
정확성이 가장 가치가있다.
디자인은 좀 덜 가치가있다.
스타일은 좀 덜 가치가있다.
그리고이 일반적으로 시간을 포착
즉, 각을 얻기로 전환 이 축이 바로.
스타일, 슈퍼 쉽다 슈퍼 빠른해야한다,
그러나 그것은 쉬운 습관 대한 게으른 얻을 수 있습니다.
정확성이 걸릴 수 있습니다 당신이 대부분의 시간.
일부 버그 힘을 쫓는 그 여분의 시간 이상을
그래서, 득점 궁극적으로 그를 캡처합니다.
그래서, 지금 더 심각한 단어.
CS50을 갖기 때문에 구별, 더 나은
또는 악화, 존재의 아마 더 잘 알고
교육의 문제와 대부분의 다른 코스보다 정직.
그리고 실제로, 그것은 내 지식입니다 우리는 불행하게도, 더 많은 학생들을 보내
징계 목적 결과로서 매년. 그래서,
전체의 이익에 공개의 간단히 얘기해 보자
CS50에서 일어나는, 그리고 무엇을 무엇에 대한 수행 할 수 있습니다 당신은 무엇을 염두 수 있습니다.
>> 그래서, 여기에 이​​후 2007 년 때 나는 과정을 상속
광고 보드의 경우의 수이다.
광고 보드는 하버드의 징계이다 몸, 또는 이제 명예 고문,
되는 경우가 경우라고 학생들은 그 과정의 일을
강의는 불합리한 생각한다.
실제 패턴이 없습니다 여기에, 나는 말할 것입니다.
그것은 이상 변동 년 있지만, 일반적으로
이 수입니다 언급되는 경우.
학생의 수 관련되는?
너무 다릅니다.
대한 일반적으로, 지난해 하버드 예, (29) 학생
말하자면 광고 승선이 있었다.
그들 재학생의 29, 그 이전에 학생들이,
사람을 협력했다 어떤 부적당 한 방법.
그리고 측면에서 비율은, 일반적으로 약 3 %의
클래스의 불행하게도, 이런 결정을합니다.
>> 그래서, 작년 3.5 %였다 CS50의 학생 신체의
즉 말하자면 광고 승선했다.
>> 그래서,이 모든 것은 무엇을 의미 하는가?
그리고 우리가 실제로 무엇을해야합니까?
>> 그래서, 전체 공개, 우리 절대적으로, 컴퓨터 과학자로서,
우리의 처분에 소프트웨어 도구를 그리고 공평하게, 우리를 위해 아주 쉽게,
하지의 다른 급우 이 선을 교차하는 비교 십자가에
모든 제출 매에 대해 올해 지난 8 년 동안 제출.
소프트웨어는이 작업을 수행합니다.
그리고 궁극적으로이다 결정 인간의 눈
일부를 참조 할 수 있는지 여부 또한 판결에 대한 문제,
하지만 소프트웨어는 확실히 도움이됩니다.
그리고 이것은, 솔직히, 난 왜 생각입니다 우리는 CS50 이러한 많은 수 있습니다.
그것은 CS50 때문이 아니다 학생이나 CS 학생보다
일반적으로 덜 정직 다른 학생들보다,
그것은 단지 우리가 가지고있는 도구 및 기술
있는 첫 번째 패스를 촬영합니다.
>> 그러나 우리는 눈을 계속 수행 이 모든 일에
의뿐만 아니라, 다시,에 관심 넣어되고있는 일을 인식
클래스의 슈퍼 과반수에.
그리고 물론 정책 학술 정직에,
이 단락의 무리 비록 글 머리 기호의 무리와 함께 긴
즉, 잘하면 꽤 읽을 수 정말 합리적 졸이다 않습니다.
그리고 엄지 손가락의 가장 좋은 규칙이 우리는 강의 계획서 내에 제공
이 본질이다 모든 일의 당신을
자신의해야이 과정에 제출합니다.
그리고 사실, 거의 모든 사람들의 경우 징계 조치에 대한 언급
이 때문에 일부 학생 늦은이었다 밤은 일반적으로 자신의 코드를 설정
크게 동급생을 통해, 누가 다음을 채택
그 전체 또는 크게 그.
>> 하지만 실제로는,이 OK입니다.
그리고 실제로, 사무실에서 종이의 시간, 슬립
당신이 사무실에왔다면 당신은 손으로했습니다 시간 지난 주만큼을 권장합니다.
당신은 절대적으로있어 환영과 격려
친구들과 함께 문제 세트를 논의하기 위해.
비틀 때 서로 도움이됩니다.
그러나 일반적으로 엄지 손가락의 규칙은해야 이 수, "당신이 도움을 요청하는 경우,
당신은 다른 사람에게 코드를 표시 할 수 있습니다, 하지만 당신은 그들의를 볼 수 있습니다. "
그래서, 즉, 내가 해요 경우 일부 P 세트로 어려움을 겪고
나는 거기에 앉아있어 홀 식사, 또는 도서관에서,
또는 교실에서 몇 가지 오류를 찾기 위해 노력하고,
나는 확실히 표시 할 수 있습니다 내 화면에 내 코드
사람이 옆에 앉아에 나에게, 확실히 직원,
뿐만 아니라 동급생.
그러나 해결책이있는 경우 나의 동급생, 오,이다 제공
여기에 단지를 살펴 무엇을 나는 선을 교차하는,했다.
>> 그리고 나는 그것이 일반적으로 말할 감히 대부분의 사람들을위한 합리적인 것
아주 쉽게 줄을 발견한다.
그리고, 강의 계획서 참조 더 자세한 사항.
이상 이제 하나 논쟁의 양상
CS50 교과의 내가 생각하는 여기에 결론을 말할 것
소위 후회 절입니다.
그래서, 여기에 모든 글씨입니다.
그러나 일반적으로 우리는 보았다 지난 8 년 이상의 이상
실제로, 거의 모든 CS50의, 그 학문적 부정직 사례
단지 가난의 결과되었습니다 밤 늦게 의사 결정.
스트레스, 결과의 결과 식사의 부족, 수면 부족,
너무 많은 P 세트,​​ 너무 많은 마감, 너무 많은 약속.
오전 2시에 구축 스트레스 3:00 오전, 마감 어렴풋한와 오전 4시.
이러한 경우 대부분의 학생들 단지 나쁜 결정을 한
그들은 매우 잘 후회 수도 다음날 아침 분 후에없는 경우,
하지만 지난해까지 있었다 더 개방 밸브 이들 학생들이 수
실제로 실제로를 해결하기 위해 열 되는없이 두려움에 문제 헤드
모두 대학에서 부팅.
>> 그리고, 참으로, 우리는 도입 이 후회 절 작년,
이는 말로는 내 경우 72시간, 삼일,
어떤 선을 넘어의 강의 계획서에 규정
당신은 과정의 중 하나에 앞으로 나와 머리는 그리고 우리는 그것에 대해 대화를해야합니다.
여전히있을 수 일부 무엇에 대한 결과, 반대
반대로보고되었다.
일부 결과는 아직입니다 코스에 의해 실행 가능한 것입니다
일반적으로 P 세트를 제로화 또는 다른 조치를 취하기,
그러나 우리는, 참으로, 윌 그것을 자신을 처리하지
더 높은 결과를 참조했다 훨씬 더 심각 할 수 있습니다.
그리고, 참으로, 무슨 일이 있었는지 공유 지난해 8 년, 이제
이 과정을 가르치는 구년 다양한 노브 땜질 후,
과거를 통해 다양한 다이얼을 돌려 학문적 정직성에 몇 년 동안,
데이터 뚜렷한에게 당보고 심지어이 같은 연설의 영향,
이것은 가장 좋은 것은 아래로 손이었다 우리는 교육적 도입 한
에서 팔년을 따라 CS50에서이 라인.
>> (19) 학생은 앞으로왔다 이 절 마지막 세 미만.
우리를 위해 어떤 조치를 취 없습니다 학생들의 일곱,
그들이이라고 결정 불필요하게 걱정.
그들은 실제로 않았다 선을 넘어하지만,
좋은 채팅 그럼에도 불구 것이 었습니다.
우리는 점수의 11 제로화 그 제출했다.
그리고 한 경우에 우리가 요구 학생은 설정에 문제가해야 할 일.
하지만 더 강력한, 솔직히,이 19 채팅과,
이는 나보다 훨씬 더이었다 그들 각각을 가질 것으로 예상
아마 10 분 시간 길고도 가져
에 관한 문제의 숫자에 불을 가족 문제, 친구 문제,
정신 건강 문제 우리는 다음 종사하는 것을,
학생의 축복, 주민과 함께 학장, 또는 친구, 또는 다른 번호
지원 리소스.
수 있도록이 훨씬 하나였다 우리 시대의 최고의 용도
최고의 개입 중 하나.
>> 그렇게 말한다면, 그것은 전혀 없었다 검출 속도에 입력
학문적 부정직의 더 일반적.
그리고 나는, 말을이 부분 집합을 감히 학생들 지난해
인구 통계를했다 그 우리 이전하기 전에 확인되지 않았다
그리고 이전에 연결된 적이 없었다.
그리고, 이들이었다 멋진 성공 사례
그들은 빛을 주어졌다하더라도 최적의 상황 미만.
그래서,이 점을 명심 당신이 만드는으로, 아마,
형편없는 결정 자신 늦은 밤,
의지 너무 오래가 있음 그 상황에서 학생으로
최대 소유하고 앞으로 와서 우리가 할 수 있도록 채팅의 종류가 있으며 처리
방법으로 그 교육의 다음 다음날 우리 뒤에 그것을 넣을 수 있습니다.
>> 속히 그래서,을 이 대화 떨어져 가장자리,
강아지가 최대 인 이유 단지 잠시 동안 얼음을 깰 수 있습니다.
그리고 불행하게도, 그들은 모두 잠있어, 하지만했는데 여기에서 발생하는
있었다 모든 사람이되어 있었다 경외와 종류의 휴식
바로 그 무거운 대화 후.
하지만 분명히 내가 넣어 강아지는 잠을.
하지만 당신은 CS50의 가면 웹 사이트 슬래시 강아지,
당신은 하루 종일을 볼 수 있습니다.
특히 아마 2시, 또는 3시, 또는 밤에 오전 4시
거기에 약간의 스트레스 해소를 볼 수 있습니다.
그래서 강아지를 슬래시입니다.
괜찮아.
되지는 재미 있었나요?
그래.
그래서, 다시 일부 컴퓨터에 과학, 만약 내가 할 수있다.
>> 그래서, 우리가 시작 마지막 시간을 기억 그냥 메인에 있지 찾고있는
기본 함수 때이었다 녹색 깃발은, 동등한 클릭
그러나 우리는 또한 간단히 시작 우리 자신의 일부 기능을 작성.
이러한 기능 그리고 지금까지 없음 특히 크거나 고기왔다.
당신은 그 큰 들어갈 것이다 기능은 아마, P 2, P 3, 설정
확실히 P는 4와 이후를 설정합니다.
지금 당신의 대부분의 프로그램, 확실히 그들 모두, P에 대한 아니라면
세트 1 주에서 완전히 수행 할 수 있습니다.
프로그램 만 있다면 다섯 줄, 10 줄,
심지어 20 행으로, 완벽하게 를 작성하는 것이 합리적
모든 주에서가 아니라 복잡한 위로하기 코드,하지만 우리는 오늘 무슨 일을하는지
그리고 이후도에 노력하고있다 좋은 디자인 기술을 소개
그래서 코드는 더수록 복잡하고 문제와 같은
당신이 열심히 얻을 해결하고 싶은 더 흥미로운 당신은, 일종의,
당신의 도구 상자에서 도구있는 사람들에게 좋은 솔루션을 설계합니다.
>> 자, 얼핏를 다시 보자 마지막 주에서이 프로그램하는
이었다 기능 제로 점 C. 그리고 아주 간단하게, 그 통지,
두 개의와 같다 기능, 주 및 인쇄 이름.
그리고 다시 혹은 생각 오늘 리버스 엔지니어링,
도입 동기 것이었다 라인이라고 28의 기능,
이름을 새기다?
또는이에서의 예 것이었다 원칙이나 테이크 아웃의 관점,
당신이하고자하는 경우.
일부 들려오.
뭐?
>> 그래, 그래서 기능 분해 말의 멋진 방법 종류,
프로그램을 분해 그 구성 부분으로
다음 해당 부품을 사용 전체를 조립합니다.
그래서, 너무 단지 종류 이미 입의,
그러나 이것은 어쩌면이다 뭔가 더 나은 예
단지 추상화했다.
권리?
추상화는 하나가 될 것입니다 CS50에서 반복되는 주제
또한 컴퓨터 과학 더 일반적으로는 이후
당신이 해결할 수있는 기술 문제를 더 효과적으로 때문에
더 솔루션을 쓸 수 있습니다 직관적으로와 방법으로 그 저울
다른 사람들이 이해할 수있다.
나는 무엇을 의미합니까?
>> 그래서, 틀림없이 훨씬 더 읽을 수 이 같은 프로그램을보고,
그것이 비록 슈퍼 짧은.
당신이 라인 (22)에 볼 때이 있다는 라는 함수, 인쇄 이름.
혼자 이름은 무엇을 말한다.
이 함수는 분명히한다 그 괄호 사이의 입력,
분명히 무언가를, 아마도 이름을 인쇄합니다.
그리고, 심지어 우리하지만 절대적으로 할 수
우리가 있던, 일주일 전에 무슨 짓을했는지 다 다만,이 코드의 실제 라인을
이 없애 얻을 모두 함께이 제거,
우리는 종류의 거리 추상화 이름을 인쇄하는 개념.
당신이 인쇄 DEF를 사용하는 경우 난 상관 없어.
당신이있는 경우 난 상관 없어 퍼센트 S와이 백 슬래시 (N)
믿을 수 없을만큼 난해한 세부 사항은.
나는 약 상관이야 무엇 프로그래머의 이름을 인쇄하고 있습니다.
그래서, 더 나은 어떤 방법으로하는 것은 그렇게하는 기능, 인쇄 이름을 호출하여보다?
그리고, 그 동기 중 하나였다 이 같은 일을합니다.
코드를 읽기 쉽게 만들기, 더 재사용하고, 또한 자기 설명.
이제, 살펴 보자 또 다른 예에서,
이는, 기능 하나 이는 우리가 여기에 있었다.
>> 그래서,이 사람은 아마도 더 강제적 때문에,이 경우,
난 그냥 int를 얻을 싶지 않아요.
나는 긍정적 INT를 얻을합니다.
그리고는 양을 얻을 밝혀 당신이 취재의 무리를 할 필요가 int로.
권리?
그것은 간단한 한 줄이 아니다 인쇄 이름처럼 전화
이는 일반적으로 인정 하듯이 덜 강제적이다.
>> 긍정적 INT를 얻을, logically-- 날이 숨길 다시 아래로 스크롤 할 수 있습니다.
당신은 무엇을해야합니까?
모든 도구와 마찬가지로 우리 순간에있다가
표준에서 인쇄 데프 같은 것들 도서관도 CS50 라이브러리
우리는 지능을 가져 오기가 있고, 플로트를 가져옵니다 긴 긴 문자열을 가져 오기,
하지만 단 하나, 게르만, 지금 지능을 가져 오기입니다.
그래서, 유일한 도구 당신이있는 경우 당신의 도구 상자에 지능을 가져 오기입니다,
우리는 구현 가야합니까 방법 그것은 긍정적 INT를 얻을 수 있습니까?
>> 청중 : 로그를 작성하고 확인 에 대한 여부가 준 입력
긍정적 인 또는 아니었다.
>> 스피커 1 : 적합합니다.
정확히.
우리가해야하는 또 다른 도구를 우리의 두 주 전에에서 도구 상자
단지 루프 구조입니다.
그래서, 그래, 우리는 잠시를 사용하는 경우 루프, 또는 루프 동안 DO, 또는 앞
우리는 아마 멀리 얻을 수있는 루프 어떤 형태로 그의와.
우리는 GET의 개념을 구현할 수 있습니다 그냥 가져 지능을 사용하여 긍정적 INT,
다음 그냥 계속 전화 다시 사용자를 귀찮게 계속
때까지 그 또는 실제로 그녀 우리가 원하는 것을 우리에게 제공합니다.
>> 그리고 지금,이 프로세스의 추상화
INT의 양을 얻는 라는 함수에
가져 오기 긍정적 인 지능은 조금 더있다 설득력이보고 있기 때문이다.
다음은 10 플러스처럼 코드 라인이
긍정적 INT를 얻기에 참여하고, 난 정말 당신이 그것을 어떻게 상관 없어.
난 상관 모두는 당신이다 그것을 할, 그리고 나는했습니다 수 있습니다
뒤에 숨겨진 모든 세부 사항 호출 된 함수는 INT 긍정적 가져 오기
실제로, 루프 동안이 할 일이있다.
>> 그리고 구문 지난 주 참조 거기에,하지만 그것은 단지 N 선언,
그리고 출력한다 사용자에게 지시.
그것은 지능을 가져 오기를 호출 한 다음 그것을 확인 이 조건을 다시, 다시,
사용자는 협력 다시 때까지.
>> 그래서 지금, 몇 가지 정신을 확인합니다.
아마도 익숙한 사람들을 위해 일부 프로그래밍,
N 선언 왜, 왜 만듭니 까 루프 동안 DO N 개의 외부?
왜 라인에 인 (29)이 아닌 예를 들어 같은 33에.
>> 청중 : 때를하기 때문에 종류, 외부 그것을 선언
더 큰 scope--의
>> 스피커 1 : 좋은.
>> 청중 : - 그리고 당신은 선언하는 경우 그 루프 내부, [들림]
그것에 대해 알고하지 않기 때문에.
스피커 1 : 맞아요.
나는 simplify-- 경우 이 범위의 문제이다.
그리고 범위는 문맥을 말한다 어떤 변수가 존재하거나 사용할 수있다.
그리고 여기 엄지 손가락의 좋은 규칙이다 일반적으로이 선언하거나 만들 때
변수는 단지 내부 사용할 수 있습니다 가장 가까운의 중괄호를 포용.
그래서 무엇을 의미합니까?
나는 대신에,이를 취소하고 함께 갈 경우 조금 더 간단 느낌 뭔가.
권리?
>> 선 (32)는 지금 나에게 청소기 보인다.
나는 양쪽 일을하고 있어요 한 번 다음 할당
왼손으로 오른손.
문제는 지금 기초 범위의 정의
N은 그 라인에서 사용될 수있다 (31)이 루프의 내부 (32)
하지만 어디 그 정의에 의해 이를 사용할 수 없다?
라인에서 무엇?
그래.
>> 청중 : 35.
>> 스피커 1 : 35.
확실히 35.
또한 다른 어디?
청중 : 34.
스피커 1 : 심지어 34 인 이 때문에 문제
중괄호의 외부.
그리고 사실, 이제 어떻게되는지 보자.
권리?
이것은 조금 보일 수 있습니다 직관적하거나, 그렇지 않을 수도
하지만 이제 무엇을 보자 컴파일러는 때 말해야하는
우리는 오늘의 소스 디렉토리로 이동합니다.
기능을 확인하십시오.
맙소사.
글쎄, 나는 마침내 완료 그 방법으로.
괜찮아.
그리고 문제는 여기에 무엇입니까?
보면 아주 비밀.
그러나 여기에 내가 typed-- 무엇 기능을 확인하십시오.
여기 수 있도록 유도 무엇을, 이는 실제로
컴파일러 연타를 사용하여 그 플래그의 일부
우리는 오래 전에 다시 볼 수있다.
그리고 또, 항상 봐 첫 번째 오류에서,
그냥 계단식가있을 수 있기 때문에 다른 라인에 의미가 효과.
>> 그래서 이것이 의미하는 것은 그 문제는 함수 1.c.에
이 라인 (32)에 있습니다.
그리고 열, 또는 문자 (13)에 있어요.
그래서 때 텍스트 편집기는 수 문제가있는 위치를 식별하는 데 도움이.
내가 스크롤 그래서 경우, 라인 (32) 무엇인가?
즉, 실제로이 하나 그 이미 강조 있어요
바로 here--되지 않은 변수 (n).
그러나 사용되지 않는 아니다.
나는 그것을 사용하고 있습니다.
그러나 컴파일러가 있기 때문에, 혼동 그것은 단지이 범위 안에 존재한다.
그래서 내가 여기에 사용할 수 없습니다.
난 여기가 사용할 수 없습니다.
그리고 컴파일러에 따라서, 심지어 내가 노력하고있어 것을 상관하지 않는다.
사용하지 않은 것 같다 실제 범위 내에서.
>> 그래서 우리는 수행하여 범위를 확장 할 수 있습니다 정확히 우리가 시작한 일을 일 해요는 N 값 int.
그리고 그것은하지 않더라도 아마도, 우아한 보면,
우리는 여분의 라인을 가지고있어 여기에, 지금은 사방 범위에있다.
그럼 다시 시도 할 수 있습니다.
그래서 기능을합니다.
반갑습니다.
그리고 지금 나는 경우 어떻게 기능을 실행하는 경우 하나는,의 10 음을 줄 수 있습니다
음의 1, 0, 1, 그리고 실제로 작동한다.
>> 그래서 여기에 다른 해결책이있다.
당신은 무엇을 알아?
난 정말이 무엇을 씨름하고 있다면?
나는 어디를 모르는 N 이동하기로했다.
당신은 무엇을 알아?
난 그냥 넣어 갈거야 모든 여기에 내 파일의 맨 위에있는 방법.
이, 당신은 어떻게 생각합니까까요?
그래?
>> 청중 : [들림].
스피커 1 : 그래.
그래서 말하자면, 그것은 글로벌했습니다.
당신이 변수가있는 경우 그 외부의 허용되는 당신의 모든 기능,
그리고 코드를 컴파일해야하며, N 지금 취득으로뿐만 아니라 액세스 할 수 있습니다
물론 main-- 긍정적 INT 어느 이 때문에 조금 걱정이다
주에서 이미 N, 그래서 더 단지 moment--에 그에
그러나 이것은 나쁜 디자인으로 간주됩니다.
괜찮아.
당신은에 의존해야하는 경우 뭔가 오, 나는거야, 같은
여기 때문에 올려 코드를 컴파일 할 것
일반적으로 가장 좋은 방법이 아닙니다.
오히려 당신이 선택합니다 좁은 가능한 범위
당신의 변수, 어느 의미 우리의 초기 설계와 진행하는
바로 여기에있다.
>> 이제 옆으로, 당신은 할 않은 경우 여기에 변수 동일 이름의,
방법 C는이 항아리 처리 할 것 이 너무 often-- 일어나지 않을 것입니다하지만
이 여전히 있다는 것이다 여기에 완벽하게 정상적으로.
하지만 라인에서 N의 정의 도 22는 글로벌 한 그림자 것이다.
그래서이 사람은 내에서 작동합니다 주, 글로벌 한
당신이있을 때 실제로 적용됩니다 긍정적 INT하지만 더 많은 수
다른 시간, 그러나 다만 호기심 사람들을 위해.
>> 그래서 한마디로, 우리는 여기에이 문제를 해결.
이제 다른 두 조각 떨어져 애타게하자 우리는 하나의 코드 마지막 줄을 살펴보기 전에
이 프로그램에서.
긍정적 INT를 가져옵니다.
의 좌측에 그 단어는 단어 INT이다.
그건 당신이 어떻게 생각하십니까을 의미합니까?
지금까지 우리는 주로 무효 보았다.
그래?
>> 청중 : 그것은 유형의 당신에 대해 질문하고 변수입니다.
>> 스피커 1 : 그래, 그것의 종류의, 저를 보자 하지 변수 말하지만, 값의 유형
것을 나는 위해 다시 부탁 해요.
그리고 사실, 그건 여기에 직관적, 희망.
권리?
당신을 얻고 싶은 경우에 긍정적 INT, 당신이 무엇을
같은 function--를 원하는 우리 지난 주에서 자원 봉사자
조각을 다시 손에 그것에 INT와 종이?
그래서 우리가 지정한 그 이 함수의 소위 반환 형식
긍정적 INT를 얻을 수있다.
우리는 그것을 원하지 않은 경우 당신이 무효라고, 아무것도 반환.
당신이 원하는 경우 반환 할 문자열, 당신은 문자열을 말한다.
당신이 원하는 경우 반환 할 플로트, 당신은 플로트를 말한다.
그러나 여기에 적용되는 하나의 논리적으로, 내가 가져 오기 INT를 사용하고 있기 때문에,
나는 그것을 제한하고있어 비록 양의 값은 int를 반환하는 것입니다.
>> 그래서 반대로, 그것은 무엇을 의미 하는가 것을 괄호 안에 빈 공간이있다?
괄호는 어떻게 일반적으로 정의?
그래?
>> 청중 : 그것은 함수의 의미 실제로을받지.
>> 스피커 1 : 그것은 함수의 의미 실제로 무엇을 얻고 있지?
>> 청중 : 입력.
>> 스피커 1 : 무엇이든지 입력.
그래서 참으로, 경우 괄호 여기에 당신은, 무효 지정
그 그냥 내가 모든 입력을 원하지 않는 것을 의미한다.
나는 문제 나 자신을 처리합니다.
그리고 실제로, 당신은 필요가 없습니다 긍정적 INT 아무것도 얻을 말한다.
당신은, 말을 긍정적 INT를 얻고, 그 기능이 떨어져 가서 그 일을 할 것입니다.
>> 하지만했습니다 약간의 트릭이되었습니다 여기에 모든 시간을 연주
이 코드는 컴파일 확인합니다.
즉 긍정적 인 얻을 int-- 주목 INT의 void-- 라인 (27)에 있습니다.
그러나 일부 겉으로는 이상한 이유 이 라인 (16)에 여기까지도있다.
그냥 좋은 측정을 위해 내가 반복합니다 이 때문에 완벽하게 동일합니다.
그리고 내가 말한 프로토 타입 작은 한 줄 코멘트.
내가 그 삭제하면 어떻게, 그리고 지금은 기능 1, 입력하게 ​​다시 실행하십시오.
으악.
분을 기다립니다.
내 탭은 어디?
응?
대기.
기능 1을 확인합니다.
우리는 거기에 갈.
그래.
제대로 저장하지 않았다.
그래서 나는 조금 있다고 생각 여기에 버그가 난 아니에요 곳
순간 탭 이름을보고.
그래서 여기 일이야?
함수의 암시 적 선언 긍정적 INT를 얻을하는 C99에서 유효하지 않습니다.
그래서 다시 혼란.
그래서이 나타내는 무엇인가?
글쎄, 그것은 밝혀 C는 매우 어리 석다.
음, 프로그래밍의 언어, 또는 오히려 컴파일러이다.
그것은 단지 당신이 알고 그것을 가르쳐, 그리고 그것은 단지이다
뭔가를 알고있는 것 당신이 전에 그것을 가르쳐 경우.
즉,의 순간 주, 나는 해요
함수를 호출하려고 라는 긍정적 INT를 얻을.
그러나 컴파일러는 않을 것이다 즉 긍정적 INT를 얻을주의 사항
라인 (26)까지 존재한다.
그래서 컴파일러가하는 것입니다 오류가 즉시 17 줄을수록,
암시 적 선언을 말 긍정적 INT를 얻을 수있는
말하는 단지 멋진 방법입니다, 내가하지 긍정적 INT는 아직 것을 얻을 알고있다.
>> 자바와 같은 다른 언어와 파이썬과 루비는 미리 볼 수 있습니다.
C하지 않습니다.
그리고 방법 우리는 수정 이 두 가지 방법 중 하나입니다.
어느 하나가 문제가 될 경우에는 그 얻을 긍정적 INT는 전에 보지되지 않았습니다
물론, 내가 바로 가기로 이동 할 수 있습니다.
즉,이 문제를 해결하는 것입니다.
그러나 일반적으로,의 고려 더 나은 기술
아주에서 주요 기능을 넣어 인간이 코드를 읽을 수 있도록 최고
프로그램이 무엇을 알고 주 모든 매장되지 않기 때문에
맨 아래에 또는 중간에 길.
그것은 매우 상단에 있습니다.
그래서 이상적인 생각하지 않습니다.
그리고 당신은 실제로 얻을 수 있습니다 상황 곳으로
하나의 함수를 호출하는 경우 서로를 호출하는 다른,
당신이 문제로 얻을 수있는하지도 않습니다 논리적으로, 다른 이상 갈 수 있습니다.
그것은 단지 수 없습니다.
>> 그래서 방법이 작동합니다 이것은 단지 걸릴 것입니다 주위에
함수의 서명, 그래서 speak--하기 이 declared--의 첫 번째 줄
그냥 복사에서 붙여 넣기 곱슬 braces-- 상위 있지만
단지 세미콜론.
그것은 약간의 힌트처럼 올 무엇.
실제로,이 때 모든 때 표준 io.h 같은 것들을 보았다
및 cs50.h, 유사에 그 점 H 파일이 다른 프로토 타입입니다.
그리고 우리는 오래 전에를 볼 수 있습니다.
>> 짧은에 따라서는 프로그램이있을 때 여러 기능을 가진 파일
주요 게다가, 당신 거의 항상 그들을 선언 할
그들의 첫 번째의 방법으로 세미콜론 다음에 라인,
파일의 맨 위에.
즉, 한 번에 많은했다.
질문?
괜찮아.
>> 그럼 이동하자 기침과 같은 것이다.
오.
어떻게 피팅.
괜찮아.
기침.
그래서 여기에 C입니다 프로그램의 구현
우리의 다른 일을했다 스크래치가 매우 간단 단지
기침, 기침, 기침 말한다.
괜찮아.
그리고 누군가가 몇 말했다 일 전이 있다고
이미이 코드를 청소하는 방법.
괜찮아?
최대한 빨리 복사하는 바와 같이 아마 나쁜 디자인을 붙여.
적어도 한 번 우리는 네다섯에 도착 20 기침, 나쁜 관행을 느낀다.
우리는 단지, 붙여 넣기 사본을 보관.
확실한 해결책은 무엇인가 이 프로그램을 위로 청소에?
>> 청중 : 루프.
>> 스피커 1 : 그래.
그래서 루프를 사용합니다.
그리고 우리는, 동안을위한 루프를 사용할 수 있습니다 루프, 접근 방법의 수.
그리고 사실, 그게 무슨이다 우리는 여기에 버전 하나 않습니다.
내가 대신 그것을 다시 작성했습니다 cough.c 버전 하나
대한 루프 내에서 단지 기침한다.
좋아,하지만 거기에 시작 가지 지금 기회
더 같은이 작은 디자인을 교훈은 우리가 잠시 전에 가르쳐
내가 원하는 것을 가정이 항아리 인 기침라는 함수를 만들려면
그냥 잠시 생각해 보자 그것은 무엇처럼 보일 것입니다.
내가 뭔가를 원한다면 난 그냥 필요, 기침
함수 내에서 인쇄 F를 사용합니다.
그리고 실제로 나는 생각합니다.
그리고 사실,이 모든 시간, 언제 당신이있어
뭔가를 인쇄 화면, 프로그래머
부작용 있음을 부를 것이다.
그것은 내게는 나눠 아니에요 다시 누군가 값.
그것은 내게 어떤 조치를 취할 것 그 시각적으로 분명있을 수 있습니다.
그러나 이러한 기능은 기침, 그것을 반환하지 첫 번째 라인을 기반으로 아무것도?
아니, 그것의 반환 형식 때문에 그냥 의미, 무효입니다
그것은 다시 나에게 아무것도 전달 아니에요.
이 일을 할 수 있습니다 시각적으로, 그러나 그것은 나를 나눠 아니에요
지난 주처럼 종이를 백업합니다.
>> 그것은 어떤 입력을해야합니까?
아니.
그리고 그것은 너무 여기 무효입니다.
그래서이 너무 가지입니다 이 문제를 오버 엔지니어링.
권리?
나는 더 많은 프로그램을 만들었어요 코드의 복잡한, 더 선,
나는 어떤을 만든하지 않은 이상의 기능 있지만
디딤돌이 될 것입니다, 아마도위한 광범위한
더 복잡한 코드 상황.
하지만 이것에 대해 무엇?
나는 단지에서 무엇을이기는 done-- 한 이 댓글을보고하지 않고
무슨 file--의 맨 위에 나는 기본적으로 내 기침 여기 다
다른 구현?
그래, 다시?
>> 청중 : 당신이 할 수 있도록합니다 문자를 해제해야합니다.
스피커 1 : 그래.
그래서이 종류의 좋은 느낌.
권리?
그것은에 기능을 추가처럼 당신의 프로그램이나이 경우 함수.
아직 아무 것도 반환하지 않습니다.
그것은 시각적 부작용을 가질 수 이 인쇄 F를 부르고 있기 때문이다.
하지만 지금은 매개 변수화 한 기능을하는
내가 찍은 지정한 의미 int 형의 입력, N 호출
하지만 난 내가 원하는 무엇이든 그것을 호출 할 수 있습니다.
사실, 단지 수 시간은 훨씬 더 명시합니다.
그리고 난 그냥 여기를 변경할 수 있습니다.
그러나 포인트는 어떻게이 있다는 것이다 입력을받는 함수를 만들 수 있습니다.
그리고 당신은 내리고 기억 경우 하나 아마도 온라인을 통해
워크 스루의, 네 번째이자 마지막 기침 예를 들어,
여기서 알 수 나는 일반화했습니다 추상화의 내 코드 further-- 종류
더 나아가.
기침, 재채기와 마찬가지로 모두는 에 대해 뭔가를 말하거나 만들기 등
소리의 일종.
저장 될 것이다 스크래치 해당 블록.
그리고이 버전에서했던 그래서, 이는 우리가에서 바로 눈에 수
, 기침 그냥 [기침] 말하는 것과입니다 기침, 그리고 그 사이에, 재채기입니다
말처럼, [ACHOO].
그래서 나는 일반화했습니다 이러한 구현
지금 구현하여 이 일반적인 기능,
재미있는 말 오늘의 목적을 위해
만 여전히 때문에 반환 형식이 없습니다.
그러나 얼마나 많은 입력을해야합니까?
청중 : 두.
스피커 1 : 두.
그리고 당신이 원하는 경우 두 개의 인수를 받아,
그냥 쉼표로 구분합니다.
그리고 당신은 원하는 경우 그 함수를 호출,
알 당신이 단지 , 인용을 끝내, 견적, 말 전화
첫 번째 인수에 대한 공통 N, 두 번째 인수에 대해.
그래서 다시, 우리는 지금이 빌딩 블록 우리가 실제로 할 수 있도록
우리 자신의 일부 기능을 구현합니다.
괜찮아.
이들에 대한 질문?
>> 그래서 지금의 레이어 그렇다면 다시 벗겨 보자.
그리고 목표, 궁극적으로, 다음 주 문제 세트입니다
cryptogrophy--에있을 것입니다 스크램블링 정보 기술.
구체적으로, 정보 당신은 암호화 또는 암호 해독해야합니다
텍스트가 될 것입니다.
초대의 그리고 그런 종류의 질문 오늘 잘 같은,
무슨 일이 후드 아래 벌어지고 주 0에서 ASCII 이상으로 텍스트,
방법은 실제로 우리가 할 수 이를 조작하기 시작?
그래서 여기에 Zamyla의 이름입니다.
그리고 텍스트, 즉 입력 될 수 있습니다 GET 문자열 기능 등으로.
당신이 볼 때, 이제 시작 이 항아리 Z-A-M-Y-L-할까 .. 같은 문자열
각 것처럼 생각하고 시작 그 문자의 상자에 그
자신의.
그리고 실제로, 일주일 정도의 시간,이 상자의 각
아주 구체적으로 표현하는 것입니다 메모리의 물기를 memory--의 블록.
그래서이 편지의 각, 궁극적으로, 8 비트를 나타냅니다.
그리고 우리가 실제로 무슨 일이야 볼 수 있습니다 내 컴퓨터에 후드 아래에.
>> 아닌 것은 충분 다만 Zamyla 보는
의 이에 각이 렌즈를 통해 이 편지는 자신의 상자입니다.
그리고 멋지게 충분히 C로 우리는 할 수 바로이 상자의 각 액세스 할 수 있습니다.
첫 번째를 얻고 싶은 경우에 따라서 그녀의 이름의 편지, C에서 아주 쉽게
당신은 마지막을 얻고 싶다면 편지, 아주 쉽게뿐만 아니라
새 구문의 조각.
>> 그래서 CS50로 진행거야 IDE와 문자열을 제로 점 C를 열어
여기에서 본 실시 예에서, 존재 새로운 몇 가지 일이 일어나고.
그래서 첫 번째 줄 19, 우리는했습니다 이 before-- GET 문자열을 본.
그래서 그냥 빨리 전성 검사로, 누군가가 구두까지 제공 할 수있는 경우
의 평신도의 설명 무슨 일이 라인 19에서 일어나는.
바로이 점을 번역처럼 영어 그 CS50의 룸메이트하지
이해할 수 있습니다.
그래.
>> 청중 : 사용자 입력을 가지고 문자열 변수들에 저장하고.
스피커 1 : 좋은.
사용자 입력을 문자열을 가지고 과 변수들에 보관하십시오.
잘 됐네요.
오른쪽에 따라서 면, 우리는 GET 문자열을 호출합니다.
즉, 값을 반환 그가 할당되지 않았다
오른쪽에서 왼쪽 손을합니다 의 변수라고들로 측
문자열을 저장하도록 설계.
정확히.
>> 그래서 지금 당, 22 라인 라인 (21)의 주석,
분명히 그 문자열을 출력 한 줄에 하나의 문자.
하지만 어떻게?
그래서 우선, 우리는 내가 0으로 초기화.
그리고 우리가 어떻게에받을 수 있나요 Zamyla의 이름의 끝?
음의 끝에 Zamyla의 이름, 나는 할 수
수동의 마지막 문자를 입력 그녀의 어떻게 든 이름, 또는 그것의 수입니다.
권리?
우리는 다시 here-- Z-A-M-메디슨 가면 Y-L-할까 .. 그래서 난에 입력 할 수 있습니다.
의 인덱스 기능 Zamyla의 마지막 편지?
이 경우 0--처럼 말하기 programmer-- 0, 1, 2, 3, 4, 5,
나는, 그래서 참으로 마지막 편지를 heard-- Zamyla의 이름으로 여섯 번째는,
하지만 우리는 0부터 계산하면, 이 숫자 5가 될 것.
그래서 여기에 마음에 보관하십시오.
>> 함수에 거기에서 그것은집니다 C는 strlen 함수를 호출, 다시 하루에
아직도이 일에, 프로그래머의 많은
의 이름을 동기화하도록 선택할 그들의 말 같은 소리 기능
그들이 말하고자하는 것입니다.
그래서 나 strlen 문자열의 길이입니다.
그래서 무슨 일이 문자열 길이의 것 Zamyla가 입력되면 S 반환?
>> 청중 : 다섯.
>> 스피커 1 : Z-A-M-Y-L. 여섯.
권리?
Zamyla 이름의 길이는 얼마입니까?
권리?
단지 현실에서, 여섯 글자.
권리?
그리고 그것은 우리의 루프 무엇을 의미 하는가?
우리는에서 갈거야 여섯 0, 어떤
우리에게 다섯 반복을 줄 것입니다.
우리는 각각의 반복에 무엇을해야합니까?
음, 퍼센트 C, 사람 다른 날 추측,
무엇을위한 자리를 의미한다?
>> 청중 : 샤아.
스피커 1 : 그냥 문자.
그래서 하나의 character--하지 문자열과 같은 여러 문자.
그리고 여기에 새로운 라인이다 우리는 밖으로 인쇄를 가지고있다.
그리고 여기에 새 구문입니다.
당신은 i 번째를 인쇄하려면 문자열 S의 문자는, 그래서, 말하자면
당신은 단순히 말을 할 수 문자열 S의 이름,
다음 대괄호를 열고, 다음 내가 함께, 대괄호를 폐쇄
중간.
그리고는 점에서 일종의 좋다 그것은 종류의 사각형 모양
그냥 사각형 등 Zamyla의있는 문자가 그 사진에 존재합니다.
>> 내가 실제로 실행한다면 자, 어떻게 볼 수 있습니다.
문자열 0 점 슬래시를 확인 문자열 0을 입력 한 다음 난
Zamyla의 이름을 입력하는 것.
내가하지 않았기 때문에 어떤 프롬프트는 없다 인쇄 F를 사용하지만 괜찮아요.
난 그냥 어떻게 해야할지.
그리고 실제로, 그것은 출력한다 Zamyla의 이름, 한 줄에 하나씩.
>> 이제 조금 무모 할 수 있습니다.
내가 아는하지 않았다고 가정하자 대한 나 strlen 내가 생각,
모든 권리, 아무도를해야 할 것없는 것 50 자와 같은보다 더 큰 이름을 지정합니다.
이제 가서이를 다시 컴파일하자 그것을 다시 실행 한 다음 Zamyla을 입력
다시.
논리적으로, 무엇 인 이 프로그램은 인쇄하려고하는 것?
Z-A-M-Y-L-다음을 추천 메모리의 알 수없는 바이트.
그리고 실제로, 우리는 다시 올 것이다 메모리의 아이디어.
그러나 단지 논리적으로, 경우 Zamyla의 이름은, 이렇게 오래입니다
그림에 따라 여기에, 우리는 무엇을 말을하는지
인쇄를 계속 인쇄를 유지하고, 유지 인쇄, 인쇄를 계속 인쇄를 유지
50 문자까지 모든 방법, 어떤 일이 일어나고 있는지 알고있는 사람.
그래서 실제로 살펴 보자.
의는 Zamyla을 입력 할 수 있습니다.
흥미.
우리는 운이 있어요.
공백의 단지 전체 무리.
오.
한 펑키 문자가있다.
그것은 이상한 질문 같은 종류의 보이는 이 표시하지만, Zamyla의 이름이있다.
의 정말 무모한하자.
우리는 500을 인쇄에 대해 어떻게 미지의 블록?
이제 가서이를 만들어 보자 뿐만 아니라 한 후 다시 실행.
그리고의 그것 때문에 전체 화면을하자 우리는 더 많은 공간을 볼 필요가있다.
Zamyla.
다시 행운이있어.
>> 우리가 더 무모 얻을 수있어?
좀 더 무모하자.
50,000 문자.
이것은 대부분의 확실히 좋은 생각이 아니다.
괜찮아.
문자열 0을 확인합니다.
이것은 우리의 마지막 데모 될 것입니다.
Zamyla.
윽.
그래.
그래서 내 기억은 지금 정말로 비어 이는 실제로 종류의 편리합니다.
나는 모든 권리를 이러시면 얻기 위해 노력하고있어.
그리고 지금 난 그냥 무모 얻을거야.
50.
전체 화면에게의를하자 Make--.
입력합니다.
Zamyla.
우리는 거기에 갈.
나는 아무 생각 그 무엇을 가지고 이지만 나쁜 들린다.
괜찮아.
그리고 사실, 곧, 당신은 사이 인 경우에 근무 시간에 운이 몇
그리고 문제에서 당신을 하나를 설정 잘이 발생할 수 있습니다.
분할 오류가 실제로 수행 잘 정의 된 의미를 가지고있다.
그것은 실수의 일종을 의미한다 메모리 세그먼트에 관한.
그리고 평신도의 관점에서, 우리가 감동을 의미합니다
memory-- 우리는 내 컴퓨터에 RAM을 사용 나는에 액세스 할 수 없었을 것을.
그리고 그 둘의 무슨 강력하고도 위험한
C에 대해 당신이 실제로 자유롭게 액세스 할 수 있습니다
프로그램 메모리의 전체에 또는 바이트 RAM,보다 구체적으로는.
>> 그래서 심지어 Zamyla의 이름하지만 만 6 자 길이
난 아직 아무데도 갈 수 있습니다 메모리에 내가 원하는.
그리고 옆으로, 당신은했습니다 것처럼 지금까지 몇 가지 기사를 읽고
일부에 대한 지난 몇 년 동안 서버 또는 일부 프로그램
금 또는 해킹 점점 그건 무언가의 촬영 이점
버퍼 오버 플로우라고 우리가 실제로 것이라는 점을 악용
그건, 몇 주에 대해 이야기 일반적으로 어떻게 든 속여 참조
잘 진행에 컴퓨터 메모리의 경계를 넘어
이 가져야하고, 달콤한 무언가를 찾는
그 memory--에 암호, 아마도 방법
일부 일련 번호를 우회의 확인, 또는 일반적으로 수 만
컴퓨터가 실행 속여 의도하지 않은 코드입니다.
그러나 이제 다시 오게 단지 잠시 현실
이 프로그램은 어디에 strlen 함수로 구현,
여기에 한 가지를 소개합니다.
이들 상위 세 라인 중 새로운 무엇입니까?
>> 그래서 문자열 도트 시간.
그것은이라는 라이브러리가있다 밝혀 문자열 점 H, 또는 문자열 라이브러리,
그 헤더 파일, 말하자면, 저를주는 캐릭터 도트 시간이다
이 나 strlen 기능에 액세스 할 수 있습니다.
나는 그것을 생략하면, 컴파일러는 어떤 형태 나 소리 것.
하지만 당신은 알아?
이제 정말 미묘한하자.
라인 (22)에서, 어떤 종류있다 의 inefficient-- 심하게 설계,
코드 행에 대해 arguably--.
방법을 다시 생각 대한 루프 구현
어떤 단계가 다시 발생하고 다시 초기화 again--,
조건 코드 그 실행 후 증가를 가져옵니다
또는 변경, 다음 조건, 다음, 다음 코드, 다음의 변화,
조건, 다음 코드, 다음 등 변경합니다.
그래서 조금이 될 수 있습니다 걱정 또는 가난하게 여기 다?
네, 파란색.
청중 : STRLEN입니다 많은, 여러 번했다.
스피커 1 : 그래.
라고 그래서 나 strlen 여러 번,하지만 무엇
Zamyla의 이름의 길이 처음으로 루프가 실행?
>> 청중 : 여섯.
>> 스피커 1 : 여섯.
글쎄, 그녀의 이름의 길이 무엇인가 코드가 실행 번째?
>> 청중 : 여섯.
>> 스피커 1 : 좋아.
아직 여섯입니다.
권리?
Zarla의 이름은되지 않았습니다 내가 찾고 있어요 경우에도 변경
그녀의 이름에서 문자의 부분에.
그리고 사실 나는 효과적으로 해요 것을 이 질문을, 무엇이다
Zamyla의 길이는, 길이 무엇 Zamyla의, Zamyla의 길이 무엇,
여섯 별도의 시간, 또는 일곱도, 그냥 바보
즉 그 대답은 변하지 왜냐하면.
그래서 내가 실제로 할 수 문자열 하나에이 항아리 할 것입니다
여기 변두리에 더 나은 버전이있다.
... 이렇게 whoops-- 문자열이 내가 가진 변두리에 더 나은 버전 특징
내가 대신 그냥이 항아리 수행 나는 쉼표로도 0으로 나는 초기화
라는 두 번째 변수를 선언 N-- 난 다시 INT 말을 할 필요가 없습니다.
나는 사실, 안된다.
하지만 N 말한다.
그리고 나는 N에 초기화 그래서 N의 나 strlen, 지금
얼마나 많은 시간을 나 strlen 않습니다 총 실행 얻을?
딱 한번.
그리고 이것은 우리가 무엇을 의미하는지입니다 이전의 더 나은 디자인에 대한.
실제로 코드는 올바른되면 다시 가서 통해 생각,
내가 적게 사용하고 메모리 또는 몇 초
컴퓨터 시간 또는 밀리 초 일부 문제점을 실현할 수?
그리고 스크롤거야 최대 단지 언급
이 언급이 있다고 이 버전은 NULL,
그러나 우리는 오래 전에 다시 그에게 올 것이다.
지금 때문에, 이제 살펴 보자 어디에서이 우리를 이끌 것입니다.
그래서 하나, 그것은 밝혀 우리는 능력이 이제
개별 문자 보는, 우리는 무언가를 활용할 수 있습니다
주 0에서 이들은 매우 비밀이었고, 당시 재미의 일종.
하지만 지금은, 특히 때를 일주일에 암호화에 도착,
그것은 꽤 강력한 될 것.
그것은 몇 가지와 그것을 밝혀 데이터 types-- 정수와 수레
및 문자 및 문자열과 그들 중 일부 things-- 다른
아주 쉽게 서로 전환 될 수있다.
>> 예를 들어, 우리가 이야기 할 때 ASCII에 대해 약간의 시간이 ago-- 여기
대문자의 M을 통해, 점, 점,
dot-- 우리는 매핑이 있다고 말했다 이러한 문자와 숫자 사이.
사실, 그것은 성립 뿐만 아니라 소문자합니다.
소문자 a가 97이며, 자본은 65입니다.
그리고 ASCII의 수는있다 이는 단지이 매핑
그 다른 문자의 모든 시스템.
그래서 무엇을 의미합니까?
음, 앞서 열린 갈거야 라는 진짜 빨리 뭔가 최대
의견이다 대부분의 ASCII 0,.
그리고 다시 온라인 당신은 항상 수 코멘트를 통해 한눈에.
>> 그리고 봐 무엇 이 수행 할 것입니다.
그래서 주요 기능을 가지고있다.
난 단지에 대한 숫자를 하드 코딩했습니다 지금, 때문에 내가 뭘하는지 알고있다.
나는 여기에서보고 싶은 알고있다.
그리고 나는 65에 나는 초기화했습니다.
그리고 최대 믿고있어 (26)를 통해 문자 총.
그리고 나는 무슨 예정 한 번에 한 라인을 인쇄
당신이 해석 할 수있는 경우 이 라인을 강조?
무엇을 인쇄됩니다?
그래.
>> 청중 : 당신은 건가요 편지를 인쇄하는
의지도에 해당 문자 값 및 정수 값?
스피커 1 : 맞아요.
나는 편지를 인쇄 할거야 정수 값에 대응
그 반대로, 다음과 같이.
그럼이, 누군가가 말했듯이 숯불 단지 자리 표시 자입니다.
그것은 아직도있다.
이것은 물론, 자리 표시 자입니다 새로운 라인 int--하지 않는.
그리고 지금, 내 첫 번째 값을 알 그 나는 그 자리에 대한에 연결 해요
다만 I. 말인지되지 않습니다, 괄호, 숯불 나는,
이는 괄호 문자 인 컴파일러를 말하고, 내가 치료
하지가 다수 인 내용과.
실제 문자로 취급.
두 번째 값 반면 내가 연결 해요 in-- 난 - 그냥 수 있어야한다.
>> 그래서 나는이 program--를 컴파일하는 경우 그래서 이것은 ASCII는 0이다,
점 슬래시 ASCII 0-- 난 그냥 얻을 이 편리한 작은 차트 그
나 가능한 모든 표시 그것을 생각하지 않고 매핑
를 통해 또는 내 자신에 그것을 알아낼.
그리고 또한, 밖으로 인쇄하고 있습니다 소문자를 발견,
나중에 몇 줄 때문에, 나는 이지도를 인쇄
뿐만 아니라, 단지에있는 당신이 이해하면 말
아래에 무슨 일이야 후드, 당신이 할 수있는
자동으로 앞뒤로 변환합니다.
그리고 사실, 당신의있는 경우 어느 초등학교에서 이런 짓을
또는 사람에 대해 들어 신화 적 메모를 복용
과에 전달 그의 또는 클래스에서 그녀의 친구,
하지만 당신은 스크램블 B가된다 등에 의한 문자,
B는 C, 또는 무언가가된다 그보다 더 복잡, 잘,
당신은 어떻게 가겠어요 어릴 때 그 구현?
글쎄, 당신은 단지 종류의 알 A는 B가되고, B는 C가되고,
하지만 수학적으로, 그 아이는 무슨 일을했다?
무엇 당신은 각 문자에 추가했다?
효과적으로, 1.
>> 당신은 B를 변경할 때, 그건 가지 (66) (65)을 변경하는 등,
이는 수학적으로 단지 1을 추가 의미한다.
그래서 당신은 구현한다면 그 작은기만적인 기술
코드에서 선생님를 들어, 그 바로 바로 할 수 있습니다
함께 단일 문자를 추가하여.
너무 오래 전에, 우리는있어 우리는 어떻게 볼 것
실제로 해당 활용할 수 진정으로 스크램블과 챙기다
정보.
한편, 우리가 시작되었음을 알려 몇 가지 다른 라이브러리를 소개합니다
문자열을 한 오늘 here--.
그리고 매우 유용한 사이트 희망 당신은 찾아 낼 것이다
, reference.cs50.net라고하는 교원 함께 넣어 가지고,
당신이 원한다면 있도록 어떻게 나 strlen 작품을 보면,
당신은 입력을 시작할 수 있습니다 함수의 이름,
클릭이 나 strlen 다음 덜 편안 설명
나타날 것입니다.
또는 당신은 공식을 원하는 경우 리눅스 기반의 설명,
좀 더 편안하게 클릭 할 수 있습니다 오른쪽 상단에, 그리고에서
동일한 정보를 제공한다, 하지만 더 복잡한 측면에서.
즉에 유용한 자원이다 실제로 모든 것이 무엇을하는지 알고있다.
>> 우리가 거​​ 야 다음 번에 Ovaltine에서보세요
그리고 더 많은, 그리고 자신을 소개 암호의 세계.
그 전에, 우리는 볼 수 있습니다 당신은 이번 주.
그리고 지금, 콜튼 오그 덴.
수요일에 당신을 참조하십시오.
>> [음악 재생]
>> 스피커 1 : 무엇 [삐] 당신은 뭐하는거야?
>> 스피커 1 : 내 디저트를 먹는 건가요?
당신은 어떻게 그것을 먹을 수 있습니까?
손으로?
>> [음악 재생]