1 00:00:00,000 --> 00:00:02,418 >> [RIPRODUZIONE DI BRANI MUSICALI] 2 00:00:02,418 --> 00:00:10,542 3 00:00:10,542 --> 00:00:12,000 ALLISON Buchholtz-AU: Ciao a tutti. 4 00:00:12,000 --> 00:00:15,640 Benvenuto nel tuo primo sezione ufficiale CS50. 5 00:00:15,640 --> 00:00:19,507 Come si può, vedere si tratta di sezione CS50-come, solo 6 00:00:19,507 --> 00:00:20,840 a tirare su la nostra agenda per oggi. 7 00:00:20,840 --> 00:00:23,990 Allora, chi sono io, come sono sicuro siete tutti chiedendo. 8 00:00:23,990 --> 00:00:25,514 Io sono il tuo TF. 9 00:00:25,514 --> 00:00:27,930 Io non sono solo uno studente casuale che sta impersonando il vostro TF. 10 00:00:27,930 --> 00:00:31,190 >> E ho intenzione di passare attraverso tipo di hanno sezioni affluiranno, 11 00:00:31,190 --> 00:00:34,900 aspettative che abbiamo, risorse, così via e così via. 12 00:00:34,900 --> 00:00:39,190 Stiamo per parlare di array, ASCII funzioni, gli argomenti della riga di comando, 13 00:00:39,190 --> 00:00:42,020 e non è qui, ma Sarò anche aiutando 14 00:00:42,020 --> 00:00:45,054 è sorta di pensare attraverso il vostro prossimo pset per questa settimana. 15 00:00:45,054 --> 00:00:46,720 Quali Sono sicuro che tutti apprezzeranno. 16 00:00:46,720 --> 00:00:48,190 17 00:00:48,190 --> 00:00:53,390 >> Quindi, prima interrogo chi sono io, oltre al tuo TF esuberante qui. 18 00:00:53,390 --> 00:00:55,390 Sono Alison Buchholtz-Au. 19 00:00:55,390 --> 00:00:57,970 Questo è il mio secondo anno TFing CS50. 20 00:00:57,970 --> 00:01:00,570 Ho anche TF CS51 in primavera. 21 00:01:00,570 --> 00:01:03,930 Si potrebbe vedere di nuovo lì se si decide di prenderlo. 22 00:01:03,930 --> 00:01:07,370 Sono anche un PAF, in modo che qualsiasi Freshmen-- e se non sei una matricola, 23 00:01:07,370 --> 00:01:09,980 questo è il mio terzo anno come un compagno di consulenza. 24 00:01:09,980 --> 00:01:13,630 Sono molto ben versato in consigliandovi sulla vita e corsi 25 00:01:13,630 --> 00:01:16,549 all'interno di CS e non all'interno di CS. 26 00:01:16,549 --> 00:01:18,090 Io sono un Computer Science concentratore. 27 00:01:18,090 --> 00:01:20,800 Io sono un anziano in Adams House, casa migliore. 28 00:01:20,800 --> 00:01:22,430 29 00:01:22,430 --> 00:01:26,050 E prima sono passato a CS mio Sophomore Primavera, 30 00:01:26,050 --> 00:01:27,640 Mi è stato effettivamente un ingegnere biomedico. 31 00:01:27,640 --> 00:01:29,020 Stavo per andare a scuola Med. 32 00:01:29,020 --> 00:01:30,530 Stavo per essere un chirurgo trauma. 33 00:01:30,530 --> 00:01:33,000 E che ha completamente cambiato da quando ho preso CS50. 34 00:01:33,000 --> 00:01:34,250 35 00:01:34,250 --> 00:01:36,310 Ho preso il mio corso Sophomore caduta. 36 00:01:36,310 --> 00:01:38,920 Era la mia prima introduzione alla CS mai. 37 00:01:38,920 --> 00:01:44,104 Io ero uno dei 78% di voi che aveva zero esperienza in arrivo, 38 00:01:44,104 --> 00:01:45,520 ed è completamente cambiato la mia vita. 39 00:01:45,520 --> 00:01:49,820 E ora sto lavorando a Microsoft e la vostra bella TF. 40 00:01:49,820 --> 00:01:53,500 E CS50 è probabilmente uno delle migliori esperienze 41 00:01:53,500 --> 00:01:56,210 che ho avuto qui a Harvard-- sia prendendo la classe 42 00:01:56,210 --> 00:01:59,040 e di essere in grado di aiutare insegnare agli studenti come te. 43 00:01:59,040 --> 00:02:01,410 >> Quindi sono molto eccitato che siete tutti qui. 44 00:02:01,410 --> 00:02:04,270 Nel caso in cui si è venuto a in ritardo, non vi è piacere, 45 00:02:04,270 --> 00:02:07,227 che si dovrebbe sentire libero di venire afferrare, o inviare 46 00:02:07,227 --> 00:02:08,560 qualcun altro per afferrare per voi. 47 00:02:08,560 --> 00:02:09,399 va bene. 48 00:02:09,399 --> 00:02:10,440 Non voglio mangiare questo. 49 00:02:10,440 --> 00:02:13,350 La mia stanza ha abbastanza cioccolato, così y'all dovrebbe cercare di finire quel. 50 00:02:13,350 --> 00:02:16,730 So che ci sono 100 pezzi, ma come, 4:00 su un Lunedi, 51 00:02:16,730 --> 00:02:19,000 Penso che ognuno potrebbe usare un po 'di zucchero. 52 00:02:19,000 --> 00:02:21,750 >> Quindi, tutti voi che siete ufficialmente nella mia sezione 53 00:02:21,750 --> 00:02:24,700 avrebbe ottenuto una e-mail da me con il mio numero di telefono, 54 00:02:24,700 --> 00:02:29,920 e-mail address-- sentitevi liberi di aggiungere me su Gchat, sentitevi liberi di aggiungere me su Facebook, 55 00:02:29,920 --> 00:02:33,360 e anche per il resto di voi, potete scrivermi qui. 56 00:02:33,360 --> 00:02:34,450 Ci sono due H di. 57 00:02:34,450 --> 00:02:37,090 Ognuno fa sempre come due L's o due C. 58 00:02:37,090 --> 00:02:38,260 Due è nel cognome H. 59 00:02:38,260 --> 00:02:41,800 In caso contrario, sta andando a rimbalzo, e Non ho intenzione di ottenere il vostro e-mail. 60 00:02:41,800 --> 00:02:46,400 >> Quindi sentitevi liberi di scrivermi, a contattarmi in qualsiasi momento. 61 00:02:46,400 --> 00:02:51,440 Io non posso tornare a entro 24 minuti 62 00:02:51,440 --> 00:02:53,760 ma prometto di tornare entro 24 ore. 63 00:02:53,760 --> 00:02:54,900 64 00:02:54,900 --> 00:02:58,067 Se mi chiami mezz'ora prima il tuo pset è dovuto, è essere come, 65 00:02:58,067 --> 00:02:59,650 Non ho idea di quello che sto facendo Allison. 66 00:02:59,650 --> 00:03:00,160 Aiutami. 67 00:03:00,160 --> 00:03:04,049 Ho intenzione di calmarti, ma alla fine della giornata, 68 00:03:04,049 --> 00:03:07,340 se mi stai chiamando mezz'ora prima il tuo pset è dovuto con nulla di scritto, 69 00:03:07,340 --> 00:03:11,570 Ho intenzione di essere come, beh, forse è il momento di usare quel giorno di ritardo. 70 00:03:11,570 --> 00:03:15,215 Quindi io risponderò a tutte le vostre richieste in modo molto tempestivo. 71 00:03:15,215 --> 00:03:16,482 72 00:03:16,482 --> 00:03:18,190 Il mio telefono è di solito attaccato alle mie mani. 73 00:03:18,190 --> 00:03:21,530 Io di solito rispondo molto veloce di 24 ore, 74 00:03:21,530 --> 00:03:25,650 ma posso solo garanzia una risposta 24 ore. 75 00:03:25,650 --> 00:03:26,580 >> Bene. 76 00:03:26,580 --> 00:03:28,410 Allora perché siamo qui? 77 00:03:28,410 --> 00:03:32,160 Inoltre, se avete domande a qualsiasi momento, per favore fatemelo sapere. 78 00:03:32,160 --> 00:03:32,780 Parlo molto. 79 00:03:32,780 --> 00:03:35,320 Parlo veloce, ma per favore sentitevi liberi di interrompermi. 80 00:03:35,320 --> 00:03:36,980 Dà Mi stanza respirare pure. 81 00:03:36,980 --> 00:03:38,159 82 00:03:38,159 --> 00:03:40,200 Quindi le sezioni sono un momento per noi in realtà solo di immersione 83 00:03:40,200 --> 00:03:44,270 in, ottenere alcuni hands-on esperienza, per passare attraverso gli argomenti che abbiamo menzionato 84 00:03:44,270 --> 00:03:49,760 in classe o in materiali di studio che si raccomanda a voi ragazzi on-line. 85 00:03:49,760 --> 00:03:52,980 E ci troveremo a passare attraverso alcune di queste risorse in un po '. 86 00:03:52,980 --> 00:03:54,300 87 00:03:54,300 --> 00:03:57,400 >> Così alcune note su supporto sezione. 88 00:03:57,400 --> 00:04:00,250 CS50-- una delle cose che rende è una delle mie classi preferite 89 00:04:00,250 --> 00:04:02,510 è la sensazione che non sei mai solo. 90 00:04:02,510 --> 00:04:05,430 Abbiamo uno staff di oltre 100 le persone che sono qui per aiutarti. 91 00:04:05,430 --> 00:04:08,080 Abbiamo orari d'ufficio Lunedi al Giovedi. 92 00:04:08,080 --> 00:04:13,230 Quindi ci sono così tante persone che amare la classe tanto quanto me 93 00:04:13,230 --> 00:04:15,750 e che sono davvero qui perché vogliono essere qui. 94 00:04:15,750 --> 00:04:19,390 La maggior parte di noi sono studenti, e questo è come una quinta classe in aggiunta 95 00:04:19,390 --> 00:04:20,390 per il resto del nostro lavoro. 96 00:04:20,390 --> 00:04:22,723 >> Ed è un sacco di lavoro, ma lo facciamo perché ci piace, 97 00:04:22,723 --> 00:04:25,600 e ci piace tantissimo per insegnarvi e contribuire a condividere il nostro entusiasmo 98 00:04:25,600 --> 00:04:27,260 per questo soggetto e questa categoria. 99 00:04:27,260 --> 00:04:28,490 Quindi, si prega di prendere vantaggio. 100 00:04:28,490 --> 00:04:29,370 Vieni a parlare con noi. 101 00:04:29,370 --> 00:04:33,034 Mi sento solo quando i miei studenti non parlare con me, quindi se volete, 102 00:04:33,034 --> 00:04:33,950 venire in giro con me. 103 00:04:33,950 --> 00:04:35,200 Sarà fantastico. 104 00:04:35,200 --> 00:04:37,400 >> Così sezione è ovviamente uno dei vostri più grandi cose. 105 00:04:37,400 --> 00:04:41,770 Andremo attraverso le cose che hai imparato a lezione, 106 00:04:41,770 --> 00:04:44,100 fare alcuni brevi esempi quando abbiamo tempo, 107 00:04:44,100 --> 00:04:46,187 e in generale di tipo avere un'idea delle cose 108 00:04:46,187 --> 00:04:48,270 si dovrebbe pensare su per il vostro problema impostato. 109 00:04:48,270 --> 00:04:49,540 110 00:04:49,540 --> 00:04:53,591 Shorts-- quante persone effettivamente visto il video dal vostro zero 111 00:04:53,591 --> 00:04:54,090 breve? 112 00:04:54,090 --> 00:04:55,460 113 00:04:55,460 --> 00:04:57,390 Qualcuno mi riconosce? 114 00:04:57,390 --> 00:04:59,720 Quindi questi sono molto grandi. 115 00:04:59,720 --> 00:05:01,210 Si dovrebbe guardare quelle. 116 00:05:01,210 --> 00:05:02,880 Molto lavoro è stato messo in loro. 117 00:05:02,880 --> 00:05:06,690 E sono solo destinate ad essere bite-size pezzi per voi a guardare solo 118 00:05:06,690 --> 00:05:09,760 per tre o quattro minuti e ottenere un migliore comprensione di un concetto. 119 00:05:09,760 --> 00:05:11,147 120 00:05:11,147 --> 00:05:12,980 A piedi throughs-- come molte persone hanno guardato 121 00:05:12,980 --> 00:05:14,880 i walk-through per i precedenti? 122 00:05:14,880 --> 00:05:16,240 Zamyla è incredibile, vero? 123 00:05:16,240 --> 00:05:18,100 Come, Vorrei essere a volte Zamyla. 124 00:05:18,100 --> 00:05:19,650 125 00:05:19,650 --> 00:05:21,640 Quindi sicuramente utilizzare i walk-through. 126 00:05:21,640 --> 00:05:25,070 Lei scomposizione in pezzi piccoli, bite-size. 127 00:05:25,070 --> 00:05:28,079 E quando si hanno questi enormi specifiche dei tuoi insiemi di problemi, 128 00:05:28,079 --> 00:05:30,870 che sta per essere davvero importante per essere in grado di trovare solo un posto 129 00:05:30,870 --> 00:05:32,600 per avviare e lavorare lentamente attraverso di essa. 130 00:05:32,600 --> 00:05:33,610 131 00:05:33,610 --> 00:05:40,260 >> Va bene, abbiamo anche Study50, che è study50.harvard.edu, credo. 132 00:05:40,260 --> 00:05:42,270 Si può solo Google studio, e sarà venire. 133 00:05:42,270 --> 00:05:45,750 Questo è uno dei migliori risorse che abbiamo. 134 00:05:45,750 --> 00:05:49,800 Si tratta di PowerPoint con note e mettere in pratica i problemi per voi 135 00:05:49,800 --> 00:05:52,430 con soluzioni che si può effettivamente camminare attraverso. 136 00:05:52,430 --> 00:05:57,000 Quindi, se si vuole mai più pratica, più di noi in sezioni o più 137 00:05:57,000 --> 00:06:00,700 che i set di problemi, questo è davvero un posto vi incoraggio a andare. 138 00:06:00,700 --> 00:06:03,590 E 'stato costruito l'estate scorsa da alcuni dei miei buoni amici. 139 00:06:03,590 --> 00:06:04,480 Ed è incredibile. 140 00:06:04,480 --> 00:06:05,540 141 00:06:05,540 --> 00:06:08,670 Infatti, molte delle diapositive che userò per la sezione 142 00:06:08,670 --> 00:06:10,190 verranno da Study50. 143 00:06:10,190 --> 00:06:12,000 >> Così un sacco di TF usarlo. 144 00:06:12,000 --> 00:06:13,920 Infine, mentre menzionata, orari d'ufficio. 145 00:06:13,920 --> 00:06:15,836 Se hai problemi con i compiti, si è 146 00:06:15,836 --> 00:06:18,270 problemi con un concetto, venire in orario d'ufficio. 147 00:06:18,270 --> 00:06:20,190 Vai all'inizio della settimana, se potete. 148 00:06:20,190 --> 00:06:23,130 Uscire al quad, perché è un po 'lontano. 149 00:06:23,130 --> 00:06:24,780 A nessuno piace andare là fuori. 150 00:06:24,780 --> 00:06:27,090 Ma è a vostro vantaggio, perché allora sei 151 00:06:27,090 --> 00:06:29,580 andando ad avere tutte queste TF, [Incomprensibile] ti circondano. 152 00:06:29,580 --> 00:06:31,920 E soprattutto ora, solo una punta, giovedì 153 00:06:31,920 --> 00:06:35,310 sono molto freddo in questo momento in Mather perché i vostri p-set 154 00:06:35,310 --> 00:06:36,577 sono dovuti il ​​giovedì. 155 00:06:36,577 --> 00:06:38,410 E sapendo vuole utilizzare ancora i vostri giorni di ritardo. 156 00:06:38,410 --> 00:06:40,030 >> Quindi, se hai problemi con i concetti, 157 00:06:40,030 --> 00:06:41,780 ci sono un sacco di TF che sono lì per aiutarti. 158 00:06:41,780 --> 00:06:43,196 Allora venite fuori a Mather il Giovedi. 159 00:06:43,196 --> 00:06:45,280 Se volete vedere me, Ho intenzione di essere lì. 160 00:06:45,280 --> 00:06:48,870 Sto facendo il mio solito compiti a casa propria, perché nessuno vuole il mio aiuto. 161 00:06:48,870 --> 00:06:50,260 Allora venite a trovarci. 162 00:06:50,260 --> 00:06:51,460 163 00:06:51,460 --> 00:06:52,440 >> Incontriamoci a metà strada. 164 00:06:52,440 --> 00:06:55,400 Così come molte persone hanno partecipato conferenza o guardato on-line? 165 00:06:55,400 --> 00:06:56,570 166 00:06:56,570 --> 00:06:59,140 Come molte persone sono andate a super-sezione la scorsa settimana? 167 00:06:59,140 --> 00:07:00,171 168 00:07:00,171 --> 00:07:00,670 Freddo. 169 00:07:00,670 --> 00:07:02,190 Questo è in realtà un buon numero. 170 00:07:02,190 --> 00:07:05,425 Quanti di voi hanno letto il tuo spec per questa settimana, per la vostra pset? 171 00:07:05,425 --> 00:07:07,081 172 00:07:07,081 --> 00:07:08,461 Ooh, sono orgoglioso di voi ragazzi! 173 00:07:08,461 --> 00:07:09,335 Più caramelle per tutti voi. 174 00:07:09,335 --> 00:07:11,070 175 00:07:11,070 --> 00:07:13,280 >> Bene, così che cosa si intende "Incontrarci a metà strada," è 176 00:07:13,280 --> 00:07:16,440 che la sezione è in realtà solo sta per essere super utile per voi 177 00:07:16,440 --> 00:07:19,810 se venite in dopo aver letto il tuo specifiche per il vostro pset. 178 00:07:19,810 --> 00:07:23,859 Perché quando vado attraverso una visione d'insieme di cose che dovreste cercare fuori per, 179 00:07:23,859 --> 00:07:25,650 non sta andando a fare come molto senso se si 180 00:07:25,650 --> 00:07:28,358 non so cosa impostare il problema sta per essere chiesto di fare. 181 00:07:28,358 --> 00:07:29,020 182 00:07:29,020 --> 00:07:32,590 >> Se non si arriva al punto, ovviamente, Non posso essere che utile a voi. 183 00:07:32,590 --> 00:07:36,600 Io non ho intenzione di farne una questione personale se tu non vieni alla mia sezione in questo momento, 184 00:07:36,600 --> 00:07:38,570 ma sicuramente si dovrebbe. 185 00:07:38,570 --> 00:07:40,090 Se non è possibile, vederli online. 186 00:07:40,090 --> 00:07:41,230 187 00:07:41,230 --> 00:07:42,519 Sono lì per un motivo. 188 00:07:42,519 --> 00:07:43,560 Il mio sarà proprio lì. 189 00:07:43,560 --> 00:07:44,187 190 00:07:44,187 --> 00:07:47,270 Come si nota, siamo in fase di registrazione, quindi sarà lì per voi ragazzi. 191 00:07:47,270 --> 00:07:49,110 192 00:07:49,110 --> 00:07:51,570 Così, andando a lectures-- questo è, ovviamente, 193 00:07:51,570 --> 00:07:53,790 dove che stai ricevendo il iniziare del vostro materiale qui. 194 00:07:53,790 --> 00:07:57,430 Quindi io provare e aiutare per quanto posso, 195 00:07:57,430 --> 00:07:58,840 ma posso incontrare solo finora. 196 00:07:58,840 --> 00:08:01,220 Dovete tipo di incontrarci a metà strada. 197 00:08:01,220 --> 00:08:04,050 >> Grading-- così, tutti voi che ha ottenuto una e-mail da me, 198 00:08:04,050 --> 00:08:05,445 tu sei la mia sezione ufficiale. 199 00:08:05,445 --> 00:08:06,470 200 00:08:06,470 --> 00:08:08,120 Sarò di classificazione vostri p-set. 201 00:08:08,120 --> 00:08:12,870 E io voglio solo dire, una cosa che si dovrebbe davvero prestare attenzione a 202 00:08:12,870 --> 00:08:13,820 sono i commenti. 203 00:08:13,820 --> 00:08:17,390 I commenti sono spesso più utili rispetto al punteggio effettivo ti diamo. 204 00:08:17,390 --> 00:08:19,890 E i commenti sono in realtà dove trascorro molto del mio tempo 205 00:08:19,890 --> 00:08:20,770 quando sono classificazione. 206 00:08:20,770 --> 00:08:22,700 Quindi mi sento di apprezzare se li legge. 207 00:08:22,700 --> 00:08:26,990 E sono in realtà come si sta andando per saperne di più sul design e lo stile 208 00:08:26,990 --> 00:08:29,860 e le cose che sono un piccolo taglio meno e asciutto. 209 00:08:29,860 --> 00:08:31,770 >> Quindi, in realtà prestare attenzione a tali osservazioni. 210 00:08:31,770 --> 00:08:34,720 Se avete domande su di loro, o domande circa il vostro punteggio, 211 00:08:34,720 --> 00:08:37,620 si prega di venire a parlare con me sia prima sezione, 212 00:08:37,620 --> 00:08:41,039 Io probabilmente essere appeso fuori nella hall, o successivamente. 213 00:08:41,039 --> 00:08:43,559 Se si desidera pianificare one-to-one su come 214 00:08:43,559 --> 00:08:46,100 si può contribuire a migliorare in seguito serie di problemi, fammelo sapere. 215 00:08:46,100 --> 00:08:47,520 216 00:08:47,520 --> 00:08:49,750 >> E poi solo un paio di consigli per voi ragazzi. 217 00:08:49,750 --> 00:08:53,110 Così uno dei più grandi cose Ho sempre sottolineare a mia sezione 218 00:08:53,110 --> 00:08:57,700 quando si sta imparando come codificare è di scrivere le cose su carta. 219 00:08:57,700 --> 00:09:01,080 Se si dispone di un piano di gioco per dove il codice ha bisogno di andare 220 00:09:01,080 --> 00:09:03,230 e ciò che deve do ed è ripartito 221 00:09:03,230 --> 00:09:06,000 in piccoli pezzi di pseudocodice codice che hai scritto fuori, 222 00:09:06,000 --> 00:09:09,780 si sta andando ad essere meno rischia di fare errori di sintassi 223 00:09:09,780 --> 00:09:12,355 o creare un ciclo che se non ha un altro. 224 00:09:12,355 --> 00:09:14,064 225 00:09:14,064 --> 00:09:15,980 Se sai dove sei andare nel complesso, si è 226 00:09:15,980 --> 00:09:19,764 meno propensi a fare questi piccoli errori che a volte si prendere 227 00:09:19,764 --> 00:09:22,555 ore per risolvere, perché siete come, dove mi sto perdendo questa fascia? 228 00:09:22,555 --> 00:09:23,580 229 00:09:23,580 --> 00:09:27,420 >> In tal senso, si prega di utilizzare Style50. 230 00:09:27,420 --> 00:09:28,820 231 00:09:28,820 --> 00:09:31,590 Soprattutto quando si è andare in orario d'ufficio, 232 00:09:31,590 --> 00:09:34,850 se il codice è tutto commutato su un lato, 233 00:09:34,850 --> 00:09:37,740 è politica corso che si può dire, risolvere il problema 234 00:09:37,740 --> 00:09:41,990 in modo che appaia come dice Style50 si deve, e poi ti aiuteremo. 235 00:09:41,990 --> 00:09:43,830 Così farò la vita più facile. 236 00:09:43,830 --> 00:09:45,030 Si farà la vita più facile. 237 00:09:45,030 --> 00:09:46,000 Sono tutti più felici. 238 00:09:46,000 --> 00:09:47,290 Ognuno ottiene voti migliori. 239 00:09:47,290 --> 00:09:48,760 Non è quello che vogliamo tutti? 240 00:09:48,760 --> 00:09:50,420 241 00:09:50,420 --> 00:09:53,860 >> Quindi scrivere le cose su carta prima Avete mai toccare il computer. 242 00:09:53,860 --> 00:09:57,540 Parla con le cose ad un livello elevato, e assicuratevi di sapere dove stai andando. 243 00:09:57,540 --> 00:09:59,940 E se non siete sicuri, sedersi con qualcuno 244 00:09:59,940 --> 00:10:03,340 e camminare attraverso passo dopo passo che cosa il vostro codice dovrebbe fare. 245 00:10:03,340 --> 00:10:07,940 E nove volte su 10, sarete come, oh, ho dimenticato una condizione if 246 00:10:07,940 --> 00:10:12,420 o ho dimenticato un punto e virgola qui o Sto aggiornando questo torto variabile. 247 00:10:12,420 --> 00:10:15,740 Quindi questi sono i miei consigli per il successo. 248 00:10:15,740 --> 00:10:19,820 >> Quindi, dal momento che circa la metà dei cerchi come avete partecipato sezione super, 249 00:10:19,820 --> 00:10:24,080 Sto solo andando a molto brevemente passare attraverso cicli, 250 00:10:24,080 --> 00:10:26,650 che non erano nella nostra agenda originale. 251 00:10:26,650 --> 00:10:28,190 Ma sono veramente importanti. 252 00:10:28,190 --> 00:10:30,250 E così ho intenzione di genere di velocità attraverso quelle 253 00:10:30,250 --> 00:10:32,860 prima di entrare nella nostra sezione reale. 254 00:10:32,860 --> 00:10:36,269 Prima di fare questo, ci sono qualsiasi questions-- logisticamente, 255 00:10:36,269 --> 00:10:38,060 personalmente, è lì qualcos'altro che vuoi 256 00:10:38,060 --> 00:10:40,990 sapere su di me o su sezione o classe in generale? 257 00:10:40,990 --> 00:10:43,195 258 00:10:43,195 --> 00:10:43,880 Tutto bene? 259 00:10:43,880 --> 00:10:45,300 OK, fresco. 260 00:10:45,300 --> 00:10:46,781 261 00:10:46,781 --> 00:10:47,280 Incantevole. 262 00:10:47,280 --> 00:10:50,071 >> Così loops-- voi ragazzi dovrebbero tutti riconoscere questi pezzi da zero. 263 00:10:50,071 --> 00:10:51,310 264 00:10:51,310 --> 00:10:55,220 Quindi, i cicli sono fondamentalmente solo un modo per noi di fare qualcosa 265 00:10:55,220 --> 00:10:58,900 certo numero di volte, alcuni ripetuto azione basata su qualche condizionale. 266 00:10:58,900 --> 00:11:00,140 267 00:11:00,140 --> 00:11:02,090 Quindi abbiamo tre tipi diversi. 268 00:11:02,090 --> 00:11:04,860 Abbiamo ciclo for, while e do-while. 269 00:11:04,860 --> 00:11:06,430 270 00:11:06,430 --> 00:11:11,320 >> Quindi per loops-- non ci resta che una layout generale qui di un ciclo for. 271 00:11:11,320 --> 00:11:16,110 E questo è grande per quando si sa come molte volte qualcosa deve eseguire. 272 00:11:16,110 --> 00:11:17,040 273 00:11:17,040 --> 00:11:18,790 Quando si parla di altri loop, ti 274 00:11:18,790 --> 00:11:20,650 capire perché questa è una distinzione importante. 275 00:11:20,650 --> 00:11:22,530 Ma per i cicli sono qualcosa insieme. 276 00:11:22,530 --> 00:11:24,590 Sai che possibile calcolare il numero 277 00:11:24,590 --> 00:11:29,230 o si conosce il numero di volte che vuole questo ripetuto all'inizio. 278 00:11:29,230 --> 00:11:32,220 >> Quindi, se vedete qui, avere solo un carattere generale 279 00:11:32,220 --> 00:11:34,480 quadro di scheletro per un ciclo for qui. 280 00:11:34,480 --> 00:11:38,080 Così per inizializzazione, è qui le variabili vengono inizializzate. 281 00:11:38,080 --> 00:11:41,915 Con Mario, sono sicuro che ragazzi hanno fatto qualcosa come int i è uguale a 0. 282 00:11:41,915 --> 00:11:42,920 283 00:11:42,920 --> 00:11:44,710 È lì che sarebbe accaduto in blu. 284 00:11:44,710 --> 00:11:48,290 Tu hai la tua condizione, che è ciò che è controllato ogni volta. 285 00:11:48,290 --> 00:11:52,410 Se questa condizione è vera, allora il resto del codice viene eseguito. 286 00:11:52,410 --> 00:11:54,749 Poi sarà eseguito again-- e chiedere. 287 00:11:54,749 --> 00:11:57,290 E poi abbiamo l'aggiornamento, dove si sta aggiornando la variabile. 288 00:11:57,290 --> 00:12:01,410 Quindi, ancora una volta, con come Mario, sono sicuro Avete fatto una cosa del genere i plus plus. 289 00:12:01,410 --> 00:12:04,640 Così ogni volta che il ciclo Ran, ho ottenuto aggiornato in modo 290 00:12:04,640 --> 00:12:09,370 che quando abbiamo fatto il check contro alcune condizioni, si stava cambiando. 291 00:12:09,370 --> 00:12:12,570 >> Perché se solo avere una variabile statica, 292 00:12:12,570 --> 00:12:15,567 se si esegue la prima volta, è solo andando per eseguire all'infinito. 293 00:12:15,567 --> 00:12:18,025 Quindi bisogna essere sicuri di aggiornare correttamente la variabile. 294 00:12:18,025 --> 00:12:19,350 295 00:12:19,350 --> 00:12:23,890 E abbiamo anche solo un rappresentazione visiva lì. 296 00:12:23,890 --> 00:12:24,930 Tutto bene? 297 00:12:24,930 --> 00:12:25,630 Per i cicli. 298 00:12:25,630 --> 00:12:27,540 Dovuto vedere questi nel vostro pset. 299 00:12:27,540 --> 00:12:28,840 Freddo. 300 00:12:28,840 --> 00:12:31,870 >> Così qui è solo un esempio facile. 301 00:12:31,870 --> 00:12:32,860 Stampa questa è CS50! 302 00:12:32,860 --> 00:12:33,360 10 volte. 303 00:12:33,360 --> 00:12:34,850 304 00:12:34,850 --> 00:12:37,906 E così abbiamo la nostra inizializzazione, come si vede lì, con int i 305 00:12:37,906 --> 00:12:41,280 uguale a 0, per i è minore di 10, e i plus plus. 306 00:12:41,280 --> 00:12:43,090 307 00:12:43,090 --> 00:12:44,540 E sarà la stampa che per 10 volte. 308 00:12:44,540 --> 00:12:46,230 309 00:12:46,230 --> 00:12:56,781 >> Così, mentre loops-- cicli while sono grande quando non lo fai necessariamente 310 00:12:56,781 --> 00:12:59,530 devono sapere quante volte è andando ad aggiornare all'inizio. 311 00:12:59,530 --> 00:13:00,640 312 00:13:00,640 --> 00:13:02,580 Basta un po ' condizione che la controllata. 313 00:13:02,580 --> 00:13:09,550 E questo potrebbe essere qualcosa di simile a while-- prendiamo un esempio dal vostro pset. 314 00:13:09,550 --> 00:13:12,540 Se Mario, si tenta di immettere un numero negativo. 315 00:13:12,540 --> 00:13:13,270 Giusto? 316 00:13:13,270 --> 00:13:15,460 Dovevi ri-chiederà il vostro utente. 317 00:13:15,460 --> 00:13:20,890 Così si può dire, beh, se gli ingressi degli utenti qualcosa minore di zero, ri-pronta 318 00:13:20,890 --> 00:13:21,390 loro. 319 00:13:21,390 --> 00:13:23,890 E sono sicuro che potrebbe avere stato qualcosa che alcuni di voi 320 00:13:23,890 --> 00:13:24,660 utilizzati nel codice. 321 00:13:24,660 --> 00:13:26,270 >> Quindi è una cosa semplice. 322 00:13:26,270 --> 00:13:28,490 Hai mentre, un po ' condizionale che è controllato 323 00:13:28,490 --> 00:13:30,460 ogni volta che il codice va da eseguire. 324 00:13:30,460 --> 00:13:32,660 Se restituisce true, corriamo esso. 325 00:13:32,660 --> 00:13:33,820 In caso contrario, non lo facciamo. 326 00:13:33,820 --> 00:13:35,650 E che cosa è veramente qualcosa importante-- I 327 00:13:35,650 --> 00:13:38,155 pensare che David ha parlato in lecture-- sono le parentesi graffe. 328 00:13:38,155 --> 00:13:40,760 329 00:13:40,760 --> 00:13:42,930 Qualunque sia, entro lo stesso parentesi graffe è ciò che è eseguito. 330 00:13:42,930 --> 00:13:45,850 Se si dimentica quelli bretelle, è solo andare 331 00:13:45,850 --> 00:13:48,800 essere direttamente la linea dopo il tempo è stato eseguito. 332 00:13:48,800 --> 00:13:51,040 >> Quindi, se avete tre le cose che dovrebbero 333 00:13:51,040 --> 00:13:54,020 accadere quando questo condizione restituisce true, 334 00:13:54,020 --> 00:13:58,040 e non si dispone di tali parentesi graffe, solo la prima cosa sta per accadere. 335 00:13:58,040 --> 00:14:01,510 Quindi, essere molto consapevoli di dove si mettono le parentesi graffe. 336 00:14:01,510 --> 00:14:04,880 Se attaccate con Style50, questo sarà sicuramente aiutare. 337 00:14:04,880 --> 00:14:06,220 338 00:14:06,220 --> 00:14:06,760 Freddo. 339 00:14:06,760 --> 00:14:10,835 >> Quindi questo è un conto alla rovescia da 10 a zero. 340 00:14:10,835 --> 00:14:12,380 341 00:14:12,380 --> 00:14:16,210 E come vedete qui, inizializziamo qualche banco al di fuori di esso. 342 00:14:16,210 --> 00:14:19,250 Una cosa che è diverso è non stiamo inizializzazione nostra variabile 343 00:14:19,250 --> 00:14:20,300 all'interno del nostro ciclo while. 344 00:14:20,300 --> 00:14:22,150 E 'inizializzato al di fuori di esso. 345 00:14:22,150 --> 00:14:25,480 Noi stiamo semplicemente mettendo il condizionare in per il nostro tempo. 346 00:14:25,480 --> 00:14:28,630 Quindi in questo caso, è pur conteggio è maggiore di zero. 347 00:14:28,630 --> 00:14:35,134 E il risultato della stampa ciò che il nostro conteggio è, e poi decrementa la nostra variabile. 348 00:14:35,134 --> 00:14:36,800 E questa è anche un'altra cosa da notare. 349 00:14:36,800 --> 00:14:40,440 Il nostro aggiornamento non avviene entro questa prima parte del ciclo while. 350 00:14:40,440 --> 00:14:44,255 Sarà effettivamente accadere entro le parentesi graffe, il corpo del testo. 351 00:14:44,255 --> 00:14:46,820 352 00:14:46,820 --> 00:14:51,860 >> Così, do-while loops-- do-while sono grandi per la convalida dell'utente. 353 00:14:51,860 --> 00:14:54,820 Così alcuni di voi potrebbero avere anche usato questo nella vostra pset. 354 00:14:54,820 --> 00:14:59,960 Si può dire, fare, come, chiedere all'utente per l'input. 355 00:14:59,960 --> 00:15:04,690 E poi, mentre, come, il ingresso è minore di un certo numero. 356 00:15:04,690 --> 00:15:10,700 >> Così, per un caso esplicito con Mario, è sarebbe fare printf, immettere un numero intero, 357 00:15:10,700 --> 00:15:13,820 e poi qualche intero è uguale getint. 358 00:15:13,820 --> 00:15:17,060 E poi troveremo a eseguire per primo il codice. 359 00:15:17,060 --> 00:15:19,120 Avrete in realtà hanno qualche intero. 360 00:15:19,120 --> 00:15:23,380 E allora si potrebbe dire, mentre intero che è minore di zero. 361 00:15:23,380 --> 00:15:26,120 Così che cosa sta andando a fare è che è andando ad eseguire almeno una volta. 362 00:15:26,120 --> 00:15:27,536 Sta andando a verificare le condizioni. 363 00:15:27,536 --> 00:15:29,690 Se la condizione è vero, sarà eseguito di nuovo. 364 00:15:29,690 --> 00:15:32,900 >> Così do-while sono grande per la convalida degli utenti, 365 00:15:32,900 --> 00:15:36,770 perché si conosce il codice sta per eseguire almeno 366 00:15:36,770 --> 00:15:39,720 una volta, mentre con cicli while, non sei 367 00:15:39,720 --> 00:15:41,630 garantito che è andare per eseguire una sola volta. 368 00:15:41,630 --> 00:15:45,330 Sta andando a controllare le condizioni prima e poi decidere di eseguirlo, 369 00:15:45,330 --> 00:15:48,350 mentre un do-while eseguire il codice prima 370 00:15:48,350 --> 00:15:51,110 e poi verificare se è necessario ripeterla. 371 00:15:51,110 --> 00:15:52,985 Fa che la distinzione dare un senso a tutti? 372 00:15:52,985 --> 00:15:53,680 373 00:15:53,680 --> 00:15:54,180 Ok. 374 00:15:54,180 --> 00:15:55,651 375 00:15:55,651 --> 00:15:56,150 Freddo. 376 00:15:56,150 --> 00:15:57,380 377 00:15:57,380 --> 00:15:59,800 >> Quindi, in questo caso, questo è una specie di quello che stavo parlando, 378 00:15:59,800 --> 00:16:02,210 Questa nuova istruzioni, fino a ottenere un numero positivo. 379 00:16:02,210 --> 00:16:05,060 Così sappiamo che printf "Inserire un numero positivo" 380 00:16:05,060 --> 00:16:08,720 e in realtà chiedendo che ingresso avverrà almeno una volta. 381 00:16:08,720 --> 00:16:12,650 Se l'utente è male e continua l'immissione di un numero negativo, che 382 00:16:12,650 --> 00:16:14,210 sa quante volte sarà eseguito. 383 00:16:14,210 --> 00:16:17,500 Ma questo codice è garantito eseguire almeno una volta. 384 00:16:17,500 --> 00:16:20,040 Ed è per questo che è grande per l'ingresso di convalida. 385 00:16:20,040 --> 00:16:22,300 E si utilizzerà che un bel po '. 386 00:16:22,300 --> 00:16:23,870 387 00:16:23,870 --> 00:16:25,830 >> D'accordo, tutte le domande fino ad ora? 388 00:16:25,830 --> 00:16:27,080 389 00:16:27,080 --> 00:16:28,030 Siamo tutti buoni? 390 00:16:28,030 --> 00:16:29,513 Sto parlando troppo in fretta? 391 00:16:29,513 --> 00:16:30,520 392 00:16:30,520 --> 00:16:31,130 Siamo bravi? 393 00:16:31,130 --> 00:16:31,630 Ok. 394 00:16:31,630 --> 00:16:32,960 395 00:16:32,960 --> 00:16:33,800 Imponente 396 00:16:33,800 --> 00:16:35,841 >> Quindi stiamo per andare avanti e parlare di array. 397 00:16:35,841 --> 00:16:36,660 398 00:16:36,660 --> 00:16:37,600 Freddo. 399 00:16:37,600 --> 00:16:40,700 Quindi, gli array sono fondamentalmente solo strutture di dati 400 00:16:40,700 --> 00:16:43,260 che ci permettono di memorizzare cose dello stesso tipo. 401 00:16:43,260 --> 00:16:47,920 Quindi, se avete mai avuto una matrice, è o solo andando ad avere int 402 00:16:47,920 --> 00:16:51,590 o è solo andando ad avere carri o è solo andando ad avere caratteri. 403 00:16:51,590 --> 00:16:55,440 Tu non stai andando ad avere un int con un char con un galleggiante con un doppio. 404 00:16:55,440 --> 00:16:56,850 Una cosa. 405 00:16:56,850 --> 00:17:00,810 Gli array sono solo un formato, o sono solo un tipo. 406 00:17:00,810 --> 00:17:05,679 >> Quindi qui abbiamo un array di dimensione tre con tre numeri interi in esso. 407 00:17:05,679 --> 00:17:07,970 Potrebbero galleggianti, ma siamo andare a dire che sono int. 408 00:17:07,970 --> 00:17:09,310 409 00:17:09,310 --> 00:17:16,970 Quindi, una cosa da capire è che gli array sono di dimensioni serie quando si inizializza 410 00:17:16,970 --> 00:17:22,285 loro, e non sono easily-- dal momento che tutto è meno confortevole, 411 00:17:22,285 --> 00:17:25,034 si dovrebbe solo pensare a loro come non essendo in grado di estendersi in dimensioni. 412 00:17:25,034 --> 00:17:26,119 413 00:17:26,119 --> 00:17:28,740 Tuttavia grande di partire l'array in principio, 414 00:17:28,740 --> 00:17:31,070 questa è la dimensione che sta andando di rimanere, perché gli array 415 00:17:31,070 --> 00:17:33,070 sono continui blocchi di memoria. 416 00:17:33,070 --> 00:17:34,007 417 00:17:34,007 --> 00:17:35,840 E quando voi ragazzi ottenere in un po 'di più 418 00:17:35,840 --> 00:17:40,820 di come la memoria in realtà è disposto su dischi e nel mucchio e lo stack, 419 00:17:40,820 --> 00:17:42,220 si farà un po 'più senso. 420 00:17:42,220 --> 00:17:48,310 >> Ma si può solo pensare a come, è solo una fila di spazi su disco. 421 00:17:48,310 --> 00:17:52,540 E non si può garantire che non c'è sta per essere spazio libero dopo. 422 00:17:52,540 --> 00:17:55,290 È possibile inizializzare un array di tre e allora forse si 423 00:17:55,290 --> 00:17:59,190 inizializzare un altro array di cinque più tardi, ed è subito dopo. 424 00:17:59,190 --> 00:18:04,000 Quindi, se si dovesse andare a pronti passato tre in quella prima matrice, 425 00:18:04,000 --> 00:18:06,370 si sarebbe scrivendo su qualcosa d'altro. 426 00:18:06,370 --> 00:18:10,390 Così array are-- per voi ragazzi, solo pensare a loro come una dimensione fissa. 427 00:18:10,390 --> 00:18:12,700 428 00:18:12,700 --> 00:18:16,890 >> Quindi la creazione di un array-- si sta andando ad avere bisogno di fare questo un po '. 429 00:18:16,890 --> 00:18:18,240 430 00:18:18,240 --> 00:18:22,080 Quindi, nello stesso modo che abbiamo un struttura generale per il nostro cicli for, 431 00:18:22,080 --> 00:18:24,910 abbiamo una bella generale Struttura per la nostra gamma. 432 00:18:24,910 --> 00:18:28,430 Perché sono di un tipo, tutte le elementi di un array sono di un tipo, 433 00:18:28,430 --> 00:18:30,950 è necessario inizializzare cosa che tipo è. 434 00:18:30,950 --> 00:18:33,804 >> Quindi, come vedete qui, abbiamo un bel tipo di dati staffa. 435 00:18:33,804 --> 00:18:35,970 Quindi, se stiamo creando un int matrice, che sarà int. 436 00:18:35,970 --> 00:18:38,830 Se stiamo creando un char array, sarà char. 437 00:18:38,830 --> 00:18:41,890 Se stiamo creando una stringa array, sarà stringa. 438 00:18:41,890 --> 00:18:45,140 E poi il nome della matrice, tutto ciò che vuoi che sia. 439 00:18:45,140 --> 00:18:51,750 Quindi forse è punteggi dei test o forse si tratta di studenti o forse è la caramella. 440 00:18:51,750 --> 00:18:54,440 Qualsiasi cosa decidiate di assegnare un nome al matrice, che è quello che sarà. 441 00:18:54,440 --> 00:18:57,260 >> E poi tra parentesi, ti avere la dimensione che si desidera. 442 00:18:57,260 --> 00:19:01,350 Quindi, stiamo memoria di 10 studenti o stiamo memorizzeremo 15 tipi di caramelle? 443 00:19:01,350 --> 00:19:03,200 444 00:19:03,200 --> 00:19:03,920 Che cosa non. 445 00:19:03,920 --> 00:19:06,830 Quindi, nel nostro esempio qui, stiamo creando una matrice 446 00:19:06,830 --> 00:19:10,100 di dimensione tre, che voi ragazzi vedi qui a destra. 447 00:19:10,100 --> 00:19:11,350 448 00:19:11,350 --> 00:19:15,990 E quando abbiamo inizializzato si, tutto è impostato a zero. 449 00:19:15,990 --> 00:19:18,970 Quindi è solo pensato di come una tabula rasa. 450 00:19:18,970 --> 00:19:22,550 Abbiamo tutti questi spazi, abbiamo tutti queste caselle potremmo mettere i nostri dati in, 451 00:19:22,550 --> 00:19:25,530 ma sono solo in bianco per il momento. 452 00:19:25,530 --> 00:19:28,700 >> Quindi, se vogliamo davvero assegnare loro questi valori, 453 00:19:28,700 --> 00:19:33,050 lo facciamo da qui a destra sotto mostra. 454 00:19:33,050 --> 00:19:39,170 In modo da avere qualunque sia il nome del array è quindi quello di indice che si desidera. 455 00:19:39,170 --> 00:19:43,070 Così l'indice si riferisce solo per, come, che cosa fessura stiamo guardando. 456 00:19:43,070 --> 00:19:47,830 E una cosa importante da notare è che gli array sono zero indicizzati. 457 00:19:47,830 --> 00:19:53,160 Quindi, se vogliamo che il primo spazio in memoria di una matrice, che sta per essere zero. 458 00:19:53,160 --> 00:19:54,740 Se vogliamo che il secondo, sarà uno. 459 00:19:54,740 --> 00:19:56,198 Se vogliamo che il terzo, sarà a due. 460 00:19:56,198 --> 00:19:57,820 Così via e così via. 461 00:19:57,820 --> 00:20:02,130 >> Che è anche il motivo per cui, convenzionalmente, quando facciamo per loops-- sono sicuro 462 00:20:02,130 --> 00:20:05,030 ragazzi sono state chiedendo, perché cominciamo a 0 contro 1? 463 00:20:05,030 --> 00:20:09,909 E questo è perché quando noi transizione ad utilizzare gli array, è mappato correttamente. 464 00:20:09,909 --> 00:20:11,700 Quindi, se si vuole iterare in un array, 465 00:20:11,700 --> 00:20:14,830 rende molto più senso faccio i uguale a 0, perché noi 466 00:20:14,830 --> 00:20:17,940 sanno che corrisponderà al primo posto in memoria. 467 00:20:17,940 --> 00:20:18,990 468 00:20:18,990 --> 00:20:19,990 Tutto bene con quello? 469 00:20:19,990 --> 00:20:21,060 470 00:20:21,060 --> 00:20:21,560 Freddo. 471 00:20:21,560 --> 00:20:26,240 >> E poi sul fondo è solo un altro modo per inizializzare un array. 472 00:20:26,240 --> 00:20:29,590 Hai ancora la tua tipo di dati e il nome, 473 00:20:29,590 --> 00:20:31,960 ma invece di realtà mettendo una dimensione in là, 474 00:20:31,960 --> 00:20:33,830 si può solo fare parentesi vuote. 475 00:20:33,830 --> 00:20:36,350 E poi con questi ricci bretelle in basso, 476 00:20:36,350 --> 00:20:40,270 è possibile basta inserire i dati che si desidera separati da virgole. 477 00:20:40,270 --> 00:20:43,070 E questo verrà automaticamente dico, OK, vedo 478 00:20:43,070 --> 00:20:47,300 di avere tre cose in questi tutori. 479 00:20:47,300 --> 00:20:51,410 Quindi so che ho bisogno di assegnare tre blocchi di memoria e quindi memorizzare quelle. 480 00:20:51,410 --> 00:20:55,300 481 00:20:55,300 --> 00:21:01,670 >> Quindi la prima versione si potrebbe utilizzare se stai chiedendo il vostro all'utente di inserire 482 00:21:01,670 --> 00:21:04,770 valori in modo da poter scorrere la matrice 483 00:21:04,770 --> 00:21:07,660 e ask-- ottenere qualche int a loro input. 484 00:21:07,660 --> 00:21:10,500 Se si conoscono i valori di anticipo, rende molto più senso 485 00:21:10,500 --> 00:21:12,110 utilizzare il secondo modo. 486 00:21:12,110 --> 00:21:17,270 Ma nella maggior parte dei casi, è possibile non sapere ciò che quei valori stanno per essere. 487 00:21:17,270 --> 00:21:19,060 488 00:21:19,060 --> 00:21:19,560 Freddo. 489 00:21:19,560 --> 00:21:20,393 Tutte le altre domande? 490 00:21:20,393 --> 00:21:21,206 491 00:21:21,206 --> 00:21:21,705 Va bene. 492 00:21:21,705 --> 00:21:25,960 493 00:21:25,960 --> 00:21:30,370 >> Così l'accesso elements-- così uno delle grandi cose su array 494 00:21:30,370 --> 00:21:33,310 è che sono casuali accesso, il che significa che si 495 00:21:33,310 --> 00:21:36,010 non c'è bisogno di guardare attraverso ogni blocco. 496 00:21:36,010 --> 00:21:38,150 Se si sa che si volere ciò che è in blocco due, 497 00:21:38,150 --> 00:21:40,820 si può solo dire, dammi bloccare due. 498 00:21:40,820 --> 00:21:44,160 Ed è per questo che questi indici sono così importanti, 499 00:21:44,160 --> 00:21:46,220 ed è così che abbiamo effettivamente accedervi. 500 00:21:46,220 --> 00:21:50,660 Quindi, in questo caso, come abbiamo visto prima, quando siamo stati l'assegnazione di valori, in quello 501 00:21:50,660 --> 00:21:55,360 prima, abbiamo avuto il nome e la Indice abbiamo voluto accesso, giusto? 502 00:21:55,360 --> 00:21:59,370 Così, allo stesso modo, che è tutto quello che fare per tirare in realtà che i dati fuori. 503 00:21:59,370 --> 00:22:02,940 Abbiamo il nome e l'abbiamo avere l'indice che vogliamo. 504 00:22:02,940 --> 00:22:06,710 >> Quindi, in questo caso, il ciclo for qui in basso, chiunque 505 00:22:06,710 --> 00:22:09,060 sa quello che sta facendo, che cosa sarebbe stampare? 506 00:22:09,060 --> 00:22:13,771 507 00:22:13,771 --> 00:22:14,270 Mmhmm? 508 00:22:14,270 --> 00:22:17,790 509 00:22:17,790 --> 00:22:18,520 Esattamente. 510 00:22:18,520 --> 00:22:20,130 Quindi sì, è solo scorrendo. 511 00:22:20,130 --> 00:22:23,410 i è uguale a zero-- possiamo camminare attraverso il codice appena rapidamente. 512 00:22:23,410 --> 00:22:26,680 i è uguale a zero, i è minore di tre, a questo punto, giusto? 513 00:22:26,680 --> 00:22:27,780 In modo che i check out. 514 00:22:27,780 --> 00:22:33,370 E noi diciamo, OK, stampa f Tutto ciò che è in temperatura i. 515 00:22:33,370 --> 00:22:37,990 i è pari a zero proprio qui quando abbiamo iterare, così andiamo a questo primo punto, 516 00:22:37,990 --> 00:22:40,840 e si dice, OK, 65 è il numero che si vuole stampare. 517 00:22:40,840 --> 00:22:43,570 Così sarà stampare 65 e poi fare una nuova linea. 518 00:22:43,570 --> 00:22:46,550 io l'aggiornamento, in modo che stampa 87. 519 00:22:46,550 --> 00:22:48,780 Si aggiorna di nuovo, e si metterà a stampare 30. 520 00:22:48,780 --> 00:22:49,810 521 00:22:49,810 --> 00:22:50,630 Tutti fresco? 522 00:22:50,630 --> 00:22:51,630 523 00:22:51,630 --> 00:22:52,130 Impressionante. 524 00:22:52,130 --> 00:22:54,340 525 00:22:54,340 --> 00:22:54,840 >> Bene. 526 00:22:54,840 --> 00:22:57,710 Quindi, ecco un tipo di cosa stavo dicendo come 527 00:22:57,710 --> 00:23:00,020 è possibile tenere traccia di punteggio di qualcuno e perché 528 00:23:00,020 --> 00:23:03,300 si usa il primo modo di inizializzazione 529 00:23:03,300 --> 00:23:04,890 invece di quella secondo modo. 530 00:23:04,890 --> 00:23:06,620 E questo solo passa attraverso. 531 00:23:06,620 --> 00:23:08,945 E noti che ci sono una classe di dimensione 30. 532 00:23:08,945 --> 00:23:10,690 533 00:23:10,690 --> 00:23:15,770 E siamo inizializzazione questo array di int che è di dimensione 30. 534 00:23:15,770 --> 00:23:18,070 E allora siamo iterazione attraverso e siamo 535 00:23:18,070 --> 00:23:20,910 che chiede all'utente di inserire punteggi per ciascuna di esse 536 00:23:20,910 --> 00:23:23,700 e assegnando a un luogo specifico in memoria 537 00:23:23,700 --> 00:23:24,860 da qualche parte in tale matrice. 538 00:23:24,860 --> 00:23:26,700 539 00:23:26,700 --> 00:23:27,890 Cool? 540 00:23:27,890 --> 00:23:29,650 Questo fa senso per tutti? 541 00:23:29,650 --> 00:23:30,150 Mmhmm? 542 00:23:30,150 --> 00:23:32,910 543 00:23:32,910 --> 00:23:40,360 >> Così hashtag definire la dimensione delle classi 30 è una direttiva del preprocessore, 544 00:23:40,360 --> 00:23:43,780 che significa semplicemente che gets-- ha fare come il processo di compilazione. 545 00:23:43,780 --> 00:23:47,595 Si può pensare ad esso come variabile globale. 546 00:23:47,595 --> 00:23:49,260 547 00:23:49,260 --> 00:23:53,030 Il modo in cui lo facciamo è typically-- consente il codice 548 00:23:53,030 --> 00:23:54,770 per essere più facilmente cambiato. 549 00:23:54,770 --> 00:23:59,480 Quindi diciamo che la nostra dimensione della classe diventa improvvisamente da 30 a 15, 550 00:23:59,480 --> 00:24:03,930 se non avessi definito in questo modo, lo farei devono passare attraverso tutto il mio programma 551 00:24:03,930 --> 00:24:07,420 e cambiare ogni istanza del 30 a 15. 552 00:24:07,420 --> 00:24:11,590 Ma con questo, mi capita di cambiare una posto, e tutto il resto cambia. 553 00:24:11,590 --> 00:24:14,930 >> Se vi capitasse di voler fare un hash definire in un caso 554 00:24:14,930 --> 00:24:19,020 dove si sta tenendo traccia di alcuni impostare il numero di colonne per una classe 555 00:24:19,020 --> 00:24:23,250 o si sta utilizzando un numero che saranno utilizzati, come, 556 00:24:23,250 --> 00:24:27,740 durante un lungo programma, è meglio definire che all'inizio 557 00:24:27,740 --> 00:24:34,440 in modo che se mai cambia, si ottiene per cambiare un punto invece di 100. 558 00:24:34,440 --> 00:24:34,940 Sì? 559 00:24:34,940 --> 00:24:39,830 >> STUDENTE: Tra farlo e basta dichiarando [incomprensibile] sopra in alto. 560 00:24:39,830 --> 00:24:42,470 >> ALLISON Buchholtz-AU: Così ha a che fare con efficient-- 561 00:24:42,470 --> 00:24:45,460 è una specie di fuori del campo di applicazione ciò che siamo in grado di coprire in questa sezione. 562 00:24:45,460 --> 00:24:49,236 Ha a che fare più con efficienza Le cose in realtà 563 00:24:49,236 --> 00:24:50,485 lavorare nel processo di compilazione. 564 00:24:50,485 --> 00:24:52,590 565 00:24:52,590 --> 00:24:55,006 Se volete sapere davvero a questo proposito, sono felice di inviarvi 566 00:24:55,006 --> 00:24:56,450 una e-mail con le risorse su di esso. 567 00:24:56,450 --> 00:24:57,810 568 00:24:57,810 --> 00:25:03,880 Hash definire tende ad essere preferito per le cose. 569 00:25:03,880 --> 00:25:06,380 E come si codifica più, si tipo di imparare le sfumature 570 00:25:06,380 --> 00:25:09,135 di quando è necessario utilizzare un globale contro l'hash definiscono. 571 00:25:09,135 --> 00:25:11,010 Ma per il momento, in realtà non si dispone 572 00:25:11,010 --> 00:25:13,290 di cui preoccuparsi è che la risposta breve. 573 00:25:13,290 --> 00:25:15,360 574 00:25:15,360 --> 00:25:16,360 Tutto bene con quello? 575 00:25:16,360 --> 00:25:18,151 E anche, se si vuole utilizzare un hash definire, 576 00:25:18,151 --> 00:25:21,120 è davvero importante notare che il nome dovrebbe essere in tutte le protezioni. 577 00:25:21,120 --> 00:25:22,210 578 00:25:22,210 --> 00:25:24,674 Non stiamo solo facendo Classe dimensionale di essere drammatico. 579 00:25:24,674 --> 00:25:26,090 Si dovrebbe in realtà essere tutto maiuscolo. 580 00:25:26,090 --> 00:25:27,880 581 00:25:27,880 --> 00:25:28,610 Freddo. 582 00:25:28,610 --> 00:25:30,130 Tutto il resto non ci? 583 00:25:30,130 --> 00:25:31,190 Siamo bravi? 584 00:25:31,190 --> 00:25:32,220 Incantevole. 585 00:25:32,220 --> 00:25:32,720 Benvenuti. 586 00:25:32,720 --> 00:25:34,240 587 00:25:34,240 --> 00:25:38,495 >> OK, quindi voglio che voi ragazzi a dare un'occhiata a questo e vedere se riesci a trovare il bug. 588 00:25:38,495 --> 00:25:45,580 589 00:25:45,580 --> 00:25:46,507 Ti do un suggerimento. 590 00:25:46,507 --> 00:25:47,840 È da qualche parte dal fatto che per-loop. 591 00:25:47,840 --> 00:25:53,070 592 00:25:53,070 --> 00:25:53,665 Mmhmm? 593 00:25:53,665 --> 00:25:55,704 >> STUDENTE: Deve essere inferiore o uguale a 2. 594 00:25:55,704 --> 00:25:56,920 595 00:25:56,920 --> 00:26:01,094 >> ALLISON: Quindi potrebbe essere inferiore o uguale a 2, o potrebbe essere inferiore a 3. 596 00:26:01,094 --> 00:26:02,510 E qual è la motivazione a quella? 597 00:26:02,510 --> 00:26:05,135 >> STUDENTE: Il [incomprensibile], 0, 1, 2. 598 00:26:05,135 --> 00:26:06,080 >> ALLISON: Esattamente. 599 00:26:06,080 --> 00:26:12,180 Quindi, in un array di dimensione n, avere solo indici di n meno 1. 600 00:26:12,180 --> 00:26:13,700 601 00:26:13,700 --> 00:26:14,200 Freddo. 602 00:26:14,200 --> 00:26:15,091 603 00:26:15,091 --> 00:26:17,840 E allora possiamo diventare matto e ottenere gli array multidimensionali. 604 00:26:17,840 --> 00:26:19,340 605 00:26:19,340 --> 00:26:23,960 Uno dei problemi quando ho preso nel mio anno il termine array multi-dimensionali, 606 00:26:23,960 --> 00:26:28,720 e penso che uno di loro potrebbe richiedere quest'anno, in modo da essere confortevole. 607 00:26:28,720 --> 00:26:30,140 Avvolgere la testa intorno ad esso ora. 608 00:26:30,140 --> 00:26:33,087 Si tornerà a perseguitarci si, ma in un modo fresco. 609 00:26:33,087 --> 00:26:35,420 Così si può davvero solo pensare di array multidimensionali 610 00:26:35,420 --> 00:26:36,870 come array di array. 611 00:26:36,870 --> 00:26:38,060 612 00:26:38,060 --> 00:26:43,809 Così si può sorta di pensare a questo top remare come il primo pezzo di memoria. 613 00:26:43,809 --> 00:26:45,600 E questo è il secondo pezzo di memoria, 614 00:26:45,600 --> 00:26:47,570 e l'ultima riga è il terzo blocco di memoria. 615 00:26:47,570 --> 00:26:50,740 E all'interno di questo, c'è un array. 616 00:26:50,740 --> 00:26:53,250 Ma, naturalmente, è più facile per descrivere come questo. 617 00:26:53,250 --> 00:26:55,610 >> Così si inizializza allo stesso modo. 618 00:26:55,610 --> 00:26:57,290 619 00:26:57,290 --> 00:27:01,610 Questo è un carattere bordo di tre a tre. 620 00:27:01,610 --> 00:27:04,180 In modo da avere tre file e tre colonne. 621 00:27:04,180 --> 00:27:06,760 Stiamo rappresentando in questo modo. 622 00:27:06,760 --> 00:27:11,800 E si dovrebbe accedere alla Allo stesso modo, colonna per riga. 623 00:27:11,800 --> 00:27:14,840 E così 1,1 Come si vede qui. 624 00:27:14,840 --> 00:27:18,730 Assegniamo uno zero, zero fino lì. 625 00:27:18,730 --> 00:27:21,900 2,0 e 0,2. 626 00:27:21,900 --> 00:27:26,900 Così si sarebbe solo accedere them-- se Qualcuno ha mai fatto algebra lineare, 627 00:27:26,900 --> 00:27:31,580 allo stesso modo in cui si accede a un elemento in una matrice, è la stessa idea. 628 00:27:31,580 --> 00:27:33,030 Così è possibile riferirsi di nuovo a matematica. 629 00:27:33,030 --> 00:27:34,130 630 00:27:34,130 --> 00:27:36,380 Non ci si deve preoccupare troppo molto di questo in questo momento. 631 00:27:36,380 --> 00:27:38,671 E 'bello avere un'esposizione, di sapere che si può fare. 632 00:27:38,671 --> 00:27:42,700 È possibile creare un po ' pazzo number-- è possibile 633 00:27:42,700 --> 00:27:44,750 creare array folle è tutto quello che sto per dire. 634 00:27:44,750 --> 00:27:45,250 [Incomprensibile] 635 00:27:45,250 --> 00:27:46,585 636 00:27:46,585 --> 00:27:48,460 Diventa un po 'pazzo, ma è davvero cool. 637 00:27:48,460 --> 00:27:50,020 638 00:27:50,020 --> 00:27:50,670 Impressionante. 639 00:27:50,670 --> 00:27:52,550 >> E poi, così abbiamo un esempio qui. 640 00:27:52,550 --> 00:27:54,165 Si calcola una lunghezza di stringa. 641 00:27:54,165 --> 00:27:55,210 642 00:27:55,210 --> 00:27:59,670 Così come molte persone sapevano che le stringhe che si sta utilizzando 643 00:27:59,670 --> 00:28:01,265 sono solo array di caratteri? 644 00:28:01,265 --> 00:28:03,670 645 00:28:03,670 --> 00:28:04,655 OK, sì. 646 00:28:04,655 --> 00:28:08,000 Quindi voi ragazzi potrebbe pensare che non si dispone di array usato prima, ma in qualsiasi momento 647 00:28:08,000 --> 00:28:10,740 si utilizza getString nel Biblioteca CSView, sei 648 00:28:10,740 --> 00:28:14,690 in realtà solo chiedere un array di caratteri. 649 00:28:14,690 --> 00:28:17,450 E ci stiamo prendendo cura di tutto che nel back-end per voi. 650 00:28:17,450 --> 00:28:20,184 Ma si sta utilizzando array da quando hai iniziato. 651 00:28:20,184 --> 00:28:21,350 Devi solo non lo sapevo ancora. 652 00:28:21,350 --> 00:28:22,420 653 00:28:22,420 --> 00:28:28,390 >> E ogni volta che si dispone di un array di caratteri o una matrice che è la memorizzazione di una stringa, 654 00:28:28,390 --> 00:28:32,050 l'ultima cosa che è sempre ciò che è chiamato terminatore null, che 655 00:28:32,050 --> 00:28:33,830 è questo qui. 656 00:28:33,830 --> 00:28:37,300 Ed è a fine ogni parola che si sta memorizzazione. 657 00:28:37,300 --> 00:28:41,170 Quindi, se vogliamo capire il lunghezza di una stringa, possiamo dire, 658 00:28:41,170 --> 00:28:45,320 beh, sai, il contenuto di quel blocco 659 00:28:45,320 --> 00:28:46,867 non è uguale al nostro terminatore nullo. 660 00:28:46,867 --> 00:28:49,450 Ciò significa che vi è una certa carattere lì che in realtà 661 00:28:49,450 --> 00:28:51,540 cura di questa è parte della parola. 662 00:28:51,540 --> 00:28:52,665 Si aumenta la lunghezza. 663 00:28:52,665 --> 00:28:55,540 E poi quando abbiamo effettivamente arriva a alla fine della parola, che sarà terminare 664 00:28:55,540 --> 00:28:58,790 e tornerà la nostra lunghezza per noi. 665 00:28:58,790 --> 00:29:00,098 Mmhmm? 666 00:29:00,098 --> 00:29:02,906 >> STUDENTE: Fa lo spazio conta come il terminatore nullo? 667 00:29:02,906 --> 00:29:04,780 ALLISON: Quindi uno spazio: non un terminatore null. 668 00:29:04,780 --> 00:29:10,590 Quindi, se si dispone di uno spazio multiple-- è in realtà un valore ASCII specifica. 669 00:29:10,590 --> 00:29:11,719 670 00:29:11,719 --> 00:29:13,552 STUDENTE: Qual è il esclamazione pari di nuovo? 671 00:29:13,552 --> 00:29:17,080 ALLISON: Quindi, questo è quello che si fa riferimento. 672 00:29:17,080 --> 00:29:21,220 Se mai mi senti in orario di ufficio, Ho sempre lo chiamo, come, bang uguale. 673 00:29:21,220 --> 00:29:23,520 Quindi botto non lo è. 674 00:29:23,520 --> 00:29:25,370 Quindi questo non è uguale. 675 00:29:25,370 --> 00:29:28,480 676 00:29:28,480 --> 00:29:32,290 Quindi, se si sta cercando di vedere se c'è qualcosa di falso, 677 00:29:32,290 --> 00:29:35,915 si sa sempre fare, bang qualunque la variabile è, e se è falso, 678 00:29:35,915 --> 00:29:38,540 che restituisce true e può fare cose interessanti con questo. 679 00:29:38,540 --> 00:29:39,830 680 00:29:39,830 --> 00:29:40,675 Ne riparleremo più avanti. 681 00:29:40,675 --> 00:29:42,090 682 00:29:42,090 --> 00:29:42,590 Freddo. 683 00:29:42,590 --> 00:29:44,260 Tutto bene lì? 684 00:29:44,260 --> 00:29:44,760 Impressionante. 685 00:29:44,760 --> 00:29:48,045 >> Così ora è il momento i vostri ragazzi a lavorare, dal momento che ho parlato. 686 00:29:48,045 --> 00:29:49,220 687 00:29:49,220 --> 00:29:53,200 Quindi voglio di creare solo un array con i numeri interi uno, due e tre, 688 00:29:53,200 --> 00:29:54,660 e poi li hanno stampati. 689 00:29:54,660 --> 00:29:58,050 Non devi fare, come, principale, bla, bla, bla, qualunque sia. 690 00:29:58,050 --> 00:30:00,840 Voglio solo di inizializzare la matrice e quindi creare 691 00:30:00,840 --> 00:30:04,790 un ciclo for per stamparli fuori-- o un ciclo while, a voi. 692 00:30:04,790 --> 00:30:07,600 >> Mi limiterò a darvi un paio minuti per lavorare su questo. 693 00:30:07,600 --> 00:30:09,320 Io vado a riposare la mia voce. 694 00:30:09,320 --> 00:30:13,290 Se avete domande, io sono felice a venire intorno e parlare con voi ragazzi. 695 00:30:13,290 --> 00:30:15,290 Sentitevi liberi di parlare tra di loro. 696 00:30:15,290 --> 00:30:16,125 Più caramelle. 697 00:30:16,125 --> 00:30:17,181 698 00:30:17,181 --> 00:30:18,930 In realtà, mi limiterò a andare in giro con la caramella. 699 00:30:18,930 --> 00:30:19,600 Come è che? 700 00:30:19,600 --> 00:30:22,974 701 00:30:22,974 --> 00:30:23,938 >> Vuoi qualsiasi? 702 00:30:23,938 --> 00:30:34,703 703 00:30:34,703 --> 00:30:36,675 Chiunque altro in questa stanza Want Candy? 704 00:30:36,675 --> 00:30:47,030 705 00:30:47,030 --> 00:30:49,206 Si può anche prendere più di uno, ragazzi. 706 00:30:49,206 --> 00:30:50,330 Prendete una manciata, se si desidera. 707 00:30:50,330 --> 00:30:52,690 708 00:30:52,690 --> 00:30:53,190 Maggio come bene. 709 00:30:53,190 --> 00:30:54,929 710 00:30:54,929 --> 00:30:55,720 Tutti gli altri bene? 711 00:30:55,720 --> 00:30:57,561 712 00:30:57,561 --> 00:30:58,060 Ok. 713 00:30:58,060 --> 00:31:02,750 714 00:31:02,750 --> 00:31:07,290 >> Inoltre, ho intenzione di creare un anonimo Google Form, 715 00:31:07,290 --> 00:31:09,830 e voi potete semplicemente inviare un feedback dopo ogni sezione 716 00:31:09,830 --> 00:31:14,115 se c'è qualcosa che si desidera migliorare o qualcosa che si desidera fare. 717 00:31:14,115 --> 00:31:17,135 Se io sono un po 'troppo peppy per te, posso abbassare i toni. 718 00:31:17,135 --> 00:31:18,510 719 00:31:18,510 --> 00:31:20,885 Io creo che e mando che fuori a tutti voi in seguito. 720 00:31:20,885 --> 00:32:39,420 721 00:32:39,420 --> 00:32:40,020 >> Bene. 722 00:32:40,020 --> 00:32:41,050 Quindi cominciamo piccola. 723 00:32:41,050 --> 00:32:42,740 Come possiamo inizializzare la nostra gamma? 724 00:32:42,740 --> 00:32:49,690 725 00:32:49,690 --> 00:32:51,670 Qual è il tipo del nostro array? 726 00:32:51,670 --> 00:32:52,410 Un int, giusto? 727 00:32:52,410 --> 00:32:54,740 OK, così che cosa vuoi per chiamare l'array? 728 00:32:54,740 --> 00:32:57,880 729 00:32:57,880 --> 00:32:59,230 Int array, fresco. 730 00:32:59,230 --> 00:33:04,200 Va bene, quindi abbiamo int int matrice è uguale, e che cosa abbiamo dopo? 731 00:33:04,200 --> 00:33:07,009 732 00:33:07,009 --> 00:33:08,259 STUDENTE: [incomprensibile] parentesi quadre. 733 00:33:08,259 --> 00:33:09,140 ALLISON: Bretelle. 734 00:33:09,140 --> 00:33:10,330 735 00:33:10,330 --> 00:33:11,775 E poi all'interno delle parentesi graffe? 736 00:33:11,775 --> 00:33:14,360 737 00:33:14,360 --> 00:33:16,830 Uno virgola due virgola tre. 738 00:33:16,830 --> 00:33:17,330 Freddo. 739 00:33:17,330 --> 00:33:18,660 Ecco, questo è tutto a posto. 740 00:33:18,660 --> 00:33:21,480 Così ora abbiamo il nostro ciclo for. 741 00:33:21,480 --> 00:33:24,180 Quindi, nella prima parte del nostro per il ciclo, che cosa abbiamo? 742 00:33:24,180 --> 00:33:25,796 743 00:33:25,796 --> 00:33:27,420 >> Studente: è uguale a 0? 744 00:33:27,420 --> 00:33:31,400 >> ALLISON: Così int i uguale a 0, e allora qual è la nostra condizione? 745 00:33:31,400 --> 00:33:33,750 746 00:33:33,750 --> 00:33:36,120 Che cosa sono io intenzione di essere inferiore? 747 00:33:36,120 --> 00:33:39,510 Meno di tre, e come lo facciamo aggiorniamo i? 748 00:33:39,510 --> 00:33:41,630 i plus plus, aggiornandolo per uno. 749 00:33:41,630 --> 00:33:46,150 E poi stiamo andando ad avere alcuni printf del numero intero, 750 00:33:46,150 --> 00:33:49,530 e ciò che è l'ultima parte che in realtà è 751 00:33:49,530 --> 00:33:51,370 per dire quello che dovremmo di stampa? 752 00:33:51,370 --> 00:33:55,610 753 00:33:55,610 --> 00:33:59,120 Sarebbe il nome matrice, che è di tipo int array, giusto? 754 00:33:59,120 --> 00:34:01,090 E cosa c'è nelle fasce di int array? 755 00:34:01,090 --> 00:34:02,540 756 00:34:02,540 --> 00:34:03,640 i. 757 00:34:03,640 --> 00:34:06,550 [? Così ho?] Chiamato il mio esempio, ma ci si va. 758 00:34:06,550 --> 00:34:07,939 759 00:34:07,939 --> 00:34:08,480 Non è poi così male. 760 00:34:08,480 --> 00:34:09,250 Tutto bene? 761 00:34:09,250 --> 00:34:10,220 762 00:34:10,220 --> 00:34:10,719 Freddo. 763 00:34:10,719 --> 00:34:12,949 764 00:34:12,949 --> 00:34:14,340 >> Così abbiamo finito con gli array. 765 00:34:14,340 --> 00:34:15,190 Complimenti. 766 00:34:15,190 --> 00:34:18,274 Sei riuscito a iterare attraverso tutti the-- sì? 767 00:34:18,274 --> 00:34:19,705 >> STUDENTE: [incomprensibile] 768 00:34:19,705 --> 00:34:20,659 >> ALLISON: Sì. 769 00:34:20,659 --> 00:34:26,383 770 00:34:26,383 --> 00:34:27,798 >> STUDENTE: Ho una domanda. 771 00:34:27,798 --> 00:34:30,288 Dovresti rientrare le parentesi graffe? 772 00:34:30,288 --> 00:34:34,150 >> ALLISON: Così le parentesi devono essere allineati con il ciclo for, e poi tutto 773 00:34:34,150 --> 00:34:35,699 all'interno delle parentesi graffe devono essere rientrate. 774 00:34:35,699 --> 00:34:37,824 >> STUDENTE: OK, qualora il per il ciclo rientrato? 775 00:34:37,824 --> 00:34:41,159 >> ALLISON: Il ciclo for non lo fa devono essere rientrato a questo punto. 776 00:34:41,159 --> 00:34:46,750 Se tu fossi in principale, se in realtà aveva una funzione principale qui, 777 00:34:46,750 --> 00:34:48,929 sarebbe rientrato dalla principale. 778 00:34:48,929 --> 00:34:52,590 Ma in questo caso, va bene. 779 00:34:52,590 --> 00:34:53,354 Sì, domanda. 780 00:34:53,354 --> 00:34:55,687 >> STUDENTE: Non è necessario disporre di le parentesi dopo esempio? 781 00:34:55,687 --> 00:34:59,050 782 00:34:59,050 --> 00:35:01,260 >> ALLISON: Sì, se siete inizializzazione in questo modo. 783 00:35:01,260 --> 00:35:03,430 784 00:35:03,430 --> 00:35:06,860 Quindi ricordate, questo è il secondo modo di inizializzazione di un array in cui 785 00:35:06,860 --> 00:35:10,680 abbiamo le parentesi e poi il nostro attuale dati separati da virgole all'interno. 786 00:35:10,680 --> 00:35:14,700 787 00:35:14,700 --> 00:35:17,281 >> STUDENTE: Ho pensato che ci fossero staffe per questo esempio. 788 00:35:17,281 --> 00:35:19,010 >> ALLISON: No, sono parentesi graffe. 789 00:35:19,010 --> 00:35:20,039 Sono parentesi graffe. 790 00:35:20,039 --> 00:35:22,330 Se stai inizializzandolo che secondo modo, si tratta di parentesi graffe. 791 00:35:22,330 --> 00:35:28,780 Se dovessimo dire, int example-- se volevamo solo una matrice vuota per interi, 792 00:35:28,780 --> 00:35:32,270 sarebbe esempio int Staffe di tre. 793 00:35:32,270 --> 00:35:34,670 Le parentesi rappresentano le dimensioni. 794 00:35:34,670 --> 00:35:36,720 Quando si dispone di parentesi graffe, è i dati effettivi 795 00:35:36,720 --> 00:35:39,244 si sta mettendo in esso in questo modo. 796 00:35:39,244 --> 00:35:40,535 Siamo in grado di scorrere all'indietro veramente veloce. 797 00:35:40,535 --> 00:35:42,370 798 00:35:42,370 --> 00:35:48,010 >> Quindi, in questo, questo è solo il nostro matrice iniziale, l'inizializzazione. 799 00:35:48,010 --> 00:35:51,640 E qui, noi siamo individualmente assegnando punti a loro, 800 00:35:51,640 --> 00:35:56,730 quindi questo rappresenta l'indice della nostra array, ed è per questo che abbiamo parentesi. 801 00:35:56,730 --> 00:36:01,630 Ma qui, se si nota, abbiamo lasciato i nostri parentesi senza dimensione, 802 00:36:01,630 --> 00:36:05,969 e si inizializza con il dati effettivi all-in-one con le parentesi graffe. 803 00:36:05,969 --> 00:36:08,260 STUDENTE: Allora perché non abbiamo staffe in questo esempio? 804 00:36:08,260 --> 00:36:11,030 ALLISON: Quindi, in quale parte? 805 00:36:11,030 --> 00:36:14,645 STUDENTE: non dovremmo diciamo, int esempio staffe 806 00:36:14,645 --> 00:36:19,710 equi- vale a parentesi graffe [incomprensibile] staffe per esempio. 807 00:36:19,710 --> 00:36:20,900 >> ALLISON: Oh, mi dispiace. 808 00:36:20,900 --> 00:36:21,560 Hai ragione. 809 00:36:21,560 --> 00:36:22,690 Noi abbiamo parentesi lì. 810 00:36:22,690 --> 00:36:23,486 Scusate ragazzi, il mio male. 811 00:36:23,486 --> 00:36:25,150 812 00:36:25,150 --> 00:36:27,560 Sì, si dovrebbe avere parentesi dopo esempio. 813 00:36:27,560 --> 00:36:28,850 Hai assolutamente ragione. 814 00:36:28,850 --> 00:36:29,750 >> STUDENTE: [incomprensibile] non farlo. 815 00:36:29,750 --> 00:36:31,270 >> ALLISON: No, è necessario disporre di staffe, perché altrimenti è 816 00:36:31,270 --> 00:36:32,810 non andare a dichiarare un array. 817 00:36:32,810 --> 00:36:33,685 STUDENTE: [incomprensibile]. 818 00:36:33,685 --> 00:36:34,200 Mi dispiace. 819 00:36:34,200 --> 00:36:36,200 >> ALLISON: Mi dispiace, è necessario parentesi dopo esempio. 820 00:36:36,200 --> 00:36:36,620 821 00:36:36,620 --> 00:36:37,120 Typo. 822 00:36:37,120 --> 00:36:40,650 823 00:36:40,650 --> 00:36:43,160 Buona pesca, stella d'oro per voi. 824 00:36:43,160 --> 00:36:47,730 Inoltre, se ti stai chiedendo una domanda, se voi ragazzi sarebbe solo dirmi i vostri nomi, 825 00:36:47,730 --> 00:36:48,570 Mi piacerebbe che. 826 00:36:48,570 --> 00:36:50,630 Mi piacerebbe essere in grado di conoscere tutti i vostri nomi. 827 00:36:50,630 --> 00:36:53,187 Io non ho intenzione di freddo vi invito, in realtà ho 828 00:36:53,187 --> 00:36:54,520 voglio solo sapere i vostri nomi. 829 00:36:54,520 --> 00:36:57,530 Quindi, per favore in realtà mi dicono i vostri nomi. 830 00:36:57,530 --> 00:36:58,426 >> LEAH: Leah. 831 00:36:58,426 --> 00:36:59,340 >> ALLISON: Leah. 832 00:36:59,340 --> 00:37:03,960 OK, quindi functions-- so che in breve Hanno parlato di questo durante la lezione. 833 00:37:03,960 --> 00:37:07,590 Quindi, le funzioni sono un po 'solo come queste piccole cose di bite-size 834 00:37:07,590 --> 00:37:11,525 dove si passa in input, qualcosa magico accade, e si ottiene uscite. 835 00:37:11,525 --> 00:37:12,680 836 00:37:12,680 --> 00:37:13,180 Freddo. 837 00:37:13,180 --> 00:37:15,013 Così effettivamente utilizzato un Molti di questi già. 838 00:37:15,013 --> 00:37:15,970 839 00:37:15,970 --> 00:37:18,840 Prendi int, ottenere stringa, stampa f. 840 00:37:18,840 --> 00:37:21,790 Queste sono tutte le funzioni dove appena li chiami, 841 00:37:21,790 --> 00:37:24,370 c'è un sacco di cose magiche in corso in background 842 00:37:24,370 --> 00:37:27,390 che non necessariamente vede, e si ottiene ciò che si desidera. 843 00:37:27,390 --> 00:37:30,280 O almeno si ottiene quello che speri che vuoi. 844 00:37:30,280 --> 00:37:31,920 845 00:37:31,920 --> 00:37:35,620 >> E fondamentalmente il punto di funzioni, e uno dei principali temi di CS, 846 00:37:35,620 --> 00:37:38,700 è quello di rompere il vostro codice in pezzi gestibili. 847 00:37:38,700 --> 00:37:41,520 Quando si inizia a scrivere questi davvero lunghi programmi, 848 00:37:41,520 --> 00:37:44,970 o in Scratch quando si aveva questa grande idea per un gioco, 849 00:37:44,970 --> 00:37:48,070 è necessario essere in grado di rompere fino a, come, OK, come si comincia? 850 00:37:48,070 --> 00:37:50,470 Quali sono i piccoli pezzi che ho bisogno? 851 00:37:50,470 --> 00:37:53,320 Oh, ho bisogno di chiedere il utente per qualcosa. 852 00:37:53,320 --> 00:37:54,830 Ora ho bisogno di stampare qualcosa. 853 00:37:54,830 --> 00:37:56,590 Oh, ho bisogno di calcolare questo valore. 854 00:37:56,590 --> 00:38:00,050 >> E imparare a rompere il vostro codice e grandi problemi che 855 00:38:00,050 --> 00:38:02,740 hanno in questi piccoli pezzi e la creazione di funzioni 856 00:38:02,740 --> 00:38:05,330 è in realtà uno dei grandi capisaldi del CS. 857 00:38:05,330 --> 00:38:06,440 858 00:38:06,440 --> 00:38:11,740 Così si può pensare ad una funzione come come una scatola nera, una scatola nera magico, 859 00:38:11,740 --> 00:38:15,030 che si mette le cose in e si ottiene un output. 860 00:38:15,030 --> 00:38:16,290 861 00:38:16,290 --> 00:38:19,460 E il resto del programma non ha bisogno di conoscere necessariamente 862 00:38:19,460 --> 00:38:21,150 quello che sta succedendo all'interno di quella scatola nera. 863 00:38:21,150 --> 00:38:24,190 Tutto ciò che preoccupa è quello che entra e quello che esce. 864 00:38:24,190 --> 00:38:26,230 865 00:38:26,230 --> 00:38:26,730 Freddo. 866 00:38:26,730 --> 00:38:27,820 >> Allora perché funzioni? 867 00:38:27,820 --> 00:38:33,240 Organization-- come ho detto, quando sei si tratta di grandi basi di codice, 868 00:38:33,240 --> 00:38:37,357 come organizzare il vostro codice sarà molto più facile se si utilizzano le funzioni. 869 00:38:37,357 --> 00:38:39,190 Perché sarete in grado di essere, come, OK questo, 870 00:38:39,190 --> 00:38:41,849 è ciò che questa funzione fa e ecco ciò che un altro lo fa. 871 00:38:41,849 --> 00:38:43,890 E si può facilmente vedere come tutti si incastrano. 872 00:38:43,890 --> 00:38:45,590 873 00:38:45,590 --> 00:38:48,210 Quindi la rottura in su in tutto queste sottoparti gestibili. 874 00:38:48,210 --> 00:38:51,860 >> Così simplification-- Sono sicuro che voi ragazzi tutto visto questo, come ho detto, con Scratch. 875 00:38:51,860 --> 00:38:53,230 876 00:38:53,230 --> 00:38:56,790 Hai questa grande idea, e siete come, come fa tutto questo lavoro? 877 00:38:56,790 --> 00:38:59,710 Ma se ci si avvicina frammentario, si dice, OK, 878 00:38:59,710 --> 00:39:03,650 come faccio a fare uno sprite galleggiare sullo schermo? 879 00:39:03,650 --> 00:39:04,805 Questo è un po 'più facile. 880 00:39:04,805 --> 00:39:06,000 881 00:39:06,000 --> 00:39:09,590 Quindi un buon uso di marche di funzione il codice molto più facile da leggere. 882 00:39:09,590 --> 00:39:13,800 Rende più facile eseguire il debug di che, come si entra in vostro set problema più tardi, 883 00:39:13,800 --> 00:39:15,900 si sta andando per davvero vogliono essere in grado di fare. 884 00:39:15,900 --> 00:39:17,900 E sono anche più facile per progettare e realizzare. 885 00:39:17,900 --> 00:39:21,100 È possibile codificare una piccola funzionare in tempi relativamente brevi 886 00:39:21,100 --> 00:39:25,260 e assicurarsi che funziona contro cercando per creare tutto questo programma lungo 887 00:39:25,260 --> 00:39:28,960 e poi tipo di passare attraverso e vedere che cosa funziona e cosa non lo è. 888 00:39:28,960 --> 00:39:30,300 >> E poi riusabilità. 889 00:39:30,300 --> 00:39:33,380 In modo che solo le funzioni bisogno essere scritto una volta, 890 00:39:33,380 --> 00:39:35,586 e poi si possono usare come numero di volte possibile. 891 00:39:35,586 --> 00:39:37,210 Quindi è, come, eco-friendly in un certo senso. 892 00:39:37,210 --> 00:39:39,660 893 00:39:39,660 --> 00:39:42,070 Se tu avessi le cose come stampa f, dove 894 00:39:42,070 --> 00:39:47,420 ha dovuto scrivere la magia che va dietro stampare f ogni volta 895 00:39:47,420 --> 00:39:51,040 si voleva stampare qualcosa, si sarebbe piuttosto malato e stanco di esso 896 00:39:51,040 --> 00:39:51,650 alla fine. 897 00:39:51,650 --> 00:39:52,660 898 00:39:52,660 --> 00:39:55,292 >> Una delle cose che ti imparare in classi successive CS, 899 00:39:55,292 --> 00:39:57,000 o uno dei migliori pezzi di consigli che ricevo 900 00:39:57,000 --> 00:40:00,870 è, se si copia e incolla codice, probabilmente dovrebbe essere una funzione. 901 00:40:00,870 --> 00:40:01,880 902 00:40:01,880 --> 00:40:06,007 Se avete la stessa esatta tutte le linee in tutto il codice, 903 00:40:06,007 --> 00:40:08,090 se li fattorizzato, il codice sarebbe probabilmente 904 00:40:08,090 --> 00:40:11,860 essere, come, cinque volte più brevi e molto più facile da leggere. 905 00:40:11,860 --> 00:40:15,230 E invece di cercare di risolvere i problemi tutti questi diversi luoghi in cui le cose 906 00:40:15,230 --> 00:40:18,021 potrebbe andare storto, si dispone di una funzione che si arriva a risolvere i problemi. 907 00:40:18,021 --> 00:40:19,230 908 00:40:19,230 --> 00:40:21,890 E prometto, un sacco di questo potrebbe sembrare sorta di astratta ora, 909 00:40:21,890 --> 00:40:24,620 ma come si ottiene in seguito e problema più tardi imposta, 910 00:40:24,620 --> 00:40:28,950 lo farò molto più senso e davvero essere guidato a casa. 911 00:40:28,950 --> 00:40:31,775 Ci sono domande sulle funzioni fino ad ora? 912 00:40:31,775 --> 00:40:32,650 Perché stiamo usando li? 913 00:40:32,650 --> 00:40:34,775 So che non abbiamo ottenuto nella Nitty Gritty ancora. 914 00:40:34,775 --> 00:40:40,610 Quindi la definizione di un function-- come array, abbiamo bisogno di una sorta di-- questo 915 00:40:40,610 --> 00:40:41,860 è solo l'uscita generale. 916 00:40:41,860 --> 00:40:45,110 Quindi questa è una funzione che è solo andare a cubo alcuni input. 917 00:40:45,110 --> 00:40:50,120 E nella pagina successiva, in realtà, abbiamo tutte queste piccole cose impressionanti qui. 918 00:40:50,120 --> 00:40:52,420 Così, in grado di leggere tutti che, per curiosità? 919 00:40:52,420 --> 00:40:55,050 So che il viola e il nero potrebbe essere un po 'difficile. 920 00:40:55,050 --> 00:41:00,730 >> Ma grandi cose per know-- quindi la prima uno proprio qui è il nostro tipo di ritorno. 921 00:41:00,730 --> 00:41:05,270 Quindi questo sta parlando l'uscita di questa funzione, in questo caso, 922 00:41:05,270 --> 00:41:08,990 abbiamo messo in un certo numero, che cosa siamo ottenere è che il numero a cubetti. 923 00:41:08,990 --> 00:41:11,090 Quindi dovrebbe essere un int in questo caso. 924 00:41:11,090 --> 00:41:14,055 Forse sarebbe un doppio o qualcos'altro successivamente, ma in questo caso, 925 00:41:14,055 --> 00:41:14,555 si tratta di un int. 926 00:41:14,555 --> 00:41:15,620 927 00:41:15,620 --> 00:41:19,440 >> Con c, è sempre necessario un tipo di ritorno. 928 00:41:19,440 --> 00:41:20,267 Sarà un int. 929 00:41:20,267 --> 00:41:20,975 Sarà un galleggiante. 930 00:41:20,975 --> 00:41:22,180 Sarà una doppia. 931 00:41:22,180 --> 00:41:25,370 Ma bisogna specificare cosa questa funzione sta per tornare. 932 00:41:25,370 --> 00:41:26,480 933 00:41:26,480 --> 00:41:29,170 Altrimenti sarà urlare a voi, e non si compila. 934 00:41:29,170 --> 00:41:30,462 Sarai triste, e io sarò triste. 935 00:41:30,462 --> 00:41:31,420 E non è solo buono. 936 00:41:31,420 --> 00:41:31,940 Ok. 937 00:41:31,940 --> 00:41:34,290 >> E poi abbiamo il nostro nome della funzione. 938 00:41:34,290 --> 00:41:38,440 E come potete vedere qui, con c c'è questo paradigma molto coerente. 939 00:41:38,440 --> 00:41:42,630 Qual è il tuo tipo, qual è il nome, e poi qualche altra cosa alla fine. 940 00:41:42,630 --> 00:41:45,550 Così abbiamo il nostro tipo di ritorno, il nostro nome della funzione, e quindi 941 00:41:45,550 --> 00:41:49,320 noi abbiamo la nostra intestazione con la nostra lista dei parametri. 942 00:41:49,320 --> 00:41:52,080 >> Quindi l'elenco dei parametri è, ciò che è questa funzione andando a prendere in? 943 00:41:52,080 --> 00:41:56,360 Una lista di parametri è semplicemente un sinonimo di, quali sono le nostre entrate? 944 00:41:56,360 --> 00:42:00,230 E nello stesso modo in cui necessario definire la nostra funzione 945 00:42:00,230 --> 00:42:03,210 e dargli un ritorno tipo, ciascuno dei nostri ingressi 946 00:42:03,210 --> 00:42:05,350 deve avere un tipo associato. 947 00:42:05,350 --> 00:42:08,850 Così sappiamo che cosa la nostra funzione può effettivamente lavorare. 948 00:42:08,850 --> 00:42:11,290 >> Quindi, in questo caso, abbiamo alcuni input int. 949 00:42:11,290 --> 00:42:14,660 Quindi, di nuovo, sarà il tipo e ciò che si sta chiamando esso. 950 00:42:14,660 --> 00:42:16,500 951 00:42:16,500 --> 00:42:19,040 E poi, come si vede qui, abbiamo il nostro corpo. 952 00:42:19,040 --> 00:42:23,600 Così abbiamo un output int, che è solo il nostro tempo di ingresso si 953 00:42:23,600 --> 00:42:25,810 tempi di sé, che cubi e basta. 954 00:42:25,810 --> 00:42:27,610 E allora torniamo che in uscita. 955 00:42:27,610 --> 00:42:32,140 >> Quindi, come vedete qui, abbiamo un volte int int volte un int, 956 00:42:32,140 --> 00:42:35,420 quindi restituisce un int, che è stato dichiarato lì. 957 00:42:35,420 --> 00:42:38,240 Quindi tutto è coesa. 958 00:42:38,240 --> 00:42:39,210 Tutto è felice. 959 00:42:39,210 --> 00:42:40,250 La funzione verrà eseguito. 960 00:42:40,250 --> 00:42:41,192 961 00:42:41,192 --> 00:42:42,650 E questa è solo la cosa generale. 962 00:42:42,650 --> 00:42:46,750 Così hanno sempre tipo restituito, nome, e la tua lista dei parametri. 963 00:42:46,750 --> 00:42:48,830 Ogni cosa nella vostra lista dei parametri, o di input, 964 00:42:48,830 --> 00:42:51,410 deve avere un tipo associato. 965 00:42:51,410 --> 00:42:54,210 E poi hai il tuo corpo qui con qualsiasi 966 00:42:54,210 --> 00:42:55,590 si vuole fare con il vostro input. 967 00:42:55,590 --> 00:42:57,390 968 00:42:57,390 --> 00:43:00,410 >> E poi, ovviamente, si voglia di restituire qualcosa. 969 00:43:00,410 --> 00:43:02,630 A volte le funzioni saranno solo ritorno. 970 00:43:02,630 --> 00:43:06,090 Essi in realtà non tornano qualcosa per l'uso. 971 00:43:06,090 --> 00:43:08,660 Ma bisogna tornare in qualche modo. 972 00:43:08,660 --> 00:43:12,900 E quando si sta facendo le proprie funzioni, 973 00:43:12,900 --> 00:43:15,430 siamo in grado di entrare in quella un po 'più in profondità. 974 00:43:15,430 --> 00:43:18,880 Personalmente, se si vuole, ci sono un sacco di cose diverse che si possa fare lì. 975 00:43:18,880 --> 00:43:21,350 976 00:43:21,350 --> 00:43:22,140 Tutto bene? 977 00:43:22,140 --> 00:43:25,900 Qualsiasi cosa in questa lista che mi vuoi di andare oltre, che non hai capito? 978 00:43:25,900 --> 00:43:27,204 979 00:43:27,204 --> 00:43:28,120 Ognuno è buono c'è? 980 00:43:28,120 --> 00:43:29,071 981 00:43:29,071 --> 00:43:29,570 Freddo. 982 00:43:29,570 --> 00:43:31,350 983 00:43:31,350 --> 00:43:32,120 Impressionante. 984 00:43:32,120 --> 00:43:34,700 >> OK, così abbiamo deciso di mettere tutto questo insieme ora. 985 00:43:34,700 --> 00:43:35,720 986 00:43:35,720 --> 00:43:41,201 Così abbiamo alcuni input int cubo, in modo da si tratta di un programma completo qui. 987 00:43:41,201 --> 00:43:42,950 Fino ad ora, ho tipo stato di dare voi 988 00:43:42,950 --> 00:43:45,699 frammenti di ragazzi che potrebbero essere in corso all'interno di un programma. 989 00:43:45,699 --> 00:43:47,240 Siamo appena stati a guardare le funzioni. 990 00:43:47,240 --> 00:43:48,448 Ma qui c'è un intero programma. 991 00:43:48,448 --> 00:43:49,400 992 00:43:49,400 --> 00:43:53,690 Così come molti di voi ricordano il parola prototipo da lezione? 993 00:43:53,690 --> 00:43:54,750 994 00:43:54,750 --> 00:43:55,300 Freddo. 995 00:43:55,300 --> 00:43:55,890 Abbiamo uno. 996 00:43:55,890 --> 00:43:57,160 997 00:43:57,160 --> 00:43:58,110 Come ti chiami? 998 00:43:58,110 --> 00:43:58,850 >> STEPH: Steph. 999 00:43:58,850 --> 00:43:59,475 >> ALLISON: Steph? 1000 00:43:59,475 --> 00:44:01,030 OK, impressionante. 1001 00:44:01,030 --> 00:44:03,310 Quindi, ti ricordi quello che un prototipo è? 1002 00:44:03,310 --> 00:44:04,651 1003 00:44:04,651 --> 00:44:10,230 >> STUDENTE: Lei dice che [incomprensibile] prima che realmente a che fare con esso. 1004 00:44:10,230 --> 00:44:11,700 >> ALLISON: Ti ricordi perché? 1005 00:44:11,700 --> 00:44:13,158 >> Studente: No. 1006 00:44:13,158 --> 00:44:14,620 >> ALLISON: OK. 1007 00:44:14,620 --> 00:44:16,090 Stella d'oro. 1008 00:44:16,090 --> 00:44:19,470 Quindi sì, un prototipo che abbiamo prima, perché altrimenti, 1009 00:44:19,470 --> 00:44:21,260 il nostro compilatore sta per urlare a noi. 1010 00:44:21,260 --> 00:44:24,294 E 'intenzione di dire, OK, qual è la funzione del cubo? 1011 00:44:24,294 --> 00:44:26,460 Come, avete letteralmente mi ha detto nulla di questo. 1012 00:44:26,460 --> 00:44:28,110 E 'come quando si entrare in una classe, 1013 00:44:28,110 --> 00:44:29,320 e qualcuno è come, c'è un quiz di oggi. 1014 00:44:29,320 --> 00:44:31,380 E tu sei come, non mi ha mai parlato di questo. 1015 00:44:31,380 --> 00:44:32,930 Io non sono felice con noi. 1016 00:44:32,930 --> 00:44:34,300 1017 00:44:34,300 --> 00:44:37,020 Il prototipo è fondamentalmente come il vostro programma dicendo, guarda. 1018 00:44:37,020 --> 00:44:37,900 Heads up. 1019 00:44:37,900 --> 00:44:39,570 Ci sara 'un quiz in questo giorno. 1020 00:44:39,570 --> 00:44:41,420 Non fuori di testa quando si arriva ad esso. 1021 00:44:41,420 --> 00:44:42,690 Si sta andando ad essere bene. 1022 00:44:42,690 --> 00:44:48,170 >> Quindi tutto il prototipo non è dire principale, ho intenzione di utilizzare questa funzione. 1023 00:44:48,170 --> 00:44:51,010 Prometto che sto definendo in un secondo momento. 1024 00:44:51,010 --> 00:44:52,260 Non freak fuori di me. 1025 00:44:52,260 --> 00:44:54,750 Basta compilare e fare quello che ti dico. 1026 00:44:54,750 --> 00:44:58,880 Così abbiamo il prototipo ci solo per rendere il nostro compilatore felice. 1027 00:44:58,880 --> 00:45:04,360 Ed è fondamentalmente una promessa che aver definito questa funzione dopo 1028 00:45:04,360 --> 00:45:07,960 e che non sono solo chiamando questa cosa casuale che 1029 00:45:07,960 --> 00:45:10,070 non si sa cosa si sta intenzione di fare. 1030 00:45:10,070 --> 00:45:11,910 >> Quindi, in questo caso, abbiamo principale qui. 1031 00:45:11,910 --> 00:45:14,660 Inizializziamo qualche intero x. 1032 00:45:14,660 --> 00:45:15,620 Questo è due. 1033 00:45:15,620 --> 00:45:17,510 Stiamo andando a stampare ciò che è x. 1034 00:45:17,510 --> 00:45:18,800 Stiamo andando a cubo x. 1035 00:45:18,800 --> 00:45:21,520 Come potete vedere, abbiamo il nostro dichiarazione di funzione 1036 00:45:21,520 --> 00:45:23,770 qui che abbiamo parlato in precedenza. 1037 00:45:23,770 --> 00:45:28,260 Sarà cube x, e poi, se si ricordate, la funzione del cubo effettivamente 1038 00:45:28,260 --> 00:45:31,340 restituisce un numero intero di noi, che è memorizzato 1039 00:45:31,340 --> 00:45:35,860 in x di nuovo in modo che ci permette di stampare le otto, o cubo di x in questo momento. 1040 00:45:35,860 --> 00:45:37,170 1041 00:45:37,170 --> 00:45:38,920 Questo fa senso per tutti? 1042 00:45:38,920 --> 00:45:40,360 Siamo bravi? 1043 00:45:40,360 --> 00:45:41,160 Bene. 1044 00:45:41,160 --> 00:45:41,660 Impressionante. 1045 00:45:41,660 --> 00:45:45,540 1046 00:45:45,540 --> 00:45:46,840 >> Bene. 1047 00:45:46,840 --> 00:45:50,879 Quanti di voi ragazzi Ricordate questo modo questo 1048 00:45:50,879 --> 00:45:52,670 è fondamentalmente solo la tua stack e heap tua, 1049 00:45:52,670 --> 00:45:56,510 solo una visualizzazione come la memoria viene memorizzato qui. 1050 00:45:56,510 --> 00:45:58,200 1051 00:45:58,200 --> 00:46:01,400 Quindi, vogliamo solo fare Assicurarsi di aver compreso 1052 00:46:01,400 --> 00:46:03,680 come questi sono rappresentati in memoria. 1053 00:46:03,680 --> 00:46:07,670 Se si prende classi come CS61 e roba più tardi, 1054 00:46:07,670 --> 00:46:10,570 si arriva a imparare questo molto più in profondità, ed è davvero cool. 1055 00:46:10,570 --> 00:46:11,730 Lo consiglio vivamente. 1056 00:46:11,730 --> 00:46:12,740 1057 00:46:12,740 --> 00:46:14,720 Ma per ora, ti darò la vasta panoramica 1058 00:46:14,720 --> 00:46:16,950 in modo da non dover conoscere la parte fondamentale. 1059 00:46:16,950 --> 00:46:20,820 >> Quindi la cima solo un segmento di testo che contiene gli zeri e quelli effettivi, 1060 00:46:20,820 --> 00:46:23,740 il binario per questo. 1061 00:46:23,740 --> 00:46:27,510 E questo è utilizzata per memorizzare le variabili globali se ne avete. 1062 00:46:27,510 --> 00:46:28,870 1063 00:46:28,870 --> 00:46:32,240 Mentre ci si sposta verso il basso, abbiamo avere, come vedete qui, 1064 00:46:32,240 --> 00:46:34,670 dati inizializzati, non inizializzati dati, e quindi heap. 1065 00:46:34,670 --> 00:46:35,800 1066 00:46:35,800 --> 00:46:38,584 >> Quindi in realtà non parliamo sul mucchio in questo momento. 1067 00:46:38,584 --> 00:46:39,500 Ci arriveremo in un secondo momento. 1068 00:46:39,500 --> 00:46:40,762 1069 00:46:40,762 --> 00:46:42,970 Per ora, sto solo andando a onda le mie mani e di essere come, 1070 00:46:42,970 --> 00:46:44,553 non hai bisogno di sapere su questo ora. 1071 00:46:44,553 --> 00:46:46,100 1072 00:46:46,100 --> 00:46:49,060 Ma parliamo un po ' po 'lo stack. 1073 00:46:49,060 --> 00:46:53,050 Quindi lo stack è where-- abbiamo zoom. 1074 00:46:53,050 --> 00:46:58,590 Questo è in realtà come il programma abbiamo appena esaminato si verifica in memoria. 1075 00:46:58,590 --> 00:47:01,630 >> Che cosa succede a dire, ogni tempo che noi chiamiamo una funzione, 1076 00:47:01,630 --> 00:47:04,180 si ottiene quello che si chiama una pila cornice, che è uno di questi. 1077 00:47:04,180 --> 00:47:05,870 Parametri in modo di principali. 1078 00:47:05,870 --> 00:47:07,944 Così quelli sono le cose che passiamo in principale. 1079 00:47:07,944 --> 00:47:11,110 Quindi sono proprio qui in basso, perché questa è la prima cosa che chiamiamo. 1080 00:47:11,110 --> 00:47:13,401 E poi si arriva a principali del gente del posto, e quando diciamo che, 1081 00:47:13,401 --> 00:47:15,970 intendiamo le variabili locali che vengono memorizzati all'interno principale. 1082 00:47:15,970 --> 00:47:19,950 1083 00:47:19,950 --> 00:47:23,620 Così la gente del posto qui sarebbe, come, x è uguale a due in questo caso. 1084 00:47:23,620 --> 00:47:26,350 Perché questo è localizzato a principale. 1085 00:47:26,350 --> 00:47:29,745 Non tutti ricordano campo di applicazione, andando oltre che in conferenza? 1086 00:47:29,745 --> 00:47:31,517 1087 00:47:31,517 --> 00:47:32,017 Ok. 1088 00:47:32,017 --> 00:47:36,110 Quindi, solo le variabili che vengono inizializzati all'interno principale. 1089 00:47:36,110 --> 00:47:38,550 Quindi è per questo che abbiamo principale [? vocals. ?] 1090 00:47:38,550 --> 00:47:40,390 >> E poi nel principale, che noi chiamiamo cubo. 1091 00:47:40,390 --> 00:47:41,000 Giusto? 1092 00:47:41,000 --> 00:47:44,510 Così otteniamo un altro frame con i parametri di cubo. 1093 00:47:44,510 --> 00:47:47,050 Quindi in questo caso, il cubo di parametri sono ora 1094 00:47:47,050 --> 00:47:50,800 la x che siamo passati in, i due che siamo passati in. 1095 00:47:50,800 --> 00:47:55,320 E poi i locali del cubo, che è dove la cubatura effettiva accade. 1096 00:47:55,320 --> 00:47:56,450 E poi ritorna. 1097 00:47:56,450 --> 00:48:02,120 >> Quindi, ciò che accade è come il cubo fa in realtà quello che dovrebbe fare, ritorna. 1098 00:48:02,120 --> 00:48:07,020 Quando ritorna, questa cornice lascia, e la sua tornato giù a principale. 1099 00:48:07,020 --> 00:48:09,160 E poi nel principale, abbiamo può effettivamente stamparlo. 1100 00:48:09,160 --> 00:48:10,840 1101 00:48:10,840 --> 00:48:14,500 Così, quando stai tornando qualcosa, quando la funzione restituisce, 1102 00:48:14,500 --> 00:48:19,900 è come trasmettere quei valori di il telaio sotto e poi lasciare. 1103 00:48:19,900 --> 00:48:22,200 E le cose sono da eseguire in ordine. 1104 00:48:22,200 --> 00:48:25,550 >> E quando si arriva a programmi più grandi, siamo in grado di rendere più fresco e più complicato 1105 00:48:25,550 --> 00:48:26,470 diagrammi. 1106 00:48:26,470 --> 00:48:29,070 Ma per ora, questo è solo una panoramica generale 1107 00:48:29,070 --> 00:48:31,110 in modo da avere una specie di comprensione di ciò che 1108 00:48:31,110 --> 00:48:35,160 succede quando si sta chiamando una funzione e come che oggi si presenta in memoria. 1109 00:48:35,160 --> 00:48:37,230 1110 00:48:37,230 --> 00:48:37,770 Cool? 1111 00:48:37,770 --> 00:48:38,353 Tutto bene? 1112 00:48:38,353 --> 00:48:39,920 1113 00:48:39,920 --> 00:48:40,420 Impressionante. 1114 00:48:40,420 --> 00:48:42,070 1115 00:48:42,070 --> 00:48:50,575 >> Quindi questo è quello che è solo cercando di scambiare le cose. 1116 00:48:50,575 --> 00:48:52,260 1117 00:48:52,260 --> 00:48:54,930 Come si vede qui, abbiamo il nostro prototipo di funzione 1118 00:48:54,930 --> 00:48:56,900 in modo che il nostro compilatore non urlare contro di noi. 1119 00:48:56,900 --> 00:48:59,220 Abbiamo un po 'principale, e noi desidera passare x e y. 1120 00:48:59,220 --> 00:49:00,320 1121 00:49:00,320 --> 00:49:04,129 Non hanno fatto questo demo in ancora lezione, hanno essi? 1122 00:49:04,129 --> 00:49:04,670 Essi non hanno? 1123 00:49:04,670 --> 00:49:05,900 Ok. 1124 00:49:05,900 --> 00:49:08,450 Quindi stiamo andando andare su questo molto brevemente. 1125 00:49:08,450 --> 00:49:12,210 Otterrete in questo esempio più in profondità, credo che, questa settimana. 1126 00:49:12,210 --> 00:49:15,680 E poi la prossima settimana possiamo davvero tuffarsi in cui questo non funziona. 1127 00:49:15,680 --> 00:49:18,810 >> Quindi abbiamo questo vuoto di swap funzione qui--. 1128 00:49:18,810 --> 00:49:20,720 Quindi nulla significa solo che viene restituito nulla. 1129 00:49:20,720 --> 00:49:22,000 1130 00:49:22,000 --> 00:49:24,110 E abbiamo di swap int a e b int. 1131 00:49:24,110 --> 00:49:27,046 E abbiamo qualche temporanea variabile che è una. 1132 00:49:27,046 --> 00:49:30,050 una viene assegnato a B e quindi b viene assegnato per la temperatura 1133 00:49:30,050 --> 00:49:32,235 in modo che A e B di I valori sono ora attivati. 1134 00:49:32,235 --> 00:49:33,510 1135 00:49:33,510 --> 00:49:36,030 >> Ma, colpo di scena, questo non funziona. 1136 00:49:36,030 --> 00:49:37,390 1137 00:49:37,390 --> 00:49:42,380 E parte di esso ha in realtà a che fare con il fatto che un 1138 00:49:42,380 --> 00:49:48,800 e b qui, quelli che vengono passati in Qui, sono in realtà copie di x ed y. 1139 00:49:48,800 --> 00:49:53,220 Così, quando la funzione restituisce in realtà, commuta le copie ma non 1140 00:49:53,220 --> 00:49:55,960 l'attuale xey del. 1141 00:49:55,960 --> 00:50:02,370 Quindi un modo di pensare è che-- finta che si tratta di swap. 1142 00:50:02,370 --> 00:50:03,130 Ok? 1143 00:50:03,130 --> 00:50:05,390 Quindi, in principale, abbiamo x e y inizializzate. 1144 00:50:05,390 --> 00:50:06,530 1145 00:50:06,530 --> 00:50:10,760 Ma quando abbiamo effettivamente saliamo di questi telai con scambio, 1146 00:50:10,760 --> 00:50:15,740 stiamo passando i valori sopra ad esso, e sono inizializzate. 1147 00:50:15,740 --> 00:50:18,570 >> E sempre e solo vivono proprio qui. 1148 00:50:18,570 --> 00:50:19,796 Così a e b vivono qui. 1149 00:50:19,796 --> 00:50:20,670 E ottengono scambiati. 1150 00:50:20,670 --> 00:50:21,870 1151 00:50:21,870 --> 00:50:26,190 Ma quando torneremo, non lo facciamo fare qualsiasi cosa con a e b. un 1152 00:50:26,190 --> 00:50:28,980 e b congedo con la nostra funzione. 1153 00:50:28,980 --> 00:50:30,850 E così xey rimanere lo stesso. 1154 00:50:30,850 --> 00:50:31,960 1155 00:50:31,960 --> 00:50:39,665 Otterrete di più su come risolvere questo e come abbiamo effettivamente a che fare con quella successiva. 1156 00:50:39,665 --> 00:50:40,750 1157 00:50:40,750 --> 00:50:43,740 >> Ma è solo una cosa per tipo di tenere a mente. 1158 00:50:43,740 --> 00:50:45,270 Usalo per il futuro. 1159 00:50:45,270 --> 00:50:48,050 Non preoccupatevi se che non ha fatto tutto il senso del mondo. 1160 00:50:48,050 --> 00:50:49,510 1161 00:50:49,510 --> 00:50:51,440 Sono copie è la cosa più grande. 1162 00:50:51,440 --> 00:50:54,580 Se avete intenzione di prendere qualcosa lontano da quella, avete passato nelle copie. 1163 00:50:54,580 --> 00:50:56,410 Così gli originali rimangono le stesse. 1164 00:50:56,410 --> 00:50:58,170 1165 00:50:58,170 --> 00:50:58,770 Tutto bene? 1166 00:50:58,770 --> 00:51:00,280 1167 00:51:00,280 --> 00:51:00,930 Freddo. 1168 00:51:00,930 --> 00:51:02,295 >> Quindi gli argomenti della riga di comando. 1169 00:51:02,295 --> 00:51:03,520 1170 00:51:03,520 --> 00:51:07,630 Sono sicuro che in principio tutti voi ragazzi aveva quei grandi, come, int vuoti principali. 1171 00:51:07,630 --> 00:51:09,517 E tu sei come, fresco OK. 1172 00:51:09,517 --> 00:51:10,350 Io non mi interessa. 1173 00:51:10,350 --> 00:51:12,360 Questo è proprio quello che devo scrivere. 1174 00:51:12,360 --> 00:51:16,349 Ma nei vostri nuovi programmi, soprattutto in questo pset, 1175 00:51:16,349 --> 00:51:17,890 e perché c'è il gesso per terra? 1176 00:51:17,890 --> 00:51:19,640 1177 00:51:19,640 --> 00:51:22,680 >> Con il vostro prossimo pset, sei andando a vedere questo. 1178 00:51:22,680 --> 00:51:26,130 Int main, int arg c, stringa di arco v, staffe. 1179 00:51:26,130 --> 00:51:28,770 Quindi, da quello che abbiamo appena oggi imparato, ciò che 1180 00:51:28,770 --> 00:51:32,190 pensiamo che il secondo parametro o che secondo elemento è qui? 1181 00:51:32,190 --> 00:51:34,830 1182 00:51:34,830 --> 00:51:35,824 Si tratta di un array. 1183 00:51:35,824 --> 00:51:36,615 Che tipo di array? 1184 00:51:36,615 --> 00:51:38,430 1185 00:51:38,430 --> 00:51:40,690 Array di stringhe, sì. 1186 00:51:40,690 --> 00:51:41,980 Freddo. 1187 00:51:41,980 --> 00:51:45,320 Ecco, questo è come si sta andando da dichiarare questi ora. 1188 00:51:45,320 --> 00:51:48,570 >> Qualcuno ricorda ciò che questi rappresentano? 1189 00:51:48,570 --> 00:51:52,551 1190 00:51:52,551 --> 00:51:53,050 No? 1191 00:51:53,050 --> 00:51:54,020 1192 00:51:54,020 --> 00:51:54,520 Hmm? 1193 00:51:54,520 --> 00:51:55,640 >> STUDENTE: arg c. 1194 00:51:55,640 --> 00:51:56,961 1195 00:51:56,961 --> 00:51:58,950 >> ALLISON: Così arg c mantiene un contatore. 1196 00:51:58,950 --> 00:51:59,450 Si tratta di un int. 1197 00:51:59,450 --> 00:52:00,615 E 'un numero, giusto? 1198 00:52:00,615 --> 00:52:02,240 Allora, cosa pensi che numero è di? 1199 00:52:02,240 --> 00:52:08,260 1200 00:52:08,260 --> 00:52:08,760 Sì. 1201 00:52:08,760 --> 00:52:11,450 Quindi arg c è il numero di stringhe che compongono la riga di comando. 1202 00:52:11,450 --> 00:52:12,560 1203 00:52:12,560 --> 00:52:18,499 Quindi, se dovessimo fare-- in realtà, ci sono esempi dopo questo, 1204 00:52:18,499 --> 00:52:19,790 quindi non voglio andare avanti di me stesso. 1205 00:52:19,790 --> 00:52:21,299 1206 00:52:21,299 --> 00:52:23,840 E 'un numero di stringhe che basta portare la vostra linea di comando. 1207 00:52:23,840 --> 00:52:35,080 >> Così, quando si fa, come, puntino tagliare Mario, questa è una stringa che lo rende fino. 1208 00:52:35,080 --> 00:52:38,520 In questo pezzo, ci troveremo a essere alimentando le cose in linea di comando, 1209 00:52:38,520 --> 00:52:41,750 Come sono sicuro che voi ragazzi che hanno letto la sega spec. 1210 00:52:41,750 --> 00:52:44,470 Quindi, in questi casi, forse ti avere due o tre argomenti. 1211 00:52:44,470 --> 00:52:45,652 1212 00:52:45,652 --> 00:52:48,360 Sta andando essere una cosa utile da usare. 1213 00:52:48,360 --> 00:52:51,500 >> E poi arg v, come abbiamo detto, è solo una matrice di stringhe. 1214 00:52:51,500 --> 00:52:57,000 Così che in realtà memorizza ciò che si inserisce nella linea di comando. 1215 00:52:57,000 --> 00:52:59,960 Quindi abbiamo questi. 1216 00:52:59,960 --> 00:53:02,850 Hai qualche puntino barra copiare outfile infile. 1217 00:53:02,850 --> 00:53:06,670 Quindi, se arg c è il numero di stringhe che stiamo passando nel comando 1218 00:53:06,670 --> 00:53:09,080 linea, qual è il nostro arg c in questo caso? 1219 00:53:09,080 --> 00:53:14,520 1220 00:53:14,520 --> 00:53:15,850 Tre. 1221 00:53:15,850 --> 00:53:16,690 Esattamente. 1222 00:53:16,690 --> 00:53:20,086 >> Allora, qual è arg v pari a zero? 1223 00:53:20,086 --> 00:53:21,710 Allora, qual è la prima cosa che abbiamo memorizzato? 1224 00:53:21,710 --> 00:53:24,640 1225 00:53:24,640 --> 00:53:26,290 Dot ridurre drasticamente copia, esattamente. 1226 00:53:26,290 --> 00:53:28,065 E poi il secondo sarebbe infile. 1227 00:53:28,065 --> 00:53:29,290 1228 00:53:29,290 --> 00:53:30,930 Il terzo sarebbe outfile. 1229 00:53:30,930 --> 00:53:32,390 E per quanto riguarda arg v tre? 1230 00:53:32,390 --> 00:53:35,810 1231 00:53:35,810 --> 00:53:39,370 Sarebbe nullo, perché è Alla fine del nostro array, giusto? 1232 00:53:39,370 --> 00:53:40,600 1233 00:53:40,600 --> 00:53:41,460 Freddo. 1234 00:53:41,460 --> 00:53:44,500 >> E poi che dire del sesto? 1235 00:53:44,500 --> 00:53:45,900 È un po 'una domanda trabocchetto. 1236 00:53:45,900 --> 00:53:46,400 Ish. 1237 00:53:46,400 --> 00:53:49,027 1238 00:53:49,027 --> 00:53:49,943 Sappiamo di cosa si tratta? 1239 00:53:49,943 --> 00:53:50,960 1240 00:53:50,960 --> 00:53:51,690 E 'indefinito. 1241 00:53:51,690 --> 00:53:53,170 Non abbiamo idea di cosa potrebbe essere. 1242 00:53:53,170 --> 00:53:57,000 E 'tutto ciò che è giusto dopo la matrice nella memoria, 1243 00:53:57,000 --> 00:54:00,220 e non abbiamo idea di cosa si tratta. 1244 00:54:00,220 --> 00:54:03,500 Ed è pericoloso toccare quelle cose, perché per tutto quello che sai, 1245 00:54:03,500 --> 00:54:07,080 si tratta di una parte di memoria che si non dovrebbe essere l'accesso o nullo. 1246 00:54:07,080 --> 00:54:09,000 E può fare cose folli. 1247 00:54:09,000 --> 00:54:11,690 Si chiama over-indicizzazione il tuo legato a l'array. 1248 00:54:11,690 --> 00:54:14,785 Non andare oltre i limiti della vostra array o cose brutte possono accadere. 1249 00:54:14,785 --> 00:54:16,274 1250 00:54:16,274 --> 00:54:18,940 Si torna e, come, le leggi della fisica sono state distrutte 1251 00:54:18,940 --> 00:54:19,481 o qualcosa del genere. 1252 00:54:19,481 --> 00:54:21,021 1253 00:54:21,021 --> 00:54:21,520 Freddo. 1254 00:54:21,520 --> 00:54:22,895 Questo fa senso per tutti? 1255 00:54:22,895 --> 00:54:23,810 1256 00:54:23,810 --> 00:54:25,025 Non troppo male. 1257 00:54:25,025 --> 00:54:28,926 >> Così ora, tutti sono parte preferita, recensione pset. 1258 00:54:28,926 --> 00:54:29,426 Sìì! 1259 00:54:29,426 --> 00:54:30,530 1260 00:54:30,530 --> 00:54:31,030 Ok. 1261 00:54:31,030 --> 00:54:33,830 Quindi, per quelli di voi che non hanno letto la specifica pset, 1262 00:54:33,830 --> 00:54:36,790 si sta facendo un po 'di realtà cose interessanti con la crittografia. 1263 00:54:36,790 --> 00:54:39,360 Hai intenzione di creare un Cesare Cipher e un Cifrario di Vigenère. 1264 00:54:39,360 --> 00:54:42,000 1265 00:54:42,000 --> 00:54:45,480 Si dovrebbe leggere il spec per vedere come quelle di lavoro. 1266 00:54:45,480 --> 00:54:49,650 E se hai problemi riguardo quello che dovrebbe essere effettivamente facendo, 1267 00:54:49,650 --> 00:54:52,920 si prega di venire a parlare con me, email me o me testo. 1268 00:54:52,920 --> 00:54:53,420 Sto giro. 1269 00:54:53,420 --> 00:54:54,780 1270 00:54:54,780 --> 00:54:57,070 >> Quindi ci sono tre principali cose qui che noi 1271 00:54:57,070 --> 00:55:00,440 voglio parlare about-- solo tipo di una proroga di lezione. 1272 00:55:00,440 --> 00:55:03,645 Le cose che potreste non sapere su, utili suggerimenti e strumenti. 1273 00:55:03,645 --> 00:55:05,520 Quindi stiamo andando a fare una rapida rassegna di ASCII, 1274 00:55:05,520 --> 00:55:10,420 perché che sta per essere super importante per Cipher di Vigenère. 1275 00:55:10,420 --> 00:55:11,809 1276 00:55:11,809 --> 00:55:14,100 Stiamo andando alla conversione del ingressi di linea di comando, che 1277 00:55:14,100 --> 00:55:17,160 sarà molto utile per Cesare Cipher. 1278 00:55:17,160 --> 00:55:18,133 E poi con modulo. 1279 00:55:18,133 --> 00:55:20,220 1280 00:55:20,220 --> 00:55:21,210 Freddo. 1281 00:55:21,210 --> 00:55:24,005 >> Così, le mappe ASCII i caratteri in numeri. 1282 00:55:24,005 --> 00:55:25,270 1283 00:55:25,270 --> 00:55:26,365 Questo è un grande grafico. 1284 00:55:26,365 --> 00:55:28,115 Si dovrebbe avere questo segnalibro da qualche parte. 1285 00:55:28,115 --> 00:55:29,310 1286 00:55:29,310 --> 00:55:33,250 Si vuole per la prima a medio termine. 1287 00:55:33,250 --> 00:55:36,320 Sono abbastanza sicuro che ognuno di noi ha questo grafico sul loro foglio di medio termine. 1288 00:55:36,320 --> 00:55:37,810 Quindi imparare. 1289 00:55:37,810 --> 00:55:38,410 Lo adoro. 1290 00:55:38,410 --> 00:55:39,740 Tenere a portata di mano. 1291 00:55:39,740 --> 00:55:41,210 Sarà utile. 1292 00:55:41,210 --> 00:55:45,630 >> E tutto è distante una codifica che associa alfabetici, numerici, 1293 00:55:45,630 --> 00:55:47,740 e altri personaggi a numeri per il nostro computer. 1294 00:55:47,740 --> 00:55:49,947 Perché naturalmente, nel fine, tutto ciò che immagazziniamo 1295 00:55:49,947 --> 00:55:52,030 sta per arrivare convertito fino a zero e uno, 1296 00:55:52,030 --> 00:55:55,200 quindi abbiamo bisogno di un modo per rappresentare il testo e caratteri che siamo tutti 1297 00:55:55,200 --> 00:55:59,105 abituati a vedere come una sorta di numero. 1298 00:55:59,105 --> 00:56:00,370 1299 00:56:00,370 --> 00:56:05,880 >> Quindi, come si vede qui, abbiamo A maiuscola, che è proprio lì. 1300 00:56:05,880 --> 00:56:06,555 Si tratta di 65. 1301 00:56:06,555 --> 00:56:07,570 1302 00:56:07,570 --> 00:56:09,660 E minuscolo A è 97. 1303 00:56:09,660 --> 00:56:13,170 Così si può capire fuori-- come ho detto prima, 1304 00:56:13,170 --> 00:56:16,532 se tu avessi gamma di più stringhe, ciò che ciascuno di loro 1305 00:56:16,532 --> 00:56:17,490 avere un carattere di terminazione null. 1306 00:56:17,490 --> 00:56:18,480 Sarebbe uno spazio. 1307 00:56:18,480 --> 00:56:22,581 Spaziale trae la propria special-- Non ricordo dove si trova qui. 1308 00:56:22,581 --> 00:56:23,080 Ah. 1309 00:56:23,080 --> 00:56:24,700 32 è lo spazio. 1310 00:56:24,700 --> 00:56:27,090 Quindi tutto mappe ad esso. 1311 00:56:27,090 --> 00:56:28,680 1312 00:56:28,680 --> 00:56:29,740 >> Così abbiamo la matematica ASCII. 1313 00:56:29,740 --> 00:56:31,080 1314 00:56:31,080 --> 00:56:34,290 Pro tip-- in Vigenere di, si potrebbe essere tentati 1315 00:56:34,290 --> 00:56:39,480 per convertire i numeri interi, ma in realtà è meglio la pratica 1316 00:56:39,480 --> 00:56:43,860 essere in grado di utilizzare la personaggi come questo 1317 00:56:43,860 --> 00:56:45,820 quando si sta effettivamente manipolarli. 1318 00:56:45,820 --> 00:56:48,950 Quindi, se si desidera utilizzare i numeri, è possibile. 1319 00:56:48,950 --> 00:56:55,260 Ma un modo migliore, o un modo che tendiamo a come voi ragazzi per farlo, 1320 00:56:55,260 --> 00:56:57,830 è in questo modo dove sei in realtà sottraendo caratteri. 1321 00:56:57,830 --> 00:56:58,840 1322 00:56:58,840 --> 00:57:02,830 >> Quindi voglio ragazzi a tipo di capire questi fuori. 1323 00:57:02,830 --> 00:57:05,070 Perché non provare ogni altro? 1324 00:57:05,070 --> 00:57:07,580 1325 00:57:07,580 --> 00:57:09,830 Lo stesso vale per il primo, il terzo e il quinto. 1326 00:57:09,830 --> 00:57:11,160 1327 00:57:11,160 --> 00:57:15,000 Perché voglio fare in modo che si parla di tutto abbiamo bisogno di parlare. 1328 00:57:15,000 --> 00:57:17,410 1329 00:57:17,410 --> 00:57:20,259 Sto solo andando a dire, uno dei cose importanti a-- Oh aspetta, 1330 00:57:20,259 --> 00:57:21,550 voi ragazzi non hanno visto questo. 1331 00:57:21,550 --> 00:57:23,710 OK in modo da fare i primi tre. 1332 00:57:23,710 --> 00:57:24,430 Facciamolo. 1333 00:57:24,430 --> 00:57:25,971 Perché dobbiamo parlare di modulo. 1334 00:57:25,971 --> 00:57:27,810 1335 00:57:27,810 --> 00:57:28,310 Lo so. 1336 00:57:28,310 --> 00:57:28,851 La matematica è difficile. 1337 00:57:28,851 --> 00:57:29,870 1338 00:57:29,870 --> 00:57:30,980 È possibile utilizzare una calcolatrice. 1339 00:57:30,980 --> 00:57:31,580 Va bene. 1340 00:57:31,580 --> 00:57:37,464 1341 00:57:37,464 --> 00:57:40,380 O tirare su una tabella ASCII, perché probabilmente stai andando a voler questo. 1342 00:57:40,380 --> 00:58:03,660 1343 00:58:03,660 --> 00:58:04,820 >> Freddo. 1344 00:58:04,820 --> 00:58:07,960 Così ho subito camminare ragazzi attraverso questi. 1345 00:58:07,960 --> 00:58:11,120 Così la gente ha tabelle ASCII tirato su? 1346 00:58:11,120 --> 00:58:15,645 Qual è il nostro numerica numero di minuscolo A? 1347 00:58:15,645 --> 00:58:16,270 STUDENTE: Sette. 1348 00:58:16,270 --> 00:58:19,420 1349 00:58:19,420 --> 00:58:24,550 >> ALLISON: Così minuscolo A è 97 e A maiuscola è 65. 1350 00:58:24,550 --> 00:58:26,390 Quindi 97 meno 65? 1351 00:58:26,390 --> 00:58:27,782 1352 00:58:27,782 --> 00:58:28,570 >> PUBBLICO: 32? 1353 00:58:28,570 --> 00:58:33,260 1354 00:58:33,260 --> 00:58:35,630 >> ALLISON: 62, sì. 1355 00:58:35,630 --> 00:58:38,675 Quindi, in questo caso, ciò sarebbe stampare? 1356 00:58:38,675 --> 00:58:40,360 Questo primo? 1357 00:58:40,360 --> 00:58:43,830 Se abbiamo cento d, quale sarebbe indicare? 1358 00:58:43,830 --> 00:58:45,980 1359 00:58:45,980 --> 00:58:46,730 STUDENTE: un numero. 1360 00:58:46,730 --> 00:58:48,604 ALLISON: Stiamo stampa fuori di un numero reale. 1361 00:58:48,604 --> 00:58:50,770 Quindi stiamo effettivamente andando per stampare 32 qui. 1362 00:58:50,770 --> 00:58:56,360 E se questo fosse cento c, 32 ci darebbe uno spazio. 1363 00:58:56,360 --> 00:58:57,700 1364 00:58:57,700 --> 00:59:01,670 Quindi, fermo restando che caratteri possono essere stampati 1365 00:59:01,670 --> 00:59:06,140 sia come numero e come i caratteri effettivi 1366 00:59:06,140 --> 00:59:11,080 è veramente importante, e il pagamento attenzione ai tipi effettivi 1367 00:59:11,080 --> 00:59:12,040 che stiamo facendo qui. 1368 00:59:12,040 --> 00:59:14,520 1369 00:59:14,520 --> 00:59:15,020 Freddo. 1370 00:59:15,020 --> 00:59:18,862 Quindi per ogni altro di questi, quello che abbiamo intenzione di essere la stampa? 1371 00:59:18,862 --> 00:59:19,825 >> STUDENTE: Un personaggio. 1372 00:59:19,825 --> 00:59:20,830 >> ALLISON: Un personaggio. 1373 00:59:20,830 --> 00:59:21,330 Freddo. 1374 00:59:21,330 --> 00:59:24,260 Quindi, se voi volete sapere, voi può lavorare questi da soli. 1375 00:59:24,260 --> 00:59:25,900 Se hai problemi, mandami una mail. 1376 00:59:25,900 --> 00:59:28,950 Ma il secondo lo farà stampare una minuscola b. 1377 00:59:28,950 --> 00:59:32,910 Il terzo stamperà un maiuscolo B. Il quarto stamperà 1378 00:59:32,910 --> 00:59:36,410 la maiuscola C, e la ultimo sarà un minuscolo A. 1379 00:59:36,410 --> 00:59:42,530 E l'ultima tra-- stiamo effettivamente andando per entrare in quello che per cento pazzo 1380 00:59:42,530 --> 00:59:45,020 segno significa che anche in un paio di diapositive. 1381 00:59:45,020 --> 00:59:46,667 Quindi, cercare quelli per conto proprio. 1382 00:59:46,667 --> 00:59:48,500 In caso di problemi, si prega di venire a parlare con me. 1383 00:59:48,500 --> 00:59:49,655 1384 00:59:49,655 --> 00:59:53,290 Se siete in genere in Adams padiglione D, probabilmente mi troverete in giro. 1385 00:59:53,290 --> 00:59:54,760 1386 00:59:54,760 --> 00:59:55,760 >> Quindi, atoi. 1387 00:59:55,760 --> 00:59:59,660 Quanti di voi hanno visto questo funzione o sentito parlare a tutti? 1388 00:59:59,660 --> 01:00:00,380 1389 01:00:00,380 --> 01:00:00,880 Chiunque? 1390 01:00:00,880 --> 01:00:02,100 1391 01:00:02,100 --> 01:00:02,600 Freddo. 1392 01:00:02,600 --> 01:00:06,250 Quindi quello che sta effettivamente per è ASCII a intero. 1393 01:00:06,250 --> 01:00:13,150 Che cosa si può fare è, con Cesare, per chi legge le specifiche, 1394 01:00:13,150 --> 01:00:16,460 si sta andando a fare punti barra Cesare dopo di scrivere il programma, 1395 01:00:16,460 --> 01:00:18,690 e poi si sta andando a ingresso un numero che si 1396 01:00:18,690 --> 01:00:24,780 vuole codificare il messaggio segreto con. 1397 01:00:24,780 --> 01:00:30,700 >> Ma, se ricordiamo, tutti i nostri gli ingressi sono memorizzati come stringhe. 1398 01:00:30,700 --> 01:00:31,390 Giusto? 1399 01:00:31,390 --> 01:00:35,160 Abbiamo un arg v serie questo è tutto di tipo stringa. 1400 01:00:35,160 --> 01:00:37,870 Quindi, se si tenta di tirare che uno, sarebbe 1401 01:00:37,870 --> 01:00:43,240 pensare che che uno o qualunque sia il numero hai usato è in realtà un personaggio. 1402 01:00:43,240 --> 01:00:45,490 Così si sta andando ad ottenere alcuni risultati folli. 1403 01:00:45,490 --> 01:00:48,200 Quindi, se si vuole realmente trasformare questo in un numero intero 1404 01:00:48,200 --> 01:00:52,060 che è possibile utilizzare per manipolare la tua parola o il vostro messaggio, 1405 01:00:52,060 --> 01:00:53,366 ti consigliamo di utilizzare atoi. 1406 01:00:53,366 --> 01:00:56,320 atoi converte solo la stringa in un int. 1407 01:00:56,320 --> 01:01:04,530 >> Quindi, se abbiamo una serie di 12, se chiamiamo atoi il 12, o qualsiasi altra cosa che l'ingresso è, 1408 01:01:04,530 --> 01:01:07,370 sarà effettivamente ritorno a voi il numero intero. 1409 01:01:07,370 --> 01:01:10,610 Non il carattere o la stringa 12. 1410 01:01:10,610 --> 01:01:14,230 Il che, quando si avvia aggiungere che ai numeri, 1411 01:01:14,230 --> 01:01:17,710 sarà molto diverso, perché la stringa 12 è 1412 01:01:17,710 --> 01:01:21,210 un numero pazzesco in ASCII, ma l'intero 12 1413 01:01:21,210 --> 01:01:23,390 è in realtà 12, che è quello che vuoi. 1414 01:01:23,390 --> 01:01:25,630 Così si vuole fare in modo di utilizzare atoi. 1415 01:01:25,630 --> 01:01:29,203 >> Stai andando a voler questo in Cesare, perché si 1416 01:01:29,203 --> 01:01:32,520 bisogno int fornito dal utente nella riga di comando. 1417 01:01:32,520 --> 01:01:35,230 Ma quando l'hanno messo nel comando linea, è memorizzato come una stringa 1418 01:01:35,230 --> 01:01:35,813 per cominciare. 1419 01:01:35,813 --> 01:01:36,950 1420 01:01:36,950 --> 01:01:38,210 Questo fa senso? 1421 01:01:38,210 --> 01:01:40,590 Non è necessariamente bisogno di questo per Vigenere. 1422 01:01:40,590 --> 01:01:43,180 Con Vigenère, come ho detto prima, si dovrebbe cercare di usare 1423 01:01:43,180 --> 01:01:46,600 Matematica ASCII che sembra più questo, dove si sta effettivamente 1424 01:01:46,600 --> 01:01:49,320 utilizzando i caratteri che ci è dato a voi. 1425 01:01:49,320 --> 01:01:50,970 1426 01:01:50,970 --> 01:01:51,470 Freddo. 1427 01:01:51,470 --> 01:01:52,970 1428 01:01:52,970 --> 01:01:54,170 Tutto bene lì? 1429 01:01:54,170 --> 01:01:56,530 1430 01:01:56,530 --> 01:01:57,480 Impressionante. 1431 01:01:57,480 --> 01:01:59,030 >> Così modulo. 1432 01:01:59,030 --> 01:02:01,950 Che importa se sei dato questo enorme numero per Cesare? 1433 01:02:01,950 --> 01:02:03,720 1434 01:02:03,720 --> 01:02:07,970 Hai questa idea che se siete alla Z e sei 1435 01:02:07,970 --> 01:02:11,020 dato un numero di due, questo significa che need-- 1436 01:02:11,020 --> 01:02:15,130 Z diventa il secondo lettera dopo se stessa, giusto? 1437 01:02:15,130 --> 01:02:20,800 Quindi è necessario avvolgere in qualche modo intorno, e modulo è il modo per farlo. 1438 01:02:20,800 --> 01:02:23,310 Quindi tutto ciò che fa è che ti dà il resto 1439 01:02:23,310 --> 01:02:25,660 della divisione del primo numero per il secondo. 1440 01:02:25,660 --> 01:02:28,660 E noi abbiamo alcuni esempi per fanno si che un po 'più concreta. 1441 01:02:28,660 --> 01:02:34,390 Ma in fondo, si utilizza modulo quando si vuole fare qualcosa di avvolgere intorno. 1442 01:02:34,390 --> 01:02:36,950 >> Quindi, se volete solo il numeri da uno a otto, 1443 01:02:36,950 --> 01:02:39,670 si può utilizzare su qualsiasi altro modulo numero, e lo farà sempre 1444 01:02:39,670 --> 01:02:42,960 restituire un numero da zero a otto. 1445 01:02:42,960 --> 01:02:48,750 Così alcuni examples-- se abbiamo 55 modulo 10, 1446 01:02:48,750 --> 01:02:55,350 ti dà solo il resto del 55 diviso 10, che sarebbe 5. 1447 01:02:55,350 --> 01:02:56,440 1448 01:02:56,440 --> 01:03:02,470 E poi tre modulo cinque, indovinate un po 'chi sarebbe? 1449 01:03:02,470 --> 01:03:03,800 1450 01:03:03,800 --> 01:03:04,300 Tre. 1451 01:03:04,300 --> 01:03:05,570 1452 01:03:05,570 --> 01:03:10,910 >> Quindi, se si dispone di un numero minore prima il modulo, non può andare in modo uniforme. 1453 01:03:10,910 --> 01:03:11,520 E 'pari a zero. 1454 01:03:11,520 --> 01:03:14,090 Quindi restituisce solo il numero stesso. 1455 01:03:14,090 --> 01:03:15,920 Così otto modulo otto sarebbe? 1456 01:03:15,920 --> 01:03:16,603 >> STUDENTE: Zero. 1457 01:03:16,603 --> 01:03:18,350 >> ALLISON: Zero. 1458 01:03:18,350 --> 01:03:20,160 Perché va in modo uniforme. 1459 01:03:20,160 --> 01:03:22,095 16 Modulo 15? 1460 01:03:22,095 --> 01:03:23,660 >> PUBBLICO: One. 1461 01:03:23,660 --> 01:03:24,700 >> ALLISON: Freddo. 1462 01:03:24,700 --> 01:03:29,280 E poi questo ultimo è solo quello di mostrare you-- forse vi starete chiedendo, OK, 1463 01:03:29,280 --> 01:03:31,800 qual è l'ordine delle operazioni qui? 1464 01:03:31,800 --> 01:03:33,100 Facciamo dividiamo primo? 1465 01:03:33,100 --> 01:03:34,570 Do We Módulo primo? 1466 01:03:34,570 --> 01:03:38,730 Così modulo detiene la stessa precedenza la divisione o la moltiplicazione, 1467 01:03:38,730 --> 01:03:39,940 e la sua associativa sinistra. 1468 01:03:39,940 --> 01:03:41,730 Quindi è allo stesso modo. 1469 01:03:41,730 --> 01:03:46,520 Si potrebbe sempre fare parentesi, poi moltiplicazione, divisione, 1470 01:03:46,520 --> 01:03:49,570 e modulo in ordine da sinistra a destra. 1471 01:03:49,570 --> 01:03:51,050 Regole in modo standard. 1472 01:03:51,050 --> 01:03:55,260 Basta mettere nella stessa categoria come divisione e moltiplicazione. 1473 01:03:55,260 --> 01:03:59,040 >> Quindi, in questo caso, avremmo hanno 1 più 2 ci dà 3. 1474 01:03:59,040 --> 01:04:02,210 Moltiplichiamo che entro il 2, in modo da ottenere 6. 1475 01:04:02,210 --> 01:04:05,050 Abbiamo MODULO che da 2, che ci dà? 1476 01:04:05,050 --> 01:04:06,042 >> STUDENTE: 0. 1477 01:04:06,042 --> 01:04:07,430 >> ALLISON: 0. 1478 01:04:07,430 --> 01:04:10,270 E poi aggiungiamo 2, in modo da ottenere 2 in quest'ultimo caso. 1479 01:04:10,270 --> 01:04:12,080 1480 01:04:12,080 --> 01:04:16,360 Così modulo-- si sta sicuramente andando a pensare a modi per incorporare 1481 01:04:16,360 --> 01:04:19,520 che quando si sta avvolgendo intorno dell'alfabeto. 1482 01:04:19,520 --> 01:04:24,210 Se siete a Z e avete bisogno di spostare inoltrare tre spazi per arrivare a C, 1483 01:04:24,210 --> 01:04:26,230 c'è quel concetto di avvolgere intorno. 1484 01:04:26,230 --> 01:04:28,790 Così Lascio a voi ragazzi a capire 1485 01:04:28,790 --> 01:04:31,940 esattamente come si sta andando ad essere usarlo. 1486 01:04:31,940 --> 01:04:35,660 Ma sicuramente uno strumento utile per il vostro pset questa settimana. 1487 01:04:35,660 --> 01:04:36,910 1488 01:04:36,910 --> 01:04:37,730 Mi piace molto questo. 1489 01:04:37,730 --> 01:04:39,480 Questo è uno dei miei p-set preferiti. 1490 01:04:39,480 --> 01:04:41,230 Poi, dopo lo si fa, se avete amici, 1491 01:04:41,230 --> 01:04:44,146 è possibile, come, inviare ogni altro segreto messaggi e assicurarsi che funzioni. 1492 01:04:44,146 --> 01:04:45,695 Dato che sarà decifrare o qualsiasi altra cosa. 1493 01:04:45,695 --> 01:04:46,710 1494 01:04:46,710 --> 01:04:47,390 Un sacco di divertimento. 1495 01:04:47,390 --> 01:04:48,840 1496 01:04:48,840 --> 01:04:51,220 >> E questa è la fine della sezione. 1497 01:04:51,220 --> 01:04:52,430 1498 01:04:52,430 --> 01:04:54,040 Ho finito presto. 1499 01:04:54,040 --> 01:04:57,540 Ho ancora 15 minuti con voi ragazzi, quindi se c'è qualcosa 1500 01:04:57,540 --> 01:05:02,180 che si desidera andare oltre inoltre, sarei felice di farlo. 1501 01:05:02,180 --> 01:05:04,340 Tutte le altre domande su il tuo pset per quelli di voi 1502 01:05:04,340 --> 01:05:06,355 che hanno iniziato o leggere le specifiche. 1503 01:05:06,355 --> 01:05:07,870 1504 01:05:07,870 --> 01:05:12,060 Tutto ciò che abbiamo parlato circa nelle ultime ore 1505 01:05:12,060 --> 01:05:16,880 ea 15 minuti che ti sentiresti mi piace al tipo di rimaneggiamento, sarei felice di. 1506 01:05:16,880 --> 01:05:20,790 O siamo in grado di farla finita, e si può tutto lasciare e prendere più caramelle con te 1507 01:05:20,790 --> 01:05:21,650 come si va. 1508 01:05:21,650 --> 01:05:23,719 1509 01:05:23,719 --> 01:05:26,260 Ma se ci sono persistente domande, per favore fatemelo sapere. 1510 01:05:26,260 --> 01:05:28,467 È inoltre possibile trovare e parlare con me dopo. 1511 01:05:28,467 --> 01:05:29,425 Prometto che non mordo. 1512 01:05:29,425 --> 01:05:32,140 1513 01:05:32,140 --> 01:05:32,795 Qualunque altra cosa? 1514 01:05:32,795 --> 01:05:33,890 1515 01:05:33,890 --> 01:05:35,240 Il bene di tutti? 1516 01:05:35,240 --> 01:05:37,540 Sensazione di tutti come in grado di gestire questo pset? 1517 01:05:37,540 --> 01:05:38,820 1518 01:05:38,820 --> 01:05:42,405 Si sta andando ad essere ragazzi bene. 1519 01:05:42,405 --> 01:05:43,905 Orario di ricevimento sono lì per un motivo. 1520 01:05:43,905 --> 01:05:45,930 1521 01:05:45,930 --> 01:05:46,460 Freddo. 1522 01:05:46,460 --> 01:05:47,020 Va bene. 1523 01:05:47,020 --> 01:05:49,680 >> Ebbene, in questo caso, grazie tutti voi così tanto per essere venuti. 1524 01:05:49,680 --> 01:05:50,940 Spero di vederti la prossima settimana. 1525 01:05:50,940 --> 01:05:52,120 Ci saranno più caramelle. 1526 01:05:52,120 --> 01:05:53,495 Ci potrebbero essere altre cose interessanti. 1527 01:05:53,495 --> 01:05:55,010 1528 01:05:55,010 --> 01:05:59,090 E non vedo l'ora di ottenere di conoscere tutti voi quest'anno. 1529 01:05:59,090 --> 01:06:00,320