ROB : 좋습니다. 첫 번째 섹션에 오신 것을 환영합니다. 롭 해요. 요셉 : 나는 조셉 해요. ROB : 그래서 우리는 바로 안으로 다이빙을합니다 얘기 우선 어플라이언스입니다. 그렇게 잘하면 당신의 대부분이 이미 다운로드 한. 하지만 당신은 지시 사항을 볼 수 있습니다 cs50.net/appliance에서. 오 하나님, 지금은 자의식 해요. 나는 아직도 받고 있습니다. 조셉 : 와우​​, 그것은 같은 소리 그것은 혼동이다. ROB : 그래서 어떤 사람들은 가지고되었습니다 그것은 문제, 그래서 때까지 기다리지 않는다 문제의 마지막 분으로 설정 시도 어플라이언스를 해결하고 그것이 작동하지 않는 것을 발견. 조셉 : 그리고 뭔가가 작동하지 않는 경우 당신이 도움을 필요로하는, 당신은 갈 수 있습니다 cs50.net/discussion 어디 어디 포럼이 질문을 게시 할 수 있습니다. 그리고 우리는 결국 그들에게 얻을 것이다. ROB : 좋습니다. 그래서 이것은 어떤기구입니다 처럼 보인다. 다시 말하지만, 그냥 완전히 별개의 운영 체제 내에서 실행 어떤 운영 체제 당신 노트북에서 실행됩니다. 그리고 당신은 정액의 주요 관광 명소 사용 할 수는 gedit를합니다. 그래서 희망이 이미있다 친숙한 사이트가됩니다. 터미널. 그리고 당신은 또한 크롬을 실행할 수 있습니다 어플라이언스 내에서. 몇 사람이 있었다 인터넷을보고 한 자 기기에서 작동하지. 그리고 그들 중 일부는 단지 가정 하였다 있을 예정되지 않습니다 어플라이언스 인터넷. 그러나 네, 거기에 예상되는 인터넷합니다. 지금은 그것을 말할 수 있습니다,하지만하지 않습니다 정말 아무 의미. 인터넷이 작동하지 않는 경우,에게 이것은 당신이 필요로하는 경향이 무엇입니까 그것을 해결하기 위해 실행합니다. 당신이 인터넷에 문제가있는 경우,하지 기억, 그냥에 게시 토론하고 우리는 그것을 실행 말할 수 있습니다. 그러나 인터넷이 작동해야합니다. 그래서 유일한 것 - 그래, 아무것도 다른 정말 관련이 있습니다. 하지만 난 그냥 그것을 지적하고 싶었다 - 이 오른쪽 하단을 참조하십시오. 그래서기구의 각각해야 IP 주소가 있습니다. 그리고 나중에 학기에이 IP 주소는 관련성이 될 때 당신은 웹 P-세트에서 일한다고해서 당신은에 액세스 할 수 있습니다 웹 사이트는 당신이에서 작업하고 당신의 이 IP 주소를 사용하여 로컬 크롬. 하지만 IP 주소를 사용하는 것을 좋아 용 - 당신은이 작업을 수행 할 필요가 없습니다, 나는 단지 그것을 지적 할 - 여기에 있습니다. 그래서이 터미널 창입니다 내 맥이는 아닙니다 모든 가전. 그리고 당신은 찾아 볼 수있는 이 명령을 수행합니다. 하지만 직접 SSH에 갈거야 내 용품에. 나는 IP가 무엇인지 알 수 없습니다. 조셉 : 168 - 168.224.1.0. ROB : 그래서 한 번 다 했어 이것으로, 로그인 지금, 기본적으로, 이것은 동일하다 내 어플라이언스 내에서 터미널 창. 그래서 나는 거의 실제로 일한 적이 기기 자체 내에서. 난 그냥 항상 실행 한 최소화 된 배경 그것으로 SSHed. 이것에 대한 문제는 당신이하지 않을된다 쉽게 gedit에서 사용할 수있는 직접이에서. 하지만 당신은 진짜 시원 할 경우 해커, 당신은에 익숙해한다 어쨌든 커맨드 라인 텍스트 편집기. 그래서 빔과 이맥스 나노,이 모든 다른 대안이 있습니다. 나노는 쉬운 경향이있다. 그리고 나는 그것이 더 있다고 생각 구문 강조. 아, 아니, 그것은 완전히 않습니다. 그래서 당신은, 나노를 사용할 수 있기 때문에 하나는 매우 간단하다고. 당신은이 모든 명령을 참조하십시오 맨 아래에. 이 작은 당근 기호. 당신은 전에 본하지 않은 경우, 당신은거야 아마 지금은 많이 참조하십시오. 전체적으로 제어 당근 수단 키보드의 왼쪽 아래처럼 제어 문자. 그래서 여기 날 여기로 말하고 - 나는이 확대됩니다 경우 오, 그것은 잘라 아니에요 그래서 제어, X는 어떻게 나는 종료거야. 그리고 내가 Y를 칠 수 있다고 예, 절약, N에 대한 호 그래서 나노입니다. 정력과 이맥스는 조금 더 경향 복잡하고 압도적. 하지만 당신은 그것에 익숙해있다, 그리고 당신은 그것을 사랑합니다. 그래서 그입니다. 요셉 : 그렇게 할 필요가 없습니다. ROB : 네. 당신은 gedit에서 자유롭게 사용할 수 있습니다 학기의 나머지. 그래서 어떤 제품 관련 문의? 아니면 어떤 다른 사람에 대한 어떤 생각을해야합니까 약에 대해 이야기 할 필요가 장비? 예. 스피커 1 : 당신이에 SSHed 당신의 일, 암호 크림슨했다? ROB : 네. 거의 모든의 암호 어플라이언스의 것입니다 크림슨합니다. 스피커 2 : 실제 IDE처럼 설치 기기에, 그것은 작동합니까? ROB : 나는 이클립스 가지고 상상 페도라 버전,이 경우에, 예, 당신은 그렇게 할 수 있습니다. 그것은 아마도 그것은 정말 가치가 없어. 스피커 2 : OK. 그래서 아마 내가 원한다면 쉽게 Eclipse를 사용, 그냥 기본을 사용하여 다음에 업로드 - ROB : 아, 또한 것이 더 쉬울 것입니다. 하지만 당신은이 작업을 얻을 수 있습니다 어플라이언스 내에서. 조셉 : 카메라에 대한 질문 이고, 다른 설치할 수 있습니다 기기의 내부에 IDE? ROB : 이클립스는 것 IDE의 예. 다른 어플라이언스 질문? 괜찮아요. 그래서 우리는 이제 명령 줄로 이동합니다 인터페이스와 관련된 것들 때문에 CLI. 그리고 또, 난 그냥있는 일거야 여기에,이 동일하기 때문에 터미널 창에서 작업 어플라이언스 내에서. 어떻게 그 글꼴이 찾고? 그만큼 큰가요? 괜찮아요. 그래서 명령이 많이 있습니다 그 당신은 꽤 익숙해한다 학기 내내. 탐색하기위한 큰 두 LS 목록입니다 이 디렉토리에있는 파일, 그리고 CD, 그래서 디렉토리를 변경합니다. 그래서 나는 다음 바탕 화면으로 변경할 수 있습니다 매우 일반적인 패턴에 CD입니다 디렉토리와 바로 LS 디렉토리에있는거야. 사람들은 때때로 인식하지 않습니다 해당 탭 완성 것입니다. 그래서 같은 CD, VH, 그 때 나는 탭을 누르십시오. 나는 타이핑 거의 절대 전체 것. 그리고 나서 탭을 치는 유지하는 경우 또, 자동거야 나를 위해 목록을 시작합니다. 그래서 CD를 가상 호스트, 로컬 호스트를 할 수 있습니다. 그리고 그것은 단지 것 - 경우에 당신은 용어를 듣지 못한 전에, 디렉토리는 또 다른 단어입니다 폴더. 그래서 지금 당신이 보는 경우에 - 의 정상에 그것을 가져 보자. 그래서 지금 당신은 당신이 괄호로 표시되면 작은 물결, 슬래시, 가상 호스트를 참조 , 로컬 호스트를 슬래시. 그래서 물결, 즉 의미 홈 디렉토리에. 그것은 당신이있어 디렉토리의 당신이 안으로 SSH 때의 그것은 당신이 경우에있어 디렉토리의 당신은 터미널을 엽니 다. 시작 곳입니다. 그리고 내 홈 디렉토리 안에있어, 나는 가상 호스트의 내부 해요 홈 디렉토리의 디렉토리 내부. 그리고 나는 지방의 내부 해요 그 내부의 디렉토리를 호스팅합니다. CD와 너무 다른 유용한 것들 - 또는 아니라, 일반적으로, 그래서 항상 점 현재 디렉토리를 의미합니다. CD는 점은 꽤 쓸모없는 명령입니다. 하지만 그에게 변화하고 현재 디렉토리. 측면에서 더 유용 하나 CD는 점, 점, 어느입니다 그냥 하나의 디렉토리 이동합니다. 그리고 참고로이 - 나는 별명을 말하고 싶은, 그러나이 문자, 점, 및 점, 점, 그 작업 당신이있어 거의 모든 명령에 대한 실행하는 생각을 할 것. 당신이있을 곳과 같이 CD는 아마 가장을 사용하지만, 이들은 없습니다 다만 CD가 이해 가지. 그것은 거의 무언가에게 전체의 명령 줄은 알고 있습니다. 프로그램의 많은 이해 점과 점, 점. 그래서 다른 유용한 것들 - CD, 대시. 그래서 저를 가져올 것입니다 내가 들어간 마지막 디렉터리 그래서 가끔 내가 뭔가를 할 수 있습니다 오, 여기에서 일하고 있어요. 그리고 뭔가 약간의 오류를 확인하고, 나는로 이동하여 그것을 조사 갈거야 어딘가에 어떤 임의의 디렉토리에 있습니다. 이 있을지는 모르겠지만 거기에 저를 보자. 그것은 것입니다. 그럼 내가 원하는대로 할 이 디렉토리에있는. 어쩌구 저쩌구 저쩌구. 그리고 내가 원하는 모든 권리 같았다 다시 나는이 어디에 이동합니다. CD, 대시, 그것은 바로 다시 날을 제공합니다. 그래서 많이 던질거야 오늘의이의. 당신이 기억하는 기대하지 않는다 그들 모두. 그것은 종류의 단지 알고 있어요 그들은 존재. 그리고 나중에 같이 인 경우에, 흠, 난 다시 가고 싶어 난 그냥였다 디렉토리, 오, 기다려 그런 일이 존재합니다. 당신은 입력 할 필요가 없습니다 다시 전체 디렉토리. 조셉 : 그리고 결국 당신은 것입니다 또 다시를 사용하고, 그것은 근육 기억 될 것입니다. ROB : 네. 내가 전에 말했듯이 어떻게, 그 물결 홈 디렉토리입니다. 그래서 CD, 물결을 할 수 있습니다. 하지만 난 필요 없어 않는 난 그냥 경우 - 나는 그렇게 디렉토리로 돌아갈 수 있습니다 그것은 무의미한 예 아니다. 난 그냥 CD를 할 경우에, 그 또한의 와 같은, 홈 디렉토리로 이동합니다. 나는 명령, K.을 요셉 : 당신은 또한 명확 입력 할 수 있습니다, 단어, 그것은을 취소해야합니다. ROB : 그리고 컨트롤도 생각 L 또한 않습니다. 다른 방법으로 너무 많이. 나는 약간의 차이가 있다고 생각 어디 명확하고 제어, L 것이다 단지 정말 정상에 그것을 밀어 난 여전히 다시 스크롤 할 수 있습니다. 명령, K는 말 그대로 파괴 모든 것을, 그리고 당신 백업 스크롤 할 수 없습니다. 적어도, 그건 이 iTerm2에서 작동하는 방법. 나는 어떻게 다른 일을 모른다 - 오. SSHing으로, Windows에서되는 경우에 당신은 퍼티를 다운로드해야 할 것입니다 윈도우가 없기 때문에 SSH를하기 위해 내장 SSH 도구와 같은있다. 맥에서, 당신은 SSH를 직접 할 수있다 터미널 창에서. OK. 질문? LS와 함께, 그래서 뭔가에 익숙해 이러한 명령의 대부분이와 함께 - 글쎄, 난 그냥 하나를 수행합니다. LS, 대시, 난. 그래서 대시, 난 우리가 가고있는 것입니다 LS에 플래그를 호출합니다. 그리고이 명령의 많은 플래그가 당신은 그들에게 전달할 수있다. 따라서이 경우, 대시, L은 플래그입니다 그것은 나에게 전체를 제공한다는 뜻입니다 모든 정보의 리스팅 이러한 파일의. 그래서 우리는 바탕 화면이 것을 여기 참조 12시 54분 7 월 30 일에 수정. 다운로드 9 월 6시에 수정되었습니다. 이들은 현재 크기이며, 이 디렉토리의 바이트. 당신은 이해하지 않아도 이 모든. 이 물건을 왼쪽에,이 drwx의, 그것은 훨씬 더 관련이 될 것입니다 당신은 처리해야하기 때 - 그 권한이 누구로 할 수있다 이러한 파일을 볼 수 있습니다. 그리고 당신의 유일한 사용자 아니었다면 이 컴퓨터는, 당신은 할 수있을 것입니다 말하자면, OK, I는 하나이어야한다 이 파일을 볼 수 또는 난 허용하는 것 모두 이 파일을 볼 수 있습니다. 그래서 내 컴퓨터에 다른 사람 이 파일을 볼 수 있습니다. 심지어 어떤이 모르는 - 이것은 무엇을합니까? 조셉 : 실제로, 아주 확실하지 않다. ROB : 아이디어 없음. 요셉 : 당신이 모르는 경우에,이 당신이 사용할 수있는 도움이 명령 출력이 무엇을 의미하는지 당신에게 말할 수 있습니다. 그리고 당신은 사람에 입력하면 명령하기 전에 - 그래서 M-A-N. ROB : 남자. 그래서 사람이 또 다른 하나입니다 그것은 매우 유용합니다. 그리고 남자, LS. 그래서 매뉴얼 페이지, 그들은 모두가 당신이 사용하는 거라고 명령 명령 줄에서, 또한이 관련이있을 것입니다 기능 당신이 인간 수 있도록 C.와 함께 - 나는 3를 무시했다. 그러나 남자 3 인 printf 가져올 것입니다 printf와의 C 버전입니다. 난 그냥 남자의 printf를 할 경우에,이는 명령의 printf를 가져올 것 즉, 명령 줄에서 발생합니다. 그래서 사람, LS. 매뉴얼 페이지는 꽤 할 수 있습니다 압도적. 여기에,하지만 당신은이 목록을 볼 수 있습니다 이러한 플래그의 모든 저건 이해한다. 그래서 우리는, 내가 대시하고로 이동합니다 - 난 그냥 당신이 던질거야. 그러나 검색하기 위해, 당신이 원하는 먼저 질문을 칠 마크 또는 슬래시 버튼을 누릅니다. 그래서 슬래시. 그리고 나서 검색 할 수 있습니다 내가 원하는 무엇 이건. 그래서 대시, L에 슬래시거야. 그리고 거기에 있었다. 그래서 긴 목록 형식을 사용합니다. 그 날은 알아내는 데 도움이되지 않는 것을 특정 열을 의미하지만 여기 어딘가에 가정 는 것을 설명 할 것입니다. 그래서 모든 명령에 대한 매뉴얼 페이지를 사용 즉시 이해하지 않는다. 나는 당신도 남자, 남자 할 수 있다고 확신합니다. 온라인에 대한 인터페이스 참조 설명서. 아, 어쩌면 약간의 마지막으로 하나 관련의 LS, 대시,. 난 그냥 LS 할 경우에 따라서주의, 나는이 다섯 개의 파일을. 내가 LS을 할 경우, 대시,, I 더 많은 파일을 얻을. 모든 이들 사이에 공통점 그래서 일 새 파일은 미리 점이다. 그래서 규칙은 그 파일이 도트가 숨겨져로 시작합니다. 그래서 당신은, 해당 파일을보고 싶지 않아 로에게 혼란을하고 싶지 않아 디렉토리 목록. 명시 적으로 요청할 때, 단지의 모든 권리, LS, 대시,, 저를 보여줍니다. 이 모든 파일을 의미합니다 숨겨진 것들을 포함. 그래서 다른 명령. 아, 그 시점에서 질문? 예. 스피커 3 : LS 작업을 수행 할 때, , 점, 점은 무엇입니까? ROB : 아. 그래서 이것은 내가 얘기했던 것입니다. 이 같은 일이 어디 나는 CD, 점, 점을 좋아 할 수 있습니다. 그래서 기술적으로, 점과 점, 점은 하나 하나에 존재하는 파일 도트 파일 지칭 디렉토리 현재 디렉토리에. 그래서 CD를, 점, 난 그냥 갈거야 경우 디렉토리에있는 숙박 시설을 제공합니다. 그리고, 점, 점은 항상을 의미 이전 디렉토리 한 수준입니다. 그래서 로그와 LS에 들어갈 경우, 대시, 알, 나는 점, 점을 볼 수 있습니다. 도트 CD, 점 이전 디렉토리로 날을 제공합니다. 그래. OK. 그래서 또 다른 매우 중요 rm filename 명령. 그래서 우리가가는 방향 제거하는 데 사용할 수 있습니다. 그리고 내가 실제로 다른하자 명령은 먼저. 그래서 MKDIR. MKDIR은 얼마나 당신이 할 수있는 디렉토리를 만들 수 있습니다. 그리고 임시 디렉토리를 만듭니다 그 임시 디렉토리로 이동합니다. 그리고 예상대로 비어 있습니다. 하지만 LS, 대시,은, 난 아직 점이있는 경우 점을 의미하며, 점, 점, 때문에 현재 디렉토리. 그리고, 점, 점을 의미 이전 디렉토리. 그리고 그와 상관없이 항상 존재합니다 당신이 들어가는 디렉토리 그리고 이것은 완전히 불필요 명령하지만, 터치. 이 때문에 난 그냥 그것을 사용하고 있습니다 파일을 쉽게 만들 수 있습니다. 그래서 C 단지입니다 터치 나 터치, 터치 라는 세 개의 파일을 생성하는 것, 완전히 비어있는 B 및 C. 그래서 나의 점은 사람들을 만드는 첫 번째 장소는 RM은 너무합니다 우리는 어떻게 제거 할 수 있습니다. 그래서 RM,. 그것은 제거, 물어 것 일반 빈 파일? 그리고 나는 네 말을합니다. 내가 확실히 알고있는 경우에 이렇게 내가 원하는 것을 할 필요없이 해당 파일을 삭제 하라는 메시지가 정기적으로 비어있는 파일을 제거?, 다음 RM, 대시, F가 될 것입니다 라고 플래그없이 제거를 강제로 심지어 나에게 메시지를, 오, 당신은 여러분은 파일을 삭제 하시겠습니까? 그래, 난 확신 해요. 그래서 RM, 대시, FB은 것 요청하지 않고 그것을 할. 그래서 좀 더 디렉토리를 만들어 보자. MKDIR, tmp2, CD, tmp2, 터치 B를 누릅니다. OK. 그래서 지금은 제거 할 디렉토리로 tmp2. 그래서 RM tmp2. 당신은 tmp2을 제거 할 수 없습니다, 그것은 디렉토리입니다. 그래서 여기에 문제는 RM은하지 않는다는 것입니다 즉시 디렉토리에서 작동합니다. 그것은 단지 같은 파일을 의미하는 것 비 디렉토리 파일. 그리고 우리는 무엇을 할 수 여기 RM, 대시, R입니다. 즉 재귀 적 의미, 어떤 수도 아직 당신에게 아무 의미가 없습니다. 하지만 당신은 재귀에 도착하면, 그것은 더 많은 것을 의미합니다. 그래서 RM, 대시, R, tmp2는 것입니다 재귀 적으로 그 디렉토리로 이동합니다. 그래서 디렉토리 tmp2에 내려? 그래, 그에 가자. 우리는 / tmp2를 제거 하시겠습니까? 예. 우리는 tmp2 / B를 제거 하시겠습니까? 예. 이제 우리는 제거 하시겠습니까 디렉토리 tmp2? 예. 그리고 현재 디렉토리 내부 모든 의는 제거되었습니다. 명령 rmdir을 기술적으로가 당신은 제거하는 데 사용할 수있는 디렉토리 만 만 작동 어쨌든 빈 디렉토리에. 그리고 볼,하자 그냥 다시 MKDIR, tmp2을한다. Tmp2은을 터치합니다. OK. 내가 dirtmp2을 제거하려고한다면, 그것은거야 디렉토리가 비어 있지,라고. 그래서 제거를 사용하지 거의 절대 어쨌든 dir 명령 때문에 RM, 대시, R 빈 디렉토리에서 작동합니다 비 빈 디렉토리. 그리고 또한, 내가하고 싶지 않은 경우 의 전 과정을 통해 이동 디렉토리로 하강하고 각각의 파일을 제거, RM, 대시, RF, tmp2. 그리고 지금은 사라 졌어요. 주의해야 할 것 에 대한 RM, 대시, RF입니다. 그리고 그것은 나를 심지어 입력 무서워, 때문에 만약 내가 실수 히트 입력하거나 뭔가. 그래서 RM, 대시, RF, 물결 것없이 저에게 메시지를, F는 메시지를 표시하지 않습니다 나, 자동으로 제거합니다 홈 디렉토리 전체와 그 모든 것을. 그래서 당신은이의 생각 할 수있는 어리석은 일. 그리고 물론, 그것은이다. 그러나에 의해 아주 쉽게 일어날 수있다 사고가 난 제거하고 싶어, 말, 경우 내 슬래시, 가상 호스트의 디렉토리입니다. 다만 빠른 입력에서, 실수로이 작업을 수행합니다. 즉, 둘 다 내 재귀 적으로 제거합니다 홈 디렉토리와 가상 호스트 디렉토리 이 특정 디렉토리에있는 그 단지 지금은 존재하지 발생합니다. 그러나 이것은 여전히​​ 제거합니다 홈 디렉토리 전체를. 적어도 F를 구비하지 않음으로써, 먼저 나 메시지를 표시합니다. 그리고, 오, 같은 것 아니, 그렇게하고 싶지 않아. 그러나 사람들은, 포함, 슬래시 날에하는 경향 항상 RF-ING의 습관. 난 그냥 RM은 할 수도 일반 파일, C, 난 그냥 RM, 대시, RF, C 경향이있다. 당신은 RF-ING있을 때 조심해. 스피커 4 : C의 기능은 무엇입니까? ROB : C 그 C 파일에 대해서 이야기하고있다 이 디렉토리에있는, 그 RM, C. 조셉 : 그리고 더 많은 위험, 당신이 사용하는 경우 스타, 그것은 모든 것을을 의미 디렉토리. 그래서 내가 일반적으로 수행하는 경향이 것은 내가 것입니다 디렉토리로 가서 내가 원하는 거기에 모든 파일을 제거합니다. 그래서 RM, 대시, RF, 스타. ROB : 네. RM, 대시, RF, 스타. 조셉 : 그리고 당신이하지 않은 경우주의 당신은 어떤 건지 디렉토리 - 나는 온도에 없었다, 그러나 나는 실수했다 내 홈 디렉토리에, 나는 모든 것을 제거합니다 홈 디렉토리에있는. 그리고 사실은 그 전에 수행 한 한 나는 당신이 전이나이 짓을했는지 생각 제이는 그 전에 일을하고있다. ROB : 실수로 삭제했습니다 - 그래서 조금만 그 명령을 무시합니다. 조셉 : 재미 없음. ROB : 그래서 슬래시 bin 디렉토리에 있습니다 이 거 이진 파일의 무리 그 소리 같은 익숙한 것들합니다. 음, 그 소리와 기본적으로 모든 이들의 내가 명령을 실행하고있어 일 라인이 슬래시 bin 디렉토리에 있습니다. 요셉 : LS처럼 여기에 있습니다. ROB : 그래서 LS는 슬래시 할 점 이 디렉토리를 나열합니다. 조셉 : Rm은이 디렉토리에 있습니다. ROB : 실수로 RM은있다, RF-에드 빈, 내가 할 수있는 모든 명령을 제거하는 아마도 이제까지 싶다. 어느 다음 난 그냥 다시 설치 그 시점에서 새로운 기기. 요셉 : 그래서 아주 조심해야 할 때 이 명령을 사용합니다. 청중 : [들리지? ROB : 예. 그것은 또한으로 얻을 수있는 나쁜 습관이다. 당신이주의하는 경우에, 지금이야 - 글쎄, 당신은 알 수 없지만 내 줌 기능은 어쩌면 수 있습니다. 그래서 나는 지금 루트 @ 어플라이언스 해요. 그래서 jharvard 우리가 원하는 사용자입니다 당신은 항상 사용합니다. 루트 권한이있는 사용자입니다 절대적으로 아무것도 할 수 있습니다. 내가 jharvard 해요 때, 알 나는 CD를 시도하는 경우 - 이 디렉토리는 무엇인가? 아, 뿌리는 좋은 예입니다. 그래서 CD, 루트. 사용 권한이 거부되었습니다. 때문에 우리는이 목록을 보면 - 다시, 당신은 필요가 없습니다 전적을 이해합니다. 그러나이 세 가지 대시 말 즉 다른 두지 마세요 이 디렉토리에 사용자. 그리고 디렉토리에 발생 루트 사용자가 소유. 그래서 내가 사실은 jharvard없이 루트가 아닌 하나에 허용 이 디렉토리는, 내가 걸 의미 권한이 거부 당할 것이다 때 그것으로 CD하려고합니다. 나는 루트입니다 때, 내가 사용 권한을이 포함 절대적으로 아무것도 수행 필수 파일을 삭제 가전​​ 및에 전체 일을 파괴한다. 그래서으로 얻을 수있는 나쁜 버릇 당신의 주위를 배회 루트로 운영 체제. 어쨌든 그것을 할. 질문? 그리고, 루트를 종료 jharvard로있을거야. OK. 관련성이 명령. 그래서 우리의 온도로 돌아 가지, MV 명령은 이동을 의미합니다. 당신은 이동할 수 있습니다. 이제 우리는 B를 호출 할 그래서 지금은 B라고. 아니면 우리는 이동할 나 하나의 디렉토리입니다. 이제이 디렉토리의 빈. 나는 나의 홈 디렉토리로 이동합니다 우리는 B가 여기에 있음을 볼 수 있기 때문에 홈 디렉토리에서 한 디렉토리 위로했다 b는 안으로 있었다 디렉토리 CP도 있습니다. 그래서 CP, 최고 섹션을 복사합니다 점, 텍스트입니다. 나는, 다음의 점, 텍스트를 호출 할 수 있습니다. 이제 우리는 모두 슈퍼 섹션이, 점, 텍스트, 그리고의, 점, 텍스트입니다. 또한이 디렉토리에서 작동합니다. 나는 하나의 파일을 에드에게 RF. 그래서 CP - 물론, 처음의이 CP, TMP, tmp2을 시도 할 수 있습니다. 그래서 디렉토리의 tmp를 생략. RM은 그래서 비슷한 기본 동작 디렉토리에서 작동하지 않는 것입니다. 그리고 또, RM은 유사한 기본 행동 - 음,이 일을 점점 디렉토리와, 대시-R은 거리에 있습니다. 그래서 재귀 적으로 임시 복사 tmp2에 디렉토리. 그리고 지금 우리는 TMP와 tmp2 모두가 그는 도움이되지 않기 때문에 TMP 처음에 비어 있었다. Tmp2. 이제 tmp2에 tmp에 복사 할 수 있습니다. 그리고 우리는 tmp2 또한 파일이 있는지 확인 때문에 디렉토리 그 안에 모든 것을 디렉토리를 복사했다. 그리고 그것은 어느 정도 도움이 될 수 있습니다 당신이 최선을 다하고 말한다면 문제에 대한 하나를 설정 - 또는 실제로, 나중에 문제 세트는 더 중요하기 때문에이 전체 무리가 될 것입니다 파일 및 관광. 그러나 당신은 분할을 위해, 원하는 두 번째, 당신은 모든 권리, 같은거야, 난 다른 무언가를 시도 할 것. 내가 내 전체 PSET1을 복사하자 PSET1 백업에 디렉토리 그래서 경우 내가 할 수있는 일들을 속이고 결국 다시 내 백업 디렉토리로 이동합니다. 더 적절한 방법이 있습니다 코드를 백업 버전 만 이것은 언제나 만들 수있는 빠른 방법입니다 확실히 당신은 무언가의 복사본이 당신은 수정할 대한 걸. 그래서 에코는 일회성 명령입니다 sillily 종류의 단지로 인쇄됩니다 명령 줄을 정확하게 당신은 에코 싶었다. 그래서 하이 에코. 우리는 그냥 인사 인쇄 할 수 있습니다. 세계 안녕하세요 에코. 우리는여보세요 세계를 인쇄합니다. 즉, 사용에 관해서 명령과 함께 시작합니다. 그리고 또, 당신이 완전히 기대하지 마라 아직이 문제를 이해하지만, 그것은이다 볼 수있는 뭔가. 그리고 당신은 예는 인터넷 검색을하는 경우 또는 당신은 당신이 원하는 실현 무엇인가, 그것은 도움이 될 수 있습니다. 그래서하자, 예를 들어, 그래서 LS, 대시, 난. 그래서 나는 여기 출력을 참조하십시오 LS의, 대시, 난. 그리고 OK, 내가 원하는, 말 파일에 그것을 저장합니다. 여기에이 모든 출력, 내가 원하는 별도의 파일에 넣어. 기호보다 그래서이 작은 큰 우리가 전화를 할 것입니다 것입니다. 우리는 리디렉션하고있는 파일로 출력. 그 때문에,의 파일 ㅋ ㅋ 부르 자 나는 항상 호출하는 경향이 무엇을. 그래서 지금 우리는 우리가 참조 여기 ㅋ ㅋ 파일. 내가 그것을 열 경우, 나는 그것의 볼 수 있습니다 명령을 정확하게 출력 난 그냥 실행되었는지. 마찬가지로, 당신은 할 수있다 - 이 파일에 출력이 있다면 파일에서 입력을 얻을 수있다. 명령은 무엇인가하는 I - 조셉 : 난 당신이 사용할 수 있다고 생각합니다 아마, 적은 이상. ROB :하지만 어떻게 그냥 덜 ㅋ ㅋ 어떻습니까? 모르겠어요. 이 시나리오에 오는 경우에, 같은 그것이 유용하다고하여 pset가있다. 요셉 : 당신은 에코에 파이프를 할 수 있습니다. 파이프를 볼 수있는 에코로 파일을. ROB : 그것은 파이프입니다. 조셉 : 죄송합니다. ROB : 좋습니다. 그래서이 파일에 출력합니다. 이것은 파일로부터 텍스트를 얻을이다 프로그램에 넘겨. 그리고 당신은 또한이 사람을 볼 수 있습니다. 그래서이 종류의 한 번에 모두를하고있다. 그리고 실제로, 나는 두 개의 새를 소개합니다 다만 그것을 사용할 수 있도록 명령. 역사는 단지입니다 편리한 명령입니다 의 목록을 인쇄하는 것 아무것도 내가 지금까지 명령 줄을 실행했습니다. 그래서 우리는 여기에 내가 가진 모든 것을 볼 이 전체 시간을 실행 한. LS 년대 많아요. 그리고 또 다른 유용한 명령은 그렙입니다 그것의 목적은 이상을 검색하는 것입니다 패턴을 찾고 텍스트, 잘, 당신이 무엇을 찾고 그것을 찾고 싶은. 그리고 여기에 편리한 사용은 말이며, 우리는 역사를 잡고 싶어요. 그리고 명령을보고 싶어 어디서 - 무엇을 찾기 위해 유용 하나? 조셉 : [들리지? ROB : 아니면 그냥 모두 살펴 보자 어떤 이유로, 감동. 그래서 이것은이 보일 것입니다. 그리고 당신은 완전히 필요가 없습니다 이해한다. 그러나 아이디어는 여기에, 역사주고있다 그것은 여기 한 동일한 출력 그것은 전체를 인쇄 어디 내가 겪은 모든 것을 역사. 우리는 그 다음을 전달하는 - 그래서 대신 스크린으로 인쇄, 우리는 해당를 전달하려는 을 찾고 명령 그렙 단어 터치의 모든 인스턴스. 그래서 이러한 조합을 사용 도구의 역사와 그렙, 나는, OK 볼 수 있습니다 여기에 모든 명령 I했습니다 지금까지의 실행하고 여기에 다소 일반적인 하나입니다. 우리는 아래에있어. 그리고 그것은 또한 나에게 명령을주고 난 그냥했다가 실행 거기에 단어를 터치. 그러나 파이프는 매우 유용한 것입니다 여러 프로그램을 결합. 그리고 실제로,하자에 대한 바로 가기입니다 나 출력 ㅋ 파일에 기록하고, 나 파일 어쩌구를 사용하여 grep을하자 내가 이상보고 싶지 것과. 그래서 관은 바로 가기입니다 이 두 명령에 대한. 예. 스피커 4 : [들리지? ROB : 예. 무엇입니다 - 오. 의 테스트 할 수 있습니다. 그래서 고양이, 개, 물고기. 그래서 grep을하고 싶습니다. 대쉬, R, 다시이 될 것입니다 재귀, 그래서 아래로 내려 할 모든 디렉토리. 재귀 적으로 모든 grep으로합니다 - 나 일시적으로하자 그런데이 중. 저를 무시합니다. OK. 그래서 일시적으로 grep으로 할 단어 물고기의 모든 인스턴스. 그리고 여기에 내가 뭘를 grep입니다 반복적으로 단어 물고기. 그리고 별이 온통 의미 이 디렉토리에있는 파일. 그리고 그것은 나에게 거부 권한을 준 그것은 그것을 판독하는 것이 허용되지 않기 때문에 특정 파일. 그러나 파일, 테스트에서 물고기를 발견했다. 또한 구체적으로, 말, I 만 수 에서 파일 ㅋ ㅋ에보고 싶어 그것은 아무것도 찾을 수 없습니다되는 경우. 난 단지 파일, 시험에서보고 싶어. 그것은 물고기를 찾을 수 있습니다. 즉, 꽤 유용한 명령입니다 일반적으로 알고. grep으로 몇 가지 대안이있다 더 있어야되는 친절한 프로그래머,하지만 경향 아직 그렙에 다시 떨어질 수 있습니다. 질문? OK. 다른 명령이 있습니까? 오. 나는 항상 그냥 일회성 하나 재미가 핑 모터되어있을 찾을 수 있습니다. 나는이 사랑에있어 그래서 통지 전체 화면 모드, I은 같은 최고 없다 도구 모음 또는 아무것도. 그래서 칼은 나에게 좋은 조금을 제공합니다 바로 달력 지금 차단, 나는 가정한다. 그러나 좋은 작은 명령. 요셉 : 그것은 [청취]입니다. 당신이 할 수있는 다른 명령 볼은 그 소리를 포함합니다. 우리는 그들에 갈거야 자세한 내용 나중에. 하지만 연습 한 경우 PSET, 당신은해야한다 이들에 대해 잘 알고. ROB : 좋습니다. 명령 줄 것들에 대한 질문? 괜찮아요. 그래서 몇 가지로 이동하자 C 관련 물건. 변수 수학. OK. 우리는 스크래치에서 수학을했다, 그래서처럼 당신은 또한 C에서 수학을 사용할 수 있습니다 우리는 전적으로 그에게 도착하기 전에 그래서 변수. 기억하십시오 당신은 선언 할 때마다 INT X 또는 플로트 y를, 당신 같은 변수 그 이전에 입력주고있다 변수 이름입니다. 그래서 우리가 본 유형은 지금까지 INT입니다 플로트, 더블, 오래 오래, 어느 I 실제로 우리가했는지 모르겠네 지금까지가 본. 다른 사람이있다. 우리는 문자를 확인했습니다. 이처럼되는 짧은 있습니다 반대의 오래 오래 그것의 위치를 정수보다 작은. 우리는 또한 문자열을 볼 수있다. 그래서 문자열에 대한 특별하다? 이유는 말할 것 꽤 INT 마음에 드 셨나요? 스피커 4 : 정말 존재하지 않습니다. ROB : 네. 우리는 문자열이 그래서 유일한 이유 당신이 할 때 때문에 해시, cs50.h. 포함 그리고 우리는 나중에이의 예를 볼 수 있습니다 - 아, 그 잘 처리하지 않습니다 - cs50.h 뭔가를하고있는 곳 형의 라인을 따라 DEF, 문자 스타, 문자열입니다. 그리고 그것은 우리가도하지 않는 것이 말하는 것 문자 스타가 아직 뭔지 알아. 그러나 이것은 우리가 원하는 문자열을 말하고있다. 당신은, 스트링을 사용했던 어떤 장소 문자 스타를 사용하고 있습니다, 실제로 입력되는 것을 C 언어로 존재합니다. 그러나 우리는 그에게 얻을 것이다. 아, 그리고 그것은 바로 돌아갑니다. 깔끔한. 부울와 그래서 같은 일 여기서 진실과 거짓. 정말 C의 내장 형식이 아닌 대신, 그냥,이 있는가의 값 제로? 그런 다음 우리는 단지 생각합니다 그것은 거짓입니다. 이 값을 가지고 있는가 - 물론,이 모든이 있는가 0이 아닌 값? 그 다음 우리는 그것이 사실이라고 생각합니다. 그래서 한, 두 가지에 해당하는 사실이다 아닌 것도 사실이다. 그래서 사람들은 사람입니다. 변수 선언에 대한 질문과 변수 유형 및 모든? 그래. 스피커 4 : 오래 오래 들어, 책에서, 그것은 오래 오래 INT로했다. 그러나 다만 오래 오래 작동합니까? ROB : 그래서 이러한 유형 수정. 그래서 INT X. 그래서 우리는 또한 서명 int x를 말할 수 있습니다. 우리는 짧은 INT의 X 말할 수 있습니다. 우리는 INT X 오래 오래 말할 수 있습니다. 하지만 그 물건의 거의 모든 I 방금 말한, 서명 int, 짧은 중간, INT 오래 오래, 당신은 제거 할 수있다 INT하고 그냥 가정합니다 당신은 INT 의미가있다. 그냥 의미 그래서 부호 X, - 당신이 알고있는 방법을 일반적으로 INT와, 당신은 X가 음의 3에 해당 말을 할 수 있겠습니까? 서명 int로, 당신은 할 수 없습니다. 조셉 : 그리고 또, 카메라, 문제는 차이 무엇이었다 오래 오래 INT 사이 그냥 오래 오래? ROB : 네. 그래서 나는 거의 결코 것 오래 오래 INT 물품. 나는 오래 오래 쓸 것입니다. 조셉 : 질문? ROB : OK. 그 때문에 어리석은 알림은 얼마나 우리는 변수를 선언하고 초기화 변수와 또 다른 선언 변수 초기화 그것은 한 번에 모두. 따라서 변수의 선언과 초기화 변수가 없습니다 하지만 같은 줄에있을 수 있습니다. 그래서 우리는 표준 수학 연산자를 당신은을 사용하고 있는지 - 더하기, 빼기, 나누기, 배. 우리가 볼 수 모듈도있다. 이상에서,이 없습니다 C, 내장 전원 지수 캐럿 연산자. 음, 캐럿 연산자가있다, 하지만 힘이 아니다. 요셉 :하지만 지수 아니에요, 예. 롭 : 캐럿을 사용하지 마십시오 그 의미 있다고 가정합니다 제곱 또는 무엇이든있다. 그래서 몇 가지 유지하기 부문에 대한 마음을. 나는 서 있습니다. 그래서 초기화 응답 선언했다. 그래서 우리는 플로트 답을 말을하는지 10로 나눈 1 같습니다. 소수점 이하 두 자리로 답을 인쇄합니다. 그리고 이것은 물건의 종류입니다 I 파악의 printf를 인간 것이라고 , 점, 2 층 %를 도대체 무엇을 의미 하는가? 그리고 그냥 잘, 의미 0.2을 무시. 그리고 %, F는 우리가 사용하는 것입니다 떠 인쇄합니다. 0.2 말하고, 인쇄하는 것이 소수점 이하 두 자리에 떠. 그래서이 프로그램은 버그가 있습니다, 당신은 수도 일부 전에 보았 이전의 CS 과정. 하지만 버그는 무엇입니까? 스피커 5 : 제로. ROB : 네. 우리가 말할 때, 대답은 같다 1은 10로 나눈, 우리는 원하는 0.1로 대답합니다. 그러나 한 10으로 나눈 1이며 정수, 10의 정수이다. 그래서 우리가 나눈 정수를 수행 할 때 정수, 우리는 다시받을거야 정수. 그래서 10로 나눈 1은 0.1입니다. 그것은 우리에게 정수를 제공 할 필요가 있기 때문에, 그냥 버릴 것 그 소수점 말할 그 답은 0입니다. 그래서 우리는 여기에 대답 인쇄 할 때 그것은 0.00를 인쇄하는 것입니다. 조셉 : 그리고 그냥 참고로, 그것은 실제로 후 무엇을 버리고 소수점. 대신했다 그렇다면 6 ~ 10으로 나누어, 당신은 당신을 줄 것이라고 생각하는 것 0.6 다음은 1로 반올림합니다. 그것은 입력 할 때 실제로 어떤 일이 발생 태스크는 그것이 무엇 방울이다 소수점. 그래서 0.6은 0이 될 않습니다. ROB : 네. 그리고 우리는 그것을 위해 잘라 내기 말할 수 있습니다. 그래서 당신은 int로 캐스팅 할 때마다, 소수점 이하는 무시됩니다. 그래서에 대한 수정 - 거기 실제로 두. 그리고, 그 두 번째 할거야 때문에 이 사람은 훨씬 더 쉽게 수정입니다. 그래서 하나의 수정 수레를 사용합니다 부문. 정말, 당신은 단지에있다 그 중 하나의 플로트를 확인합니다. 그러나 다소 명확 그냥 둘 수레 확인합니다. 그래서 1.0는 10.0로 나눈 두 개의 수레를 분할합니다. 그래서 대답은 끝나게됩니다 플로트, 그래서 당신은 것입니다 제대로 여기에 0.10를 인쇄 할 수 있습니다. 잘 작동하지 않습니다 뭔가 에 대한 즉, 음, 물론, 그것은 쉽게 1 변환 할 정도로 그것은 1.0함으로써 부동. 하지만 만약 대신에 우리는 두 개의 정수를했다 INT와 같은 X는 1, INT Y와 동일 10에 해당하고 우리는 원 x는 y로 나눈 셨나요? 그래서 그냥 쉽지 않습니다 X.0 또는 뭔가. 그래서에 수정 캐스팅입니다. 그래서 캐스팅은 C 변환하는의 방법입니다 또 하나의 변수 유형에서. 따라서 여기에서, 1은 정수이다. 그리고 앞이 Float를 넣어 그것은, 우리는 플로트 1 캐스팅. 그리고이 변환됩니다 1.0 1. 그리고이 변환됩니다 10.0 10. 그리고 상황이 유사하게 동작합니다 우리가 보여준 이전 버전 여기서, 예상대로, 우리는 0.10를 얻을 수 그리고 그 인쇄 해드립니다. 그리고 우리는이 작업을 수행 할 수 있습니다 도 변수. 그래서 우리는 말 플로트 X 수 플로트 Y로 나눈. 조셉 : 질문? ROB : 그래서 그냥 평범한 수학처럼, 우리는 연산자 우선 순위가있다. 그래서 수학 클래스에서, 당신은 더 많은 가능성이있어 작업의 순서를 호출합니다. 여기, 공식 용어입니다 연산자 우선 순위. 그러나 연산자 우선 순위, 또는 대부분의 연산자는 사용자가 예상하는대로이다. 그러니 수학처럼 2 시간 10입니다 더 밀접 이상 분류 할 것 이 열은 2로 나눈 후 2. 작업 순서, 그것은 2를 할 것 배 (10), (10)는 2로 나눈 값과 그것은 20 플러스 5 플러스 2를 할 수 있습니다. 따라서 예상대로, 그리고 당신이 사용할 수 있습니다 그룹 식에 괄호. 대괄호를 사용할 수 없습니다 식을 그룹화. 그래? 스피커 5 : 수 당신이 실제로 그냥 1 초 이동? 당신은 문자열로 int를 캐스팅 할 수 있습니까? ROB : 그래서 C에서, 당신은 아무것도를 변환 할 수 있습니다 당신은 당신이 원하는 무엇이든 할. 즉, 그것의 의미하지 않는다 할 수있는 좋은 일이. 그래서 당신은에 int를 캐스팅 할 때 문자열, 즉 의미 - 우리는이에 얻을 것이다 훨씬 더 철저 - 조셉 : 훨씬 나중에. ROB : 나는 더 이상 말하고 싶지 않았다, 그래서 난 내 문장을 변경했습니다. 우리는 훨씬 더 철저하게 들어갈 수 있습니다 나중에 정말 어디 당신이있을 때 문자열 변수 - 그래서 문자열을 임의로 할 수 있습니다 긴, 오른쪽? 그리고 우리는 INT가 있음을 말씀 드렸어요 오래 오래 4 바이트와 8 개입니다 바이트 플로트는 4 바이트입니다. 그래서 문자열, 그냥 INT처럼 만있다 그 바이트의 특정 번호. 그리고 그 4 바이트가 될 것입니다. 그러나 문자열을 꽤 할 수 있습니다 임의의 길이, 오른쪽? 그래서 안녕하세요 이미 그 10의 경우 문자 또는 무엇이든, 그것은 이미 4 바이트 이상이 될 것 끈에 맞게 할 수 있습니다. 그래서 문자열이 실제로 작동하는 방식 때문이다 그들은 어디 메모리에 해당 문자열이다 유지되고있다. 그리고 여기, 내가 말할 문자열 X 입니다 X의 내부,여보세요 세계와 동일 그냥 아,여보세요 세계가 저장되는, 말 메모리에 특정 장소에서. 그래서 우리는의 정수를 캐스팅해야 할 경우 문자열, 우리는 해석하려는 메모리의 어떤 임의의 부분 문자열로. 그리고 거의 항상 일을 나누기. 조셉 : 그러나 만약 그 혼란 당신, 우리는 그것을 커버 할 수 있습니다 나중에 깊이 더. ROB : 네. 당신이가는 곳입니다 포인터로 얻을 수 있습니다. 그리고 그 큰 덩어리입니다 이 과정의 2 주. 스피커 6 : 그것은 개체처럼 작동합니까 다른 언어로 또는 정말? ROB : 그래서 다른 언어, 객체에 포인터를 사용하여 표현 될 것이다. 그래도 같은 일이 아니다. 어떤 생각을? 조셉 : 호 아무 생각 없습니다. ROB : OK. 요셉 : 다음. ROB : 그냥 그와 함께 이동합니다. 괜찮아요. 그래서 모듈. 우리가 플러스가 마이너스 같은 나누어 곱합니다. 그래서 모듈은 수도입니다 전에 본 적이 없습니다. 그리고 그냥주는 말한다 나에 나머지. 그래서 55 % 10. 분할 된 55 일의 나머지 (10)에 의해 5 일 것입니다. 그래서 55 % (10)는 5입니다. 3 % 5 3 것입니다. 8 % 8은 0이됩니다. 16 % (15)는 1이됩니다. 요셉이에주의 할 것, 도, 그것은 예상대로 작동하지 않을 수 있습니다 당신은 음수를 사용하는 경우. 그래서 마이너스 5 % 4, 어떤 사람들 즉 생각하는 것 - 당신은 부정적인 무엇을 생각 5 % 4는 것입니까? 스피커 5 : 한. 요셉 : 그래서 어떤 사람들은, 하나의 말 어떤 사람들은 부정적인 하나를 말한다. 그러나 - ROB : 난이없는 것 그 중 하나를 말했다. 조셉 : 두, 죄송합니다. 어떤 사람들은 말한다 - ROB : 세. 조셉 : 세? ROB : 음성 - 음의 다섯 - 무엇을했다 - 조셉 : 세, 세, 세. 미안 해요. 때문에 당신이했을 때, 일반적으로 모듈로 다른 곳에서 볼 수, 일반적 의미 오른쪽 양수를 반환? ROB : 그래서 우리는 수학에서 말할 때, 10 %의, 그들은 당신을주고 싶어하는 경향이 - 우리는 10 모드 (mod) 경우에, 우리는에 기대 0과 9 사이의 숫자를 얻을. 여기에서 그것은 사실이 아니다 당신 음수를 반환 받게됩니다. 요셉 : 그래서 마이너스 5 % 4 1 음수가 될 것입니다. ROB : 그러나 당신이 모드-ING 걸 드문 로 시작하는 음수. 이 건너 뛰기. 조셉 : 네. ROB : MEH. OK. 에 대해 지적하는 그래서 마지막으로 하나 수레, 그것은 위험한 행동의입니다 그러나 수레는 정확한 수 없습니다 표현입니다. 그래서 다시 바이트로가는 기억 INT는 항상 4 바이트하고 있음 플로트는 항상 4 바이트이다. 그래서 루카스의 예는 아주 좋은 것입니다. 그래서 3으로 나눈 1 생각합니다. 그래서 0.3333333. I는 32 비트, 어떻게 할 수있는 경우 정확히 0.33333를 저장? 그리고 어쩌면, 어떤 이유로, 당신이 말하는, 좋아요, 그렇다면 가정 해 봅시다 이 특정 1011001,하자 그 단지는 0.333333해야 말한다. 글쎄, 당신은 한정된 수의이 그 비트는, 그래서 그것은 불가능 모든 단일 부동 소수점을 나타냅니다 다만 32 비트 주어진 값. 음, 어떤 표현하는 것은 불가능하다 부동 소수점 값은 무한 제공 - 또한, 비트의 한정된 수 없습니다. 우리가 사용하는 그래서 여기에 문제는, 물론입니다 소수점 이하 두 자리로 인쇄하려면 우리는 제대로 대답 0.10을 얻을 않았다. 하지만 후드 아래에, 정말이야 에 가능한 한 가깝게 저장되는 그 조각 같은 0.10 나타낼 수 있습니다. 이 다음 슬라이드에인가? 아니면 아닌가요? 조셉 : 그래, 그입니다. ROB : Blegh, blegh. 조셉 : 네, 당신은 할 수 단지 약간의 메모를 당기십시오. ROB : 그냥 확대거야 그의 마지막에있다. 맙소사, 그 들리지]입니다. 그래서 그 번호. 즉 인쇄 될 것입니다 우리는 그 프로그램을 실행합니다. 그리고 정말 큰 문제가 아니다주의 우리는 같은 걱정을하는 경우 2-3 소수점. 같은 우리는 원래 0.10 인쇄 우리는 아무 잘못 보았다 이유입니다. 그러나 우리는 들어가기 시작하면 정확한, 정확한 수는 있다고 대표, 우리는 그것을 할 수없는 경우를 참조하십시오 정확히 0.1을 나타냅니다. 그리고 여기에 문제의 부분은 같은 것입니다 좋아, 그 정도면 괜찮 습니다만, 첫 번째, 우리가 할 시도하는 경우, 대답은 0.1 등호? true 또는 false를 반환 예정인가요? 그리고 그것은 말할 어렵다. 나는 실제로 true를 반환 것 같아요. 윌 최초로 - 모르겠어요. 당신이 취급하기 시작하면 답은 부동 소수점 값으로, 당신 꽤 많은 평등을 사용하지 않아야합니다 이 부정확성 때문이다. 그리고 당신도 알다시피, 그것은 백입니다 소수점이 부동 소수점 수 없습니다 제대로 처리 할 수​​ 있습니다. 그리고 평등은 실패도 하지만 수 - 당신이 된 경우 정확한 수를 이용하여, 숫자해야 정확히 일치하고있다. 이 같은 50의 과정의 이러한 부동을 사용하여 계산 소수점 값, 오류가 구축 할 수 있습니다 위로 위로 위로하고, 물건은 오해. 조셉 : 정말이 있었다 이런 일이 있었는지의 유명한 예입니다. NASA의 엔지니어들은이를 얻었다처럼 폭발하는 문제, 원인이 로켓 가 시작되었습니다 한 후 공기. 그리고 그 같은 문제를 많이. 그래서 그래. 스피커 6 : 당신이 0.3 F를 말할 때, 그 나머지 부분을 잘라합니까? 아니면 아래로 반올림 또는입니까? ROB : 그것은 주위의 printf 것인가? 요셉 : 나는 printf와는 잘라 생각합니다. ROB : OK. 그래서 우리는 마찬가지로 반대에 갈 수 있습니다 이 곳의 방향으로,이 경우, 이 나타낼 수에서 가장 가까운 0.1이 번호로했습니다. 그것은 할 수있을 가장 가까운 대표 0.2 반대이다 방향, 0.199999996356 또는 뭔가. 우리는 그 방향으로 갔다 그래서 경우 일이, 다음의 printf 0.3 f를 반환 1.99 대신 2.00. 조셉 : 그리고 아니에요 완전히 그에 확인합니다. 당신은 작은, 조금을 작성 할 수 있습니다 이 프로그램은 단지 그것을 확인합니다. ROB :하지만, 무엇을 우리가 확신하는 것은 즉 당신은 해당 캐스팅을 시도하는 경우 INT 및 int로 캐스팅 예정 이 경우, 소수점을 절단하게 당신은 1.9999999를 캐스팅해야 할 int로, 당신은 1 개를 얻을 수 있습니다. 그리고 당신은 일반적으로 사용한다 수학 라이브러리 라운드 기능. 질문? OK. 요셉 : 그래서 조건에 이동 부울 식입니다. 그래서 당신은 전에 이러한 보았다. 실제로, 내가 반드시 내 만들자 컴퓨터가 바로 여기 형식입니다. 공간. 죄송합니다, 우리는 처리해야 할 것입니다 가장자리에서 컷​​오프 조금. 하지만 그래, 너희들은 보았다 이 전에 스크래치에서. 그래서 여기에이 권리는 표현이다 에서 사용되는 조건문. 그래서 제로 의지보다 더 큰 응답 참 또는 거짓을 말한다. 그리고이 정말 중요하기 때문에 그들은 우리가 소개 할 수 있도록 우리의 코드에 논리. 그래서 예를 들어,이 프로그램은 사용자에게 요청 스크래치로 작성 정수에 대한 여부를 알려줍니다 그들이 당신에게 준 정수했다 양수 또는 음수. 그리고 보려면 여기 변환입니다 먼저, 문을 인쇄 나에게 정수를 제공합니다. 그리고 당신은 정수를 부탁드립니다. 그리고 당신은에 조건부 논리를 사용 여기를 확인할지 여부를 해당 번호 제로 또는 못하는 것보다 실제로 더 컸다. 그래서 여기에 우리는 부울 식을 If 문 조건의 내부. 질문이 있습니까? 그것에 대해 질문이 있습니까? OK. 그러니보다 더있어 물론,보다 크다. 당신은 부울 식을 구성 할 수 있습니다 물건의 종류의 가장을 사용하면 수학으로 생각합니다. 그래서보다 큰. 즉,보다 작아야합니다. 미안 해요. 그리고 간격. ROB : 하나님은 금지 당신은 그것을 둡니다. 조셉 : 좋아. 이상, 미만,보다 너무 크 이상, 또는 그 이하 이상, 또는 동일. 우리는 확인하기 위해 이중 등호를 사용 평등, 하나의 수단에 해당하기 때문에 할당, 오른쪽? 예. 그리고 우리는 또한으로 동일하지 않습니다 수 있습니다 느낌표를 사용하여, 동일합니다. 이 느낌표 기호 수 또한 확장 될 수 있도록 당신이 원하는 경우 부울 모든 종류의 오늘 표현은, 당신은 그렇게 할 수 있습니다. 그래서이 참으로 평가됩니다 대답은 적은 경우에만 보다 크거나 0이. 질문 있는가? OK. 그래서 당신은 또한 다음을 결합 할 수 있습니다 논리와와를 사용하여 표현 논리적 또는. 그래서 이것은 단지와의 상징이다 어떤 이동, 7해야합니다. 그리고 이것은이다, 파이프 상징 소문자 L. 그것은 하나하지 그것은 바로 입력 키 위에 있습니다. 그래서 상징하는이 두 가지를 사용 논리와 논리 OR. 따라서이 경우에만 true를 반환하는 경우 답변 1, 2, 3 또는 4이다. 그리고이 경우에만 true를 반환하는 경우 답변 어느 한쪽에 그 이상입니다. 그래서, 하나, 둘, 셋, 또는 네 아니다. 그리고 당신이 사용하는 방법과 그 표현 - ROB : 또는 0 또는 다섯. 조셉 : 0 또는 다섯. 미안 해요. 그래, 그래, 그래. OK. 그리고 지금 여기에, 같은 방식으로 당신에게 그 표현을 사용하는 것이 더 작은 만약 조건의 표현 측 문, 당신은 또한 그것에게 사용하는 것이 단지의 안쪽에 넣어 같은 방법으로 If 문 괄호. 그래서이 printf와는 발사됩니다 답변 1, 2, 3 또는 4이다. 결합에 대한 질문 식? 따라서 다른 조건이있다 우리는 만약에 / 그 밖의 전화 구축합니다. 그러니까 기본적으로, 이것은 지금하면 OK 의미 내가 확인하고 싶어서 일이 아니었다 사실, 그 밖의으로 이동 다른 작업을 수행 할 수 있습니다. 그래서이 특별한 경우는 요청 정수에 대한 사용자. 정수는 0보다 큰? 예? 그럼 그들은 포착 양수. 그렇지 않은 경우, 그것은이 있어야합니다 음수 또는 0이었다. 그래서 당신은 음수를 포착 또는이 경우에는 0 점. 예. 또는 0. 그리고 우리는 또한, 만약 / 다른 곳에서 할 일이 경우와 그렇지. 그래서이 부분이 시퀀스를 실행할 수 있습니다 일이 첫 번째 사람이 실패 할 경우에만 가능합니다. 그래서이 경우에, 지금 우리가하는거야 당신은 영을 선택 마지막. 그들은 양의 고른되지도 어느 쪽도이 경우 음수, 그리고 그들이해야 제로를 잡혔습니다. 그래서 저 아래로 간다 이 같은 체인. 어떻게 그렇게 예 경우는 다릅니다 - 만약 / 그렇지는 다른 IFS는 단지 순서. 그리고 이것은 일반적인 질문입니다 당신이 같이 얻는 경우에 사람들은 잘됩니다 질문 95 CS50에, 어떤 것이 이 프로그램은 당신에게? 스피커 5 : 당신은 A.을 가지고 조셉 : 예. 당신은 하나 하나있어 바로 그 중 하나. 당신은, 당신은 B를 가지고,있어 바로, C 및 D있어? 그래서이 모든 평가받을 위해. 95이 90보다 큰 동안 그래서, 그것은이다 (80)보다도 더 큰, 그것은 또한의 70보다 크면, 그것은의 정보 또한 60보다 큰. 그래서 당신은 그 등급을 모두 얻었다. 그리고 당신이하고자 가정 단지 A. 원하는 그 문제를 해결하는 방법은 교체하는 것입니다 그 밖의 / IF의를 가진 사람. 이 시나리오에서는, 95가 있음을보고 90보다 큰, 그리고, 그것은 수행 나머지를 평가하지 문. 그것에 대해 질문? 따라서 다른 조건 종류의가있다 우리가 여기에 구조되는 우리 스위치 문을 호출합니다. 그래서 이것은 당신이 기본적으로 확인할 수 있습니다 무엇을 넣어 숫자의 값 switch 문에 있습니다. 이 시나리오에서, 우리는 바꿨어 N 인 경우 N에, 우리는, 오, 말을하는지 하나, 그 문을 인쇄 할 수 있습니다. 그리고 종료를 의미하는 휴식 스위치 문 밖으로. 그것은 하나가 아니었다면, 다음, 음, 그냥 결국 그 모든 경우를 확인합니다. 이 1 종 또는 2 종의 경우 그리고 그것은 확인 셋, 그리고 그에 따라 인쇄한다. 어떤이 기본 키워드 아래로 여기 그들이 어떤를 입력하지 않은 경우 방법입니다 그 중, 다음 잘못된 말한다. 그래서 나는 N을 요구하고 말을하자 사용자는 나에게 네 가지를 제공합니다. 음, 이런 경우 전혀 일치하지 않습니다, 그래서에 무엇이 출력됩니다 기본 섹션. 네, 질문? 스피커 5 : 당신은 부울을 사용할 수 식 대신 하나, 둘, 또는 세? 요셉 : 그래서 질문은 당신이 사용할 수 있습니다 대신 하나의 부울 식, 두, 세? 그리고 C에, 나는 당신에게 생각 그렇게 할 수 없습니다. 그러나 다른 언어로, 어떤 당신이 수도 끝에 발생할 당신이 할 수있는 자바 스크립트와 같은 학기. 그럼, 먼저 계산해야 할 것입니다 그 값은에 사용 문을 전환합니다. 그래? ROB : 스위치의 혜택 그래서 일부 당신이 이런 짓을하면 문은 생각한다 만약 / 그렇지, 그래서으로 n이 동일한 경우와 같은 하나 또는 무엇이든 동일합니다. 다른 / n이 같으면 두 가지, 어떤 같습니다. 다른 / n이 같으면 세 같습니다. 그래서 프로그램이 실행됩니다 방법은있다 순차적으로 그 목록을 실망 갈 것 그리고, 확인을 n은? 아니. N 두 가지인가? 아니. N 세인가? 그래. 이 작업을 수행합니다. 스위치 문을 가진 반면, 그건 그것이로 컴파일 실제로 수 정말 빨라요. 그리고 즉시 스위치, 그것을 말한대로 모든 권리, n은 내가 두 가지입니다 말한다 즉시 위치로 이동 예정 나는 실행을 시작할 예정입니다. 나는 먼저 확인하지 않을 것이다, N 한, 두 n은 무엇입니까? 그것은 바로 일을 시작할 수 있습니다 그것은 어떻게해야 무슨. 그리고 그 때문에, 그것은 할 수 없습니다 부울 조건을. 아니면 그것을해야 할 것입니다 연속 같은, 모든 권리는, n은 0보다 큰? 다른 10 또는 무엇이든 n보다 크다. 조셉 :이 경우, 당신은 사용 경우 / 그렇지, 만약에 다음 스위치는 것 약 3 번 실행 만약 / 그렇지, 만약보다 더 빨리. 우리는에 스위치를 구성 할 수 있습니다 우리는 중단하지 않는 방법 각각의 경우에 후. 따라서이 경우는 분할 해요 우리는 하나에 선택하고 번호 두 개의 높은 수없는 존재와 세 높은 숫자 인. 따라서이 경우, N은 그것이 하나 또는 2 개 경우에 충돌 한 후 그 것이다 것 를 통해 가을 때문에 더 휴식이 없습니다. 그리고 여기에 종료됩니다. 우리가 하나를 선택한다면, 그것은 printf의 작업을 수행합니다 다음 정도의 하나도 깰 이 실행됩니다. 물론, 그들은 세에 입력하면 또는 뭔가 다른, 그것은 이동합니다 그와하지가 이동하고, 대신 실행됩니다 라인에 대응. 그것에 대해 질문이 있습니까? 예? 스피커 4 : 당신은 오류가 발생습니까 만약에 당신 경우 한 후 휴식을 가지고 있지만, 이 수행하는 일을하지 않았다? 요셉 : 그래서 질문은 당신이 얻을 것이다합니다 오류가 후 휴식이있는 경우 하나를 구분하지만 아무 상관이 없다? 그리고 그 대답은 no입니다. 당신은 실제로 오류가 발생하지 않습니다. 흠 mm, 그래. 여기에 따라서 같은 종류의 작은 변화, 여기에서 printf 넣어거야. 으악. 그래서이 경우 인쇄 할 것 I 입력으로 하나를 넣어? 그래. 그것은하지 않았다 당신을 말할 것 두 배 높은 숫자, 오른쪽? 그것은 그 첫 번째 경우 충돌 때문에, 그것은 손상되지, 그것은 떨어질 것 두 번째 경우에 이르기까지. 그것에 대해 질문? ROB : 당신은 다른 질문이 있었나요? 조셉 : OK, 냉각. 괜찮아요. 그래서 우리는 전화를 다른 무언가가있다 기본적으로 삼항 연산자 일에 대한 대체 구문 만약 다음 그렇지. 그리고 그것은 당신이 한 줄에 모든 작업을 수행 할 수 있습니다. 이 특정 프로그램에 따라서 나는 N의 사용자를 부탁 해요. n이 100보다 큰 경우, 나는 말 그들, 그들은 높은 숫자를 골랐다. 또 나는 그들에게 그들이 낮은 숫자를 골랐다. 그래서 우리는이 아주 긴 구문을 사용할 수 있습니다, n이 경우 문자열, S, 다음 검사 100보다 큰 및 할당 그에 따라. 그러나 우리는이 훨씬 더 간결하게 만들 수 있습니다 이 삼항 연산자 구문을 사용하여 질문을 포함하는 마크와 콜론. 그래서 물음표는 본질적으로 바로 질문을? ROB : 아마도 그 확대합니다. 조셉 : 예. 좋은 점. 그래서이 삼항 연산자입니다. 먼저 질문을, 100 n보다 크다? 이 경우, I는 제 실행할 콜론 앞 부분. 그렇지 않은 경우, 나는 실행 콜론 뒤의 두 번째 부분. 그렇다면, n은 100보다 크다 다음은 고 수정 해 둔다 해당 문자열의에. n이 100 미만이면 낮은 집어 다음 문자열들로 그 넣습니다. 그래서이 큰 덩어리를 응축한다 그냥 한 줄에 아래로. 스피커 5 : 그 인기인가? 조셉 : 예, 그것은을위한 매우 인기가있다 당신이 원하는 본질적으로 가지 할당에 기반 않는다 조건의 일종. 이 경우, 우리는 노력했다 문자열의 값을 할당합니다. 너무 아니다 - 내가 정말 선호하지 않는 것 같아요 그것은 다른 경우. 그러나 그것은 특히 유용 이 할당. ROB : 그것은 매우 일반적인 패턴이다 당신은 몇 가지 변수가 어디에 뭔가 설정하면 당신은 말할거야 하나의 값이 변수는, 다른 설정 다른 값이 변수. 그리고 그 시나리오 여기서 삼진을 사용합니다. 조셉 : 그리고 당신은 절약하고 많이 줄, 오른쪽? 그리고 그것은 단지 틀림없이 코드를 만든다 조금 더 읽을. 네, 질문? 스피커 6 : 삼원를 들어, 당신은 갈 수있다 문자열의 등호의 물음표? 그리고 당신은, 말하자면,이 수 다섯 가지 옵션을 제공합니다. 과에 따라 어떤 N의 수 , 당신은 그 중 하나를 선택이 되었나요? 요셉 : 그래서,이 질문이 있습니다 당신이 문자열을 할 수있는 구문의 종류 의는 N에 해당하고 두 개 이상의이 그 물음표 후 옵션? 그리고 간단한 대답은,이 아니에요입니다 할 수있는 정말 좋은 방법이 아니라면 당신은 둥지 여러 삼원하려는 서로의 내부 운영. 당신은 100보다 큰 n 같이 할 수 물음표 다음 다른 삼항 연산자, N (50)보다 큰, 물음표, 둥지 그런 식으로. 그러나이 시나리오에서, 당신의 코드는 일종의 읽을 수 및 지저분한지고 그리고 그것은 단지로 이동하는 것이 좋습니다 수 있습니다 그 시점에서 만약 / Else 문. ROB : 그리고 또한, 같은 보조 노트, PHP 잘못 원계를 구현 연산자 등이 중첩 된 ternaries 그들이 정상적으로도 작동하지 않습니다. 조셉 : 네. 그래서, 약간의 혼란을 가져옵니다 당신은 갈 특히 다른 언어로. ROB : 그것은 충분히 혼란하다는 사실을 언어는 그것에 대해 잘못입니다. 요셉 : 그래서 사실은, 명확하게, 모두가 알고있는 무엇을 그 %의 여기합니까? 그것에 대해 질문? 제 생각 엔 그냥 카메라, %의 기본적으로 우리가 자리를 넣을 수 있습니다 문자열. 그리고 그 끝에서, 우리가 지정하는 변수 우리는이에 넣을 플레이스 홀더는 s입니다. 그래서 기본적으로의 소요 그리고 여기에 넣습니다. 그리고 그것은 당신이 고른 출력됩니다 높은 또는 낮은 번호를 골랐다. OK. 그래서 루프는 당신이 일을 수행 할 수 있도록 원형 운동에, 오른쪽? 당신은이 발생했을 수 있습니다 영원히의 형태로 처음 루프 또는 때까지 반복하거나 특정를 반복 횟수. 왜이 저희를 위해 좋다? 음, C에서, 우리가이의 말을하자 노래는 스크래치에서 구현하는 노래,이 노래 그 끝이없는. 그냥 계속해서 간다 영원히 영원히. 글쎄, 당신은 정말 프로그램을 만들 수 없습니다 즉, printf와의 무한한 수가있다 그것의 문, 오른쪽? 그래서이 특정 시나리오에서, 하나의 방법 당신은이 작업을하고 수 그것은이다 영원히 인쇄 할 수 있습니다 대신 while 루프를 사용합니다. 그래서 While 루프는 무엇을 실행합니다 두 괄호의 본문에 그 에 따라 그에게 속한 것을 상태입니다. 경우, 이전에이 특정 예에서 너무 우리는 이것을 영원히 인쇄 할 것을 우리가 할 수 있는가? 음, 물론, 그렇지? 그래서이 종류의 아이디어를 결합 일부 부울 식의 루프와 함께. 그리고 우리는 부울에 대해 배웠습니다 이전 식. 그래서 때마다 내부 상태 그 동안은,이 루프 진정한 남아 만하고 실행합니다. 그리고이 경우, 우리는 단지 그것을 공급 사실, 이것은 무한 원인 에 대한 노래를 출력하고 루프 우리가 전에없이 원하는대로에 무한 마련되어 프로그램을 갖는 printf의 문을 수있는 것입니다 할 수 없습니다. 그래서 더 강력하게,하지만, 당신은 이것을 사용할 수 있습니다 변수와 조건. 그래서 우리는 반복하고 싶은 말은하자 완전히 정신이 이상한 문구,, 10 배. 그래서 당신이 While 루프로 수행 할 수있는 것은 먼저 카운터를 초기화 할 수 있습니다 의 변수 외부 10 While 루프. 그리고 기본적으로 각 시간은 가고 While 루프를 통해, 당신은 인쇄 다음 문 및 감소 카운터 변수 말까지, 어떤 점에서, 일단 우리는 충분히 I 빼기 배, 1 I 충분한 시간에서 - 다만, I 마이너스 마이너스에게 명확히 내가 1을 뺀 I에 해당 의미한다. 즉, 기본적으로 I를 가져올 것이다 한 번 I 제로 충돌 지점이 조건이 참이 더 이상없고, 그래서 루프 밖으로 종료합니다. 그래서 완전히 깨어나는 10 회 인쇄합니다. While 루프에 대한 질문? OK. 그래서 우리가 할 수있는 방법이 무엇인지 우리 단지 더 간결하게로 한 우리는 루프를 부르는 것. 그래서 위해 루프로 구성 초기화 상태, 및 우리가 전에처럼 할 업데이트 이 While 루프에서. 그럼 살펴 보자. 이 While 루프에서, 우리는 있었다 초기화, 우리는 있었다 우리가 선택하는 것이 조건입니다. 그리고 우리는 업데이 트를했다 상단에있는 단계. 에 대한 루프, 이것은 기본적으로 소요 이 세 가지를하고 응축 한 줄 아래로. 그것은에서와 그래서 우선 루프의 초기화입니다. 그리고 당신은 세미콜론을하고, 당신은 내가 컨디션을 수행 보다 큰 영, 거기 간다 다음 업데이트 단계를 포함한다. 그래서이가 수행됩니다 루프 본문의 맨 끝. 그래서이 두 프로그램은 본질적으로 동일합니다. 질문? 그래서 하나의 차이점은 무엇입니까 이 두 가지 사이? 누구라도 지적 할 수 있습니까? 그것은 조금 미묘한 수 있습니다. 그냥 아주 작은 차이입니다. 예? 스피커 5 : 당신은 사용할 수 없을 것입니다 For 루프의 외부 I 변수 [들리지? 조셉 : 맞아. 그래서 이것은 우리가 얻을 것이다 무언가이다 나중에 변수 범위라고. 그러나 본질적으로, 내가 삶을 int로 이 While 루프의 외부. 그래서 한 번이 While 루프 수행됩니다 실행, 나중에 I을 사용하실 수 있습니다 프로그램에. 반면이와 루프,이 INT의 I 루프이 내부에 속합니다. 그리고이 부분의 내부에 있기 때문에 에 대한 루프의, 그 시작 와 괄호와 끝 저기 중괄호. 내부에 선언 아무거나 여기 밖에 사용할 수 없다. 밖에서 I를 사용하려고한다면, 그것은거야 선언되지 않은 기호를 말해. 그리고 본질적으로, 아닙니다 사용할 수있는. ROB : 그리고 물론 10 년 전,에 말 그대로 모든 경우는, 중괄호는 당신이 결정하는 데 사용되는 것을 변수의 범위. 그래서 거기에, 내가 10에 해당 int로 이 안에 선언 중괄호 설정합니다. 그리고 다음과 같은 당신이 I를 사용하려고으로 이 중괄호 전에, 괜찮아. 당신이 만드는 입력 할 때, 당신을 볼 수 있습니다 대시, 대시, 표준, 동일, C99를 참조하십시오. 그래서 C의 최신 버전입니다 GCC는 준다 구현했습니다 이 바로 가기. 그래서이 C에서 허용되지하는 데 사용 당신이 볼 수있는 이유,이 때문에 INT 나는이 중괄호 밖에 있지만, 그것은 여전히​​있는 것으로 간주 이러한 중괄호의 범위. 그러나 이것은 매우 편리한 것입니다, 그리고 그것은 좋은 확장이다. 조셉 : 질문? OK. 그래서 더 유용한 것은 때때로 당신은 동성의 종류에서 원하는 루프, 오른쪽? 당신은 반드시 인쇄하지 않을 완전히 모든 시간을 정신이 이상한 경우 에서 카운트 다운 할 10 뭔가. 그래서 당신은 카운터 변수를 사용할 수 있습니다 그 루프의 내부뿐만 아니라. 이 경우,이 프로그램을 그냥 아래로 모든 방법을 아래로 10에서 계산합니다. 그리고 그것은 무엇을 인쇄하지 않는 이유는 무엇입니까? 그것은 0이 인쇄되지 않습니다, 오른쪽 경우 때문에 - 예, 그것은 또한 11 인쇄되지 않습니다. 그래서 0이 인쇄되지 않는 경우 때문에 나는이 0이 평가, 기억 그것은에 들어가기 전에 조건 루프 본문을 실행합니다. I가 0 일 때 그리고,이 때문에, 거짓 그것은 카운트 다운 인쇄되지 않습니다 제로, 그냥 계산을 출력 1 모든 방법을 아래로 10 아래로. 우리는 실제로 제로를 인쇄하고 싶었 경우 우리는 등호를 둘 것 기호보다이 큰 후. OK. 입력 유효성 검사를 할 일이 하나의 방법, 어떤 당신이해야 할 사용자를 물을 때입니다 뭔가, 당신은 확실히 그들이 만들고 싶어 귀하의 지침에 따라 사용하는 것입니다 While 루프, 오른쪽? 그래서이 특정한 경우에, 부탁 해요 양수에 대한 다음 난 입력을 기다리는. 입력하는 동안 그리고 내가 확인 0보다 작은, 그 질문을 계속. 그래서 한 그들은 나에게 전화 번호를 알려로 즉 긍정적 인 아닌, 질문을 계속, 질문을 계속, 질문을 계속. 그러나 종류의 이상이 약은 무엇인가? 또는 무엇에 대한 최적하지 않는 것 여기이 구조? 누군가? 예? 스피커 6 : 당신이 반복하고 명령을 두 번. 조셉 : 맞아. 그래서 우리는 두 가지의 printf 문이 여기, 바로? 그래서 우리는 그냥이 얻을 수있는 방법이 만들 것 하나에 이르기까지 우리의 코드를 쉽게 읽을 수 있습니다 조금 더 깨끗하고. 그리고 우리는 필요가 없습니다 것 뿐만 아니라 두 번에 바로있다. 그리고 당신이 할 수있는 한 가지 방법은 마 - While 루프를 사용하여. 그리고 마 - While 루프는 기본적으로 While 루프의 다른 형태 곳 중괄호 내의 모든 것을 적어도 한 번 실행됩니다. 그래서 여기에, 내가 선언 INT 입력, 외부 첫 번째. 그리고 난 그냥 이렇게 말 지시하는 동안 입력 0보다 작습니다. 그래서 먼저 할 일을 맞았습니다. 항상 적어도이 실행됩니다 일단, 그래서 항상 사용자에게 요청한다 적어도 한 번 입력하십시오. 그리고 다음은 입력을 평가, 그리고 그것은 원에 간다. 네, 질문? 스피커 6 : 그것을 할 수있는 방법이 있나요 [청취] 유형, 당신이 말하는 경우처럼, 하는 GetString, 누군가 [들림] [청취]하는 방법이 있나요 요셉 : 그래서,이 질문이 있습니다 입력 유효성 검사를 수행하는 방법의 경우 사용자 오른쪽에 넣어하지 않습니다 변수의 유형? 우리는 INT 부탁드립니다 그렇다면 그들은 대신 우리에게 문자열을 제공합니다. 그리고 우리가 구현하는 기능에 당신을 위해 getInt를, 모두에하는 GetString 이러한 기능들은 실제로는 이미 기본 유형 입력의 종류를 수행 후드 아래에 확인. 그래서 당신이 기능을 사용하는 경우 우리 준, 당신은 정말 필요가 없습니다. 하지만 당신은 방법에 더보고 싶으면 당신이 실제로 그렇게 할 수 있습니다, 당신은 볼 수 파일에 후드 I/O-- 기본 I / O 기능, 제출하지 같은 표준 입력에서 읽고 표준 출력. 그리고 당신은 더 나은 이해를 얻을 수 있습니다 방법으로 당신은 그렇게 할 수 있습니다. ROB : 하나의 문제는,하지만, 특별히이다 예를 가진 당신 고 말했다, 당신은 캐릭터에게 기대 나는 int를 입력합니다. 당신은 어떻게 그 차이를 말할 것입니다 의도적으로 원하는 사이 INT 123을 원하는 대 문자열 123? 그래서 문자열은, 그 정도는 그럴 리가 있어요 검증, 그것은 그냥 어떤 사람들 당신이 해석합니다 입력 문자열로. INT는 쉽게 상관없이 때문에 당신은 사용자로부터 입력을 가지고, 당신은 항상 문자열을 복용. 그리고 해당 문자열 당신은 할 수 확인, 이들 모두는 실제로 자리 숫자? 조셉 : OK. 마 - While 루프에 대한 질문? ROB : 아, 그리고 이것은 또한입니다 - 범위로 되돌아가는, 다소 일반적인 실수는 일부 지방을 사용하려고 이 마 - 동안 내에서 변수 이 조건의 내부 루프. 실제로, 우리는 단지 없앤 경우 이것과는 INT 입력이 동일했다 의 getInt는 다음 컴파일러에서 소리 것 우리, 입력이 존재하지 않기 때문에 의 범위의 외측 이러한 중괄호. 조셉 : 그리고 그 이유는 우리 여기 라인업이 필요합니다. OK. 그래서 당신은 또한 벗어날 수 있습니다 루프는 초기 당신이 원하는 경우. 그래서 이것은 다른 방법이다 우리가 구현 무엇을 구현. 대신 조건을 사용 괄호 안에, 우리는을 사용하는 만약 몸의 안쪽 문 마 - While 루프의. 기본적으로, 때 입력이 드디어 0보다 큰, 우리는 것입니다 루프의 탈옥. 그래서 우리는 모든 이동합니다 내려 오는 길. 그리고 당신은 볼 수이 것 아마이 바람직 할 조금의 시나리오 때문 비트 청소기 조금 쉽게 읽을 비트. 이 반면에, 당신은 종류의 거기에 여분의 줄이있다. 그것은 조금 모양은 좋지 나는 어떤 의미에서 생각한다. 네, 질문? 스피커 4 :받을 만 중단됩니다 중괄호 한 세트 중 당신은? 조셉 : 맞아. 그래서 질문은 중단됩니다있다 당신은 하나의 루프 나가? 그리고 그 대답은 '예'입니다. 그래서 당신을 위해, 루프를 들어 중첩 된 경우 예를 들어, 나는 INT 들어있는 경우 I는 0과 동일 J는 0과 동일 (10) 한 다음 인터넷 용까지 10까지, 이너 탈옥 경우 루프, 나는 아직도 갈 것이다 외부 루프에. 그래서 수행하겠습니다 외부에 작업. 그것에 대해 질문? 예? 스피커 5 :하지만 기능 만 휴식 중괄호에 대한,하지 기타 문? [청취] 요셉 : 그래서 질문은 중단됩니다있다 반대로 루프 기능 만 만약 같은 다른 문? 그리고 예, 즉, 케이스 때문에 당신은, 오른쪽, 루프 탈출 할거야 어떤 의미에서. ROB는 : 대부분의 경우, 그것의 정보 이 경우 무언가의 일종이다, 후 휴식. 그래서 당신의 정보는 다음의 제품에 적용 중단 할 필요가 없습니다 주위에 배치 된 경우. 또한,이 루프를 많이하지 않습니다, 하지만 스위치도 있다는 것을 기억 휴식으로의 세분화. 우리는 휴식을 사용했다 전에 스위치. 조셉 : 그리고 당신은 또한 사용할 수 있습니다 동안 루프와 루프하십시오. 질문? OK. 그래서 다음은 함수이다. 그래서 당신은이 BYOB 중 하나를 사용하고 있습니다 스크래치 프로젝트의 블록. 그리고 이것은 기본적으로 수 당신은 세트를 정의 따라야하는 지침을 제공합니다. 라는 것은 지금의이 생각하게합니다 다시 수학에, 오른쪽, 대수. 당신은 우리가 X의 함수라고 부르는이, 일부 변수와의이 말을하자 함수는 X의 F를 것은 X를 더한 값 5. 그래서 당신은이 검은 색으로 X의 F 생각할 수 다음에 15을 받아 상자 (20)를 생성한다. 따라서보다 일반적으로 함수는 일부 입력 및 소요 뭔가 다음 몇 가지 출력을 생성합니다. 왜 기능이 좋다? 그들은 여러 가지 이유에 대한 좋은거야. 그래서 누군가가 자상을 할 않습니다 무엇을 의미 조직에서? 이유는 기능의 측면에서 도움이된다? 예? 스피커 4 : 그것은 만드는 당신의 코드를보다 읽기. 조셉 : 맞아. 그래서 것들 중 하나는 만드는 것입니다 코드를 읽기, 오른쪽? 대신 INT와 같은 갖는 X는 X와 동일 배 X 시간 X, I, 배의 큐브를 가질 수있다 더 읽기 더입니다 독자에게 이해. 조직의 관점에서도 관리에 코드를 분할 부분, 그 때문에 대신에 노력 모두 하나의 긴 섹션에서이를 구현 주, 당신은 종류의 그것을 나눌 수 있습니다 등으로, 좋아, 함수를 작성하자 뭔가를 큐브,의 작성하자 뭔가를 사각형으로 작동합니다. 당신은 작은으로 그것을 분할 할 수있는 방법, 당신이 해결할 수있는 작은 부분 해결하려고 반대로 한 번에 큰 문제. ROB : 심지어 작은, 작은 부품이 당신과 파트너가 해결할 수 있습니다. 조셉 : 네. ROB : 그래서 그 대신 모두의 당신은 하나를 이식하려고 동시에 기능한다. 조셉 : 단순화. 누군가는 추측을하고 싶어? 예? 스피커 5 : 더 반복. 조셉 : 맞아. 당신이 할 수있는 그래서 한 가지 단순화는 종류의에의 것입니다 재사용 성 같은 라인입니다 I 큐브 함수를 작성하면, 난 할 수 단지 사용하는 반복 이상 다시 입력하는 대신 내 프로그램 X 시간 X 시간 X에와 또 다시. 그리고 단순화 또한 여기 단지 그것은 당신의 코드 종류의를 만드는 의미 당신이 분할되면 쉽게 디버깅하는 방법 기능에이 업. 당신은 어디를 지역화 할 수 있기 때문에 문제의 일종이다. 질문? 그래서 또 다른 아이디어는 바로, 추상화? 이 블랙 박스. 같은 당신의 getInt는 무엇을 알 수 있습니까 사용자로부터 입력을 수신하는 방법? 우리가 정말 좋아, 당신을 말하지 않았다? 우리가 당신에게 말 했어요 모두의 getInt가하는 것입니다 그것이 수행하는 것을 정확하게. 우리는 당신을 말하지 않는 없더라도 방법 작동, 당신은 아직도 알고있다. 그래서 이러한 특정 경우에, 이것은이다 않는 배 기능 입력에 여러 가지 출력을 생성한다. 그리고 당신은 수를 배로 할 수 있습니다 를 4로 곱한. 또는 당신은 우리가 부르는 할 수 이 비트으로 시프트. 그리고 우리는이 문제를 다룰 것 조금 나중에. 그리고 알 필요가 없습니다 방법이 기능은 실제로만큼 작동 언급 한 바와 같이 작동합니다. 그래서 후드, 나는이 될 수 같은 입력 번 리턴 여덟 2로 나눈 값입니다. 그리고 당신은 오른쪽 모를 것? 당신이 알아야 할 모든 것입니다 그것이 말하는 않습니다. 그래서 유용한 일이 추상화에 대한. 그리고 또 한가지 종류의이 아이디어 하나에 코드를 지역화 특정 섹션. 당신은 문제가 있다면 할 경우에, 당신은하지 않습니다 시도하는 모든 코드를 통해 이동해야 문제가 어디에 고정합니다. 따라서이 경우는 구현 잘못된 큐브. 나는 큐브를 곱 알았는데 세로. 그래서이 경우이 하나의 프로그램이다 그것은 단지 세 곱했다 사방. 그리고이있는 다른 프로그램이있다 아웃 기능에 고려 큐브. 그래서 지금은 내 실수를 해결하려면 여기에, 모든 하나의 라인을 수정해야 이 프로그램의 코드. 반면 반면에, I가 사용한다면 함수 만 변경해야 무엇을 한 곳에서 잘못했다. 그래서 컴퓨터 과학, 우리 입력과 출력을 호출합니다. 입력은 매개 변수라고 나됩니다 인수 및 출력은 호출 값을 반환합니다. 그리고 우리는이 종류의 데 도움 방법을 볼 수 있습니다 두 번째의 기능을 정의합니다. 그래서이 함수의 정의입니다 큐빙에 대한. 그래서 다음 입력을 받아, 그것은 반환하는 수 시간 자신을 세 번. 그럼이 아래를 중단 할 수 있습니다. 그래서 우리는 함수 헤더를 가지고있는 기본적으로 세 가지로 구성되어 있습니다. 그래서 우리는 매개 변수를 가지고있는 내가 전에 말했듯이, 있습니다 이 기능으로 입력. 그리고 우리는 함수의 이름을 지정합니다. 이 경우,이 큐브라고. 그리고 우리는 어떤 타입 지정 의 리턴 값이다. 따라서이 경우, 내 큐브 기능 정수에 소요하고도 정수를 반환합니다. 나는이 두 가지를 전달한다면, 두 사람은 정수 그것은 나에게 팔을 반환하는 정수이다. 그래서 형 이름 매개 변수를 반환합니다. 그에 대한 질문? 그리고, 반환 값은 실제로 수익을 말함으로써 끝에서 지정 다음 반환 무엇 반환 값이 포함되어 있습니다. 따라서이 경우, 우리는 그것을 전부 넣으면 함께, 함수에 걸린다 파라미터, 그것은 어떤 호출하고있어 그것은 유형 무언가를 반환 우리는 될 거라고 말하는 것을. 질문? 그래서 우리가 어떻게 기능을 사용합니까? 음, 우리는 다음 함수를 작성하고 우리는 바로 우리의 프로그램에서 사용할 수 있습니까? 그래서 큐브를 부르고, 그때 나는 큐브를 사용할 수 있습니다. 그러나주의하는 것이 중요합니다 순서의 문제입니다. I 메인 아래 큐브가 있다면, 그건 큐브로 실행하는 것. 그리고이 시점에서, 아무것도 없어 프로그램 입방체라고하며 야 그냥이처럼 될 것 아무 생각이 무엇 큐브입니다. 그래서 암시 적, 당신을 말할 것이다 함수의 선언. 즉 나타 오류입니다. 그리고이 경우, 큐브는 다음과 같다 주, 그래서 않을거야 그것에 대해 알고. 스피커 5 : 그래서 메인은 일반적으로 마지막 함수가 정의? 요셉 : 그래서 질문은, 주 일반적으로 마지막입니다 정의하려는 것은? 그리고 더. 우리가 일반적으로 메인 좋아 때문이다 오른쪽 상단에있을? 그 첫 번째 것은 당신 때문에 프로그래머가 오픈 할 볼 수있는 프로그램입니다. 그리고 우리는 어떻게 우리의이 문제를 해결합니까 정상에있을 주요 싶어하지만, 우리가 원하는 기능을, 우리는 그들을 원하는 주 이하로 아직 사용할 수있는 메인의 안쪽에 그? 음, 우리는 우리가 부르는 사용 함수 프로토 타입. 그래서 함수 프로토 타입 본질적 먼저 무슨 일이 소요되고 있습니다 서명 또는 함수 헤더 우리가 아래로 구현하려면 무엇을 여기에, 우리는에 넣어 프로그램의 상단. 따라서이 경우, 우리는 그런 말, 잘, 나중에 우리의 프로그램에서, 우리는거야 이를 구현하기 위해 약속을 만들려면 소요 INT 큐브 호출 된 함수, 정수 입력. 그래서 지금, 그 주 이상이기 때문에, 주, 그것은 말할거야, 아, 그래, 나중에 프로그램에서, 그것은 될 것 그래서 거기에 내가 참조 할 수 있습니다, 그래서 나는거야 그냥 지금은 통. 그리고 맨 아래에, 우리는 큐브를 구현합니다. 그리고 메인은 말할 것이다 음, 링크의 정렬됩니다 이 두 기호입니다. 그리고 우리가 다룰 것 그 무엇 나중에 의미한다. 그리고 그것은이 있음을 알 수 있습니다 이 사용해야하는 큐브 기능. ROB : [청취] 원하는에 대한 바닥 또는 주 상단, 난 둘 다 봤어요. 단지 좋아하는 것이있다 하단에있는 주를 넣어. 그러나이 프로젝트는 특히 도착하고 나면 큰, 보통 주요이다 모두 자신의 파일. 그리고 그 시점에서, 같은 INT 큐브 줄 것 - stdio.h와 내부의 무리는 그냥 INT와 같은 라인 큐브 INT 입력 라인. 그리고 그 프로토 타입은 가지가 있습니다 에서, 헤더 파일에 넣어하는 경향이 어떤 순간, 그것은 문제가되지 않습니다. 글쎄, 그건 문제가되지 않습니다. 사람들은 항상 상단에 이동합니다. 그리고 메인은 모두 자신의 파일이 아닌 경우, 당신은 퍼팅에 대해 걱정할 필요가 없습니다 개별 함수 프로토 타입 파일의. 조셉 : 그리고 우리는 조금을 얻을 것이다 잠시 후 롭 얘기를 시작할 때 컴파일에 대한. 그래서 차이도 있습니다 매개 변수와 인수 사이. 그리고 매개 변수은 무엇인가 우리는 이러한 입력을 호출 할 때 우리는 함수를 정의합니다. 그리고 우리는 인자를 호출 할 때 우리 실제로 함수에 전달합니다. 따라서이 경우에는,이 파라미터이며, 우리가 전에 말했듯이. 그리고 우리는 실제로 거기에 사용하면, X의 큐브, 다음 자체가되는 x 우리는 인수 부르는 함수 큐브. ROB : 그래서 매개 변수의 인수는 다음과 같습니다 - 이 구별은,이 매우 교환 혼동. 이 시점에서, 나에게, 그것은 하나처럼 그 말씀이 난에서 그것을 볼 때 야생, 즉시 도움이되지만 수 없습니다 그들은 그것을 사용하고 있는지 질문 올바른 상황, 때문에 차이는 충분히 미묘한입니다 단지 모두가 경향이있다 - 나는 거의 항상 인수를 말한다 에 관계없이 I의 의미는. 조셉 : 그리고 기능도 유용하다 우리는 부작용을 부르는하십시오. 그래서 함수는 입력을하지 않고, 수 또한 어떠한 출력을 생성 할 수 없습니다. 그래서이 특정한 경우에, 나는 아니이 서브 루틴을 정의 값을 반환합니다. 그리고를 지정하기 위해, 우리는 사용 우리는 여기에 공백을 부르는. 그래서이 기능의 부작용 그냥 물건을 인쇄입니다 페이지 아웃. 그것은 실제로을지지 않습니다 입력하고, 그렇지 않아 실제로 출력을 생성한다. 하지만이 점에서 유용 할 수 있습니다 당신은, 예를 들어, 디버깅하려는 경우 프로그램에 뭔가, 당신이 원하는 경우 약간의 서브 루틴을 작성하는 인쇄합니다, 내용의 말을하자 메모리 또는 뭔가. 그리고 이러한 부작용은 때때로 있습니다 컨텍스트 외부에서 유용 단지 입력 및 출력을 좋아합니다. 질문? 그리고이 특정 세그먼트를 종료하려면 이 프로그램은 무엇을 하는가? 나는 사람 당신에게 몇주지 그것을 통해 읽을 수있는 초. 아주 기본적인 수준에서, 우리는 무엇을 원하는 말은 바로, x와 y를 교체하는 것입니다? 그렇다면 많은 실제로 생각 이 x와 y를 교환 할 것이다? 손을 올립니다. 아무도 없습니다. OK. 누가 생각은 것이다 x와 y를 교환하지? 그리고 그의 합이었다 전체가 아니라 방. 그래서 어떤 사람들은 확실하지 않습니다. OK. 즉, 합리적. 그럼 때 어떤 일이 일어나는지를 통해 가자 실제로 먼저 함수를 호출 이 질문에 대답하기 위해. 그래서 이것은 무엇을 기억합니다 일종의처럼 보인다. 이 종류의 단순화 된 모델처럼 때처럼 메모리가 어떻게 보이는지 당신은 프로그램을 실행합니다. 소위 뭔가가있다 여기 아래 스택 뭔가 힙을했다. 그리고 이들은으로 성장 메모리의 중간. 특히이 경우, 그래서 당신은 함수를 호출 해 스택에 배치됩니다. 그리고 그 다음에 포함 된 어떤 기능은 우리가 부르는에서 유지 함수의 스택 프레임. 그래서 좋은 시각화를 얻을 수 이것은 let's - 예를 들어, 우리는했다 프로그램의 주요 이전. 그리고 주 안에, 우리는 큐브를했다. 그래서 주 먼저 스택에 갈 것입니다 그것이 첫 번째 함수이기 때문에, 프레임 그 이름이야. 그리고 큐브의 내부에 호출 할 때 주, 그것은 메인의 상단에 넣어 도착 메모리의 내부. 그래서 여기서 알 수 있습니다하면 해당 큐브입니다 자신의 매개 변수와 그가 자신의 주민. 그래서 당신은 실제로 뭔가를 통과 할 때 함수 매개 변수 그것이 무슨의 사본은 도착 메인에서 전달. 그리고 종류의 이것을 설명하기 위해,하자 프로그램을 통해 산책. 그래서 우리는 스택을 가지고,이입니다 다만 스택 부분. 그리고 우리가 할 일은 우리가 처음 초기화입니다 하나, 둘에 x와 y. 그래서 우리는이 작은 상자가있다. 그들은 주의 스택에 앉아있어 스택에 프레임. 그들은 하나, 둘,이 포함되어 있습니다. 이제 우리는 스왑을 호출합니다. 무슨 일이 우리에 x와 y를 전달합니다 스왑, 스왑은 자신의 복사본을 생성한다 그 변수는 내부 사용의 해당 스택 프레임의. 그래서 지금 거기, 우리는, 어떤이 X 값이 포함되어 있었다, 그리고 B를, 하는 Y가 가진 값을 포함합니다. 그래서 하나, 둘. 그리고 당신이 분리되어 있음을 알 수 있습니다 주요 내부의 x와 y에서. 그래서 우리는 지금 임시을 만들 를 포함하는 변수입니다. 우리는 b와 동일한 설정, 그래서 1-2 변경. 그리고 우리는 동등한 세트 B 임시로, 어느입니다. 그리고 지금 우리는 밖으로 종료 이 기능의. 당신이 기능을 종료 할 때, 스택 프레임이 스택에서 팝됩니다. 우리는 밀어 호출합니다. 당신은 스택에 스택 프레임을 밀어 스택에서 경우에 당신은 팝업. 그래서 무슨 일이 모든 것이 있습니다 단지의 스택 프레임의 종류에 있었다 화염에 올라갑니다. 그리고 그것은 더 이상 존재하지 않습니다. 그러나 우리는 무엇을 알 수 있습니까? 우리는 실제로 변경되지 않습니다 x와 y의 값을, 오른쪽? 그래서 사람들은 기본 로컬 있었다. 그리고 스왑에 물건을 전달하여, 우리 실제로 이러한 값을 변경하지 마십시오. 그리고 우리는이 전화합니까? 우리는 값이 통과를 호출합니다. 그래서 C에서, 당신은에 물건을 전달할 때 함수는 값을 전달하고 그들의 복사본을 만듭니다 사용하는 기능. 그리고 우리는 뭔가라는에 대해 알아 보겠습니다 나중에 참조로 전달하지만 그건 당신이이 문제를 해결할 수있는 방법. 그러나 우리는 걱정하지 않습니다 나중에까지. ROB : 그리고 사실, 용어, 통과 참고로, 그래서 C도 없습니다 참조하여 전달합니다. C 독점적 값으로 전달했다. 당신이 상관없이, 당신은 항상 없습니다 뭔가의 복사본을 전달합니다. 나는 일종의 언급 한 것처럼, 단지의 그 전에 포인터 문자열과 정말 네입니다 메모리에있는 곳을 가리키는 바이트. 글쎄, 난이 문자열을 가지고 있다면 그것은이다 그 문자열 어디 말해 - 글쎄, 난이 포인터가있는 경우에에 메모리에 배치, 그때를 전달할 수 있습니다 함수에 해당 포인터의 복사, 그 기능은 여전히​​ 어디에서 알고 메모리는 것입니다. 그래서 이러한 포인터는 모두 가리키는 같은 메모리에 배치하는 것 그것은 우리가 할 수있는 것입니다 방법 넘어 가지를 수정 현재 스택 프레임. 요셉 : 당신은 컴파일 할까? ROB : 아니, 5시 30 분입니다. 조셉 : OK. 5시 반입니다. OK. 그래서 우리는 내가에 맞춰 컴파일 다룰 것 다음 섹션, 또는 절 지도자는 그 시점에서 것이다. 그리고 - ROB : 질문? 조셉 : 질문? 예? 스피커 5 : CS50, 어떤에서 문자열을 사용하여 우리가 사용하고자하는 기능 그, 그건 C 함수처럼 될 수 있습니다. CS50는에 사라하지 않았습니다 추가했다. ROB : 수정. C의 경우, [청취] 등 우리의 문자열에 사람들을 사용합니다. 조셉 : 그리고 마지막으로 하나 내가 원하는 언급은 우리가 스타일 가이드를 가지고있다 이 클래스. ROB : 오, 그래. 요셉 : 그래서 당신은에서왔다면 당신은 전에 배경을 프로그래밍 특정 규칙이있을 때 당신은 퍼팅과 같은 코드를 작성하는 같은 줄 또는 특정 교정기 들여 쓰기의 방법 또는 변수의 이름을 지정. 이 클래스에서, 우리는 수행 할 특정 스타일 가이드 다만, 때문에 글쎄, 당신은 나가서 경우에 작동 업계가 예상 될 것입니다 의 스타일 가이드를 따라하기 당신이 이동하는 회사입니다. 같은 예를 들어, 페이스 북은 내가 생각 이름의 특정 종류가 있습니다 대회. 그리고 낙타 사이에 차이가있다 케이스 변수와 단지 등 밑줄로 구분. 그리고 또한, 나는 같이, 가장 중요하게 생각하는 예를 들어, 들여 쓰기, 오른쪽? 우리는 중괄호는 어디서부터 시작합니까 조건은이며, 다음 줄에 있습니다. 그리고 우리는 또한에 괄호를 넣어 그것은 단지 하나의 라인의 경우에도 마찬가지입니다. 그리고, 할 수있는 방법은 많은 시간이있다 그것은 이러한 중괄호를 떠날 수 이 한 줄의 경우 해제 If 문에서. 하지만이 클래스에서, 우리는 수행 할 특정 스타일 가이드는 너무 당신이 얻을 그런 종류의 물건에 사용됩니다. ROB : 네, 그리고 스타일 (50)는 것입니다 이 스타일 가이드를 적용하고, 우린 스타일 50를 사용하는 것 등급 코드에. 그래서 일이 우리에게 쉽게한다 희망을 갖고 일을하지 않는 것이, 당신이 주어진 시간 동안 훨씬 더 표준화 된 스타일은 안된다 비현실적인. 조셉 : 그리고 마지막으로, 스타일을 찾을 수 있습니다 , manual.cs50.net/style로 이동 가이드. 그리고 그래. 스피커 4 : 당신이 적용하는 건가요 한 줄에 모든 문자? ROB : 예. 조셉 : 죄송합니다, 여러분. ROB : 그 유일한 사람 중 하나 같아요. 이 시점에서, 나는 120 OK입니다. 나는 120을 말하는 괜찮아요 라인 당 문자. 나는 몇 가지 제한되고 있습니다 이해합니다. 나는 80이 너무 작아서 생각하지만, 우리는 그것을 적용하고 있습니다. 조셉 : 개인적으로, 나는 생각 C, 80 자 더 OK입니다. 당신은 다른 받기 시작하면 자바 스크립트와 PHP와 같은 언어,하지 다만 제한 할 수 있도록 합리적인 80 자에 그것. OK. 음, 슈퍼 섹션이었다. 사람이 사탕을 원합니까? 스피커 4 : 예.