ROB BOWDEN : 이는 인 더 편안 섹션, 하지만 것을 의미하지 않는다 당신이 경우 당신이 더 편안 아니에요 같은 느낌 여기에 가지를 배울 수 없습니다. 그래서 시작하자. 당신은 슬라이드를해야합니까 옳은 일에 진행. 나는 약 바로 지금을하는 건가요? 노트북을 전환. ALLISON : 당신은하고 싶지 않아 롭 자신을 소개? ROB 보덴 : 오, 롭 해요. 이 다섯 번째 년 TF-ING의 CS50입니다. 가브리엘 : 나는 가브리엘 해요. 나는 CS50의 머리 TF 해요. 작년과 올해 TF했다. ALLISON : 그리고 앨리슨이야,이 2 학년 TF-ING의 CS50입니다. ROB 보덴 : 좋아요, 왼쪽에이 일을, 희망 당신은 그것을 전에 본 적이있다. 그렇지 않다면 당신 때문에 자신을 위해 그것을 다운로드, 당신은 강의에서 그것을 볼 수 있어야합니다. 그래서이 CS50 어플라이언스이며, 그 다소 그것의 설명을했다 강의한다. 그러나 기본적으로는 당신의 동작을 실행하는 운영 내 시스템 시스템 우리는 당신에게 줄 수 있도록 필요없는 프로그램 오이입니다, 걱정 두 창에서 작업 할 것 당신의 맥, 또는 경우 일부 이미 리눅스를 리눅스를 사용하고 있습니다. 그것은 바로하기로했다 일반적인 연주 필드 그래서 모두가 가지고있는 똑같은 환경을 제공합니다. 당신이하지 않은 경우 그래서 이미이 다운로드 당신이이기 때문에 당신은 그것을 다운로드해야 문제 설정을 위해 필요할 것이다. 그리고 그것은 이기가바이트입니다 이 좀 걸릴 수 있도록, 다운로드 할 수 있습니다. 하버드에 빨리 가기. 그래서 CS50 기기. 이제 처음에, 우리는에 갈거야 명령 줄의 단지 무리에 대해 이야기 물건, 그리고 그래서, 나는이 작업을 의미 여기이 작은 환경에서. 그리고 모든 일을 알 지금은 여기 말 당신이 내부에 있다면 일을하려고 기기의 내부 터미널, 또는 당신은 내부에있는 경우 gedit에서 터미널 창 기기의 내부. 따라서 이러한 환경은 동일합니다. 하지만 세 번째 길을 갈거야. 그리고 여기이 아래로 통지 바로 여기에 약간의 IP 주소입니다. 그래서 당신은 필요 없어 이 작업을 수행하지만,이 IP 주소인데 지금을 제외하고 전 ... 경우 그것은이 일에 의해 차단합니다. OK, 그래서 IP 주소 터미널에서 이상 와 ... 그래서이 단자를 통해 여기 내 맥의 터미널이다. 그래서이 현재 어떤 방식입니다 모든 장비와 관련. Windows에서이 있다면, 그때 당신이있어 뭔가를 다운로드해야 할 것 특히 이것에 대한, 특히 사람들은 퍼티, P-U-T-T-Y를 사용하는 경향이있다. 그래서 내가 할거야하는 유형입니다 SSH하고 해당 IP 주소를 입력합니다. 글쎄, 그 IP 주소에 jharvard. 그래서 192.168.24.220. 이 무서운 메시지는 무시하십시오. 그냥 yes를 입력합니다. 이 상자에 CS50입니다. 그것은 당신의 암호를 묻는 메시지가 표시됩니다. 그리고 이러한 맥락 곳을 많이 그것은 [들림], 암호를 묻는 메시지가 표시됩니다. 우리는 질문 곳이 많이있어 그것은 실제로 입력하지 대요. 그것은 당신의 문자를 표시하지 않습니다 암호를 입력 할 때, 어떤 경우에, 보안 기능에 대한, 경우 때문에 누군가가 당신의 어깨 너머로 찾고있다 그들은 스타의 스타를 참조 스타 스타, 그들은 다음 알고있는 암호 네 자입니다. 그래서 아이디어는 물어볼 것입니다 암호 입력에 대한 당신. 그것은 보여 않을거야 당신 문자, 하지만 실제로 그들을 받아들이는 것. 이 경우, 언제라도 당신에게 이제까지 암호 프롬프트가 표시 기기를 다루는, 암호는 진홍색 될 것입니다. 그래서 진홍. 그리고 지금 여기의 내부 내 맥에 윈도우, 나는 기본적으로 필요하고 똑같은보기 터미널의 내부로 어플라이언스. 그래서 당신은이 작업을 수행 할 필요가 없습니다. 당신은 당신이 모든 것을 할 수 있습니다 기기의 내부 싶다. 나는 거의 실제로 이런 짓을하지 않을 기기에서 아무것도. 나는 거의 항상 지금을 최소화하고 나는 어플라이언스에 SSH를하고 있어요. 어떤 경우, 경우 느린 컴퓨터를 당신은 차이를 느낄 수 있습니다. 내가 좋아하므로이 작업을 수행 이 터미널 창. 이 같은 몇 가지 기능을 가지고 있습니다 나는 창을 분할 할 수 있습니다, 지금은 ssh를 할 수 있습니다 장비를 통한. 나는 두 SSH 한 번에 무슨 일 있어요. 컴퓨터가 특히 느린 경우 당신은, 기기에서 작업 당신은 이것이 실현 정말 매우 느려, 뭐든간에. 훨씬 빠르게되는 경향 당신은에 SSH-ED 있다면. 그러나 그렇지 않으면 당신은 어느 쪽이든 사용할 수 있습니다. 청중 : SSH가 무엇을 의미합니까? ROB 보덴 : 보안 쉘, 뭐 그런? SSH는 무엇을 의미 하는가? 가브리엘 : 보안 쉘. ALLISON : 그것은 단지 보안 쉘이다. ROB 보덴 : 보안 쉘. 그것은이다, 너 한테 프로토콜이다 보안 프로토콜은, 그래서 암호화. 사람이 네트워크를 스누핑 할 수없고 당신은 아무것도에 무슨 말을하는지 참조 당신은에 SSH-ED있어. 그리고 사실, 옛날을에 CS50의 일, 2009 년에 이렇게 나는 신입생, 방법이었다 때 당신은 CS50 문제 세트에 근무 당신은 어떤 서버에 SSH-ED했다 것을 우리는 당신이 접근을 할 수 있었다 당신은이 일했다. 그래서이 없었다 그래픽 장비. 당신의 gedit를하지 않았다. 당신은이 모든 일을하지 않았다 당신은 점을 시각적으로 클릭 할 수있다. 이 인터페이스에서 일해야했다. 나는이 인터페이스에서 작업하는 것을 선호합니다. 우리가 가고있는 건지 그래서 일부 지금 이상으로 이동합니다 한 무리입니다 당신이해야한다고 명령 같은 익숙해 시작 당신은 과정에 따라 이동합니다. 그리고 정직하게, 당신이 한 번 그들에게 익숙해, 그것은 너무 훨씬 빠릅니다 이 환경에서 작동 이 파인더로 작업하는 것보다, 드래그 물건을 클릭. 그래서 여기에 우리가 있습니다. 지금 바로 SSH-ED의 등 기본 당신을 location-- 클래스에서이 명령의 일부를 보았다 그러나 우리는 다시 그들 모두를 통해 갈거야. 우리가하고있는 기본 위치 에는 홈 디렉토리입니다. 그리고 디렉토리, 단지 폴더에 대한 다른 단어. 그래서 우리는 홈 디렉토리에있어. 파일 목록, LS를 입력 이 디렉토리에. 분명 내가 이전 blah.c를 만들었습니다. 그래서 우리는 바탕 화면 디렉토리를 가지고있다. 당신은 구문 강조를 발견? 밝은 파란색 강조 표시 디렉토리와 직선 흰색 그냥 일반 파일을 나타냅니다. 그래서이있을거야 당신이 볼 다른 색상. 실행 파일은 아마 것입니다 같은 녹색이나 뭐합니다. OK, 그래서 우리는 홈 디렉토리에 있습니다. 지금은 다른로 이동하려는 경우 디렉토리, CD는 내가 원하는 명령입니다. 그래서 당신은 다음 디렉토리를 변경하고, 디렉토리의 이름을 전달 당신이에 가고 싶은 것을. 그래서 여기에 우리가 네 가지 옵션이 있습니다. 나는 다운로드에 갈 수 있습니다, 그리고 지금 우리가 볼 수 여기에이 괄호를 업데이트했습니다 내가 ~ / 다운로드에있어 대답. 그래서 물결은 무엇입니까? 그것은을위한 속기의 홈 디렉토리. 그래서 당신이 거의 모든 제품에 가고 홈 디렉토리에 대한 수, 및 PWD는 명령입니다 나는 일년에 한 번 사용하는 단지 현재 디렉토리를 인쇄합니다. 그래서 당신은 여기에 참조 ~ / 다운로드 정말 해결 / 홈 / jharvard / 다운로드합니다. 그래서 / 홈 / jharvard 내 홈 디렉토리입니다. 그래서 우리는 CD가 점 점 수 있습니다. 이제 점 점은 특별한 디렉토리입니다 항상 하나의 디렉토리까지를 의미한다. 내가 ~ / 다운로드에있어 경우, 다음 CD 도트 그래서 점은 물결 내게 가져다 것입니다. 우리는 CD 도트 점에 대해 어떻게 생각하십니까 지금 저를 가져올 것입니다? 그것은 / 집에 저를 가지고 온다. 따라서 인쇄 작업 디렉토리에 의해 물결, 지금 / 집 / jharvard에있어. 그에서 한 디렉토리 위로, 지금은 집에 / 여기 말한다. CD 도트 점을 지금. 지금은 루트 디렉토리에있어, 당신은 다시 그것을 할 수 없습니다. 당신은에있을거야 영원히 루트 디렉토리. 루트 디렉토리의 전체 무리가 당신이 보길 원하는 경우, 물건, 당신은 할 수 있습니다. 예를 들어, 내가 가면 통에, 즉 포함 이러한 LS 등 모든 바이너리, 와 CD, 그리고 그 모든 것들. 그래서이 명령을 수행해야 시스템 어딘가에 존재 그것은 / bin 디렉토리에 있습니다. 그러나 당신이 거의 모든입니다 홈 디렉토리에서 될 것이다. 그리고 어떠한 인수없이 CD, 당신은 CD가 ~ 할 필요가 없습니다 말할 수 있습니다. CD는 당신을 가져올 것입니다 다시 홈 디렉토리로 이동합니다. 마지막으로 하나. CD는 - 당신을 다시 가져올 것입니다 전에 있었던 디렉토리. 그래서 난 그냥 두 번 연속 cd'd 그래서 내 마지막 디렉토리는 홈 디렉토리이었다. 지금은 빈 슬래시, 그리고로 이동합니다 의가 사용자로 가자. 사용자 공유. 의 사용자 점유율에 가자. 지금은 사용자 점유율에서 지금 해요. CD - 다시 빈에서. 그래서이 특히 유용 도착 니스, 니가 언제 그것을 전환 할 수 있습니다. 사용자 다시 공유, 빈, 공유 함 그래서. 그래서이 유용 가져옵니다. 당신은 자신이 많은 데 찾을 수 있습니다 많은, 많은 중첩 된 디렉토리. 그리고 당신이 뭔가를하고 싶어 상위 디렉토리에있는 진짜 빨리. 당신은 그 디렉토리로 이동하게 그런 변화와 물건, 지금 당신은 가고 싶어 다시는 어디까지. CD -. 나는 항상 좌절 해요 나는 갈 일어날 때 그 디렉토리 I에 에서 일을하고 싶었다. 내가 한 때 나는 항상 좌절 대신 한 단계의 두 단계에서, 즉, 해당 CD를 의미하기 때문에 - 것입니다 그 중간 위치에 가져다 대신 내가 가고 싶은 곳의. 그래서 우리는 모든 목록 파일을 참조하십시오. 우리는 지금까지 주위를 얻는 방법을 알고있다. 그래서 지금의이 파일을 편집 대해 얘기하자. 이 과정에서 그래서, 당신이있어 거의 항상 gedit를 사용할 것으로 예상. 당신이 원하는 경우에, 당신은 다음 단계를 취할 수 있습니다 및 명령 줄 텍스트를 배우기 시작 편집기. 그래서 다양한 옵션이 존재합니다. 그리고 사람은 아마 그 귀하와 관련 될 것, 우리는 나노, 빔, 그리고 이맥스있다. 그래서 나노는 초보자입니다 커맨드 라인 텍스트 편집기. 그래서 나노의가 가자 blah.c 나는 이전에 생성. 그냥이 표준 C 파일입니다. 그리고 당신은 물건을 왕창 참조 화면 하단에 일어나고, 분명히 blah.c 이 C 코드가 포함되어 있습니다. 이 특정 편집기에서 그래서 그것이 무엇 심연에서 말하는 것 지금이 캐럿 기호, 우리는이 ^ G ^ X ^ O를 참조하십시오. 그래서 거의 모든에 당신이 볼 상황, 당신의 그 캐럿 기호를 볼 수 있습니다 스택 오버플로에 온라인으로 다른 장소, 뭐 그런. 그것은 거의 항상 제어 할 수 말합니다. 그래서 내가하고 싶은 종료 컨트롤 X를 제어 X는 종료됩니다. 그리고 나는 나의 화살표를 사용할 수 있습니다 키 주위에 이동합니다. 내가 지적하고 쉽게 클릭 할 수 없습니다 알 수 있습니다. 당신은 당신의 화살표를 사용 필요 키 주위에 이동합니다. 설정이있을 수 있습니다 포인트 앤 클릭합니다. 그러나의 일부 변경을 할 수 있습니다. 이제 제어 X는 출구를 이동합니다. 그것은 수정 된 버퍼 저장 말할 것입니다. 이제 네의 프롬프트, Y, N 더합니다. 취소에 대한 제어 C. 난 그냥 예 말할 것이다. 쓸 수있는 파일 이름. 기본값은 파일입니다 이미입니다. Enter 키를 누르십시오. 확인을 클릭합니다. 지금은 그냥 파일을 편집 한, 그것을 저장하고,이 변경된다. 그래서 나노는 가장 쉬운 방법입니다 텍스트 편집기에 익숙해. 대안 빔과 이맥스입니다. 사람들은 높은 수준의 텍스트 편집기입니다 그것은 매우 가파른 학습 곡선이있다. 그래서 내 개인적인 취향 빔입니다. 그리고 다양한 옵션이 있습니다. 그리고 당신은 익숙해지면 여기에, 당신은 결코거야 다른에 가고 싶다 텍스트 편집기 당신 때문에 단지 많은 것들을 가지고 이러한에서 사용 가능한, 하지만 정말 소요 오랜 시간에 대해 논의하게 될 것입니다. 아마 당신은 강제로 자신은 지금, 그것에 익숙해 하지만 난 그게 그만한 가치가 말할 것입니다. 그러나 그것은 어렵다. 그리고 이맥스. 나는 항상 이맥스에 어려움을 겪고 있기 때문에 나는 절대적으로 아무것도하지 않는 방법을 알고있다. 분명히 이맥스는 기본적으로하지 않습니다 기기에 설치되어 있어야합니다. 우리는 아마를 추가합니다 기본 설비 등. 당신이 중 하나를 배우면 빔 또는 이맥스, 거기에 에 더 강력한 이유 없다 이제까지 다른 내용 그러나 그것은 완전히 다른 스타일이다. OK 그래서 텍스트 파일을 편집합니다. 청중 : 당신은 사로 잡혀 있었던 경우 빔에 지금, 어떻게 할 우린 ... ROB 보덴 :있다 빔의 다중 모드, 과 전체가 빔을 배우는 튜토리얼. 그래서 될 일 경우 순서대로 삽입 모드에서 이는 당신이 할 수있는, 텍스트를 입력 그 다양한 방법으로 입력, 당신이 삽입 모드에 얼마나하지만 난입니다. 이상에서 것은 특별한 나가 당신이있어 모드, 그냥 탈출. 그리고 당신은 얻을 탈출 비난 중첩 된 모드 당신의 중. 그냥 OK, 지금은 다시 정상 모드로 해요. 그리고 일반 모드, 콜론. 당신은 하단에 표시를 참조하십시오. 그리고 Q. 당신이 변경 한 경우에 따라서 q는 종료됩니다, 어떤 난 ... 내가 변경 한? 나는 분명히 변경했습니다. 당신이 변경 한 경우에는거야 그래서 당신이 느낌표를 넣을 수 있습니다 말한다. 나는 쾅 호출거야. 그래서 당신은 금지를 넣을 수 있습니다 단지 아무것도하지 않고 종료 또는 대장 WQ 저장하고 종료합니다. w 일반 그래서 것은 쓰기입니다. 그래서 파일을 작성합니다. 내가 작성하고 종료 할 수 있습니다. 또는 당신은 할 수 QX 슬램, Q 뱅 단지 에 관계없이 거기에서 얻을 수 있습니다 당신이 만든 모든 변경. 좋아요, 지금의하자 어서! 우리는 파일을 만들 수 있습니다. 의 파일을 제거하기 시작하자. 그리고 난 그냥 하나에 던질거야 빠른 새 명령, 터치. 그래서 foo는 터치합니다. 터치 바. 바즈을 터치합니다. 나는 LS는 지금 우리가 볼 경우 해당 파일이 존재하는지. 그들은 완전히 비어있어. 그래서 터치는 쉽게 하나의 방법은, [들림]. 둘째, 기술적으로 단지 상태로 그것은, 그것은 타임 스탬프를 업데이트합니다. 그래서 사용자가 만든 파일에는 타임 스탬프는 그와 연관된. 그래서 바즈에 생성 된 16시 21분에서 9월 14일. 이 경우 지금 16시 22분의 다시 바즈 터치, 우리 참조 그 바즈이었다 가장 최근 16시 22분에서 수정했습니다. 그러나 그렇지 않으면 나는 거의 결코 파일에 타임 스탬프를 확인합니다. 터치 그래서, 여기에 그냥 사용하고 있습니다 그것은 몇 가지 빠른 파일을 만들 수 있습니다. 좋아요, 지금 RM은 우리가 여기에 관심 명령. 그리고 우리는 기지를 RM은 할 수 있습니다. 일반 빈 파일 기지를 제거 말. 그리고 우리는 Y를 입력 할 수 있습니다, 지금은 제거합니다을합니다. RM은 바즈. 일반 빈 파일을 제거합니다 바즈없이 대한 n을 입력합니다. 지금은 제거되지입니다. 그래서 바, 바즈는 여전히 존재한다. 푸 사라 졌어요. 가브리엘 : 이야기하십시오. ROB 보덴 : 좋아. 성가신 메시지 그래서 여기에, 일반 empty--를 제거 당신은 무슨 일을하는거야? 일반 빈 파일을 제거합니다. 우리가되고 싶지 않아 경우에 따라서 해당 메시지에 의해 방해, 우리는이 -f에 던질 수 플래그는, 그래서 그 힘입니다. 내가 -f를 RM은 경우 그리고 지금, 그것은에 없을거야 이 파일을 삭제 하시겠습니까 말한다. 그것은 단지 그것을 할 수 있습니다. 그리고 LS, 더 이상 거기에 막대가 표시되지 않습니다. 이제 잠재적 인 위험한 명령. 너무 나쁜 경향이있다. 우리는 초에 돌아올 것이다 방법 정말 위험한 얻을 수 있습니다. 그리고의 일부 임시 디렉토리를 생성 할 수 있습니다. MKDIR, 다른 명령. 그래서 MKDIR 명령이다 그 디렉토리를 만든다. 그리고 지금 LS에 의해 우리는이 좋은 빛을 볼 파란색은 임시 디렉토리를 강조했다. 나는 임시로 CD를 할 수 있습니다. 그리고 foo는 만들어라 (mkdir) 할 수 있습니다. foo는에 CD. MKDIR 바. 줄에 CD. 그래서 우리는 우리가 쉽게 얻을 수 있습니다 참조 꽤 깊은 중첩에. 이제 어떻게 디렉토리를 제거하는 방법은 무엇입니까? rmdir을. 그래서 난 그냥 직선 RM하려고하면, 같은 우리는, 일반 파일했던 RM 표시 줄로 이동한다 줄을 제거 할 수 없습니다 말한다. 이 디렉토리입니다. 특별한 명령이있다 가지, 디렉토리를 제거. 그래서 rmdir을 줄. 이제 줄이 사라 졌어요. 좋아, 그럼 rmdir을 나는 사용하지 거의 절대. 지금의하자 조금 ... 이유 여기에 일반 파일 줄을합니다. 그래서 rmdir을 우우. rmdir을. foo는 제거 할 수 없습니다. 디렉토리가 비어 있지. 그래서 당신은에 DIR을 제거 사용할 수 없습니다 그 물건을 가지고 디렉토리. 그래서 당신은 몇 가지 옵션이 있습니다. 당신은 그 디렉토리로 갈 수 제거 모든 것을 수동으로하고 나와 및 디렉토리를 RMDIR. 그건 분명히 성가신 소리. 수천은 무엇가있는 경우 거기에있는 파일? 글쎄, 당신은 * RM은 수 있습니다. 우리는 초 *에 대해 이야기 할 것입니다. 그것은 기본적으로 모든 것을 의미한다. 그러나 더 좋은 방법은, 그래서 RM -r. 그래서 RM -r--을 많이 컨텍스트는, -r은 재귀 의미 우리는에 대해 얘기하자있는 무엇 몇 주에 재귀 수단. 그러나 기본적으로 이송을 의미 이 디렉토리의 전체 모든 것을 제거합니다. 그래서 RM -r foo는 말할 것입니다 디렉토리 foo는에 내려? 예. 일반 빈 파일 foo는 / 표시 줄을 삭제 하시겠습니까? 예. 디렉토리 foo는 삭제 하시겠습니까? 예. 이제 foo는 모든 것이 내에서 제거되었습니다. 이제 특히 성가신 얻을 수 있습니다 먼저 ...의, 2 터치 한 터치 3을 터치 할 수 있습니다. 파일의 전체 무리가 없습니다. 내가 원하는, 내가 만들 수 있습니다 여기에서 파일의 수천. 그리고 RM -r 푸 것입니다 꽤 성가신합니다. 그래, 그래, 그래, 그래, 그래, 그래. 더 많은 파일을 사용하면 빠르게 몇 번을 참조 나는 yes를 입력해야합니다. 음, 우리는 얼마나 우리가 할 수있는 전에 보았다 예를 -f를 입력 할 필요를 제거. 그래서 MKDIR 푸 CD foo는 터치 1 2 3. 좋아, 그럼 RF RM은 푸 것입니다 맹목적으로 완전히 foo를 제거합니다. 어떤 프롬프트 없습니다. 아니 아무것도 없습니다. 푸 사라 졌어요. 그래서 나는이를 사용하는 경향이 모든 시간을 명령. 즉,이다,했다 매우 위험한 명령, 내가 좋아하는 뭔가를 할 경우 때문에 이것은 당신 메시지를 표시하지 않습니다. 이 사라질 것입니다. 그리고, 꽤 자주 발생 심지어 높은 수준의 CS 과정에서. 때때로 우리는 볼 수 있습니다 뭔가 어디 사람 내가 실수로 우리의 RM은 RF-ED 내 집은 말한다 디렉토리 내 P 세트 모두 사라졌습니다. 그리고, 파괴의 하지만 휴지통이 없다. 아무 것도 없습니다 더있어 당신이 검색 할. 그냥 사라 졌어요. 것 더 나쁜 RM은 -rf의 / 같은. 그래서 우리는 단지 논의 그 루트 디렉토리. 그것은 전부를 보유 시스템에있는 파일. 상황이 매우 혼란스러워하는 경향이 당신은 LS 같은 것들을 제거 할 때, 와 CD, 그리고 그 모든. 청중 : 차이점은 무엇입니까 RM, RF 및 RM은 * 사이 ROB 보덴 : 그래서 RM * - ALLISON : 질문은 무엇이었다 RM, RF 및 RM은 *의 차이. ROB 보덴 : * 그래서 RM. 모든 일반적인 수단에 스타 이 디렉토리의 내용을 표시합니다. 다른 생각하려고 별을 보여주는 방법. 음, 일반적으로 실제로 스타 어떤 패턴과 일치하는 것을 의미한다. 내가 dog1라는 파일이있는 경우 그래서, CAT2 터치 CAT1 터치 dog2 누릅니다. 그래서 LS * 1 CAT1를 인쇄 할 것입니다 및 dog1, 그 스타 채워질 수 있으므로 하나가 될 필요가 너의 ...에, 하지만 별은 고양이 또는 개를 할 수 있습니다. 그것은 와일드 카드입니다. 즉 내가 찾는 단어입니다. 와일드 카드. 아니면 내가 개 * 맞어, 그리고 수 나는 dog2을 dog1을 볼 수있어 해요. 그래서 그것들은 파일을 나열되고 즉 특정 패턴과 일치. 이 방법으로 LS를 사용할 수 있습니다. LS * 스타 아무것도 일치합니다. 그래서 모두를 인쇄 할 것 이 디렉토리의 내용 그들 모두 있기 때문에 일치합니다. 그것은 아무것도 인쇄하지 않을 것 상위 디렉토리에. 만약 내가 서브 디렉토리, foo는, 및 터치 1 2-I-T-A-3 그래서 지금은 rm * 스타의 경우, CAT1, CAT2, dog1, dog2를 제거합니다. foo는 제거 할 수 없습니다. 이 디렉토리입니다. 그래서 별은 모두로 확장 디렉토리에있는 파일. 그래서 기술적으로 RM * 말처럼 RM은 CAT1, CAT2, dog1, dog2, foo는. RF RM은 반면, 기술적으로 별 것 하지만 RM -rf--, 우리가 원하는 것을 달성 나는이 밖으로 이동하는 경우 디렉토리, RF RM은 온도, 즉 임시로 갈 예정이고 재귀 적으로 모든 것을 제거합니다. 그래서 스타는 별도입니다 그래서이 일을 고요 지나가는 이해 내가 실행 걸,이 일 그 명령에 나 메시지를 표시한다 다음 실행하고 일을 그들, 나는 내 껍질이를 호출합니다. 그리고이 쉘은 자체 프로그램입니다. 그리고 나는 내가 원하는 경우 에 / 빈 / bash는 실행할 수 있습니다. 쉘은 bash는 호출된다. 그리고 지금 우리는 뭔가를 알 약간 변경되었습니다, 그것은 내 설정 때문에이다 쉘은 다소 다르다. 하지만 지금은 기술적으로 실행 해요 내 원래의 쉘 내에서 쉘, 그리고 지금은 그 쉘을 종료 할 수 있습니다 나는 다시 내 최고 수준의 쉘 해요. 말의 목적 즉, 스타 핵폭탄 낙하. 그래서 별은 뭔가 bash는 이해. 그래서 RM은 -rf는 -rf 플래그입니다 다만 RM 이해. 그것은 알고 때를 그 -rf을 통과 당신을 이 재귀 적으로 제거 할 메시지를 표시하지 않고 모든 파일. 스타는 뭔가 이해된다 bash에 의해 당신이 RM은 *을 말할 때, bash는 말을하지 않을 헤이 RM은 *은 별을 제거합니다. 배쉬 * RM 말할 것입니다 CAT1, CAT2, dog1, dog2를 제거합니다. 자동으로 확장 할 것 디렉토리에있는 파일의 모든. 유사 물결은 또 다른입니다 bash는 이해 기호. 당신은 CD가 ~, 배쉬는 확장 말할 때 홈 디렉토리에있다. 다른 질문 지금까지? OK 그래서 우리는 빨리가는 시작하는 것입니다. 탭 완성. 그냥 거기에 그것을 밖으로 던져. 많은 사람들이하지 않습니다 이 존재 알고 있습니다. 그래서 CD 다우을 입력하면, I 다운로드에 가고 싶어요. 나는 nloads를 입력 할 필요가 없습니다. 난 그냥 탭을 칠 수있다. 그래서 것을 인식 다우 지수는 접두사입니다 것도 일치하지 않는 이 디렉토리에있는 다른, 그래서 당신을 위해 완료됩니다. 지금은 입력 할 수 있습니다. 또한 재귀 적으로 그렇게. 그래서 MKDIR foo는. 의 푸에 가자. MKDIR 바. 그래서 내 집으로 돌아 가지 디렉토리, 나는 다운로드를 볼 수 있습니다. 이제 다시 탭을 타격, 자동으로 foo를 채울 것. 그것은 유일한 디렉토리입니다. 자동으로 다시 탭을 명중 줄을 채울 것. 그래서 지금은 (다운로드 / 어쩌구 / 저쩌구 ~)에있어. 그래서이 탭 완성, 때마다 나는, 근무 시간에 도착 나는 위에 서있어 누군가의 어깨, 그들은 RM을거야 D-O-W-N-L-O-A-D-S, 내가 죽어 가고있어. 그냥 탭, 탭, 탭, 탭을 선택합니다. 그래서 확실히 탭을 사용했다. 마찬가지로 위 사람들의 아래, 많은 단지 그에게 무슨 일이 있었 절대 최대 적중 아래로했다. 그것은 이전을 통해 갈거야 명령은, 그래서 만약 당신이 뭔가를 실행, 당신이 다시 실행하려면, 당신이 그것을 얻을 때까지 바로 저장할 수 있습니다. 확인을 클릭합니다. 너무 빨리, 다른 것들. 의는 임시로 다시 가자. 의 특정 파일을 생성 할 수 있습니다. 여기에 그래서, 난 그냥 해요 일부 단어를 나열하는 것. 개, 고양이, 야옹. 의는, 물고기 개를하자. 그래서 지금 대표는 매우이다 유용한 명령 당신 전체에서 검색하는 데 사용할 특정 텍스트 파일, 기술적으로 당신이 정말로 할 수 그것은 복잡한 표현이 일치합니다. 그래서 여기, 내가 grep을 경우, 어떤 내가 검색 할 수 있습니까? 의 내가 고양이를 찾고 있어요 가정 해 봅시다, 그리고 나는이 모든 파일을 검색 할. 그래서 내가 어떻게이 모든 파일을합니까? 스타. 그래서 파일 하나에, 나는 고양이가있다. 아마 가질 수있다 뭔가 더 나은라고, 그 모양 때문에 행 번호 또는 뭔가. 그러나 파일 하나에 나는 고양이와 라인. 파일이 나는 고양이와 라인. 그래서 지금은 파일 하나 내부를 들여다 보면 수 참조 오, 그래, 그 파일은 고양이를 가지고 있었다. 공지 사항 파일 세 가지가 일치되지 않았습니다 고양이가 아니므로. 나는 야옹 grep으로 할 수 있습니다. 만 두 야옹을 갖습니다. 그래서 당신은 결합 할 수 있습니다이, 다시와 -r, 어떤 내가 전에 말했듯이 자주 순환을 의미합니다. 그래서 내가 여기에 올 수, GREP -r 모든 인스턴스의 편집하자 어디의에 대한 이 하나는 그냥 거기에 고양이를 던져. 그래서 어떤 예를 들어 -r grep으로 이 디렉토리를 통해 고양이. 그리고 재귀 것 서브 디렉토리를 검색 할 수 있습니다. 그래서 바즈에서, 고양이가있다. 온도 / 2에서, 고양이가있다. 그리고 온도에 / 고양이 (1)이있다. 그래서 파일 내에서 검색합니다. 지금 당신은 또한 찾기를 사용할 수 있습니다. 그리고 구체적으로는 약 찾을 주어진 이름을 가진 파일을 찾고. 그럼 좀 더 만들어 보자. 의 다운로드로 가자. dog1 터치합니다. CAT2을 터치합니다. cat_dog을 터치합니다. catcat을 터치합니다. 그래서 나는 모든을 찾으려면 이름의 강아지와 함께 파일. 그래서 발견하고, 최장 내가 기억하지 시간 방법을 찾으 마침내 때까지, 일 그렇게 분명히 뭔가를 읽습니다. 그래서 자동으로 재귀, 찾을 수 있습니다. 당신은 -r을 통과 할 필요가 없습니다. 그래서 점을 찾을 수 있습니다. 우리는 아직 점에 대해 이야기하지 않았습니다. 항상 점 점 반면 하나의 디렉토리까지를 의미한다. 도트는 항상 현재 디렉토리를 의미한다. 그래서에서 -r 점을 RM은 수 같은 방법으로 나는 *의 RF RM은 할 수 있습니다. 궁극적으로 같은 일을 수행. RF RM은 점은 제거하는 것입니다 전체 현재 디렉토리. OK, 거기 싶지 않아한다. 그러나 점을 찾을 수 있습니다. 그래서 재귀 현재 검색 디렉토리, 그리고 지금 모든 이 후 플래그의 무리는 당신 반환에서 일을 제외하는 데 사용합니다. 그래서 발견 점은 모든 반환을 현재 디렉토리에서 찾을 수 있습니다. 이들은 모든 파일들이다 재귀 적으로 검색. 우리는 두 번째에 그 중 일부를 볼 수 있습니다. 그러나 경우에 당신은 내가 어떻게 궁금 그 최소한의 명령 K, 그래서 맥 내 단말기에서 삭제됩니다. 컨트롤 L은 일반적으로 지 웁니다 단말기의 모든 종류에 대한 그것. 당신은 분명 입력 할 수 있습니다. 그리고 당신은 얻을 경우 이상한 속에서는에 그것은 나 커플에게 무슨 일이 있었 외엔 ... 어디 프롬프트의 색상 모든 당신에게 엉망, 또는 아르 아무것도 볼 수없는 입력 할 때을하기 때문에, 입력되는 때때로 배경색이 설정 등에 전경색과 동일 지금 당신은 글꼴을 볼 수 없습니다. 리셋은 리셋 뭔가 기본 검정색 배경에 당신, 흰색 전면, 또는 무엇이든 당신은 그들이에 설정합니다. 그래서 우리는 어디인가? 점을 찾을 수 있습니다. 지난 이제 모든 포인트는 결과를 제한 뭔가 그 일치 지정된 패턴. 그래서 나는 여기 검색 할 이름 고양이 다. 난 아무것도 없어. 이유의 경우? 글쎄, 난 그냥 찾고 있어요 정확히 이름 고양이 뭔가. 내가 뭔가를 검색하려면 그 몇 가지의 패턴을 갖고, cat-- 따옴표는 기술적으로 필요하지 않습니다 하지만 난 거기에 그들을 던지고 있어요. 그래서 지금은 catcat 때문에 발견 그 유일한 일이라고 어떤 임의의가 패턴은 고양이 하였다. 지금은 고양이 *를 넣어 수 있습니다 , catcat, cat_dog, CAT2를 찾을 수 그 때문에 고양이와 모든 것들 아무것도 다음에 처음에. 이 작업을 결합 할 수 있습니다. 모든 C 파일을 검색하려면 당신이, 당신은 *이 .c을 할 수 있습니다. 우리는 여기에 blah.c했다. 그래서 찾기 작품이다. 당신은 검색 할 수 있습니다. 그것은 플래그의 전체 무리가 추가 제한 사항. 그리고 그들에 하나의는 -d를 가정 해 봅시다. 그래서 추천하지 않습니다. 아, 그건 내가 원하는 게 아니에요. -d하지 않습니다. 유형 D. 그래서 점을 찾을 - 타입 D. 그래서 그건 그냥 한 것은 내가 찾고 있어요입니다 현재 디렉토리에있는 모든 파일에 대해 치아는 D가 약자와 directory-- 디렉토리 유형. 이 모든 디렉토리를 반환 현재 디렉토리에. 그리고 타입 F는 모든 일반입니다 파일 이외의 모든 디렉토리. 그래서이 그냥 다른 방법의 예를 들어 당신 다른 검색을 제한 할 수 있습니다 파일의 이름 만보다. 그것은 30 분있었습니다. 여전히 것. ALLISON : 나는 통해 산들 바람 수 있습니다. 그것은 괜찮을거야. ROB 보덴 : 그래서 다른 것들. 이제, 느낌표 쾅. 그래서 일반적으로 의미 하든지 .. 음, 예를 보자. 그래서! f를, 어떻게 그런 짓을하는거야? 음이 갖고있는 것 같아요 반복 찾기 도트 타입의 F. 무엇!의 G는 어떻습니까? 그건 그냥 * -r 고양이 grep을. 그래서 반복하는 데 사용할 수있는 쾅 최근에 수행 명령. 내가 입력하면 그래서! GRE, 그것은 다시 실행하여 것 GRE 대부분 시작 명령 최근에. 그리고 당신은 모든을 볼 수 있습니다 역사를 명령한다. 그래서 역사. 이러한 모든 명령 오늘 실행했습니다. 그리고 물론, 그것은 문자 그대로 아니다 오늘로 제한, 그러나 나는 단지이 사용했습니다 오늘 같은 기기. 그것은 당신의 전체의 당신의 bash 쉘의 역사, 그것은 어떤 점에서 차단 제외. 청중 : 당신이 경우에 어떻게됩니까 역사 [들림] 명령 오류 결과에 여전히 엥 인쇄됩니다 ROB 보덴 :이 그래, 경우 이 commands-- 중 하나에서 오류 그래서이 말을하자, 그입니다 오류 명령을 찾을 수 없습니다. 아직도 역사에 나타납니다. 좋아. 아무것도에 다른 질문? 그래서 탕입니다. 이제, 정말 유용한 명령, 남자. 그 당신에게 제공되도록 주어진 명령에 대한 매뉴얼. 그래서 그래서, 남자 LS를 가정 해 봅시다 이 날 LS를 보이고있다. 이 디렉토리의 내용을 나열합니다. 내가 볼 곳이있다가 존재하는 이러한 다양한 플래그입니다. 그래서 우리는 그 -l이 존재 거라도 참조 우리가 있었던 경우 그를 읽을 수 있습니다. LS -l 나에게이 전체 목록을 제공합니다 파일을 소유하는 사람들과 디렉토리, 파일의 크기, 수정 된 타임 스탬프. 따라서 LS의 -a 또 하나는 당신이 수도이다 실제로 어느 정도 자주 사용합니다. 나의 가장 일반적인 플래그 지난 LS는 -al입니다. 그래서 -a, 많이 느끼지 다만 LS보다 더 많은 파일. -a LS. 모든 파일과 공통점은 무엇입니까? 그들은 점으로 시작합니다. 그래서이 리눅스의 규칙 즉 점으로 시작 파일이 숨겨져 있습니다. 그래서 그냥 것을 의미한다 때 바로 바로 LS, 또는 우리는 사용하여이 디렉토리를 검색하는 파인더 동등하거나 Windows 탐색기에 해당, 우리는 그 이러한 점 파일을보고 싶지 않아. 그들은 단지 사물의보기를 오염. 그래서 그들은 숨겨진 당신이하지 않는 한 특별히 -a와 같은 뭔가를 요청합니다. 그래서 .local의에 CD를 할 수 있고, 내가 참조 그 자체가 디렉토리에 있음 공유 디렉토리 및 응용 프로그램, 어쩌구 저쩌구. 그래서, 그들은 단지 숨겨져있는 파일을 점. 그래서 다른 중요한 것들을 확인. 내가 건너 뛸 수 있습니다 몇 가지있다. 약의 단지 진짜 빨리 이야기하자 파일 경로 것. 그래서 전체 복잡한 시리즈가있다 일 당신이 함께 할 수있는, 하지만 단지 그들을보고, 에코의 말을 보자. 또 다른 명령을 실행합니다. 정말 바보 같은 명령을 실행합니다. 그것은하지 모든 내가 그것을 말해 무엇 인쇄입니다. 그래서 안녕하세요 에코. 그것은 단지 화면에게 인사를 에코. 안녕하세요 세계. 에코 안녕하세요. 그래서 하나의 명령 또는 하나 배쉬가 이해하는 기호 기호보다이 크고, 즉 파일 기호에 출력된다. I 출력이 경우에 따라서 foo는, 지금은 파일있다 , foo는 호출의 내부 어떤 안녕하세요 세계입니다. 그래서 에코 때 통지 안녕하세요 foo는에 세계 파이프, 그것은 안녕하세요 세상을 표시하지 않았다. 대신이 파일 foo에 투입되었다. 그리고 다른 명령 만 , 당신 고양이를 던져. 그건 그냥 완전히을하는 쉬운 방법 파일의 내용을 나열 내가 열 필요가 없습니다 있도록 텍스트 편집기를 볼 수 있습니다. 너무 내용 foo는 파일 안녕하세요 세계입니다. 그리고 고양이 blah.c는, 수 내용은 이쪽. 다시 말하지만, 이러한하지 않는 명령은 당신이 그 모든 기억이 예상된다. 아이디어는 당신이 그들을 본 적이있다. 어쩌면 당신은 작업중인 무엇인가, 당신은있어 같은 나는이 파일을 열 지겨워. 난 그냥 볼 수 있으면 좋겠다 진짜 빨리 내용을. 그런 다음, 그것을 할 수있는 다시보고 오 나는 말 같은 기억 즉 존재하고 고양이이다. 그래서 파일을 것입니다. 이제 정말 좋은이 없다 아직 파일 읽기의 예. 소요 뭔가 무엇입니까 표준에서 뭔가? 모든 간단한 리눅스 명령? 우리는 몇 년, 그것을 얻을 때 주 piece-- 아니라 모든, 이번 주에 당신은 조각 어디를 사용자의 입력을 복용 시작합니다. 그래서 일반적으로 사용자가 입력 키보드에서 해당 입력. 대신에 입력하는 키보드에서 입력, 파일에 수행 할 수 있습니다 대신 파이프 당신이 할 때 마리오, ./mario, 그래서 특정 파일에서 파이프 및 즉, 마리오 프로그램을 실행하는 것입니다. 에 입력을 기대하지 키보드, 대신이다 단지를 읽을 것 foo는 파일에서 라인. foo는이 넣는 것보다 그래서 더 foo는 파일, 이하 foo는 foo는 파일에서 물건을 받아 것을 사용하여이 프로그램에 대한 입력으로. 그리고 단지 그것을보고, 우리는 또한 에코 수 푸 바 바즈하고 대신 하나 보다 큰의 푸에 두 개의 작업을 수행 할 수 있습니다. 그 기능은 무엇입니까? 그냥 파일을 추가합니다. 나는에 ㅋ 에코 경우 그래서 그 대신 통지 foo는 다음 고양이 foo는, 그냥 어쩌구입니다. 파일에 따라서 때 출력을 완전히 그 파일을 덮어 씁니다. 당신이 추가하려면, [두 번? 학년. ?] 그리고 파이프는 마지막입니다. 파이프는 훨씬 더 복잡, 어디에서 가져옵니다 그것은 하나의 명령의 출력을 얻어 그리고 다음 명령어로 공급한다. 그래서 몇 가지 일반적인 것은, 역사. 그래서, 우,이보고 싶지 않아요. 나에게 나의 역사에서 모든 명령을보기 나는 grep을-ED를 어디에 뭔가. 아니, 혼란. 나에게 내가 찾을 수있는 모든 명령을 표시합니다. 모두 내가 실행 명령을 찾을 수 있습니다. 그래서 역사. 지금 역사의 출력 명령이 목록 화면, 하지만 난하고 싶지 않아 화면에 출력을. 대신에 나는 GREP에 파이프 (pipe)에 갈거야. 그럼 찾기의 모든 인스턴스에 대해 grep을 할 수 있습니다. 그래서 지금 대신 그렙 복용 입력 대신 집게 리아 GREP은 input-- 우리가있어 처리 할 수​​ 있습니다 약간 다르게 여기 GREP을 사용. 그래서 대신에 목록을 입력 일들이 우리를 검색하고 싶어 grep은 입력으로 복용했다. 그래서 난 그냥 그렙, 그것을 찾을 경우 내가 일을 입력을 기다립니다. 그래서 고양이 안녕하세요 찾을 수 있습니다. 안녕하세요. 찾을 수 있습니다. 내가 찾아 입력 할 때마다 주목 내가 찾기를 입력 인식합니다. 그래서 그 대신이의 의지 찾기위한 파일을 검색합니다. 그래서 역사는 지금에 가고 출력 모든 명령의 목록을 표시합니다. 우리는 그 출력을 옮기고, 우리는, 그것을 grep을 먹이는 것 그리고 그것은 밖으로 뱉어 것 찾기의 모든 인스턴스. 그 이유는 나는 혼란 스러울 것이라고 말했다 여전히 혼란 난 ... 경우입니다. 나는 GREP grep으로합니다. 훨씬 항상 꽤 고시 명령 I을 보여주는 단지 그 명령 때문에 실행 그 자체가 그 안에 GREP 있습니다. 좋아, 그럼 아무것도에 대한 질문? 그리고이 시점에서 그것을 통해 전송됩니다. 희망이 좋은 모든 명령의 개요 당신은 할 필요가 없습니다 기억하지만, 이러한 메이크업 의 고체 95 % 내가 명령 줄에서 수행. 또한 명심 명령 행 그 자체가, 배쉬는 프로그래밍 언어입니다 그래서 당신은 당신이 그것을 내려 할 때 정말 복잡한 일을 수행 할 수 있습니다. 그리고 그것은 같은 것들을 가지고 루프 및 IFS, 그 모든 당신은 익숙해 질 거라고 당신의 프로그래밍 언어. 하지만 그 이상입니다 이 섹션의 범위. OK, 그래서 아무 질문? ALLISON : 없음? 가브리엘 : 당신은 어떻게 .. 건가요 앨리슨 : 나는 그것을 할 수 있습니다 광산에 당신이 원하는 경우. 우리는 어떻게 볼 수 있습니다. ROB 보덴 : 앨리슨에 오프. ALLISON : 우. 당신은 롭을 따르지 하드 행동하고 있습니다. 당신은 내가 당신과 함께 전환 하시겠습니까? 아니면 확인되었다. 나는 시도하지거야 확실히이 같은 길어질 수. 의이 뜻이 있는지 확인하자 나는 그것을 원하는 방식으로 작동합니다. 아마? 하하! 예. 그래서 난 그냥 매우 빨리 갈거야 변수, 루프, 조건문을 통해, 컴파일러에 조금. 당신은 질문이있는 경우 모든 시간은, 저를 중지하십시오. 이 분들은 반복을 생각 나게합니다 내가 잊어 버린 경우 귀하의 질문에, 하지만 너무 나쁘지 않을 것이다. 변수 그래, 좋아. 우리는 어떠한 일이없는 당신의 여기에 스크래치 조각. 나는 경우, 대부분의 확신 당신은 게임의 일종을했다 당신이 스크래치로 만든, 당신은했다 점수 같은 것을 추적하기 위해, 또는 시간, 또는 그런 일. 그 밝은 오렌지 그래서 우리가 볼 조각 단지 스크래치 형태입니다 변수, 당신은 확실히 변수를 사용하고있을 프로그램 전반에 걸쳐. 당신이하지 않은 경우, 정말 아니에요 확실히 당신이 무슨 일을하는지. 어쨌든, 큰 것, 변수를 정의. C로 모든 변수는있다 유형 선언해야합니다, 그래서 나는 당신에게 매우했다 상단에 일반적인 하나. 그래서, 당신은 당신의 것 입력 한 후 어떤 당신은 당신의 변수를 호출하기로 결정. 이 경우, 유형에 따라서 당신의 변수 목록에서. 우리는 세 가지 예를 가지고있다. 일부 등급의 샤아, 무엇이다,의 여러분 모두 원하는 확신 이 클래스에서 얻을 수 있습니다. 여러 정의 할 수 있습니다 한 줄에 변수 한 그들은 모두 같은 종류의 것으로, 이 두 번째 예는있다 당신은 세 가지를 어디에 변수, x, y 및 z. 그들은 모두 수레를하고 있습니다. 그리고 당신이 마지막으로, 또한 수 INT 점수 및 번호와 함께 예 팀, 당신은 할 수 거기를 초기화합니다. 여기서 중간 예에 따라서 우리 단, x, y, z의 플로트를 가지고 사람들은 아직 초기화되지 않습니다. 그들은 아무런 가치가 없습니다. 아니면 쓰레기 값이 있습니다. 그리고 당신은 시도하고 그들을 사용하는 경우, 컴파일러는 당신 소리 것입니다. 당신은 모두 선언해야하고 당신의 변수를 초기화합니다. 이 마지막에 그래서, 우리 둘 다하고 있어요. 우리는 변수를 선언하고 있습니다 의 득점과 팀의 수, 우리는 그들을 초기화주고있다 7과 4의 그 초기 값 각각. 쿨. 모두 좋은? 신난다. 좋아, 그럼 몇 가지 규칙. 너희들은 읽었다면 스타일 (50),이 우리가 싶은 게 일이다 당신은 당신의 스타일을 구현합니다. 그래서 의미있는 이름. 당신은 일을 호출 시작하면 단 x, y 및 z를, 특히 당신은 더 긴 들어갈로 프로그램, 당신이있어 아마로 이동 자신을 혼동 할 같은 언급이 변수는 무엇인가. 나는 이것이 무엇을 의미하는지 전혀 모른다. 가 개최 의미하는 것다면 점수는,이 점수를 호출합니다. 그것은 몇 가지 대답을 담고 있습니다 있다면 또는, 결과 그에게 그런 이름을 지정합니다. 루프에 대한 어떤 우리는 것 다음 슬라이드에 들어가, 단일 문자 변수는 정상입니다. ROB 보덴 : I, J, k는있다 루프 단지 규칙 모두가 그것들을 기대하는 그 J와 K, I라고합니다. 내가 행을 참조 데모 테잎 호출 할 수 있습니다 열 또는 행 호출 때때로 두 개의 중첩 루프, 그리고에 대한 그 또한 종류의 표준입니다. 그러나, i 및 j는 완전히 이해된다. ALLISON : 네, 그리고 J는 완전히 괜찮아요. 선명도의 술 등에 하여 P 세트 중 일부에있어서, 그것은 더 많은 것을 가지고 의미가 있습니다 이 단지에서 설명하는 것들 그것의 트랙을 유지합니다. 하지만 난, J, 그리고 내가 생각하는 케이 생각 우리의 대부분의 모든 사용. ROB 보덴 : 다음으로 규칙은, 그래서 스타일은 중요하다. 그것은 네 개의 축 중 하나 하는 당신은 등급이있어, 그리고 그것은 단지 가서 너무 쉽다 당신의 P는 마지막에 설정하고 확인 문체의 실수가 아니라는 것을. 그래서 제대로 탭 이동하고 있는지 확인하십시오. 당신의 변수의 이름을 지정해야합니다. 일부 의견을 남겨주세요. 그것은 그 포인트를 획득하는 것은 매우 쉽습니다. 당신은 생각하지 않아도 위해 무엇이든 그 포인트를 얻을 수 있습니다. 당신은 아무것도 알아낼 필요가 없습니다. 그것은 그냥 예쁘게 만들고있다. ALLISON : 사실, 우리 , 스타일 (50)이있는 당신이 장난있는 곳을 알려줍니다 당신이 스타일을 엉망으로하는 경우 최대 그리고 당신을 말할 것이다 정확히 당신에게 수정해야하고 어떻게 그것을 해결하기 위해 필요합니다. 그것은 언급도 그냥 좋은 있음은 물론 정책의 당신이 사무실에 있다면 그 시간과 코드가 엉망이다, 우리는 도움을 거절 할 수 있습니다 당신은 그것을 더 좋은 모습이 될 때까지. 그래서 바로 밖으로 시작, 일관된 스타일을 유지, 당신은 또한 단지 만들거야 때 당신의 삶을 훨씬 더 쉽게 당신은 디버그를 통해 이동하려고 노력하고 있습니다. 당신은 알아 내려고 노력하는 경우 당신은 중괄호를 놓치고 곳 그들은 당신이있어, 도처에있다 단지 열심히 자신의 삶을. 그래서 스타일과 일치. 나는 여러분의 인생을 더 쉽게 만드는 것입니다 약속드립니다. 그것은 우리의 삶을 쉽게 만들 수 있습니다. 모두가 더 행복 할 것입니다. 그리고 당신이 원하는거야. 가브리엘 : 당신의 등급이 높을 것이다. ALLISON : 네, 그리고 성적. 당신의 TF 당신처럼 있다면, 유리한 경향이있다. 좋아, 다음 단지 여기에 두 번째 점. 일관된 초기화. 우리가 본 그래서, 당신은 선언 할 수 있습니다 물건을 초기화합니다. 같은 줄에 여러 변수. 우리가 당신을하지 싶은 한 가지 할 것은 몇 가지 변수를 선언하는 것입니다 같은 그들을 초기화하지 당신은 다른 사람을 초기화하는 라인. 그래서 경우에 만든 그 아무런 의미가 없습니다, 우리는 여기에 예를 여기서 우리는 정수를 선언하고 분기의 변수 센트 및 동전, 하지만 분기와 동전 더 초기 값이 없습니다. 우리는 그들을 초기화하지 않은, 그러나이 중간에 권리 우리는 이미 임 0으로 초기화. 그러니 분기, 10 센트,​​ 동전을한다. 또는 분기는 0과 동일 할. 임 0과 동일. 동전은 0과 동일, 또는 무엇이든 그 초기 값입니다. 스타일에 큰 일이, 일치. 의심의 여지가있을 때는, 일관성. 하지만 너무 우리의 스타일 가이드를 따르십시오. 쿨. 모두가 좋은? 청중 : 스타일 가이드는 어디있어? ALLISON : 스타일 가이드 웹 사이트의 어떤 박사님의입니까? 가브리엘 : 나는 manual.cs50.net/-- 생각 ALLISON : 스타일? 가브리엘 : 스타일. 네. ALLISON : 예. 스타일 50입니다 그래서 질문입니다. manual.cs50.net/style. 네? 청중 : 우리가 정의하는 경우 변수는 OK입니다 우리는 [들림]처럼 넣으면 같은 INT 점수와 다음 INT 목표. 그래서 지금 우리가했다고 말할 것입니다 둘을 정의 할 수있어? 앨리슨 : 그래서해야, 질문 당신은 중복 코드를 때 당신이 정의하는 int와 점수 등의 변수와 다음 라인 INT 게임에? ROB 보덴 : 확실히있다 중복 코드가 나쁜 경우. 나는 고려하지 것이다 그 중복 코드. 나는 거의 여러 선언하지 지금 같은 줄에 변수. 어떤 경우에, 그것은 때문이다 보통 나는 주석의 일종을 떠나 변수가 무엇인지 설명. 그래서 INT 점수 슬래시 슬래시를 말할 것이다. 무엇을 추적합니다. 총 슬래시 슬래시. 그래서 그 방법으로 많은 grosser이다 같은 줄에 모두 넣어. 난 그냥 같은 줄에 넣어하지 마십시오. 앨리슨 : 기분이처럼 이 시점에서 개인적인 취향. 청중 : 그 가고 있는가 너무 루프와 물건을 검색 하시나요? ROB 보덴 : 내부처럼? INT와 마찬가지로 나는 0 쉼표 동일 길이는 뭔가 같다? 당신은 선택의 여지가 없어있다. 루프에 대한 초기화와 부분이지 그렇게 만 볼 수도 INT 내가 덜 0 세미콜론 동일 어떤 세미콜론 나는 플러스 플러스보다. 그 INT의 난, 0과 동일 기술적으로도 수 우리가 전에 본 것을 할 쉼표 구문. INT 난 0 쉼표 J 동일 3 쉼표 k는 5 동일 같다. 당신은 분할 선택의 여지가 없어 여러 줄에 그 최대, 그 표준입니다. 그것을 보는 것은 괜찮있다. ALLISON : 신난다. 음, 루프에 편리 SEGUE. 그래서 그래, 여기에 우리가 몇 가지 예를 의 너희들은 스크래치에서 본 것을 반복합니다. 그리고 물론이 모든 단지 C로 재현 할 수 그리고 그들은 기본적으로 허용 코드의 어떤 부분을 반복 특정 조건까지 저희는거야, 충족 이야기 직후에 들어가 대한 조건문과 루프. 그래서 우리는 세 가지 주요 유형이있다. 동안, 그리고 않지만, 들어있는 우리는 지금 거치게됩니다. 그래서 첫 번째 루프입니다. 어떤 조건에 따라서, 코드 블록을 실행합니다. 우리는이 멋진 작은이 맨 아래에있는 여기 다이어그램. 그러나 기본적으로 당신은에있는 당신을 위해, 첫 번째 줄 것을, 당신은에 갈거야 당신의 변수를 초기화합니다. 우리가 이야기 그래서, 난입니다 0 또는 나는 동일한 10과 동일하다. 당신은 무엇을해야 변수는 그것의 할 수 이 초기화 될 것, 선언과 어떤 값으로 초기화. 그럼 우리는 몇 가지가 그 조건은거야 확인 될 우리의 뭔가에 대한 변수입니다. 일반적인 경우 경우 경우에 따라서 어쩌면 당신은이 부분의 코드를 원하는 다섯 번을 실행합니다. 그래서 우리는 내가 0에 해당하는 int 가지고, 우리 것 내가 5보다 작은 경우이 원하는. 그래서 그 조건은 그냥 때마다 확인하는 것. 그 실행 조건 참으로 평가, 그건 정확하게 코드를 실행하는 것 이 작은 그림은 무엇을 보여주고있다. 그리고 그것을 실행합니다. 이 변수를 갱신, 우리가 무엇을보고있는 우리 대한의 마지막 부분에서 이 루프 초기화. 그래서 그냥이 일을 계속합니다 그 조건이 충족되지 않을 때까지, 후 종료됩니다 루프 계속 프로그램의 나머지 부분에 이동. 모두가 좋은? 쿨. 그래서 여기, 아주 비슷한 예입니다 뭔가 그냥 이야기. 그래서 우리는 인쇄 할 이 10 배 CS50이다. 그래서 우리가 여기에 참조 우리에 대한, 그리고 우리 변수를 초기화 나는 0이된다. 우리의 조건을 확인한다 그것은 10 이하의 것을. 때 처음 그래서 true로 평가 시작하고 우리의 변수를 업데이트 실제로 실행될 때마다 이 밖에 지문이 CS50입니다. 그리고 10 시간 후 종료됩니다. 쿨. 루프 다음​​은 동안 그래서. 당신이 여기에서 보는 바와 같이, 우리는이 어떤이 condition-- 질문하는 동안? 청중 : 나는 어떻게 이동할 수 있습니다 실제로 불과하지 하나의 번호, 하지만 두 숫자 [들림] 나는 플러스 플러스 플러스? ALLISON : 그래서 질문은 어떻게 할 수 있었다 이상의하여 변수를 업데이트 한 번에. 그래서 나는 플러스 플러스는 것 한마다로 갱신. 당신은하여 업데이트하고 싶었다면 두 사람은, 내가 플러스 2에 해당 할 수 있습니다. ROB 보덴 : 당신은 본 적이 플러스 아직 강의에서 동일? 청중 : [들리지]. 앨리슨 : 그것은 효과적으로이다 같은 일을 내가 플러스 2 동등하게. 그래서 그것을 걸릴 거예요 및 두 각각의 시간을 업데이트합니다. 게다가 단지 뭔가 일치 한 우리는 문법적를 호출합니다. ROB 보덴 : 그래, 사람들은 존재 거의 모든 산술 연산자. 동일 그래서 제가 배 번호를 두 번 것입니다. j 개의 분할 3은 동일 같음 J으로 3으로 나눈 J 같습니다. ALLISON : 또는 마이너스 2 것 같다 두 각각의 시간에 나는를 감소. ROB 보덴 : 심지어 모드와 동일합니다. 당신은 비트 연산자를 보지 못했다, 하지만, 캐럿 같고 앰퍼샌드 같음 이들 모두가 존재한다. ALLISON : 시간이 너무 많이, 특히 P 세트의 첫 번째 부부, 당신은 아마로 증가 할 것 하나, 그래서 플러스 플러스, J 플러스 플러스 당신이거야 모든 것이 있습니다 일반적으로 사용합니다. 그러나 업데이트 조건은 완전히 통제 할. 당신은 어떤 단위로 업데이트 할 수 있습니다 또는 어떤 방법으로 당신이하기로 결정. 아마 당신도이 원하는 때로는 임의의 숫자. 그러나 네, 많이 있습니다 상황이 그와 함께 할 수 있습니다. 당신은 내가 플러스 플러스에 제한되지 것입니다. ROB 보덴 : 그냥 그렇게 또한, 존재하는 알 또 다른 형태로 존재, 플러스 플러스 나. 만약 당신이 온라인으로 검색하는 경우에 따라서 볼 일이 플러스 플러스 I, 거의 같은 일을 의미한다. ALLISON : 차가운. 좋은? 신난다. while 루프 그래서. 매우 유사합니다. 당신은 몇 가지 조건이있다. 중요한 것은 고지 여기에 대신 필요하다 세 가지 다른 부분 설정하기 위해, 우리는 하나가 있습니다. 우리는 어떤 조건을 가지고 그 검사중인입니다. 그리고 같은 방법으로,만큼 그 조건이 true로 평가 당신의 코드를 실행하는 것입니다. 그리고 그것은 거짓, 그것을 , 이동 종료됩니다 프로그램의 다음 부분 위에. 그래서이 종류의 무엇 라니한다 검사의 좋은 예 일부 정상 상태 하시나요? 가브리엘 : 진정한 동안. 앨리슨 : 당신은 진정한 동안 할 수 있었다. 글쎄, 1은 1과 동일하다. ROB 보덴 : 당신은 while-- 할 수 다만 대신 루프를 사용, 당신은 항상를 코딩 할 수 있습니다 while 루프에서 루프, 그래서 0보다 큰 또는 나는 10 미만 동안. ALLISON : 신난다. 그리고 우리가 할 한 루프,하는 동안 사용자 검증을 위해 중대하다 당신이 뭔가를 얻으려면 이 유효의 경우 사용자가 참조 다음 거기에서 계속. 그래서 알 수있는 것 중 하나는 함께 이 실행 거라는 동안 수행 한 후 다시 실행됩니다 이 조건이 충족되는 경우. 그래서 아마도 가장 좋은 방법은이 작업을 수행하는 여기 예를 볼 것입니다. 방금 언급 한 바와 같이, 사용자 그래서 검증은 정말 useful--입니다 또는 할 그런데 정말입니다 사용자 유효성 검사에 유용합니다. 그래서이는 것입니다 일부 사용자를 다시하라는 메시지를 표시합니다 그들은 양수를 입력 할 때까지, 당신의 P 세트에 대한 유용 할 수있는 이번 주에. 그리고이 경우에, 때 처음에이 프로그램을 실행, 그것은 인쇄 할 것 양수를 입력합니다. 그것은 몇 가지를 얻을 것 사용자로부터의 입력, 후 확인할 것 조건에 해당 입력 것을 당신은 그것을 설정했습니다. 그래서이 경우에는 확인하는 것입니다. 그것은 확인을 말할 것 우리의 입력이 부정, 또는 0 또는 음이며, 이는 잘못된 것입니다. 그래서 다음 다시 프롬프트 것입니다. 질문? 관객 :로 다음이 같은 것 루프 동안 당신은 단지 그 코드를 복사 한 경우 그것은 [들림] 루프 동안 넣어? ALLISON : 것 질문이었다 그래서 이것은 단지 잠시와 동일 할 루프 우리는한다면 단지 위의 while 루프를 복사합니다. 이 경우, 당신의 while 루프는 먼저 상태를 확인하는 것. 우리는 노력이 경우, 만일 그렇다면 단지 while 루프로 쓰고, 그것은 잠시 말을 입력 미만이다. 그러나 우리는 그것의 입력이 없습니다. 청중 : 당신이 만약 [들림] 루프가이 코드를 포함하는 동안, 하지만 당신은 코드를 대처 또한 while 루프 위. 당신은이 코드를했다 [들림] 루프 동안. 앨리슨 : 그것은 것 같은 일, 예. 그래서 그냥 write-- 수 대신 하시죠 예를 갖는. 가브리엘 :하지만 더 우아한입니다. 앨리슨 : 그래, 더 우아한입니다. 당신은 디자인과 이것 저것에 얻을 수 있습니다 하지만 그래, 당신은 완전히 그 작업을 수행 할 수 있습니다. 다른 질문? 시원하고 확인을 클릭합니다. 그래서 우리는 조건에 대해 많이 얘기했습니다 우리가 가지고있는 모든 루프와, 그래서 우리는 사실에 있어요 부울 식의 조건. 다시 말하지만, 당신은 C에서 이러한를 사용, 그래서 그냥 가지 전환 더 그래픽 인터페이스에서 실제로 코딩에. 쿨, 너무 커서 한 경우. 기본적으로 그냥 소개 할 수있게 해준다 우리의 프로그램 체크에 약간의 논리 SYS 조건. 이 경우에 따라서, 확인, 0 n보다 크다? 이 실행할 수 있도록 예는이다. 그것은 단지 일부를 체크 것 만약 여러분의 조건 나는 우리가 모두라고 생각하는 설정 조건을 확인 편안. 쿨. 그래서 다른 하나 다른 경우, 이것이 사실이라면 당신은 확인을 말할 수있다 이 첫 번째 일을. 그렇지 않으면 내가 당신을 원하는 기본 및 다른 일을. 이 경우처럼, 당신은 하나를 선택 양수 또는 음수. 당신은 두 가지 옵션이 있습니다. 당신은 상관없이 실행해야 어떤 사용자 입력. 그래서 당신은 잘 말할 수있다 이는 0보다 크다? 쿨. 양수를 인쇄합니다. 그렇지 않은 경우, 부정적인를 인쇄 할 수 있습니다. 모두 좋은? 그리고 인식 한 것입니다 만약 조건이 충족되는 경우 즉, 다른 사람은 실행되지 않습니다. 이들 중 하나는 것 한번에 실행한다. 그래서 트레이드 오프입니다. 당신은 모두를 가지고하지 않습니다. 당신도 첫 번째 조건이있다. 당신은 어느 경우가 또는 다른, 둘. 그러면 모든 일을 할 수있는 더 복잡한, 당신이 경우에 할 수 있기 때문에 그것은 다른 한 다음 다른. 이 경우 그래서, 우리 세 가지 조건이있다. 그리고 또, 이들 중 하나만 인 결국하려고하는가 실행되는 것을 확인할 수 있습니다. 그래서 당신은 궁금 할 것이다 그럼, 당신이 경우 뭔가를 그 이 두 가지를 충족 할 수 있습니다. 어쩌면 당신은 입력하든 조건을 모두 충족 에 대한 경우와 다른 경우. 실행하는 것 한가지 앨리슨 : 즉시 그것은 뭔가를 발견로 그것은 그의 조건을 충족 참으로 평가, 그게 무슨이다 그것을 실행하지 않고 아무것도 할 것입니다. 당신이 가지고 있다면 그래서는이 번호 당신의 첫 번째 0에서 5 사이, 또는 3 사이의 숫자입니다 과 다른 경우 일부 5, 당신은 입력 번호도 I는 0과 5과 ... 4 말했다. 그것은 첫 번째를 칠 것입니다. 그것은 OK,이 말 것 숫자 0에서 5 사이이다. 실행하고 떠난다. 그것은 그 두 번째 옵션을 공격하지 않습니다. 쿨? 신난다. OK 우리는 또한 스위치 if 문이 당신도 안해 ... 또는 죄송 싶어 스위치 옆에 있습니다. 여기 고수합니다. 또, 여러 블록의 경우 여기서 내가 말한대로 바로이 조건을 발견하면됩니다 그 충족과 다른 경우 다른 경우에있어, 그것은 나뭇잎. 당신은 확인해야하는 경우 여러 가지, 당신이있어 이 때문에를 사용할 것 여기 때마다 확인합니다. 그래서이를 통해하면 실행됩니다 이는 90보다 크거나 같은 야 그것은 그를 인쇄 할 것입니다. 그리고 그것을 통해 실행되고 이들 하나 하나를 확인합니다. 청중 : 그래서이 될 것이다 [들림]보다 더 많은 버그. 이 [들림] 같은 것입니까? 앨리슨 : 질문이 될 것입니다 버그 또는이 당신이 원하는 것을 할 수 없습니다. 정말에 따라 달라집니다 당신은 당신의 프로그램에서 원하는. 청중 : 난 당신이 90를 넣어 경우처럼 의미한다. ALLISON : 당신이 두는 경우에 90-- 청중 : [들리지]. 가브리엘 : 당신은 두 가지를 얻을 것입니다. 앨리슨 : 당신은 두 가지를 얻을 것입니다. 예, 두. ROB 보덴 : 두? ALLISON : 아니오. ROB 보덴 : 4. 당신이 90를 넣어 경우에, 당신 말 것 당신은 C를 가지고, 당신은 B를 가지고,있어 당신은 D.있어 청중 : [들리지]. ALLISON : 오른쪽. 그래서 나는 당신에 따라 달라집니다 당신이 프로그램에서 원하는. 때때로 당신은 필요 여러 가지를 확인합니다. 당신은에 훨씬 더 깊이 얻을 것이다 무엇 당신이 앞으로 가서 좋은 디자인입니다. 중요한 것은 실현이 있다는 것입니다 여기에 네 가지 조건을 확인합니다. 반면이 경우 다른 다른 경우라면 다른 경우에, 그것은, 그 첫 번째 경우에 충돌 할 당신이있어 및 인쇄 할 수있다. ROB 보덴 : 심지어 우리의 경우 경우에이를 변경하기로 결정 90보다 크거나 같음, , 만약 80보다 크거나 같음 및 (89)보다 작거나 같을 경우 N (70)보다 크거나 같음, n은 이하 79, 그래서 올바른 것입니다. 그게 우리가 원하는 것을 할 수 있지만 것 그것은 여전히​​ 하나 하나를 확인합니다. 첫 번째 시나리오에서 반면, 경우에 따라서 우리 다만 다른 경우 다른 경우 경우 90을 입력 우리는, 90를 입력 그것을 해결하는 것입니다. 그것은 먼저 확인합니다 하나, 인쇄 당신이있어 모든 것을 건너 그것 때문에 이미 하나의 작품을 발견했다. 모든 경우는 상호 배타적 만약 다른 경우 다른 경우에 기반. 그래서 실행합니다 첫 번째 경우, 그것은 이루어집니다. 그것은 끝으로 이동합니다. 우리가 변경하는 경우 반면 이것은 내가 무엇이어야합니다 89 이하로 말. 그것은 첫 번째를 확인하는 것입니다. 그것은 인쇄 할 수 있습니다. 그것은 두 번째를 확인합니다. 그것은 인쇄 할 수 없을거야. 세 번째를 확인합니다. 인쇄를하지 못하는. 네 번째를 확인합니다. 이제 인쇄 할 것이다. , 다른 경우 경우에 따라서 버전, 이후 이러한 경우 상호 배타적, 그것의이다 만약 다른 경우 경우 다른보다 효율적으로 사용, 그 때문에해야 할 것입니다 조건 적은 점검 이 버전보다. ALLISON : 신난다. 그래서 또 다른 것은 우리는 할 수 이렇게 스위치 문이다. 기본적으로 switch 문 일부 변수에 소요, 이 경우에는 N, 그리고 실행하는 경우를 결정합니다. 그래서이 한 곳을 경우도 있습니다 가지 상호 배타적이어야한다. 이 경우, 만일 그렇다면 우리는 우리는 하나, 그것의 취득 어떤 일치하는 것 N의 variable--는 어떤 값 이러한 경우의 일이므로 1, 2, 또는이고 도 3과 대응하는 행을 출력한다. 그리고 여기가 나는 경우, 우리는 또한 기본을 가지고, 이는 당신이 다른 사람과 같은 생각의 수 있습니다. 당신이 다른 번호를 선택한다면 이 경우에는 1, 2, 3 게다가 그냥 잘못 인쇄 할 것입니다. 대 IFS를 사용하는 경우 결정 스위치 대를 elses 경우 것입니다 무언가를 할 것을 너희들 것 당신이 쓰기 시작으로 현명한 설계 참조 더 복잡한 프로그램 및 더 단단하고 빠른 규칙이 없다 의 사용시기. 정말 당신의 상황에 따라 달라집니다. ROB 보덴 : 그리고 단지 거기 밖으로 던져 그것은 더 편안 부분이기 때문이다. 스위치, 그들은 경향 더 쉽 겠죠 ... 그래서 당신은 제한하고 방법의 수가 너 사용할 수있는 IFS 때문에, 조건이 꽤 될 수 있습니다 당신이 원하는 많은 것을. 와 함께 사건을 전환 숫자해야, 또는 기술적으로는 문자가 될 수 있지만, 우리가 살펴 보 겠지만 문자는 숫자에 불과하다. 그래서 그들은 수 있지만, 스위치해야 만약보다 정말로 더 효율적 또 다른 경우, 경우도 있기 때문에 before-- 아니라 예를 복용, 등급의 예는 좋은 것 같다. 그럼 우리가 대신 할, 여기서 가정 해 봅시다 이 경우 다른 같은 시나리오의 경우 다른 경우. , n이 동일한 경우는 1에 해당 그래서 당신이 낮은 번호를 집어 인쇄 할 수 있습니다. n은 2와 동일한 동일한 경우는 다른 경우 당신은 매체 수를 들었다. 등호 3 동일한 경우 그렇지, 높은. 그렇지 유효. 그럼 그 시나리오이었다 가정 해 봅시다. 그래서 우리가 입력 해 봅시다 4, 우리는 잘못된 기대합니다. 방법이 다른 경우 경우 다른 그 접근이 일을려고하는 경우이다 첫 번째 조건을 확인합니다. 그것은 만족 아니에요. 그래서 우리는 두 번째 조건을 확인합니다. 그것은 만족 아니에요. 세 번째 조건을 확인하십시오. 만족하지. 그래서 우리는 다른에 가서 잘못 인쇄 할 수 있습니다. 방법 스위치 작동 그것은 아래로 컴파일입니다 우리가 가고있는 무슨에 점프 테이블을 호출합니다. 주요 아이디어의 존재 당신은 4를 입력 할 때, 그것은 바로 기본에 갈 수 있습니다. 그것은 오전 I의 경우 1을 확인 할 필요가 없다? 아니 그게 아니에요. 사례 2? 아니. 사례 3? 아니. 기본. OK,이 나는 곳이어야합니다 원하고, 그 실행합니다. 아니, 즉시 기본으로 이동합니다. 아니면 2를 입력 그것, 그것은이다 바로 2로 갈 경우 1 통과 할 필요없이. 그 방법에 따라서, 현실적으로 현재의 그 효율성 이득의 많은하지. 일반적으로 컴퓨터는 꽤 있습니다 빠르고, 그 위대한 아니다. 그러나이 사건은 그 스위치는 빠릅니다. 당신이 정말로하려는 경우 최적화하기 위해 스위치를 사용합니다. ALLISON : 차가운. 그리고 우리는 삼항 연산자가 있습니다. 그래서 내가 앞서 언급 한 알 단어 문법 설탕. 그래서 만들 단지 일을의 훨씬 더 간결한 코드. 그래서 이것은 그 사례 중 하나입니다. 그래서 삼항 연산자는 물음표 콜론 우리는 줄 문자열에서 보는 바와 같이 S 100보다 큰 n 값과 동일 물음표 높은 대장 낮은. 그래서 기본적으로이 작업을 수행하는 방법을 그것의이다 100보다 큰 n은 조건이다. 그래서 나는 그것을 이해 수 있다고 생각합니다. 이 질문을 같아요. 그것은 오, n은 100보다 큰 같다고 말하는거야. 누가 알 겠어요? 그리고 그것은로 평가되면 사실, 그것은 당신에게주는 것 의 우선 하이 인 나열된. 그렇지 않으면 당신이 낮은 줄 것입니다. 그래서 그냥 정말 간단하고 효율적인 방법은 경우 다른처럼해야 할 일. 즉, 모든이가있다. 그리고 우리는이 작성했다면 조건부 다른 경우로 n이 큰 경우는 것 (100)보다 높은 돌아갑니다. 그렇지, 저 돌아갑니다. 이것은 단지 훨씬 더 를 작성하는 간결한 방법. ROB 보덴 : 그래서이 특정 예 때마다 당신은 어떤 일을하고있다 이와 같이,이 패턴은 어디 매우 자주 삼원를 사용합니다. 그래서 우리는 아직 범위에 대해 얘기하지 않은 하지만 문자열의 세미콜론을보고 싫어. N 100보다 큰 경우의 높은 같습니다. 그렇지, S는 낮은 같습니다. 그 패턴 그래서, 그 다섯 줄 시간의 코드를 그대로 100 % 무엇으로 전달 될 수있다 거기 터너와이었다. 그래서 삼항, 한 줄의 코드. 다섯, 다른 경우. 그게 내가 지적 예제 매번 밖으로. 이 것 좋은 장소 삼항 연산자에 대한. 너무 깨끗. 그러나 사람들은 그것을 사용하지 않습니다하는 경향이있다. 앨리슨 : 게이브 그것을 가져가. 가브리엘 : 그래서 지금 너희들 모두 강연이 주에서 배운 에 모든 것이 컴퓨터 오른쪽, 이진? 그냥 여기 램프 등이있다. 당신은 할 수 중 하나를 켜거나 끌 수 있습니다. 그리고 모두에 의해, 내 말은 말 그대로 다. 일부 숫자, 문자, 문자열, 심지어 코드는이 때 쓰기 그 그것은 기계로 컴파일됩니다 그런 코드와 물건, 그래서 모두는 0과 1 '로 요약된다. 그래서 우리는 처리 할 때 정수와있는 기술적으로 매우 뭔가입니다 간단한, 우리는 물건을 할 수 있어야한다 인에 추가 추천 단순한 사물의 아마 하나 당신이 바로, 두 개의 정수로 할 수 있습니까? 그래서 덧셈과 뺄셈은 작동 이 10 진법으로 작품에 관심을 표시하고, 여기를 제외하고 그것은 바로, 진인가? 그래서 기본 두입니다. 그래서 1 더하기 1을 추가합니다. 즉 0을 제공하고, 1을 통해 전달합니다. 그냥 그래서 지금, 그 일을 계속 더 재미있는 질문은 온다. 우리 모두를 표현하는 방법을 알고 컴퓨터 양의 정수, 하지만 이제이 운동을 만들어 보자. 너희들이 1960에있는 척 뭔가, 컴퓨터를 만들려고 당신은 위로 올 필요 하나 뺀 저장하는 방법, 예를 들면, 또는 마이너스 그 문제에 대한 정수입니다. 당신은 어떻게 할 것인가? 어떤 아이디어? 그냥 나 한테 아무것도 던져. 네? 청중 : [들리지] 지정 당신의 [들림]의 경우 특별. 가브리엘 : 당신은 지정할 수 있습니다 0 또는 1이됩니다 특별한 비트. 그것이 긍정적인지의 하나를 가정 해 봅시다 0이 부정적이라면. 비트의 그리고 나머지 다만 번호를 저장한다. 쿨. 그래서 아주 좋은 생각입니다. 우리는, 나도 몰라, (200)이있다. 그리고, 첫 번째 비트 인 경우 켜져, 그럼 그건 플러스 (200). 꺼져 있다면, 그것은 200을 뺀 값이다. 쿨. 단지 작은 하나가 이 문제와, 이는 우리가 일을 요약하려고하면입니다. 그래서 우리는 여기에 11111을 상상하고, 우리는 00100 무엇 이건이 합산하고 있습니다. 그 두 정의 경우, 그 괜찮아요. 그러나 다음의 경우 하나의 그것들은 같은 부정 의 말을하자이 비트 여기에 책임의 하나입니다 염려 마세요 나는 separate--를 만들려고 해요 그래서 하나는이 숫자가 여기에 의미 긍정적이다. 이 사람은이 있음을 의미 여기에 숫자, 오른쪽 음? 그러나 당신이있을 때 이를 더할 것, 당신 if 문이 필요 이것이 0이면 오 말하는 다음 내 합계가 될 것입니다 뭔가 다른, 맞죠? 그래서 약간있다 할 방법이 더 영리한 2의 보수라고하는 그. 그래서 기본적으로 우리 이렇게 우리가 정의되어 마이너스 1 일이 될하는 경우 그 (1) 우리 0을 제공하기 위해 우리는 추가 할. 날이 반복하자. 그럼 여기이 1이라고 가정 해 봅시다. 점은 무엇입니까 그 자연스럽게 양의 정수에 그 추가는 우리 영에게 제공? 우리는이 번호에 추가하기 위해 무엇을하려고하면? 우리는 확인을 드 니스, 니, 그럼 추가 할 것입니다. 우리는 1 플러스 1을 할거야 0이며, 그것은을 통해 전달합니다. 그리고 우리는 다시 공을받을거야. 나는 혼란 얻고있다. 그리고 0을받을거야와 0 0 0 0 0. 0의 많아요. 맨 마지막에, 우리는 아니에요 를 이월 할 수있는 것, 할 수 있기 때문에의 우리 만 다루고 말 한 바이트, 그래서 8 비트 만과. 그래서 컴퓨터는 기본적으로 무엇을 단지입니다 [들림]에 대해 잊어 OK? 그래서이 소위입니다 2의 보수. 을 것으로 우리는 단순히 1을 뺀 정의 일이 여기에 당신은 1로 그를 추가하는 경우 있음 당신에게 공을 줄 것입니다. 그리고 꽤 멋진 우리가 정말하지 않기 때문에 구현 늦게 필요 합계의 다른 유형 그 여부에 따라 음수 또는 양수. 그 의미가 있습니까? 우리가 그래서 한 가지 여기에 변환하기 위해 긍정과 부정 사이 정수는 우리가 모든 것을 뒤집어됩니다 그리고 우리는 그 번호에 1을 추가합니다. 당신은 스스로를 수행하려고 할 경우 종이에, 그 말이 보게 될 것입니다. 하지만이 숫자를 가지고가는 경우에 여기에,이 다섯입니다. 내가 모든 것을 뒤집어한다면 여기서, 이렇게 1, 1, 1, 1, 1이다. 플립 플립 플립. 그리고 난에 1을 추가합니다. 나는 정확히 마이너스 5가 갈거야. OK? 이 종류의 의미가있는 경우 때문에 당신은 수와이 합계를 시도 우리는 이전에 있다고하는 다시 한 번이 플립하자 그러죠. 는 0의 101을 많이했다. 당신은이를 추가하려고하면 두 개의 숫자, 정확히 0이 될 것입니다. 확인을 클릭합니다. 질문? 청중 : [들리지] 가브리엘 : 당신은 무엇을 의미합니까? 청중 :에 부정적 긍정적 인 [들림]. 가브리엘 : 아니, 당신은 플립 그리고 당신은 항상 1을 추가합니다. 그래. 좋아, 그럼 문자도 바이너리 인코딩. 우리는 당신으로, ASCII 테이블이 마우스 오른쪽, 강의에서 본? 그래서 그것은 기본적으로 사물의 매핑입니다. 그리고 여기에 내가 충분히 강조 할 수 없다 그 컴퓨터, 및 65 말 그대로 같은 일이다. 나는 숯불 C와 같은 뭔가를 작성하는 경우 그래서 이 I 동시에 수 같음 여기서 65을 작성하고, OK, 정확히 같은 것입니까? 아무런 차이가 없습니다. 우리는 일반적으로 넣어하는 경향이 유형의 변수에 문자. 숯불이 아닌 그들이 본질적으로있어 때문에 그것을 위해 만들었지 만, 때문에 인간의 협약. 그러나 당신은 정수 처리 할 수 대신에 char 형의 변수, 당신은 괜찮을거야. 유일한 실제 차이 문자 c와 INT의 I 사이 INT는 대부분 4 바이트를 가지고 있다는 것입니다 시스템, 문자는 한 바이트가있다. 그들은 본질적 야 데이터의 관점에서 같은 일. 그래서 여기에 인쇄 할 것인가? 여기에 우리의 printf를 사용하여 숫자를 인쇄하는 플러스 1, 단지 정수와 같은, 문자는 그래서, 요약 될 수 문자는 합산 될 수있다. 그래서이 정확히 65. 그래서이있을거야 (66) 여기에서 우리는이 65 플러스 약간의 마이너스 큰, 될 것이다, 정말 모르겠어요. 그러나 정확히 격차 될 것입니다 대문자 사이 과와 작은 편지, 그래서 우리는 오른쪽 작은를받을거야? 그래. 그래서이를 인쇄 할 것입니다 정확히 하나의 문자. 좋은? 질문? 여기에서 우리는 다른 한 무리가 숫자 변수의 종류. 우리는 이미 INT에 대해 이야기. 이 정말 인명 피해가 없는지 ... 플로트 그냥 방법입니다 재미 있고, 내가 처음 알았을 때 때문에 하루에 다시 프로그램으로 파이썬, 첫 번째 프로그램 이제까지 내가 작성했는데, 나는이 것을보고 유형은 호출과 형태는 float을했다. 그리고 플로트는 모든 실수에 대해이었다. 그럼 왜해야 물어 나는 그때 int를 사용합니까? 나는 모두를 사용할 수 있는지 때문에 플로트와 실수, 나는 바로, 정수 사용을 중지 것? 실수이기 때문에 훨씬 더 일반적인있다. 그것은 이것이 밝혀 컴퓨터에없는 경우 그들은 본질적으로있어 때문에 다른 것. 정수와 수레 그래서, 작업 당신은 그들에게 할 것을 때문에 본질적으로 다르​​다 그들은이 저장되는 방식의, OK? 우리는 작은 이야기거야 두 번째에서 그것에 대해 더 비트. 그래서 두 배는 더 큰 부동이다. 일반적으로 대부분의 시스템에서, 플로트 다만 INT처럼 4 바이트입니다. 그리고 배는 8 바이트입니다. 긴 긴 실제로 단지 상징이다 당신은 INT와 같은 유형이 추가됨. 당신은 오래 같이 int로 긴 말한다. 오래 오래 INT의 X는 이상을 확인합니다. 그래서 대부분의 시스템에서, 그 줄 것이다 대신 보통 네 개의 8 바이트. 그리고 당신은 실제로 제거 할 수 있습니다 에, 그냥 오래 오래 말할 수 있도록, 그 확인, 너무 작동? 당신은 또한 같은 다른 작업을 수행 할 수 서명되지 않은 INT 또는 다시 단지 부호 또한 작동합니다. 그리고 x는 변수가 될 만들 것 모든 긍정적 인처럼, 그래서 당신은 정말 부정을 가질 수 없습니다 우리가 여기서 본 방법으로 번호. 그래서 멋진 다음 포인트와 정밀도 부동. 그 이유 중 하나 이유를 대신 수레의 정수를 사용하려면, 정수는 100 % 정확한 마우스 오른쪽 때문에? 그것은 정확하게 그 숫자입니다. 부동 소수점를 들어, 경우 대답은 1 10-- 이상에 해당 말한다 나는 정확한이이 일이 여기에 프로그램, float.c. 즉 20 소수점 이하 자릿수로 인쇄합니다. 1 내지 10로 분할하고, 그 보통 오른쪽 0.1? 그러나 여기서 우리가 만드는 경우 부유하고 우리는 그것을 실행, 우리는 정확히 0.1이 아니라고 참조하십시오. 그것은 0.149 뭔가. 그리고 그 이유는? 당신은 정말 모든을 대표 할 수 없기 때문에 메모리에 하나의 가능한 실수 있기 때문에 그들 중 많은 uncountably. 그래서 우리는 기술적으로 만 수있어 그들의 유한 한 양을 나타냅니다 데이터의 한정된 양. 하지만 정말 재미있다. 지금이 구걸 의 질문 당신은 어떻게 것 대표 대해 이동 비트이, 오른쪽? 어떻게 수레 저장됩니까? 정수로 그것은 쉬웠다. 그러나 수레와 당신이 원하는 범위를 최대화하기 위해, 당신은 표현 할 수 있도록하려면 거대한 번호와 같은 매우 작은 숫자 동시에 0.000001. 그래서 다시, 같은 게임. 어떻게 우리가 할 수 사람이 어떤 생각을 가지고 있습니까 메모리에 플로트를 나타내는 가야? 그냥 아무것도 던져. 네, 그래요. 청중 : [들리지]로 두 개의 정수 하나 인 경우 되는 [들림] 하나의 존재 소수점 이하 다. 가브리엘 : OK, 멋진. 그래서 두 개의 서로 다른 정수. 당신은 12.45을 가질 수 있습니다, 그래서 12과 45이다. 니스. 무슨 말을하려고 감수? 같은 일이? 그래? 청중 : [들리지] 표기 위치를 기준으로 구분합니다. 가브리엘 : 과학 표기법, 그래 그게 무슨 보통이다. 그래서이 가수라고하는 것입니다. 즉 실제로 무슨이다 숫자와 지수 오른쪽 쉼표 단지 어디? 그래서이 뭔가 될 것입니다 형태 1, 2, 3, 4, 5 내지 10 배 마이너스 4. 난 그냥 정확히, 그래 ... 그 얘기 깨달았다. 그리고 마이너스 4이 (10)입니다 쉼표가 어디 있는지 확인을 정의하는 것? 브라질에서는 쉼표를 사용합니다. 여기 사람들은 점을 사용합니다. 그래서 점. 그리고 그 이유는 당신이 할 수있는, 멋진 이 사람에 당신의 비트를 많이 초점 여기에, 가수에, 그리고 그입니다 실제 정밀 될 것이다. 그리고 당신은 소수에이 작업을 수행 할 수 있습니다 또는 바이너리 기반 시스템에서. 다른있다 방법이를 구현합니다. 질문이 있으십니까? 네? 청중 : 얼마나 많은 장소 소수 [들림] 후? 가브리엘 : 그건 복잡한 질문이다, 그것은 결코 정말 100 % 정확한 때문에, 여기에 대한 참조로 인해 몇 가지 숫자는 100 % 정확합니다. 우리는 여기에 0.5을 넣으면 나는 믿는다 그것은 100 % 정확 것. 그것은 0.500000가 될 것입니다. 그래서 그 경우에, 그것은 완벽. 그러나 다른 경우에, 그것은 훨씬 덜 완벽. 내 경험에 의하면, 최대 네 개까지 같은, 다섯 소수점 꽤 정확하다. 당신이 두 번 사용하는 경우에 무슨 OK, 그보다 훨씬 더 정확하게? ROB 보덴 : 그래서 그냥 던져 수레에서 좀 더 상황, 나는 100 % 방법을 기억하지 수레의 사양은 실제로 작동 하지만 난 당신이 항상 기억 할 것을 수레 지저분한 받기 시작. 그래서 아이디어는, 당신이 정말로 얻을 때입니다 정말 큰 숫자 나 정말, 정말 작은 숫자는, 우리는 시작 더 악화을 받고 차별화에 가까운 두 수레 사이. 그래서이 생각하는 좋아하는 방법 부동 소수점의 부정확성과, 두 수레가있다 그 나는 그들을 지정하려고하면 C에서, 그 사실에도 불구하고 그들은 다른 수있어, 그들은 될거야 같은 숫자로 해석, 우리가 다르게 저장할 수 없기 때문에. 우리는 같은 비트를 사용합니다. 그래서 우리는에 도착하면 정말, 정말 많은 수의, (300) 또는 10 같은 이야기 무엇인가, 그것은 그 시점에서의 그 10 300 (300)에 5 배 (10) 분화 될 수 없다 300 7 시간 10. 그래서 꽤 큰 차이입니다 두 숫자 사이. 그러나 당신은 내려 할 때 정상 범위의 것들, 당신은 꽤 경향이있다 차별화에 좋은. 그리고 당신은 정말 작은 내려 할 때 당신은 또한 다시 아주 나쁜 있어요. 왕창 같은 0.0000, 그것은 아주 나쁜 가져옵니다. 가브리엘 : 네, 그래서 빠른 노트. 이 작업을 수행하지 마십시오. 절대 비교하려고하지 등호와 동일하여 수레, 그들은 거의 않더라도 때문에 같은 거의 동일한 동일하지 않다. 그래서 당신이 일반적으로 어떻게하면 빼기입니다 그것들은, 그 절대 값을 취 그보다 작을 경우 볼 그런 0.0001 뭔가, OK? 그리고 멋진. I 많은 사람들이 알고 자바에 몇 가지 배경, 특히 한 사람 AP 컴퓨터 과학, 맞죠? 그리고 자바는 언어이다 그 대부분은 C를 기반으로, 그것은 부부에게 매우 큰 차이가 있습니다. 그러나 같은 루프 및 IFS 및 물건에 대한 것을, 그들은 모두 동일한 구문을하고 있습니다. 나는 이것을 보여주기 위해 여기에 몇 가지 프로그램이 있습니다. 그래서 예를 들어, 간단한 헬로우 세계. 이것은 C에서 안녕하세요 인 당신을 얘들 아,와 확실히 잘 알고있는 이이 하나가 자바입니다. 자바에서 우리는이이 그래서 공용 클래스, 안녕하세요, 공공 정적 무효 주 및 문자열 인수. 문자열 인수가는거야 매우 곧 C에 나타납니다. 그러나의는 아직 갈 수 있습니다. 지금 우리는 의미, 여기 무효가 그 기본은 인수를하지 않습니다. 그리고 우리는이 System.out.println에, 그입니다 printf의에 대해 동등한 가지. 여기에서 우리는 정말 백 슬래시가 필요하지 않습니다 N 인쇄 LN가 당신을 위해 작업을 수행하기 때문이다. 그것은 백 슬래시를 추가 줄 끝에 명. 하지만 당신은에 갈 경우 대한 같은, 당신 그들이 걸 볼 수 있습니다 거의 같은 일. 그래서 초기화 및 조건 및 업데이트 는 ... 나는 그들이있어 이곳에 공간을 놓친 자바를 제외하고 거의 같은 일, 몇 가지 더 높은 수준의 물건으로 가지고있다. 여기에 우리가 할 수있는 플러스 I과 자바는 자동 것 이다, 내가 여기를 확인 정수, 문자열로, 다음을 추가 두 개의 문자열. 여기에 C에서 우리는 & % D 할 필요가있다. 여기에 라인에 대한 정확히 같은 보인다. 그리고 우리는 보면 IFS, 경우 마우스 오른쪽, 정확히 같은 모양? 그래서 진짜 큰 차이점은 당신이 여기에서 보는 것들에. 공공 정적 무효 및 다음 공용 클래스 경우. 그래서 자바는 무엇을 가지고 가상 머신이라고합니다. 그리고 그것은 매우 심하게 무엇을 기반으로 객체 지향 프로그래밍이라고합니다, 매우, 매우 일반적이다 요즘 프로그래밍 패러다임. 그리고이 클래스 것은, 당신이 볼 것입니다 객체 지향에서 무언가, 당신은 당신에게 다음 클래스를 생성하고 그 클래스에서 오브젝트를 유도 할 수있다. 우리는 너무 얘기하지 않을거야 CS50에서 그것에 대해 많은, 그러나 그것은 확실히이다 정말 멋진 무엇인가, 당신이에 가고 싶어 특히 보다 정교한 웹 개발 과정의 끝에, 같은 최종 프로젝트를 제출 어떤 좋은 프레임 워크와 물건. 그래서 기본적으로 아이디어는 점이다 뭔가를 다시 구현하지 않으려는, 그래서 당신은 뭔가를 만들 매우 일반적인, 같은 모양, 다음은 만들 그것에서 다른 모양, 다음 각각으로부터 이 모양은, 당신이 만들 세에서 좀 더 구체적인 모양 치수 또는 그런 일. 그리고 그들은이 계층들은이 그래서, 다른 사람들로부터 상속 모든 기능과 모든 변수가 큰 모양은 여기,이 모든가 해야 할 것,이 모두는있다 등 등해야 할 것. 그래서 기본적인 생각이다. C는이 있지만, C하지 않습니다 ++ 기능의 종류를 가지고있다. 그리고 자바는 크게 영향을 받는다 객체 지향하여, 당신이 볼 이유야 여기에 클래스의 모든 시간. 그리고 다른 것입니다 이 Java 가상 머신. 그래서이, 내가 생각하는, 아주 똑똑한 생각이다. 그래서 사람들은 누구 발명 자바는 않았다 그들은 싶지 않았다 두 번 자신의 코드를 컴파일 그들은 윈도우에서 실행해야한다면, 또는 Mac 또는 Linux는, 그래서 그들은 무엇을 그들은 문자 그대로 실행 어플라이언스 같은, 하지만 당신이 정말로 그것을 일어나는 볼 수 없습니다. 그래서 그들은 가상 머신을 실행 컴퓨터의 내부에있는 같은 기본적으로 미니 운영 체계. 그리고 그 운영 인생에서 시스템의 목적 단지 바이트 코드라고 불리는 실행하는 것입니다. 그래서 그 대신 C에서, 길을 우리는 것 이 경우 확인입니다 컴파일하고 실행 ./if. 나는 백 슬래시를 잊어 버렸습니다. 자바 먼저 할 것 C 자바는 컴파일하려면 if.c. 그것은 C. 그것의 도트 자바 아니다. 그리고 당신은 ./하지 실행해야합니다. 이 새로운 파일을 가져 if.class,하지만 당신은 할 수 없습니다 정말 지금 if.class을 실행 같은 우리는 전에했던. 이 실행되지 않습니다. 당신은 실행해야합니다. 당신은로 공급해야 자바라는 프로그램, 그 프로그램은 가상 머신은, 다음은 if.class 경우, 또는을한다. 예. 그리고 그것을 작동합니다. OK 그래서 이것은 가지입니다 가상 머신 경험을 할 수 있습니다. 내가한다면, 그래서 C는 그이 없습니다 Windows 시스템에서이 프로그램을 넣어, 그것은 않는 자바에서 C로 작동하지 않을 것입니다. 질문이 있으십니까? 쿨. 오늘은 슈퍼 섹션에 대한 경우입니다.