1 00:00:00,000 --> 00:00:07,070 [Powered by Google Translate] [♪ Buzzing ♪] 2 00:00:07,070 --> 00:00:10,380 Also, stellen Ihnen das, was ich auf dem Bildschirm bekam; 3 00:00:10,380 --> 00:00:12,710 es ist eines der Instrumente, die wir im Laufe des Sommers entwickelt; 4 00:00:12,710 --> 00:00:15,530 es heißt CS50 Spaces, 5 00:00:15,530 --> 00:00:18,860 und es ist unsere gemeinsame Kodierung Anwendung 6 00:00:18,860 --> 00:00:20,180 dass wir gehen in den Abschnitten zu verwenden. 7 00:00:20,180 --> 00:00:22,470 Es ist ziemlich cool. 8 00:00:22,470 --> 00:00:26,040 Jemand von euch gesehen haben CS50 Lauf noch? 9 00:00:26,040 --> 00:00:29,760 Lassen Sie mich zu ziehen, dass in einer anderen Registerkarte. 10 00:00:29,760 --> 00:00:33,440 Run.cs50.net 11 00:00:33,440 --> 00:00:36,230 So 12 00:00:36,230 --> 00:00:39,700 wenn du gehst zu run.cs50.net, 13 00:00:39,700 --> 00:00:43,030 können Sie sehen, das ist ein in Ihrem Browser Weg zur 14 00:00:43,030 --> 00:00:45,940 tatsächlich Code - schreiben C-Code, 15 00:00:45,940 --> 00:00:47,460 und führen Sie es, 16 00:00:47,460 --> 00:00:50,960 so dass es sowohl kompiliert, es läuft, dann gibt die Ausgabe an Sie, 17 00:00:50,960 --> 00:00:53,350 so ist dies eine Art coole Art zu experimentieren 18 00:00:53,350 --> 00:00:56,060 mit einigen der Code, den David geht über in Vorträgen 19 00:00:56,060 --> 00:00:58,640 und wir geben auf dich auf Problem-Sets 20 00:00:58,640 --> 00:01:01,900 ohne tatsächlich zu feuern das Gerät. 21 00:01:01,900 --> 00:01:04,489 >> Also, was Spaces funktioniert das anders aus, dass 22 00:01:04,489 --> 00:01:07,450 wenn ich wieder zurück in diesem Register 23 00:01:07,450 --> 00:01:11,580 Spaces ist CS50 laufen, wie Sie hier sehen, 24 00:01:11,580 --> 00:01:15,380 aber wenn wir scrollen und schauen auf der anderen Seite des Fensters 25 00:01:15,380 --> 00:01:18,130 Sie sehen das Recht Ich bin die einzige Person in diesem Raum, 26 00:01:18,130 --> 00:01:21,030 aber was ich zu tun ist, fragen euch, diesen Raum mit mir zu kommen 27 00:01:21,030 --> 00:01:24,590 und wir alle, Code in der gleichen kleinen Fenster, 28 00:01:24,590 --> 00:01:26,070 Aktien-Code miteinander, 29 00:01:26,070 --> 00:01:28,900 und über die Unterschiede zwischen unseren Code zu sprechen. 30 00:01:28,900 --> 00:01:31,530 Es ist also eine Art coole Sache - 31 00:01:31,530 --> 00:01:35,770 so zu verbinden, wenn Sie diesen Link hier besuchen möchten an der Spitze 32 00:01:35,770 --> 00:01:38,980 dass ich hervorgehoben, 33 00:01:38,980 --> 00:01:53,860 Sie können einfach in apps.cs50.net/spaces/vqcspSnO geben. 34 00:01:53,860 --> 00:01:56,610 >> Alles klar, so zu beginnen, 35 00:01:56,610 --> 00:01:59,720 Ich werde Ihnen ein wenig von einer Tour durch diese. 36 00:01:59,720 --> 00:02:01,720 Wir werden einige dumme kleine Codierung mit ihm auf den ersten zu tun, 37 00:02:01,720 --> 00:02:06,200 nur so, dass jeder irgendwie bekommt ein Gefühl für das, was es ist wie, 38 00:02:06,200 --> 00:02:09,000 aber was ich getan habe - 39 00:02:09,000 --> 00:02:11,830 oder was ich bin zu Recht hier zu tun ist - 40 00:02:11,830 --> 00:02:13,480 Ich werde den Code, den ich hier geschrieben zu nehmen, 41 00:02:13,480 --> 00:02:15,800 die, wie Sie jetzt sehen, ist leer; 42 00:02:15,800 --> 00:02:17,090 es nicht tun. 43 00:02:17,090 --> 00:02:21,080 Es ist nur Kesselblech Code, werden wir es nennen. 44 00:02:21,080 --> 00:02:23,820 Mit ein wenig To-do-Kommentar. 45 00:02:23,820 --> 00:02:27,850 Ich werde ihn durch das Drücken dieses Schaltfläche Speichern speichern. 46 00:02:27,850 --> 00:02:30,190 Und was das tut, ist es 47 00:02:30,190 --> 00:02:34,400 markiert es hier kurz - diese Revision save green box, 48 00:02:34,400 --> 00:02:37,570 und jetzt, wenn Sie mich suchen im Raum, 49 00:02:37,570 --> 00:02:40,340 Sie auf meinen Namen, 50 00:02:40,340 --> 00:02:43,370 Sie sehen, dass ich habe diese Revision genau hier, 51 00:02:43,370 --> 00:02:45,490 und wenn Sie auf diese Revision klicken, 52 00:02:45,490 --> 00:02:48,240 es wird diesen Code in Ihren Raum zu laden, zu. 53 00:02:50,510 --> 00:02:54,160 >> So hat jeder, dass Code in ihre Raum geladen? 54 00:02:54,160 --> 00:02:57,810 Gut, wenn Sie noch nicht haben, gehen Sie vor und tun, 55 00:02:57,810 --> 00:03:01,120 und dann, was ich will euch in dieser wenig tun to-do-Abschnitt 56 00:03:01,120 --> 00:03:05,940 wird ein wenig mit printf über sich selbst zu schreiben, 57 00:03:05,940 --> 00:03:08,310 so zum Beispiel, würde ich schreiben 58 00:03:08,310 --> 00:03:12,270 printf ("Mein Name ist Nate"); 59 00:03:15,140 --> 00:03:17,700 und dann würde ich schreiben 60 00:03:17,700 --> 00:03:21,660 "Ich absolvierte im Jahr 2009 61 00:03:21,660 --> 00:03:24,440 von Stanford " 62 00:03:26,050 --> 00:03:28,390 und ich würde gerne etwas hören 63 00:03:28,390 --> 00:03:30,270 In welchem ​​Jahr sind Sie in der Schule, 64 00:03:30,270 --> 00:03:33,910 ob Sie an der Hochschule oder Business School 65 00:03:33,910 --> 00:03:36,130 oder eine andere Harvard Schule, 66 00:03:36,130 --> 00:03:39,200 was Sie studieren, wenn es noch nicht bekannt ist; 67 00:03:39,200 --> 00:03:41,290 wenn es nicht bekannt ist, ist das total cool. 68 00:03:41,290 --> 00:03:45,170 Ich habe nicht zu entscheiden, bis ich spät in meinem zweiten Jahr war. 69 00:03:46,910 --> 00:03:49,210 und dann würde ich auch gerne wissen, 70 00:03:49,210 --> 00:03:51,610 nichts Verrücktes du mich oder sagen 71 00:03:51,610 --> 00:03:54,790 etwas über die Klasse oder einfach etwas anderes. 72 00:03:56,930 --> 00:04:00,370 Wenn Sie, dass mit Ihrem kleinen printf fertig schreiben, 73 00:04:00,370 --> 00:04:03,480 wenn du speichern Sie die Änderung oder eher 74 00:04:03,480 --> 00:04:06,080 stellen Sie zunächst sicher, dass Sie es laufen 75 00:04:06,080 --> 00:04:10,640 und dass es druckt genau das, was Sie es ausdrucken möchten, 76 00:04:14,050 --> 00:04:16,399 und dann, wenn Sie gehen Sie vor und speichern Sie diese Revision 77 00:04:16,399 --> 00:04:21,600 mit der Revision Schaltfläche Speichern, dieser erste kleine Kerl hier, 78 00:04:24,080 --> 00:04:27,340 und wir irgendwie gehen durch und machen eine kleine Einführung so. 79 00:04:27,340 --> 00:04:30,150 Sie sollten also nur noch die Play-Taste drücken, 80 00:04:30,150 --> 00:04:32,550 das ist hier oben auf dem oben links, 81 00:04:32,550 --> 00:04:35,340 so dass diese Play-Taste auf der oberen linken Willen 82 00:04:35,340 --> 00:04:39,050 senden Sie Ihre Code aus auf unseren Server, wo es wird kompiliert und dann ausgeführt werden. 83 00:04:40,600 --> 00:04:43,300 Also, was ist irgendwie verrückt darüber werden 84 00:04:43,300 --> 00:04:46,550 dieser Code tatsächlich nicht auf Ihrem Computer ausgeführt; 85 00:04:46,550 --> 00:04:49,290 es ist tatsächlich über das Internet gesendet. 86 00:04:49,290 --> 00:04:51,240 >> Wie geht es dir, Charlotte? 87 00:04:51,240 --> 00:04:54,810 >> I - okay. Ich bin - ich glaube, ich bin 88 00:04:54,810 --> 00:04:57,330 Schwierigkeiten speichern 89 00:04:57,330 --> 00:05:00,530 auf dem Server, so dass es kann - ich kann das Programm auszuführen. 90 00:05:02,090 --> 00:05:05,780 Und wenn ich dann versuchen, sie auszuführen, heißt es, dass es ein Fehler. 91 00:05:05,780 --> 00:05:08,850 Erklärt wie ein Virus, was nicht in mehr da. 92 00:05:08,850 --> 00:05:11,860 Oh, lasst uns sehen, können Sie treffen erneut auf Speichern? 93 00:05:11,860 --> 00:05:13,770 Ich sehe es auf dem Bildschirm. 94 00:05:13,770 --> 00:05:15,120 >> Richtig, okay, so dass das, was ich habe. 95 00:05:15,120 --> 00:05:19,430 Und ich weiß nicht, warum es nicht lassen Sie mich ausführen. 96 00:05:22,990 --> 00:05:24,990 Oh, okay, sorry. 97 00:05:27,930 --> 00:05:31,220 Können Sie erklären, warum - was falsch war - was nicht Arbeit mit ihm? 98 00:05:31,220 --> 00:05:34,760 >> Ja, weil ich nicht sehen, dass es eine letzte Zeile, wo es noch eine variable 99 00:05:34,760 --> 00:05:37,700 dass ich noch nicht erklärt, was ich nicht für sie da zu sein wollen. 100 00:05:37,700 --> 00:05:38,730 Yeah, perfect! 101 00:05:38,730 --> 00:05:40,390 >> Nun, wenn ich es zu retten, ich denke, es sollte funktionieren. 102 00:05:40,390 --> 00:05:42,970 Nun, da Sie es gespeichert haben, es funktioniert; awesome. 103 00:05:42,970 --> 00:05:44,570 >> Also ja, wie wir durchlaufen - 104 00:05:44,570 --> 00:05:46,690 so, was los war, 105 00:05:46,690 --> 00:05:49,130 Ich werde einfach das für die Kamera zu wiederholen. 106 00:05:49,130 --> 00:05:51,760 Was geschah, war, dass diese Variable s 107 00:05:51,760 --> 00:05:54,310 wurde nach links - ich nehme an, Sie gelöscht einige andere Sachen 108 00:05:54,310 --> 00:05:56,670 wo Sie deklariert, 109 00:05:56,670 --> 00:05:59,560 und so wurde dies wirft Sachen weg und wurde nicht lassen Sie es ausführen. 110 00:05:59,560 --> 00:06:02,540 Also das ist genau das, was wir in Abschnitt wollen 111 00:06:02,540 --> 00:06:05,690 wird die Menschen versuchen, schriftlich verschiedene Teile des Codes, 112 00:06:05,690 --> 00:06:08,490 Kompilieren, zu sehen, was funktioniert, was nicht, 113 00:06:08,490 --> 00:06:10,730 und dann irgendwie über diese Dinge zu sprechen, weil diese Auslösung Punkte sind, dass 114 00:06:10,730 --> 00:06:12,850 Ich immer noch auftreten, 115 00:06:12,850 --> 00:06:15,470 Ich immer noch - ich viel dummes Zeug die ganze Zeit, 116 00:06:15,470 --> 00:06:17,820 und ich weiß nicht, warum es nicht funktioniert, 117 00:06:17,820 --> 00:06:22,960 also lasst uns ziehen Charlotte Revision 3, 118 00:06:23,980 --> 00:06:25,380 und wir führen Sie es. 119 00:06:25,380 --> 00:06:28,950 >> Also, wenn ich laufen, jetzt, ich habe ihren Code hier, 120 00:06:28,950 --> 00:06:31,450 Ich kann zu vergrößern, drücken Sie die Schaltfläche Ausführen, 121 00:06:31,450 --> 00:06:33,680 lädt sie, baut sie, es läuft, 122 00:06:33,680 --> 00:06:36,980 sagt, dass es erfolgreich ausgeführt wurde, und wenn ich nach unten scrollen, 123 00:06:36,980 --> 00:06:39,440 siehe Charlotte ist ein Junior an Adams House, 124 00:06:39,440 --> 00:06:42,720 Psychologie, sekundären in den Wirtschaftswissenschaften, awesome. 125 00:06:42,720 --> 00:06:44,310 Great to meet you! 126 00:06:44,310 --> 00:06:46,550 Awesome. 127 00:06:46,550 --> 00:06:49,670 Okay, Bewegung, lasst uns an Daniel gehen, 128 00:06:49,670 --> 00:06:52,710 gehen Revision 3, 129 00:06:52,710 --> 00:06:54,180 kompilieren, führen; 130 00:06:54,180 --> 00:06:56,680 Warum erzählst du uns nicht ein wenig über sich selbst, Daniel? 131 00:06:56,680 --> 00:06:59,380 >> Rufen Sie mich an Dan. 132 00:06:59,380 --> 00:07:01,920 Ich gehe zu Business School gehen über von euch, 133 00:07:01,920 --> 00:07:05,020 und ich war bei den Marines, bevor hier 134 00:07:05,020 --> 00:07:08,020 und das ist alles neu für mich, so yeah. 135 00:07:08,020 --> 00:07:11,060 Fühlen Sie sich nicht schlecht, ich bin 30, und ich kenne keinen von diesem Zeug. 136 00:07:11,060 --> 00:07:13,800 Awesome; Dank, Dan! 137 00:07:13,800 --> 00:07:17,300 Alles klar, wir bekamen ein anderes Daniel. 138 00:07:17,300 --> 00:07:20,930 Sie gehen von Daniel - werden Sie sich vorstellen, Daniel? 139 00:07:20,930 --> 00:07:22,260 >> >> Klar, ich bin Daniel. 140 00:07:22,260 --> 00:07:24,330 Ich bin im zweiten Jahr in Mather jetzt. 141 00:07:24,330 --> 00:07:25,840 Ich bin auf der Regierung konzentrieren, 142 00:07:25,840 --> 00:07:28,760 aber ich wollte CS50 nehmen, weil ich sehr gute Kritiken über die Klasse gehört habe 143 00:07:28,760 --> 00:07:30,750 und ich habe nie CS ausprobiert. 144 00:07:30,750 --> 00:07:34,680 Blättern Sie nach unten hier und zeigen dies - cool. 145 00:07:36,330 --> 00:07:39,090 Umzug auf, Jared. 146 00:07:39,090 --> 00:07:41,990 Wie geht es dir? 147 00:07:41,990 --> 00:07:43,430 >> Good, how are you? 148 00:07:43,430 --> 00:07:47,520 Wie Sie sehen können, bin ich ein Junior-Philosophie Konzentrator in Eliot, 149 00:07:47,520 --> 00:07:50,260 ursprünglich aus dem südlichen Kalifornien, 150 00:07:50,260 --> 00:07:53,100 und ich bin daran interessiert, unter CS50, weil ich die Logik der es mag, 151 00:07:53,100 --> 00:07:57,420 und es scheint wirklich cool, die Dinge auf dem Computer zu tun, so. 152 00:07:57,420 --> 00:07:59,570 Awesome; wo in Südkalifornien sind Sie? 153 00:07:59,570 --> 00:08:02,340 >> Über eine Stunde von [unverständlich], einer kleinen Stadt [unverständlich]. 154 00:08:02,340 --> 00:08:04,850 Oh, ja, mein Vater aus Redlands. 155 00:08:04,850 --> 00:08:07,060 Cool stuff. 156 00:08:07,060 --> 00:08:12,130 >> Alle Rechte, Jimmy, wie geht es dir, Jimmy? 157 00:08:12,130 --> 00:08:15,130 >> Good, how are you? 158 00:08:15,130 --> 00:08:16,040 Ziemlich gut! 159 00:08:16,040 --> 00:08:17,710 Erzähl uns von sich. 160 00:08:17,710 --> 00:08:20,840 >> Ich bin ein Neuling, und ich bin mir nicht ganz sicher, was ich in den Schwerpunkten 161 00:08:20,840 --> 00:08:22,820 aber ich bin irgendwie Neigung zu Wirtschaftswissenschaften. 162 00:08:22,820 --> 00:08:25,680 Wie Daniel vor mir, ich habe nie einen CS getan, aber es klingt irgendwie cool. 163 00:08:25,680 --> 00:08:28,120 Ich komme ursprünglich aus Chicago. 164 00:08:28,120 --> 00:08:31,640 Awesome. Also check out seinen Ausdruck hier. 165 00:08:31,640 --> 00:08:34,630 Ich wollte fragen, tat diesen Druck als Sie erwartet haben? 166 00:08:34,630 --> 00:08:37,650 >> Nein, ich vergaß, um eine neue Zeile zu drucken. 167 00:08:37,650 --> 00:08:41,270 Ich tatsächlich vergessen, dass, wenn ich schrieb mein Ding 168 00:08:41,270 --> 00:08:43,090 zum ersten Mal, zu. 169 00:08:43,090 --> 00:08:46,330 Es ist eine Art Schmerz zu erinnern, die in manuell setzen. 170 00:08:46,330 --> 00:08:50,560 Es wäre schön, wenn es nur wissen, dass das, was Sie wollten. 171 00:08:50,560 --> 00:08:53,630 >> Okay, Kelly. 172 00:08:53,630 --> 00:08:56,050 Wow, wir haben 2 Kellys; 2 Daniels, 2 Kellys. 173 00:08:56,050 --> 00:09:00,490 So Kelly - meinst du mit Kelly Ren gehen? 174 00:09:00,490 --> 00:09:03,870 Okay, awesome. 175 00:09:03,870 --> 00:09:07,270 Oder Kelly, meine ich. 176 00:09:07,270 --> 00:09:10,260 >> Also ja, ich bin also Kelly. 177 00:09:10,260 --> 00:09:12,930 Ich bin im zweiten Jahr in Pfoho. 178 00:09:12,930 --> 00:09:17,000 Ich bekam eine E-Mail, dass ich heute noch 7 Wochen bis meine Konzentration zu erklären, 179 00:09:17,000 --> 00:09:20,940 so versuche ich, nicht daran zu denken, 180 00:09:20,940 --> 00:09:24,090 und Ich mag backen, Laufen und Craisins. 181 00:09:24,090 --> 00:09:29,110 Ich habe keine Erfahrung mit den meisten der CS; 182 00:09:29,110 --> 00:09:32,700 Ich brachte mir zu Webseiten zu bauen, wenn ich noch sehr jung war, 183 00:09:32,700 --> 00:09:35,750 aber ich denke, ich wahrscheinlich selbst beigebracht falsch eine Menge Zeit. 184 00:09:35,750 --> 00:09:39,260 Hoffentlich werde ich ein bisschen mehr zu erfahren 185 00:09:39,260 --> 00:09:41,450 und - yeah. 186 00:09:41,450 --> 00:09:44,100 >> Awesome; gut, danke. 187 00:09:44,100 --> 00:09:47,190 Lassen Sie uns auf die andere Kelly gehen; 188 00:09:47,190 --> 00:09:48,880 Ich habe nicht alles - hast du etwas gesagt hier? 189 00:09:48,880 --> 00:09:51,880 >> [Unverständlich] 190 00:09:51,880 --> 00:09:56,180 Da ist es! 191 00:09:56,180 --> 00:09:58,120 Sweet! 192 00:09:58,120 --> 00:10:01,400 >> Alles klar, also ich bin Kelly. 193 00:10:01,400 --> 00:10:03,980 Ich bin im ersten Jahr Student. 194 00:10:03,980 --> 00:10:05,560 Ich bin in Mind, Brain, und Bildung mit den Schwerpunkten. 195 00:10:05,560 --> 00:10:07,940 Ich absolvierte in Franklin & Marshall College in 2008 196 00:10:07,940 --> 00:10:10,840 mit den Schwerpunkten Psychologie und Soziologie 197 00:10:10,840 --> 00:10:13,120 und eine kleinere in Französisch. 198 00:10:13,120 --> 00:10:15,330 Ich nehme CS50 199 00:10:15,330 --> 00:10:18,080 denn ich bin daran interessiert, einen PhD in Neuroscience 200 00:10:18,080 --> 00:10:21,220 und ich fühle mich wie das wird mir helfen, zu verstehen, die Technologien zum Einsatz. 201 00:10:21,220 --> 00:10:23,150 Awesome. 202 00:10:26,980 --> 00:10:29,390 Umzug auf, Mikaela. 203 00:10:29,390 --> 00:10:31,640 Ist das die richtige Aussprache? 204 00:10:31,640 --> 00:10:32,990 Okay, awesome. 205 00:10:32,990 --> 00:10:34,640 >> >> Ich bin Mikhaila. 206 00:10:34,640 --> 00:10:36,870 Ich bin im zweiten Jahr in Kirkland House, 207 00:10:36,870 --> 00:10:39,950 und ich bin in Mechanical Engineering konzentrieren. 208 00:10:39,950 --> 00:10:43,180 Ich mag Radfahren, baute ein Fahrrad in diesem Sommer. 209 00:10:43,180 --> 00:10:46,140 Ich nehme CS, eigentlich 210 00:10:46,140 --> 00:10:48,350 als Konzentration erforderlich, 211 00:10:48,350 --> 00:10:52,550 aber wissen Sie, ich glaube, es ist noch kühl Art von Engineering-Klasse. 212 00:10:52,550 --> 00:10:55,150 Awesome - Sie bauten ein Fahrrad in diesem Sommer? 213 00:10:55,150 --> 00:10:56,730 >> Ja. 214 00:10:56,730 --> 00:10:58,900 Wow, wie der Rahmen und das alles? 215 00:10:58,900 --> 00:11:00,120 >> Uh-hunh (affirmative). 216 00:11:00,120 --> 00:11:01,530 Wow, das ist wirklich cool. 217 00:11:01,530 --> 00:11:06,370 >> [Unverständlich off-camera chat] 218 00:11:06,370 --> 00:11:10,000 [Gelächter] 219 00:11:12,640 --> 00:11:14,200 Ja, es ist schon so lange her. 220 00:11:14,200 --> 00:11:16,730 Man kann nie wissen, nicht wahr? 221 00:11:16,730 --> 00:11:19,420 Nun, kühlen, gut danke, Mikhaila. 222 00:11:19,420 --> 00:11:21,390 >> Alles klar, Missy. 223 00:11:21,390 --> 00:11:23,280 >> Mein Name ist Missy, ich bin ein Neuling, 224 00:11:23,280 --> 00:11:25,500 so dass heißt, ich weiß gar nichts! 225 00:11:25,500 --> 00:11:29,180 Ich möchte in der Astrophysik zu konzentrieren. 226 00:11:29,180 --> 00:11:31,220 In CS50, 227 00:11:31,220 --> 00:11:33,350 Ich fühle mich wie wird definitiv dabei helfen. 228 00:11:33,350 --> 00:11:37,750 Eine seltsame Tatsache über mich Ich bin ein staatlich geprüfter Feuerwehrmann. 229 00:11:37,750 --> 00:11:39,960 Wow! 230 00:11:39,960 --> 00:11:42,440 Wie konnte das passieren? 231 00:11:42,440 --> 00:11:45,570 >> Ich besuchte eine Akademie 232 00:11:45,570 --> 00:11:49,000 und ging durch die Hölle für viele Wochen 233 00:11:49,000 --> 00:11:51,200 und bekam meine Zertifizierung. 234 00:11:51,200 --> 00:11:54,090 Wow, congrats! 235 00:11:54,090 --> 00:11:57,280 Das ist keine Kleinigkeit, das ist sicher. 236 00:11:57,280 --> 00:11:59,070 Okay, jetzt werden wir tun mir. 237 00:11:59,070 --> 00:12:01,290 Ich bin der nächste in der Reihe. 238 00:12:01,290 --> 00:12:04,510 Ich bin - ausführen. 239 00:12:04,510 --> 00:12:07,580 >> Also mein Name ist Nate. 240 00:12:07,580 --> 00:12:11,160 Ich war Klasse von 2009 an der Stanford. 241 00:12:11,160 --> 00:12:13,840 Ich war ein symbolischer Systeme major, 242 00:12:13,840 --> 00:12:17,370 das ist vergleichbar mit der Mind, Brain, Behavior Konzentration hier 243 00:12:17,370 --> 00:12:19,300 aber es ist eine Art Mischung aus 244 00:12:19,300 --> 00:12:22,350 Informatik, Linguistik, Psychologie und Philosophie. 245 00:12:22,350 --> 00:12:26,600 Art - yeah, viele seltsame Dinge, aber es war toll, 246 00:12:26,600 --> 00:12:29,880 und dann habe ich meinen Master in Informatik gibt, wie gut. 247 00:12:29,880 --> 00:12:33,250 Also ich bin neu in Harvard in diesem Jahr. 248 00:12:33,250 --> 00:12:35,750 Ich wollte eigentlich in den Unterricht zu bekommen. 249 00:12:35,750 --> 00:12:39,860 Ich habe die letzten 4 Jahre an der Stanford TA-Ing Informatik-Klassen 250 00:12:39,860 --> 00:12:43,370 und so David lass mich los, 251 00:12:43,370 --> 00:12:45,550 und ich werde sein helfen mit CS50, 252 00:12:45,550 --> 00:12:47,890 so dass ich diese volle Zeit, ich bin nicht in der Schule grad. 253 00:12:47,890 --> 00:12:50,330 Es hat Spaß gemacht. 254 00:12:50,330 --> 00:12:53,130 Hoffentlich werde weiterhin Spaß, ich bin sicher, es wird. 255 00:12:53,130 --> 00:12:56,040 >> Alle Rechte, Sam. 256 00:13:01,910 --> 00:13:05,470 >> Mein Name ist Sam, ich bin ein College-Student an der Hochschule, in Gesetz ausdrücklich. 257 00:13:05,470 --> 00:13:10,110 Mein Hauptfach wird die Geschichte der Wissenschaft sein, wahrscheinlich, und VES sekundäre, 258 00:13:10,110 --> 00:13:13,240 und meine Lieblingsfarbe ist gelb. 259 00:13:18,790 --> 00:13:21,100 Erledigung der Hauptsache oder irgendetwas passieren, aber es ist eine gute Farbe! 260 00:13:21,100 --> 00:13:24,780 Und Stella. 261 00:13:24,780 --> 00:13:26,980 >> Hallo, ich bin Stella, ich bin ein Neuling in Grays. 262 00:13:26,980 --> 00:13:30,070 Ich habe keine Ahnung, was ich in noch konzentriert, 263 00:13:30,070 --> 00:13:32,500 so CS50 war nur irgendwie zufällig, 264 00:13:32,500 --> 00:13:34,220 was interessant. 265 00:13:34,220 --> 00:13:36,080 Fun Tatsächlich war Jimmy das erste Harvard Freund von mir, 266 00:13:36,080 --> 00:13:38,360 weil wir beide aus Chicago. 267 00:13:38,360 --> 00:13:42,450 Cool, und Grace - das ist angeblich die wirklich nett sein, nicht wahr? 268 00:13:42,450 --> 00:13:45,220 >> Ich dachte, [unverständlich]. 269 00:13:45,220 --> 00:13:46,690 Oh, yeah. 270 00:13:46,690 --> 00:13:51,210 [Unverständlich / off-camera chat] 271 00:13:51,210 --> 00:13:54,420 Okay, ich lerne immer noch, immer noch lernen. 272 00:13:54,420 --> 00:13:57,800 >> Also haben wir etwas anderes, das irgendwie interessant ist hier. 273 00:13:59,600 --> 00:14:02,870 Ja, ich frage mich nur, haben Sie eine Idee, was los ist hier? 274 00:14:02,870 --> 00:14:05,890 Sie wissen, wie dies zu interpretieren? 275 00:14:05,890 --> 00:14:13,340 >> Ich sollte zu setzen das Semikolon nach jeder einzelne Zeile. 276 00:14:13,340 --> 00:14:16,370 Das ist eine Art Schmerz. 277 00:14:16,370 --> 00:14:19,100 Manchmal sind diese Semikolon kann eine echte Schmerzen aufzuspüren. 278 00:14:19,100 --> 00:14:21,420 So stellt sich heraus, dass 279 00:14:21,420 --> 00:14:22,820 das spezielle Programm verwenden wir in diesem Jahr sind die 280 00:14:22,820 --> 00:14:26,670 erstellen unsere C-Code aufgerufen wird Clang, 281 00:14:26,670 --> 00:14:29,460 und der Grund, haben wir begonnen, Clang dieses Jahr nutzen können - 282 00:14:29,460 --> 00:14:32,030 denn wir haben nicht das Programm in der Vergangenheit; 283 00:14:32,030 --> 00:14:35,710 Wir haben eine andere als GCC, die sehr beliebt ist verwendet - 284 00:14:35,710 --> 00:14:38,420 Clang tatsächlich gibt Ihnen Fehlermeldungen, die Sinn machen. 285 00:14:38,420 --> 00:14:41,420 Dieses sagt "erwartet ';' nach Expression", 286 00:14:41,420 --> 00:14:45,260 und es hat sogar erzählt Sie den Ausdruck, nach dem Sie brauchte einen Strichpunkt. 287 00:14:45,260 --> 00:14:47,830 So sind Sie Festsetzung es? 288 00:14:47,830 --> 00:14:48,930 >> Ja, gerade jetzt. 289 00:14:48,930 --> 00:14:52,040 Awesome; lass es mich wissen und wir werden es nach oben ziehen, und wir werden sie auszuführen. 290 00:14:52,040 --> 00:14:55,830 Aber ja, die Umsetzung dieser Semikolons ist eine Art Schmerz. 291 00:14:55,830 --> 00:14:59,580 >> Ich es behoben, so dass ich denke, es sollte funktionieren. 292 00:14:59,580 --> 00:15:02,760 Awesome - Revision 3. 293 00:15:02,760 --> 00:15:05,250 Das sieht so aus. 294 00:15:05,250 --> 00:15:08,580 Alles klar, also wenn wir jetzt ausführen, 295 00:15:08,580 --> 00:15:11,020 dort geht es. 296 00:15:11,020 --> 00:15:13,830 Cool stuff. 297 00:15:13,830 --> 00:15:15,340 >> Gut. 298 00:15:15,340 --> 00:15:18,230 Also vielen Dank dafür, dass. 299 00:15:18,230 --> 00:15:20,210 Es ist großartig, euch zu treffen. 300 00:15:20,210 --> 00:15:22,880 Was wir tun werden ist nun verbringen die nächsten bisschen 301 00:15:22,880 --> 00:15:24,740 irgendwie tauchen in den Abschnitt Probleme 302 00:15:24,740 --> 00:15:27,550 das kommt von dem Problem von dieser Woche gesetzt 303 00:15:27,550 --> 00:15:29,920 und wir, dass für die meisten der Abschnitte zu tun 304 00:15:29,920 --> 00:15:32,110 für den Rest des Wortes, 305 00:15:32,110 --> 00:15:35,580 und dann werden wir speichern die letzten 15, 20 Minuten oder so 306 00:15:35,580 --> 00:15:38,490 über das Problem zu reden es sich 307 00:15:38,490 --> 00:15:41,420 und dann einfach alle anderen Fragen, die Sie haben in der Regel über die Klasse. 308 00:15:43,380 --> 00:15:45,670 Das heißt, was wir wirklich tun wollen 309 00:15:45,670 --> 00:15:49,390 wird haben alle teilnehmenden 310 00:15:49,390 --> 00:15:51,500 mit dem Spaces stuff, 311 00:15:51,500 --> 00:15:53,500 Werfen im Code werfen Anregungen, 312 00:15:53,500 --> 00:15:56,500 und darüber zu reden, wenn die Dinge diese Pause gerne 313 00:15:56,500 --> 00:15:58,360 oder nicht funktionieren, nur weil diese Dinge, die sind 314 00:15:58,360 --> 00:16:00,870 Ich weiß, ich kam über 315 00:16:00,870 --> 00:16:03,180 als ich anfing Codierung, 316 00:16:03,180 --> 00:16:05,490 und waren wirklich irgendwie frustrierend 317 00:16:05,490 --> 00:16:08,690 denn wenn es wie 2.00 Uhr ist, bevor Sie Ihr Problem Satz fällig ist, 318 00:16:08,690 --> 00:16:11,330 so - nur für die Offenlegung, 319 00:16:11,330 --> 00:16:14,590 Ich habe nicht mit der Programmierung beginnen, bis ich ein College-Student im College war. 320 00:16:14,590 --> 00:16:17,360 Es war eine Art dieser seltsame, unbekannte Sache 321 00:16:17,360 --> 00:16:20,360 dass ich gehört habe, war irgendwie cool 322 00:16:20,360 --> 00:16:23,590 und ich habe auch gehört, es könnte eine echte Schmerzen in den Hintern zu sein 323 00:16:23,590 --> 00:16:27,610 wenn Sie vermissen ein Semikolon und das ist der einzige Fehler, halten Sie Ihr Programm aus der Arbeit 324 00:16:27,610 --> 00:16:30,890 und halten Sie von dem Einschlafen, 325 00:16:30,890 --> 00:16:32,650 so definitiv, 326 00:16:32,650 --> 00:16:34,020 wenn Sie Fragen haben wie das, 327 00:16:34,020 --> 00:16:37,060 wenn Sie Bedenken wie die haben, lassen Sie es mich wissen, 328 00:16:37,060 --> 00:16:40,050 weil ich, um diese eine gute Erfahrung für euch wollen. 329 00:16:40,050 --> 00:16:44,620 >> So haben euch alle heruntergeladenen das Problem gesetzt noch? 330 00:16:44,620 --> 00:16:47,160 Kinda wissen, wo es ist? Okay. 331 00:16:47,160 --> 00:16:51,490 Also werden wir die cs50.net gehen, weil ich es nicht haben auf diesem Konto, 332 00:16:51,490 --> 00:16:54,110 ziehen Sie die Problem-Sets, 333 00:16:54,110 --> 00:16:57,940 Pull-up-Problem Satz 2, und wir werden in der Standard Edition heute aussehen. 334 00:16:57,940 --> 00:17:01,190 Wir ziehen die Spezifikation hier. 335 00:17:02,640 --> 00:17:04,420 Blättern Sie nach unten. 336 00:17:06,790 --> 00:17:11,109 So wir werden beginnen, diesen Abschnitt von Fragen. 337 00:17:14,069 --> 00:17:16,710 Habt ihr beobachtet diese Shorts noch? 338 00:17:16,710 --> 00:17:18,329 Okay. 339 00:17:18,329 --> 00:17:21,329 So gibt es shorts on Schleifen, 340 00:17:21,329 --> 00:17:24,700 die durch Tommy, einer der Leiter Lehre Stipendiaten durchgeführt. 341 00:17:24,700 --> 00:17:27,230 Es ist ein auf Umfang, 342 00:17:27,230 --> 00:17:30,530 Ich glaube, von einem anderen Lehre Kerl namens David getan 343 00:17:30,530 --> 00:17:33,400 und dann ein auf Caesar Cipher ebenfalls von David getan. 344 00:17:33,400 --> 00:17:35,550 Sie sind ziemlich cool. 345 00:17:35,550 --> 00:17:37,770 Habt ihr beobachtet ihre Shorts so weit? 346 00:17:37,770 --> 00:17:39,270 How've sie gewesen? 347 00:17:39,270 --> 00:17:41,490 Hilfreich? Okay, gut zu wissen. 348 00:17:41,490 --> 00:17:44,210 Wenn sie es nicht sind, kann man so sagen. 349 00:17:46,290 --> 00:17:49,870 Aber bevor Sie das tun, 350 00:17:49,870 --> 00:17:52,600 Sie haben Jungs sahen bei diesen Fragen 351 00:17:52,600 --> 00:17:55,430 überhaupt? 352 00:17:55,430 --> 00:17:57,480 >> Lassen Sie uns darüber ein bisschen reden. 353 00:17:57,480 --> 00:18:00,600 So haben wir in den letzten paar Wochen vorgestellt 354 00:18:00,600 --> 00:18:02,480 in der Vorlesung 355 00:18:02,480 --> 00:18:04,910 eine Anzahl von verschiedenen Schleifen. 356 00:18:04,910 --> 00:18:06,140 Es ist die for-Schleife, 357 00:18:06,140 --> 00:18:09,570 die while-Schleife und dann die do-while-Schleife, 358 00:18:09,570 --> 00:18:13,100 und in der Vorlesung haben wir gesprochen viel über 359 00:18:13,100 --> 00:18:16,010 wie diese sind alle Schlaufen 360 00:18:16,010 --> 00:18:18,320 ziemlich ähnlich in vielerlei Hinsicht, 361 00:18:18,320 --> 00:18:21,210 und Sie können viel von den gleichen Dingen mit einer while-Schleife zu tun 362 00:18:21,210 --> 00:18:23,260 dass man mit einer for-Schleife. 363 00:18:23,260 --> 00:18:26,300 Sie müssen nur solche verwenden, die richtigen Kombinationen von Variablen und so weiter. 364 00:18:26,300 --> 00:18:28,680 und so wirklich 365 00:18:28,680 --> 00:18:31,200 die eigentliche Unterscheidung zwischen alle Schleifen ist, dass 366 00:18:31,200 --> 00:18:33,620 manchmal sind sie mehr nützliche 367 00:18:33,620 --> 00:18:36,930 um sie zu einem Zeitpunkt als einem anderen Zeitpunkt zu verwenden. 368 00:18:36,930 --> 00:18:39,340 >> So zum Beispiel, 369 00:18:39,340 --> 00:18:42,260 die while-Schleife, die sich von einem do-while-Schleife. 370 00:18:42,260 --> 00:18:45,680 Hat jeder das Gefühl haben, einen guten Griff auf, wenn über 371 00:18:45,680 --> 00:18:48,650 eine do-while-Schleife ist mehr 372 00:18:48,650 --> 00:18:50,990 nützlich oder was der Unterschied ist? 373 00:18:50,990 --> 00:18:53,410 >> Ich denke, der Unterschied ist ein do-while-Schleife 374 00:18:53,410 --> 00:18:56,960 läuft - ich weiß nicht genau, was die Terminologie, 375 00:18:56,960 --> 00:18:59,750 aber die Reihe von Funktionen innerhalb der Schleife. 376 00:18:59,750 --> 00:19:02,020 Sie automatisch - es macht seinen Läufen mindestens 377 00:19:02,020 --> 00:19:05,390 bevor es prüft den Zustand oder die while-Schleife wird nur ausgeführt, wenn 378 00:19:05,390 --> 00:19:08,290 es kontinuierlich läuft - ob die Bedingung, die erfüllt ist. 379 00:19:08,290 --> 00:19:11,010 Ja, macht das Sinn? 380 00:19:11,010 --> 00:19:14,200 >> Werfen wir einen Blick auf ein wenig Code. 381 00:19:14,200 --> 00:19:16,930 Also einfach die Frage wiederholen, 382 00:19:16,930 --> 00:19:19,230 oder die Antwort, sondern; 383 00:19:19,230 --> 00:19:22,050 Die Antwort war, dass 384 00:19:22,050 --> 00:19:25,850 eine while-Schleife wird überprüft, ob die Bedingung 385 00:19:25,850 --> 00:19:27,440 die Sie angeben, wird erfüllt 386 00:19:27,440 --> 00:19:31,320 vor der Ausführung der Körper der Schleife für die erste Zeit, 387 00:19:31,320 --> 00:19:35,000 während die do-while-Schleife wird automatisch ausgeführt, den Körper der Schleife 388 00:19:35,000 --> 00:19:38,450 ist das, was wir es nennen - es ist seltsam Terminologie, 389 00:19:38,450 --> 00:19:41,460 aber wenn ich jemals sagen, was keinen Sinn macht, lass es mich wissen - 390 00:19:41,460 --> 00:19:45,360 die Schleife ist, dass Sachen, die Sie zwischen den geschweiften Klammern setzen. 391 00:19:45,360 --> 00:19:47,840 Und in einer do-while-Schleife, 392 00:19:47,840 --> 00:19:50,220 Diese Stelle bekommen mindestens einmal ausgeführt, 393 00:19:50,220 --> 00:19:54,460 und dann die Bedingung wird geprüft, bevor sie jedes Mal in Folge läuft. 394 00:19:54,460 --> 00:19:56,580 >> Also eigentlich, Sam, 395 00:19:56,580 --> 00:20:00,820 tun Sie etwas dagegen schriftlich eine einfache while-Schleife 396 00:20:00,820 --> 00:20:02,840 in Spaces? 397 00:20:02,840 --> 00:20:05,600 >> Wie findest du wie sortieren 398 00:20:05,600 --> 00:20:07,060 eine neue ...? 399 00:20:07,060 --> 00:20:09,220 Ich habe gerade zu löschen, was Sie da haben. 400 00:20:09,220 --> 00:20:11,300 Ja, nur löschen Sie es heraus. 401 00:20:11,300 --> 00:20:14,510 >> Nun, ich glaube, ich habe dies - 402 00:20:14,510 --> 00:20:16,640 welche ein willst du, eine Weile her, oder willst du ...? 403 00:20:16,640 --> 00:20:19,350 Ja, ich nur eine Weile wahr, etwas ausdrucken out. 404 00:20:21,050 --> 00:20:23,140 Und lassen Sie uns sehen. 405 00:20:23,140 --> 00:20:25,850 Alexander erkannte ich, dass wir nie eingeführt Sie. 406 00:20:25,850 --> 00:20:27,510 >> Oh, das ist in Ordnung. 407 00:20:27,510 --> 00:20:30,760 Sie - können Sie codieren eine do-while-Schleife für uns? 408 00:20:30,760 --> 00:20:32,520 >> Ja, ich werde es versuchen. 409 00:20:32,520 --> 00:20:34,370 Alles klar, wir werden einfach ziehen Sie diese auf dem Bildschirm, 410 00:20:34,370 --> 00:20:38,240 so dass Sie Art haben einen Handgriff auf, was die Unterschiede sind. 411 00:20:38,240 --> 00:20:41,280 >> Also hier ist was Sam getan hat. 412 00:20:41,280 --> 00:20:44,460 Er hat eine ganze Zahl nannte ich habe 413 00:20:44,460 --> 00:20:47,480 dass er mit 17 initialisiert. 414 00:20:47,480 --> 00:20:51,570 Dann sagt er, während (int i = 17) 415 00:20:51,570 --> 00:20:54,230 printf ("Mein Name ist Sam."); 416 00:20:54,230 --> 00:20:57,300 Also, was passiert, wenn wir diesen Code ausführen? 417 00:20:57,300 --> 00:21:00,340 Es ist ein Fehler, was bedeutet der Fehler sagen? 418 00:21:00,340 --> 00:21:02,890 Lasst uns nach oben ziehen und darüber reden. 419 00:21:02,890 --> 00:21:05,040 Ein Fehler ist aufgetreten, sagt sie. 420 00:21:05,040 --> 00:21:07,400 Lassen Sie nach unten scrollen. 421 00:21:07,400 --> 00:21:09,460 So es gab uns diesen Fehler, und sie sagte, 422 00:21:09,460 --> 00:21:12,690 "Hey, ich erwartete einen Ausdruck." 423 00:21:12,690 --> 00:21:16,180 Das ist irgendwie kryptisch. 424 00:21:19,160 --> 00:21:23,140 Ja, so genau - und wieder 425 00:21:23,140 --> 00:21:27,140 gibt es eine weitere kleine Fehler, dass wir in nur einer Sekunde zu fangen. 426 00:21:27,140 --> 00:21:31,800 Aber das ist eine andere dieser Art von seltsamen Terminologie Dinge, 427 00:21:31,800 --> 00:21:36,150 so dass diese int i = 17 428 00:21:36,150 --> 00:21:39,290 ist kein Ausdruck. 429 00:21:39,290 --> 00:21:41,220 Was es, wie es zu tun ist aussieht, ist es 430 00:21:41,220 --> 00:21:43,410 erklärt eine ganze Zahl als i 431 00:21:43,410 --> 00:21:45,540 und wenn er auf 17 gleich 432 00:21:45,540 --> 00:21:48,780 oder vielmehr, indem 17 in diesem int namens i. 433 00:21:50,560 --> 00:21:53,350 Und das macht keinen Sinn 434 00:21:53,350 --> 00:21:55,790 im Rahmen dieser while-Schleife. 435 00:21:55,790 --> 00:21:58,190 Es macht Sinn, wie wir sehen werden, 436 00:21:58,190 --> 00:22:01,250 im Rahmen einer for-Schleife, da for-Schleife Erklärungen nicht starten 437 00:22:01,250 --> 00:22:05,800 mit der für int i gleich etwas 438 00:22:05,800 --> 00:22:07,830 und geht weiter. 439 00:22:07,830 --> 00:22:09,500 >> So haben Sie - 440 00:22:09,500 --> 00:22:12,630 fix etwas, alles in Ordnung. 441 00:22:12,630 --> 00:22:15,270 Hier geht es; awesome. 442 00:22:15,270 --> 00:22:17,920 So, jetzt sieht es ein wenig anders. 443 00:22:17,920 --> 00:22:19,030 Ein paar Dinge haben sich geändert. 444 00:22:19,030 --> 00:22:21,300 Können Sie uns sagen, was die Dinge haben sich geändert? 445 00:22:21,300 --> 00:22:24,950 >> Ich nahm den int, so gibt es keine Erklärung [unverständlich] statt einer Zuweisung. 446 00:22:24,950 --> 00:22:28,770 Die ein Gleichheitszeichen, habe ich 2 gleiche Zeichen, was bedeutet, ein Gleichheitszeichen. 447 00:22:28,770 --> 00:22:30,560 Awesome. 448 00:22:30,560 --> 00:22:33,320 Ja, so was Sam wollte er nahm den int 449 00:22:33,320 --> 00:22:35,770 Das war hier früher 450 00:22:35,770 --> 00:22:39,340 so, wenn ich nur schauen Sie sich diese - das ist, was es früher war, sagte, es int, 451 00:22:39,340 --> 00:22:41,970 das wurde erklärt es - und so nahmen wir den Typ. 452 00:22:41,970 --> 00:22:44,710 Es gibt int, char, string, kurz, 453 00:22:44,710 --> 00:22:47,380 diejenigen Typen genannt werden. 454 00:22:47,380 --> 00:22:49,510 Also nahm den Typ 455 00:22:49,510 --> 00:22:51,580 und dann die zuvor 456 00:22:51,580 --> 00:22:54,190 er hatte nur die Single-Sign entspricht 457 00:22:54,190 --> 00:22:57,300 und was er sagte, war problematisch, darüber wurde 458 00:22:57,300 --> 00:22:59,580 wenn Sie haben 1 Gleichheitszeichen, 459 00:22:59,580 --> 00:23:01,780 das ist ein Zuweisungsoperator. 460 00:23:01,780 --> 00:23:04,930 Das ist nicht zu testen, ob oder nicht 2 Dinge gleich sind. 461 00:23:04,930 --> 00:23:07,920 Das ist eigentlich die Einstellung etwas gleich etwas. 462 00:23:07,920 --> 00:23:11,110 Wir bringen die Nummer 17 in die Variable i. 463 00:23:11,110 --> 00:23:13,850 So, diese Art von Vergleich zu tun, 464 00:23:13,850 --> 00:23:16,430 Sie haben die doppelte gleich verwenden, 465 00:23:16,430 --> 00:23:19,640 das ist eine Art seltsame Sache 466 00:23:19,640 --> 00:23:22,760 ist aber eine ziemlich häufige Fehler. 467 00:23:23,980 --> 00:23:27,830 So eine andere Sache werde ich darauf hinweisen, wenn es Ihnen nichts ausmacht, 468 00:23:27,830 --> 00:23:30,610 ist, dass in 469 00:23:30,610 --> 00:23:33,210 unsere Funktion hier in int main, 470 00:23:33,210 --> 00:23:36,740 Sie sehen, dass der Körper unserer Funktion 471 00:23:36,740 --> 00:23:39,810 wird von der linken Seite versetzt 472 00:23:39,810 --> 00:23:42,400 um 4 Leerzeichen oder einen Tabulator. 473 00:23:42,400 --> 00:23:44,730 Der Grund warum wir dies tun 474 00:23:44,730 --> 00:23:47,000 ist nur für die Lesbarkeit. 475 00:23:47,000 --> 00:23:51,620 Wie man in Sams while-Schleife hier zu sehen, 476 00:23:51,620 --> 00:23:53,120 er nicht Gedankenstrich überhaupt, 477 00:23:53,120 --> 00:23:55,390 und dass hat keinen Einfluss auf die Funktionalität des Codes. 478 00:23:55,390 --> 00:23:57,860 Es läuft genau das gleiche. 479 00:23:57,860 --> 00:24:00,950 >> So zum Beispiel, wenn wir kommen bis an die Spitze hier 480 00:24:00,950 --> 00:24:02,680 und drücken unseren Play-Taste, wird es bauen, 481 00:24:02,680 --> 00:24:04,470 es wird ausführen, 482 00:24:04,470 --> 00:24:06,700 und was wird passieren? 483 00:24:06,700 --> 00:24:08,360 Warum ist es immer noch sagen, läuft? 484 00:24:08,360 --> 00:24:10,560 >> Weil es werde immer wiederholen hallo. 485 00:24:10,560 --> 00:24:12,900 Genau, und warum ist es immer wiederholen hallo? 486 00:24:12,900 --> 00:24:15,850 >> Da die Zahl ändert sich nie, so ist es immer 17. 487 00:24:15,850 --> 00:24:18,030 Ja, genau, so 488 00:24:18,030 --> 00:24:20,970 Lassen Sie uns sehen, nach - erinnern mich an dein Name? 489 00:24:20,970 --> 00:24:24,020 Jimmy. So Jimmy sagte, dass 490 00:24:24,020 --> 00:24:27,340 Der Grund dafür wiederholt sich ständig hallo immer und immer wieder 491 00:24:27,340 --> 00:24:30,510 Denn diese Bedingung ist immer wahr. 492 00:24:30,510 --> 00:24:33,270 Wir haben nie den Wert von i. 493 00:24:33,270 --> 00:24:36,170 Wir haben nie ändern Sie die Inhalte von dem, was in dieser Variable gespeichert. 494 00:24:36,170 --> 00:24:39,180 Also an dieser Stelle haben wir diesen Fehler, dass 495 00:24:39,180 --> 00:24:42,170 Ihr Programm generiert zu viel ausgegeben, 496 00:24:42,170 --> 00:24:45,100 und wenn wir nach unten scrollen und die Art der Blick an, was hier vor sich geht, 497 00:24:45,100 --> 00:24:49,160 Sie können sehen, dass es Hallo, hallo, hallo, hallo, hallo, hallo, hallo alle der Weg durch. 498 00:24:49,160 --> 00:24:51,200 Awesome. 499 00:24:51,200 --> 00:24:53,750 >> So Art wieder auf den ursprünglichen Punkt 500 00:24:53,750 --> 00:24:57,020 dass mit der Einrückung 501 00:24:57,020 --> 00:25:00,110 im Körper der while-Schleife nicht beeinträchtigt nichts. 502 00:25:00,110 --> 00:25:03,050 Das Programm lief noch ganz gut. 503 00:25:03,050 --> 00:25:06,790 Typisch für guten Stil - 504 00:25:06,790 --> 00:25:10,210 und dies ist etwas, was wir suchen in Ihr Problem Sets - 505 00:25:10,210 --> 00:25:13,930 bitten wir Sie, Gedankenstrich dies durch 4 Leerzeichen, was Sie tun können 506 00:25:13,930 --> 00:25:16,440 durch einfaches Drücken der Tab-Taste 507 00:25:16,440 --> 00:25:18,860 oder durch manuelle Umsetzung in 4 Bereiche sich. 508 00:25:21,880 --> 00:25:25,050 Cool, okay so gehen wir zurück und schauen 509 00:25:25,050 --> 00:25:30,460 Alexander do-while. 510 00:25:30,460 --> 00:25:32,980 >> Just irgendwie mit ein wenig Mühe. 511 00:25:32,980 --> 00:25:34,390 Okay, lasst uns durch sie zu arbeiten. 512 00:25:34,390 --> 00:25:36,400 Ist das cool? 513 00:25:36,400 --> 00:25:37,430 >> Ja. 514 00:25:37,430 --> 00:25:39,200 >> Okay, so here we go. 515 00:25:39,200 --> 00:25:41,010 Dies ist der Code, dass Alexander schrieb. 516 00:25:41,010 --> 00:25:43,410 Haben Sie von Alex gehen - okay. 517 00:25:43,410 --> 00:25:46,380 Also hier ist der Code, den Alex geschrieben hat. 518 00:25:46,380 --> 00:25:50,500 Also haben wir unsere Erklärung der wichtigsten bekam hier, 519 00:25:50,500 --> 00:25:54,410 und dann haben wir diese Integer-Variable namens i 520 00:25:54,410 --> 00:25:57,320 wird hier erklärt. 521 00:25:57,320 --> 00:26:01,060 Wir haben ein do-Anweisung 522 00:26:01,060 --> 00:26:04,600 und dann der Körper wieder mit diesen Klammern, 523 00:26:04,600 --> 00:26:06,520 so ist dies der Körper des do-while - 524 00:26:06,520 --> 00:26:09,210 Lassen Sie mich in auf diesem Zoom, damit es mehr lesbar ist - 525 00:26:09,210 --> 00:26:12,730 und in den Körper, wir versuchen zu drucken "das ist der Körper", 526 00:26:12,730 --> 00:26:14,300 i + +, 527 00:26:14,300 --> 00:26:17,710 so erhöhen die Inhalte der i und tun dies 528 00:26:17,710 --> 00:26:19,470 bis i bekommt 3 sein, 529 00:26:19,470 --> 00:26:22,440 und dann unser Programm endet. 530 00:26:22,440 --> 00:26:24,680 >> Also, was passiert, wenn wir dieses Programm ausführen? 531 00:26:24,680 --> 00:26:27,580 >> Ich erwartete eine Kennung. 532 00:26:27,580 --> 00:26:32,070 Okay, so zu bauen, ausführen, tritt Fehler. 533 00:26:32,070 --> 00:26:34,820 Was passiert? 534 00:26:34,820 --> 00:26:37,060 Wir blättern hier unten, 535 00:26:37,060 --> 00:26:40,260 bekommen wir diese etwas kryptisch suchen Sache, 536 00:26:40,260 --> 00:26:43,930 erwartet Semikolon nach Top-Level-Deklaration. 537 00:26:43,930 --> 00:26:46,620 Das ist irgendwie komisch. 538 00:26:46,620 --> 00:26:50,990 Hat jemand eine Idee, was sein könnte da los? 539 00:26:53,080 --> 00:26:54,640 Irgendwie komisch, ja. 540 00:26:54,640 --> 00:26:57,640 >> [Unverständlich] außerhalb der Klammern deklariert werden? 541 00:26:57,640 --> 00:27:03,480 So funktioniert das dann nicht gelten, wenn Sie Klammern benutzen? 542 00:27:03,480 --> 00:27:07,390 So erklärte er diesen Kerl außerhalb dessen Klammern? 543 00:27:09,670 --> 00:27:12,240 Oh, diese Jungs - die geschweiften Klammern? 544 00:27:12,240 --> 00:27:13,850 >> Ja. 545 00:27:13,850 --> 00:27:15,310 Ja, genau. 546 00:27:15,310 --> 00:27:17,120 So stellt sich heraus, dass 547 00:27:17,120 --> 00:27:21,550 kann man eigentlich nicht eine Variable deklarieren hier so. 548 00:27:23,750 --> 00:27:26,690 Was Sie vielleicht versucht haben zu tun war - 549 00:27:26,690 --> 00:27:30,110 schneiden Sie es von dort - 550 00:27:30,110 --> 00:27:34,330 Sie können entweder steckte es in den geschweiften Klammern hier 551 00:27:34,330 --> 00:27:37,400 oder eine andere alternative 552 00:27:37,400 --> 00:27:40,350 ist um es vollständig außerhalb. 553 00:27:42,480 --> 00:27:46,610 Und so sind diese - je nachdem, wo Sie tatsächlich legte die Erklärung 554 00:27:46,610 --> 00:27:48,550 dieser Integer-Variable, 555 00:27:48,550 --> 00:27:53,540 Sie erhalten können 2 sehr unterschiedliche Arten von Variablen; 556 00:27:53,540 --> 00:27:55,100 wenn es außerhalb des Haupt-, 557 00:27:55,100 --> 00:27:58,240 es ist das, was wir eine globale Variable nennen. 558 00:27:58,240 --> 00:28:00,070 Es ist außerhalb des Rahmens eine der Funktionen - 559 00:28:00,070 --> 00:28:03,420 es ist nicht innerhalb einer Funktion - 560 00:28:03,420 --> 00:28:07,050 während, wenn wir es im Inneren von Haupt-, 561 00:28:07,050 --> 00:28:10,000 wie hier, dann ist es als eine lokale Variable 562 00:28:10,000 --> 00:28:13,830 weil es lokal zu dem Umfang der Haupt. 563 00:28:13,830 --> 00:28:16,720 Und wir werden ein bisschen mehr darüber reden, was die Unterschiede sind 564 00:28:16,720 --> 00:28:20,970 zwischen den 2 Typen und warum Sie verwenden verschiedene Arten von Variablen, 565 00:28:20,970 --> 00:28:23,040 aber für jetzt, 566 00:28:23,040 --> 00:28:25,070 Sie können einfach halten alle lokale Variablen, 567 00:28:25,070 --> 00:28:28,320 weil wir keinen Bedarf für globale Variablen. 568 00:28:28,320 --> 00:28:31,390 >> Okay, das ist also eine Sache recht. 569 00:28:31,390 --> 00:28:34,680 Lasst uns versuchen Sie diese wieder sehen, was passiert. 570 00:28:37,420 --> 00:28:40,270 Ausführen, erhalten einen weiteren Fehler. 571 00:28:40,270 --> 00:28:43,320 Zoom ein bisschen, was haben wir bekommen? 572 00:28:45,110 --> 00:28:50,000 Wir bekommen diese erwarten Klammern hinter / Weile zu tun. 573 00:28:53,660 --> 00:28:55,260 Irgendwelche Ideen, was ist los? Dan? 574 00:28:55,260 --> 00:28:58,880 >> Ist Weile, dann Klammern und dann - 575 00:28:58,880 --> 00:29:01,990 Ich weiß nicht, ob Sie int deklarieren müssen, 576 00:29:01,990 --> 00:29:04,980 aber das tun, während (i <3). 577 00:29:04,980 --> 00:29:06,930 Genau, ja. 578 00:29:06,930 --> 00:29:08,830 So stellt sich heraus, dass Dan genau richtig. 579 00:29:08,830 --> 00:29:11,230 Wir brauchen nicht um diese Art hier wieder aufgesetzt. 580 00:29:11,230 --> 00:29:14,440 Wir können statt zu töten den Typ 581 00:29:14,440 --> 00:29:17,220 und genau das zu tun. 582 00:29:19,270 --> 00:29:21,640 Gut. 583 00:29:21,640 --> 00:29:24,950 Ich werde wieder zu verkleinern, versuchen Sie es noch einmal. 584 00:29:26,360 --> 00:29:29,580 Schau dir das an, es läuft erfolgreich. 585 00:29:29,580 --> 00:29:33,260 Wenn wir nach unten scrollen, "das ist der Körper" 3 mal gedruckt. 586 00:29:33,260 --> 00:29:35,820 Das ist ziemlich süß. 587 00:29:35,820 --> 00:29:38,670 Gut gemacht, gut gemacht, Jungs. 588 00:29:38,670 --> 00:29:41,080 Well done. 589 00:29:41,080 --> 00:29:43,250 Wie ist das so weit gehen? 590 00:29:43,250 --> 00:29:46,200 Ordentliches Tempo? 591 00:29:46,200 --> 00:29:49,200 Okay, cool. 592 00:29:49,200 --> 00:29:52,590 >> So, wie wir irgendwie wieder auf die ursprüngliche Frage, 593 00:29:52,590 --> 00:29:55,430 wir - und jetzt, wenn wir den Unterschied sehen, 594 00:29:55,430 --> 00:29:58,240 Sie sehen, dass in dieser do-while-Schleife, 595 00:29:58,240 --> 00:30:00,030 die Bedingung kommt zuletzt. 596 00:30:00,030 --> 00:30:02,530 So wie der Computer liest das Programm 597 00:30:02,530 --> 00:30:06,050 da C-Programme sind Art in dieser Reihenfolge ausgeführt werden, 598 00:30:06,050 --> 00:30:09,450 , wo sie buchstäblich beginnen mit der ersten Zeile des Haupt-, 599 00:30:09,450 --> 00:30:13,450 und führen Sie dann Linie 6, Linie 7, Zeile 8, Zeile 9, 600 00:30:13,450 --> 00:30:16,150 Linie 10, Linie 11, 601 00:30:16,150 --> 00:30:18,440 all dieses Zeug in der oberen rechten hier 602 00:30:18,440 --> 00:30:20,020 wird einmal ausgeführt 603 00:30:20,020 --> 00:30:23,350 bevor wir überhaupt testen diesen Zustand zu sehen, 604 00:30:23,350 --> 00:30:26,240 ob i - oder den Inhalt von i, sondern - 605 00:30:26,240 --> 00:30:29,750 geringer sind als die Zahl 3 ist. 606 00:30:29,750 --> 00:30:33,300 Und nur, wenn wenn wir die Linie 12 zu erhalten, 607 00:30:33,300 --> 00:30:36,260 der Inhalt des i weniger als 3 608 00:30:36,260 --> 00:30:39,150 wissen wir eigentlich zurück zu springen bis zur Linie 7 609 00:30:39,150 --> 00:30:41,140 und wiederholen Sie den Vorgang, 610 00:30:41,140 --> 00:30:44,620 und dann testen wir den Zustand wieder und wieder und wieder. 611 00:30:44,620 --> 00:30:47,440 >> So können wir kontrastieren diese 612 00:30:47,440 --> 00:30:50,240 mit - Zoomen wieder heraus, 613 00:30:50,240 --> 00:30:56,500 unten scrollen, um Sam-Version, 614 00:30:56,500 --> 00:31:00,760 wir werden dies zu betrachten, leicht verändert, so dass es nicht mehr zu einer Endlosschleife - 615 00:31:00,760 --> 00:31:03,570 wo, wenn wir zu vergrößern, 616 00:31:03,570 --> 00:31:06,300 sehen wir, dass da dieses Programm ausführt, 617 00:31:06,300 --> 00:31:09,120 es wird zuerst deklarieren int i, 618 00:31:09,120 --> 00:31:12,030 setzen die Inhalte der i auf 0 gesetzt werden, 619 00:31:12,030 --> 00:31:15,820 und dann trifft es die Bedingung der while-Schleife ersten, 620 00:31:15,820 --> 00:31:19,210 so in diesem Fall, dieser Körper, diese printf ("Hallo") und i + + 621 00:31:19,210 --> 00:31:21,630 nicht einmal ausführen 622 00:31:21,630 --> 00:31:24,310 es sei denn, i ist eigentlich weniger als oder gleich 2 ist. 623 00:31:24,310 --> 00:31:26,750 Dann, wenn i drei ist, beispielsweise 624 00:31:26,750 --> 00:31:28,840 wenn wir dieses hier 625 00:31:28,840 --> 00:31:32,160 gleich 4 - oder ich werde 3 zu tun, weil ich 3 gesagt - 626 00:31:32,160 --> 00:31:34,890 und führen Sie es, 627 00:31:34,890 --> 00:31:38,320 es wird gebaut, es wird laufen vollkommen in Ordnung, 628 00:31:38,320 --> 00:31:40,530 aber es wird nicht wirklich nichts aus, 629 00:31:40,530 --> 00:31:43,030 weil es nicht diesen Test für den ersten Fall. 630 00:31:44,780 --> 00:31:47,530 So in der Klasse, wir irgendwie darüber, warum diese do-while-Schleifen gesprochen 631 00:31:47,530 --> 00:31:49,800 sind manchmal nützlich 632 00:31:49,800 --> 00:31:53,140 und warum wir es als eine while-Schleife entgegen. 633 00:31:53,140 --> 00:31:56,450 >> Gibt es - Habt ihr irgendwelche Vorschläge 634 00:31:56,450 --> 00:31:59,090 warum eine do-while-Schleife könnte nützlicher sein? 635 00:31:59,090 --> 00:32:02,560 >> Nun, ich denke do-while-Schleifen, wenn Sie Benutzereingaben möchten, 636 00:32:02,560 --> 00:32:05,020 denn auf diese Weise lassen Sie sie 637 00:32:05,020 --> 00:32:07,780 etwas in einmal, wenn es richtig ist, 638 00:32:07,780 --> 00:32:09,300 wir uns bewegen können auf den Rest des Programms, 639 00:32:09,300 --> 00:32:11,250 aber wenn es nicht korrekt ist, dann sind Sie auf Aufforderung des Benutzers zu halten 640 00:32:11,250 --> 00:32:13,250 bis Sie legte den rechten Eingang. 641 00:32:13,250 --> 00:32:14,260 Ja, genau - genau, 642 00:32:14,260 --> 00:32:16,840 so eine do-while-Schleife ist nützlich 643 00:32:16,840 --> 00:32:18,930 denn wenn den Benutzer zur Eingabe 644 00:32:18,930 --> 00:32:23,000 weil Sie die Eingabe des Benutzers zu erhalten, bevor Sie tatsächlich können es brauchen. 645 00:32:23,000 --> 00:32:27,330 So in pset 1, in pset 2, 646 00:32:27,330 --> 00:32:29,650 wo du für Benutzereingaben auffordert viel, 647 00:32:29,650 --> 00:32:31,200 Das ist eine praktische Sache zu verwenden 648 00:32:31,200 --> 00:32:33,740 im Gegensatz zu nur einer einfachen while-Schleife entgegen. 649 00:32:33,740 --> 00:32:36,780 Wenn Sie eine while-Schleife verwenden, können Sie das gleiche tun - 650 00:32:36,780 --> 00:32:38,750 Sie können die gleiche Sache mit einer while-Schleife zu tun 651 00:32:38,750 --> 00:32:40,580 wie Sie mit einer do-while-Schleife. 652 00:32:40,580 --> 00:32:43,380 Sie müssen nur die Art haben über diese doppelte Prozess 653 00:32:43,380 --> 00:32:47,010 wo Sie den Eingang und dann starten Sie Ihren while-Schleife. 654 00:32:47,010 --> 00:32:49,800 Während eine do-while-Schleife, Sie müssen es nur einmal schreiben 655 00:32:49,800 --> 00:32:52,430 und es ist viel sauberer. 656 00:32:52,430 --> 00:32:54,650 >> Gut. 657 00:32:55,970 --> 00:32:57,330 Haben Sie Fragen? 658 00:32:59,350 --> 00:33:01,380 Sinn? 659 00:33:01,380 --> 00:33:06,200 >> Die Rückkehr 0 - das ist nur eine Art Stall oder ist es -? 660 00:33:06,200 --> 00:33:08,960 Ja, so können wir - 661 00:33:08,960 --> 00:33:11,960 Nun, wir werden dies ein wenig mehr später behandeln 662 00:33:11,960 --> 00:33:13,290 aber es stellt sich heraus, dass 663 00:33:13,290 --> 00:33:15,720 diese Rückkehr 0, dass wir setzen 664 00:33:15,720 --> 00:33:19,090 am Ende des Haupt ganze Zeit - 665 00:33:19,090 --> 00:33:21,980 Sie können irgendwie nehmen es einfach als etwas, was wir tun, 666 00:33:21,980 --> 00:33:24,930 vorerst. 667 00:33:24,930 --> 00:33:28,860 Was wir angefangen haben, darüber zu sprechen mit Funktionen 668 00:33:28,860 --> 00:33:31,600 Art am Ende der letzten Woche und dann wieder diese Woche 669 00:33:31,600 --> 00:33:33,550 ist, dass eine Funktion 670 00:33:33,550 --> 00:33:37,680 dauert Eingänge, die diese Dinge in den Klammern sind; 671 00:33:37,680 --> 00:33:41,690 das sind 2 Eingänge, unsere Argumente oder Parameter, 672 00:33:41,690 --> 00:33:44,540 was sie auch unsere Funktion aufgerufen, 673 00:33:44,540 --> 00:33:48,510 und dann eine Funktion erzeugt ein Ausgangssignal 674 00:33:48,510 --> 00:33:51,290 was wir als einen Rückgabewert. 675 00:33:51,290 --> 00:33:56,260 Und der Rückgabewert im Fall der Haupt ist int, 676 00:33:56,260 --> 00:33:58,320 Diese integer, 677 00:33:58,320 --> 00:34:01,160 und wie Sie sagen, eine Funktion, "Hey, das ist, was die Ausgabe 678 00:34:01,160 --> 00:34:05,840 sein wird, "ist mit diesem Wort" Rückkehr ", 679 00:34:05,840 --> 00:34:07,960 dass Keyword, sondern 680 00:34:07,960 --> 00:34:11,000 und so Haupt zurückkehren 0 681 00:34:11,000 --> 00:34:13,389 oder Haupt Ausgeben 0 682 00:34:13,389 --> 00:34:15,139 in C-Programme standard 683 00:34:15,139 --> 00:34:18,110 weil wieder 0 von Haupt bedeutet, dass 684 00:34:18,110 --> 00:34:21,600 "Hey, alles mit meinem Programm just fine ausgeführt." 685 00:34:21,600 --> 00:34:24,639 Wenn wir auf etwas anderes als 0 setzen, 686 00:34:24,639 --> 00:34:27,440 wie 1, beispielsweise 687 00:34:27,440 --> 00:34:31,080 dieser auch zu sagen, wer lief dieses Programm 688 00:34:31,080 --> 00:34:33,540 dass etwas schief gelaufen ist. 689 00:34:35,739 --> 00:34:39,989 So wie wir kompliziertere mit Sachen über das Semester erhalten, 690 00:34:39,989 --> 00:34:42,670 wenn Sie sich jemals zu sagen, 691 00:34:42,670 --> 00:34:46,650 "Hoppla, Sie wissen, ging etwas mit diesem Programm falsch" 692 00:34:46,650 --> 00:34:49,409 anstatt mein Programm ab, ich möchte mitteilen, 693 00:34:49,409 --> 00:34:52,310 der Läufer von meinem Programm, dass etwas schief gelaufen ist, 694 00:34:52,310 --> 00:34:54,530 können Sie Rückgabewert 695 00:34:54,530 --> 00:34:57,230 wie wir es nennen, das ist nicht 0 ist. 696 00:35:00,180 --> 00:35:02,240 >> So werden wir decken, dass ein bisschen mehr 697 00:35:02,240 --> 00:35:05,480 wenn wir in Funktionen zu bekommen. 698 00:35:05,480 --> 00:35:09,030 Diese Art von Sinn macht? 699 00:35:09,030 --> 00:35:11,240 Okay. 700 00:35:11,240 --> 00:35:13,530 Funktionen sind so eine Art bizarre - 701 00:35:13,530 --> 00:35:17,270 Ich denke, für Menschen, die viel Mathematik Hintergrund haben, 702 00:35:17,270 --> 00:35:20,100 es kommt ein wenig leichter, 703 00:35:20,100 --> 00:35:22,540 vor allem wenn man ein bisschen mehr abstrakten mathematischen Hintergrund 704 00:35:22,540 --> 00:35:24,240 und du sprichst über Funktionen verwendet 705 00:35:24,240 --> 00:35:27,370 und alle solche Sachen. 706 00:35:28,590 --> 00:35:30,610 Aber wir werden versuchen, und decken Sie sie 707 00:35:30,610 --> 00:35:33,280 und gehen schön langsam, wie sie kommen. 708 00:35:34,730 --> 00:35:37,870 Ebenso, diese ganze int argc, 709 00:35:37,870 --> 00:35:41,090 char * argv [], 710 00:35:41,090 --> 00:35:44,960 für jetzt, können Sie auch, dass als Kesselblech. 711 00:35:46,650 --> 00:35:49,050 Wir haben damit begonnen, diejenigen ein wenig in der Vorlesung deckt 712 00:35:49,050 --> 00:35:53,060 wenn wir über Argumente, die in Programme auf der Kommandozeile bekommen weitergegeben reden, 713 00:35:53,060 --> 00:35:55,700 aber Ihr Problem Sets und Ihre Programme, 714 00:35:55,700 --> 00:35:58,760 Es ist völlig in Ordnung, nur um Leere zu schreiben und es einfach halten. 715 00:35:58,760 --> 00:36:01,490 Und was diese Leere bedeutet, dass 716 00:36:01,490 --> 00:36:04,630 "Hey, ist Haupt nicht irgendwelche Eingaben zu akzeptieren; 717 00:36:04,630 --> 00:36:07,440 dies ist nur ein Programm, das wir Gonna einfach laufen sind. 718 00:36:07,440 --> 00:36:09,320 Wir werden nicht mit einem beliebigen Zusatzinformationen 719 00:36:09,320 --> 00:36:12,420 jedes Mal, wenn wir anfangen es läuft. " 720 00:36:14,730 --> 00:36:16,600 So jetzt können Sie dies tun; 721 00:36:16,600 --> 00:36:19,710 Sie können auch noch weglassen return 0 722 00:36:19,710 --> 00:36:22,650 am Ende Ihrer Programme und sie laufen ganz gut, 723 00:36:22,650 --> 00:36:26,150 aber ich empfehle nur halten, dass in. 724 00:36:26,150 --> 00:36:28,320 In ein paar Wochen werden wir Art zu starten 725 00:36:28,320 --> 00:36:31,340 Ziehen Sie den Deckel ein wenig und besser zu verstehen 726 00:36:31,340 --> 00:36:34,380 all diese verschiedenen kleinen beweglichen Teile. 727 00:36:34,380 --> 00:36:38,160 >> Alles klar, jetzt wollen wir über unsere zweite Frage hier reden. 728 00:36:38,160 --> 00:36:43,190 Also, was bedeutet "nicht deklarierter Bezeichner" zeigen normalerweise 729 00:36:43,190 --> 00:36:46,040 wenn durch Clang ausgegeben? 730 00:36:46,040 --> 00:36:49,290 Ich denke, wir könnten das schon gesehen haben heute. 731 00:36:51,170 --> 00:36:54,370 Kann jemand eine Zusammenfassung von dem, was das bedeutet? 732 00:36:54,370 --> 00:36:57,680 Mal sehen, Kelly - eine der Kellys. 733 00:37:02,580 --> 00:37:05,300 >> So - 734 00:37:05,300 --> 00:37:07,080 Ja, was tut - 735 00:37:07,080 --> 00:37:10,140 >> Ich denke, wenn man, wie, nicht Variablen deklarieren und Sie versuchen, es zu benutzen. 736 00:37:10,140 --> 00:37:13,310 Ja, genau, genau. 737 00:37:13,310 --> 00:37:15,250 Also, wenn Sie jemals diesen Ausgang 738 00:37:15,250 --> 00:37:17,690 wenn Sie versuchen, zu kompilieren Ihr Programm, 739 00:37:17,690 --> 00:37:19,470 wie Kelly sagte, 740 00:37:19,470 --> 00:37:24,210 es bedeutet, dass Sie eine Variable, die Sie nicht erklären, hat eingesetzt, 741 00:37:24,210 --> 00:37:28,460 so, wenn ich zurück zu unserem Raum, 742 00:37:28,460 --> 00:37:31,150 und ich tue so etwas wie 743 00:37:31,150 --> 00:37:34,800 printf ( 744 00:37:34,800 --> 00:37:38,260 "Hallo% s") 745 00:37:40,070 --> 00:37:42,440 und versuchen, in diesem% s füllen 746 00:37:42,440 --> 00:37:45,640 mit einer variablen s, die ich nicht erklärt haben überall 747 00:37:45,640 --> 00:37:48,330 und ich versuche, sie auszuführen, 748 00:37:48,330 --> 00:37:51,330 Sie werden sehen, was ich unten zu bekommen an diesem rechts unten hier: 749 00:37:51,330 --> 00:37:54,010 "Schwarzarbeit Kennung 's' verwenden"; 750 00:37:54,010 --> 00:37:57,710 Das bedeutet nur, du hast nicht erklären Sie variabel. 751 00:37:57,710 --> 00:38:00,750 Dasselbe passiert, wenn 752 00:38:00,750 --> 00:38:05,240 Sie haben x und Sie versuchen und speichern 7 in Es 753 00:38:05,240 --> 00:38:08,720 und ich wollte nicht erklären, X. 754 00:38:08,720 --> 00:38:10,200 Ich bekomme die gleiche Fehlermeldung: 755 00:38:10,200 --> 00:38:13,480 "Schwarzarbeit Kennung 'x' zu benutzen". 756 00:38:16,390 --> 00:38:18,250 >> Alle Rechte, 757 00:38:18,250 --> 00:38:21,720 so die Caesar-Chiffre, nicht sehr sicher, 758 00:38:21,720 --> 00:38:24,590 Ich lasse euch sehen diesen kurzen, Art verstehen, warum 759 00:38:24,590 --> 00:38:27,590 und hoffentlich nachdem ich in dieser Woche das Problem gesetzt 760 00:38:27,590 --> 00:38:29,270 wo man tatsächlich schreibt man einen Caesar Cipher, wirst du ein wenig mehr verstehen, 761 00:38:29,270 --> 00:38:32,600 über das, was es bedeutet, ein sicheres und unsicher - 762 00:38:36,180 --> 00:38:38,960 oder nicht sicher ist, schätze ich - unsicher ist etwas anders. 763 00:38:40,560 --> 00:38:43,140 Die andere Sache war, dass wir haben diese Fragen hier 764 00:38:43,140 --> 00:38:45,470 über Funktionen 765 00:38:45,470 --> 00:38:47,330 und was für eine Funktion ist, 766 00:38:47,330 --> 00:38:52,820 und wir Art über diese kurz gesprochen, wenn wir über Rückgabewerte gesprochen; 767 00:38:52,820 --> 00:38:54,560 für jemanden, der schon zur Vorlesung, 768 00:38:54,560 --> 00:38:57,790 können Sie rekapitulieren, wer war zur Vorlesung heute? 769 00:38:57,790 --> 00:38:59,670 Gut. 770 00:39:01,210 --> 00:39:04,320 Lassen Sie uns sehen, wir haben - kann mir jemand sagen, was eine Funktion? 771 00:39:04,320 --> 00:39:06,060 Kelly? 772 00:39:07,800 --> 00:39:11,260 >> >> Grundsätzlich etwas, das man auf etwas, das in der Bibliothek, das ist geschrieben hat ziehen 773 00:39:11,260 --> 00:39:14,460 komplizierter drüben, und dann schreiben Sie einfach eine Kurzform davon, 774 00:39:14,460 --> 00:39:17,360 so wie du bist Rückbezug auf dieser Bibliothek mit 775 00:39:17,360 --> 00:39:19,650 allzu langer Code und [unverständlich]. 776 00:39:19,650 --> 00:39:22,680 Ja, genau, und dann willst du etwas hinzufügen, um das? 777 00:39:22,680 --> 00:39:27,050 >> Ja, ich denke darüber nach vergleichbar mit dem Konzept einer Formel in der Mathematik 778 00:39:27,050 --> 00:39:30,130 wo man einfach eine Formel schreiben, und dann können Sie Variablen in stecken 779 00:39:30,130 --> 00:39:32,660 und das ist, was eine Funktion ist [unverständlich]. 780 00:39:32,660 --> 00:39:35,390 >> Ja, so haben wir ein paar Antworten hier 781 00:39:35,390 --> 00:39:38,080 das sind beide sehr gut und richtig an. 782 00:39:38,080 --> 00:39:43,040 Es ist, um Code bezieht das ist in der Bibliothek irgendwo geschrieben 783 00:39:43,040 --> 00:39:45,390 das ist komplizierter 784 00:39:45,390 --> 00:39:47,130 und dann kann man nach diesem Code erstellen 785 00:39:47,130 --> 00:39:50,480 und tatsächlich nutzen es nur durch das Schreiben der kurzen Form davon - 786 00:39:50,480 --> 00:39:54,060 oder vielmehr seinen Namen - 787 00:39:54,060 --> 00:39:57,590 und dann gibt es auch in diesem Vergleich zu einer Formel in der Mathematik 788 00:39:57,590 --> 00:40:00,400 oder Physik, all solche Sachen 789 00:40:00,400 --> 00:40:02,980 wo man eine Formel 790 00:40:02,980 --> 00:40:05,690 und Sie können dann einstecken 791 00:40:05,690 --> 00:40:08,100 die Variablen dieser Formel 792 00:40:08,100 --> 00:40:11,130 dann bekommen Sie das Ergebnis der Formel 793 00:40:11,130 --> 00:40:14,580 so dass Sie darüber nachdenken, wie wie die quadratische Gleichung. 794 00:40:14,580 --> 00:40:17,690 Stellen Sie sich vor, anstatt zu lernen 795 00:40:17,690 --> 00:40:21,310 was die quadratische Formel in Mathematik Klasse, 796 00:40:21,310 --> 00:40:24,610 Sie hatte gerade einen kleinen Taschenrechner-Programm, dass es für Sie getan haben. 797 00:40:24,610 --> 00:40:28,930 Hat jemand verwendet Taschenrechner Programme in Mathematik Klassen in der High School? 798 00:40:28,930 --> 00:40:31,020 Yeah, Physikunterricht? 799 00:40:31,020 --> 00:40:34,670 Wo kann man nur sagen: "Hey, quadratische Formel. 800 00:40:34,670 --> 00:40:37,740 Dies sind die Variablen, die ich eingeben möchten. 801 00:40:37,740 --> 00:40:40,250 Jetzt geben Sie mir die Antwort. " 802 00:40:40,250 --> 00:40:42,170 Das ist eine Art von dem, was eine Funktion ist. 803 00:40:42,170 --> 00:40:44,850 Es ist ein Weg für uns, 804 00:40:44,850 --> 00:40:47,720 Art write wie ein klein wenig Unterprogramm 805 00:40:47,720 --> 00:40:51,700 innerhalb unserer größeren Programms 806 00:40:51,700 --> 00:40:55,090 und verwenden Sie es immer und immer wieder 807 00:40:55,090 --> 00:40:58,380 so dass wir nicht zu kopieren und Code, 808 00:40:58,380 --> 00:41:04,220 wir können ihm verschiedene Eingänge und unterschiedliche Ausgänge, 809 00:41:04,220 --> 00:41:07,090 es ist super handlich 810 00:41:07,090 --> 00:41:11,420 wenn Sie versuchen, verschiedene Programme zu unterschiedlichen Zeiten zu schreiben. 811 00:41:11,420 --> 00:41:14,580 >> So zum Beispiel eine Funktion, die wir verwendet haben immer und immer und immer wieder 812 00:41:14,580 --> 00:41:17,310 während des Kurses ist printf. 813 00:41:17,310 --> 00:41:19,680 Printf selbst eine Funktion 814 00:41:19,680 --> 00:41:23,360 und es stellt sich heraus, dass es eigentlich ein ziemlich lang und kompliziert, 815 00:41:23,360 --> 00:41:26,420 hässlichen, funktionieren zu schreiben. 816 00:41:26,420 --> 00:41:29,590 So einfach wie es uns scheint 817 00:41:29,590 --> 00:41:31,810 um Sachen ausgedruckt auf dem Bildschirm, 818 00:41:31,810 --> 00:41:34,820 weil wir alle gerade getan, dass am Anfang des Abschnitts heute 819 00:41:34,820 --> 00:41:36,870 es stellt sich heraus, dass es eigentlich, weißt du, 820 00:41:36,870 --> 00:41:39,900 eine gute paar hundert Zeilen Code. 821 00:41:42,030 --> 00:41:45,620 Es ist nicht etwas, dass ich jemals schreiben wollen, das ist sicher, 822 00:41:45,620 --> 00:41:47,480 aber wir bekommen es jeden Tag benutzen, das ist irgendwie cool, 823 00:41:47,480 --> 00:41:49,020 so bekommen wir es mit anderen zu teilen, 824 00:41:49,020 --> 00:41:51,790 mit verschiedenen Programmen, 825 00:41:51,790 --> 00:41:54,520 so werden wir das Tauchen in Funktionen; 826 00:41:54,520 --> 00:41:56,090 zur Zeit sind wir nicht - 827 00:41:56,090 --> 00:41:59,150 die einzige Funktion wir werden schreibst ist main. 828 00:41:59,150 --> 00:42:01,570 Haupt selbst ist ebenfalls eine Funktion, 829 00:42:01,570 --> 00:42:04,270 und Sie können sehen es bekam seinen Ausgang, 830 00:42:04,270 --> 00:42:06,610 seinen Eingängen, wie wir darüber gesprochen, 831 00:42:06,610 --> 00:42:08,930 und dann seinem Namen, ist das wichtigste. 832 00:42:08,930 --> 00:42:11,800 Main ist Art von a - ist eine spezielle Funktion gibt. 833 00:42:11,800 --> 00:42:14,800 In Ihrem C-Programm, muss es eine Hauptfunktion sein, 834 00:42:14,800 --> 00:42:17,900 und so für jetzt, haben wir Art verzichtet schriftlich 835 00:42:17,900 --> 00:42:21,400 Der Prototyp, oder die Erklärung, main. 836 00:42:21,400 --> 00:42:23,050 Wir haben das für Sie gegeben, 837 00:42:23,050 --> 00:42:25,650 und wir haben gerade waren Sie in einer Art die Lücken zu füllen. 838 00:42:25,650 --> 00:42:29,120 >> >> Also für das zweite Problem Set, brauchen wir nicht zu 839 00:42:29,120 --> 00:42:31,350 schreiben Sie es in der zweiten Funktion? 840 00:42:31,350 --> 00:42:34,200 Ich glaube nicht. 841 00:42:34,200 --> 00:42:37,600 Ich glaube, es ist alles hier. 842 00:42:37,600 --> 00:42:41,710 Yeah, so Caesar Chiffre, 843 00:42:41,710 --> 00:42:45,000 Sie müssen nicht, ist es nicht so aussehen, 844 00:42:48,740 --> 00:42:53,150 und Vigenere Sie auch nicht, 845 00:42:53,150 --> 00:42:56,400 so - und es stellt sich heraus, Sie nicht immer tatsächlich zu schreiben 846 00:42:56,400 --> 00:42:58,250 eine Funktion, nicht wahr? 847 00:42:58,250 --> 00:43:01,950 Sie rufen immer an den gesamten Code in main, 848 00:43:01,950 --> 00:43:04,500 und viele Programmierer tun. 849 00:43:04,500 --> 00:43:07,130 Wie bewegen wir uns auf, 850 00:43:07,130 --> 00:43:09,480 beginnen wir die Einführung Funktionen als eine Möglichkeit 851 00:43:09,480 --> 00:43:11,530 zum Aufräumen Code 852 00:43:11,530 --> 00:43:13,380 um es elegant, 853 00:43:13,380 --> 00:43:16,890 falls Sie Aufgaben - eine Art, wie wenn wir sprachen über Loops, 854 00:43:16,890 --> 00:43:20,400 wie manchmal gibt es Dinge, die Sie wieder und wieder und wieder tun, 855 00:43:20,400 --> 00:43:23,510 und Sie haben Art der naive Art und Weise - 856 00:43:23,510 --> 00:43:26,360 oder was wir oft die "Strohmann"-Lösung, 857 00:43:26,360 --> 00:43:29,390 ist es einfach kopieren und fügen immer und immer wieder - 858 00:43:29,390 --> 00:43:31,000 Sie können die gleiche Sache mit Funktionen zu tun, wo Sie kopieren einfach und fügen 859 00:43:31,000 --> 00:43:33,360 den gleichen Code immer und immer wieder, 860 00:43:33,360 --> 00:43:35,750 aber das bläht Code - 861 00:43:35,750 --> 00:43:38,550 es endet Ihr Code wirklich lange - 862 00:43:38,550 --> 00:43:41,550 und es wird auch ein wenig verwirrend, 863 00:43:41,550 --> 00:43:43,470 und dann bedeutet es, dass Sie nicht in der Lage sind zu mögen - 864 00:43:43,470 --> 00:43:45,250 wenn Sie jemals wollen, um diesen Code wieder verwenden in einem anderen Programm 865 00:43:45,250 --> 00:43:48,610 du bist auch stecken Kopieren und Einfügen es wieder, 866 00:43:48,610 --> 00:43:51,170 so eine der Sachen, die wir reden müssen, ist 867 00:43:51,170 --> 00:43:54,960 Art der Gestaltung und Stil Ihrer Programme, 868 00:43:54,960 --> 00:43:57,010 und so, wenn es Sinn macht, Art 869 00:43:57,010 --> 00:43:59,800 Paket etwas zusammen und steckte es als separate Funktion, 870 00:43:59,800 --> 00:44:02,080 empfehlen wir Ihnen, das zu tun, 871 00:44:02,080 --> 00:44:04,700 und das ist etwas, was wiederum 872 00:44:04,700 --> 00:44:07,790 gibt es keine feste Regel. 873 00:44:07,790 --> 00:44:11,540 Wir haben selten sagen, dass Sie eine Funktion namens dies schreibe, 874 00:44:12,870 --> 00:44:16,320 aber es ist mehr der eines dieser Dinge, die Sie gerade im Laufe der Zeit entwickeln, 875 00:44:16,320 --> 00:44:19,470 wie Sie mehr und mehr Programme zu schreiben. 876 00:44:21,940 --> 00:44:24,790 >> Noch Fragen? 877 00:44:26,340 --> 00:44:30,610 Okay, also lasst uns jetzt 878 00:44:30,610 --> 00:44:34,750 Gehen Sie zurück bis zu diesem Kerl hier, 879 00:44:34,750 --> 00:44:37,800 so bin ich immer noch in diesem Abschnitt von Fragen. 880 00:44:37,800 --> 00:44:39,900 Wir haben über all diese verschiedenen diejenigen gesprochen, 881 00:44:39,900 --> 00:44:42,050 Was ist eine Funktion, warum Funktionen zu schreiben, 882 00:44:42,050 --> 00:44:44,700 wenn man nur kopieren und einfügen? 883 00:44:44,700 --> 00:44:47,700 Hoffentlich haben wir Sie überzeugt, dass Schreiben von Funktionen ist eine gute Sache. 884 00:44:47,700 --> 00:44:50,870 So, jetzt machen wir weiter auf diese MySpace-Programm, 885 00:44:50,870 --> 00:44:53,080 und wir verbringen ein wenig Zeit, dies zu tun. 886 00:44:54,600 --> 00:44:56,480 >> Also, lasst uns sehen, 887 00:44:56,480 --> 00:45:00,230 kann ich jemand lesen für mich? 888 00:45:02,640 --> 00:45:04,660 Lassen Sie uns Mikhaila - lesen Sie, das für uns? 889 00:45:07,660 --> 00:45:08,890 >> Du meinst zurück, wenn MySpace - 890 00:45:08,890 --> 00:45:10,920 Damals, als MySpace war cool. 891 00:45:10,920 --> 00:45:12,070 >> "Damals, als MySpace war cool, 892 00:45:12,070 --> 00:45:14,900 es war die ganze Wut wie diese Art. 893 00:45:14,900 --> 00:45:17,320 Vielleicht ist es noch? Ich bin mir nicht wirklich sicher. 894 00:45:17,320 --> 00:45:19,990 In jedem Fall ist die Verwendung CS50 Haushaltsmaschine, 895 00:45:19,990 --> 00:45:22,600 CS50 Run oder CS50 Spaces, 896 00:45:22,600 --> 00:45:25,370 Schreiben Sie ein Programm, das den Benutzer nach einer Nachricht aufgefordert, 897 00:45:25,370 --> 00:45:29,350 und gibt dann die Nachricht mit seinem ersten Buchstaben groß geschrieben, 898 00:45:29,350 --> 00:45:31,800 mit allen anderen Buchstaben in abwechselnder Fall 899 00:45:31,800 --> 00:45:34,010 nach der Probe-Ausgang unten 900 00:45:34,010 --> 00:45:37,060 wobei fettgedruckte Text stellt einige Benutzereingaben. 901 00:45:37,060 --> 00:45:39,800 Der Einfachheit halber können Sie davon ausgehen, dass der Benutzer 902 00:45:39,800 --> 00:45:42,810 wird nur der Eingang Kleinbuchstaben und Leerzeichen. 903 00:45:42,810 --> 00:45:45,900 Betrachten Sie dieses Problem eine Gelegenheit zu üben; 904 00:45:45,900 --> 00:45:48,640 Sie werden nicht aufgefordert, dieses Programm zu unterbreiten. " 905 00:45:48,640 --> 00:45:51,640 >> Super, danke. 906 00:45:51,640 --> 00:45:54,750 So Mikhaila sagte 907 00:45:54,750 --> 00:45:58,850 werden wir ein Programm, das Ihren Code myspaces schreiben. 908 00:45:58,850 --> 00:46:02,230 So hat jeder von euch nutzen MySpace? 909 00:46:02,230 --> 00:46:04,100 Jeder von euch haben MySpace-Accounts? 910 00:46:04,100 --> 00:46:05,920 Oh, yeah, yeah! 911 00:46:05,920 --> 00:46:08,300 Es war ziemlich cool. 912 00:46:08,300 --> 00:46:09,950 [Gelächter] 913 00:46:09,950 --> 00:46:12,060 Ich weiß. 914 00:46:12,060 --> 00:46:14,500 Dating mich. 915 00:46:15,490 --> 00:46:18,300 Also, was wir versuchen zu tun, ist ein Programm schreiben 916 00:46:18,300 --> 00:46:21,110 das geht durch 917 00:46:21,110 --> 00:46:24,490 und wandelt den ersten Buchstaben 918 00:46:24,490 --> 00:46:27,140 und dann jeden Buchstaben danach - 919 00:46:27,140 --> 00:46:29,350 oder jeden anderen Buchstaben danach tut mir leid. 920 00:46:29,350 --> 00:46:32,910 >> So - und Sie können in diesem Beispiel sehen, 921 00:46:32,910 --> 00:46:35,260 Dies ist, wie wir das Programm ausführen, 922 00:46:35,260 --> 00:46:38,780 und so ist dies nur zu sagen: "Wir laufen ein Programm namens a.out. 923 00:46:41,490 --> 00:46:44,630 Der Eingang, dass wir darauf, es werde 924 00:46:44,630 --> 00:46:47,090 wird gefragt. 925 00:46:47,090 --> 00:46:51,150 Wir werden nicht liefern die Eingabe auf der Kommandozeile. " 926 00:46:51,150 --> 00:46:54,100 Wenn Sie schon nach all den Vorträgen 927 00:46:54,100 --> 00:46:56,710 und Hören über Kommandozeilenargumente, 928 00:46:57,810 --> 00:47:00,080 das ist eine Art, wo diejenigen - die Funky-Syntax 929 00:47:00,080 --> 00:47:04,530 an Haupt kommt mit dem int argc, all das Zeug, 930 00:47:04,530 --> 00:47:07,630 so hier sind wir nicht mit, dass, wir sind nicht mit nichts davon. 931 00:47:09,400 --> 00:47:12,650 Wir sind nur gonna diese typisierte in sich durch den Benutzer, 932 00:47:12,650 --> 00:47:15,700 und dann diese zweite Linie mit dem funky Marktkapitalisierung 933 00:47:15,700 --> 00:47:18,550 ist das, was wir unser Programm ausgeben wollen. 934 00:47:19,790 --> 00:47:22,860 >> So anstatt die Appliance oder Run, verwenden wir Spaces, 935 00:47:22,860 --> 00:47:25,360 weil wir haben Räume, 936 00:47:25,360 --> 00:47:28,640 und so, wenn ihr Jungs würden 937 00:47:28,640 --> 00:47:32,380 Sie Ihren Code in etwa so aussehen, 938 00:47:32,380 --> 00:47:35,930 so werde ich diese Revision zu retten 939 00:47:35,930 --> 00:47:38,390 nur so haben Sie die Kesselblech hier 940 00:47:38,390 --> 00:47:42,840 so aussieht, int main (void), nichts drin. 941 00:47:44,480 --> 00:47:48,460 Eigentlich ist das, was wir tun, wir müssen einfach alles löschen alle zusammen. 942 00:47:48,460 --> 00:47:50,330 Wir wollen ein unbeschriebenes Blatt, 943 00:47:50,330 --> 00:47:52,470 weil wir nicht gonna start Schreiben von Code; 944 00:47:52,470 --> 00:47:55,380 sondern wir werden versuchen, schriftlich einige Pseudocode 945 00:47:55,380 --> 00:47:58,580 was eigentlich nur bedeutet, dass wir gehen, um etwas, das nicht Code schreiben 946 00:47:58,580 --> 00:48:01,010 diese Art von beschreibt, was wir tun wollen, 947 00:48:01,010 --> 00:48:05,180 irgendwie wie David tat am ersten Tag der Veranstaltung, 948 00:48:05,180 --> 00:48:08,310 oder ich denke, das war der zweite Tag der Veranstaltung, wenn er die ganze Socken demo tat. 949 00:48:08,310 --> 00:48:10,990 You guys daran erinnern, dass - sehen die Socken? 950 00:48:10,990 --> 00:48:13,300 Joseph war dort oben Art der Eingabe in Englisch? 951 00:48:13,300 --> 00:48:16,300 So wir werden das gleiche tun. 952 00:48:16,300 --> 00:48:18,380 >> Schriftlich Also, wenn ich anfangen Pseudocode 953 00:48:18,380 --> 00:48:22,640 Ich mag zu suchen, was der Eingang sein wird starten. 954 00:48:22,640 --> 00:48:24,950 Und ich gebe mir eine Probe Fall 955 00:48:24,950 --> 00:48:28,780 so wie "thanks for the add!" 956 00:48:35,030 --> 00:48:38,010 Und dann habe ich auch schreiben, was ich der Ausgang sein wollen, 957 00:48:38,010 --> 00:48:42,210 die in diesem Fall so etwas wie dieses. 958 00:48:53,790 --> 00:48:56,050 Und diese Art von gibt mir ein gutes, wie, Startplatz zu denken, 959 00:48:56,050 --> 00:48:59,730 "Okay, ich möchte der Linie 1 umsteigen 960 00:48:59,730 --> 00:49:03,560 und ich möchte es in Zeile 2 zu verwandeln " 961 00:49:03,560 --> 00:49:06,570 und diese Art von Hilfen führen mein Denken. 962 00:49:06,570 --> 00:49:09,990 Dies ist ein guter Ort, um zu starten. 963 00:49:09,990 --> 00:49:12,190 Ein anderer Weg, um darüber nachzudenken, auch, wie wir uns auf irgendwie zu bewegen 964 00:49:12,190 --> 00:49:15,020 und wie Sie dies tun in eigene Programme ist es, 965 00:49:15,020 --> 00:49:18,530 denken ein bisschen wie, was sind die Grenzfälle zu diesem? 966 00:49:18,530 --> 00:49:20,740 Was sind Art der seltsamen Szenarien? 967 00:49:20,740 --> 00:49:23,660 Was sind die seltsamen Eingänge dass wir vielleicht bekommen? 968 00:49:23,660 --> 00:49:26,550 Und was soll diese Ausgänge aussehen? 969 00:49:26,550 --> 00:49:29,670 Zum Beispiel können ein schräg Eingangs 970 00:49:29,670 --> 00:49:33,200 Dies würde sein, 971 00:49:33,200 --> 00:49:35,630 Erstellen absolut nichts, 972 00:49:35,630 --> 00:49:37,840 wie das, was sollten wir in diesem Fall ausgeben? 973 00:49:37,840 --> 00:49:40,530 Etwas, was wir wollen, zu denken, zu. 974 00:49:40,530 --> 00:49:44,450 >> So wie die Frage, 975 00:49:44,450 --> 00:49:46,870 Was könnten wir ausgeben wollen? 976 00:49:46,870 --> 00:49:50,740 Wenn wir nicht bekommen, jede Eingabe überhaupt, was sollte unser Programm sein ausgibt? 977 00:49:53,740 --> 00:49:54,860 >> Nichts. 978 00:49:54,860 --> 00:49:57,340 Nichts? Klingt gut. 979 00:49:57,340 --> 00:49:59,280 So wollen wir sicherstellen, dass wir nicht schriftlich etwas aus 980 00:49:59,280 --> 00:50:01,500 wenn wir nichts bekommen in. 981 00:50:01,500 --> 00:50:04,320 Cool. Okay. 982 00:50:04,320 --> 00:50:07,370 So 983 00:50:07,370 --> 00:50:09,380 Ich werde auf ein paar Leute nennen, wie wir durchlaufen 984 00:50:09,380 --> 00:50:12,790 und nur herausfinden Art wie das, was die allgemeine Algorithmus ist 985 00:50:12,790 --> 00:50:15,250 und wir Art arbeiten durch diese zusammen. 986 00:50:16,240 --> 00:50:19,710 >> Also, lasst uns sehen. Missy. 987 00:50:19,710 --> 00:50:21,220 Wie denken Sie, würden wir anfangen? 988 00:50:21,220 --> 00:50:24,830 Was wäre ein guter Ort, um hier zu starten 989 00:50:24,830 --> 00:50:27,900 wenn wir transformieren möchten, sagen wir, Linie 1 990 00:50:27,900 --> 00:50:29,440 in Zeile 2? 991 00:50:29,440 --> 00:50:32,650 Können Sie Art, nur um mir zu erklären, in Englisch, was du denkst? 992 00:50:32,650 --> 00:50:34,770 Noch nicht einmal über Code kümmern. 993 00:50:34,770 --> 00:50:38,250 >> Das erste, was ich tun würde, würde sein 994 00:50:38,250 --> 00:50:41,170 Art der direkten Anwender, ihnen zu sagen, was Sie wollen. 995 00:50:41,170 --> 00:50:44,730 Okay, so, sagen wir, 996 00:50:44,730 --> 00:50:47,450 "Hey, Benutzer. Ich möchte 997 00:50:47,450 --> 00:50:50,560 a string "- awesome. 998 00:50:50,560 --> 00:50:52,990 Also lasst uns notieren. 999 00:50:52,990 --> 00:50:56,140 Den Benutzer zur Eingabe einer Zeichenfolge. 1000 00:50:56,140 --> 00:50:59,270 Das klingt nach einem guten Start. 1001 00:51:03,920 --> 00:51:06,460 Gut. 1002 00:51:06,460 --> 00:51:09,750 Fragen wir Kelly Ren dieser Zeit. 1003 00:51:09,750 --> 00:51:11,580 Was würden wir dann wollen als nächstes tun? 1004 00:51:11,580 --> 00:51:14,220 Was ist in der Art unserer nächsten -? 1005 00:51:14,220 --> 00:51:18,080 >> Sammeln ihre Ein-und speichern Sie es als eine Variable. 1006 00:51:18,080 --> 00:51:20,470 Great. 1007 00:51:20,470 --> 00:51:24,280 So sammeln die Zeichenfolge 1008 00:51:25,450 --> 00:51:27,880 speichern Sie es in einer Variablen. 1009 00:51:34,840 --> 00:51:36,460 So ist es etwas Besonderes, wollen wir hier tun? 1010 00:51:36,460 --> 00:51:39,700 Wollen wir ihren Input zu überprüfen 1011 00:51:39,700 --> 00:51:42,260 vor -? 1012 00:51:42,260 --> 00:51:43,790 >> Ja. 1013 00:51:43,790 --> 00:51:46,330 Was könnten wir überprüfen möchten? 1014 00:51:46,330 --> 00:51:48,980 >> Nun, Sie sagten, dass wir nicht zu prüfen, ob es eine Zahl ist, nicht wahr? 1015 00:51:48,980 --> 00:51:52,400 Weil es gehe davon aus, dass es kleingeschrieben ist? 1016 00:51:52,400 --> 00:51:55,650 Yeah. 1017 00:51:56,380 --> 00:51:58,920 >> So stellt sich heraus, dass - yeah. 1018 00:51:58,920 --> 00:52:01,850 So getString garantiert uns zurückzusenden einen String zurück. 1019 00:52:01,850 --> 00:52:05,050 Es wird nicht eine Nummer zu uns oder so etwas zurück. 1020 00:52:05,050 --> 00:52:09,140 Es könnte stellige Zeichen in diesem String, though. 1021 00:52:09,140 --> 00:52:13,460 Und diejenigen, können wir ignorieren, wie wir die Kapitalisierung tat. 1022 00:52:13,460 --> 00:52:16,620 Aber ein leerer String ist vollkommen in Ordnung, 1023 00:52:16,620 --> 00:52:19,900 so Falle hier auf Zeile 4 und 5, 1024 00:52:19,900 --> 00:52:22,020 rechts, wo es keine Eingabe, 1025 00:52:22,020 --> 00:52:25,190 und wir haben nichts als unsere Leistung setzen. 1026 00:52:25,190 --> 00:52:28,730 Wir müssen nicht darum, sicherzustellen, dass es etwas in der Zeichenfolge Sorgen 1027 00:52:28,730 --> 00:52:31,840 oder dass der String mindestens 4 Zeichen lang sein; 1028 00:52:31,840 --> 00:52:34,190 alles ist in Ordnung. 1029 00:52:34,190 --> 00:52:38,270 Das ist also im Gegensatz zum Beispiel, mit wie die Pfennige Programme, die Sie geschrieben haben 1030 00:52:38,270 --> 00:52:42,340 wo Sie mussten sicherstellen, dass Sie bekamen nicht-negative Zahlen; 1031 00:52:42,340 --> 00:52:46,430 Sie mussten sicherstellen, dass Sie waren immer die korrekte Anzahl der Tage in einem Monat. 1032 00:52:46,430 --> 00:52:49,630 Und wie macht ihr das? 1033 00:52:49,630 --> 00:52:51,470 Wie würden Sie tun, diesen Test? 1034 00:52:51,470 --> 00:52:54,090 Was hatte das verlangen, dass Sie zu benutzen? 1035 00:52:54,090 --> 00:52:55,650 >> Do-while-Schleifen. 1036 00:52:55,650 --> 00:53:00,840 Do-while-Schleifen, andere Arten von Schleifen auch, yeah. 1037 00:53:02,190 --> 00:53:04,520 So stellt sich heraus haben wir nicht, um eine Schleife in diesem Fall, 1038 00:53:04,520 --> 00:53:07,360 wenn wir nach einer Zeichenkette auffordert, ist das ganz nett. 1039 00:53:08,280 --> 00:53:10,620 >> Alles klar, Sie fortfahren. 1040 00:53:12,410 --> 00:53:14,270 So, Stella. 1041 00:53:14,270 --> 00:53:17,530 Kannst du uns ein wenig über das, was wir als nächstes tun sollten? 1042 00:53:17,530 --> 00:53:20,270 So jetzt haben wir den String, wir haben es in einer Variablen gespeichert; 1043 00:53:20,270 --> 00:53:23,360 was wir brauchen, um mit der Zeichenfolge zu tun? 1044 00:53:26,790 --> 00:53:33,530 >> Wir müssen - 1045 00:53:33,530 --> 00:53:36,550 Identifizierung des 2 - 1046 00:53:36,550 --> 00:53:39,290 Ja, nur sagen, dass es in Englisch, das ist genial. 1047 00:53:39,290 --> 00:53:42,670 >> Identifizieren Sie die [unverständlich] Hauptstädten - oder Großbuchstaben. 1048 00:53:44,420 --> 00:53:48,130 Yeah, so dass Sie erkennen, welche diejenigen Groß-und Kleinschreibung sind würde. 1049 00:53:50,020 --> 00:53:54,180 Wir können nicht Groß-oder Kleinbuchstaben, bis wir which ones identifiziert haben. 1050 00:54:03,790 --> 00:54:06,350 Also werden wir, dass hier setzen. 1051 00:54:06,350 --> 00:54:10,210 >> Also, nur darüber nachzudenken, diesen Prozess, 1052 00:54:10,210 --> 00:54:13,200 wie machen wir diese Identifikation? 1053 00:54:13,200 --> 00:54:15,050 Weißt du, Dan? 1054 00:54:15,050 --> 00:54:18,120 Art, was wir - was Tool müssten wir verwenden aus unserem Werkzeugkasten? 1055 00:54:18,120 --> 00:54:22,500 >> Ich würde es in irgendwie wie ein Array oder jeder Zeile 1056 00:54:22,500 --> 00:54:24,240 ist eine eigene kleine Box, 1057 00:54:24,240 --> 00:54:27,240 und dann Großbuchstaben es von dort oder nicht. 1058 00:54:27,240 --> 00:54:30,440 Okay, so ein Werkzeug, das wir verwenden können, ist ein Array. 1059 00:54:30,440 --> 00:54:33,760 Was haben wir bei in der Zeichenfolge suchen, 1060 00:54:33,760 --> 00:54:36,680 obwohl, um herauszufinden, - wir hatten an den Zeichen erscheinen. 1061 00:54:36,680 --> 00:54:40,890 >> Also hast du an der Länge des Strings aussehen? 1062 00:54:40,890 --> 00:54:43,880 Yeah, so dass ein Teil, das ist immer die Länge des Strings. 1063 00:54:50,450 --> 00:54:54,150 Nur aus Neugier, was wir verwenden, um die Länge eines Strings zu bekommen? 1064 00:54:54,150 --> 00:54:58,080 >> Strlen? 1065 00:54:58,080 --> 00:55:02,870 Yeah, strlen, wir nennen das "strlen" 1066 00:55:04,180 --> 00:55:08,620 All diese String-Funktionen, so strlen ist eine Funktion, 1067 00:55:08,620 --> 00:55:10,670 und es ist super praktisch, weil wir es können nur sagen, 1068 00:55:10,670 --> 00:55:13,430 Hey, strlen: Hier ist ein String ist, sag mir, wie lang es ist. 1069 00:55:13,430 --> 00:55:17,350 In dem Vortrag heute, sprach David eine Menge darüber, wie strlen umgesetzt wird, 1070 00:55:17,350 --> 00:55:20,370 , was eigentlich los ist hinter den Kulissen. 1071 00:55:20,370 --> 00:55:25,450 Aber dies ist einer der ganz super handlich diejenigen. 1072 00:55:25,450 --> 00:55:29,170 Wieder gibt es andere, die auch in der Zeichenfolge Bibliothek, 1073 00:55:29,170 --> 00:55:34,690 wie strcmp, die "strcmp" geschrieben wird, 1074 00:55:34,690 --> 00:55:38,010 die verwendet wird, um Zeichenfolgen miteinander zu vergleichen. 1075 00:55:41,220 --> 00:55:45,020 Andere, die Sie sich wie strstr verwenden, 1076 00:55:45,020 --> 00:55:48,770 was gut für die Suche Sub-Strings und so weiter. 1077 00:55:48,770 --> 00:55:53,380 Zum größten Teil, sie alle mit str beginnen und dann gehen auf etwas anderes zu sein. 1078 00:55:53,380 --> 00:55:57,080 Der Grund warum sie eigentlich gar nicht buchstabieren sie wie String und so weiter 1079 00:55:57,080 --> 00:56:00,260 Denn wie zurück in den frühen Tagen des C, 1080 00:56:00,260 --> 00:56:04,100 wenn die Leute waren zuerst schriftlich und all das, 1081 00:56:04,100 --> 00:56:07,580 sie hatten Einschränkungen bei der Anzahl der Zeichen, die Sie verwenden 1082 00:56:07,580 --> 00:56:09,950 für die Funktion Namen und Variablennamen, 1083 00:56:09,950 --> 00:56:12,620 so ist alles wie Super kondensiert. 1084 00:56:12,620 --> 00:56:15,750 Aber wenn Sie etwas sehen, was mit str beginnt, 1085 00:56:15,750 --> 00:56:18,600 das bedeutet in der Regel, das hat etwas mit einer Schnur zu tun. 1086 00:56:20,990 --> 00:56:23,350 >> Okay, so mußt du die Länge der Zeichenkette zu erhalten, 1087 00:56:23,350 --> 00:56:27,110 und dann, was machen wir mit den Charakteren zu tun? 1088 00:56:27,110 --> 00:56:29,020 Weißt du, Sam? 1089 00:56:29,020 --> 00:56:32,410 >> Ich habe keine Ahnung, ich habe versucht, es herauszufinden. 1090 00:56:32,410 --> 00:56:35,410 Ich weiß wirklich nicht, - ich wünschte, es gäbe eine Möglichkeit, um - 1091 00:56:35,410 --> 00:56:38,990 Ich meine, ich würde vielleicht denken, wir könnten etwas mit der Quote zu tun und gleicht, 1092 00:56:38,990 --> 00:56:40,860 aber ich kenne keine Funktion wie das wissen. 1093 00:56:40,860 --> 00:56:42,240 Yeah. 1094 00:56:43,160 --> 00:56:45,200 >> Aber das - würde es nicht unbedingt arbeiten, 1095 00:56:45,200 --> 00:56:48,690 denn dann würdest du die Räume zu sein - 1096 00:56:48,690 --> 00:56:51,130 Sie müssten den Platz haben, um Tipps, wie zu bekommen - 1097 00:56:51,130 --> 00:56:54,310 Okay. 1098 00:56:54,310 --> 00:56:56,490 >> Ich weiß nicht - ich bin Art an dieser Stelle verloren. 1099 00:56:56,490 --> 00:56:58,120 Ja - nein, nein, nein, das sind gute Punkte. 1100 00:56:58,120 --> 00:57:00,420 Also, was wir tun müssen, ist, wie Sam sagte, 1101 00:57:00,420 --> 00:57:02,970 wir brauchen, um zu verfolgen, welche Buchstaben die ungeraden Buchstaben sind, 1102 00:57:02,970 --> 00:57:05,540 und welche sind die sogar Briefe. 1103 00:57:06,650 --> 00:57:09,090 Aber wir wollen sicherstellen, dass wir nicht nur nach 1104 00:57:09,090 --> 00:57:12,110 an der geraden und ungeraden 1105 00:57:12,110 --> 00:57:14,030 Indizes in der Zeichenfolge, 1106 00:57:14,030 --> 00:57:17,660 sondern Betrachten der ungeraden und geraden Buchstaben in der Zeichenfolge, 1107 00:57:17,660 --> 00:57:20,190 also müssen wir irgendwie haben diese Unterscheidung zwischen 1108 00:57:20,190 --> 00:57:25,190 Briefe - wie, was ist eigentlich A, B, C, D, oder so auf, 1109 00:57:25,190 --> 00:57:29,090 und was sind die Dinge nicht Buchstaben, sondern noch in unserem String. 1110 00:57:29,090 --> 00:57:32,390 Zum Beispiel hier, wie dieses Ausrufezeichen ist kein Brief, 1111 00:57:32,390 --> 00:57:36,060 aber es ist immer noch Teil unseres string; es ist noch ein char. 1112 00:57:36,060 --> 00:57:38,820 Ebenso sind alle diese Bereiche - 1113 00:57:38,820 --> 00:57:41,710 Es macht keinen Sinn, einen Raum zu nutzen, nicht wahr? 1114 00:57:41,710 --> 00:57:46,160 So wollen wir sicherstellen, dass wir irgendwie überspringen diejenigen, 1115 00:57:46,160 --> 00:57:49,410 während noch Tracking Quoten und gleicht. 1116 00:57:50,900 --> 00:57:54,990 >> So Art in unser Programm Toolbox 1117 00:57:54,990 --> 00:57:57,270 so weit, wenn man so will, 1118 00:57:57,270 --> 00:58:01,310 Wir haben eine Reihe von verschiedenen Tools, die wir gesprochen haben. 1119 00:58:01,310 --> 00:58:04,640 So ein, zum Beispiel, sind Variablen, 1120 00:58:04,640 --> 00:58:07,120 wie wir hier die Rede. 1121 00:58:07,120 --> 00:58:10,730 Ein weiteres Werkzeug, über die wir gesprochen haben, sind Funktionen. 1122 00:58:10,730 --> 00:58:15,800 So haben wir über Variablen in unserem Pseudocode hier gesprochen 1123 00:58:15,800 --> 00:58:19,760 wie das, was werden wir nutzen, um unsere Zeichenfolge zu speichern. 1124 00:58:19,760 --> 00:58:24,630 Wir haben über Funktionen geredet, um die Länge eines Strings zu bekommen, wie strlen. 1125 00:58:28,510 --> 00:58:31,170 Wir haben über etwas anderes gesprochen, und wir haben darüber gesprochen 1126 00:58:31,170 --> 00:58:34,850 für viele bereits in Abschnitt heute: Schleifen. 1127 00:58:39,390 --> 00:58:42,030 >> Was denkt ihr über die Verwendung einer Schleife in diesem Programm? 1128 00:58:42,030 --> 00:58:44,110 Jared, was denkst du? 1129 00:58:47,150 --> 00:58:50,030 Würden wir eine Schleife in diesem Programm? 1130 00:58:50,030 --> 00:58:52,500 >> Wahrscheinlich nicht, nein, weil Sie nicht haben, um durch sie mehr als einmal. 1131 00:58:52,500 --> 00:58:55,260 Okay, Sie müssen nicht durch, was mehr als einmal? 1132 00:58:55,260 --> 00:58:57,190 >> Die gesamte Zeichenfolge. 1133 00:58:57,190 --> 00:59:00,660 Richtig, so dass Sie nicht haben, um durch die Zeichenfolge gesamten sofort gehen. 1134 00:59:00,660 --> 00:59:03,330 Leider das machte überhaupt keinen Sinn! 1135 00:59:03,330 --> 00:59:06,360 Sie müssen nicht den gesamten String mehr als einmal zu gehen. 1136 00:59:06,360 --> 00:59:08,660 Okay. 1137 00:59:09,790 --> 00:59:11,920 Was denken Sie? 1138 00:59:11,920 --> 00:59:14,110 >> Ich denke, dass es besser ist, sie zu benutzen 1139 00:59:14,110 --> 00:59:16,640 so können wir wie Kapital zu tun, während 1140 00:59:16,640 --> 00:59:19,750 die Lage ist es [unverständlich] Nummer. 1141 00:59:19,750 --> 00:59:22,940 Groß, und so nutzen, was? 1142 00:59:22,940 --> 00:59:25,200 Okay, so dass wir sagen, dass 1143 00:59:25,200 --> 00:59:28,130 sollten wir eine Schleife verwenden, weil wir es wollen 1144 00:59:28,130 --> 00:59:32,550 Großschreibung eines Buchstabens, während es nicht eine Nummer. 1145 00:59:35,130 --> 00:59:37,140 So - sorry, hatte die Sie hinzufügen möchten? 1146 00:59:37,140 --> 00:59:39,340 >> Ich wollte sagen, dass die Art und Weise Sie die Zeichenfolge behandeln 1147 00:59:39,340 --> 00:59:42,290 und es [unverständlich] trennen die [unverständlich] auf die Charaktere? 1148 00:59:42,290 --> 00:59:43,710 Yeah. 1149 00:59:43,710 --> 00:59:45,850 >> Und dann können wir die Zahlen zuordnen - 1150 00:59:45,850 --> 00:59:47,780 oder am Standort der Buchstaben in der Zeichenfolge basierend? 1151 00:59:47,780 --> 00:59:49,720 Yeah. 1152 00:59:49,720 --> 00:59:53,640 >> Und erkennen, ob es eine gerade oder ungerade ist und die Buchstaben selbst nutzen 1153 00:59:53,640 --> 00:59:57,750 während die Lage des Briefes ist [unverständlich] - sorry. 1154 00:59:57,750 --> 01:00:00,150 Great. 1155 01:00:00,150 --> 01:00:03,430 >> Also nur ein Rückblick. 1156 01:00:03,430 --> 01:00:05,840 Können Sie erinnern mich an deinen Namen wieder - es tut mir leid. 1157 01:00:05,840 --> 01:00:06,900 >> Charlotte. 1158 01:00:06,900 --> 01:00:08,490 Charlotte, okay. 1159 01:00:08,490 --> 01:00:11,130 Also, was Charlotte sagt, 1160 01:00:11,130 --> 01:00:14,950 das ist völlig richtig - gosh, Gedankenstrich likes this auf Auto auf mich - 1161 01:00:14,950 --> 01:00:17,770 ist, dass wenn wir uns in einem String 1162 01:00:17,770 --> 01:00:19,160 wie dieser an der Spitze - 1163 01:00:19,160 --> 01:00:21,590 "Thanks for the add" - 1164 01:00:21,590 --> 01:00:24,790 als eine Folge von Zeichen 1165 01:00:24,790 --> 01:00:29,010 wo das ist auf Position 0, 1166 01:00:29,010 --> 01:00:32,260 die h ist auf Position 1. 1167 01:00:32,260 --> 01:00:36,880 A ist 2, dann haben wir 3, 4, 5; 1168 01:00:36,880 --> 01:00:40,830 der Raum ist an der Position 6. 1169 01:00:42,380 --> 01:00:45,300 Während - was ist die Position der f? 1170 01:00:45,300 --> 01:00:47,610 7! 1171 01:00:47,610 --> 01:00:49,300 O? 8. 1172 01:00:49,300 --> 01:00:52,070 R? 9. 1173 01:00:52,070 --> 01:00:54,340 Und dann haben wir 10, und dann kann ich nicht wirklich schreiben, ohne dass es 1174 01:00:54,340 --> 01:00:57,430 irgendwie immer chaotisch auf dem Bildschirm. 1175 01:00:57,430 --> 01:01:02,340 Aber das ist eigentlich wie wir über Strings im Speicher sprechen. 1176 01:01:02,340 --> 01:01:04,660 Ist es ein String 1177 01:01:04,660 --> 01:01:07,920 ist eine Folge von Zeichen, 1178 01:01:07,920 --> 01:01:12,430 und wenn wir auf ein einzelnes Zeichen in einem String, 1179 01:01:12,430 --> 01:01:15,280 Wir tun dies oft mit dem Hinweis auf dieses Charakters Position 1180 01:01:15,280 --> 01:01:17,620 innerhalb des Strings, 1181 01:01:17,620 --> 01:01:19,910 wahrscheinlich die gleiche Weise, dass wir darüber reden September 1182 01:01:19,910 --> 01:01:22,870 ist der neunte Monat des Jahres 1183 01:01:22,870 --> 01:01:27,730 oder Montag ist der erste Tag der Woche. 1184 01:01:29,280 --> 01:01:33,070 Also das gibt uns eine Möglichkeit, 1185 01:01:33,070 --> 01:01:37,030 herauszufinden, welche ungeraden gegenüber sind sogar 1186 01:01:37,030 --> 01:01:39,540 weil Sie hier sehen können, 1187 01:01:39,540 --> 01:01:43,640 Wenn wir vergleichen sie mit diesem T, 1188 01:01:46,310 --> 01:01:49,360 Sie können sehen, dass alle der aktivierten diejenigen 1189 01:01:49,360 --> 01:01:53,040 sind auch Positionen, 1190 01:01:53,040 --> 01:01:55,880 mindestens für das erste Wort, 1191 01:01:55,880 --> 01:01:59,080 und dann die Dinge zu bekommen Rabatt, wenn wir diesen Raum getroffen geworfen, 1192 01:01:59,080 --> 01:02:02,460 weil wir zählen nicht diesen Raum als Brief, 1193 01:02:02,460 --> 01:02:05,150 so ist es, als ob wir begonnen 1194 01:02:05,150 --> 01:02:08,930 und ging 0, 1, 2, 3, 4, 5, 1195 01:02:08,930 --> 01:02:12,600 Raum, 6, 7, 8, Raum, 1196 01:02:12,600 --> 01:02:16,440 9, und dann 10, 11, 12 und so weiter. 1197 01:02:19,300 --> 01:02:22,910 >> Cool, so dass wir auf jeden Fall wollen, irgendeine Art von Schleife 1198 01:02:22,910 --> 01:02:27,760 gehen über jedes der Zeichen in der Reihe. 1199 01:02:31,330 --> 01:02:34,580 Also an dieser Stelle, 1200 01:02:36,490 --> 01:02:38,360 wir kommen zurück zu unserem alten Pseudocode hier. 1201 01:02:40,970 --> 01:02:42,650 Als Teil dieser Identifikation which ones 1202 01:02:42,650 --> 01:02:45,350 sind Großbuchstaben und welche sind Kleinbuchstaben 1203 01:02:45,350 --> 01:02:48,340 wir wollen dies in einer Art Schleife. 1204 01:02:51,080 --> 01:02:53,390 Loop, Doppelpunkt. 1205 01:02:55,070 --> 01:03:01,220 Welche Art von Schleife, aus den Arten von Schleifen, die wir haben, 1206 01:03:01,220 --> 01:03:03,670 scheint ein gutes zu in diesem Fall sein? 1207 01:03:03,670 --> 01:03:05,610 >> Ich dachte die for-Schleife. 1208 01:03:05,610 --> 01:03:07,500 Und warum denken Sie for-Schleife? 1209 01:03:07,500 --> 01:03:10,000 >> Weil es beginnt bei Null, und dann 1210 01:03:10,000 --> 01:03:13,000 wenn wir die Länge der Zeichenfolge zu erreichen, 1211 01:03:13,000 --> 01:03:16,170 und dann jede Iteration kann man [unverständlich] auch? 1212 01:03:16,170 --> 01:03:18,260 Ja, genau. 1213 01:03:18,260 --> 01:03:21,490 Also, aus den verschiedenen Möglichkeiten von Schleifen, 1214 01:03:21,490 --> 01:03:25,350 haben wir für Schleifen, while und do-while-Schleifen. 1215 01:03:25,350 --> 01:03:28,550 Wo eine for-Schleife ist besonders nützlich 1216 01:03:28,550 --> 01:03:32,120 ist, wenn Sie wissen wollen, 1217 01:03:32,120 --> 01:03:34,940 Art, wo du bist bei in der Schleife 1218 01:03:34,940 --> 01:03:38,520 wie oft die Schleife bisher ausgeführt. 1219 01:03:38,520 --> 01:03:42,490 Das ist genau das, was wir in dieser Situation wissen wollen, 1220 01:03:42,490 --> 01:03:44,640 wie Kelly sagte, 1221 01:03:44,640 --> 01:03:47,400 Aus der früheren Kommentar Charlotte aus, dass wir die Position wissen wollen 1222 01:03:47,400 --> 01:03:49,900 der Zeichen innerhalb der Zeichenfolge, 1223 01:03:49,900 --> 01:03:51,750 und die for-Schleife wird uns nur, dass 1224 01:03:51,750 --> 01:03:54,680 denn wenn wir beginnen Art Rückblick auf unseren String, 1225 01:03:54,680 --> 01:03:57,140 Wenn wir beginnen unsere for-Schleife bei 0, 1226 01:03:57,140 --> 01:04:00,350 und wir gehen durch die Länge des gesamten Strings, 1227 01:04:00,350 --> 01:04:04,740 dann können wir assoziieren die Buchstaben T 1228 01:04:04,740 --> 01:04:08,110 mit der 0 in unserem for-Schleife, 1229 01:04:09,950 --> 01:04:13,080 Buchstabe H mit der 1 in unserer for-Schleife, und so weiter, 1230 01:04:13,080 --> 01:04:16,600 den ganzen Weg durch das Ende der Saite. 1231 01:04:18,810 --> 01:04:21,890 >> Lassen Sie uns also mit dem Programmieren beginnen diese nur ein wenig 1232 01:04:21,890 --> 01:04:24,930 nur damit du Jungs bekommen ein Gefühl für das, was es aussieht. 1233 01:04:24,930 --> 01:04:27,980 Ich werde diese zu retten, 1234 01:04:27,980 --> 01:04:31,230 so haben wir unsere Pseudo-Code hier, 1235 01:04:33,490 --> 01:04:38,120 und ich werde alles löschen. 1236 01:04:38,120 --> 01:04:42,210 Also habe ich ein unbeschriebenes Blatt. 1237 01:04:42,210 --> 01:04:45,910 Ich werde durch das Schreiben int main (void) starten 1238 01:04:45,910 --> 01:04:48,440 { 1239 01:04:48,440 --> 01:04:51,380 Ich werde die Rückkehr 0 in gesetzt 1240 01:04:51,380 --> 01:04:53,320 und dann das}. 1241 01:04:53,320 --> 01:04:56,130 Also in der Regel, wenn ich starten, ist das, was ich mit zu beginnen. 1242 01:04:56,130 --> 01:04:59,370 Ich rette ihn so, dass ihr Jungs es haben. 1243 01:05:06,290 --> 01:05:08,440 So eines der ersten Dinge, die wir gesprochen haben, war 1244 01:05:08,440 --> 01:05:10,920 immer Eingabe vom Benutzer 1245 01:05:10,920 --> 01:05:13,740 und Speichern derselben in einer Zeichenkette. 1246 01:05:13,740 --> 01:05:16,420 Wie bekommen wir Eingabe von einem Benutzer? 1247 01:05:16,420 --> 01:05:19,640 >> GetString. 1248 01:05:19,640 --> 01:05:21,870 GetString, alles in Ordnung. 1249 01:05:23,150 --> 01:05:26,820 Also, wenn ich geben GetString () 1250 01:05:26,820 --> 01:05:32,150 und einem Semikolon. 1251 01:05:32,150 --> 01:05:36,630 Lasst uns versuchen Sie dies, wird diese Sicht in erster Linie? 1252 01:05:36,630 --> 01:05:38,430 Und warum wird das nicht laufen? 1253 01:05:38,430 --> 01:05:40,090 >> Du musst die Variable deklarieren. 1254 01:05:40,090 --> 01:05:43,040 Ich habe eine Variable zu deklarieren. Okay. 1255 01:05:43,040 --> 01:05:45,700 >> Also, wie kann ich das tun? 1256 01:05:45,700 --> 01:05:48,400 Haben Sie etwas dagegen, etwas zu schreiben, teilen sie? 1257 01:05:48,400 --> 01:05:51,270 Und dann können wir nach oben ziehen. 1258 01:05:51,270 --> 01:05:54,630 Mal sehen, Dan, rechts, okay. 1259 01:05:54,630 --> 01:05:59,100 Oder Daniel. Kopieren Sie, dass in, string input = GetString (). 1260 01:05:59,100 --> 01:06:01,340 Awesome. 1261 01:06:01,340 --> 01:06:02,890 Wird diese ausgeführt werden? 1262 01:06:02,890 --> 01:06:05,210 Lass es uns versuchen. 1263 01:06:05,210 --> 01:06:08,890 Hit run kopieren, Quellcode, Gebäude, ist ein Fehler aufgetreten. 1264 01:06:08,890 --> 01:06:11,040 Okay. 1265 01:06:11,040 --> 01:06:14,950 Also was ist denn hier los? 1266 01:06:14,950 --> 01:06:18,700 Verwendung von nicht deklarierter Bezeichner 'string'. 1267 01:06:18,700 --> 01:06:22,840 >> Wir müssen die Bibliotheken enthalten? 1268 01:06:22,840 --> 01:06:25,130 Yeah, so Dan zu sagen, wir müssen die Bibliotheken enthalten. 1269 01:06:25,130 --> 01:06:28,270 Ist das, was Sie sagen wollten, Stella? Awesome. 1270 01:06:29,450 --> 01:06:31,430 Das ist genial, so Stella, können Sie 1271 01:06:31,430 --> 01:06:34,800 kopieren Sie diesen Code von Daniel Space? 1272 01:06:34,800 --> 01:06:37,580 Wenn Sie auf Daniel Roland Ki, kopieren, 1273 01:06:37,580 --> 01:06:41,360 und dann werden Sie setzen die Include-Zeile ein, und speichern Sie es dann aus? 1274 01:06:46,580 --> 01:06:49,360 Lassen Sie mich wissen, wenn du fertig bist. 1275 01:06:57,160 --> 01:06:59,490 Also das include Syntax ist auch eine Art von funky; 1276 01:06:59,490 --> 01:07:02,210 es ist wie dieser Hash-Tag, 1277 01:07:02,210 --> 01:07:05,760 Und es gibt die zählen, und dann gibt es diese spitzen Klammern. 1278 01:07:12,490 --> 01:07:15,360 Erinnerst du dich, wie das funktioniert, oder soll ich es auf diesem Code hier richtig? 1279 01:07:15,360 --> 01:07:17,850 >> Ich bin gut. 1280 01:07:17,850 --> 01:07:19,810 Okay. 1281 01:07:19,810 --> 01:07:23,260 >> Ich druckte es - ich war mir nicht sicher, welche Bibliothek, though. 1282 01:07:23,260 --> 01:07:25,570 Oh, okay - yeah, so ist es der CS50-Bibliothek. 1283 01:07:25,570 --> 01:07:27,660 >> Oh, habe ich stdio Bibliothek. 1284 01:07:27,660 --> 01:07:30,950 >> Oh, habe es - ja, nein, that's - 1285 01:07:30,950 --> 01:07:34,380 so stellt sich heraus, dass die String ist eigentlich etwas, das einer besonderen CS50 ist. 1286 01:07:36,590 --> 01:07:41,240 Es ist eigentlich kein echter Typ string 1287 01:07:41,240 --> 01:07:45,000 denn gerade hier ist String in der Art Position, - 1288 01:07:45,000 --> 01:07:49,140 wir erklären eine Variable namens Eingabe vom Typ String - 1289 01:07:49,140 --> 01:07:53,320 und wir sind im Inneren des Eingangs setzen 1290 01:07:53,320 --> 01:07:58,440 der Wert, der an uns zurückgegeben wird: Der Ausgang dieser GetString Funktion aufzurufen. 1291 01:07:58,440 --> 01:08:02,910 Man kann sagen, dies ist ein Aufruf der Funktion, weil es hat die Klammern, wie printf tut, 1292 01:08:02,910 --> 01:08:05,920 wie strlen tut. 1293 01:08:05,920 --> 01:08:09,860 Aber String ist eigentlich kein echter Typ 1294 01:08:09,860 --> 01:08:11,760 in der C-Sprache. 1295 01:08:11,760 --> 01:08:15,710 Wir haben es zu einer Art gemacht, und wir werden über mehr, was es eigentlich ist zu nehmen 1296 01:08:15,710 --> 01:08:19,000 in C, weil es eine Möglichkeit, mit Saiten zu arbeiten; 1297 01:08:19,000 --> 01:08:22,479 wir haben nur etwas zu machen, nur ein bisschen schöner gemacht. 1298 01:08:22,479 --> 01:08:25,240 >> So here we go. 1299 01:08:25,240 --> 01:08:28,439 Hier ist Stella-Code. 1300 01:08:28,439 --> 01:08:32,470 Es hat die # include . 1301 01:08:32,470 --> 01:08:36,390 Andere Menschen werden dies wie ein Hash nennen sind manchmal oder eine scharfe gehören. 1302 01:08:36,390 --> 01:08:39,580 Jetzt können wir starten, führen Sie es, 1303 01:08:39,580 --> 01:08:43,649 und wir immer noch eine Fehlermeldung. 1304 01:08:43,649 --> 01:08:46,290 Mal sehen, was passiert. 1305 01:08:48,069 --> 01:08:50,569 "Unbenutzte Variablen 'Eingang'." 1306 01:08:50,569 --> 01:08:53,350 Okay, das ist so, dass cool, das ist cool. 1307 01:08:53,350 --> 01:08:55,859 Ich meine, es ist nicht wirklich cool, 1308 01:08:55,859 --> 01:08:57,930 weil wir immer einen Fehler und es läuft nicht, 1309 01:08:57,930 --> 01:09:00,410 aber was dieser sagt, ist, dass 1310 01:09:00,410 --> 01:09:03,130 wir haben unsere Variable verwendet, was Sinn macht. 1311 01:09:03,130 --> 01:09:06,090 Wir haben nicht versucht, etwas zu tun. 1312 01:09:07,819 --> 01:09:10,490 Dies ist eine Möglichkeit, dass 1313 01:09:10,490 --> 01:09:14,170 Clang versucht uns zu helfen, um sicherzustellen, dass wir nicht nur die Verwendung von Variablen 1314 01:09:14,170 --> 01:09:18,819 und dann versehentlich nannte sie etwas anderes später im Code, 1315 01:09:18,819 --> 01:09:21,649 hilft uns, Fehler zu vermeiden auf diese Weise. 1316 01:09:23,130 --> 01:09:28,810 >> Alles klar, also haben wir Input von Benutzer, 1317 01:09:28,810 --> 01:09:31,910 Wir lagerte sie in einer Variablen. 1318 01:09:31,910 --> 01:09:34,569 Der nächste Schritt war, dann 1319 01:09:34,569 --> 01:09:37,609 beginnen, alle Zeichen in der Zeichenkette 1320 01:09:37,609 --> 01:09:41,830 und Identifizieren welche sind die Großbuchstaben 1321 01:09:41,830 --> 01:09:44,600 und welche sind in Kleinbuchstaben geschrieben sein. 1322 01:09:44,600 --> 01:09:49,439 Und wie Kelly und Charlotte aufgewachsen, 1323 01:09:49,439 --> 01:09:52,340 Wir tun dies mit einer for-Schleife. 1324 01:09:52,340 --> 01:09:55,520 So hat jemand erinnern die Syntax einer for-Schleife 1325 01:09:55,520 --> 01:09:58,670 und möchte einen Stich an nur schriftlich zu nehmen 1326 01:09:58,670 --> 01:10:03,170 die erste Zeile der for-Schleife, nur die für Bit? 1327 01:10:05,740 --> 01:10:07,330 Kelly, du willst, es zu versuchen? 1328 01:10:07,330 --> 01:10:10,300 >> Ja, so haben Sie zu initialisieren erste, 1329 01:10:10,300 --> 01:10:13,170 so habe ich i = 0, 1330 01:10:13,170 --> 01:10:15,390 und dann habe ich i 01:10:18,570 Ist es in Ihrem Space - kann ich nach oben ziehen? 1332 01:10:18,570 --> 01:10:21,330 >> Ja, schraubte ich ein bisschen, aber ja. 1333 01:10:21,330 --> 01:10:24,180 >> Okay, lass uns nach oben ziehen. 1334 01:10:24,180 --> 01:10:26,490 Awesome. 1335 01:10:26,490 --> 01:10:29,510 >> Aber dann wusste ich nicht, wenn Sie das hatte - 1336 01:10:29,510 --> 01:10:32,180 Ja, okay. 1337 01:10:33,020 --> 01:10:36,030 Also hier ist was Kelly hat: Lasst uns an sie schnell zu suchen. 1338 01:10:36,030 --> 01:10:40,290 So hat sie den CS50-Bibliothek an der Spitze enthalten. 1339 01:10:40,290 --> 01:10:44,790 Sie ist die Standard-IO-Bibliothek an der Spitze enthalten, 1340 01:10:45,550 --> 01:10:48,990 und die Standard-IO verfügt über Funktionen wie printf, 1341 01:10:48,990 --> 01:10:51,690 Wenn Sie also schon immer einmal printf verwenden, müssen Sie diese Zeile. 1342 01:10:53,060 --> 01:10:56,140 Und dann waren die String-Bibliothek, 1343 01:10:56,140 --> 01:10:58,200 die wir brauchen, 1344 01:10:58,200 --> 01:11:01,010 da der String-Bibliothek hat strlen-Funktion, 1345 01:11:01,010 --> 01:11:04,320 die wir in nur ein bisschen zu bekommen. 1346 01:11:04,320 --> 01:11:07,560 Also, wenn wir schauen, was Kelly getan hier 1347 01:11:07,560 --> 01:11:10,260 Können Sie uns durch das, was du getan hast? 1348 01:11:10,260 --> 01:11:13,600 >> Ja, so - ich meine, ich habe Fehler, so - 1349 01:11:13,600 --> 01:11:15,380 Ja, nein, es ist - 1350 01:11:15,380 --> 01:11:18,580 >> Also wollte ich den String, dass ich nur "string" bekam nennen. 1351 01:11:18,580 --> 01:11:22,230 Ich wollte zu drucken die Zeichenfolge 1352 01:11:22,230 --> 01:11:25,640 und dann habe ich - 1353 01:11:27,450 --> 01:11:30,930 Ich wollte gerne die Zeichenfolge als wie ein Array der einzelnen Zeichen 1354 01:11:30,930 --> 01:11:33,170 Anderssein [unverständlich], richtig? 1355 01:11:33,170 --> 01:11:38,080 Und dann wollte ich an der Position 0 beginnen 1356 01:11:38,080 --> 01:11:40,630 und dann alle 2 Räume, 1357 01:11:40,630 --> 01:11:42,580 Ich wollte zu nutzen, 1358 01:11:42,580 --> 01:11:45,680 so dass ich nur beschrieb sie als 23, denn ich war auf der ASCII-Tabelle suchen. 1359 01:11:45,680 --> 01:11:48,730 Also das ist, was ich dachte - ich weiß, es ist nicht richtig. 1360 01:11:48,730 --> 01:11:50,920 >> Got it, so ist dies ein guter Start. 1361 01:11:50,920 --> 01:11:54,120 Ich denke, ein großer Teil der Rahmen ist hier statt. 1362 01:11:54,120 --> 01:11:57,500 Lassen Sie uns über Art Zeile für Zeile gehen und sehen, was los ist. 1363 01:11:57,500 --> 01:12:01,040 So der Weg Ich mag, dies zu tun ist nur durch Kompilieren des Codes starten 1364 01:12:01,040 --> 01:12:04,300 und Vermietung der Compiler mir sagen wie, was ist mit meinem Code falsch, 1365 01:12:04,300 --> 01:12:07,450 weil der Compiler ist wirklich gut sagen, was ist falsch mit Ihrem Code. 1366 01:12:09,790 --> 01:12:12,780 Also, wenn wir es spielen, bauen, und es nicht zu bauen. 1367 01:12:12,780 --> 01:12:14,860 Er sagt, es war ein Fehler, 1368 01:12:14,860 --> 01:12:17,320 Wenn wir also nach unten scrollen und schauen Sie sich den ersten Fehler, 1369 01:12:17,320 --> 01:12:20,960 es sagte - 1370 01:12:20,960 --> 01:12:22,040 Wir blättern zurück bis an die Spitze, 1371 01:12:22,040 --> 01:12:26,070 können wir sehen, gibt es 5 Fehler hier unten an der Unterseite erzeugt. 1372 01:12:26,070 --> 01:12:30,180 Hoppla, das ist wirklich abgeschnitten. 1373 01:12:31,810 --> 01:12:35,790 Ich denke, das ist einfach nicht zu einem besser. 1374 01:12:36,970 --> 01:12:38,500 >> Here we go. 1375 01:12:39,790 --> 01:12:42,530 So gibt es insgesamt 5 Fehler erzeugt. 1376 01:12:42,530 --> 01:12:45,140 Hier kann ich nur die ersten 2, 1377 01:12:45,140 --> 01:12:49,100 so kann ich dies bis ein wenig zu bewegen und dann Art Scroll up. 1378 01:12:49,100 --> 01:12:53,220 Dies ist der Befehl, der ausgeführt wird, um den Code zu kompilieren wurde, 1379 01:12:53,220 --> 01:12:59,030 und dann der erste Fehler war file.c hier: 1380 01:12:59,030 --> 01:13:03,300 "Identifizieren oder '(' erwartet", und es war auf dieser Strecke 1381 01:13:03,300 --> 01:13:06,680 , wo wir gesagt string = GetString (). 1382 01:13:07,660 --> 01:13:12,920 Sie können gleich hier, dass es on line 8 von file.c war zu sehen, 1383 01:13:12,920 --> 01:13:17,230 und dann habe ich glaube, dies ist Zeichen 12 - das ist der Fehler. 1384 01:13:17,230 --> 01:13:20,390 Also, was ist los on line 8 falsch - Kelly? 1385 01:13:20,390 --> 01:13:22,810 >> Sie müssen nur es nennen, wie ein Brief oder so etwas, 1386 01:13:22,810 --> 01:13:24,400 wie string s oder so etwas? 1387 01:13:24,400 --> 01:13:28,250 Ja, so stellt sich heraus, dass diese besondere Art Namen, 1388 01:13:28,250 --> 01:13:31,770 so string, int, char, short, 1389 01:13:31,770 --> 01:13:35,740 sie sind alle spezielle Schlüsselwörter, 1390 01:13:35,740 --> 01:13:38,940 und man kann nicht wirklich nutzen sie als Namen Ihrer Variablen, 1391 01:13:38,940 --> 01:13:41,430 weil der Compiler sieht das und sagt, 1392 01:13:41,430 --> 01:13:43,680 "Oh, ich weiß, das ist eine Art" 1393 01:13:43,680 --> 01:13:46,530 so kann man nicht wirklich eine String-Variable namens string, 1394 01:13:46,530 --> 01:13:50,800 wie ich versuche zu tun, das wird nicht funktionieren. 1395 01:13:52,610 --> 01:13:58,250 Aber anstatt, können wir nennen es so etwas wie s oder st oder str. 1396 01:13:58,250 --> 01:14:01,540 Wir könnten auch nicht nennen int. 1397 01:14:01,540 --> 01:14:03,740 Wir können nicht einen String namens int. 1398 01:14:03,740 --> 01:14:06,740 Wir können nicht einen String namens char; keiner von denen funktioniert. 1399 01:14:06,740 --> 01:14:09,420 >> Also werden wir nennen es einfach s zur Zeit. 1400 01:14:10,630 --> 01:14:13,170 Awesome. 1401 01:14:13,170 --> 01:14:17,500 Also, was als nächstes passiert in dieser Linie? 1402 01:14:21,390 --> 01:14:24,350 String - diese Zeile sieht ziemlich gut aus? 1403 01:14:24,350 --> 01:14:27,830 Versuchen wir es noch einmal zu versuchen, lass uns starten Sie es. 1404 01:14:27,830 --> 01:14:30,360 Okay, so dass wir immer noch Fehler. 1405 01:14:30,360 --> 01:14:32,080 Dieses Mal sind wir bis zu 4 Fehler. 1406 01:14:32,080 --> 01:14:34,350 Also haben wir eine von ihnen. 1407 01:14:34,350 --> 01:14:36,130 Lasst uns nach oben bewegen. 1408 01:14:36,130 --> 01:14:38,890 "Unexpected type name 'string': Ausdruck erwartet", ja? 1409 01:14:38,890 --> 01:14:41,780 >> Ja, das ist, weil ich den String nennen versucht ist. 1410 01:14:41,780 --> 01:14:44,270 Ja, so sieht es aus, wie wir haben nun auch die fix gehen 1411 01:14:44,270 --> 01:14:46,560 alle diese Verweise zu bespannen. 1412 01:14:46,560 --> 01:14:50,070 Sie sehen, es ist ein Verweis auf String hier ein hier ein hier 1413 01:14:50,070 --> 01:14:53,440 so können wir alle diese an s bewegen. 1414 01:14:56,040 --> 01:15:00,930 Great. Okay, führen Sie es erneut. 1415 01:15:00,930 --> 01:15:03,260 Building - ein anderer Fehler aufgetreten ist. 1416 01:15:03,260 --> 01:15:06,900 >> Okay, jetzt sind wir auf einen Fehler, 1417 01:15:06,900 --> 01:15:11,090 so int i = s und dann die eckigen Klammern. 1418 01:15:11,090 --> 01:15:14,880 So können Sie uns ein wenig über, was Sie hier tun, Kelly? 1419 01:15:14,880 --> 01:15:17,120 >> Ja. 1420 01:15:17,120 --> 01:15:19,410 Es war on line 10. 1421 01:15:19,410 --> 01:15:22,760 >> Ich weiß nicht, ob wir das alles benötigt, 1422 01:15:22,760 --> 01:15:25,560 aber ich denke, ich habe versucht, - 1423 01:15:25,560 --> 01:15:27,580 Ich rette es so können Sie zusammen. 1424 01:15:27,580 --> 01:15:30,470 >> Ich glaube, ich war 1425 01:15:30,470 --> 01:15:33,150 versuchen, es zu sagen, dass an der Position 0 beginnen 1426 01:15:33,150 --> 01:15:35,030 am Anfang meiner for-Schleife, 1427 01:15:35,030 --> 01:15:38,370 so dass ich denke, vielleicht, dass zu sagen unnötig war. 1428 01:15:39,690 --> 01:15:41,350 Also nur zur Erinnerung, 1429 01:15:41,350 --> 01:15:44,850 Sie sagten, dass diese - Sie versuchen, dies an der Position 0 beginnen 1430 01:15:44,850 --> 01:15:47,030 und sie erhalten - yeah, 1431 01:15:47,030 --> 01:15:50,460 also denke ich früher auch, wenn Sie den Code gingen, 1432 01:15:50,460 --> 01:15:54,070 Sie sprachen darüber, wie man wollte, um die Zeichenfolge als Array behandeln reden 1433 01:15:54,070 --> 01:15:57,440 so können wir jedes Zeichen einzeln zugreifen. 1434 01:15:57,440 --> 01:16:00,660 Ich denke, Dan genannten Arrays auch versuchen, Strings in Arrays umwandeln. 1435 01:16:01,400 --> 01:16:03,300 >> Es stellt sich heraus, dass die Art der unter der Haube, 1436 01:16:03,300 --> 01:16:06,060 ein String tatsächlich als Array gespeichert schon 1437 01:16:06,060 --> 01:16:08,060 und Sie können es wie ein Array zuzugreifen; 1438 01:16:08,060 --> 01:16:12,390 es gibt keine Konvertierung, die Sie zu tun haben. 1439 01:16:12,390 --> 01:16:15,770 Ein String isn't - so - 1440 01:16:15,770 --> 01:16:18,200 ein String ist nicht wirklich ein Array, 1441 01:16:18,200 --> 01:16:21,940 aber man kann sie als solche zugreifen, da alle Zeichen gespeichert werden 1442 01:16:21,940 --> 01:16:25,160 eine rechte nebeneinander im Speicher, 1443 01:16:25,160 --> 01:16:28,310 wenn Sie so wollen, um das erste Zeichen des Strings bekommen, 1444 01:16:28,310 --> 01:16:31,910 es ist die gleiche wie immer die erste Zahl in einem Integer-Array. 1445 01:16:31,910 --> 01:16:35,010 So wir oft - wir werden 1446 01:16:35,010 --> 01:16:36,360 beziehen sich auf die 2 wie 1447 01:16:36,360 --> 01:16:38,590 oh, als ein String ist, als ein Array, 1448 01:16:38,590 --> 01:16:40,830 obwohl es wirklich - sie sind sehr verschiedene Dinge, 1449 01:16:40,830 --> 01:16:43,410 Sie können sie jedoch sehr ähnlich zu behandeln. 1450 01:16:44,700 --> 01:16:47,400 So stellt sich heraus, dass diese Linie tatsächlich - 1451 01:16:47,400 --> 01:16:51,270 brauchen wir nicht, um jegliche Konvertierung zu tun, 1452 01:16:51,270 --> 01:16:53,500 und tatsächlich 1453 01:16:53,500 --> 01:16:56,790 Diese ist eigentlich nicht ein gültiger Ausdruck, 1454 01:16:56,790 --> 01:16:59,040 das ist, was unsere Compiler sagt uns. 1455 01:16:59,040 --> 01:17:01,290 Es sagt: "Hey, es ist ein Ausdruck erwartet, 1456 01:17:01,290 --> 01:17:04,610 und was ich hier habe ist etwas, das nicht ein Ausdruck. " 1457 01:17:04,610 --> 01:17:07,310 Um ein Array deklarieren, 1458 01:17:07,310 --> 01:17:11,780 alles, was Sie tun müssen, ist so etwas wie dieses mit einem Semikolon, 1459 01:17:11,780 --> 01:17:15,080 und dann erzählst du das Array, wie lange Sie es haben wollen, 1460 01:17:15,080 --> 01:17:18,370 wie 5, so dass diese Linie 10 1461 01:17:18,370 --> 01:17:23,880 wird ein Array namens i mit 5 Zahlen in ihm zu erklären. 1462 01:17:23,880 --> 01:17:26,540 >> Dies ist ein zur Seite, das ist nicht notwendig für den Code, 1463 01:17:26,540 --> 01:17:30,970 aber das ist - das ist eine Art, was die Erklärung aussieht. 1464 01:17:30,970 --> 01:17:35,310 >> Wie würden Sie nicht char i [strlen (s)]? 1465 01:17:35,310 --> 01:17:38,500 Char i [strlen (s)]? 1466 01:17:38,500 --> 01:17:41,500 >> Char i, und dann im Inneren der Halterung, strlen (n). 1467 01:17:43,900 --> 01:17:47,710 Ja, und so konnten wir - 1468 01:17:47,710 --> 01:17:49,460 konnten wir dies tun, 1469 01:17:49,460 --> 01:17:52,160 und dies würde erklären - was tun? 1470 01:17:52,160 --> 01:17:55,900 >> Ich denke, es wäre ein Array deklarieren 1471 01:17:55,900 --> 01:18:01,780 der, wie - of - 1472 01:18:01,780 --> 01:18:04,540 oh, Sie brauchen nicht die i - oh, 1473 01:18:04,540 --> 01:18:06,420 yeah, Sie definitiv nicht brauchen das i. 1474 01:18:06,420 --> 01:18:10,250 Man deklariert ein Array von Zeichen 1475 01:18:10,250 --> 01:18:13,150 der Länge s. 1476 01:18:14,680 --> 01:18:16,770 Und so was Sam sagt, ist, dass 1477 01:18:16,770 --> 01:18:20,660 diese Linie 10 - lassen Sie mich etwas Platz zwischen ihm und dem Rest, damit wir sie isolieren kann - 1478 01:18:20,660 --> 01:18:23,440 Diese Zeile 10 würde ein Array deklarieren 1479 01:18:23,440 --> 01:18:28,520 von Zeichen, strlen (s) im Wert von ihnen, 1480 01:18:28,520 --> 01:18:32,270 aber wir eigentlich brauchen die i, 1481 01:18:32,270 --> 01:18:35,710 und der Grund müssen wir das i ist, weil wir dem Array einen Namen brauchen; 1482 01:18:35,710 --> 01:18:38,900 sonst hätten wir nicht einen Weg, um das Array später beziehen im Code. 1483 01:18:38,900 --> 01:18:41,180 >> Also das hier ist die Array-Namen 1484 01:18:41,180 --> 01:18:43,420 und im Inneren ist die Länge. 1485 01:18:43,420 --> 01:18:45,010 Dies gibt uns ein Array, 1486 01:18:45,010 --> 01:18:47,430 aber dies ist - auch dies ist eine Erklärung. 1487 01:18:47,430 --> 01:18:50,380 Es ist nicht eine Aufgabe, es ist nicht eine Initialisierung. 1488 01:18:50,380 --> 01:18:52,330 Wenn wir erklären, dieses Array wie diese, 1489 01:18:52,330 --> 01:18:54,490 es gibt tatsächlich nichts in den Inhalt des Arrays. 1490 01:18:54,490 --> 01:18:57,490 Es ist nur Junk - was ist da drin. 1491 01:18:57,490 --> 01:18:59,780 Und wie gesagt, 1492 01:18:59,780 --> 01:19:01,340 wir eigentlich gar nicht brauchen, um diese Umwandlung zu tun, 1493 01:19:01,340 --> 01:19:04,810 weil wir schon zu behandeln string s als ein Array. 1494 01:19:06,750 --> 01:19:09,170 Ich weiß, wir laufen ein bisschen lange auf Zeit 1495 01:19:09,170 --> 01:19:12,330 aber ich will nur wirklich schnell, dies zu for-Schleife 1496 01:19:12,330 --> 01:19:14,850 und zeigen Ihnen, wie die einzelnen Zeichen im Array zuzugreifen, 1497 01:19:14,850 --> 01:19:17,170 denn das Schlüssel für unser Auftrag ist. 1498 01:19:17,170 --> 01:19:20,790 Und dann lassen wir euch von dort aus gehen. 1499 01:19:20,790 --> 01:19:24,610 >> Also hier, wir haben eine for-Schleife 1500 01:19:24,610 --> 01:19:28,310 das sieht fast gut. 1501 01:19:28,310 --> 01:19:30,960 Was ist nicht ganz bald da? 1502 01:19:30,960 --> 01:19:33,240 Soundso - was nicht ganz richtig über diese for-Schleife? 1503 01:19:33,240 --> 01:19:36,010 >> Keine geschweiften Klammern? 1504 01:19:36,010 --> 01:19:38,420 Keine geschweiften Klammern, zum Beispiel. 1505 01:19:38,420 --> 01:19:42,580 Wanna sicherstellen, dass wir den Körper der Schleife mit geschweiften Klammern haben. 1506 01:19:42,580 --> 01:19:45,240 Oops, nicht das Quadrat brace! 1507 01:19:45,240 --> 01:19:48,660 Und was ist die nächste Sache, die wir brauchen, um mit dieser Schleife zu tun? 1508 01:19:48,660 --> 01:19:52,640 Wenn ich versuche, und führen Sie es, 1509 01:19:52,640 --> 01:19:56,740 was ist dieser Fehler, dass ich bekommen? 1510 01:19:56,740 --> 01:20:00,990 Ich bekomme alle diese Fehler - ich muss i initialisieren. 1511 01:20:00,990 --> 01:20:03,610 Great. 1512 01:20:03,610 --> 01:20:05,770 So wird dies eine Schleife sein - das ist nicht ganz da, 1513 01:20:05,770 --> 01:20:08,680 aber es ist immer ganz nah. 1514 01:20:08,680 --> 01:20:11,260 Dieser Code können wir jetzt laufen, 1515 01:20:11,260 --> 01:20:14,620 bauen, ein Fehler immer noch auftritt. 1516 01:20:17,960 --> 01:20:19,800 Warum ist es immer noch beklagen, 1517 01:20:19,800 --> 01:20:22,030 sagen Sie den Ausdruck nicht verwendet wird, 1518 01:20:22,030 --> 01:20:24,600 und das ist, weil diese Zeile nichts tut. 1519 01:20:24,600 --> 01:20:27,620 Wir haben nicht speichern es überall, wir nicht speichern Sie das Ergebnis. 1520 01:20:27,620 --> 01:20:30,210 Wo sollen wir gespart werden dieses Ergebnis? 1521 01:20:30,210 --> 01:20:32,920 >> S oder i? 1522 01:20:32,920 --> 01:20:35,990 Genau, und dieser funky Syntax, 1523 01:20:35,990 --> 01:20:38,550 Diese s mit den eckigen Klammern 1524 01:20:38,550 --> 01:20:41,500 bedeutet, Zugriff auf das i-te Zeichen von s. 1525 01:20:41,500 --> 01:20:45,650 Das wird etwas, das wirklich wichtig ist für die Zuordnung sein. 1526 01:20:45,650 --> 01:20:48,070 Leider, wir gehen zu müssen, hier zu stoppen, 1527 01:20:48,070 --> 01:20:50,550 so dass Sebastian Abschnitt kann kommen, 1528 01:20:50,550 --> 01:20:53,980 aber ich bin froh, nach draußen zu bleiben und werden alle Fragen zur Verfügung. 1529 01:20:53,980 --> 01:20:56,680 Also danke Jungs für ihr Kommen. 1530 01:20:56,680 --> 01:20:59,730 Dies sollte jetzt hochladen, erstellen, ausführen. 1531 01:21:01,570 --> 01:21:04,320 Wir können eine Zeichenfolge wie "Hallo" 1532 01:21:06,570 --> 01:21:08,730 und es gibt "Qox". 1533 01:21:08,730 --> 01:21:11,030 [Gelächter] 1534 01:21:11,030 --> 01:21:14,640 >> Also nicht ganz da, aber in Bewegung, immer auf jene Schleifen! 1535 01:21:14,640 --> 01:21:18,640 Danke fürs Kommen, und ich bin draußen.