1 00:00:00,000 --> 00:00:02,742 >> [Musikwiedergabe] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI Peng: Das ist CS50 und willkommen in der Woche zwei der Sektion. 4 00:00:09,090 --> 00:00:11,740 Dies ist eigentlich während der Woche zwei unserer class-- tatsächlich, 5 00:00:11,740 --> 00:00:14,550 in der ersten Woche haben wir Schnitt hatten. 6 00:00:14,550 --> 00:00:18,897 Handzeichen, wie viele von euch allen kam zu Superschnitt der letzten Woche? 7 00:00:18,897 --> 00:00:19,480 OK, das ist OK. 8 00:00:19,480 --> 00:00:20,020 Das ist ok. 9 00:00:20,020 --> 00:00:23,110 Wie viele von Ihnen angeschaut Superschnitt der letzten Woche? 10 00:00:23,110 --> 00:00:23,610 OK. 11 00:00:23,610 --> 00:00:25,702 Und euch feinen tat Problem eingestellt ist? 12 00:00:25,702 --> 00:00:28,660 Also werde ich, es zu nehmen, dass wir ein Bündel von sehr intelligenten Kindern 13 00:00:28,660 --> 00:00:32,310 in dieser Klasse und die Dinge werden in Ordnung sein. 14 00:00:32,310 --> 00:00:33,180 OK. 15 00:00:33,180 --> 00:00:33,980 So first-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> Erstens, wir sind gerade dabei, kurz gehen Sie über die Tagesordnung für heute. 18 00:00:41,090 --> 00:00:42,700 Das werden wir natürlich die Logistik zu sprechen. 19 00:00:42,700 --> 00:00:45,480 Viele von Ihnen wahrscheinlich Noch Fragen 20 00:00:45,480 --> 00:00:46,920 wie die Dinge in diesem Lauf. 21 00:00:46,920 --> 00:00:47,897 Wir werden sie zu beantworten. 22 00:00:47,897 --> 00:00:49,730 Wir sind kurz gehen gehen Sie über Schleifen im Falle 23 00:00:49,730 --> 00:00:51,410 einer von euch Jungs verpasst Super-Sektion. 24 00:00:51,410 --> 00:00:53,240 Wir werden über ASCII-Mapping sprechen. 25 00:00:53,240 --> 00:00:56,180 Wir werden über Arrays zu sprechen, Funktionen, Befehlszeilenargumente. 26 00:00:56,180 --> 00:01:00,210 Und schließlich, was euch wahrscheinlich alle wirklich, hier zu sein, um zu lernen, 27 00:01:00,210 --> 00:01:01,270 ist Ihr PSet2. 28 00:01:01,270 --> 00:01:04,209 Wir werden ein paar nette Tricks haben und Tipps, wie man das macht. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> OK. 31 00:01:08,690 --> 00:01:11,450 Auch Zweitens haben wir Lose der Süßigkeit hier. 32 00:01:11,450 --> 00:01:13,583 Jeder, der Süßigkeiten liebt, nur kommen hier. 33 00:01:13,583 --> 00:01:14,430 Schnappen Sie sich einige. 34 00:01:14,430 --> 00:01:15,100 Ich habe eine Reihe. 35 00:01:15,100 --> 00:01:16,390 Wir haben eine Tonne im Büro. 36 00:01:16,390 --> 00:01:18,230 Ich weiß nicht wirklich wollen, den ganzen Tag Süßigkeiten essen. 37 00:01:18,230 --> 00:01:20,300 Ihr solltet alle Süßigkeiten essen, weil ich brachte es hier für euch. 38 00:01:20,300 --> 00:01:20,990 Nur essen Süßigkeiten. 39 00:01:20,990 --> 00:01:24,080 Es wird candy jeder Abschnitt sein. 40 00:01:24,080 --> 00:01:25,330 >> So zuerst, wer ich bin? 41 00:01:25,330 --> 00:01:27,080 Mein Name ist Andi Peng. 42 00:01:27,080 --> 00:01:30,270 Ich bin der Kopf TA der CS50 hier in Yale. 43 00:01:30,270 --> 00:01:32,540 Und zusätzlich zu dass, werde ich auch be-- 44 00:01:32,540 --> 00:01:35,600 wenn jemand würde Ihre Lauf like-- Kumpel, Ihrer Schulter zum Anlehnen. 45 00:01:35,600 --> 00:01:39,140 Wenn in der Nacht vor Ihrer pset Grund, Sie haben keine Ahnung, was los ist, 46 00:01:39,140 --> 00:01:40,080 hit me up. 47 00:01:40,080 --> 00:01:42,770 Wir werden zusammen bemitleiden, und so weiter. 48 00:01:42,770 --> 00:01:46,100 Genau wissen, dass ich hier bin, wie ein Ressource für Sie, wie der Frontlinie 49 00:01:46,100 --> 00:01:51,830 helfen euch herausfinden, wie Probleme in CS50 und darüber hinaus zu lösen. 50 00:01:51,830 --> 00:01:54,590 >> Meine E-Mail ist andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 Ich werde auch gerne ein individuelles per E-Mail mit meiner Telefonnummer in ihr 52 00:01:58,390 --> 00:02:01,860 so dass nicht jeder auf die Internet kann meine Telefonnummer zu sehen. 53 00:02:01,860 --> 00:02:03,640 Sie können mich jederzeit anrufen. 54 00:02:03,640 --> 00:02:07,510 Ernsthaft, das ist mein Handy in der Regel, um meine Hand angebracht. 55 00:02:07,510 --> 00:02:10,240 Ich kann nicht reagiert innerhalb von ein paar Minuten. 56 00:02:10,240 --> 00:02:11,984 Ich kann nicht innerhalb von ein paar Stunden zu beantworten. 57 00:02:11,984 --> 00:02:14,400 Aber ich kann Ihnen garantieren, wenn Sie eine E-Mail mich, wenn Sie mich anrufen, 58 00:02:14,400 --> 00:02:17,404 Text ich, werde ich innerhalb von 24 Stunden zu reagieren. 59 00:02:17,404 --> 00:02:19,820 Oft werde ich vor dem antworten dass, weil ich verstehe, 60 00:02:19,820 --> 00:02:23,900 , dass jeder hat einige Probleme bekommen, und Sie möchten Ihre Antworten 61 00:02:23,900 --> 00:02:26,110 sehr schnell zu beantworten. 62 00:02:26,110 --> 00:02:28,945 >> Allerdings, wenn Sie anrufen me 30 Minuten vor 63 00:02:28,945 --> 00:02:31,570 das Stück, die aufgrund Donnerstag ist night-- sein mögen, Andi, hilf mir, 64 00:02:31,570 --> 00:02:35,380 Ich habe nicht started-- ich geben Ihnen, dass Schulter zum Anlehnen. 65 00:02:35,380 --> 00:02:41,520 Aber kann es Zeit, um darüber nachzudenken sein, wie man das nicht beim nächsten Mal. 66 00:02:41,520 --> 00:02:44,040 OK. 67 00:02:44,040 --> 00:02:44,944 Oops. 68 00:02:44,944 --> 00:02:45,850 Wie bekomme ich zurück? 69 00:02:45,850 --> 00:02:48,140 Da gehen wir. 70 00:02:48,140 --> 00:02:52,310 >> Also in diesem Selbstverständlich haben wir ein Tonne Unterstützung für alle. 71 00:02:52,310 --> 00:02:54,640 Neben nur Abschnitte hier, die Sie 72 00:02:54,640 --> 00:02:57,000 jede Woche zu verbringen 90 wunderbare Minuten bei mir, 73 00:02:57,000 --> 00:02:58,330 wir haben auch der Bürozeiten. 74 00:02:58,330 --> 00:03:01,021 Wie viele von euch haben bereits gewesen, der Bürozeiten um Hilfe? 75 00:03:01,021 --> 00:03:01,520 Groß. 76 00:03:01,520 --> 00:03:05,700 Das ist wirklich gut zu sehen, denn wir haben einen Stab von mehr als 45 Reisebüros und Zertifizierungsstellen 77 00:03:05,700 --> 00:03:11,780 für diesen Kurs, die hier sind geschult für das Helfen Sie Jungs mit Ihren psets. 78 00:03:11,780 --> 00:03:14,580 >> Montags sind sie in der TEAL gehalten Klassenzimmer in 17 Hill House hier 79 00:03:14,580 --> 00:03:15,350 an der Yale. 80 00:03:15,350 --> 00:03:17,349 Dienstags und donnerstags, sie sind in commons statt. 81 00:03:17,349 --> 00:03:20,010 8.00 bis 11.00 Uhr so ​​ziemlich jeden Tag. 82 00:03:20,010 --> 00:03:21,620 Komm rein, komm heraus. 83 00:03:21,620 --> 00:03:24,030 Jedes mögliches Problem, kein problem-- nur auf kommen, 84 00:03:24,030 --> 00:03:26,650 und dann werden wir Ihnen helfen, mit, dass. 85 00:03:26,650 --> 00:03:31,640 >> Zweitens, zusätzlich zu den Bürozeiten und Abschnitte, haben wir auch Shorts. 86 00:03:31,640 --> 00:03:35,930 Hat jemand schon einmal ein paar der gesehen Shorts oder Komplettlösungen in den Videos 87 00:03:35,930 --> 00:03:36,750 auf der Internetseite? 88 00:03:36,750 --> 00:03:37,250 OK. 89 00:03:37,250 --> 00:03:39,510 So sind sie wirklich sehr, sehr hilfsbereit. 90 00:03:39,510 --> 00:03:42,470 Unsere schöne Harvard Produktions Team dort an diesem Schul 91 00:03:42,470 --> 00:03:47,910 oben im Norden, sie gefilmt und produziert haben diese unglaublichen Walkthrough-Videos. 92 00:03:47,910 --> 00:03:52,290 >> Sie werden führen Sie durch Schritt für Schritt wie man über die Lösung eines Problems zu gehen. 93 00:03:52,290 --> 00:03:56,340 Oft, wenn Sie verwirrt sind ein einfaches Konzept, ein einzigartiges Konzept, 94 00:03:56,340 --> 00:03:59,780 schauen, weil wir wahrscheinlich eine kurze darauf irgendwo auf unserer Website. 95 00:03:59,780 --> 00:04:03,800 Und es ist in der Regel eine große Ressource zu suchen, wenn Sie zuerst sind aussehen 96 00:04:03,800 --> 00:04:06,510 verloren, wie man ein Problem zu behandeln. 97 00:04:06,510 --> 00:04:09,750 >> Drittens haben wir auch Studie50 und reference50. 98 00:04:09,750 --> 00:04:15,650 So studieren 50 auf der Website ist nur einen Link. 99 00:04:15,650 --> 00:04:21,500 Es ist, glaube ich, study.cs50.net oder etwas ähnliches. 100 00:04:21,500 --> 00:04:22,860 Gerade Google es. 101 00:04:22,860 --> 00:04:24,229 Wir haben viele Dias vorbereitet. 102 00:04:24,229 --> 00:04:26,770 Wir haben viele Shorts und walkthroughs-- Dinge all kompiliert 103 00:04:26,770 --> 00:04:31,070 sehr schön und ordentlich für euch alle zu durchsuchen, finden Sie alle Begriffe 104 00:04:31,070 --> 00:04:32,860 dass Sie verwirrt. 105 00:04:32,860 --> 00:04:35,920 Es würde wahrscheinlich abgedeckt werden drüben in Studie50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- ähnlich. 107 00:04:37,640 --> 00:04:41,510 Wir haben eine Menge von verschiedenen Notizen zur Verfügung zur Verfügung stehen. 108 00:04:41,510 --> 00:04:44,450 Und schließlich haben wir, was ist genannt CS50 Diskutieren, 109 00:04:44,450 --> 00:04:48,082 ein Forum, in dem, wenn die Nacht vor Sie tun, Ihre Probleme, sagen, 110 00:04:48,082 --> 00:04:49,880 Du hast eine Frage. 111 00:04:49,880 --> 00:04:52,340 Melden Sie sich an, um CS50 diskutieren. 112 00:04:52,340 --> 00:04:53,190 Könnt Ihr eure Fragen. 113 00:04:53,190 --> 00:04:55,820 Und dann, eines der hundreds-- vielleicht thousands-- der Peers 114 00:04:55,820 --> 00:04:57,960 Einnahme dieses Klasse Online wird melden Sie sich an. 115 00:04:57,960 --> 00:05:01,182 Und vielleicht kann jemand bekommen Ihre Antwort vor einem TA Dose. 116 00:05:01,182 --> 00:05:03,390 Es ist im Wesentlichen gerade einen Online-Forum, die wir alle können 117 00:05:03,390 --> 00:05:04,556 nutzen, um unsere Probleme zu diskutieren. 118 00:05:04,556 --> 00:05:06,483 Das ist cool. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> OK. 121 00:05:11,550 --> 00:05:13,220 So Problems setzt. 122 00:05:13,220 --> 00:05:17,840 Wir sind zu Recht in die Dicke des Problems stellte zwei. 123 00:05:17,840 --> 00:05:20,570 Viele von uns haben bereits kämpfte sich durch ein Problem eingestellt. 124 00:05:20,570 --> 00:05:24,460 Wir wissen bereits, dass vielleicht warten für die letzte Nacht, um Ihren pset tun 125 00:05:24,460 --> 00:05:28,170 ist nicht das Klügste, was zu tun in CS50. 126 00:05:28,170 --> 00:05:32,380 >> Tipps und Tricks für die wesentlichen Erfolg werden die gesamte Spezifikation lesen. 127 00:05:32,380 --> 00:05:36,270 Wie viele von euch haben bereits lesen Sie die Spezifikation für pset 2? 128 00:05:36,270 --> 00:05:36,770 OK. 129 00:05:36,770 --> 00:05:39,840 Das ist eine Feststoffmenge. 130 00:05:39,840 --> 00:05:43,210 Ich weiß, ihr Jungs haben wahrscheinlich erkannt mittlerweile die Spezifikationen sind wirklich lang. 131 00:05:43,210 --> 00:05:45,700 Sie sind wirklich sehr, sehr lange. 132 00:05:45,700 --> 00:05:49,630 >> Es ist wirklich schwer, um jede Zeile zu lesen dieser sorgfältig Wort für Wort. 133 00:05:49,630 --> 00:05:52,780 Sie wollen einfach nur, um in dem Mager es sagt Ihnen, etwas zu tun. 134 00:05:52,780 --> 00:05:54,459 Ich kann Ihnen garantieren, tun Sie das nicht. 135 00:05:54,459 --> 00:05:56,750 Wenn Sie das tun, sind Sie wahrscheinlich gehen, um irgendwo vermissen 136 00:05:56,750 --> 00:05:58,458 wo es Ihnen sagt, wie ein Problem zu starten 137 00:05:58,458 --> 00:06:01,140 oder es Ihnen sagt, was zu Namen Ihr Problem oder es sagt Ihnen, 138 00:06:01,140 --> 00:06:03,720 Dies ist wahrscheinlich der beste Weg, zu tun beginnen Ihr Problem. 139 00:06:03,720 --> 00:06:05,050 Und dann wirst du verloren. 140 00:06:05,050 --> 00:06:08,219 >> Wenn Sie versuchen, lesen Sie Ihre spec auf halbem Weg durch, 141 00:06:08,219 --> 00:06:10,510 eine Menge der wichtigen information--, dass Sie nicht 142 00:06:10,510 --> 00:06:12,260 in der Lage sein, um wirklich Zugang. 143 00:06:12,260 --> 00:06:13,219 So lesen Sie die gesamte Spezifikation. 144 00:06:13,219 --> 00:06:15,468 Versuchen Sie, die gesamte Spezifikation lesen bevor Sie den Abschnitt zu kommen, 145 00:06:15,468 --> 00:06:17,360 weil dann, wenn wir sprechen über die pset, 146 00:06:17,360 --> 00:06:21,070 wir alle haben eine Idee von dem, was vor sich geht. 147 00:06:21,070 --> 00:06:25,169 >> Zweitens ist dies ein Konzept dass ich gerne Referenz 148 00:06:25,169 --> 00:06:26,710 eine Menge über den Verlauf Semester. 149 00:06:26,710 --> 00:06:30,070 Aber im Grunde, treffen Sie uns auf halbem Weg, nicht wahr? 150 00:06:30,070 --> 00:06:33,970 Me, als TA und Jason als Kurs Manager und Scaz als Professor 151 00:06:33,970 --> 00:06:37,120 und David als Professor und alle die anderen schönen TAs in diesem Kurs, 152 00:06:37,120 --> 00:06:39,830 Assistenten in diesem course-- Wir werden unser Bestes tun 153 00:06:39,830 --> 00:06:42,965 um sicherzustellen, dass Sie werden eingestellt bis zu diesen Kurs erfolgreich. 154 00:06:42,965 --> 00:06:43,840 Wir werden Schnitt zu halten. 155 00:06:43,840 --> 00:06:44,870 Wir werden der Bürozeiten zu halten. 156 00:06:44,870 --> 00:06:47,087 Wir werden Ihr Telefon zu beantworten Anrufe beantworten Ihre E-Mails, 157 00:06:47,087 --> 00:06:49,670 setzen alles daran, um sicher, dass Ihre Fragen beantwortet werden. 158 00:06:49,670 --> 00:06:51,460 >> Allerdings helfen Sie uns zu. 159 00:06:51,460 --> 00:06:52,450 Treffen Sie uns auf halbem Weg. 160 00:06:52,450 --> 00:06:56,040 Wenn Sie den Bürozeiten kommen Nicht mit dem Kapitel fort, nicht 161 00:06:56,040 --> 00:07:02,060 Nachdem wir die Vorträge, das keine Ahnung, was los ist, wie sein, helfen Sie mir. 162 00:07:02,060 --> 00:07:04,350 Ich werde wie, na ja, es tut mir leid zu sein. 163 00:07:04,350 --> 00:07:06,410 Es kann einige Zeit zu leihen daß Schulter zum Anlehnen, 164 00:07:06,410 --> 00:07:08,959 denn ich bin mir nicht sicher was ich tun kann, um Ihnen zu helfen, 165 00:07:08,959 --> 00:07:12,000 wenn Sie nicht versuchen, zumindest helfen sich ein wenig in der Anfang. 166 00:07:12,000 --> 00:07:12,910 Treffen Sie uns auf halbem Weg. 167 00:07:12,910 --> 00:07:15,020 Wissen Sie, kommen Sie bitte bereit, zu beantworten und erhalten 168 00:07:15,020 --> 00:07:16,353 bereit, in dem Material zu engagieren. 169 00:07:16,353 --> 00:07:19,342 Es macht die Dinge so sehr, einfacher für alle Beteiligten. 170 00:07:19,342 --> 00:07:22,970 Ja, das ist so ziemlich alles. 171 00:07:22,970 --> 00:07:23,720 >> Grading. 172 00:07:23,720 --> 00:07:29,250 So auf dem Lehrplan, es ist ziemlich vertiefte darüber, wie wir Klasse. 173 00:07:29,250 --> 00:07:32,440 Aber im Grunde, die Aufschlüsselung in diesem ist 50% Ihrer Klasse 174 00:07:32,440 --> 00:07:34,530 werden die psets, werden, ist sehr schön, denn das ist, 175 00:07:34,530 --> 00:07:37,400 wo Sie verbringen den Groß Mehrheit der Kurszeit auf. 176 00:07:37,400 --> 00:07:39,854 Quiz 40% und Ihrer Abschlussprojekt wird 10% betragen. 177 00:07:39,854 --> 00:07:42,520 Es werden zwei Tests in ganz sein der Verlauf des Semesters. 178 00:07:42,520 --> 00:07:47,050 Ich denke, die Zeiten und Daten sind auch auf dem Lehrplan aufgeführt. 179 00:07:47,050 --> 00:07:49,210 >> Die Art und Weise, dass wir werden mit einem Gehalt von Ihren psets 180 00:07:49,210 --> 00:07:53,930 ist, dass wir im Wesentlichen vier Werte, die wir ordnen jedem Grad. 181 00:07:53,930 --> 00:07:57,250 Wir haben einen Wert von Umfang, Korrektheit, Design und Stil. 182 00:07:57,250 --> 00:08:01,530 So wie Sie sehen, ist diese Art von unseren Formel zur Berechnung psets. 183 00:08:01,530 --> 00:08:03,640 Drei geben wir das Beste Gewicht auf Korrektheit, 184 00:08:03,640 --> 00:08:06,140 weil offensichtlich Ihr Coach sollte die Prüfung werden für die Fälle, 185 00:08:06,140 --> 00:08:08,480 dass wir wollen, dass es zu testen. 186 00:08:08,480 --> 00:08:11,000 >> Ihr Jungs haben alle check50 zu Ihrer Verfügung. 187 00:08:11,000 --> 00:08:13,730 Es ist eine sehr nützliche Funktion, dass Sie Jungs können alle 188 00:08:13,730 --> 00:08:17,560 laden Sie Ihren Code, um unseren Servern, wo wir es auf Ihnen überprüfen. 189 00:08:17,560 --> 00:08:20,800 Und Sie solche gesehen haben frowny Gesichter Smiley-Gesichter. 190 00:08:20,800 --> 00:08:22,119 Sie sind wirklich sehr, sehr hilfsbereit. 191 00:08:22,119 --> 00:08:23,910 Bitte nicht der Studenten, die Versuche mögen 192 00:08:23,910 --> 00:08:26,230 in all den Antworten, sie zu codieren. 193 00:08:26,230 --> 00:08:30,050 Ich habe auf jeden Fall ein pset wo gesehen jemand alle Werte check50 sah 194 00:08:30,050 --> 00:08:33,429 und sie nur schwer in-- wenn codierte diese Zahl ist, drucken Sie diese Nummer. 195 00:08:33,429 --> 00:08:35,080 Wenn diese Zahl, drucken Sie diese Nummer. 196 00:08:35,080 --> 00:08:36,090 Tun Sie das nicht. 197 00:08:36,090 --> 00:08:39,360 >> Obwohl technisch check50 ist richtig, 198 00:08:39,360 --> 00:08:41,809 Ihren Weg zur Lösung des Problem ist nicht korrekt. 199 00:08:41,809 --> 00:08:45,770 So verwenden Sie einfach check50 sparsam. 200 00:08:45,770 --> 00:08:48,497 Sondern auch sicherstellen, dass Sie zu verstehen, wie es funktioniert, 201 00:08:48,497 --> 00:08:50,580 Das Programm funktioniert neben check50, 202 00:08:50,580 --> 00:08:53,120 denn wir können nicht alle testen möglichen Fall der check50. 203 00:08:53,120 --> 00:08:55,440 Wir werden die Prüfung einige von ihnen. 204 00:08:55,440 --> 00:09:00,390 >> Design ist im Wesentlichen, wie gut gestaltet ist, Ihren Code? 205 00:09:00,390 --> 00:09:04,150 Wenn Sie Kopieren und Einfügen mehrerer sind Codezeilen viele, viele Male. 206 00:09:04,150 --> 00:09:06,960 Vielleicht haben Sie nicht ganz haben das beste Design in Ihrem Code. 207 00:09:06,960 --> 00:09:09,470 Vielleicht ist es Zeit, dass die Schleife hinzuzufügen. 208 00:09:09,470 --> 00:09:12,090 Im Wesentlichen, hier ist es nur alle zu versuchen, Ihren Code zu tun, 209 00:09:12,090 --> 00:09:17,010 versuchen, Ihren Code so effizient zu schreiben wie möglich, so dass Ihr Programm läuft 210 00:09:17,010 --> 00:09:19,630 schnellstens. 211 00:09:19,630 --> 00:09:20,996 >> Schließlich haben wir Stil. 212 00:09:20,996 --> 00:09:24,360 So Stil ist eine Art von beliebig, subjektiver Begriff. 213 00:09:24,360 --> 00:09:27,470 Ich weiß, wir haben offiziell ein Stil, 50 Leitfaden für CS50, 214 00:09:27,470 --> 00:09:30,050 wo es sagt Ihnen, oh, Sie sollte einen Raum hier haben. 215 00:09:30,050 --> 00:09:32,220 Sie sollten Art von Format Ihr Code auf diese Weise. 216 00:09:32,220 --> 00:09:34,070 Sie sollten die Dinge zu benennen diese Weise. 217 00:09:34,070 --> 00:09:38,180 >> Ich weiß nicht wirklich, per se, wie Sie beschließen, Ihre Code-Stil, 218 00:09:38,180 --> 00:09:39,840 wie lange, wie Sie konsequent bleiben. 219 00:09:39,840 --> 00:09:43,732 Zum Beispiel, wenn Sie mögen einen Raum zu verlassen, nachdem Sie Ihren vier 220 00:09:43,732 --> 00:09:45,690 vor vier Schleife, nur tun, dass jedes Mal. 221 00:09:45,690 --> 00:09:46,523 Keine Art von tun. 222 00:09:46,523 --> 00:09:47,730 Tun Sie es nicht zu anderen Zeiten. 223 00:09:47,730 --> 00:09:51,046 Wenn Sie eine lockige halten Zahnspangen Raum eine bestimmte Art und Weise, 224 00:09:51,046 --> 00:09:52,170 nur immer tun es auf diese Weise. 225 00:09:52,170 --> 00:09:54,628 Keine Art von tun es irgendwo hier und irgendwo nicht da. 226 00:09:54,628 --> 00:09:57,010 Wenn wir mit einem Gehalt, es ist wirklich schwierig, 227 00:09:57,010 --> 00:09:59,420 wenn ich keine Ahnung, wie Formatieren Sie den Code, 228 00:09:59,420 --> 00:10:02,064 Dinge sind verrückt und fehl am Platz. 229 00:10:02,064 --> 00:10:04,980 Wenn Sie nur halten sie im Einklang, es ist für mich viel einfacher als der größere 230 00:10:04,980 --> 00:10:06,310 in der Lage sein, Ihren Code zu lesen. 231 00:10:06,310 --> 00:10:09,393 Es ist für Sie viel leichter als Student in der Lage, durch Ihren Code zu suchen sein, 232 00:10:09,393 --> 00:10:11,720 und sehen, was ist los mit es Slash, warum gibt es Probleme. 233 00:10:11,720 --> 00:10:15,740 Stil ist eine der einfachsten Dinge, Sie Kerle tun können, um die volle Punktzahl zu bekommen. 234 00:10:15,740 --> 00:10:18,770 Im Wesentlichen, wenn Sie nur kümmern, wenn Sie fünf Minuten der Aufmerksamkeit 235 00:10:18,770 --> 00:10:22,760 um Ihren Code zu jeder Woche, sollten Sie geben wird sehr voll Style-Punkte. 236 00:10:22,760 --> 00:10:26,020 >> Schließlich haben wir eine so genannte der Multiplikator des Umfangs. 237 00:10:26,020 --> 00:10:28,890 Scope-- Ich weiß, es ist ein großes Wort, vor allem in dieser Klasse. 238 00:10:28,890 --> 00:10:31,030 Aber Umfang, all das Mittel ist, dass Sie versucht sind 239 00:10:31,030 --> 00:10:33,670 die psets an die besten Kräften. 240 00:10:33,670 --> 00:10:37,180 Wenn Sie in drei drehen Ihre vier Probleme 241 00:10:37,180 --> 00:10:39,460 und nicht einmal versuchen, die letzte, sind Sie wahrscheinlich 242 00:10:39,460 --> 00:10:41,630 werde einige Punkte auf Umfang zu verlieren. 243 00:10:41,630 --> 00:10:44,560 >> Selbst wenn Sie nur das Problem zu beginnen, Ihr Bestes tun, um durch sie zu gehen. 244 00:10:44,560 --> 00:10:47,691 Auch wenn es nicht funktioniert, schalten Sie ihn in, denn das zeigt, und zeigt, 245 00:10:47,691 --> 00:10:50,190 für uns, dass Sie versuchen, dass Sie das Problem eingestellt versucht 246 00:10:50,190 --> 00:10:51,430 an die besten Kräften. 247 00:10:51,430 --> 00:10:53,800 Und dann können wir Ihnen volle Punktzahl für die Rahmen. 248 00:10:53,800 --> 00:10:58,715 >> Scope ist auch, wenn wir sehr wichtig sprechen über die niedrigste Punktzahl pset Abfall. 249 00:10:58,715 --> 00:11:02,010 So im Laufe der Semester haben Sie Jungs neun psets. 250 00:11:02,010 --> 00:11:05,340 Und wir werden tatsächlich werden fallen die niedrigste Punktzahl von denen neun, 251 00:11:05,340 --> 00:11:07,670 aber nur, wenn Sie vollen Umfang Punkte. 252 00:11:07,670 --> 00:11:11,120 >> Also, wenn Sie in einem unvollständigen pset drehen, Leider können wir nicht fallen, dass man, 253 00:11:11,120 --> 00:11:13,540 weil Ihr Anwendungsbereich Punkte wurden nicht abgeschlossen. 254 00:11:13,540 --> 00:11:16,570 Selbst wenn Sie also die schreckliche Woche haben wo du stirbst und du krank bist 255 00:11:16,570 --> 00:11:20,040 oder Ihr Hund stirbt, Ihre Katze stirbt, und Sie sind bei den Hausaufgaben überlastet ist, 256 00:11:20,040 --> 00:11:21,074 nur versuchen, die pset. 257 00:11:21,074 --> 00:11:22,490 Tun Sie es, das Beste aus Ihrer Fähigkeit. 258 00:11:22,490 --> 00:11:23,840 Wenn es nicht funktioniert, ist es egal. 259 00:11:23,840 --> 00:11:24,506 Schalten Sie ihn einfach in. 260 00:11:24,506 --> 00:11:26,590 Mindestens wir geben können Sie weist für die Mühe. 261 00:11:26,590 --> 00:11:28,510 >> Ein für die Anstrengungen in dieser Klasse. 262 00:11:28,510 --> 00:11:30,170 Mindestens niedrigste Punktzahl Abfall für Anstrengung. 263 00:11:30,170 --> 00:11:32,354 Also ja. 264 00:11:32,354 --> 00:11:33,270 Das ist ziemlich viel es. 265 00:11:33,270 --> 00:11:36,521 Hat jemand Fragen haben, so weit, wie wir Grade in der Klasse? 266 00:11:36,521 --> 00:11:37,187 Oder irgendwelches? 267 00:11:37,187 --> 00:11:41,220 Jedes von diesen so far-- Abschnitte, Bürozeiten? 268 00:11:41,220 --> 00:11:41,720 Cool. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 OK. 271 00:11:47,800 --> 00:11:51,260 >> Also das ist ein Thema, das nicht einen wirklich mag, darüber zu sprechen. 272 00:11:51,260 --> 00:11:53,084 Ich habe nicht wirklich Lust, darüber zu sprechen. 273 00:11:53,084 --> 00:11:55,250 Ihr seid nicht wirklich wollen, zu hören, mich darüber zu sprechen. 274 00:11:55,250 --> 00:11:57,690 Aber leider, wir alle haben, darüber zu sprechen. 275 00:11:57,690 --> 00:12:00,110 David verbrachte 20 Minuten Vortrag darüber zu reden. 276 00:12:00,110 --> 00:12:02,580 Und dies ist der Gegenstand der akademischen Ehrlichkeit. 277 00:12:02,580 --> 00:12:08,110 >> So dass wir alle hier haben wahrscheinlich geschrieben ein Essay irgendwann in unserem Yale Karriere. 278 00:12:08,110 --> 00:12:11,800 Wir haben wahrscheinlich bekommen ein Gespräch, wo wir wurde gesagt, unsere Aufsatz nicht plagiieren, 279 00:12:11,800 --> 00:12:13,940 denn das Werk ist nicht unsere. 280 00:12:13,940 --> 00:12:18,109 In der Informatik, haben wir die gleiche Art von Konzept. 281 00:12:18,109 --> 00:12:20,150 Alle Arbeiten, die Sie einreichen, aller Code, den Sie schreiben 282 00:12:20,150 --> 00:12:21,900 sollte Code, den Sie geschrieben haben. 283 00:12:21,900 --> 00:12:24,280 Sollte nicht Code, den Sie haben werden von woanders kopiert. 284 00:12:24,280 --> 00:12:26,777 Sollte nicht sein, dass Code Sie gegoogelt und in geplumpst haben 285 00:12:26,777 --> 00:12:28,360 und Sie nicht wirklich wissen, ob es funktioniert. 286 00:12:28,360 --> 00:12:32,440 Sie Art haben ein Gefühl der was er tut, aber nicht wirklich. 287 00:12:32,440 --> 00:12:36,562 Wenn im Zweifel, im wesentlichen, es ist nur angemessen sein. 288 00:12:36,562 --> 00:12:38,520 Auf unserem Lehrplan, haben wir eine ganze Liste von Dingen, 289 00:12:38,520 --> 00:12:40,560 sehen wir als angemessen gegenüber nicht zumutbar. 290 00:12:40,560 --> 00:12:43,820 >> Zum Beispiel, vernünftig ist, dass Sie und Ihr Freund 291 00:12:43,820 --> 00:12:47,360 Diskussion, was der beste Weg zu gehen zu logisch ein Problem zu lösen. 292 00:12:47,360 --> 00:12:48,910 Das ist recht vernünftig. 293 00:12:48,910 --> 00:12:53,244 Was wäre nicht sinnvoll ist, wenn Sie Jungs kamen zusammen, tippte den gleichen Code, 294 00:12:53,244 --> 00:12:54,410 und in der gleichen Code gedreht. 295 00:12:54,410 --> 00:12:56,302 Das ist nicht in Ordnung. 296 00:12:56,302 --> 00:12:57,510 Das Gleiche gilt, Art von einem Essay. 297 00:12:57,510 --> 00:12:59,290 Wenn Sie diskutieren möchten mit Ihrem Freund, hey, 298 00:12:59,290 --> 00:13:00,220 das ist, was ich will, darüber zu schreiben. 299 00:13:00,220 --> 00:13:02,500 Dies sind die Schritte Ich möchte nehmen, darüber zu schreiben, groß. 300 00:13:02,500 --> 00:13:03,208 Das ist wunderbar. 301 00:13:03,208 --> 00:13:04,790 Sie miteinander zusammenarbeiten. 302 00:13:04,790 --> 00:13:06,540 Wenn euch starten Schreiben dasselbe, 303 00:13:06,540 --> 00:13:10,020 drehen in der gleichen Schrift, das ist weniger OK. 304 00:13:10,020 --> 00:13:13,200 Also, wenn Sie Zweifel haben, einfach nicht tun. 305 00:13:13,200 --> 00:13:16,940 >> Hier, in CS50, Skripte müssen wir uns dass Lauf zu automatisieren, um zu testen 306 00:13:16,940 --> 00:13:21,740 nicht nur die Richtigkeit des Codes, sondern auch die Einzigartigkeit Ihres Codes. 307 00:13:21,740 --> 00:13:25,920 Also bitte nicht setzen uns in die Lage des Habens, um Ihren Fall zu ExComm beziehen. 308 00:13:25,920 --> 00:13:31,110 Bitte nur für alle, lassen Sie uns einfach machen dies eine wunderbare Erfahrung. 309 00:13:31,110 --> 00:13:33,600 Jeder lernt besser, wir alle sind glücklicher, 310 00:13:33,600 --> 00:13:37,926 und wir alle sind bis zu setzen Erfolg in diesem Kurs. 311 00:13:37,926 --> 00:13:39,800 Etwas, das sehr ist Einzigartig an dieser Klasse 312 00:13:39,800 --> 00:13:42,660 dass ich denke, jeder sollte wirklich Beachten Sie, dass wir 313 00:13:42,660 --> 00:13:44,930 was heißt das Bedauern Klausel in unseren Lehrplan. 314 00:13:44,930 --> 00:13:50,010 So im Wesentlichen, innerhalb von 72 Stunden, wenn Sie glauben, dass Sie etwas getan haben 315 00:13:50,010 --> 00:13:53,240 du bist nicht wirklich sicher war Falls wenden Sie sich bitte zu uns kommen. 316 00:13:53,240 --> 00:13:57,220 Wir versprechen Ihnen, dass innerhalb von 72 Stunden Wir werden den Fall selbst zu behandeln 317 00:13:57,220 --> 00:13:59,820 ohne sich auf einem höheren Autorität in der Verwaltung. 318 00:13:59,820 --> 00:14:03,100 >> Also, wenn Sie zu mir kommen und sagen: Andi, hey, tut mir wirklich leid, 319 00:14:03,100 --> 00:14:07,620 aber ich glaube, es gibt ein paar Zeilen in meinem Code letzte Nacht, die ich Art von gegoogelt, 320 00:14:07,620 --> 00:14:10,120 erwischte der Stapel Überlauf, kopieren und geklebt, 321 00:14:10,120 --> 00:14:13,680 und ich bin wirklich, wirklich leid darüber, lass es mich wissen. 322 00:14:13,680 --> 00:14:16,900 Bitte nicht, lassen Sie es eitern und hoffe nur, dass ich fangen. 323 00:14:16,900 --> 00:14:17,784 Wir werden es zu fangen. 324 00:14:17,784 --> 00:14:18,450 Nur zu mir kommen. 325 00:14:18,450 --> 00:14:20,520 Lassen Sie mich innerhalb von 72 Stunden kennen. 326 00:14:20,520 --> 00:14:22,240 Wir werden herausfinden, eine Lösung. 327 00:14:22,240 --> 00:14:26,679 Und wir versprechen, dass wir nicht zu beziehen Universitätsbehörden im Wesentlichen. 328 00:14:26,679 --> 00:14:29,220 So ist es in Ihrem besten Interesse nur ehrlich mit jedermann 329 00:14:29,220 --> 00:14:31,720 im Verlauf beteiligt. 330 00:14:31,720 --> 00:14:34,630 >> OK. 331 00:14:34,630 --> 00:14:35,240 OK. 332 00:14:35,240 --> 00:14:37,800 So, jetzt, schnell, bevor Ich bewege mich auf, hat jemand 333 00:14:37,800 --> 00:14:42,670 Fragen zu Logistik wie Kurse, wir werden laufen, 334 00:14:42,670 --> 00:14:45,982 wie Abschnitte gehen zu laufen, von alledem? 335 00:14:45,982 --> 00:14:46,711 OK. 336 00:14:46,711 --> 00:14:47,210 Ja. 337 00:14:47,210 --> 00:14:48,126 >> ZIELGRUPPE: [unverständlich]? 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 ANDI PENG: Ja. 340 00:14:51,080 --> 00:14:54,850 So quizzes-- wie viele von euch sind in der Montag / Mittwoch Schnitt? 341 00:14:54,850 --> 00:14:56,700 Wie viele von euch sind in Dienstag / Donnerstag? 342 00:14:56,700 --> 00:14:58,550 OK, also ist es eine feste Split hier. 343 00:14:58,550 --> 00:15:00,900 So ist die Art und Weise, die wir ausführen es an der Yale ist, dass wir 344 00:15:00,900 --> 00:15:04,040 gehen, um zwei getrennte haben quizzes-- eine für jede section-- dass 345 00:15:04,040 --> 00:15:06,160 wird während des Unterrichts berücksichtigt werden. 346 00:15:06,160 --> 00:15:09,310 Ich denke es ist Oktober Ende Oktober, so ähnlich, wie eine Woche 347 00:15:09,310 --> 00:15:10,794 des Quiz. 348 00:15:10,794 --> 00:15:11,960 Ja, so einfach in die Klasse zu kommen. 349 00:15:11,960 --> 00:15:13,920 An diesem Montag oder Mittwoch, Sie werden das Quiz zu nehmen. 350 00:15:13,920 --> 00:15:16,336 An diesem Dienstag oder Donnerstag, Sie werden ein anderes Quiz. 351 00:15:16,336 --> 00:15:18,570 Aber das gleiche Material abgedeckt werden. 352 00:15:18,570 --> 00:15:19,160 Ja. 353 00:15:19,160 --> 00:15:20,660 Gute Frage. 354 00:15:20,660 --> 00:15:21,160 Ja. 355 00:15:21,160 --> 00:15:23,260 >> ZIELGRUPPE: Wo stehen wir gehen Sie auf unsere Qualitäten zu überprüfen? 356 00:15:23,260 --> 00:15:23,926 >> ANDI PENG: Ja. 357 00:15:23,926 --> 00:15:28,420 Also werde ich aus einem werden Senden E-Mail-was auch immer jede Woche 358 00:15:28,420 --> 00:15:31,460 wenn Quiz sind graded-- oder, sorry, wenn psets werden benotet. 359 00:15:31,460 --> 00:15:34,120 Psets werden in der Regel einge in bis zum Mittag oder Freitag. 360 00:15:34,120 --> 00:15:37,540 Also ich verspreche, dass ich versuchen, sie zurück zu Ihnen 361 00:15:37,540 --> 00:15:40,000 vom Mittag des folgenden Freitag. 362 00:15:40,000 --> 00:15:44,950 >> Immer, wenn ich eine Klasse pset, werde ich senden eine Benachrichtigung über die Klasse Buch 363 00:15:44,950 --> 00:15:47,070 , dass erfahren Sie, Ihre Gäste kann online eingesehen werden. 364 00:15:47,070 --> 00:15:52,022 So richtig in dieser Woche, nachdem ich Abschluss mit einem Gehalt von letzter Woche psets, 365 00:15:52,022 --> 00:15:54,230 euch wird eine E-Mail zu erhalten Benachrichtigung sage Ihnen, 366 00:15:54,230 --> 00:15:55,870 hey das ist, wo Sie gehen, um Ihre Noten zu sehen. 367 00:15:55,870 --> 00:15:57,680 Und Sie jeden sehen können Aufschlüsselung Ihrer Noten. 368 00:15:57,680 --> 00:15:58,555 Sie können Kommentare zu sehen. 369 00:15:58,555 --> 00:16:00,360 Oh, schnelle Sache auch. 370 00:16:00,360 --> 00:16:03,060 Der Kommentarbereich in der großen Buch ist, wo ich wahrscheinlich 371 00:16:03,060 --> 00:16:05,300 verbringen den Großteil meiner Zeit Grading. 372 00:16:05,300 --> 00:16:07,094 So eine Sache, die ist wirklich wichtig, wenn 373 00:16:07,094 --> 00:16:09,010 Sie Kerle gerade sehen Ihre Noten auf Ihrem psets 374 00:16:09,010 --> 00:16:11,400 wird nicht nur auf der Suche auf der physikalischen Punktzahl 375 00:16:11,400 --> 00:16:14,630 sondern auch die Zeit nehmen, wirklich lesen Sie meine Kommentare. 376 00:16:14,630 --> 00:16:17,820 >> Oft, dass gibt Ihnen Feedback darüber, wie Sie das Problem lösen. 377 00:16:17,820 --> 00:16:20,480 Wenn Sie tun müssen, etwas ein bisschen besser, 378 00:16:20,480 --> 00:16:24,080 konstruktive Kritik ist in der Regel am besten in diesen Kommentaren gegeben. 379 00:16:24,080 --> 00:16:26,950 Also bitte, bitte, ich werde , Zeit zu verbringen das Schreiben von Kommentaren. 380 00:16:26,950 --> 00:16:30,440 Bitte, ich würde es wirklich schätzen wenn euch würde diese Kommentare lesen. 381 00:16:30,440 --> 00:16:31,170 OK. 382 00:16:31,170 --> 00:16:34,150 Cool. 383 00:16:34,150 --> 00:16:34,680 >> Gut. 384 00:16:34,680 --> 00:16:40,680 So werden wir zu sprechen beginnen und einfach nur schnell die Überprüfung 385 00:16:40,680 --> 00:16:45,040 ein Teil des Materials aus Woche null, nur damit wir sind 386 00:16:45,040 --> 00:16:48,760 auf der rechten Seite für Anfang dieser Woche die Probleme. 387 00:16:48,760 --> 00:16:52,600 So ist die while-Schleife ist eine der drei Arten von Schleifen 388 00:16:52,600 --> 00:16:54,510 wir früher diskutiert in dieser Klasse. 389 00:16:54,510 --> 00:16:57,060 >> Eine while-Schleife im wesentlichen ist in der Syntax geschrieben 390 00:16:57,060 --> 00:17:00,666 wobei, während einer bestimmten Bedingung, tun dies immer wieder, nicht wahr? 391 00:17:00,666 --> 00:17:02,040 Denken Sie daran, in dieser Grafik hier. 392 00:17:02,040 --> 00:17:04,780 Du wirst in ein begin bestimmten Punkt in Ihrem Code. 393 00:17:04,780 --> 00:17:09,030 Du wirst die Schleifenbedingung eingeben if-- ich nicht wissen-- x kleiner als eins ist. 394 00:17:09,030 --> 00:17:11,677 >> Wenn das wahr ist, Sie gehen um die Schleife auszuführen. 395 00:17:11,677 --> 00:17:14,010 Und Sie gehen zu halten tust das wieder, wieder, wieder, 396 00:17:14,010 --> 00:17:17,900 immer und over-- weshalb es ein loop--, bis Ihr Zustand wird 397 00:17:17,900 --> 00:17:19,079 falsch. 398 00:17:19,079 --> 00:17:22,140 So auf diese Weise eine Zeitschleife ist eines der einfacheren Weise 399 00:17:22,140 --> 00:17:25,619 um jede Art von Bedingung schreiben, dass muss immer und immer und immer zu wiederholen. 400 00:17:25,619 --> 00:17:28,109 Nur vorsichtig sein, wenn Sie schreiben jede Art von Schleife sind 401 00:17:28,109 --> 00:17:32,140 dass Sie eine Exit Zustand haben sowie ein Update auf, was es 402 00:17:32,140 --> 00:17:36,714 ist, so dass Ihre Schleife nicht nur laufen immer und immer unendlich. 403 00:17:36,714 --> 00:17:38,630 Auf jeden Fall, Sie gehen zu wollen, um sicherzustellen, 404 00:17:38,630 --> 00:17:42,670 dass Sie ändern einige Aspekte der Ihr Code oder am Ende der Schleife 405 00:17:42,670 --> 00:17:46,680 nur um sicherzugehen, dass Sie eine Möglichkeit haben, Fortschritte im Hinblick auf den Zustand 406 00:17:46,680 --> 00:17:48,400 dass Sie zu Ende treffen möchten. 407 00:17:48,400 --> 00:17:50,239 Ist das sinnvoll, um alle? 408 00:17:50,239 --> 00:17:52,530 Wir wollen einfach nicht zu sein in dieser Spirale, wo gefangen 409 00:17:52,530 --> 00:17:55,710 wir gehen herum und herum und es gibt keinen Weg, um die Schleife zu brechen. 410 00:17:55,710 --> 00:17:58,844 Und jede Schleife im wesentlichen hat eine Art, das zu tun. 411 00:17:58,844 --> 00:17:59,344 OK. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> Zweitens, viele von Ihnen in Ihrem Mario psets 414 00:18:06,060 --> 00:18:08,910 hatte wahrscheinlich zu beschäftigen Dieser Schleifentyp. 415 00:18:08,910 --> 00:18:11,802 Es ist ein Do While-Schleife genannt. 416 00:18:11,802 --> 00:18:14,510 Zuerst von allen, kann mir jemand sagen was der Unterschied zwischen einer do 417 00:18:14,510 --> 00:18:16,586 while-Schleife und eine while-Schleife ist? 418 00:18:16,586 --> 00:18:17,086 Ja. 419 00:18:17,086 --> 00:18:21,030 >> Publikum: Die do while-Schleife läuft auf den ersten [unverständlich]. 420 00:18:21,030 --> 00:18:22,120 >> ANDI PENG: Ja, genau. 421 00:18:22,120 --> 00:18:27,130 So ein Do While-Schleife immer tut was auch immer ist innerhalb des do, innerhalb der Klammern 422 00:18:27,130 --> 00:18:30,520 es und tut diese Bedingung vor der Überprüfung für the-- sorry, 423 00:18:30,520 --> 00:18:32,940 geht das Code vor Überprüfung für die Bedingung. 424 00:18:32,940 --> 00:18:37,200 Und dies ist besonders relevant für uns hier in dieser Klasse, denn die meiste Zeit 425 00:18:37,200 --> 00:18:41,450 wir werden aufgefordert, möchten der Benutzer für irgendeine Art von Eingabe. 426 00:18:41,450 --> 00:18:43,520 Und dann, in Abhängigkeit von die Eingangs sie uns geben, 427 00:18:43,520 --> 00:18:46,150 dann können wir beurteilen, oh, tun wir müssen sie wieder aufgefordert? 428 00:18:46,150 --> 00:18:49,930 >> So in Mario, wenn der Benutzer hat dir eine negative Höhe beispielsweise 429 00:18:49,930 --> 00:18:52,990 Sie zum ersten Aufforderung gehen und tun, was drin ist. 430 00:18:52,990 --> 00:18:54,820 Dann wirst du, während zu überprüfen. 431 00:18:54,820 --> 00:18:57,570 Sie wissen, ist negativ 1, ist, dass eine positive Zahl? 432 00:18:57,570 --> 00:19:00,680 Wenn es nicht, werde ich gehen zurück und wiederholen Sie die do und wiederholen 433 00:19:00,680 --> 00:19:03,950 und wiederholen und wiederholen, bis sie Schließlich geben Sie eine Nummer, die Sie mögen, 434 00:19:03,950 --> 00:19:07,002 dass wir alle in unserem Code zu verwenden. 435 00:19:07,002 --> 00:19:09,210 Es ist ziemlich wichtig, Wesentlichen jede Benutzereingabe. 436 00:19:09,210 --> 00:19:11,760 Ich kann Ihnen keine Garantie Zeit in einem PSET wobei 437 00:19:11,760 --> 00:19:15,070 bitten wir Sie, Eingangs jede Art von Code, wir sind 438 00:19:15,070 --> 00:19:17,540 wahrscheinlich zu Ihnen ein Testfall, in dem wir sind 439 00:19:17,540 --> 00:19:21,200 werde Ihnen etwas Schlimmes zu geben, das ist werde versuchen, Ihren Code zu brechen. 440 00:19:21,200 --> 00:19:25,044 >> Wenn wir versuchen, Ihnen die Eingabe eine frage Integer, wir geben können Sie eine Zeichenfolge 441 00:19:25,044 --> 00:19:26,460 und sehen, wie Sie damit umgehen. 442 00:19:26,460 --> 00:19:30,610 Wenn wir Sie bitten, ein Alter beschäftigen, wir Ihnen eine negative Zahl geben kann 443 00:19:30,610 --> 00:19:32,340 zu sehen, wie Sie damit umgehen. 444 00:19:32,340 --> 00:19:37,260 So stellen Sie sicher Jungs testen für Fälle, in denen Sie nicht das beste bekommen, 445 00:19:37,260 --> 00:19:38,590 Eingang, lasst uns einfach sagen. 446 00:19:38,590 --> 00:19:40,510 Und ein Do While-Schleife ist oft die beste 447 00:19:40,510 --> 00:19:45,260 Weg, um Ihren Code so zu gestalten, dass es erfüllt diesen Rahmen. 448 00:19:45,260 --> 00:19:45,760 OK. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> OK. 451 00:19:49,470 --> 00:19:53,270 So ist wohl die diese komplexe Loop aus dem drei 452 00:19:53,270 --> 00:19:54,990 dass wir bei bisher sah. 453 00:19:54,990 --> 00:19:56,689 Und es scheint, sehr beängstigend auf den ersten. 454 00:19:56,689 --> 00:19:59,730 Aber ich garantiere Ihnen, wenn Sie Kerle den Dreh raus, wie man eine for-Schleife verwenden, 455 00:19:59,730 --> 00:20:03,320 es ist eines der nützlichsten Dinge, nützlichsten Werkzeuge in Ihrem Arsenal 456 00:20:03,320 --> 00:20:05,300 für in dieser Klasse voran. 457 00:20:05,300 --> 00:20:09,920 >> So zum Beispiel im Scratch, wir hatten diese sehr einfache Block 458 00:20:09,920 --> 00:20:13,180 dass gerade gesagt, wiederholen Sie diesen bestimmten Sätze bestimmte Anzahl von Malen. 459 00:20:13,180 --> 00:20:16,260 Übrigens SAJ-- das ist Scaz Andi Jason. 460 00:20:16,260 --> 00:20:18,740 Wir oft melden Sie unsere E-Mails SAJ. 461 00:20:18,740 --> 00:20:20,360 Wenn wir sagen, SAJ, nicht verwechselt werden. 462 00:20:20,360 --> 00:20:22,630 Das ist nur mit uns. 463 00:20:22,630 --> 00:20:28,600 >> So in Scratch, konnten wir haben ein Block, der sagte, wiederhole ich liebe SAJ! 464 00:20:28,600 --> 00:20:29,430 10 mal. 465 00:20:29,430 --> 00:20:30,130 Sehr einfach. 466 00:20:30,130 --> 00:20:32,302 Die Logik dahinter ist, eine sehr, sehr einfach, nicht wahr? 467 00:20:32,302 --> 00:20:35,260 Ich möchte zunächst durch die erste gehen Zeit und sehen, dass, zum zweiten Mal 468 00:20:35,260 --> 00:20:38,510 und sehen, dass, zum dritten Mal, usw. und so weiter, bis Sie auf den 10. 469 00:20:38,510 --> 00:20:41,960 >> Und die Art, wie wir, dass in zu vertreten Code ist nur durch eine einfache for-Schleife. 470 00:20:41,960 --> 00:20:45,440 Also für, Sie gehen zu erklären sind Ihre Variable hier, in diesem Fall, 471 00:20:45,440 --> 00:20:46,349 mit int. 472 00:20:46,349 --> 00:20:47,390 Wir werden es nennen i. 473 00:20:47,390 --> 00:20:49,500 Wir werden sie auf 0 zu initialisieren. 474 00:20:49,500 --> 00:20:52,490 Und das Anhalten Edition ist werde ich sein, weniger als 10. 475 00:20:52,490 --> 00:20:54,622 Und das Update sein wird i ++. 476 00:20:54,622 --> 00:20:57,750 >> Und innerhalb der Schleife, es geht bis es schließlich auszuführen 477 00:20:57,750 --> 00:21:01,490 trifft das Ende des Zustand- in welcher Fall es geht um die Schleife zu brechen. 478 00:21:01,490 --> 00:21:04,600 Es sollte Zeug sein, dass Sie Jungs haben alle Arten von zuvor gesehen 479 00:21:04,600 --> 00:21:07,270 und hatte zu tun, für Ihr Problem set one. 480 00:21:07,270 --> 00:21:12,310 Hat jemand irgendwelche Fragen haben Bezug zum Schleifen gerade jetzt? 481 00:21:12,310 --> 00:21:12,930 OK. 482 00:21:12,930 --> 00:21:13,430 Groß. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> OK. 485 00:21:18,620 --> 00:21:22,270 Also für diejenigen unter Ihnen, die haben lesen Sie die pset spec für diese Woche 486 00:21:22,270 --> 00:21:27,690 wissen, dass wir gehen, um zu beschäftigen zu müssen so genannten ASCII und ASCII-Tabelle. 487 00:21:27,690 --> 00:21:32,380 Und David in der Vorlesung ging kurz wie Computer essentially-- alles 488 00:21:32,380 --> 00:21:35,410 in einem Computer in codierte binär, in Nullen und Einsen. 489 00:21:35,410 --> 00:21:39,740 Und die Art und Weise, die Computer in der Lage sind andere Werte zusätzlich speichern 490 00:21:39,740 --> 00:21:44,360 In den Nullen und Einsen sind durch Mapping diese Zahlen, um andere Ziffern stellen 491 00:21:44,360 --> 00:21:47,220 oder im Wesentlichen andere Zeichen. 492 00:21:47,220 --> 00:21:49,810 >> So dass in diesem Fall ein ASCII table-- alle es tut, 493 00:21:49,810 --> 00:21:53,600 ist Karte Zeichen oder Zeichen, um Zahlen. 494 00:21:53,600 --> 00:21:57,385 So der Quellcodedatei in Ihre computer-- es sieht, 495 00:21:57,385 --> 00:22:00,010 hey, eine Reihe von Nullen und Einsen, Nullen und Einsen, Nullen und Einsen. 496 00:22:00,010 --> 00:22:02,350 Das ist, was in die gespeicherte tatsächliche Speicher Ihres Computers. 497 00:22:02,350 --> 00:22:04,750 >> Aber wenn wir Menschen wollen mit dem Computer zu kommunizieren, 498 00:22:04,750 --> 00:22:08,249 Wir want-- also beispielsweise, wenn ich den Großbuchstaben A, 499 00:22:08,249 --> 00:22:10,540 Ich werde einen Weg brauchen, sagen Sie den Computer neu, oh, 500 00:22:10,540 --> 00:22:16,300 wenn ich schreibe Großbuchstaben A, ich meine, diese Darstellung in binärer. 501 00:22:16,300 --> 00:22:22,260 >> Und so ist die Art, wie wir das tun, wird warf ein beliebige Ding namens eine ASCII-Tabelle, 502 00:22:22,260 --> 00:22:25,020 wo wir Menschen, wie Programmierer, vor einiger Zeit, 503 00:22:25,020 --> 00:22:28,660 wir willkürlich entschieden, dass wir würden diese Nummer zuweisen 504 00:22:28,660 --> 00:22:30,960 Werte zu diesen Charakteren. 505 00:22:30,960 --> 00:22:32,720 >> So euch kann dieses Online google. 506 00:22:32,720 --> 00:22:37,120 Ich denke, es ist ein Link, um es in Ihrem pset-- nur eine ASCII-Map-Tabelle, ASCII 507 00:22:37,120 --> 00:22:37,720 Tabelle. 508 00:22:37,720 --> 00:22:40,722 Es übersetzt nur binäre Zahlen in Zeichen. 509 00:22:40,722 --> 00:22:42,930 Und es wird sehr sein nützlich für Ihr Problem Set 510 00:22:42,930 --> 00:22:45,470 wann immer Sie wollen Berechnung nichts oder wenn Sie 511 00:22:45,470 --> 00:22:47,880 wollen sicher angezeigt werden Buchstaben oder Zahlen 512 00:22:47,880 --> 00:22:50,327 oder zu manipulieren bestimmte Zeichen. 513 00:22:50,327 --> 00:22:52,160 Es wird sehr sein wichtig, dass Sie alle 514 00:22:52,160 --> 00:22:55,140 wissen, wie man ein ASCII-Tabelle zu navigieren. 515 00:22:55,140 --> 00:23:01,260 >> So zum Beispiel die Großbuchstaben A wird durch die Zahl 65 dargestellt. 516 00:23:01,260 --> 00:23:04,207 Und die Kleinbuchstaben a wird durch 97 dargestellt. 517 00:23:04,207 --> 00:23:07,040 Also ist es wichtig zu wissen, dass die Unterschied zwischen den beiden Werten 518 00:23:07,040 --> 00:23:08,320 ist 32. 519 00:23:08,320 --> 00:23:13,210 Oft, wenn Sie von konvertieren einem zum anderen ist die Differenz 32. 520 00:23:13,210 --> 00:23:15,710 Und keine Sorge, wenn Sie Art verwirrt auf diese auf den ersten. 521 00:23:15,710 --> 00:23:20,230 Wir gehen über, wie wir beschäftigen diese in Originalcode. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> OK. 524 00:23:26,380 --> 00:23:30,770 Also für diejenigen von Ihnen mit Laptops aus, fühlen Sie sich frei, um eine ASCII-Tabelle nach oben ziehen, 525 00:23:30,770 --> 00:23:36,030 denn diese wird wahrscheinlich erfordern euch zu verweisen 526 00:23:36,030 --> 00:23:38,100 was die Charaktere sind. 527 00:23:38,100 --> 00:23:38,640 OK. 528 00:23:38,640 --> 00:23:42,840 >> So wissen, dass bestimmte Zeichen Karte, um bestimmte Zahlen, 529 00:23:42,840 --> 00:23:47,240 wenn ich nur die erste ausgeführt Linie der, dass code-- die printf a, 530 00:23:47,240 --> 00:23:50,900 Kleinbuchstaben ein, minus Großbuchstaben A. Hat jemand 531 00:23:50,900 --> 00:23:55,880 eine Vermutung, was wäre, Ausdrucken des Bildschirms gerade jetzt? 532 00:23:55,880 --> 00:23:58,190 >> Also zunächst einmal, was bedeutet Kleinbuchstaben a dar? 533 00:23:58,190 --> 00:24:00,990 Welche Zahl ist, dass in der ASCII-Tabelle kodiert. 534 00:24:00,990 --> 00:24:01,490 Es tut uns leid? 535 00:24:01,490 --> 00:24:02,630 >> ZIELGRUPPE: 97? 536 00:24:02,630 --> 00:24:03,630 >> ANDI PENG: 97, groß. 537 00:24:03,630 --> 00:24:05,077 Und was ist in Großbuchstaben A? 538 00:24:05,077 --> 00:24:06,330 >> ZIELGRUPPE: 65. 539 00:24:06,330 --> 00:24:08,255 >> ANDI PENG: Also, was ist 97 minus 65? 540 00:24:08,255 --> 00:24:09,227 >> ZIELGRUPPE: 32. 541 00:24:09,227 --> 00:24:09,810 ANDI PENG: OK. 542 00:24:09,810 --> 00:24:13,530 Also, was denkt ihr wird gehen passiert, wenn ich, dass Eingangscodezeile 543 00:24:13,530 --> 00:24:14,670 in meinen Computer? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> ZIELGRUPPE: [unverständlich]. 546 00:24:19,896 --> 00:24:21,020 ANDI PENG: Leider sprechen. 547 00:24:21,020 --> 00:24:22,520 Keine Sorge. 548 00:24:22,520 --> 00:24:25,750 Dies ist eine sehr sichere Umwelt, minus der Kamera. 549 00:24:25,750 --> 00:24:27,550 Wir werden alle zu-- keine Sorgen. 550 00:24:27,550 --> 00:24:30,940 Nur werden wir alle, um wie so tun ist es gerade wir chillen in diesem Raum. 551 00:24:30,940 --> 00:24:31,480 Keine Sorge. 552 00:24:31,480 --> 00:24:33,410 Keine Frage ist zu dumm. 553 00:24:33,410 --> 00:24:35,300 Keine Antwort ist eine dumme Antwort. 554 00:24:35,300 --> 00:24:38,260 Ich bin wahrscheinlich, Fehler zu machen im Laufe meiner Lehre. 555 00:24:38,260 --> 00:24:40,740 Im Ernst, Leute, nur platzen sie heraus. 556 00:24:40,740 --> 00:24:43,092 Seien Sie Vertrauen in sich selbst, weißt du? 557 00:24:43,092 --> 00:24:43,800 Also, was war das? 558 00:24:43,800 --> 00:24:47,990 Wer hat gesagt, dass die letzte Antwort? 559 00:24:47,990 --> 00:24:48,540 OK. 560 00:24:48,540 --> 00:24:50,380 Schreien, dass schön und klar. 561 00:24:50,380 --> 00:24:51,220 >> ZIELGRUPPE: 32? 562 00:24:51,220 --> 00:24:51,850 >> ANDI PENG: 32. 563 00:24:51,850 --> 00:24:54,141 OK, lassen Sie uns diesen Code ausführen und sehen, ob das, was passiert. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 OK. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 So wie Sie Jungs können Art sehen die typische Schreibweise Ich habe 568 00:25:06,360 --> 00:25:12,250 Einrichtung hier für, wie wir uns zu beschäftigen jede Art von Programm in unserem Computer. 569 00:25:12,250 --> 00:25:14,770 Wir haben unsere Hauptfunktion innerhalb unserer Hauptfunktion. 570 00:25:14,770 --> 00:25:17,265 Ich werde einfach zu kopieren und fügen Sie diese Codezeile. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 Auch vorsichtig sein, wenn Sie Kerle kopieren und Einfügen von Code. 573 00:25:23,540 --> 00:25:28,750 Manchmal bestimmte Betreiber nicht über Einfügen korrekt. 574 00:25:28,750 --> 00:25:31,397 In diesem Fall wird der Minus Zeichen war eigentlich ein Bindestrich. 575 00:25:31,397 --> 00:25:32,980 Und damit der Computer nicht abholen. 576 00:25:32,980 --> 00:25:35,870 Also musste ich zurückgehen und physisch neu eingeben, dass. 577 00:25:35,870 --> 00:25:37,846 Nur vorsichtig sein, wenn Sie Kerle sind zu tun. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> OK. 580 00:25:42,660 --> 00:25:43,980 Wir werden das hier laufen. 581 00:25:43,980 --> 00:25:45,670 So dass wir auf CD geht in unserer section2. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 Ich habe dieses Programm asciimath genannt. 584 00:25:52,030 --> 00:25:55,690 Also denken Sie daran, wenn wir irgendein laufen Programm zum ersten kompilieren wollen wir 585 00:25:55,690 --> 00:25:57,150 indem durch unsere make auszuführen. 586 00:25:57,150 --> 00:26:00,030 Und dann, um tatsächlich ausführen möchten wir das Programm, indem Sie Punkt-Schrägstrich. 587 00:26:00,030 --> 00:26:01,280 So werden wir ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Richtig, es wir gehen. 590 00:26:06,590 --> 00:26:07,410 Und wir sehen, 32. 591 00:26:07,410 --> 00:26:07,930 Gut gemacht. 592 00:26:07,930 --> 00:26:10,340 Sie verdienen ein Stück Schokolade. 593 00:26:10,340 --> 00:26:11,160 Süßigkeiten für Sie. 594 00:26:11,160 --> 00:26:11,900 Es tut uns leid. 595 00:26:11,900 --> 00:26:13,100 Gut. 596 00:26:13,100 --> 00:26:13,670 OK. 597 00:26:13,670 --> 00:26:18,070 So können wir zurück zu unserem Beispiel hier. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 Aah, nein. 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 Aah. 602 00:26:31,090 --> 00:26:32,490 OK. 603 00:26:32,490 --> 00:26:34,610 Ich werde einfach, es so zu halten. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 OK. 606 00:26:51,240 --> 00:26:51,740 OK. 607 00:26:51,740 --> 00:26:55,340 So wie Sie Jungs sehen können, was wir tun können viele sehr interessante Dinge, 608 00:26:55,340 --> 00:26:58,880 viele sehr coole Dinge, viel sehr komplizierte Dinge mit 609 00:26:58,880 --> 00:27:02,720 ASCII-Zeichen und Zahlen. 610 00:27:02,720 --> 00:27:05,890 Wenn Sie unten zu Zeile fünf, , dass es eine Menge zu folgen. 611 00:27:05,890 --> 00:27:07,640 Wir gehen nicht zu gehen, durch den Abschnitt. 612 00:27:07,640 --> 00:27:10,720 Fühlen Sie sich frei, wenn Sie können, Grund ist es auf Papier 613 00:27:10,720 --> 00:27:14,750 zunächst auf das, was geschehen sollte, wenn Eingabe wie eine Reihe von Werten. 614 00:27:14,750 --> 00:27:19,720 Beispielsweise in der letzten Zeile, haben wir z-- die eine gewisse number-- darstellt 615 00:27:19,720 --> 00:27:24,740 a-- was ebenfalls ein bestimmte number-- plus 1 modulos 26 616 00:27:24,740 --> 00:27:26,750 sowie in Kleinbuchstaben ein. 617 00:27:26,750 --> 00:27:29,220 >> Wenn euch lesen Sie weiter durch diese, die Sie 618 00:27:29,220 --> 00:27:34,009 Möglicherweise sehen Sie ein Muster in kommen wie wir die Manipulation des Codes. 619 00:27:34,009 --> 00:27:36,050 Ich sehr, sehr empfehlen nachdem Abschnitt euch alle 620 00:27:36,050 --> 00:27:38,160 Jungs, gehen Sie vor und Eingangs denen alle in Ihrem Computer 621 00:27:38,160 --> 00:27:40,060 und sehen, welche Art von Zahlen kommen aus 622 00:27:40,060 --> 00:27:43,090 und Argumentation über, warum das sind geschieht, denn für Ihre psets 623 00:27:43,090 --> 00:27:45,060 es wird sehr wichtig sein, Sie verstehen, 624 00:27:45,060 --> 00:27:47,132 warum bestimmte Dinge passieren. 625 00:27:47,132 --> 00:27:48,590 Alle diese Folien werden online sein. 626 00:27:48,590 --> 00:27:51,510 Also keine Sorgen um den Versuch, physikalisch kopieren Sie sich Notizen. 627 00:27:51,510 --> 00:27:52,510 Alles ist online. 628 00:27:52,510 --> 00:27:54,050 In diesem Abschnitt selbst wird online sein. 629 00:27:54,050 --> 00:27:57,500 Alle meine Quellcode, Ich bin mit online sein. 630 00:27:57,500 --> 00:27:58,180 Ja. 631 00:27:58,180 --> 00:27:59,430 Haben Sie noch eine Frage? 632 00:27:59,430 --> 00:28:00,587 ZIELGRUPPE: Was ist modulos? 633 00:28:00,587 --> 00:28:01,170 ANDI PENG: OK. 634 00:28:01,170 --> 00:28:05,620 So Modulo ist ein Operator, der zu gehen ist ziemlich wichtig, Ihr Jungs pset 635 00:28:05,620 --> 00:28:06,690 Hier. 636 00:28:06,690 --> 00:28:12,280 So ist die Art und Weise, dass die Betreiber in C und in der Programmierung der Arbeit 637 00:28:12,280 --> 00:28:16,360 ist, dass Sie, was heißt das Division-Symbol und der Modul-Symbol, 638 00:28:16,360 --> 00:28:18,350 Das ist genau wie das Prozentzeichen. 639 00:28:18,350 --> 00:28:24,840 >> So in C, wenn Sie eine ganze Zahl zu tun mit einem Schrägstrich dividiert durch eine ganze Zahl ist, 640 00:28:24,840 --> 00:28:27,720 C hat eine Tendenz zu schneiden möchten Aus all den Dezimalstellen, 641 00:28:27,720 --> 00:28:30,290 weil eine ganze Zahl möchte in eine Ganzzahl umzuwandeln. 642 00:28:30,290 --> 00:28:33,550 Es wird nicht gehen zu wollen, eine doppelte sein mit einem Bündel von Dezimalstellen alle danach. 643 00:28:33,550 --> 00:28:39,322 >> Also, wenn ich 3 geteilt durch 2, es geht zum Abschalten der 0,5 und nur Ihnen 1. 644 00:28:39,322 --> 00:28:41,530 Also das ist, etwas zu sein, sehr vorsichtig, wenn Sie 645 00:28:41,530 --> 00:28:45,294 tut jede Art von Mathematik in der Programmierung, ist, dass die Zahlen, die Sie erhalten, 646 00:28:45,294 --> 00:28:47,210 möglicherweise nicht die Zahlen sein dass Sie dachten, 647 00:28:47,210 --> 00:28:50,190 weshalb in Rundung ist Ihr letzten pset so wichtig ist. 648 00:28:50,190 --> 00:28:51,980 >> Modulo gibt Ihnen den Rest. 649 00:28:51,980 --> 00:28:56,200 So zum Beispiel, wenn ich 3 Modulo 2-- so 3 Prozentzeichen 2-- 650 00:28:56,200 --> 00:28:58,020 es würde Ihnen den Rest davon. 651 00:28:58,020 --> 00:29:00,460 So 3 geteilt durch 2 ist 1.5. 652 00:29:00,460 --> 00:29:01,410 Es ist ein Rest des 1. 653 00:29:01,410 --> 00:29:04,600 Es würde Ihnen die 1, der Rest davon. 654 00:29:04,600 --> 00:29:07,361 >> Also, wenn ihr Jungs bewegen durch die ASCII-Tabelle, 655 00:29:07,361 --> 00:29:09,735 Modulo wird am Ende als etwas, was sehr wichtig ist, 656 00:29:09,735 --> 00:29:11,240 und wir werden, dass später zu diskutieren. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> OK. 659 00:29:19,040 --> 00:29:27,300 Also etwas, das recht ist, ziemlich neu und ziemlich einzigartig 660 00:29:27,300 --> 00:29:31,920 dass wir in dieser Woche diskutiert wird das Konzept von dem, was ein Array ist. 661 00:29:31,920 --> 00:29:34,370 So Array ist der erste Datenstrukturtyp 662 00:29:34,370 --> 00:29:36,320 dass wir zu gehen Begegnung in dieser Klasse. 663 00:29:36,320 --> 00:29:40,010 Alle Datenstruktur ist irgendein willkürlich 664 00:29:40,010 --> 00:29:43,370 buchstäblich Dinge wie Struktur dass wir als Programmierer geschaffen, 665 00:29:43,370 --> 00:29:47,890 , die in unserem Code zu setzen haben, dass können auch andere Teile des Codes enthalten. 666 00:29:47,890 --> 00:29:51,090 >> Also in diesem Sinne, eine array-- betrachten Sie es als einen Aktenschrank, 667 00:29:51,090 --> 00:29:53,470 wo, wenn Sie verschiedene öffnen Regalen der Aktenschrank, 668 00:29:53,470 --> 00:29:55,630 Sie verschiedene Dinge zugreifen können. 669 00:29:55,630 --> 00:29:58,630 In Erinnerung wird ein Array nur tun, die gleiche Sache auf Ihrem Computer. 670 00:29:58,630 --> 00:30:01,730 Sie können verschiedene blocks-- wir nennen sie indices-- eines Arrays. 671 00:30:01,730 --> 00:30:04,210 Es ist wie ein Block, ein Regal mit Speicher 672 00:30:04,210 --> 00:30:07,580 dass wir innerhalb erstellt haben Ihre Computer, die Sie eingeben können, 673 00:30:07,580 --> 00:30:10,270 bestimmte Dinge in verschiedenen Räumen. 674 00:30:10,270 --> 00:30:18,000 >> Also mit einer Anordnung, die Sie müssen immer specify-- 675 00:30:18,000 --> 00:30:22,360 Sie haben erklärt, ein, um anzugeben Array im folgenden Format. 676 00:30:22,360 --> 00:30:24,290 Du wirst zuerst geben Sie den Datentyp 677 00:30:24,290 --> 00:30:25,831 dass Sie des Arrays erstellen möchten. 678 00:30:25,831 --> 00:30:28,870 Wenn ich ein Array von ganzen Zahlen, Ich werde int genau dort setzen. 679 00:30:28,870 --> 00:30:32,079 Wenn ich ein Array von Strings, Ich werde Saiten dort setzen, 680 00:30:32,079 --> 00:30:34,995 der Name des Arrays, und dann Sie gehen zu den eckigen Klammern haben. 681 00:30:34,995 --> 00:30:39,580 Und in den eckigen Klammern, du bist gehen, um die Größe des Array. 682 00:30:39,580 --> 00:30:42,900 >> Etwas, das wirklich wichtig ist denken Sie daran, bei der Erstellung von Arrays 683 00:30:42,900 --> 00:30:46,530 dass, sobald Sie eine erstellen Array, kann diese Größe nicht ändern. 684 00:30:46,530 --> 00:30:50,180 Also, wenn Sie wissen, dass gerade jetzt Sie haben eine Reihe von Größe 10, 685 00:30:50,180 --> 00:30:54,550 Sie wissen, dass ich werde 10 Zellen innerhalb oder 10 Indizes innerhalb dieses Arrays, 686 00:30:54,550 --> 00:30:56,830 und es wird nie zu erweitern oder zu verringern 687 00:30:56,830 --> 00:30:59,850 egal was, und dass es derzeit nur 10 Blöcke von Raum 688 00:30:59,850 --> 00:31:04,490 in Erinnerung, die gespeichert werden können zugeordnet bis zu 10 Dinge, was Sie gesetzt haben. 689 00:31:04,490 --> 00:31:08,790 >> Also auf diese Weise ein Array Datentyp, Die Datenstruktur, die ein Array 690 00:31:08,790 --> 00:31:13,392 ist sehr verschieden von einigen anderen wir werden werden später Für in diesem Kurs. 691 00:31:13,392 --> 00:31:15,170 Ja. 692 00:31:15,170 --> 00:31:20,080 Zum Beispiel, wenn man wollte ein Array der Größe 3, dass 693 00:31:20,080 --> 00:31:23,670 enthaltenen Variablen integer-- oh, sorry, der temperature-- 694 00:31:23,670 --> 00:31:25,640 und Temperatur, von Natürlich ist eine ganze Zahl. 695 00:31:25,640 --> 00:31:28,710 >> So würden wir int zu erstellen, die der ist Datentyp, was wir speichern möchten. 696 00:31:28,710 --> 00:31:32,680 Wir werden diese Temperaturen rufen aus Gründen der Systematik der Benennung 697 00:31:32,680 --> 00:31:34,200 etwas, das wir alle verstehen. 698 00:31:34,200 --> 00:31:35,900 Und wir werden in eckigen Klammern haben. 699 00:31:35,900 --> 00:31:37,200 Und wir wollen drei Zahlen. 700 00:31:37,200 --> 00:31:39,000 So werden wir setzen drei darin. 701 00:31:39,000 --> 00:31:41,041 >> Etwas, das wirklich ist wichtig, im Auge zu behalten 702 00:31:41,041 --> 00:31:43,530 ist, dass Arrays null indexiert. 703 00:31:43,530 --> 00:31:46,410 Alles, was bedeutet, dass Sie beginnen mit dem Index von 0, 704 00:31:46,410 --> 00:31:49,800 und Sie über die laufen Größe der Anordnung minus 1. 705 00:31:49,800 --> 00:31:52,730 So zum Beispiel hier, wir ein Array der Größe 3. 706 00:31:52,730 --> 00:31:54,680 Es wird zu können zu drei Werte zu halten. 707 00:31:54,680 --> 00:31:57,450 Aber die Zahlen, dass themselves-- Anzahl, die Anordnung, dass Index 708 00:31:57,450 --> 00:32:00,271 das Array, sind 0 bis 2. 709 00:32:00,271 --> 00:32:03,520 Also Jungs, wirklich, wirklich vorsichtig sein, wenn Sie durch Ihre Probleme eingestellt gehst 710 00:32:03,520 --> 00:32:06,500 und die Schaffung von jeder Art von Array, weil ein großer Teil der Zeit ist es 711 00:32:06,500 --> 00:32:08,490 wirklich, wirklich einfach zu vergessen. 712 00:32:08,490 --> 00:32:11,840 Ich eigentlich nicht den Index haben von 3, dass ich derzeit nur 713 00:32:11,840 --> 00:32:13,130 haben den Index 2. 714 00:32:13,130 --> 00:32:16,046 Und wenn Sie versuchen, Zugriff auf den dritten Index, 715 00:32:16,046 --> 00:32:18,170 es geht um das, was ist nannte das Nullabschluss. 716 00:32:18,170 --> 00:32:19,990 Es wird nicht um tatsächlich existieren in der Anordnung. 717 00:32:19,990 --> 00:32:21,781 Und der Computer nicht zu, dass mögen. 718 00:32:21,781 --> 00:32:24,570 Seien Sie also vorsichtig, wenn Sie Dinge einfach Zugriff 719 00:32:24,570 --> 00:32:28,070 um sicherzustellen, dass Sie daran denken, dass Arrays sind nullindiziert. 720 00:32:28,070 --> 00:32:28,880 >> OK. 721 00:32:28,880 --> 00:32:34,030 Also das erste Beispiel ist nur eine Möglichkeit der Erstellung eines Arrays. 722 00:32:34,030 --> 00:32:36,790 Das zweite Beispiel habe ich unten ist nur eine getrennte Wege 723 00:32:36,790 --> 00:32:40,210 zu schaffen, was das gleiche Daten Struktur, die wir gerade eingegeben haben. 724 00:32:40,210 --> 00:32:44,347 Also anstatt physisch ausgeführt durch und setzen in Temperatur von 0 725 00:32:44,347 --> 00:32:47,180 gleich, was auch immer, Temperatur 1 gleich was auch immer, Temperatur 2 equals 726 00:32:47,180 --> 00:32:50,950 was auch immer, ich konnte eigentlich nur direkt erstellen sie alle in einer Linie 727 00:32:50,950 --> 00:32:53,010 in Temperatur eckigen Klammern entspricht. 728 00:32:53,010 --> 00:32:56,536 >> Und Bekanntmachung in diesem Fall brauchen Sie nicht um anzugeben, wie groß Ihr Array ist, 729 00:32:56,536 --> 00:32:59,160 weil der Computer zu gehen gehen Sie durch und sehen, dass es 730 00:32:59,160 --> 00:33:01,570 drei Elemente in den geschweiften Klammern. 731 00:33:01,570 --> 00:33:04,000 Und es wird zu wissen, OK, Ich brauche ein Array der Größe 3. 732 00:33:04,000 --> 00:33:07,440 Du wirst doch nicht zu brauchen, Eingangs es auf folgende Weise. 733 00:33:07,440 --> 00:33:10,170 >> Und auch, ja, auf diese Weise. 734 00:33:10,170 --> 00:33:12,610 Hat jemand Fragen haben darüber, wie wir Arrays machen 735 00:33:12,610 --> 00:33:17,391 oder, wie die Struktur einer Anordnung funktioniert? 736 00:33:17,391 --> 00:33:17,890 Ja. 737 00:33:17,890 --> 00:33:18,806 >> ZIELGRUPPE: [unverständlich]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI PENG: Ja, genau. 740 00:33:22,690 --> 00:33:26,150 Also, wenn Sie deklariert und initialisiert wurden Ein Array, das folgende Verfahren, 741 00:33:26,150 --> 00:33:28,477 das ist der zweite Weg, können Sie einfach gehen diejenigen. 742 00:33:28,477 --> 00:33:30,310 Und der Computer weiß automatisch, dass es 743 00:33:30,310 --> 00:33:33,950 muss zählen, wie viele Elemente sind in diesen geschweiften Klammern, getrennt 744 00:33:33,950 --> 00:33:34,930 durch Komma. 745 00:33:34,930 --> 00:33:37,517 >> So, hier sehen sie 65, 87, 30. 746 00:33:37,517 --> 00:33:39,600 Damit der Computer weiß, oh, gibt es drei Ganzzahlen. 747 00:33:39,600 --> 00:33:45,960 Ich weiß, dass, um ein Array Namen erstellen Temperatur mit drei Elementen in ihm. 748 00:33:45,960 --> 00:33:46,590 Gute Frage. 749 00:33:46,590 --> 00:33:47,090 Ja. 750 00:33:47,090 --> 00:33:51,590 >> Publikum: Ist es nicht möglich, zu erstellen ein Array mit verschiedenen Arten von Daten 751 00:33:51,590 --> 00:33:53,021 dass in sie eingegeben werden konnten? 752 00:33:53,021 --> 00:33:56,746 Beispielsweise mit ganzen Zahlen [unverständlich]? 753 00:33:56,746 --> 00:33:59,120 ANDI PENG: Für die Zwecke dieser Klasse, nein, gerade jetzt. 754 00:33:59,120 --> 00:34:03,070 Wenn Sie eine Daten erstellen strukturieren, wie ein Array, 755 00:34:03,070 --> 00:34:04,990 Sie sagen das Computer, hey, ich brauche dich 756 00:34:04,990 --> 00:34:08,159 , so viel zuzuteilen Speicher in meiner Festplatte, 757 00:34:08,159 --> 00:34:10,690 wobei jede Zelle eine bestimmte Anzahl von Bits. 758 00:34:10,690 --> 00:34:13,429 >> Denken Sie daran, wir in der Woche gelernt Null, dass unterschiedliche Daten 759 00:34:13,429 --> 00:34:15,300 Typen haben unterschiedliche Größen? 760 00:34:15,300 --> 00:34:17,630 So zum Beispiel eine Zeichenfolge eine unterschiedliche Menge 761 00:34:17,630 --> 00:34:20,719 der Platz als ein Zeichen, das eine unterschiedliche Menge an Raum 762 00:34:20,719 --> 00:34:21,830 aus einer ganzen Zahl. 763 00:34:21,830 --> 00:34:25,534 Und so, wenn Sie nicht angeben, und Sie Mix and Match, welche Arten von Variablen 764 00:34:25,534 --> 00:34:27,659 Sie haben, desto Computers wird sehr verwirrt. 765 00:34:27,659 --> 00:34:29,950 Und es wird nicht zu wissen, wie viel Speicher, um Ihnen. 766 00:34:29,950 --> 00:34:32,480 So für die Zwecke der rechten Erst jetzt können Computer 767 00:34:32,480 --> 00:34:36,120 erkennt einen Typ eines Arrays. 768 00:34:36,120 --> 00:34:37,940 Gute Frage. 769 00:34:37,940 --> 00:34:38,440 OK. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> So natürlich, die zweite Frage, die wir 772 00:34:47,120 --> 00:34:50,760 ist, nun ja, jetzt, da wir eine erstellt Array und wir haben all diese Dinge setzen 773 00:34:50,760 --> 00:34:54,190 in der Anordnung, wie wir sind in der Lage sein, es zu zugreifen? 774 00:34:54,190 --> 00:34:59,710 So ist die typische Struktur, die wir immer Zugriff auf ein Array ist unsere schöne for-Schleife. 775 00:34:59,710 --> 00:35:03,830 Ich verspreche euch, dass wir sein sehen viele dieser Kerl hier. 776 00:35:03,830 --> 00:35:06,470 >> Im Wesentlichen, wenn Sie wollen zur Eingabe von Werten in einem Array 777 00:35:06,470 --> 00:35:09,940 oder Sie auf diese zugreifen möchten, die beste Weg, dies zu tun ist eine for-Schleife, 778 00:35:09,940 --> 00:35:13,730 weil in einer for-Schleife, die Sie , wie oft Sie 779 00:35:13,730 --> 00:35:17,290 gehen, um durch das Array ausgeführt werden soll, weil Sie eine Stop-Ausgabe, nicht wahr? 780 00:35:17,290 --> 00:35:19,680 Und jedes Mal, wenn Sie laufen durch, können Sie auf 781 00:35:19,680 --> 00:35:21,310 ein anderes Element der Anordnung. 782 00:35:21,310 --> 00:35:26,920 >> Und dies ist auch ein Grund dafür, typischerweise beginnen wir unsere for-Schleifen an der 0-Wert, 783 00:35:26,920 --> 00:35:30,080 weil, wenn Sie Arrays, Sie die Null-Index zugreifen. 784 00:35:30,080 --> 00:35:32,070 Und so ist es Parallelen sehr schön. 785 00:35:32,070 --> 00:35:35,295 You guys kann wollte haben Schreiben für int i gleich 1 ist. 786 00:35:35,295 --> 00:35:37,330 i kleiner als oder gleich 3 ist. 787 00:35:37,330 --> 00:35:39,890 >> Aber es wäre nicht ganz so funktioniert auch hier, weil Sie nur 788 00:35:39,890 --> 00:35:42,010 haben Elemente 0, 1 und 2. 789 00:35:42,010 --> 00:35:45,815 Und so, wenn Sie beginnen waren Ihre i bei Element 1, 2, und 3, 790 00:35:45,815 --> 00:35:48,440 Sie gehen zu Ende laufen lassen außerhalb der Grenzen des Arrays, 791 00:35:48,440 --> 00:35:50,440 und schlechte Dinge passieren werden. 792 00:35:50,440 --> 00:35:54,480 >> So dass ich hoffe, euch siehe segue warum in den früheren Klassen 793 00:35:54,480 --> 00:35:58,560 wir lehren euch, wie man läuft und formatieren Sie eine for-Schleife die Art und Weise, die wir waren. 794 00:35:58,560 --> 00:36:01,900 Es ist, weil, jetzt haben wir in Arrays übergegangen ist, 795 00:36:01,900 --> 00:36:06,760 Sie können sehen, warum die 0 leiht sich sehr schön auf den Zugriff. 796 00:36:06,760 --> 00:36:09,880 >> So ist die Art, wie wir tun, ist dass-- Ich bin nur ausgedruckt bekommt hier aus Gründen 797 00:36:09,880 --> 00:36:10,830 zum Drucken Sie es aus. 798 00:36:10,830 --> 00:36:13,750 Aber ich habe meine Platzhalter, Komma. 799 00:36:13,750 --> 00:36:15,645 Und die tatsächliche Zugriffs Teil geschieht. 800 00:36:15,645 --> 00:36:17,520 Der Name des Felds wurde die Temperatur bezeichnet. 801 00:36:17,520 --> 00:36:21,570 Es ist also Temperatur und i-ten Element des Feldes. 802 00:36:21,570 --> 00:36:24,400 >> So wie die for-Schleife durchläuft, es wird bei 0 beginnen. 803 00:36:24,400 --> 00:36:27,640 Es wird aus dem Druck 0. Index dieses Arrays. 804 00:36:27,640 --> 00:36:29,599 Dann, es wird gedruckt aus dem ersten Element. 805 00:36:29,599 --> 00:36:31,431 Dann, es wird gedruckt aus der zweiten. 806 00:36:31,431 --> 00:36:32,880 Und dann werden wir brechen. 807 00:36:32,880 --> 00:36:36,718 Jeder ist klar auf wie das passiert? 808 00:36:36,718 --> 00:36:37,217 Groß. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> Gut. 811 00:36:44,100 --> 00:36:47,270 Hier haben wir also einen Weg, sagen, wenn wir nicht wollen, 812 00:36:47,270 --> 00:36:50,020 hartcodieren in-- mich als Programmierer. 813 00:36:50,020 --> 00:36:53,320 Ich wollte nicht tatsächlich physisch setzen in jedem Einzelelement 814 00:36:53,320 --> 00:36:54,020 dieses Arrays. 815 00:36:54,020 --> 00:36:56,500 Wenn ich wollte, statt haben die Benutzereingabewerten, 816 00:36:56,500 --> 00:36:58,100 was ist der beste Weg, dies zu tun? 817 00:36:58,100 --> 00:37:00,920 >> Nun, hier habe ich erstellt diese reizende Funktion, 818 00:37:00,920 --> 00:37:03,560 in der ich ein Array deklarieren. 819 00:37:03,560 --> 00:37:06,210 So int scores-- uns gelassen einfach sagen, wir machen wollen 820 00:37:06,210 --> 00:37:10,660 ein Array, das die Noten aller 18 gehalten der Studenten hier in diesem Abschnitt. 821 00:37:10,660 --> 00:37:12,670 Ich denke, wir haben ein bisschen bekam mehr als 18 Kinder heute. 822 00:37:12,670 --> 00:37:16,460 Aber zum Beispiel willen, lassen Sie uns einfach davon ausgehen, wir hatten 18. 823 00:37:16,460 --> 00:37:21,580 Ich würde ein Array-Name punktet mit erstellen Typ int, denn Partituren, natürlich, 824 00:37:21,580 --> 00:37:22,987 Zahlen sind. 825 00:37:22,987 --> 00:37:24,820 Und ich werde zu haben, 18 in eckigen Klammern, 826 00:37:24,820 --> 00:37:29,900 weil das ist, wie viele Schüler I wollen in der Lage, Dutzende von speichern. 827 00:37:29,900 --> 00:37:32,206 >> Und die Art, wie ich würde bevöl die Anordnung, dass ich 828 00:37:32,206 --> 00:37:35,572 führen Sie es durch eine for-Schleife, der Natürlich, wobei 0 meine 0. index. 829 00:37:35,572 --> 00:37:38,030 Und dann mit 18 als meine Stoppen Ausgabe, weil es 830 00:37:38,030 --> 00:37:39,690 18 Elemente in der Anordnung. 831 00:37:39,690 --> 00:37:44,620 Und dann werde ich printf tun, Geben Sie Partitur für student-- yada Blabla. 832 00:37:44,620 --> 00:37:51,171 >> Kann mir jemand sagen, warum ich hier bin Druck i plus 1 und nicht ich? 833 00:37:51,171 --> 00:37:52,920 Es ist Art von einem Trick Frage, nicht wirklich. 834 00:37:52,920 --> 00:37:56,020 Es ist nicht wirklich physisch beeinflusst den Lauf des Codes. 835 00:37:56,020 --> 00:37:56,520 Ja. 836 00:37:56,520 --> 00:37:57,909 >> ZIELGRUPPE: [unverständlich] 0? 837 00:37:57,909 --> 00:37:58,950 ANDI PENG: Ja, genau. 838 00:37:58,950 --> 00:38:02,620 Es ist ein wenig umständlich zu sagen, hey, Sie sind der 0. Schüler in dieser Klasse. 839 00:38:02,620 --> 00:38:03,780 Es ist ein bisschen seltsam. 840 00:38:03,780 --> 00:38:08,340 Also uns, als Menschen, nicht wirklich, wie auf der Web-Computern denken. 841 00:38:08,340 --> 00:38:10,930 Also auch wenn in der Computer, es Speichern von Werten 842 00:38:10,930 --> 00:38:13,310 im 0-ten Index, wenn Wir sind Menschen, wir nicht wirklich 843 00:38:13,310 --> 00:38:15,520 gerne, uns als Null beziehen. 844 00:38:15,520 --> 00:38:18,119 Also, wenn ich drucken nur das, Ich werde zu drucken, und fügen Sie 845 00:38:18,119 --> 00:38:19,410 1 nur aus Gründen der Klarheit. 846 00:38:19,410 --> 00:38:22,447 Also, wenn ich drucken, werde ich sein, in der Lage, Schüler 1 bis 18 zu drucken. 847 00:38:22,447 --> 00:38:24,530 Es ist nicht wirklich auswirken der Lauf des Code 848 00:38:24,530 --> 00:38:27,110 in irgendeiner Weise, wie ich es zu drucken. 849 00:38:27,110 --> 00:38:30,380 >> Aber seien Sie vorsichtig, wenn Sie tatsächlich Zugriff auf das Array. 850 00:38:30,380 --> 00:38:32,780 Wenn Sie sehen, die Partituren i, bemerken Sie hier Ich bin eigentlich 851 00:38:32,780 --> 00:38:38,200 Zugriff auf die 0. Index und nicht der 1 plus 0-- oder 1 plus 1, 852 00:38:38,200 --> 00:38:45,530 in diesem Fall so Index dass es eigentlich klar. 853 00:38:45,530 --> 00:38:48,870 Ist jeder Art von OK auf wie durch diese ausgeführt wird 854 00:38:48,870 --> 00:38:51,470 und mit jedem Index Ich bin Sie einen Wert in das Array 855 00:38:51,470 --> 00:38:55,340 und ein Array mit 18 Zahlen dass der Benutzer die Eingabe hin? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 OK. 858 00:38:59,821 --> 00:39:00,321 Cool. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> OK. 861 00:39:07,400 --> 00:39:12,220 Wir haben jetzt in etwas, das ziemlich Umzug für dieses Stück gesetzt und relevant. 862 00:39:12,220 --> 00:39:15,020 Ich weiß, dass in der Vorlesung, David-- sorry, eine Frage hatten Sie? 863 00:39:15,020 --> 00:39:16,840 >> ZIELGRUPPE: Können Sie es zu vergrößern? 864 00:39:16,840 --> 00:39:18,080 >> ANDI PENG: Ja, so habe ich versucht. 865 00:39:18,080 --> 00:39:18,788 Aber ich weiß es nicht. 866 00:39:18,788 --> 00:39:21,437 Aus irgendeinem Grund, diese Version von Powerpoint 867 00:39:21,437 --> 00:39:23,270 ist wirklich nicht arbeiten auch mit dem Display. 868 00:39:23,270 --> 00:39:25,260 So dass wir gerade gehen um es so zu halten. 869 00:39:25,260 --> 00:39:27,280 All dies wird Online hochgeladen werden. 870 00:39:27,280 --> 00:39:28,218 Tut mir leid, Leute. 871 00:39:28,218 --> 00:39:30,090 Ja. 872 00:39:30,090 --> 00:39:30,980 OK. 873 00:39:30,980 --> 00:39:35,530 >> So können wir auch Strings. 874 00:39:35,530 --> 00:39:39,320 Also, wenn ihr Jungs eigentlich notice-- I weiß Rob ging dies in diesem Vortrag 875 00:39:39,320 --> 00:39:43,652 dass er did-- ein String ist eigentlich nur ein Array von Zeichen, 876 00:39:43,652 --> 00:39:44,860 wenn Sie darüber nachdenken, nicht wahr? 877 00:39:44,860 --> 00:39:47,500 Ein String ist ein Name oder eine Satz oder ein Wort, nicht wahr? 878 00:39:47,500 --> 00:39:52,975 >> Wenn ich eine Zeichenfolge mit dem Namen erstellen Andi-- nur mein Name, A-N-D-I. 879 00:39:52,975 --> 00:39:55,460 Sie denken an, dass als nur eine Variable. 880 00:39:55,460 --> 00:39:58,630 Aber eigentlich ist es zusammengebrochen in nur ein Array von Zeichen. 881 00:39:58,630 --> 00:40:01,910 So ist es ein Charakter bekam in einem Array ein Wert gespeichert. 882 00:40:01,910 --> 00:40:05,420 Es ist ein Zeichen von n in die gespeicherte bekam zweite Index und so weiter und so fort. 883 00:40:05,420 --> 00:40:08,660 >> Damit in der Weise, wir tatsächlich haben diese Art 884 00:40:08,660 --> 00:40:10,970 der Struktur gesetzt Platz für unsere Saiten. 885 00:40:10,970 --> 00:40:14,660 Also hier, wenn ich zur Eingabe der Wort "essen" - so string Wort gleich 886 00:40:14,660 --> 00:40:15,540 bekommen String. 887 00:40:15,540 --> 00:40:19,260 Wenn ich zur Eingabe das Wort "essen", dass physikalisch die Art und Weise, dass mein Computer 888 00:40:19,260 --> 00:40:21,870 speichert diesen String in meiner Erinnerung. 889 00:40:21,870 --> 00:40:27,140 >> Und wenn ich wollte, dass durch laufen und drucken, die so out-- für in i 890 00:40:27,140 --> 00:40:30,890 gleich Null ist, denken Sie daran, in der Aula, die wir abgedeckt etwas, das strlen genannt wird, 891 00:40:30,890 --> 00:40:32,990 oder die Länge der Zeichenfolge. 892 00:40:32,990 --> 00:40:36,520 Weil ich nicht wirklich wissen, wie groß das Array 893 00:40:36,520 --> 00:40:38,210 gleich welcher inputting-- des Benutzers 894 00:40:38,210 --> 00:40:40,370 >> Zum Beispiel eingegeben I das Wort "essen", und ich weiß, 895 00:40:40,370 --> 00:40:41,870 das ist drei Zeichen lang ist, oder? 896 00:40:41,870 --> 00:40:44,700 So konnte ich in einem drei dort setzen und alles wird gut. 897 00:40:44,700 --> 00:40:49,290 Aber wenn Ihre Benutzereingaben etwas das ist eine andere Anzahl von Werten, 898 00:40:49,290 --> 00:40:52,760 wirst du nicht in der Lage zu sein, wirklich bist wissen, dass, wenn Sie Ihren Code zu programmieren. 899 00:40:52,760 --> 00:40:56,040 >> So ist die Art und Weise, die wir behandeln Testfälle wie das ist, dass wir etwas haben, 900 00:40:56,040 --> 00:41:00,070 strlen aufgerufen, die nur eine Funktion ist , dass erfahren Sie, wie lange ein String ist. 901 00:41:00,070 --> 00:41:02,080 Also von Wort strlen. 902 00:41:02,080 --> 00:41:03,470 Mein Wort ist zu essen. 903 00:41:03,470 --> 00:41:05,990 n gleich strlen des Wortes. 904 00:41:05,990 --> 00:41:08,930 Kann mir jemand sagen, was das Wert ist eigentlich genau dort? 905 00:41:08,930 --> 00:41:12,550 Was bedeutet n repräsentiert rechts Jetzt, in diesem Beispiel, wenn ich essen? 906 00:41:12,550 --> 00:41:13,530 >> ZIELGRUPPE: 3. 907 00:41:13,530 --> 00:41:14,520 >> ANDI PENG: 3, genau. 908 00:41:14,520 --> 00:41:18,820 So haben wir für int i gleich Null ist, n gleich 3 ist, im Wesentlichen. 909 00:41:18,820 --> 00:41:22,355 Und ich laufen soll bis es weniger als 3i ++. 910 00:41:22,355 --> 00:41:24,980 Und es wird im wesentlichen gehen durch und das gleiche tun. 911 00:41:24,980 --> 00:41:26,979 Es wird zum Ausdrucken jeder Wert und geben Ihnen 912 00:41:26,979 --> 00:41:29,700 E-A-T. Es ist nur eine bezeichnet andere Art, es zu schreiben. 913 00:41:29,700 --> 00:41:31,170 Das wird sehr hilfreich sein. 914 00:41:31,170 --> 00:41:31,670 Ja. 915 00:41:31,670 --> 00:41:35,174 Publikum: Was ist die Vorteile der Umsetzung der n gleich strlen Wortinnere, 916 00:41:35,174 --> 00:41:36,894 for-Schleife [unverständlich]? 917 00:41:36,894 --> 00:41:37,560 ANDI PENG: Ja. 918 00:41:37,560 --> 00:41:44,880 Also, wenn ich sagen würde zu-- beispielsweise wenn ich das zu tun, und dann 919 00:41:44,880 --> 00:41:51,935 do-- oop--, dass in meinem Code, es wäre tun wie die gleiche Sache eigentlich ist. 920 00:41:51,935 --> 00:41:55,060 Allerdings ist die Art und Weise, David erklärt es während der Vorlesung, wenn einer von euch Jungs 921 00:41:55,060 --> 00:41:57,854 erinnere, war, dass, wie Menschen, als Programmierer, 922 00:41:57,854 --> 00:42:00,270 wir wirklich versuchen, zu programmieren unsere Code, so dass unsere Computer 923 00:42:00,270 --> 00:42:04,070 an die Arbeit so gering wie möglich, so dass dass unser Code ist sehr effizient. 924 00:42:04,070 --> 00:42:06,850 >> Also, wenn ich, dass es, was hatte würde durch meine for-Schleife passieren 925 00:42:06,850 --> 00:42:10,790 ist, dass ich zunächst erklären, a Variable namens i wird auf 0 gesetzt. 926 00:42:10,790 --> 00:42:13,350 Ich werde prüfen, oh, was ist die strlen des Wortes? 927 00:42:13,350 --> 00:42:15,000 Oh, ist das strlen 3. 928 00:42:15,000 --> 00:42:16,191 Also ist i weniger als drei? 929 00:42:16,191 --> 00:42:16,690 Ja ist es. 930 00:42:16,690 --> 00:42:17,870 Ich werde laufen. 931 00:42:17,870 --> 00:42:21,130 >> Und dann das zweite Mal wieder um die Schleife, ich werde i zu erhöhen. 932 00:42:21,130 --> 00:42:22,550 i wird einer sein. 933 00:42:22,550 --> 00:42:25,600 Und i wird, um zu prüfen, oh, aber was ist der strlen des Wortes? 934 00:42:25,600 --> 00:42:26,839 Oh, es ist drei. 935 00:42:26,839 --> 00:42:29,880 Und tut diese Art von Verschwendung scheinen, jedes Mal wenn Sie durch die Schleife laufen, 936 00:42:29,880 --> 00:42:33,340 zu werden, die Funktion überprüft, obwohl die strlen des Wortes 937 00:42:33,340 --> 00:42:35,490 nie wirklich ändert? 938 00:42:35,490 --> 00:42:38,590 >> Es ist also zusätzliche Leistung für einen Computer. 939 00:42:38,590 --> 00:42:42,180 Wenn Sie reden über die Dinge beginnen die Milliarden und Milliarden sind 940 00:42:42,180 --> 00:42:44,431 und Milliarden von Orten lang, sich vorstellen, Ihren Computer 941 00:42:44,431 --> 00:42:47,430 physisch durchlaufen und überprüfen Sie alle, dass jede einzelne Zeit. 942 00:42:47,430 --> 00:42:53,170 Deshalb, um nur machen aus Gründen der Effizienz, 943 00:42:53,170 --> 00:42:57,620 Wir neigen dazu, nur das tun, weil auf diese Weise nur wir sind 944 00:42:57,620 --> 00:42:59,850 Aufruf der Funktion einmal am Anfang, 945 00:42:59,850 --> 00:43:01,766 und dass jedes Mal, wenn es durchläuft es geht 946 00:43:01,766 --> 00:43:03,789 , um den Wert zu speichern 3 gibt, dass Sie nicht 947 00:43:03,789 --> 00:43:05,330 müssen ständig jedes Mal zu überprüfen. 948 00:43:05,330 --> 00:43:05,743 Ja. 949 00:43:05,743 --> 00:43:06,409 >> Publikum: Es tut uns leid. 950 00:43:06,409 --> 00:43:09,070 Nur [unverständlich]. 951 00:43:09,070 --> 00:43:13,985 Könnten Sie tun, int n gleich strlen und legte daß oberhalb des außerhalb der for-Schleife 952 00:43:13,985 --> 00:43:15,364 auch? 953 00:43:15,364 --> 00:43:16,030 ANDI PENG: Ja. 954 00:43:16,030 --> 00:43:17,100 Sie könnten das tun, absolut. 955 00:43:17,100 --> 00:43:19,970 Der Grund, warum wir es in hier weil die Art und Weise einer for-Schleife Werke 956 00:43:19,970 --> 00:43:23,500 ist, dass es heißt ein lokale Variable in dem Sinne 957 00:43:23,500 --> 00:43:26,150 dass alles, was du bist Erstellung innerhalb der for-Schleife 958 00:43:26,150 --> 00:43:27,890 existiert nur innerhalb der for-Schleife. 959 00:43:27,890 --> 00:43:31,530 >> So dass nur die Variable i existiert in diesen Klammern. 960 00:43:31,530 --> 00:43:35,260 Und hier die Variablen n auch existiert nur in den Klammern. 961 00:43:35,260 --> 00:43:39,350 Also, wenn Sie von strlen verwenden waren Wort mehrmals unten, 962 00:43:39,350 --> 00:43:42,230 absolut der beste Weg, das zu tun wäre, es zu erklären, bis die Spitze 963 00:43:42,230 --> 00:43:43,563 so dass Sie nicht haben, um es einmal zu tun. 964 00:43:43,563 --> 00:43:45,420 Ja. 965 00:43:45,420 --> 00:43:47,670 Publikum: Warum haben Sie ein neue Zeile nach der Prozent 966 00:43:47,670 --> 00:43:51,300 Sehen Sie, wenn Sie alle setzen wollen die Buchstaben daneben zu trennen? 967 00:43:51,300 --> 00:43:54,140 >> ANDI PENG: Oh, ich wollte drucken sie alle in jeder Zeile. 968 00:43:54,140 --> 00:43:54,890 Es spielt keine Rolle. 969 00:43:54,890 --> 00:43:55,890 Ja, es ist eine Formatierung. 970 00:43:55,890 --> 00:43:57,181 Das ist eine gute Frage, though. 971 00:43:57,181 --> 00:43:59,360 Ja, wenn ich wollte, um es auszudrucken es hängt alles von nur einer Zeile, 972 00:43:59,360 --> 00:44:02,731 Ich würde nicht den Bindestrich in. 973 00:44:02,731 --> 00:44:03,230 OK. 974 00:44:03,230 --> 00:44:06,880 Jeder gut? 975 00:44:06,880 --> 00:44:07,500 OK. 976 00:44:07,500 --> 00:44:08,000 Cool. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> Also ich denke, ich habe genug geredet. 979 00:44:14,750 --> 00:44:20,040 Ihr seid an der Reihe, durch die laufen Code und mir sagen, was ist hier falsch. 980 00:44:20,040 --> 00:44:21,560 Wo ist der Fehler? 981 00:44:21,560 --> 00:44:26,920 So wie Sie sehen können, habe ich ein erklärter neue Array vom Typ String mit dem Namen der Klasse. 982 00:44:26,920 --> 00:44:30,220 Und ich habe Sam eingegeben wird, Jess und Kim hinein. 983 00:44:30,220 --> 00:44:33,400 Und ich bin versucht zu drucken alle Elemente des Arrays. 984 00:44:33,400 --> 00:44:36,796 Kann mir jemand sagen, warum diese geht mir Probleme zu geben? 985 00:44:36,796 --> 00:44:39,320 Ich gebe Ihnen Kerle 10 Sekunden, um darüber nachzudenken. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> OK. 988 00:44:56,619 --> 00:44:57,118 Ja? 989 00:44:57,118 --> 00:45:01,972 >> ZIELGRUPPE: Ist das linke Zentrum gleich 3 oder [unverständlich]? 990 00:45:01,972 --> 00:45:02,680 ANDI PENG: Richtig. 991 00:45:02,680 --> 00:45:06,784 So, wie oft ist dies tatsächlich werde durch diese Schleife laufen? 992 00:45:06,784 --> 00:45:07,620 >> ZIELGRUPPE: Vier. 993 00:45:07,620 --> 00:45:08,070 >> ANDI PENG: Genau. 994 00:45:08,070 --> 00:45:09,445 Es wird vier Mal durch. 995 00:45:09,445 --> 00:45:12,250 Es wird durchlaufen bei 0, 1, 2 und 3, 996 00:45:12,250 --> 00:45:15,200 weil ihr Element ist i kleiner oder gleich 3 ist. 997 00:45:15,200 --> 00:45:16,960 Es wird nicht zu stoppen, wenn es an der 2. 998 00:45:16,960 --> 00:45:18,800 Es wird halten gehen, bis er trifft 3. 999 00:45:18,800 --> 00:45:21,720 Und wie wir wissen, gibt es nur drei Elemente in unserer tatsächlichen Array. 1000 00:45:21,720 --> 00:45:27,260 >> Wenn wir versuchen, Zugriff auf die vierte Element oder der Index 3, 1001 00:45:27,260 --> 00:45:30,357 Sie gehen irgendwo getroffen sind in Erinnerung, die nicht existiert. 1002 00:45:30,357 --> 00:45:31,690 Es heißt die Nullabschluss. 1003 00:45:31,690 --> 00:45:32,856 Nichts wird da sein. 1004 00:45:32,856 --> 00:45:35,324 Ihr Computer wird nicht sehr glücklich, mit Ihnen zu sein. 1005 00:45:35,324 --> 00:45:36,170 Ja. 1006 00:45:36,170 --> 00:45:38,430 Hat jemand Fragen haben auf, warum das geschah? 1007 00:45:38,430 --> 00:45:39,679 Das ist ein gemeinsamer Raum, um zu vermeiden. 1008 00:45:39,679 --> 00:45:40,712 Ja. 1009 00:45:40,712 --> 00:45:45,777 >> Publikum: Ist nicht das erste Schieben Sie haben auch eine Reihe von 2? 1010 00:45:45,777 --> 00:45:46,360 ANDI PENG: Nein 1011 00:45:46,360 --> 00:45:49,610 So im Wesentlichen, wenn Sie machen ein Array, 1012 00:45:49,610 --> 00:45:51,540 dass Halterung rechts gibt, die alle number-- 1013 00:45:51,540 --> 00:45:53,480 es sagt dir, wie viele Elemente habe ich. 1014 00:45:53,480 --> 00:45:55,840 Es ist nicht wirklich sagen, mir die Indizes von irgendetwas. 1015 00:45:55,840 --> 00:45:58,760 Also in diesem Fall, ich weiß, ich will mit drei Stellen zu schreiben, 1016 00:45:58,760 --> 00:46:02,690 mit drei physischen Orte Halten Sie, was ich will, um zu halten. 1017 00:46:02,690 --> 00:46:04,510 Also das ist, warum die Zahl drei ist da. 1018 00:46:04,510 --> 00:46:06,560 Allerdings, wenn ich wollte, um tatsächlich darauf zugreifen, 1019 00:46:06,560 --> 00:46:11,220 wenn ich sagen wollte, printf Klasse Halterung Zahl, dann 1020 00:46:11,220 --> 00:46:14,560 Sie gehen, um tatsächlich einsetzen werden der physische Index gibt. 1021 00:46:14,560 --> 00:46:16,330 Ja, gute Frage. 1022 00:46:16,330 --> 00:46:20,065 >> Publikum: So ist die physikalische Index sein soll [unverständlich]? 1023 00:46:20,065 --> 00:46:20,940 ANDI PENG: Es tut mir leid. 1024 00:46:20,940 --> 00:46:21,500 Können Sie sprechen ein wenig? 1025 00:46:21,500 --> 00:46:24,208 >> Publikum: So ist der physische Index [Unverständlich] jeder der Boxen? 1026 00:46:24,208 --> 00:46:25,260 [Unverständlich]? 1027 00:46:25,260 --> 00:46:26,040 >> ANDI PENG: Ja. 1028 00:46:26,040 --> 00:46:28,970 Also, ich werde wieder nach rechts hier. 1029 00:46:28,970 --> 00:46:31,120 Betrachten Sie hier richtig. 1030 00:46:31,120 --> 00:46:32,820 Wir haben eine Reihe von der Größe 3. 1031 00:46:32,820 --> 00:46:35,540 Es gibt drei Stellen, wie, physische Platzhalter in hier. 1032 00:46:35,540 --> 00:46:37,620 Aber sie 0, 1 und 2 genannt sind. 1033 00:46:37,620 --> 00:46:40,700 Also, wenn ich wollte, auf sie zuzugreifen, die Art und Weise, dass ich auf sie zugreifen 1034 00:46:40,700 --> 00:46:43,480 ist printf von was auch immer ich hier wollte. 1035 00:46:43,480 --> 00:46:45,485 Sie müssten zu drucken aus dem Namen es, 1036 00:46:45,485 --> 00:46:47,610 weil dann der Computer weiß, oh, ich brauche, um zu suchen 1037 00:46:47,610 --> 00:46:51,391 in diesem Array für die 0. index. 1038 00:46:51,391 --> 00:46:51,890 Ja. 1039 00:46:51,890 --> 00:46:53,306 Aber die Größe der sie sich nicht ändert. 1040 00:46:53,306 --> 00:46:55,492 Die Größe 3 unabhängig davon, wie Sie sie zu beschriften. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 OK. 1043 00:46:58,820 --> 00:47:01,387 Jeder gut? 1044 00:47:01,387 --> 00:47:02,970 ZIELGRUPPE: Also jedes Mal wenn ich [unverständlich]? 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 ANDI PENG: OK. 1047 00:47:06,940 --> 00:47:13,270 Also in diesem Fall, wir nicht wirklich sich in sie gerade jetzt in den Kurs. 1048 00:47:13,270 --> 00:47:16,760 Aber wissen, dass ein string-- wie ich sagte, ein String ist im Wesentlichen 1049 00:47:16,760 --> 00:47:18,440 ein Array von Zeichen. 1050 00:47:18,440 --> 00:47:21,430 Also, wenn ich ein Array von Strings, ich Art 1051 00:47:21,430 --> 00:47:24,430 haben eine Reihe von Array- von Zeichen, oder? 1052 00:47:24,430 --> 00:47:27,720 >> So dass in diesem Fall, weil ich haben ein Array von Strings, 1053 00:47:27,720 --> 00:47:31,340 wenn Sie waren die Eingabe einer wirklich langen Wort, dass immer noch belegt nur einen Raum, 1054 00:47:31,340 --> 00:47:33,230 denn das ist die eine Saite. 1055 00:47:33,230 --> 00:47:37,492 Aber wenn Sie waren zu denken die Zeichen des Arrays, 1056 00:47:37,492 --> 00:47:40,450 dann ist die Aufnahme einer Menge mehr Zeichen als jede der anderen Worten 1057 00:47:40,450 --> 00:47:41,372 gibt. 1058 00:47:41,372 --> 00:47:42,830 Nicht wirklich wichtig, gerade jetzt. 1059 00:47:42,830 --> 00:47:44,921 Aber das ist nur allgemein , wie es funktioniert. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> OK. 1062 00:47:50,560 --> 00:47:55,840 Also das ist etwas, was ich dir tun lassen eine Menge über den Verlauf des Semesters. 1063 00:47:55,840 --> 00:47:57,500 Ich muss meine Stimme ausruhen. 1064 00:47:57,500 --> 00:47:59,530 Ihr Jungs brauchen, um euch selbst zu stimulieren. 1065 00:47:59,530 --> 00:48:02,300 Viele von Ihnen wahrscheinlich müssen jetzt schlafen. 1066 00:48:02,300 --> 00:48:05,960 Ich Eingabe zufällige Probleme wo wir als Klasse oder 1067 00:48:05,960 --> 00:48:09,480 mit einem Partner neben dir gehen um ein paar Minuten Zeit diskutieren 1068 00:48:09,480 --> 00:48:14,980 darüber, wie wir über die Lösung gehen oder Erstellen eines Programms wie diese. 1069 00:48:14,980 --> 00:48:17,100 >> So jetzt wollen wir einen program-- erstellen 1070 00:48:17,100 --> 00:48:19,560 wir werden es nennen upper.c--, dass Konvertiten 1071 00:48:19,560 --> 00:48:24,787 ein Kleinwort zu einer Oberklasse- string-- Großbuchstaben, sorry. 1072 00:48:24,787 --> 00:48:26,370 Wort in Zeichenfolgen, sorry, ist gleichbedeutend. 1073 00:48:26,370 --> 00:48:28,370 Ich werde sie zu ändern um das gleiche bedeuten. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> Ja. 1076 00:48:33,499 --> 00:48:34,540 Nehmen Sie ein paar Minuten. 1077 00:48:34,540 --> 00:48:37,130 Es muss nicht zu sein, in jeder Sprache geschrieben. 1078 00:48:37,130 --> 00:48:39,890 Nur in Pseudocode oder logischerweise, wie wir uns selbst 1079 00:48:39,890 --> 00:48:42,083 gehen über das Tun ein solches Problem. 1080 00:48:42,083 --> 00:48:42,583 Ja. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [SIDE GESPRÄCH] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Ich habe auch bemerkt, dass ihr Jungs can-- Ich Art sehen bereits das Programm. 1085 00:49:22,130 --> 00:49:24,600 Ich denke, meine mangelnde Presenter-Modus ist ein Problem. 1086 00:49:24,600 --> 00:49:27,410 Aber es ist in Ordnung. 1087 00:49:27,410 --> 00:49:30,410 >> [SIDE GESPRÄCH] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Ja, bitte, Jungs. 1090 00:50:04,380 --> 00:50:05,400 Kommen Sie Süßigkeiten. 1091 00:50:05,400 --> 00:50:06,372 Kommen Sie Süßigkeiten. 1092 00:50:06,372 --> 00:50:07,698 >> Publikum: Ja! 1093 00:50:07,698 --> 00:50:09,958 >> [SIDE GESPRÄCH] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI PENG: Auch, ja, Ich werde anfangen zu werfen Bonbons 1096 00:50:18,100 --> 00:50:20,280 bei Menschen, die nicht Fragen beantworten müssen. 1097 00:50:20,280 --> 00:50:22,260 So sollten Sie alle Fragen zu beantworten. 1098 00:50:22,260 --> 00:50:24,895 Oder ich nehme an Menschen, die Sie beantworten Fragen. 1099 00:50:24,895 --> 00:50:26,070 Ja, anders herum. 1100 00:50:26,070 --> 00:50:28,570 >> [SIDE GESPRÄCH] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 ZIELGRUPPE: [unverständlich] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> ANDI PENG: Ja. 1105 00:51:18,340 --> 00:51:19,340 Ja. 1106 00:51:19,340 --> 00:51:22,840 >> [SIDE GESPRÄCH] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> In Ordnung, Jungs. 1109 00:51:41,590 --> 00:51:44,731 Nehmen Sie, wie, 10 Sekunden lang gedrückt. 1110 00:51:44,731 --> 00:51:48,210 >> [SIDE GESPRÄCH] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> OK, Jungs. 1113 00:52:11,750 --> 00:52:14,920 Also, bevor wir versuchen, tatsächlich physisch Code schreiben, 1114 00:52:14,920 --> 00:52:20,650 eine gute Gewohnheit zu entwickeln ist, dass wir wollen erste Art von Grund 1115 00:52:20,650 --> 00:52:22,737 logisch, wie wir es tun würde. 1116 00:52:22,737 --> 00:52:24,570 Sie wollen sicherstellen, bevor Sie physisch 1117 00:52:24,570 --> 00:52:27,210 starten versuchen, Code in Mario, dass Sie sicher, 1118 00:52:27,210 --> 00:52:28,870 sicher, dass Sie Ihre Pseudocode haben. 1119 00:52:28,870 --> 00:52:31,235 Das heißt, die Sie durch was Sie so erstellen müssen 1120 00:52:31,235 --> 00:52:33,360 , dass, wenn Sie körperlich Schreiben Sie Ihr Programm später 1121 00:52:33,360 --> 00:52:36,640 Sie besser in der Lage, Fehler zu fangen in Ihrem Code und solche Dinge. 1122 00:52:36,640 --> 00:52:40,460 >> Also werden wir einfach anfangen nach-- in Englisch, in Pseudocode, 1123 00:52:40,460 --> 00:52:43,320 Will jemand geben mir eine generische Erklärung 1124 00:52:43,320 --> 00:52:46,250 der, wie wir dabei vorgehen? 1125 00:52:46,250 --> 00:52:48,102 Ja. 1126 00:52:48,102 --> 00:52:49,664 >> ZIELGRUPPE: [unverständlich]. 1127 00:52:49,664 --> 00:52:50,830 ANDI PENG: Sicher, keine Sorgen. 1128 00:52:50,830 --> 00:52:57,233 ZIELGRUPPE: Können Sie es zu fragen, oder bitten Sie jemanden, der String 1-- ja, String zu erhalten, 1129 00:52:57,233 --> 00:52:58,160 und dann-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI PENG: Ja, das ist so ein guter Anfang. 1131 00:52:59,826 --> 00:53:01,972 Ich werde beginnen Sie, sorry, wie Sie sprechen. 1132 00:53:01,972 --> 00:53:02,471 Also-- 1133 00:53:02,471 --> 00:53:05,698 >> ZIELGRUPPE: --die Klein Zahlen höher sind, oder? 1134 00:53:05,698 --> 00:53:08,519 Oder die Kleinbuchstaben haben hohe Zahlen? 1135 00:53:08,519 --> 00:53:09,310 ANDI PENG: Genau. 1136 00:53:09,310 --> 00:53:16,156 Publikum: So dann subtrahieren wir 32 aus, was auch immer [unverständlich]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> ANDI PENG: Great. 1139 00:53:29,870 --> 00:53:35,020 Also wir haben eine Art von allgemeinen Sinn der, wie man über dieses Problem zu umgehen. 1140 00:53:35,020 --> 00:53:40,060 Zu wissen, dass wir Art gelernt, die physische Möglichkeit, die Zeichenfolgen 1141 00:53:40,060 --> 00:53:43,320 werden im Speicher abgelegt, was tun Sie schon 1142 00:53:43,320 --> 00:53:45,920 wissen, dass Sie gehen, um wahrscheinlich müssen in Ihrem Code zu schreiben 1143 00:53:45,920 --> 00:53:48,288 um durch die Zeichenfolge zu bewegen? 1144 00:53:48,288 --> 00:53:49,259 >> Gruppe: für Schleife. 1145 00:53:49,259 --> 00:53:50,550 ANDI PENG: Eine for-Schleife, genau. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Groß. 1148 00:53:57,220 --> 00:54:00,539 Also haben wir Art haben eine generische Pseudoschrieben 1149 00:54:00,539 --> 00:54:02,330 diese Art von schenkt Sie stellt fest, wie Sie 1150 00:54:02,330 --> 00:54:03,900 würde über die Lösung des Problems zu bewegen. 1151 00:54:03,900 --> 00:54:06,150 Jetzt, wo Sie diese haben, können Sie kann sie zum späteren Nachschlagen 1152 00:54:06,150 --> 00:54:08,233 auf, wenn Sie versuchen, eigentlich schreiben Ihren Code. 1153 00:54:08,233 --> 00:54:10,240 So können wir tatsächlich hier. 1154 00:54:10,240 --> 00:54:25,130 Und ich habe eine Funktion namens bekam upper.c-- gibt es ist-- von nur einer leeren Vorlage 1155 00:54:25,130 --> 00:54:28,510 gerade jetzt, dass ihr Jungs zu gehen mir helfen, herauszufinden, wie man schreiben 1156 00:54:28,510 --> 00:54:30,430 diese Linie der code-- keine Zeile Code. 1157 00:54:30,430 --> 00:54:32,890 Es wird mehrere Zeilen Code. 1158 00:54:32,890 --> 00:54:35,710 >> Beim Start jeder Art von leeren pset, was ist 1159 00:54:35,710 --> 00:54:37,418 das erste, was ich brauche, sich daran zu erinnern, zu tun? 1160 00:54:37,418 --> 00:54:39,290 >> ZIELGRUPPE: [unverständlich]. 1161 00:54:39,290 --> 00:54:41,000 >> ANDI PENG: Great Yep. 1162 00:54:41,000 --> 00:54:41,500 Gehören. 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h. 1165 00:54:47,130 --> 00:54:49,640 Oft ist dies eine der die meisten einfach Fehler, die Menschen 1166 00:54:49,640 --> 00:54:51,598 machen, wenn sie Schreiben, ist, dass sie 1167 00:54:51,598 --> 00:54:54,180 vergessen, eine Include- wichtige Bibliothek, die sie benötigen. 1168 00:54:54,180 --> 00:54:57,689 Also, wenn es der Bürozeiten und du bist, Ich weiß nicht, warum mein Code funktioniert nicht. 1169 00:54:57,689 --> 00:54:59,230 Können Sie mir sagen, warum es nicht funktioniert? 1170 00:54:59,230 --> 00:55:00,730 Wir werden sagen, haben Sie # include? 1171 00:55:00,730 --> 00:55:02,520 Sie sollten es # include. 1172 00:55:02,520 --> 00:55:03,270 OK. 1173 00:55:03,270 --> 00:55:07,230 >> Also haben wir die Standard-I / O hier. 1174 00:55:07,230 --> 00:55:10,740 Ist das der einzige Bibliothek werden wir hier brauchen? 1175 00:55:10,740 --> 00:55:12,681 Was sollen wir tun? 1176 00:55:12,681 --> 00:55:13,180 Es tut uns leid. 1177 00:55:13,180 --> 00:55:14,562 Jemand nur schreien es heraus? 1178 00:55:14,562 --> 00:55:15,666 >> ZIELGRUPPE: [unverständlich]. 1179 00:55:15,666 --> 00:55:16,666 ANDI PENG: Dort gehen Sie. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 OK. 1182 00:55:21,440 --> 00:55:26,070 Und wie komme ich zu Beginn jeder Art gehen von Funktion, jede Art von Hauptfunktion 1183 00:55:26,070 --> 00:55:28,760 in unserem Programm? 1184 00:55:28,760 --> 00:55:30,020 Int main. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 OK. 1187 00:55:35,030 --> 00:55:35,970 Was muss ich nach innen setzen hier? 1188 00:55:35,970 --> 00:55:37,640 Was ist das erste, was Sie tun möchten? 1189 00:55:37,640 --> 00:55:39,910 Wenn wir wollen, um eine zu bekommen String von dem Benutzer, 1190 00:55:39,910 --> 00:55:43,870 was sollen wir gehen zu müssen, Den ersten Zeile zu tun? 1191 00:55:43,870 --> 00:55:46,120 Sorry, you guys just feel frei zu sprechen und laut. 1192 00:55:46,120 --> 00:55:47,123 Nur schreien was auch immer. 1193 00:55:47,123 --> 00:55:48,772 >> ZIELGRUPPE: Bitten Sie den Benutzer? 1194 00:55:48,772 --> 00:55:49,980 ANDI PENG: Wie können wir das tun? 1195 00:55:49,980 --> 00:55:51,873 Ask-- werde ich geben ", bitten Sie den Benutzer"? 1196 00:55:51,873 --> 00:55:52,600 >> ZIELGRUPPE: Printf. 1197 00:55:52,600 --> 00:55:54,341 >> ANDI PENG: OK. 1198 00:55:54,341 --> 00:55:54,840 Printf. 1199 00:55:54,840 --> 00:55:57,372 Was will ich von printf? 1200 00:55:57,372 --> 00:55:58,776 >> ZIELGRUPPE: Geben Sie etwas. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> ANDI PENG: Wie das? 1203 00:56:03,840 --> 00:56:05,430 Guys, so tun, als wäre ich ein Computer. 1204 00:56:05,430 --> 00:56:08,475 Körperlich sagen Sie mir bei jedem Schritt dass ich hier zu geben? 1205 00:56:08,475 --> 00:56:09,600 Mache ich etwas falsch? 1206 00:56:09,600 --> 00:56:10,743 Sollte ich etwas getippt? 1207 00:56:10,743 --> 00:56:11,690 >> Publikum: Sie müssen Anführungszeichen. 1208 00:56:11,690 --> 00:56:12,380 >> ANDI PENG: Ich brauche Anführungszeichen? 1209 00:56:12,380 --> 00:56:12,880 OK. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 OK. 1212 00:56:16,297 --> 00:56:17,698 >> Publikum: Und dann neue Linie. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Semikolon. 1215 00:56:22,465 --> 00:56:23,340 ANDI PENG: Semikolon? 1216 00:56:23,340 --> 00:56:24,060 OK. 1217 00:56:24,060 --> 00:56:24,560 Gut. 1218 00:56:24,560 --> 00:56:27,060 >> Publikum: Und vielleicht angeben dass Sie es wollen in Kleinbuchstaben? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> ANDI PENG: Great. 1221 00:56:31,415 --> 00:56:33,540 Ihr Jungs lachen mich zu vergessen, um einen Strichpunkt setzen. 1222 00:56:33,540 --> 00:56:36,350 Ich garantiere Ihnen, irgendwo im Verlauf dieser Klasse, 1223 00:56:36,350 --> 00:56:38,260 Sie werden vergessen, setzen Semikolon, und es 1224 00:56:38,260 --> 00:56:41,116 werden Sie 3 Stunden dauern, um Sie heraus, warum Ihr Code funktioniert nicht. 1225 00:56:41,116 --> 00:56:42,240 Es ist für uns alle geschehen. 1226 00:56:42,240 --> 00:56:43,950 Es wird wahrscheinlich passieren. 1227 00:56:43,950 --> 00:56:46,352 Holen Sie sich in einer guten Gewohnheit, mit Semikolons. 1228 00:56:46,352 --> 00:56:46,852 OK. 1229 00:56:46,852 --> 00:56:49,010 >> ZIELGRUPPE: Möchten Sie um den Backslash zu tun? 1230 00:56:49,010 --> 00:56:50,398 >> ANDI PENG: Sicher. 1231 00:56:50,398 --> 00:56:51,856 Wollen Sie den Backslash in zu tun? 1232 00:56:51,856 --> 00:56:53,020 >> Publikum: Ja. 1233 00:56:53,020 --> 00:56:54,330 >> ANDI PENG: Great. 1234 00:56:54,330 --> 00:56:54,830 OK. 1235 00:56:54,830 --> 00:56:57,872 Was muss ich als nächstes tun? 1236 00:56:57,872 --> 00:56:58,964 >> ZIELGRUPPE: Get String. 1237 00:56:58,964 --> 00:56:59,880 ANDI PENG: Get String. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 Also, was kann ich geben? 1240 00:57:03,830 --> 00:57:04,233 Jemand? 1241 00:57:04,233 --> 00:57:05,040 >> ZIELGRUPPE: String s. 1242 00:57:05,040 --> 00:57:05,873 >> ANDI PENG: String s. 1243 00:57:05,873 --> 00:57:07,251 ZIELGRUPPE: GetString. 1244 00:57:07,251 --> 00:57:09,000 ANDI PENG: Jemand, können Sie mir sagen, wo 1245 00:57:09,000 --> 00:57:12,000 Diese Funktion GetString herkommt? 1246 00:57:12,000 --> 00:57:13,660 >> ZIELGRUPPE: String.h. 1247 00:57:13,660 --> 00:57:15,256 >> ANDI PENG: String.h? 1248 00:57:15,256 --> 00:57:16,715 Sie denken, es ist von string.h? 1249 00:57:16,715 --> 00:57:17,830 >> ZIELGRUPPE: [unverständlich]. 1250 00:57:17,830 --> 00:57:18,830 >> ANDI PENG: Dort gehen Sie. 1251 00:57:18,830 --> 00:57:21,280 Es ist aus CS50.h. 1252 00:57:21,280 --> 00:57:24,530 Wenn Sie immer auf dem ein zu verwechseln Bibliotheksdatei ist oder eine Header-Datei ist, 1253 00:57:24,530 --> 00:57:28,450 google buchstäblich string.h und ich sage dir, 1254 00:57:28,450 --> 00:57:30,450 Was sind alle Funktionen die in string.h sind. 1255 00:57:30,450 --> 00:57:31,340 OK. 1256 00:57:31,340 --> 00:57:35,210 >> So, jetzt, dass ich eine Zeichenfolge erstellt und ich habe den Benutzer auffordern dafür, 1257 00:57:35,210 --> 00:57:38,770 Ich habe es in einer Variablen gespeichert benannt s, was muss ich jetzt tun? 1258 00:57:38,770 --> 00:57:40,652 >> ZIELGRUPPE: Überprüfen Sie, ob es in Kleinbuchstaben. 1259 00:57:40,652 --> 00:57:41,360 ANDI PENG: Es tut uns leid? 1260 00:57:41,360 --> 00:57:42,545 ZIELGRUPPE: Überprüfen Sie, ob es in Kleinbuchstaben. 1261 00:57:42,545 --> 00:57:44,045 ANDI PENG: Okay, lassen Sie uns tun. 1262 00:57:44,045 --> 00:57:45,857 Wie mache ich das? 1263 00:57:45,857 --> 00:57:47,940 Tatsächlich für die Zwecke der Klasse, gerade jetzt, 1264 00:57:47,940 --> 00:57:50,330 wir sind gerade dabei, davon ausgehen, dass alles, was 1265 00:57:50,330 --> 00:57:52,620 dass wir Eingang ist bereits in Kleinbuchstaben. 1266 00:57:52,620 --> 00:57:55,430 Wenn Sie überprüfen wollen, würden Sie nur eine bedingte Anweisung hinzufügen 1267 00:57:55,430 --> 00:57:59,640 dass überprüft, die durch lief jedes einzelne Array-Element 1268 00:57:59,640 --> 00:58:02,540 und überprüft, ob es zwischen bestimmten Werten. 1269 00:58:02,540 --> 00:58:05,627 Ich vergesse, was die Anzahl von Werten der Klein sind. 1270 00:58:05,627 --> 00:58:07,210 Sie können es auf der ASCII-Tabelle nachschlagen. 1271 00:58:07,210 --> 00:58:08,800 Aber ja, das ist ein wirklich guter Punkt. 1272 00:58:08,800 --> 00:58:11,758 Aber jetzt sind wir gerade dabei, davon ausgehen, dass alle Fäden wir Eingang 1273 00:58:11,758 --> 00:58:13,130 sind in Kleinbuchstaben. 1274 00:58:13,130 --> 00:58:13,870 OK. 1275 00:58:13,870 --> 00:58:18,069 >> Also, wie würde ich mich über zu gehen dieses Problem als nächstes? 1276 00:58:18,069 --> 00:58:18,860 Gruppe: für Schleife. 1277 00:58:18,860 --> 00:58:19,340 ANDI PENG: For-Schleife? 1278 00:58:19,340 --> 00:58:19,839 OK. 1279 00:58:19,839 --> 00:58:20,847 Sag mir, was zu tippen. 1280 00:58:20,847 --> 00:58:25,230 >> Gruppe: für int i gleich 0 ist. 1281 00:58:25,230 --> 00:58:27,230 >> ANDI PENG: OK. 1282 00:58:27,230 --> 00:58:36,350 >> ZIELGRUPPE: Oh, wirklich, dann tun Sie ein Komma und tun, n gleich strlen. 1283 00:58:36,350 --> 00:58:38,940 >> ANDI PENG: So Wichtigste dass ich glaube, sie ist hier aufgefallen, 1284 00:58:38,940 --> 00:58:42,936 ist, dass wir nicht haben, um int sagen n das zweite Mal haben wir dieses. 1285 00:58:42,936 --> 00:58:45,060 Genau wissen, dass in einer für Schleife, wenn Sie erklären, bist, 1286 00:58:45,060 --> 00:58:47,934 Sie tatsächlich nicht das int der nicht brauchen das zweite Mal, wenn Sie eine Variable zu tun. 1287 00:58:47,934 --> 00:58:51,202 Sie können n strlen sagen. 1288 00:58:51,202 --> 00:58:52,620 >> Publikum: Von s. 1289 00:58:52,620 --> 00:58:53,510 >> ANDI PENG: s. 1290 00:58:53,510 --> 00:58:54,706 OK. 1291 00:58:54,706 --> 00:58:58,370 >> ZIELGRUPPE: Dann wird ein Semikolon. 1292 00:58:58,370 --> 00:59:00,130 >> ANDI PENG: Sicher. 1293 00:59:00,130 --> 00:59:04,050 >> Publikum: Und dann [unverständlich] n. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Dann ++ i. 1296 00:59:09,460 --> 00:59:11,780 >> ANDI PENG: Great. 1297 00:59:11,780 --> 00:59:12,280 Gut. 1298 00:59:12,280 --> 00:59:14,690 Was haben wir im Inneren wollen dieser for-Schleife ist jetzt? 1299 00:59:14,690 --> 00:59:17,820 Denken Sie daran, wenn wir durchlaufen ein String und durch eine Anordnung ausgeführt, 1300 00:59:17,820 --> 00:59:19,287 wir wollen, dass die Dinge in es zu überprüfen. 1301 00:59:19,287 --> 00:59:20,370 Was sollen wir gehen zu müssen? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 Dies ist eine Art der schwierige Teil jetzt. 1304 00:59:26,900 --> 00:59:27,960 Jemand eine Vermutung? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> OK. 1307 00:59:34,690 --> 00:59:37,830 So zuerst, wie wir selbst zugreifen? 1308 00:59:37,830 --> 00:59:41,610 Wie können wir sogar den ersten Scheck oder ein Element im Array zugreifen? 1309 00:59:41,610 --> 00:59:42,920 Wie machen wir das? 1310 00:59:42,920 --> 00:59:47,120 Was ist die Notation wir verwenden, um das zu tun? 1311 00:59:47,120 --> 00:59:50,920 Wie lautet der Name dieses Arrays genannt? 1312 00:59:50,920 --> 00:59:52,400 Es heißt s, nicht wahr? 1313 00:59:52,400 --> 00:59:54,850 >> Denken Sie daran, eine beliebige Zeichenfolge ist immer ein Array. 1314 00:59:54,850 --> 00:59:58,210 So s Halterung i, nicht wahr? 1315 00:59:58,210 --> 01:00:01,360 Denn das ist der aktuelle Wert oder Indexwert Wir überprüfen. 1316 01:00:01,360 --> 01:00:05,156 Und wir werden diese gleich eingestellt zu-- wir wollen eine Kleinwert, nicht wahr? 1317 01:00:05,156 --> 01:00:07,530 Wir wollen, dass drehen lower-- Es tut uns leid, wir wollen einen Großbuchstaben. 1318 01:00:07,530 --> 01:00:10,014 Wir wollen die Klein schalten Wert in einen Großbuchstaben. 1319 01:00:10,014 --> 01:00:11,805 Und so like-- Es tut mir leid, wie heißt du? 1320 01:00:11,805 --> 01:00:12,580 >> ZIELGRUPPE: Heidi. 1321 01:00:12,580 --> 01:00:12,940 >> ANDI PENG: Es tut uns leid? 1322 01:00:12,940 --> 01:00:13,280 >> ZIELGRUPPE: Heidi. 1323 01:00:13,280 --> 01:00:13,988 >> ANDI PENG: Heidi. 1324 01:00:13,988 --> 01:00:15,850 Wie Heidi sagte Anfang, wir sind wahrscheinlich 1325 01:00:15,850 --> 01:00:20,330 gehen zu müssen the-- wir sind wahrscheinlich zu subtrahieren, um haben 1326 01:00:20,330 --> 01:00:22,630 32 von was auch immer charc, die, richtig ist? 1327 01:00:22,630 --> 01:00:24,680 Denn auf einem ASCII- Tisch, der Unterschied 1328 01:00:24,680 --> 01:00:27,790 zwischen einem Kleinbuchstaben und ein Großbuchstabe ist 32. 1329 01:00:27,790 --> 01:00:31,290 Also, wenn wir das tun, können wir wahrscheinlich gehen zu wollen, subtrahieren 32, nicht wahr? 1330 01:00:31,290 --> 01:00:33,910 >> Wir werden also zu s i zu tun. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Hat jeder verstehen, warum ich das getan habe? 1333 01:00:41,200 --> 01:00:45,760 Denn gerade jetzt, in unser Angebot, Wir überprüfen die 0. Index, nicht wahr? 1334 01:00:45,760 --> 01:00:49,190 Und in der 0-ten Index des String, das ist das erste Zeichen. 1335 01:00:49,190 --> 01:00:51,820 Und das Zeichen werden wir anzunehmen, es ist Kleinbuchstaben. 1336 01:00:51,820 --> 01:00:55,980 Wenn wir es in Großbuchstaben zu machen, wollen wir müssen subtrahieren 32 von seinem Wert, 1337 01:00:55,980 --> 01:00:58,620 denn in unserem ASCII Tisch, das ist, wie wir es bekommen 1338 01:00:58,620 --> 01:01:01,600 zum nächsten entspricht Wert, der es in Großbuchstaben macht. 1339 01:01:01,600 --> 01:01:03,714 Hat jeder wissen, dass? 1340 01:01:03,714 --> 01:01:04,213 Ja. 1341 01:01:04,213 --> 01:01:06,530 >> ZIELGRUPPE: Können Sie auch Sie Kleinbuchstaben ein minus-- 1342 01:01:06,530 --> 01:01:08,080 >> ANDI PENG: Ja, das ist also eigentlich wirklich gut. 1343 01:01:08,080 --> 01:01:10,455 Ich werde darauf zurückkommen Frage nach dem wir dies tun. 1344 01:01:10,455 --> 01:01:11,060 Ja. 1345 01:01:11,060 --> 01:01:13,940 Und dann, wenn ich will zu sehen, was los ist, 1346 01:01:13,940 --> 01:01:16,180 Ich bin wahrscheinlich zu wollen drucken, oder? 1347 01:01:16,180 --> 01:01:19,930 Jemand sagt mir, was Ich möchte hier drucken. 1348 01:01:19,930 --> 01:01:29,160 >> ZIELGRUPPE: printf Prozent c umgekehrten Schrägstrich [unverständlich]. 1349 01:01:29,160 --> 01:01:33,570 Das ist der Wert von [unverständlich] s i. 1350 01:01:33,570 --> 01:01:34,614 >> ANDI PENG: s i, sorry? 1351 01:01:34,614 --> 01:01:35,530 ZIELGRUPPE: [unverständlich]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 ANDI Peng: Ich weiß es nicht. 1354 01:01:39,550 --> 01:01:40,600 Was denken Sie? 1355 01:01:40,600 --> 01:01:44,016 >> ZIELGRUPPE: Nun, ich wouldn't-- Ich glaube, ich würde nicht bring-- 1356 01:01:44,016 --> 01:01:46,944 Ich würde es aus der innen, weil [unverständlich]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI PENG: Oh, hätten Sie getan, dass? 1359 01:01:51,392 --> 01:01:53,867 ZIELGRUPPE: Ja. 1360 01:01:53,867 --> 01:01:56,700 ANDI PENG: Lassen wir es die Art und Weise es ist, und ich werde später erklären, warum. 1361 01:01:56,700 --> 01:01:58,533 Denken Sie daran, auch wenn Sie haben einen Platzhalter, 1362 01:01:58,533 --> 01:02:00,701 Sie Klammern um sie setzen möchten. 1363 01:02:00,701 --> 01:02:01,200 Gut. 1364 01:02:01,200 --> 01:02:04,810 So sollte dies eine solide Funktion hier zu sein. 1365 01:02:04,810 --> 01:02:06,370 Lassen Sie uns laufen lassen und sehen, ob es kompiliert. 1366 01:02:06,370 --> 01:02:08,750 Machen oberen. 1367 01:02:08,750 --> 01:02:09,250 UH Oh. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 Das sieht nicht allzu gut. 1370 01:02:13,340 --> 01:02:14,507 Warum passiert dies? 1371 01:02:14,507 --> 01:02:17,340 Wie bei jedem Fehler, zu gehen möchten, dass Sie Rücken und mit dem ersten Start, 1372 01:02:17,340 --> 01:02:20,630 da in der Regel eine Fehlerursachen Lose anderer Fehler, nachdem es. 1373 01:02:20,630 --> 01:02:26,700 Hier sehen wir upper.c: 18: 25, was erzählt Mich in diesem Programm mit dem Namen upper.c, 1374 01:02:26,700 --> 01:02:33,800 auf Leitung 18, Fehler implizit deklarieren Bibliothek von Funktionen mit Typ strlen 1375 01:02:33,800 --> 01:02:36,330 unassigned-- blah, ich weiß nicht, was los ist danach. 1376 01:02:36,330 --> 01:02:39,990 >> Alles, was es gerade jetzt sagen mir ist dass etwas los ist auf der strlen. 1377 01:02:39,990 --> 01:02:43,520 Und der Computer ist verwirrt, weil es ist wie, ich weiß nicht, was strlen ist? 1378 01:02:43,520 --> 01:02:45,520 Was bedeutet, dass wahrscheinlich Ihnen sagen, du verpasst? 1379 01:02:45,520 --> 01:02:46,490 >> Publikum: Du verpasst [unverständlich]. 1380 01:02:46,490 --> 01:02:47,630 >> ANDI PENG: Du hast Recht. 1381 01:02:47,630 --> 01:02:49,510 Genau. 1382 01:02:49,510 --> 01:02:52,140 Also das ist, wo es darauf zu achten, 1383 01:02:52,140 --> 01:02:56,970 dass jede Funktion, die Sie in der Nutzung Ihrer Code mit der richtigen Kopf 1384 01:02:56,970 --> 01:02:59,660 Datei für die Bibliothek, oder Sie gehen zu viele Fehler zu bekommen sind 1385 01:02:59,660 --> 01:03:01,150 und Ihr Code wird nicht zu wissen, was los ist. 1386 01:03:01,150 --> 01:03:03,050 So werden wir string.h hier enthalten. 1387 01:03:03,050 --> 01:03:06,270 >> Nun, wenn wir versuchen, zu kompilieren oberen. 1388 01:03:06,270 --> 01:03:08,410 Korrekt kompiliert. 1389 01:03:08,410 --> 01:03:09,960 Lassen Sie uns dieses Programm. 1390 01:03:09,960 --> 01:03:12,000 So geben Sie etwas in Kleinbuchstaben. 1391 01:03:12,000 --> 01:03:14,920 Was seid ihr eingeben möchten? 1392 01:03:14,920 --> 01:03:16,546 Heraus schreien etwas. 1393 01:03:16,546 --> 01:03:17,920 In Ordnung, Charly ging gerade herein. 1394 01:03:17,920 --> 01:03:18,990 Wir werden Charlys Namen eingeben. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Charly in Kleinbuchstaben. 1397 01:03:22,840 --> 01:03:27,742 Und hoffentlich, hoffentlich ist dies gehen zu schreien und spucken 1398 01:03:27,742 --> 01:03:28,575 Charly in Großbuchstaben. 1399 01:03:28,575 --> 01:03:30,830 Yay! 1400 01:03:30,830 --> 01:03:33,430 nicht jeder verstehen, wie Ich ging über die Lösung, dass? 1401 01:03:33,430 --> 01:03:36,190 Die Möglichkeit, dass ich Manipulation mit Zahlen 1402 01:03:36,190 --> 01:03:39,410 um etwas zu lösen, dass Ich möchte in Strings zu tun, 1403 01:03:39,410 --> 01:03:44,390 da Buchstaben und Zahlen können in gleicher Weise Bezug genommen werden, weil 1404 01:03:44,390 --> 01:03:45,540 ASCII-Kartierung. 1405 01:03:45,540 --> 01:03:52,890 >> Also, zurück zu Ihrem Punkt zu gehen, wenn ich wollte hier statt 32 gelegt 1406 01:03:52,890 --> 01:03:58,959 Großbuchstaben A minus Kleinbuchstaben a wie dass, das wäre genauso gut funktioniert, 1407 01:03:58,959 --> 01:04:01,750 denn das ist einfach nur der Unterschied zwischen diesen beiden Werten. 1408 01:04:01,750 --> 01:04:09,570 Wenn ich will, um dieses again-- charly zu machen. 1409 01:04:09,570 --> 01:04:10,320 Oh nein. 1410 01:04:10,320 --> 01:04:11,820 Ich denke, wir gingen in die falsche Richtung, yeah? 1411 01:04:11,820 --> 01:04:13,260 >> ZIELGRUPPE: [unverständlich] in Kleinbuchstaben ein. 1412 01:04:13,260 --> 01:04:14,260 >> ANDI PENG: Dort gehen Sie. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Yep. 1415 01:04:22,880 --> 01:04:24,920 Und spuckt charly. 1416 01:04:24,920 --> 01:04:28,020 Seien Sie also vorsichtig, wenn Sie Subtrahieren von Werten sind 1417 01:04:28,020 --> 01:04:30,400 daran zu erinnern, was man ist, größer als die andere. 1418 01:04:30,400 --> 01:04:35,220 Zum Beispiel hier oben habe ich vergessen dass Kleinbuchstaben a ist eigentlich 1419 01:04:35,220 --> 01:04:38,540 größer als Großbuchstaben A. Also, wenn ich versucht, sie zu subtrahieren, in die andere Richtung 1420 01:04:38,540 --> 01:04:40,600 rund, bekam ich 32 negativ. 1421 01:04:40,600 --> 01:04:42,800 Und mein Computer war wie, Ich weiß nicht, was das ist. 1422 01:04:42,800 --> 01:04:45,810 Es ist wahrscheinlich nur einige zufällige Wert, der nicht sehr gut. 1423 01:04:45,810 --> 01:04:48,760 Und so stellen Sie sicher, dass Sie Subtrahieren in der richtigen Länge 1424 01:04:48,760 --> 01:04:52,831 um das gewünschte Zeichen zu finden. 1425 01:04:52,831 --> 01:04:53,330 OK. 1426 01:04:53,330 --> 01:04:58,550 Ist jemand, wie wir verwirrt ging über das Schreiben dieser Funktion? 1427 01:04:58,550 --> 01:04:59,180 OK. 1428 01:04:59,180 --> 01:05:04,830 Also eigentlich eine Funktion schon existiert in der Library aufgerufen ctype.h. 1429 01:05:04,830 --> 01:05:06,417 Der Bibliothek genannt ctype.h. 1430 01:05:06,417 --> 01:05:08,500 Diese Funktion ist eigentlich bereits für Sie geschrieben. 1431 01:05:08,500 --> 01:05:10,820 Es ist zum oberen genannt. 1432 01:05:10,820 --> 01:05:13,027 >> Usw. für die Zwecke der Diese pset, Sie gehen 1433 01:05:13,027 --> 01:05:15,860 zu finden, dass Sie wirklich verwenden möchten eine Menge von Funktionen enthalten 1434 01:05:15,860 --> 01:05:17,390 innerhalb der ctype Bibliothek. 1435 01:05:17,390 --> 01:05:21,040 Zur oberen, zu senken, ist Ober ist lower-- das sind alles Funktionen 1436 01:05:21,040 --> 01:05:24,914 dass Sie in der Lage, sehr zu verwenden, sehr schnell in Ihrem eigenen Code, 1437 01:05:24,914 --> 01:05:26,080 tut genau, was das bedeutet. 1438 01:05:26,080 --> 01:05:28,941 Wir schrieben, wie man konvertieren einen String in Großbuchstaben. 1439 01:05:28,941 --> 01:05:31,440 Aber das ist eigentlich der Code dass jemand anderes geschrieben hat 1440 01:05:31,440 --> 01:05:33,800 und dass Sie zugreifen können, über eine andere Funktion. 1441 01:05:33,800 --> 01:05:34,300 Ja? 1442 01:05:34,300 --> 01:05:39,570 >> Publikum: So können Sie einfach kopieren A ist da drin und tun es für jeden einzelnen Brief? 1443 01:05:39,570 --> 01:05:42,070 >> ANDI PENG: Ja, weil ich nicht kümmern uns um die Werte von a. 1444 01:05:42,070 --> 01:05:44,540 Ich kümmere mich nur, dass die Differenz zwischen ihnen ist 32, nicht wahr? 1445 01:05:44,540 --> 01:05:48,210 Der Unterschied zwischen Klein b und Großbuchstaben B ist auch 32. 1446 01:05:48,210 --> 01:05:50,860 Und die Differenz zwischen c und Großbuchstaben C ist immer 32. 1447 01:05:50,860 --> 01:05:53,235 >> Ich muss nur noch über die Pflege Unterschied zwischen den beiden, 1448 01:05:53,235 --> 01:05:56,666 da alle Briefe folgen dem gleichen Muster, nicht wahr? 1449 01:05:56,666 --> 01:05:58,540 Wenn ich den Unterschied zwischen einer von ihnen, 1450 01:05:58,540 --> 01:06:01,050 Ich weiß, was der Unterschied zwischen allen von ihnen ist. 1451 01:06:01,050 --> 01:06:01,740 Gute Frage. 1452 01:06:01,740 --> 01:06:04,090 Ja. 1453 01:06:04,090 --> 01:06:06,660 Jeder gut? 1454 01:06:06,660 --> 01:06:09,080 OK. 1455 01:06:09,080 --> 01:06:09,580 Oop. 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> OK. 1458 01:06:15,270 --> 01:06:20,310 Also ein weiteres Konzept, das ist wird sehr nützlich, wie Sie 1459 01:06:20,310 --> 01:06:22,570 weiter zu entwickeln Ihr Code ist diese Idee 1460 01:06:22,570 --> 01:06:25,430 der Schaffung von Funktionen oder Abstraktion. 1461 01:06:25,430 --> 01:06:28,479 So jetzt haben wir alle Algebra gemacht. 1462 01:06:28,479 --> 01:06:31,770 In der Algebra, Sie sind gelehrt, dass es dieses wunderbare Ding namens eine Funktion 1463 01:06:31,770 --> 01:06:35,300 Maschine, wo, wenn Sie Eingang eine Art von Zahl, 1464 01:06:35,300 --> 01:06:38,720 es durch diese wunderbare Funktion läuft und herausspringt eine andere Ausgabe, oder? 1465 01:06:38,720 --> 01:06:42,220 In Code, geschieht dasselbe in jede Art von Funktion. 1466 01:06:42,220 --> 01:06:48,230 >> So konnte ich körperlich schreiben in meinem Körper meines Codes 1467 01:06:48,230 --> 01:06:52,357 eine Hauptaussage, die tatsächlich unabhängig vom Körper des Code tut. 1468 01:06:52,357 --> 01:06:54,940 Aber außerhalb, dass kann ich auch schreiben viele verschiedene Funktionen 1469 01:06:54,940 --> 01:06:56,320 das tun viele verschiedene Dinge. 1470 01:06:56,320 --> 01:06:58,570 Zum Beispiel haben wir bereits begann mit einigen von ihnen. 1471 01:06:58,570 --> 01:07:00,610 Printf-- daß eine Funktion, dass jemand anderes 1472 01:07:00,610 --> 01:07:02,870 bereits, dass schriftliche Wir können in unserem Code aufrufen. 1473 01:07:02,870 --> 01:07:05,410 In diesem Fall upper--, upper-- ist eine weitere Funktion 1474 01:07:05,410 --> 01:07:07,330 wir, dass wir geschrieben finden Sie in unserem Code aufrufen. 1475 01:07:07,330 --> 01:07:09,520 Und also denke ich, warum wir haben sogar Funktionen? 1476 01:07:09,520 --> 01:07:12,100 Warum gehen wir nicht plop es einfach alle in der gleichen Zeile des Codes? 1477 01:07:12,100 --> 01:07:13,730 Das macht es für jedermann einfach. 1478 01:07:13,730 --> 01:07:19,200 >> Nun, die Gründe für die ist in erster Linie, Organisation. 1479 01:07:19,200 --> 01:07:21,880 Es ist wirklich ärgerlich gehen durch jemandes Code 1480 01:07:21,880 --> 01:07:25,110 und eine Funktion wie printf. 1481 01:07:25,110 --> 01:07:28,570 Wenn euch eigentlich wusste, was der Funktion printf brachte, zu schreiben, 1482 01:07:28,570 --> 01:07:30,530 es ist, wie 1000 Zeilen Code. 1483 01:07:30,530 --> 01:07:32,357 >> Wenn jedes Mal, wenn ich wollte, etwas printf, 1484 01:07:32,357 --> 01:07:35,440 Musste ich 1000 Zeilen Code zu schreiben, das wäre wirklich ärgerlich zu lesen, 1485 01:07:35,440 --> 01:07:36,290 Recht? 1486 01:07:36,290 --> 01:07:38,860 Das ist, warum wir gerade haben schuf diese abstrakte Funktion 1487 01:07:38,860 --> 01:07:41,670 dass wir bereits jemand anderes woanders geschrieben. 1488 01:07:41,670 --> 01:07:44,920 Und jedes Mal müssen wir es in verwenden unseren Code, wir müssen nur printf sagen. 1489 01:07:44,920 --> 01:07:48,070 Und das ist in der Lage, die Funktion zu verwenden jemand anderes in unserem Code geschrieben. 1490 01:07:48,070 --> 01:07:51,020 Das macht es leichter organisatorisch, um Code zu lesen. 1491 01:07:51,020 --> 01:07:53,460 >> Zweitens ist es eine Vereinfachung. 1492 01:07:53,460 --> 01:07:56,750 Es vereinfacht die Schritte haben wir zu ergreifen, um unser Problem zu lösen. 1493 01:07:56,750 --> 01:07:59,300 Printf, Funktionen wie printf, Funktionen wie zum oberen 1494 01:07:59,300 --> 01:08:03,560 Das sind alles Dinge, die uns erlauben, unseren Code zu vereinfachen nach unten, so ist es einfacher. 1495 01:08:03,560 --> 01:08:05,830 Und letzte, was ist die Wiederverwendbarkeit. 1496 01:08:05,830 --> 01:08:08,710 >> Also die Tatsache, dass wir eine Funktion namens printf 1497 01:08:08,710 --> 01:08:11,990 dass wir rufen viele können Zeiten und erlaubt es, wiederverwendbar sein. 1498 01:08:11,990 --> 01:08:14,980 Wenn ich printf schreiben, Ich schreibe es nur einmal. 1499 01:08:14,980 --> 01:08:16,439 Sie existiert nur in diesem einem Ort. 1500 01:08:16,439 --> 01:08:19,890 Wenn ich es wieder tun wollte, würde ich haben, zu kopieren und das alles 1501 01:08:19,890 --> 01:08:21,760 in meine zweite Codezeile. 1502 01:08:21,760 --> 01:08:24,880 Das ist, warum, wenn wir eine Funktion zu erstellen dass außerhalb unserer Haupt vorhanden ist, 1503 01:08:24,880 --> 01:08:26,880 Wir rufen können auf es und wieder verwenden es, wenn 1504 01:08:26,880 --> 01:08:29,604 wir, so dass es viel einfacher brauchen für uns als Programme zu schreiben. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> So ist die Art, wie wir eigentlich schreiben würde eine Funktion ist sehr ähnlich, nicht wahr? 1507 01:08:35,549 --> 01:08:37,590 Dies ist eine Art der ersten Fall, in dem wir werden 1508 01:08:37,590 --> 01:08:42,830 sehen eine Funktion Nehmen auf einem Stil anders als unsere int main nichtig. 1509 01:08:42,830 --> 01:08:46,779 In diesem Fall, wenn ich wollte, Schreiben Sie eine Funktion namens q, oder? 1510 01:08:46,779 --> 01:08:49,370 >> Und der int-Wert hier wird alle sagen mir, 1511 01:08:49,370 --> 01:08:51,649 was will ich dies Funktion, um zu mir zurück? 1512 01:08:51,649 --> 01:08:54,484 Wenn ich eine ganze Zahl Würfel, Ich werde eingeben möchten. 1513 01:08:54,484 --> 01:08:55,525 Dies sind die Parameter. 1514 01:08:55,525 --> 01:08:58,490 Ich werde einen Wert vom Typ int-Eingänge. 1515 01:08:58,490 --> 01:09:01,300 Und ich werde zurückkehren eine andere Art Wert von int. 1516 01:09:01,300 --> 01:09:03,050 Und hier, wie Sie kann sehen, alles, was ich tue, 1517 01:09:03,050 --> 01:09:07,300 wird Cubing, was meine Eingabe als mein Ausgangs und Rücksendung. 1518 01:09:07,300 --> 01:09:10,790 >> Also alles, was diese Funktion tut, ist nimmt irgendeine ganze Zahl ist. 1519 01:09:10,790 --> 01:09:14,979 Es multipliziert es zweimal selbst so dass es Würfel in Wirkung. 1520 01:09:14,979 --> 01:09:17,729 Und kehrt dann was auch immer, dass ausgegeben wird. 1521 01:09:17,729 --> 01:09:20,540 So dass in diesem Fall ist es zwei Zeilen Code, die wir hatten, zu schreiben bekommen. 1522 01:09:20,540 --> 01:09:22,880 Aber wenn wir nennen wollte über dies mehrmals, 1523 01:09:22,880 --> 01:09:26,210 es ist viel einfacher, dass ein Typ Linie hier, die in Würfel ist als 1524 01:09:26,210 --> 01:09:28,830 haben, um durch mehrmals zu gehen. 1525 01:09:28,830 --> 01:09:34,180 >> So ist die Art und Weise, die im wesentlichen jede Formatieren für jede Art von Funktion 1526 01:09:34,180 --> 01:09:36,420 wird zu existieren, ist wie hier. 1527 01:09:36,420 --> 01:09:38,659 So haben wir den Namen der Funktion. 1528 01:09:38,659 --> 01:09:39,950 In diesem Fall, es heißt Würfel. 1529 01:09:39,950 --> 01:09:42,033 Und wir nennen es Würfel, weil es ist leicht zu merken. 1530 01:09:42,033 --> 01:09:44,220 Sie können nennen es Platz und es kann tatsächlich in Würfel geschnitten werden. 1531 01:09:44,220 --> 01:09:45,500 Spielt keine Rolle. 1532 01:09:45,500 --> 01:09:48,020 Nur ein Name, der du bist Zuordnung Ihrer Funktion. 1533 01:09:48,020 --> 01:09:51,660 >> Dieses Recht ist hier, int, ist die Typ des Parameters die Sie benötigen. 1534 01:09:51,660 --> 01:09:54,149 Was bedeutet diese Funktion benötigen, um funktionieren? 1535 01:09:54,149 --> 01:09:55,990 Nun, braucht es einen Eingang. 1536 01:09:55,990 --> 01:09:56,704 Ich nannte es Eingang. 1537 01:09:56,704 --> 01:09:58,120 Sie können es nennen, was Sie wollen. 1538 01:09:58,120 --> 01:10:00,500 Aber ich brauche etwas, vom Typ int. 1539 01:10:00,500 --> 01:10:03,730 Es wird tatsächlich auszuführen was immer Innenseite Hier 1540 01:10:03,730 --> 01:10:04,990 der Körper der Funktion. 1541 01:10:04,990 --> 01:10:07,847 Und dann der Rückgabetyp genau hier, diese int-- 1542 01:10:07,847 --> 01:10:09,680 alles was man sagt mir, ist dass diese Funktion 1543 01:10:09,680 --> 01:10:11,250 gehen, um mich in int zurück. 1544 01:10:11,250 --> 01:10:14,460 Also, es wird in einen int zu nehmen, und es geht um Sie wieder einen int zu geben. 1545 01:10:14,460 --> 01:10:17,750 Hat jeder verstehen, wie die Formatierungen dieser Art funktioniert? 1546 01:10:17,750 --> 01:10:18,250 Cool. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> OK. 1549 01:10:25,740 --> 01:10:31,770 Also keine Sorgen machen, wenn dies scheint ein wenig abstrakte jetzt. 1550 01:10:31,770 --> 01:10:33,450 Dies ist etwas, das wir darüber reden. 1551 01:10:33,450 --> 01:10:36,310 Wir werden in tiefer tauchen später im Verlauf. 1552 01:10:36,310 --> 01:10:41,170 Die Art und Weise, dass jede Art von höherer Ebene Abstraktion der diese Dinge funktionieren 1553 01:10:41,170 --> 01:10:43,530 das heißt, im Speicher, in Computer, alles, was 1554 01:10:43,530 --> 01:10:47,660 bei dieser Art gespeichert Stack, soll ich sagen. 1555 01:10:47,660 --> 01:10:49,070 >> Also da oben an der Spitze. 1556 01:10:49,070 --> 01:10:50,861 Ich weiß nicht, ob Sie Jungs können, dass gut zu sehen. 1557 01:10:50,861 --> 01:10:52,590 Ich werde versuchen, um es zu vergrößern. 1558 01:10:52,590 --> 01:10:55,111 Hier an der Spitze, die wir haben die physische Text 1559 01:10:55,111 --> 01:10:57,860 von dem, was der Computer interpreting-- alle Nullen und Einsen, dass 1560 01:10:57,860 --> 01:10:59,540 existieren in unserem Computer. 1561 01:10:59,540 --> 01:11:03,390 Und dann haben wir die initialisiert Daten und nicht initialisierte Daten, 1562 01:11:03,390 --> 01:11:05,340 was wir als globale Variablen. 1563 01:11:05,340 --> 01:11:08,200 So Variablen, die es gibt in allen Programmen 1564 01:11:08,200 --> 01:11:11,815 und im gesamten, Wesentlichen, Code. 1565 01:11:11,815 --> 01:11:13,940 Keine Sorge, wenn Sie Jungs sind Art unklar, zu diesem Thema. 1566 01:11:13,940 --> 01:11:16,060 Es spielt keine Rolle, gerade jetzt. 1567 01:11:16,060 --> 01:11:18,680 >> Und dann haben wir, was ist rief ein Haufen in einem Stapel. 1568 01:11:18,680 --> 01:11:21,140 Denken Sie an einen Stapel wörtlich wie ein Stapel von Dingen 1569 01:11:21,140 --> 01:11:23,098 ein Stapel von unterschiedlichen Sachen, die oben geschoben 1570 01:11:23,098 --> 01:11:27,870 von einander, dass die verschiedenen speichern Variablen und Syntax in Ihrem Code. 1571 01:11:27,870 --> 01:11:31,460 Und dann hier ganz unten, wir die Umgebungsvariablen 1572 01:11:31,460 --> 01:11:35,480 von dem, was Sie in der Ausführung nur deine kleine Code-Zeile. 1573 01:11:35,480 --> 01:11:40,510 >> Und wir sind gerade dabei, zu vergrößern in auf dem tatsächlichen Stapelteil. 1574 01:11:40,510 --> 01:11:43,880 Also hier, wenn wir heran in nur auf diesen Bereich des Stapels, 1575 01:11:43,880 --> 01:11:45,140 das ist, wie es aussieht. 1576 01:11:45,140 --> 01:11:48,590 Und das ist eigentlich ziemlich wichtig, wenn ihr über Funktionen sprechen, 1577 01:11:48,590 --> 01:11:52,330 denn feststellen, dass die Speicher Ihres Computers 1578 01:11:52,330 --> 01:11:55,600 speichert die Variablen und die Funktionen 1579 01:11:55,600 --> 01:11:58,790 und die Parameter der sowohl Ihre Funktion und Ihr Hauptvariablen 1580 01:11:58,790 --> 01:12:00,190 an verschiedenen Orten. 1581 01:12:00,190 --> 01:12:03,390 >> So jetzt, Haupt ist die eigentliche Funktion 1582 01:12:03,390 --> 01:12:04,780 dass Sie in einem Code-Ausführung sind. 1583 01:12:04,780 --> 01:12:08,050 Sie haben hier die Parameter gespeichert und ihre lokalen Variablen hier abgespeichert. 1584 01:12:08,050 --> 01:12:12,270 Lokale Variable bedeutet nur eine Variable die nur innerhalb dieser Funktion existieren. 1585 01:12:12,270 --> 01:12:15,610 Und oben drauf, diese müssen Sie separate Funktion namens cube. 1586 01:12:15,610 --> 01:12:18,240 Sie haben das ist Parameter sowie jene Einheimischen. 1587 01:12:18,240 --> 01:12:21,540 >> Und der Grund, du kannst hier sehen, ist das, was 1588 01:12:21,540 --> 01:12:25,030 passiert, wenn Würfel nimmt ein Nutzen aus Ihrer Hauptfunktion 1589 01:12:25,030 --> 01:12:27,640 ist das eigentlich ist es, dass über das Kopieren. 1590 01:12:27,640 --> 01:12:31,470 Also, wenn ich den Cube gesucht 2 und 8 zurück, dass 2 1591 01:12:31,470 --> 01:12:33,730 tatsächlich eingegeben als Parameter, und es ist 1592 01:12:33,730 --> 01:12:37,690 kopiert, so dass Sie es bestehende an zwei verschiedenen Stellen im Speicher. 1593 01:12:37,690 --> 01:12:40,520 Und man muss sehr vorsichtig sein, auf das Erinnern die einer von denen, 1594 01:12:40,520 --> 01:12:42,520 Sie tatsächlich manipulieren. 1595 01:12:42,520 --> 01:12:47,170 Und ein Beispiel dafür, was passiert das wäre sehr, sehr schlecht 1596 01:12:47,170 --> 01:12:48,050 existiert hier richtig. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Also hier, ich habe, in der Theorie, ein Programm hier eine Hauptfunktion 1599 01:12:58,650 --> 01:13:02,180 daß Ich erkläre einen int x gleich 1 ist. 1600 01:13:02,180 --> 01:13:04,505 Ich erkläre weiteres int y gleich 2 ist. 1601 01:13:04,505 --> 01:13:06,380 Und dann bin ich es läuft mit dieser Funktion 1602 01:13:06,380 --> 01:13:09,647 genannte Swap, wo ich davon ausgehen, dass es ist das Vertauschen der beiden Werte. 1603 01:13:09,647 --> 01:13:11,480 Und dann bin ich los drucken Sie sie aus, nicht wahr? 1604 01:13:11,480 --> 01:13:13,220 Das ist, was ich will dieses Programm zu tun. 1605 01:13:13,220 --> 01:13:15,180 >> Also lassen Sie uns kommen und werfen Sie einen Blick. 1606 01:13:15,180 --> 01:13:18,200 Also, wenn ich tatsächlich einen unterschiedlichen Funktion, wie Sie sehen können, 1607 01:13:18,200 --> 01:13:19,750 Wir haben hier unsere Hauptaufgabe. 1608 01:13:19,750 --> 01:13:22,860 Und dann haben wir unsere zweite Funktion hier. 1609 01:13:22,860 --> 01:13:24,520 Void Swap. 1610 01:13:24,520 --> 01:13:27,090 Void bedeutet nur, dass es gar nichts zurück. 1611 01:13:27,090 --> 01:13:28,930 Der Name der Funktion ist genannte Swap, und es ist 1612 01:13:28,930 --> 01:13:33,730 werde Aufnahme zwei Variablen, int a und int b, von Ihrem [unverständlich] Funktion. 1613 01:13:33,730 --> 01:13:39,010 >> So im Wesentlichen in hier, wir sind Passieren x und y in dieser Funktion. 1614 01:13:39,010 --> 01:13:40,760 Und wenn wir erstellen this-- so wollen wir 1615 01:13:40,760 --> 01:13:42,420 um einen temporären Wert zu schaffen, oder? 1616 01:13:42,420 --> 01:13:43,930 Wir werden, die zu einer zuzuweisen. 1617 01:13:43,930 --> 01:13:45,388 Und dann ein auf nun gleich b geht. 1618 01:13:45,388 --> 01:13:47,660 Und b wird, zurück zu sein wo die Temp-Wert war, 1619 01:13:47,660 --> 01:13:51,070 welche ein, weil, wenn Sie Dinge tauschen möchten, 1620 01:13:51,070 --> 01:13:52,320 können Sie nicht nur gerne tauschen sie. 1621 01:13:52,320 --> 01:13:54,360 >> Sie haben zu einem fernzuhalten Hier, so dass er erinnert sich 1622 01:13:54,360 --> 01:13:56,485 was das ist, weil, sobald Sie tauschen ein, vergessen Sie 1623 01:13:56,485 --> 01:13:58,200 was das ursprüngliche Wert war, nicht wahr? 1624 01:13:58,200 --> 01:14:00,990 Also in der Theorie, dieses Programm sollte funktionieren, oder? 1625 01:14:00,990 --> 01:14:03,630 Wenn ich wollte, um die Swap- zwei, sollten sie zu tauschen. 1626 01:14:03,630 --> 01:14:05,490 Lassen Sie uns also führen Sie es und sehen, ob es funktioniert. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> So wie Sie Jungs sehen können, x war einmal 1 und y war einmal 2. 1629 01:14:16,940 --> 01:14:21,475 Und wenn ich drucken Sie es aus, x ist noch 1 und y 2 ist. 1630 01:14:21,475 --> 01:14:25,970 Hmm, dieses Programm nicht zu sein scheinen arbeiten die Art, wie ich es will, um zu arbeiten. 1631 01:14:25,970 --> 01:14:29,950 Will jemand einen Schuss auf nehmen erraten, warum dies geschieht? 1632 01:14:29,950 --> 01:14:34,430 Es hat mit der Art und Weise zu tun dass verschiedene Dinge sind 1633 01:14:34,430 --> 01:14:38,172 an verschiedenen Orten im Speicher gespeichert. 1634 01:14:38,172 --> 01:14:39,377 >> OK. 1635 01:14:39,377 --> 01:14:41,960 So euch keine Sorgen zu machen, zu viel über dieses Recht jetzt. 1636 01:14:41,960 --> 01:14:46,610 Aber wissen, dass die lokalen Cube Variablen waren a und b, 1637 01:14:46,610 --> 01:14:49,230 weil hier in unserer Funktion, wir haben a und b erklärt 1638 01:14:49,230 --> 01:14:53,570 als die Variablen, die existieren in Würfel, dass Funktion. 1639 01:14:53,570 --> 01:14:59,490 Aber wie können Sie, die Parameter sehen, dass es nimmt in wurden hier abgelegt. 1640 01:14:59,490 --> 01:15:01,370 Aber wir waren nicht wirklich alles zurück. 1641 01:15:01,370 --> 01:15:03,120 Wir waren nicht wirklich zu ändern x und y. 1642 01:15:03,120 --> 01:15:04,440 Wir waren gerade ändern a und b. 1643 01:15:04,440 --> 01:15:08,340 >> Wir hatten x und y in kopiert etwas namens a und b. 1644 01:15:08,340 --> 01:15:11,092 Aber wir haben nie wirklich Stell x und y sich. 1645 01:15:11,092 --> 01:15:12,800 Seid ihr sehen wie das passiert? 1646 01:15:12,800 --> 01:15:16,140 Ist, dass wir es einfach kopiert über, aber wir haben nicht wirklich gehalten 1647 01:15:16,140 --> 01:15:18,030 verfolgen, wo sie in Erinnerung waren. 1648 01:15:18,030 --> 01:15:20,127 >> Und nun der Computer sucht, oh, ich habe 1649 01:15:20,127 --> 01:15:21,960 laufen diese Sache durch diese reizende Funktion. 1650 01:15:21,960 --> 01:15:23,690 Aber x und y sind noch x und y. 1651 01:15:23,690 --> 01:15:26,240 Nichts ist geschehen sie aufgrund der Tatsache 1652 01:15:26,240 --> 01:15:28,340 dass dieser Parameter und lokalen Variablen 1653 01:15:28,340 --> 01:15:30,150 werden in einer anderen gespeicherten Platz im Speicher. 1654 01:15:30,150 --> 01:15:32,030 Und dies ist eine übergeordnete Konzept, dass wir 1655 01:15:32,030 --> 01:15:34,300 sehen beginnen später im Kurs. 1656 01:15:34,300 --> 01:15:36,950 Aber genau weiß, dass dies ein Problem, das passieren kann, 1657 01:15:36,950 --> 01:15:41,400 und, dass wir herausfinden, Möglichkeiten auf, wie damit um später im Kurs. 1658 01:15:41,400 --> 01:15:41,900 OK. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 Gut. 1661 01:15:48,250 --> 01:15:51,780 So werden die Letzten Konzept sind wir wirklich zu decken 1662 01:15:51,780 --> 01:15:53,880 das wird, nützlich zu sein für die pset in dieser Woche 1663 01:15:53,880 --> 01:15:56,060 sind die sogenannten Befehlszeilenargumente. 1664 01:15:56,060 --> 01:16:00,820 So Rob in seinem Vortrag ging durch Art von kurz auf, wie diese funktionieren. 1665 01:16:00,820 --> 01:16:02,770 Im Wesentlichen wissen, dass wenn du schreibst 1666 01:16:02,770 --> 01:16:06,280 wie eine Hauptfunktion, wenn wir schrieb Funktionen, bevor in der Vergangenheit, 1667 01:16:06,280 --> 01:16:07,804 wir hatten int main nichtig. 1668 01:16:07,804 --> 01:16:10,470 Und der Grund, warum wir dort hatten ungültig war, weil unsere Programme nicht taten 1669 01:16:10,470 --> 01:16:12,520 brauchen, um Eingabewerte zu laufen, oder? 1670 01:16:12,520 --> 01:16:16,020 Als ich lief Mario, habe ich nicht brauchen, tatsächlich nur in etwas geben 1671 01:16:16,020 --> 01:16:16,970 wenn ich lief Mario. 1672 01:16:16,970 --> 01:16:20,170 Ich konnte den Benutzer später aufgefordert. 1673 01:16:20,170 --> 01:16:22,450 Aber das wird nicht immer der Fall sein. 1674 01:16:22,450 --> 01:16:24,980 >> Zum Beispiel wird in dieser Woche Problems setzt, 1675 01:16:24,980 --> 01:16:28,365 wirst du aufgefordert werden, dass in gerade Zusätzlich zur Ausführung Ihres Programms, 1676 01:16:28,365 --> 01:16:30,990 Sie gehen zu wollen, sind die Eingabe bestimmte Dinge in geraden, wie Sie 1677 01:16:30,990 --> 01:16:32,050 führen Sie Ihr Programm. 1678 01:16:32,050 --> 01:16:34,720 So ist die Art, wie wir das tun, wird als ein Kommandozeilen-Argument, das 1679 01:16:34,720 --> 01:16:37,280 ist wie ein Argument Sie können direkt 1680 01:16:37,280 --> 01:16:39,260 wie Sie versuchen, Ihr Programm auszuführen. 1681 01:16:39,260 --> 01:16:44,680 >> So ist die Schreibweise für diese, es ist ziemlich komplex aussehende, 1682 01:16:44,680 --> 01:16:47,320 aber es ist wirklich nicht so schwer. So int main-- 1683 01:16:47,320 --> 01:16:48,910 das ist nur Ihre Hauptfunktion. 1684 01:16:48,910 --> 01:16:52,110 In argc Komma String argv Klammern. 1685 01:16:52,110 --> 01:16:56,040 Also alles, was sagt, ist, dass diese int alles argc-- sagt dir 1686 01:16:56,040 --> 01:17:00,560 ist, dass diejenigen, die Anzahl der Argumente sollte der Computer erwartet. 1687 01:17:00,560 --> 01:17:03,130 >> So eine Sache, die wirklich ist wichtig, um zu verfolgen 1688 01:17:03,130 --> 01:17:07,080 ist die physikalische Namen Ihres Programms zählt zu diesen Argumenten. 1689 01:17:07,080 --> 01:17:11,080 Also, wenn ich mein Programm haben wollte laufen plus ein zusätzliches Befehlszeile 1690 01:17:11,080 --> 01:17:13,310 Argument, ich bin eigentlich gehen, um zwei. 1691 01:17:13,310 --> 01:17:15,080 Argc ist eigentlich los, um zwei sein. 1692 01:17:15,080 --> 01:17:18,010 Und dann String argv bracket-- alles, was zu tun ist, 1693 01:17:18,010 --> 01:17:20,410 es ist mir eine geben Array von Strings, das ist 1694 01:17:20,410 --> 01:17:24,870 werde nur anzeigen und speichern, was all diese Kommandozeilenargumente sind. 1695 01:17:24,870 --> 01:17:34,090 >> So zum Beispiel, wenn ich dieses haben wollte Programm, ./copy infile outfile, nicht wahr? 1696 01:17:34,090 --> 01:17:37,330 Das ist nur eine typische Linux-Befehl. 1697 01:17:37,330 --> 01:17:38,830 Was ist eigentlich argc? 1698 01:17:38,830 --> 01:17:41,320 Wie viele Befehlszeilenargumente gibt es eigentlich in diesem? 1699 01:17:41,320 --> 01:17:45,130 All dies tut, ist eine Kopie der eine Eingabedatei aus dem Namen einer Datei 1700 01:17:45,130 --> 01:17:47,070 und kopiert sie in eine andere Datei, oder? 1701 01:17:47,070 --> 01:17:48,700 Das ist alles, dies zu tun. 1702 01:17:48,700 --> 01:17:53,080 Wie Sie sehen, ich mache es auf einer Linie ohne tatsächlich benötigen Sie das Programm. 1703 01:17:53,080 --> 01:17:55,380 >> Was ist unsere argc in diesem Fall? 1704 01:17:55,380 --> 01:17:58,968 Wie viele Argumente haben wir? 1705 01:17:58,968 --> 01:17:59,634 ZIELGRUPPE: Drei? 1706 01:17:59,634 --> 01:18:01,200 ANDI PENG: Wir haben drei, genau. 1707 01:18:01,200 --> 01:18:05,030 So ist es sehr intuitiv zu nur denken, dass es nur 1708 01:18:05,030 --> 01:18:06,290 die infile und die Ausgabedatei. 1709 01:18:06,290 --> 01:18:10,190 Aber wissen, dass der physische Name der Programm läuft Zählungen sind als einer. 1710 01:18:10,190 --> 01:18:13,220 Also in diesem Fall, ist argc eigentlich drei. 1711 01:18:13,220 --> 01:18:15,860 Wie wäre es, was ist argv 0? 1712 01:18:15,860 --> 01:18:18,180 Denken Sie daran, all die Befehlszeilenargumente 1713 01:18:18,180 --> 01:18:20,500 wurden in einer Reihe von Strings gespeichert. 1714 01:18:20,500 --> 01:18:24,140 Also, wenn ich versuchen, darauf zuzugreifen, was würde argv Halterung 0 mir geben? 1715 01:18:24,140 --> 01:18:25,364 >> ZIELGRUPPE: [unverständlich]. 1716 01:18:25,364 --> 01:18:26,155 ANDI PENG: Genau. 1717 01:18:26,155 --> 01:18:28,550 Es würde mich den Punkt geben Slash zu kopieren, weil das ist, 1718 01:18:28,550 --> 01:18:31,070 die 0-te Element der erste Element meiner Array. 1719 01:18:31,070 --> 01:18:33,236 Was ist mit argv 1? 1720 01:18:33,236 --> 01:18:33,945 >> ZIELGRUPPE: Infile. 1721 01:18:33,945 --> 01:18:35,070 ANDI PENG: Infile, genau. 1722 01:18:35,070 --> 01:18:36,272 Was ist mit argv 2? 1723 01:18:36,272 --> 01:18:37,022 ZIELGRUPPE: Outfile. 1724 01:18:37,022 --> 01:18:38,190 ANDI PENG: Outfile. 1725 01:18:38,190 --> 01:18:39,290 Das ist jetzt ein bisschen schwierig. 1726 01:18:39,290 --> 01:18:42,630 Was denkt ihr argv 3 sein wird mir geben 1727 01:18:42,630 --> 01:18:45,522 wenn ich versuchte, dass ausdrucken? 1728 01:18:45,522 --> 01:18:48,260 >> ZIELGRUPPE: [unverständlich]? 1729 01:18:48,260 --> 01:18:50,164 >> ANDI PENG: Hatten Sie eine Hand oben? 1730 01:18:50,164 --> 01:18:50,663 Ja. 1731 01:18:50,663 --> 01:18:51,550 >> Publikum: Eine Alternative. 1732 01:18:51,550 --> 01:18:52,341 >> ANDI PENG: Genau. 1733 01:18:52,341 --> 01:18:55,440 Also denken Sie daran, dass wir in der Vorlesung haben am Ende eines Rennens etwas 1734 01:18:55,440 --> 01:18:56,640 genannt Nullabschluss? 1735 01:18:56,640 --> 01:18:58,890 Wir werden in diesem auch erhalten weiter in der Klasse. 1736 01:18:58,890 --> 01:19:02,472 Aber wissen, dass in der Notation, die Art, wie Sie Ihren Computer 1737 01:19:02,472 --> 01:19:04,430 weiß, dass es das Ende der Anordnung ist, dass es 1738 01:19:04,430 --> 01:19:07,310 stellt einen so genannten Null Terminator oder ein Strich null. 1739 01:19:07,310 --> 01:19:12,047 >> Also, wenn Sie versuchen, argv 3 zuzugreifen, Sie gehen zu diesen Bindestrich 0 traf. 1740 01:19:12,047 --> 01:19:13,630 Dies gilt umso mehr für eine Fangfrage. 1741 01:19:13,630 --> 01:19:17,020 Was ist mit argv 4? 1742 01:19:17,020 --> 01:19:20,920 Das ist also letzten Nullabschluss, vorbei an den Grenzen der unser Angebot. 1743 01:19:20,920 --> 01:19:24,380 Was denken Sie, wird gehen passieren, wenn wir versuchen, das zu tun? 1744 01:19:24,380 --> 01:19:25,842 >> ZIELGRUPPE: [unverständlich]? 1745 01:19:25,842 --> 01:19:26,550 ANDI PENG: Es tut uns leid? 1746 01:19:26,550 --> 01:19:28,025 Sagen, dass etwas lauter? 1747 01:19:28,025 --> 01:19:29,086 >> ZIELGRUPPE: [unverständlich]. 1748 01:19:29,086 --> 01:19:29,710 ANDI PENG: Ja. 1749 01:19:29,710 --> 01:19:32,420 Das ist der Name des Bereich werden Sie wahrscheinlich zu bekommen. 1750 01:19:32,420 --> 01:19:36,610 Aber wissen, dass argv 4-- dass können Sie den Zugriff 1751 01:19:36,610 --> 01:19:38,610 Stellen in Ihrem Computer Speicher, dass Sie wirklich 1752 01:19:38,610 --> 01:19:41,650 sollte nicht zu berühren, da jetzt wissen Sie, was argv ist. 1753 01:19:41,650 --> 01:19:46,220 Sie wissen, dass es ist ein Array der Größe 3 das hat dot kopieren, infile outfile und. 1754 01:19:46,220 --> 01:19:50,200 >> Wenn Sie versuchen, so weit darüber hinaus gehen dass Sie über die Nullabschluss sind, 1755 01:19:50,200 --> 01:19:53,050 Ihr Computer wahrscheinlich gespeicherten etwas in argv 4. 1756 01:19:53,050 --> 01:19:55,790 Und man sollte wirklich nicht sein, Zutritt in argv 4, 1757 01:19:55,790 --> 01:19:58,130 weil Sie eine Datei haben Schrank und du bist nur 1758 01:19:58,130 --> 01:19:59,790 erlaubt den Zugriff auf diese drei Ablagen. 1759 01:19:59,790 --> 01:20:02,870 Aber wenn Sie versuchen, weit über erreichen das Regal, wo Sie berechtigt sind, 1760 01:20:02,870 --> 01:20:04,930 Sie gehen zu starten Messing mit gerade anderem in den Arbeitsspeicher Ihres Computers. 1761 01:20:04,930 --> 01:20:06,690 Das wird wirklich, wirklich schlecht. 1762 01:20:06,690 --> 01:20:07,440 So weiß nur, dass. 1763 01:20:07,440 --> 01:20:10,370 Seien Sie sehr vorsichtig, dass Sie nicht nur zufällig zu starten 1764 01:20:10,370 --> 01:20:14,772 Zugriff auf Elemente in einem Array, waren nicht in dem, was Sie erstellen wollen. 1765 01:20:14,772 --> 01:20:17,114 Yep. 1766 01:20:17,114 --> 01:20:18,430 >> OK. 1767 01:20:18,430 --> 01:20:26,360 So werden wir zu einem anderen zu tun Terminal beispielsweise hier. 1768 01:20:26,360 --> 01:20:27,300 OK. 1769 01:20:27,300 --> 01:20:29,900 So Rob schnell in Vortrags den anderen Tag ging 1770 01:20:29,900 --> 01:20:35,040 dieses Beispiel, wo er hatte int main int argc String argv 1771 01:20:35,040 --> 01:20:39,090 Klammern, die erzählt wird mir, dass ich gehen, um Befehlszeilenargumente haben. 1772 01:20:39,090 --> 01:20:41,860 >> Er hat, wenn argc ist gleich gleich 2-- erinnern, 1773 01:20:41,860 --> 01:20:45,070 gleich equals bedeutet Vergleich. 1774 01:20:45,070 --> 01:20:47,980 Wenn es gleich 2 ist, dann bin ich Drucklegung hallo, 1775 01:20:47,980 --> 01:20:51,190 unabhängig von der ersten Element der Anordnung ist. 1776 01:20:51,190 --> 01:20:54,100 Else Print, Hallo Welt. 1777 01:20:54,100 --> 01:20:56,300 Was wird das wohl geschieht im Wesentlichen? 1778 01:20:56,300 --> 01:21:00,570 Kann mir jemand erklären, nur in Englisch, was dieses Programm zu tun? 1779 01:21:00,570 --> 01:21:01,272 Ja. 1780 01:21:01,272 --> 01:21:08,160 >> Publikum: Wenn jemand in einem Befehl eingegeben und sagte, ihre Vor- und Nachnamen, 1781 01:21:08,160 --> 01:21:12,096 es wird nicht nur drucken, die erste und sagen, hallo, 1782 01:21:12,096 --> 01:21:14,090 was auch immer Sie Ihren Vornamen ist. 1783 01:21:14,090 --> 01:21:15,410 >> ANDI PENG: OK, lass uns starten Sie es. 1784 01:21:15,410 --> 01:21:22,470 So zum Beispiel, wenn ich zu machen Diese Datei machen hallo hallo zu-- 1785 01:21:22,470 --> 01:21:24,500 zu--, was willst du mich zur Eingabe? 1786 01:21:24,500 --> 01:21:25,900 >> ZIELGRUPPE: Vor- und Nachname. 1787 01:21:25,900 --> 01:21:27,280 >> ANDI PENG: Vor- und Nachname? 1788 01:21:27,280 --> 01:21:28,180 Räume? 1789 01:21:28,180 --> 01:21:29,690 >> ZIELGRUPPE: Ja. 1790 01:21:29,690 --> 01:21:33,490 >> ANDI PENG: Kann mir jemand sagen, mir jetzt, was ist argc? 1791 01:21:33,490 --> 01:21:35,630 Genau richtig da? 1792 01:21:35,630 --> 01:21:36,290 Ups, Entschuldigung. 1793 01:21:36,290 --> 01:21:37,920 Lassen Sie mich zurück. 1794 01:21:37,920 --> 01:21:40,740 Wie viele Befehlszeilenargumente sind-- euch nicht wirklich sehen kann. 1795 01:21:40,740 --> 01:21:43,760 Aber ich werde versuchen, um es zu vergrößern. 1796 01:21:43,760 --> 01:21:44,290 Ich versuche. 1797 01:21:44,290 --> 01:21:45,414 Ja, es gibt drei, oder? 1798 01:21:45,414 --> 01:21:48,750 Es ist dot Strich hallo, es ist Andi, und es ist Peng. 1799 01:21:48,750 --> 01:21:51,870 >> Also, was denkt ihr dies Programm wird sich heraus werden Druck? 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 Oh. 1802 01:21:56,060 --> 01:21:57,120 Oh, das tut mir leid. 1803 01:21:57,120 --> 01:21:57,810 Falsche Namen. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 Es ist Ausdruck, hallo Welt. 1806 01:22:06,130 --> 01:22:09,603 Hat jemand zu erklären möchten warum das passiert? 1807 01:22:09,603 --> 01:22:10,103 Ja? 1808 01:22:10,103 --> 01:22:11,019 >> ZIELGRUPPE: [unverständlich]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI PENG: Genau. 1811 01:22:15,230 --> 01:22:19,940 So, hier sind bedingte ist, wenn argc gleich gleich 2. 1812 01:22:19,940 --> 01:22:23,650 So dass nur in dem Fall, dass es zwei Kommandozeilenargumente. 1813 01:22:23,650 --> 01:22:25,850 Dann werde ich zu drucken, hallo, was immer es ist. 1814 01:22:25,850 --> 01:22:28,210 Aber sonst bin ich zu gehen drucken nur, hallo Welt. 1815 01:22:28,210 --> 01:22:30,040 So jemand will mich Ihnen ein Beispiel zu geben, 1816 01:22:30,040 --> 01:22:35,050 der, wie ich in der Lage, tatsächlich erhalten, um den Wert von argv 1 zu drucken? 1817 01:22:35,050 --> 01:22:38,600 >> Was würde ich muss hier eingegeben? 1818 01:22:38,600 --> 01:22:39,840 Nur eine Sache, nicht wahr? 1819 01:22:39,840 --> 01:22:42,900 Weil der Punkt hallo zu bereits zählt als erstes Argument. 1820 01:22:42,900 --> 01:22:43,930 Ich habe nur noch eine. 1821 01:22:43,930 --> 01:22:46,470 So dot hallo, wenn ich nur tun, Andi. 1822 01:22:46,470 --> 01:22:47,270 Hallo, Andi. 1823 01:22:47,270 --> 01:22:49,186 Hat jeder verstehen, warum das passiert? 1824 01:22:49,186 --> 01:22:49,602 Ja. 1825 01:22:49,602 --> 01:22:52,500 >> Publikum: So wird der Raum zwischen der Befehls line-- ist es [unverständlich]? 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 ANDI PENG: Nein 1828 01:22:56,830 --> 01:23:03,810 Also der Raum in einer Befehlszeile Argument x, um Ihren Computer zu sagen 1829 01:23:03,810 --> 01:23:06,820 dass dies der Beginn eines neuen String. 1830 01:23:06,820 --> 01:23:11,130 So String argv hier-- es speichert alle Ihre Befehle Zeilenargumente 1831 01:23:11,130 --> 01:23:13,110 in Zeichenfolgen. 1832 01:23:13,110 --> 01:23:17,420 Und so der Raum, in dem Kommandozeilen argument-- alles, was tut, ist Ihnen sagen, 1833 01:23:17,420 --> 01:23:21,030 Dieser befindet sich am Ende einer Zeichenfolge und es ist Zeit, sich zu einem anderen. 1834 01:23:21,030 --> 01:23:21,990 >> Ja. 1835 01:23:21,990 --> 01:23:23,530 Das ist ziemlich wichtig, Ihre pset, weil Sie 1836 01:23:23,530 --> 01:23:24,613 gehen zu testen diese. 1837 01:23:24,613 --> 01:23:29,300 So hat jemand Fragen zu diesem? 1838 01:23:29,300 --> 01:23:30,016 OK COOL. 1839 01:23:30,016 --> 01:23:30,515 Ja? 1840 01:23:30,515 --> 01:23:35,008 >> Publikum: So der Grund würden Sie legte Integer-Argument calc statt 1841 01:23:35,008 --> 01:23:40,059 von [unverständlich] wäre, wenn Sie wollen, um zusätzliche Informationen zu geben 1842 01:23:40,059 --> 01:23:41,030 [Unverständlich]? 1843 01:23:41,030 --> 01:23:42,090 >> ANDI PENG: Ja, genau. 1844 01:23:42,090 --> 01:23:45,370 Einige Programme benötigen Sie zur Eingabe einer Befehlszeilenargument 1845 01:23:45,370 --> 01:23:47,732 dass es in vergeht und dass verwendet diese. 1846 01:23:47,732 --> 01:23:49,035 Ja. 1847 01:23:49,035 --> 01:23:50,410 Publikum: So was, wenn [unverständlich]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI PENG: Na, was habe ich, um dann in meinem Programm ändern? 1850 01:23:58,870 --> 01:23:59,870 >> Publikum: Nur 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI PENG: Warum ist das passiert, denken Sie? 1853 01:24:15,020 --> 01:24:18,940 >> Publikum: Da die [unverständlich]. 1854 01:24:18,940 --> 01:24:22,370 >> ZIELGRUPPE: Sie würden zu haben, ändern Sie ihn auf 2 [unverständlich]. 1855 01:24:22,370 --> 01:24:23,484 >> ZIELGRUPPE: 1 und 2. 1856 01:24:23,484 --> 01:24:24,650 ANDI PENG: 1 und 2, genau. 1857 01:24:24,650 --> 01:24:29,150 Also in diesem Fall würden Sie wahrscheinlich wollen zwei printf statements-- haben 1858 01:24:29,150 --> 01:24:32,601 eine, die argv 1 gedruckt und die eine, die argv 2 gedruckt. 1859 01:24:32,601 --> 01:24:33,100 Hier. 1860 01:24:33,100 --> 01:24:34,516 Ich kann wirklich tun, sehr kurz. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Dort gehen Sie. 1863 01:24:47,320 --> 01:24:48,287 Oh. 1864 01:24:48,287 --> 01:24:49,370 Nicht ganz, was Sie wollten. 1865 01:24:49,370 --> 01:24:52,590 Aber wenn euch Kampf mit die Formatierung, wird es herauskommen. 1866 01:24:52,590 --> 01:24:54,981 Ja. 1867 01:24:54,981 --> 01:24:55,480 Cool. 1868 01:24:55,480 --> 01:24:57,670 Ich weiß, wir sind ein bisschen wenig Zeit. 1869 01:24:57,670 --> 01:25:02,469 Aber ich werde einfach schnell verbringen paar Minuten gehen durch helpful-- 1870 01:25:02,469 --> 01:25:03,760 ZIELGRUPPE: Sie haben zwei Minuten. 1871 01:25:03,760 --> 01:25:05,010 ANDI PENG: Ich habe 2 Minuten? 1872 01:25:05,010 --> 01:25:06,340 Danke. 1873 01:25:06,340 --> 01:25:09,180 Einige schnelle pset Tipps. 1874 01:25:09,180 --> 01:25:13,100 Also für diese pset, empfehle ich, wie ich schon sagte, jeder, um die Spezifikation zu lesen. 1875 01:25:13,100 --> 01:25:16,804 Sie werden schriftlich drei programs-- ein genannt initials.c, nannte man caesar.c, 1876 01:25:16,804 --> 01:25:17,720 nannte man vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Einige wichtige Tipps, Sie Kerle wirklich wollen 1879 01:25:22,340 --> 01:25:25,040 in mind-- zu halten, so Es ist diese Funktion 1880 01:25:25,040 --> 01:25:27,770 genannt atoi-- als Ich mag sagen, a trois. 1881 01:25:27,770 --> 01:25:29,520 Unklar, ob das tatsächlich, wie Sie es sagen. 1882 01:25:29,520 --> 01:25:32,510 Aber alle es tut, es ist die Eingabe. 1883 01:25:32,510 --> 01:25:34,320 Er wandelt einen String in einen int. 1884 01:25:34,320 --> 01:25:37,490 So stellt ein ASCII I Ganzzahl. 1885 01:25:37,490 --> 01:25:40,310 Es ist nur die Umwandlung ASCII Werte in ganzzahlige Werte. 1886 01:25:40,310 --> 01:25:44,510 Also denken Sie daran argv, das Array, das speichert alle Ihre Befehle Linie arguments-- 1887 01:25:44,510 --> 01:25:46,300 es speichert sie alle als Strings. 1888 01:25:46,300 --> 01:25:50,010 Und so, wenn Sie in der Lage sein wollen, haben eine von ihnen eine ganze Zahl zu werden, 1889 01:25:50,010 --> 01:25:52,750 Sie gehen zu müssen sind um diesen Wert hier zu verwenden. 1890 01:25:52,750 --> 01:25:56,690 >> Modulo, wie wir behandelt früher in der Klasse heute, 1891 01:25:56,690 --> 01:25:59,550 Hier können Sie die haben Rest, was Sie haben. 1892 01:25:59,550 --> 01:26:03,620 Wenn wir also wirklich, wirklich großer Zahl in Caesar, 1893 01:26:03,620 --> 01:26:06,117 was ist, wenn wir das Ende aus einer Kette von Vigenere? 1894 01:26:06,117 --> 01:26:08,450 Wie werden Sie zu können zu bekommen, dass zu Wrap-around? 1895 01:26:08,450 --> 01:26:11,330 Wenn ich z getroffen, und ich will sie gehen auf eine, 1896 01:26:11,330 --> 01:26:13,650 wie soll ich zu bekommen dass zum Wrap-around? 1897 01:26:13,650 --> 01:26:15,960 Wahrscheinlich verwenden möchten Modulo in dort irgendwo. 1898 01:26:15,960 --> 01:26:19,190 >> Zweitens stöbern Ihrer Bibliothek. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 Das ist eine neue Bibliothek die wir haben. 1900 01:26:20,680 --> 01:26:25,270 Sie werden eine Menge zu finden wirklich, wirklich nützliche functions-- isupper, islower, 1901 01:26:25,270 --> 01:26:27,681 toupper, tolower, isalpha, und so weiter. 1902 01:26:27,681 --> 01:26:30,680 Alle Funktionen, die sehr nützlich sein wird wenn Sie versuchen, herauszufinden, bist, 1903 01:26:30,680 --> 01:26:33,780 ist dieses Zeichen ein Kleinbuchstabe? 1904 01:26:33,780 --> 01:26:35,730 Wie kann ich diese konvertieren String in einen Großbuchstaben? 1905 01:26:35,730 --> 01:26:38,146 All diese Dinge werden sehr zu sein, sehr hilfreich für Ihre pset. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 OK. 1908 01:26:45,500 --> 01:26:49,644 >> Bürozeiten sind von 8.00 bis heute Abend 11:00 Uhr im TEAL Klassenzimmer von morgen 1909 01:26:49,644 --> 01:26:51,310 sowie Mittwoch und Donnerstag Nacht. 1910 01:26:51,310 --> 01:26:53,280 Bürozeiten sind in commons. 1911 01:26:53,280 --> 01:26:56,180 Sehr empfehlen euch alle sofort loslegen, 1912 01:26:56,180 --> 01:27:00,490 weil Sie nicht wollen, dass sein Junge, der am Donnerstagabend hat Probleme 1913 01:27:00,490 --> 01:27:03,870 Übermittlung Ihrer pset und wie, ich weiß nicht, was zu tun ist. 1914 01:27:03,870 --> 01:27:05,870 Ich begann, ich fertig war, legte ich. 1915 01:27:05,870 --> 01:27:09,737 Versuchen Sie, sich etwas Raum zu geben, weil im Code-Probleme treten immer. 1916 01:27:09,737 --> 01:27:11,570 Sie wollen sicherstellen, dass dass Sie sich selbst 1917 01:27:11,570 --> 01:27:14,810 eine Menge Zeit, um in der Lage zu sein um die psets abzuschließen. 1918 01:27:14,810 --> 01:27:15,310 Cool. 1919 01:27:15,310 --> 01:27:16,720 Ich werde hier in der Nähe hängen. 1920 01:27:16,720 --> 01:27:18,226 >> Publikum: Ist das bereits online? 1921 01:27:18,226 --> 01:27:20,850 ANDI Peng: Ich weiß nicht, ob es bereits online, aber es wird. 1922 01:27:20,850 --> 01:27:23,500 Ich werde hier in der Nähe zu hängen, wenn jemand hat Fragen schon. 1923 01:27:23,500 --> 01:27:25,390 Danke fürs Kommen. 1924 01:27:25,390 --> 01:27:27,105