1 00:00:00,000 --> 00:00:05,830 2 00:00:05,830 --> 00:00:08,650 >> JASON HIRSCHHORN: Benvenuti CS50 sezione, tutti. 3 00:00:08,650 --> 00:00:11,430 Il mio nome è Jason Hirschhorn. 4 00:00:11,430 --> 00:00:15,850 Sono un sacco di TF tuo, ma un sacco di la gente si spera ci uniranno 5 00:00:15,850 --> 00:00:20,420 on-line, gli studenti di estensione o studenti cercando di guardare attraverso la sezione se 6 00:00:20,420 --> 00:00:22,830 perdere la loro sezione che settimana o solo recuperare se volevano 7 00:00:22,830 --> 00:00:24,510 di rivedere alcuni materiali. 8 00:00:24,510 --> 00:00:30,060 >> Così come per il piano di studi, che tutti di aver letto, correggere? 9 00:00:30,060 --> 00:00:31,390 Vedo un sacco di cenni della testa. 10 00:00:31,390 --> 00:00:34,220 Le sezioni forniscono opportunità per esplorare il corso del 11 00:00:34,220 --> 00:00:37,420 materiale in un ambiente più intimo, così come immergersi in 12 00:00:37,420 --> 00:00:38,810 attività pratiche. 13 00:00:38,810 --> 00:00:41,230 >> Ecco, questo è fondamentalmente ciò che siamo intenzione di fare ogni settimana. 14 00:00:41,230 --> 00:00:45,090 Stiamo per passare attraverso ciò che abbiamo determinato essere il più importante 15 00:00:45,090 --> 00:00:49,170 argomenti trattati nella lezione, e quelli probabilmente anche più utile e 16 00:00:49,170 --> 00:00:52,780 più probabilità di venire sul set problema e in quiz, e nella vostra codifica 17 00:00:52,780 --> 00:00:53,970 vita al di fuori del CS50. 18 00:00:53,970 --> 00:00:57,260 Quindi stiamo per entrare in questi argomenti, discuterli, andare su di loro, 19 00:00:57,260 --> 00:01:00,660 rispondere alle domande che voi ragazzi avete, e allora stiamo andando a fare un sacco di 20 00:01:00,660 --> 00:01:02,250 problemi di pratica in codifica. 21 00:01:02,250 --> 00:01:04,239 >> È tutto portato i computer portatili, il che è fantastico. 22 00:01:04,239 --> 00:01:05,710 Questa è una classe di informatica. 23 00:01:05,710 --> 00:01:10,070 Tuttavia, un sacco di esercizi che facciamo, non avrete bisogno per il vostro laptop. 24 00:01:10,070 --> 00:01:11,720 Si può fare su un foglio di carta. 25 00:01:11,720 --> 00:01:13,580 Ecco come si sta andando a fare loro il quiz. 26 00:01:13,580 --> 00:01:16,450 E in effetti, questo è un ottimo modo per davvero sapere che il modo di fare 27 00:01:16,450 --> 00:01:19,720 qualcosa se non si dispone di check 50 a contare su O Fai fare affidamento su, dicendo 28 00:01:19,720 --> 00:01:20,620 hai fatto errori. 29 00:01:20,620 --> 00:01:25,670 >> Quindi siete invitati a codice sulla dell'apparecchio o run.cs50.net, che è 30 00:01:25,670 --> 00:01:29,770 un altro strumento che consente di codificare on-line, ma anche io lo consiglio, se 31 00:01:29,770 --> 00:01:32,280 non l'hai provato, utilizzando un foglio di di carta e cercando queste pratiche 32 00:01:32,280 --> 00:01:33,640 problemi su un foglio di carta. 33 00:01:33,640 --> 00:01:35,330 Perché ancora una volta, che è in ultima analisi, ciò che si sta andando ad essere 34 00:01:35,330 --> 00:01:37,430 chiesto di fare il quiz. 35 00:01:37,430 --> 00:01:44,080 >> Quindi partiamo con la nostra agenda per oggi. 36 00:01:44,080 --> 00:01:47,710 Stiamo per andare oltre alcune norme per nostra sezione, allora stiamo andando a tuffarsi 37 00:01:47,710 --> 00:01:51,180 in array, funzioni e linea di comando argomenti, che è ciò che voi ragazzi 38 00:01:51,180 --> 00:01:56,200 hanno coperto la scorsa settimana in conferenza e poi Lunedi, e che cosa si parlerà 39 00:01:56,200 --> 00:01:57,330 più di domani. 40 00:01:57,330 --> 00:01:59,060 E poi finalmente, stiamo andando per parlare di PSet2. 41 00:01:59,060 --> 00:02:03,640 Se potessi avere una alzata di mano, se si Non ho guardato il problema insieme a due 42 00:02:03,640 --> 00:02:04,890 specifica. 43 00:02:04,890 --> 00:02:07,060 44 00:02:07,060 --> 00:02:08,120 Diremo tutti. 45 00:02:08,120 --> 00:02:09,419 Fantastico. 46 00:02:09,419 --> 00:02:12,070 >> Parleremo set problema in un po ', ma se leggete il problema insieme 47 00:02:12,070 --> 00:02:14,340 specificazione, che è tutto quello che devi fare. 48 00:02:14,340 --> 00:02:18,370 Se si legge che prima di arrivare a classe e sezione il Martedì, si 49 00:02:18,370 --> 00:02:19,220 essere una grande posizione. 50 00:02:19,220 --> 00:02:21,680 Siamo in grado di passare attraverso il problema insieme, che è quello che stiamo andando 51 00:02:21,680 --> 00:02:22,090 a fare alla fine. 52 00:02:22,090 --> 00:02:23,500 Stiamo per passare attraverso la logica, assicurarsi 53 00:02:23,500 --> 00:02:24,710 tutti sono sulla stessa pagina. 54 00:02:24,710 --> 00:02:28,650 >> Io voglio che tu sia in grado di lasciare Martedì sentirsi molto bene con quello che si 55 00:02:28,650 --> 00:02:31,560 bisogno di fare per questa settimana problema insieme, e se non lo fai, lo farò volentieri 56 00:02:31,560 --> 00:02:33,050 rimanere dopo e lavorare con voi. 57 00:02:33,050 --> 00:02:36,850 Ma questa è una cosa che si deve faccio, ma penso che sarebbe davvero intelligente, 58 00:02:36,850 --> 00:02:40,500 solo per leggere il problema proposto specifica per classe il Martedì, 59 00:02:40,500 --> 00:02:42,640 che suona come un molti di voi l'ha fatto. 60 00:02:42,640 --> 00:02:45,810 >> Comincerò con un ordine del giorno di ogni classe in modo da sapere dove stiamo andando. 61 00:02:45,810 --> 00:02:49,520 Questo è utile anche per le persone che guardano online perché ogni sezione 62 00:02:49,520 --> 00:02:53,540 è un codice colore, quindi se volete venire indietro e guardare 10 minuti piuttosto 63 00:02:53,540 --> 00:02:56,950 che l'intera sezione di 90 minuti, è può solo andare alla sezione codice colore 64 00:02:56,950 --> 00:02:57,890 e guardare quella parte. 65 00:02:57,890 --> 00:03:01,510 Così ho cercato di dividerli in bella moduli che vi permetterà di - 66 00:03:01,510 --> 00:03:03,960 se si vuole tornare indietro e rivedere, o di altri studenti che sono solo 67 00:03:03,960 --> 00:03:05,350 guardando una sezione di rivedere - 68 00:03:05,350 --> 00:03:08,130 di trovare la cosa specifica che vuole prestare attenzione a 69 00:03:08,130 --> 00:03:10,480 e saperne di più. 70 00:03:10,480 --> 00:03:11,390 Dolce. 71 00:03:11,390 --> 00:03:12,180 >> Norme. 72 00:03:12,180 --> 00:03:13,680 Sono un leader FOP nel campus. 73 00:03:13,680 --> 00:03:14,900 Non so se qualcuno ha fatto la FOP. 74 00:03:14,900 --> 00:03:16,280 Qualcuno do FOP? 75 00:03:16,280 --> 00:03:17,100 Una persona ha fatto la FOP. 76 00:03:17,100 --> 00:03:18,430 Due persone hanno fatto la FOP. 77 00:03:18,430 --> 00:03:19,250 Impressionante. 78 00:03:19,250 --> 00:03:22,360 Così FOP è il primo anno Outdoor Programma di Orientamento. 79 00:03:22,360 --> 00:03:27,240 Prendiamo matricole nel bosco e facciamo più magiche esperienze di 80 00:03:27,240 --> 00:03:28,830 loro vita, giusto? 81 00:03:28,830 --> 00:03:29,220 Già. 82 00:03:29,220 --> 00:03:30,080 Sembra giusto. 83 00:03:30,080 --> 00:03:36,360 >> Così ho voluto iniziare il nostro primo sezione attraverso la discussione di alcune norme 84 00:03:36,360 --> 00:03:38,860 per la classe e il nostro rapporto perché penso che 85 00:03:38,860 --> 00:03:40,010 sono molto importanti. 86 00:03:40,010 --> 00:03:43,630 In primo luogo, come quelli di voi che sono la mia sezione hanno ricevuto e 87 00:03:43,630 --> 00:03:47,150 è stato discusso in tale e-mail, mi piace questo. 88 00:03:47,150 --> 00:03:48,130 Questa è la mia parte preferita dell'anno. 89 00:03:48,130 --> 00:03:49,100 Sono stato così felice. 90 00:03:49,100 --> 00:03:50,040 Sono qui da ore di oggi. 91 00:03:50,040 --> 00:03:54,560 Non ho lasciato questo edificio se non per andare a mangiare perché amo sezione CS50, ho 92 00:03:54,560 --> 00:03:58,620 amo insegnare, mi piace lavorare con voi ragazzi. 93 00:03:58,620 --> 00:04:02,000 >> Una delle mie più alte priorità, se non il mio priorità numero uno, non solo 94 00:04:02,000 --> 00:04:05,130 questa classe, ma anche la mia altra classi e extracurriculari, è quello di 95 00:04:05,130 --> 00:04:09,350 sostenere voi ragazzi, e aiutare voi ragazzi, e fare del mio meglio per fare in modo che si 96 00:04:09,350 --> 00:04:13,780 ragazzi hanno un meraviglioso, divertente, produttivo, coinvolgente, emozionante 97 00:04:13,780 --> 00:04:15,250 sperimentare in questa classe. 98 00:04:15,250 --> 00:04:16,190 Questo è quello che mi impegno a. 99 00:04:16,190 --> 00:04:17,959 E 'per questo che amo fare questo. 100 00:04:17,959 --> 00:04:20,190 Questo è il mio numero di una cosa, sostenendo voi ragazzi. 101 00:04:20,190 --> 00:04:25,110 Se avete domande su lezione, il problema insieme, sezione, 102 00:04:25,110 --> 00:04:28,830 vita, anche se si vuole parlare di vita, non esitate a entrare in contatto prego. 103 00:04:28,830 --> 00:04:31,210 >> Hai il mio numero di cellulare, avete la mia email 104 00:04:31,210 --> 00:04:32,910 indirizzo, hai il mio Gchat. 105 00:04:32,910 --> 00:04:37,540 Potete contattarmi in qualsiasi o tutti quelli che ogni volta, ma probabilmente non sarà possibile ottenere 106 00:04:37,540 --> 00:04:38,720 una risposta ogni volta. 107 00:04:38,720 --> 00:04:41,020 Cerco di tornare entro 24 ore. 108 00:04:41,020 --> 00:04:44,760 Spesso sarà all'interno 20 minuti o 24 minuti. 109 00:04:44,760 --> 00:04:46,110 Avrei dovuto dire che per renderlo parallelo. 110 00:04:46,110 --> 00:04:48,840 Ma si otterrà una risposta abbastanza rapidamente. 111 00:04:48,840 --> 00:04:54,220 >> Se mi testo un'ora prima della problema insieme è dovuto, io vi calma 112 00:04:54,220 --> 00:04:57,660 verso il basso e fare esercizi di respirazione profonda con voi, ma se non hai iniziato, 113 00:04:57,660 --> 00:05:00,270 probabilmente non state andando a finire, e Non posso davvero aiutare là fuori 114 00:05:00,270 --> 00:05:01,710 anche se farò del mio meglio. 115 00:05:01,710 --> 00:05:03,920 Quindi farò tutto Posso a sostenervi. 116 00:05:03,920 --> 00:05:07,980 Non esitate a raggiungere se è nella sezione di nuovo, in orari d'ufficio 117 00:05:07,980 --> 00:05:09,150 se mi vedete, o anche al di fuori. 118 00:05:09,150 --> 00:05:11,800 Sono felice di creare un momento di incontro e di lavoro attraverso i problemi 119 00:05:11,800 --> 00:05:14,410 con o andare oltre materiale. 120 00:05:14,410 --> 00:05:15,990 In modo che è il numero uno, il sostegno. 121 00:05:15,990 --> 00:05:17,940 Farò tutto quello che mi grado di sostenere voi. 122 00:05:17,940 --> 00:05:21,520 >> Numero due, incontro nel mezzo. 123 00:05:21,520 --> 00:05:24,760 Per quanto mi piacerebbe essere, io sono non è onnipotente o onnipotente o 124 00:05:24,760 --> 00:05:28,410 onnisciente, quindi non so tutte le tempo se quello che sto facendo è sempre 125 00:05:28,410 --> 00:05:33,410 tutto, se il modo in cui sto insegnando l' argomento ti aiuta a imparare, o se si 126 00:05:33,410 --> 00:05:36,120 sono confuso su un argomento, ma non alzi la mano o chiedere a me 127 00:05:36,120 --> 00:05:37,390 o mandarmi una mail. 128 00:05:37,390 --> 00:05:42,150 O anche se, ancora una volta, sono confusi di qualcosa sul problema insieme. 129 00:05:42,150 --> 00:05:44,240 Se non si arriva a me, Non posso saperlo per certo. 130 00:05:44,240 --> 00:05:46,950 Ho intenzione di fare del mio meglio per il check-in su voi ragazzi, assicurarsi che tutto è 131 00:05:46,950 --> 00:05:51,170 va bene, cercare di insegnare le cose in un modo che sarà favorevole alla maggior parte delle 132 00:05:51,170 --> 00:05:54,910 gli stili di apprendimento, ma se c'è qualcosa che posso fare, me lo faccia sapere. 133 00:05:54,910 --> 00:05:58,520 >> Lungo queste linee, se si vuole un po 'di aiuto con il problema insieme, io sono più 134 00:05:58,520 --> 00:05:59,700 che felice di aiutarvi con il problema proposto. 135 00:05:59,700 --> 00:06:02,300 Stiamo andando a fare un sacco di che verso la seconda 136 00:06:02,300 --> 00:06:03,460 metà di questa sezione. 137 00:06:03,460 --> 00:06:06,040 Ma se non avete letto il problema insiemi indietro e non hanno guardato la passeggiata 138 00:06:06,040 --> 00:06:09,310 attraverso e non hanno guardato i pantaloncini e in attesa che ti insegni 139 00:06:09,310 --> 00:06:13,260 tutto ciò che è stato videoregistrato in linea o che si possono trovare a CS50 140 00:06:13,260 --> 00:06:16,720 studio, che non è proprio giusto me o ad altri tuoi coetanei. 141 00:06:16,720 --> 00:06:20,440 142 00:06:20,440 --> 00:06:25,730 >> Quindi, per favore, io sono più che felice di aiutarvi voi, ma voi ragazzi avuto modo di incontrarmi in 143 00:06:25,730 --> 00:06:27,230 mezzo. 144 00:06:27,230 --> 00:06:30,100 Abbiamo tonnellate di risorse per è disponibile sul CS50. 145 00:06:30,100 --> 00:06:31,230 Ho detto alcuni di loro. 146 00:06:31,230 --> 00:06:32,960 Si prega di approfittare di loro. 147 00:06:32,960 --> 00:06:35,140 Se siete confusi, io sono più che felice per aiutarvi a spiegare in 148 00:06:35,140 --> 00:06:39,290 un altro modo, ma non è giusto se studenti di presentarsi nelle ore di ufficio, 149 00:06:39,290 --> 00:06:42,530 non hanno iniziato a niente, ed è Giovedi notte e si aspettano 150 00:06:42,530 --> 00:06:45,880 il TF a camminare attraverso ogni singola cosa per il problema dovuto impostata 151 00:06:45,880 --> 00:06:47,140 a mezzogiorno del giorno successivo. 152 00:06:47,140 --> 00:06:48,300 Ha senso? 153 00:06:48,300 --> 00:06:50,890 Anche in questo caso, vi preghiamo di incontrarsi a metà. 154 00:06:50,890 --> 00:06:53,230 >> E, infine, grandi aspettative. 155 00:06:53,230 --> 00:06:58,010 Ho intenzione di essere di classificazione tutti chi è nella mia sezione, o segnando il tuo 156 00:06:58,010 --> 00:06:59,020 set di problema. 157 00:06:59,020 --> 00:07:01,240 Non hai tornato problema impostare zero o uno ancora. 158 00:07:01,240 --> 00:07:02,250 Siamo dispiace. 159 00:07:02,250 --> 00:07:04,970 Ci è voluto un po 'per poi stabilirsi sezioni, e ora 160 00:07:04,970 --> 00:07:05,560 possiamo iniziare classificazione. 161 00:07:05,560 --> 00:07:09,560 >> Prendo di nuovo a voi appena possibile. 162 00:07:09,560 --> 00:07:11,890 Questi sono alcuni dei miei advisees là fuori. 163 00:07:11,890 --> 00:07:14,150 Prendo di nuovo a voi appena possibile. 164 00:07:14,150 --> 00:07:18,046 E per il problema insieme due, saremo in programmare e inizieremo inducendole 165 00:07:18,046 --> 00:07:20,440 a voi abbastanza rapidamente dopo si gira li dentro 166 00:07:20,440 --> 00:07:24,130 >> Quando ottenete il vostro problema arretrato, è otterrà punteggi, come sapete da 167 00:07:24,130 --> 00:07:28,150 leggendo il programma - la correttezza, progettazione, la portata, e lo stile punteggi. 168 00:07:28,150 --> 00:07:29,760 Avrete anche i commenti. 169 00:07:29,760 --> 00:07:32,160 I commenti sono più importanti che i punteggi. 170 00:07:32,160 --> 00:07:33,780 Penso che sia giusto dire che. 171 00:07:33,780 --> 00:07:37,930 >> I punteggi sono solo un numero da uno a cinque. 172 00:07:37,930 --> 00:07:38,930 E 'difficile leggere in quelle. 173 00:07:38,930 --> 00:07:40,720 E 'difficile migliorare da quelli. 174 00:07:40,720 --> 00:07:44,460 Ma i commenti saranno sottolineare specifico cose che hai fatto bene o aree 175 00:07:44,460 --> 00:07:48,360 si può migliorare e dare un po 'di idee per il futuro o alternative 176 00:07:48,360 --> 00:07:49,160 modi di fare le cose. 177 00:07:49,160 --> 00:07:52,270 >> Quindi, per favore, per favore, si prega di leggere attraverso i commenti. 178 00:07:52,270 --> 00:07:54,190 Ho messo un sacco di tempo in tali osservazioni. 179 00:07:54,190 --> 00:07:57,190 Si prega di leggere attraverso di loro e non solo scorrere fino alla parte inferiore della 180 00:07:57,190 --> 00:08:01,890 PDF, cercare il tuo punteggio, o andare online e trovare il tuo punteggio, e quindi ignorare 181 00:08:01,890 --> 00:08:02,800 i commenti. 182 00:08:02,800 --> 00:08:03,910 Non è così che si è andare a stare meglio. 183 00:08:03,910 --> 00:08:06,550 Non è così che si sta andando ad aumentare i tuoi punteggi in definitiva, solo 184 00:08:06,550 --> 00:08:07,340 guardando i punteggi. 185 00:08:07,340 --> 00:08:08,760 Si prega di guardare a quei commenti. 186 00:08:08,760 --> 00:08:13,240 >> E lungo la linea di grandi aspettative, ancora una volta, come ho detto, è 187 00:08:13,240 --> 00:08:14,260 può essere segnato da uno a cinque. 188 00:08:14,260 --> 00:08:17,120 Gruppi di due, tre, o quattro sono il stragrande maggioranza dei punteggi 189 00:08:17,120 --> 00:08:17,940 si sta andando ad essere sempre. 190 00:08:17,940 --> 00:08:20,180 Ones e cinque sono entrambi davvero raro. 191 00:08:20,180 --> 00:08:21,720 Ci sono sempre cose possiamo fare di meglio. 192 00:08:21,720 --> 00:08:23,490 Ogni volta che il codice di un programma, non c'è sempre qualcosa che mi 193 00:08:23,490 --> 00:08:24,800 avrebbe potuto fare di meglio. 194 00:08:24,800 --> 00:08:28,740 >> Quindi, piuttosto che dire che si ottiene un cinque tutto il tempo su tutto e ha fatto 195 00:08:28,740 --> 00:08:31,960 tutto perfetto, non credo che qualsiasi di noi veramente crediamo - o 196 00:08:31,960 --> 00:08:34,830 speriamo, noi non facciamo tutto perfezionare tutto il tempo. 197 00:08:34,830 --> 00:08:37,010 Quindi non essere preoccupato se si non ha ottenuto un cinque. 198 00:08:37,010 --> 00:08:40,470 A cinque non mappa su una A, una quattro non mappare su una B, una tre fa 199 00:08:40,470 --> 00:08:42,950 non mappa sui C. Questo non come funzionano i punteggi. 200 00:08:42,950 --> 00:08:48,140 >> Come David ha detto molte volte, a fine del semestre tutti i tuoi punteggi e 201 00:08:48,140 --> 00:08:53,390 Ingresso da me, il tuo TF, si incontrano e determinare un voto finale per voi. 202 00:08:53,390 --> 00:08:56,760 Ma ancora una volta, non cinque, A, quattro, B, eccetera. 203 00:08:56,760 --> 00:09:01,150 Quindi ho intenzione di avere grandi aspettative per voi ragazzi. 204 00:09:01,150 --> 00:09:03,670 Ho intenzione di aspettare buona problema set e ho intenzione di dare 205 00:09:03,670 --> 00:09:05,010 un feedback in quanto tale. 206 00:09:05,010 --> 00:09:07,430 E non sta a significare che sei intenzione di ottenere un grado di peggio. 207 00:09:07,430 --> 00:09:09,760 Si sono classificati in termini di i progressi di settimana 208 00:09:09,760 --> 00:09:11,260 zero per fine del corso. 209 00:09:11,260 --> 00:09:17,190 >> E, infine, in termini di elevata aspettative in classe, mi piace quando 210 00:09:17,190 --> 00:09:18,460 persone partecipano. 211 00:09:18,460 --> 00:09:23,180 Capisco alcune persone si sentono più o meno confortevole partecipanti. 212 00:09:23,180 --> 00:09:26,050 Altre persone stanno partecipando non alzando la mano e 213 00:09:26,050 --> 00:09:27,320 a parlare per tutto il tempo. 214 00:09:27,320 --> 00:09:30,570 Ma noi in questa classe stiamo per essere facendo un sacco di piccoli problemi, un sacco 215 00:09:30,570 --> 00:09:33,770 di mini domande, e poi alcuni grandi problemi di codifica. 216 00:09:33,770 --> 00:09:36,760 Quindi sicuramente lavorare questi esercizi fuori quando li facciamo sul computer o su 217 00:09:36,760 --> 00:09:37,900 un foglio di carta. 218 00:09:37,900 --> 00:09:40,933 >> Ma io darò anche un po 'di tempo prima qualcuno ha mai di rispondere ad alcune 219 00:09:40,933 --> 00:09:42,220 delle domande che mi chiedo. 220 00:09:42,220 --> 00:09:44,930 Quindi, perché io vi darò un po 'di tempo per pensarci, perché stiamo andando 221 00:09:44,930 --> 00:09:49,380 di fare le cose in partner a volte, Vi aspettano tutti 222 00:09:49,380 --> 00:09:52,150 di essere impegnato in qualche modo. 223 00:09:52,150 --> 00:09:56,030 E per mancanza di un termine migliore, non ci sarà probabilmente chiamare freddo, che 224 00:09:56,030 --> 00:09:59,045 è dove ognuno avrà la possibilità per pensare alla risposta, e poi 225 00:09:59,045 --> 00:10:01,150 Mi rivolgo a voi, e poi dirai la risposta. 226 00:10:01,150 --> 00:10:05,200 >> Non preoccupatevi o aver paura di questo. 227 00:10:05,200 --> 00:10:08,610 L'ho fatto in passato e che abbiamo trovato che è molto più successo, 228 00:10:08,610 --> 00:10:11,810 leggere anche la ricerca educativa su di esso per determinare se si trattava di un 229 00:10:11,810 --> 00:10:12,640 buona tattica. 230 00:10:12,640 --> 00:10:15,790 E 'molto utile, soprattutto se si dare agli studenti il ​​tempo di pensare alla 231 00:10:15,790 --> 00:10:20,070 risposte e non li fanno solo venire fuori e dire che a destra fuori del blocco. 232 00:10:20,070 --> 00:10:22,620 Ma se non si sente a proprio agio rispondere, io sono anche abbastanza bravo a 233 00:10:22,620 --> 00:10:25,370 intuendo che fuori, e noi non abbiamo intenzione di si mette sul posto, in particolare su 234 00:10:25,370 --> 00:10:28,240 la telecamera, anche se nessuno dei si è sulla fotocamera al momento. 235 00:10:28,240 --> 00:10:32,250 >> Quindi queste sono le norme che ho. 236 00:10:32,250 --> 00:10:34,670 Una cosa di più lungo le linee di incontrare nel mezzo. 237 00:10:34,670 --> 00:10:36,490 Ho intenzione di dare a voi ragazzi un sacco di feedback. 238 00:10:36,490 --> 00:10:38,310 Per favore mi dia le risposte pure. 239 00:10:38,310 --> 00:10:46,190 C'è un sito web, sayat.me/cs50. 240 00:10:46,190 --> 00:10:48,380 Quindi è un feedback onesto. 241 00:10:48,380 --> 00:10:50,730 Se si vuole dare in sezione, Ricevo una mail ogni volta che succede. 242 00:10:50,730 --> 00:10:53,820 Faremo una pausa in un po ', quindi mi guardare attraverso il feedback poi. 243 00:10:53,820 --> 00:10:55,970 Se avete tutte le risposte, Si prega di dare a me lì. 244 00:10:55,970 --> 00:11:01,380 >> Se mi dai feedback sulla Q, che è meraviglioso, ma questa è la guida 245 00:11:01,380 --> 00:11:02,570 che si fa alla fine. 246 00:11:02,570 --> 00:11:05,690 Ma che sarà alla fine del semestre in modo Non sarò in grado di prendere qualsiasi che 247 00:11:05,690 --> 00:11:08,620 feedback e trasformarlo in insegnamento voi ragazzi migliori. 248 00:11:08,620 --> 00:11:11,020 Quindi, per favore, se avete qualunque feedback, dare a me. 249 00:11:11,020 --> 00:11:12,010 Amo feedback. 250 00:11:12,010 --> 00:11:14,490 Torna alla FOP, si ottiene un feedback tutto il tempo. 251 00:11:14,490 --> 00:11:18,610 >> Mi puoi dare vantaggi, le cose buone, delta, cose che posso migliorare. 252 00:11:18,610 --> 00:11:20,600 Potete commentare il mio outfit. 253 00:11:20,600 --> 00:11:24,170 Che non sarà così utile, ma sei benvenuti a commentare ogni e 254 00:11:24,170 --> 00:11:24,570 tutto. 255 00:11:24,570 --> 00:11:26,280 Si prega, per favore mi dia un feedback. 256 00:11:26,280 --> 00:11:28,740 Io apprezzo molto e che significa molto per me. 257 00:11:28,740 --> 00:11:31,760 258 00:11:31,760 --> 00:11:33,280 >> Un'altra norma, divertente. 259 00:11:33,280 --> 00:11:34,530 Stiamo per avere un sacco di divertimento. 260 00:11:34,530 --> 00:11:36,930 Speriamo che in questo corso, ti hanno un sacco di divertimento. 261 00:11:36,930 --> 00:11:38,780 Avremo caramelle a sezione. 262 00:11:38,780 --> 00:11:40,040 Avremo musica. 263 00:11:40,040 --> 00:11:45,510 Saremo spera conoscersi un altro po 'bene, quindi voglio 264 00:11:45,510 --> 00:11:47,690 questo sia un divertimento, un'esperienza coinvolgente. 265 00:11:47,690 --> 00:11:50,890 >> So che alcuni di voi si sono addormentati nel le lezioni che hai avuto prima di oggi, 266 00:11:50,890 --> 00:11:53,750 quindi speriamo che non lo farà essere il caso ora. 267 00:11:53,750 --> 00:11:55,960 E se è il caso ora, solo non russare perché potrebbe 268 00:11:55,960 --> 00:11:57,580 essere catturato dalla macchina fotografica. 269 00:11:57,580 --> 00:11:58,770 Dolce. 270 00:11:58,770 --> 00:12:04,020 Tutte le domande, commenti, o dubbi prima di passare su tutto ciò che abbiamo 271 00:12:04,020 --> 00:12:05,270 parlato? 272 00:12:05,270 --> 00:12:08,620 273 00:12:08,620 --> 00:12:11,350 Grande. 274 00:12:11,350 --> 00:12:14,830 >> Quindi stiamo per andare in array primi. 275 00:12:14,830 --> 00:12:17,140 Questo è il modo di fare un array. 276 00:12:17,140 --> 00:12:18,410 Abbiamo visto questo prima. 277 00:12:18,410 --> 00:12:21,830 Si dispone di un tipo di dati, è necessario un nome, quindi si ha una dimensione. 278 00:12:21,830 --> 00:12:24,430 Proprio qui, a creare due array. 279 00:12:24,430 --> 00:12:30,360 Il primo è un array di caratteri, ed ha 26 posti. 280 00:12:30,360 --> 00:12:33,790 Il secondo è un array di colonne sonore, e ha tre 281 00:12:33,790 --> 00:12:35,390 spazi per i tre numeri interi. 282 00:12:35,390 --> 00:12:35,827 Sì? 283 00:12:35,827 --> 00:12:38,200 >> STUDENTE: Sono tutte queste diapositive disponibile da qualche parte per noi? 284 00:12:38,200 --> 00:12:38,850 >> JASON HIRSCHHORN: Ottima domanda. 285 00:12:38,850 --> 00:12:40,650 La domanda era: sono tutti di Queste diapositive disponibile? 286 00:12:40,650 --> 00:12:40,920 Sì. 287 00:12:40,920 --> 00:12:43,420 Tutte queste diapositive saranno disponibili, e in futuro, io-mail a 288 00:12:43,420 --> 00:12:44,640 te prima sezione. 289 00:12:44,640 --> 00:12:47,340 Ma oggi, perché questo è il primo settimana, abbiamo avuto una partenza in ritardo. 290 00:12:47,340 --> 00:12:49,675 Quindi, di solito, si otterrà queste slide, ma saranno disponibili on-line e 291 00:12:49,675 --> 00:12:52,420 Io-mail a voi a destra dopo le lezioni. 292 00:12:52,420 --> 00:12:54,140 Tutte le altre domande? 293 00:12:54,140 --> 00:13:01,330 >> Quindi, di nuovo, gli array sono scatole, per mancanza di una parola migliore, che detengono più 294 00:13:01,330 --> 00:13:06,420 elementi di uno stesso tipo di dati, e sono una accanto all'altra in memoria. 295 00:13:06,420 --> 00:13:11,370 E così ancora una volta, questo è come si può effettuare due tipi di matrici. 296 00:13:11,370 --> 00:13:15,090 >> Così, dopo che hai fatto il tuo array con che la prima linea - punteggi int, staffa 297 00:13:15,090 --> 00:13:17,430 tre, vicino staffa - te vuole inizializzare. 298 00:13:17,430 --> 00:13:19,050 Vuoi mettere alcuni valori in là. 299 00:13:19,050 --> 00:13:24,660 Ed è così che si mettono alcuni valori in lì, basta scegliere l'indice e 300 00:13:24,660 --> 00:13:25,670 scrivere il numero. 301 00:13:25,670 --> 00:13:27,130 Facciamo disegnare questo sulla scheda. 302 00:13:27,130 --> 00:13:28,270 Chiunque può vedere? 303 00:13:28,270 --> 00:13:29,030 Tutti possono vedere. 304 00:13:29,030 --> 00:13:30,790 Dolce. 305 00:13:30,790 --> 00:13:36,550 >> In modo che sara 'il mio array chiamato punteggi. 306 00:13:36,550 --> 00:13:37,730 Come si può vedere, si tratta di tre dimensioni. 307 00:13:37,730 --> 00:13:39,210 Ci sono tre scatole in là. 308 00:13:39,210 --> 00:13:43,120 Ognuno può andare bene quello che tipo di tipo di dati? 309 00:13:43,120 --> 00:13:43,790 >> STUDENTE: Integer. 310 00:13:43,790 --> 00:13:45,250 >> JASON HIRSCHHORN: un numero intero in questo. 311 00:13:45,250 --> 00:13:48,790 Abbiamo scritto punteggi int, e la prima parola è il tipo di dati che sta per 312 00:13:48,790 --> 00:13:50,910 andare nelle caselle di tale matrice. 313 00:13:50,910 --> 00:13:52,160 Quindi posso montare tre. 314 00:13:52,160 --> 00:13:54,880 315 00:13:54,880 --> 00:13:57,000 Perché devo zero fino lì sul bordo? 316 00:13:57,000 --> 00:13:59,240 Perché c'è scritto punteggio pari a zero è uguale a 1? 317 00:13:59,240 --> 00:14:02,090 318 00:14:02,090 --> 00:14:03,180 Mi ricordano il tuo nome. 319 00:14:03,180 --> 00:14:03,470 >> STUDENTE: Kurt. 320 00:14:03,470 --> 00:14:04,070 >> JASON HIRSCHHORN: Kurt. 321 00:14:04,070 --> 00:14:04,480 >> STUDENTE: Sì.. 322 00:14:04,480 --> 00:14:04,920 >> JASON HIRSCHHORN: Perché? 323 00:14:04,920 --> 00:14:07,230 >> STUDENTE: Perché il primo indice è pari a zero, si parte a contare da zero. 324 00:14:07,230 --> 00:14:08,480 >> JASON HIRSCHHORN: Allora iniziamo contare da zero. 325 00:14:08,480 --> 00:14:09,580 E 'esattamente così. 326 00:14:09,580 --> 00:14:12,340 Questa è la parte confusa e viaggio di volontà in su, soprattutto quando si è 327 00:14:12,340 --> 00:14:14,900 cercando di scorrere gli array, che faremo in un po '. 328 00:14:14,900 --> 00:14:15,980 Si comincia a contare da zero. 329 00:14:15,980 --> 00:14:19,170 Quindi, se voglio fare riferimento alla prima scatola, non è una scatola. 330 00:14:19,170 --> 00:14:22,290 Purtroppo, è scatola zero. 331 00:14:22,290 --> 00:14:26,460 La seconda è una scatola, e in questo caso, il terzo è scatola due. 332 00:14:26,460 --> 00:14:28,700 >> Che dire di dialogo a tre? 333 00:14:28,700 --> 00:14:30,670 Dove si trova il box tre? 334 00:14:30,670 --> 00:14:34,750 Oppure, se voglio fare colonne sonore, staffa tre, chiudere la parentesi, che cos'è? 335 00:14:34,750 --> 00:14:37,650 336 00:14:37,650 --> 00:14:39,760 Così si disse il carattere null. 337 00:14:39,760 --> 00:14:41,600 Eventuali altri pensieri? 338 00:14:41,600 --> 00:14:44,590 Qual è la staffa di segnare tre staffa? 339 00:14:44,590 --> 00:14:48,045 >> STUDENTE: E 'in realtà non esiste, perché si è definito solo come colonne sonore, 340 00:14:48,045 --> 00:14:49,370 Staffa tre. 341 00:14:49,370 --> 00:14:51,400 >> JASON HIRSCHHORN: Così si dice che in realtà non esiste. 342 00:14:51,400 --> 00:14:54,230 In alcuni casi, quando abbiamo a che fare con corde, generalmente ci metterò un nullo 343 00:14:54,230 --> 00:14:54,790 carattere alla fine. 344 00:14:54,790 --> 00:14:56,100 Ci arriveremo tra un secondo. 345 00:14:56,100 --> 00:15:01,020 Ma in questo caso, ci c'è una terza scatola qui. 346 00:15:01,020 --> 00:15:06,390 Quindi l'ultima casella in qualsiasi array è la dimensione meno 1. 347 00:15:06,390 --> 00:15:11,310 Quindi, se abbiamo un array di dimensione n, il prima casella è a zero, l'ultimo è 348 00:15:11,310 --> 00:15:12,700 al n meno 1. 349 00:15:12,700 --> 00:15:14,970 E in questo caso, non esiste. 350 00:15:14,970 --> 00:15:17,970 C'è qualcosa qui in memoria, ma non è la nostra. 351 00:15:17,970 --> 00:15:18,460 Noi non possediamo. 352 00:15:18,460 --> 00:15:19,570 Non abbiamo chiesto per questo. 353 00:15:19,570 --> 00:15:22,606 Quindi, se si cerca di accedervi, che faremo fare in un po ', stiamo probabilmente andando a 354 00:15:22,606 --> 00:15:24,970 mettersi nei guai. 355 00:15:24,970 --> 00:15:29,180 >> In questo caso, sto inizializzando il mio array con tre variabili. 356 00:15:29,180 --> 00:15:36,195 Stiamo mettendo a quello in scatola zero, un due in scatola, e un tre in due box. 357 00:15:36,195 --> 00:15:39,280 Qualcuno ha delle domande circa l'inizializzazione di un array? 358 00:15:39,280 --> 00:15:44,540 359 00:15:44,540 --> 00:15:46,970 >> Così siamo andati su questo proprio ora. 360 00:15:46,970 --> 00:15:52,725 I punteggi, staffa a tre, vicino staffa, che non esiste. 361 00:15:52,725 --> 00:15:58,130 Stiamo a zero indicizzato in informatica, così iniziamo a contare da zero. 362 00:15:58,130 --> 00:16:01,860 L'ultima casella disponibile per noi, è la terza casella, ma si chiama dialogo 363 00:16:01,860 --> 00:16:03,110 numero due. 364 00:16:03,110 --> 00:16:05,790 365 00:16:05,790 --> 00:16:09,710 >> Giù sotto, questa è un'alternativa modo di inizializzazione array. 366 00:16:09,710 --> 00:16:13,410 Così invece di creare l'array in un'unica linea, il riempimento della prima casella, quindi 367 00:16:13,410 --> 00:16:17,070 la seconda casella, quindi la terza casella, si può fare tutto in una sola riga. 368 00:16:17,070 --> 00:16:19,040 Così in quella linea, entrambe le matrici. 369 00:16:19,040 --> 00:16:23,460 Questo crea la stessa esatta della matrice come quello che abbiamo creato proprio qui, ma 370 00:16:23,460 --> 00:16:24,710 appena lo fa in una sola riga. 371 00:16:24,710 --> 00:16:29,740 372 00:16:29,740 --> 00:16:31,360 >> Ora che abbiamo creato il nostro array. 373 00:16:31,360 --> 00:16:34,100 Di solito una volta che si crea un array, è voglia di fare qualcosa con esso, se 374 00:16:34,100 --> 00:16:38,430 che è riempirlo o ottenere le cose fuori di esso e stamparli sullo schermo. 375 00:16:38,430 --> 00:16:42,270 In questo caso, stiamo attraversando il nostro array di colonne sonore, che abbiamo inizializzato su 376 00:16:42,270 --> 00:16:44,740 la prima linea qui in grigio. 377 00:16:44,740 --> 00:16:49,600 E poi sulla seconda riga, si parte scorrendo l'array. 378 00:16:49,600 --> 00:16:52,640 Qualcuno ha domande su la struttura di un ciclo for? 379 00:16:52,640 --> 00:16:55,250 380 00:16:55,250 --> 00:16:56,400 >> Quindi questo è il ciclo for. 381 00:16:56,400 --> 00:16:59,530 Noi abbiamo la nostra condizione iniziale, e poi nostra condizione finale, e poi ci 382 00:16:59,530 --> 00:17:01,160 iterare, i, ogni loop. 383 00:17:01,160 --> 00:17:05,579 E nelle parentesi graffe in questo per loop, che cosa succede se dovessi correre 384 00:17:05,579 --> 00:17:06,290 questo programma? 385 00:17:06,290 --> 00:17:10,410 Qualcuno può dirmi che cosa otterremmo? 386 00:17:10,410 --> 00:17:11,589 [? Matu? ?] 387 00:17:11,589 --> 00:17:13,819 >> MATU: Stampa tutti i punteggi su ogni linea. 388 00:17:13,819 --> 00:17:14,900 Sarebbe stampare ogni punteggio su una riga separata. 389 00:17:14,900 --> 00:17:16,300 >> JASON HIRSCHHORN: Che cosa esattamente sarebbe stampare? 390 00:17:16,300 --> 00:17:19,790 >> STUDENTE: Sarebbe stampare una, poi due, poi tre. 391 00:17:19,790 --> 00:17:20,235 >> JASON HIRSCHHORN: Esattamente. 392 00:17:20,235 --> 00:17:23,490 Sarebbe stampare una, poi due, poi tre, ciascuna su righe separate, perché 393 00:17:23,490 --> 00:17:27,810 stiamo attraversando la matrice e ti vedere che secondo la printf 394 00:17:27,810 --> 00:17:29,275 istruzione, i punteggi. 395 00:17:29,275 --> 00:17:32,880 Così il primo turno attraverso il nostro per ciclo, i è uguale a zero, il che significa che siamo 396 00:17:32,880 --> 00:17:34,640 ottenere il valore al punteggio pari a zero - 397 00:17:34,640 --> 00:17:36,900 che, se torniamo a il nostro schema, è uno - 398 00:17:36,900 --> 00:17:38,630 e compilando - 399 00:17:38,630 --> 00:17:39,700 oh, si dice c. 400 00:17:39,700 --> 00:17:41,680 Che dovrebbe essere% d. 401 00:17:41,680 --> 00:17:43,970 Riparerò che in un po 'quando Io invece che fuori a voi ragazzi. 402 00:17:43,970 --> 00:17:48,670 Ma stiamo presentando un numero intero in modo che dovrebbe essere% d proprio qui, non c%. 403 00:17:48,670 --> 00:17:50,340 Qual è% c per? 404 00:17:50,340 --> 00:17:50,790 >> STUDENTE: Carattere. 405 00:17:50,790 --> 00:17:52,680 >> JASON HIRSCHHORN: Carattere, esattamente. 406 00:17:52,680 --> 00:17:53,690 Qual è l'altro? 407 00:17:53,690 --> 00:17:56,260 Se non si vuole fare% d per un numero intero, che altro si può fare? 408 00:17:56,260 --> 00:17:57,000 >> STUDENTE: i. 409 00:17:57,000 --> 00:17:59,180 >> JASON HIRSCHHORN:% i, esattamente. 410 00:17:59,180 --> 00:18:01,660 Quindi, tutte le domande circa l'iterazione attraverso l'array? 411 00:18:01,660 --> 00:18:05,500 412 00:18:05,500 --> 00:18:07,800 Che cosa succede se facciamo questo? 413 00:18:07,800 --> 00:18:10,290 Invece di fare i è inferiore tre, facciamo i è inferiore 414 00:18:10,290 --> 00:18:11,390 o uguale a tre. 415 00:18:11,390 --> 00:18:13,420 Che cosa succede quando si esegue questo codice? 416 00:18:13,420 --> 00:18:17,510 417 00:18:17,510 --> 00:18:18,940 Sì, Annie? 418 00:18:18,940 --> 00:18:22,030 >> STUDENTE: Stanno andando a stampare cose strane sulla quarta linea. 419 00:18:22,030 --> 00:18:23,850 >> JASON HIRSCHHORN: Quindi lei ha detto, è che andando a stampare cose strane sul 420 00:18:23,850 --> 00:18:24,390 quarta linea? 421 00:18:24,390 --> 00:18:25,750 Qualcuno ha una risposta alla sua domanda? 422 00:18:25,750 --> 00:18:28,940 423 00:18:28,940 --> 00:18:33,160 Quindi le probabilità sono che, quando arriviamo al - 424 00:18:33,160 --> 00:18:36,700 così il quarto appuntamento con il nostro per loop, proprio come si pensava, Annie, 425 00:18:36,700 --> 00:18:39,430 sarà punteggi staffa tre, che abbiamo già capito non 426 00:18:39,430 --> 00:18:41,990 Esistiamo, e stiamo andando a provare ed accedere a quella, stamparlo 427 00:18:41,990 --> 00:18:43,350 out, usarlo qualche modo. 428 00:18:43,350 --> 00:18:46,060 Quindi, il computer sarà probabilmente arrabbiarsi con noi. 429 00:18:46,060 --> 00:18:46,760 Hai perfettamente ragione. 430 00:18:46,760 --> 00:18:48,830 >> Potrebbe uscire dal programma del tutto. 431 00:18:48,830 --> 00:18:52,222 Si potrebbe stampare qualcosa davvero strano. 432 00:18:52,222 --> 00:18:53,420 Non si può dire con certezza. 433 00:18:53,420 --> 00:18:56,210 Le probabilità sono che probabilmente otterrete arrabbiato si e appena smesso subito. 434 00:18:56,210 --> 00:19:00,100 >> Ma questo è un errore comune si dovrà dove si è appena fuori da uno a 435 00:19:00,100 --> 00:19:05,110 alla fine, e questo è un bug che verrà affliggere voi durante il vostro codice. 436 00:19:05,110 --> 00:19:09,350 437 00:19:09,350 --> 00:19:14,150 Un modo che mi piace fare è solo su un whiteboard, passare attraverso ogni iterazione 438 00:19:14,150 --> 00:19:18,190 del loop a mano o su carta per vedere cosa sta succedendo, e poi si 439 00:19:18,190 --> 00:19:20,440 generalmente realizzare, oh aspetta, non dovrei sono andati a minore o 440 00:19:20,440 --> 00:19:20,870 pari a tre. 441 00:19:20,870 --> 00:19:24,730 Avrei dovuto fermarmi a due, che è cosa succede se la sua condizione è meno 442 00:19:24,730 --> 00:19:26,206 di tre. 443 00:19:26,206 --> 00:19:29,120 Tutte le domande finora? 444 00:19:29,120 --> 00:19:31,010 Dolce. 445 00:19:31,010 --> 00:19:33,360 >> Quindi, tutti voi avete i computer aperto. 446 00:19:33,360 --> 00:19:36,760 Stiamo per darvi 02:58 minuti per scrivere un programma che 447 00:19:36,760 --> 00:19:40,460 crea un array con i numeri interi uno attraverso cinque e quindi stampa ogni 448 00:19:40,460 --> 00:19:41,720 numero intero su una nuova linea. 449 00:19:41,720 --> 00:19:44,330 450 00:19:44,330 --> 00:19:46,000 E se avete domande, alzi la mano. 451 00:19:46,000 --> 00:19:48,140 Sono felice di trovare. 452 00:19:48,140 --> 00:19:50,630 Come ho detto, diamo tre minuti per scrivere questo. 453 00:19:50,630 --> 00:20:41,300 454 00:20:41,300 --> 00:20:45,110 È tutto OK, se vado in un nuova finestra e chiudere questo? 455 00:20:45,110 --> 00:22:13,420 456 00:22:13,420 --> 00:22:15,520 >> Mi dispiace se non hai avuto la possibilità per finire, ma abbiamo intenzione di farlo 457 00:22:15,520 --> 00:22:17,310 insieme adesso. 458 00:22:17,310 --> 00:22:23,640 Quindi sullo schermo, ho # include cs50.h, # include stdio.h. 459 00:22:23,640 --> 00:22:26,090 Qualcuno può dirmi che cosa quelle due righe fanno? 460 00:22:26,090 --> 00:22:32,250 461 00:22:32,250 --> 00:22:33,155 Michael? 462 00:22:33,155 --> 00:22:40,030 >> STUDENTE: Essi comprendono le librerie CS50 che ha fatto e che Steve ha 463 00:22:40,030 --> 00:22:44,210 salvato per l'uso di rendere la vita più facile. 464 00:22:44,210 --> 00:22:46,820 >> JASON HIRSCHHORN: Così si dice che includere le librerie, uno che CS50 465 00:22:46,820 --> 00:22:51,230 fatto, cs50.h, e uno che è solo di serie, viene fornito con 466 00:22:51,230 --> 00:22:53,510 il pacchetto C, stdio.h. 467 00:22:53,510 --> 00:22:54,890 Cosa intendi includere le librerie, però? 468 00:22:54,890 --> 00:22:55,770 Può essere un po 'più specifico? 469 00:22:55,770 --> 00:23:01,180 >> STUDENTE: Si fa in modo che possiate usare certe parole in codice per avere un 470 00:23:01,180 --> 00:23:05,710 funzionare accadere senza dover andare e rendere la funzione c te stesso. 471 00:23:05,710 --> 00:23:08,730 >> JASON HIRSCHHORN: Potete farmi un esempio? 472 00:23:08,730 --> 00:23:11,160 >> STUDENTE: Come printf è quello che si può usare. 473 00:23:11,160 --> 00:23:11,860 >> JASON HIRSCHHORN: printf. 474 00:23:11,860 --> 00:23:14,680 Quindi hai detto printf è uno di quelli funzioni in cui invece di dover 475 00:23:14,680 --> 00:23:19,840 scrivere printf da soli, printf è incluso effettivamente in stdio.h, in modo da 476 00:23:19,840 --> 00:23:22,010 può solo usarlo e assumere che funzionerà. 477 00:23:22,010 --> 00:23:28,270 In stdio.h, se hai aperto il file, sarebbe comprendere come printf 478 00:23:28,270 --> 00:23:31,620 opere, tutto il codice per printf? 479 00:23:31,620 --> 00:23:33,105 Perché stai scuotendo la testa? 480 00:23:33,105 --> 00:23:35,710 >> STUDENTE: Poiché il file di intestazione solo comprende la dichiarazione di funzione. 481 00:23:35,710 --> 00:23:36,400 >> JASON HIRSCHHORN: Esattamente. 482 00:23:36,400 --> 00:23:39,680 Il file di intestazione include solo la dichiarazione di funzione. 483 00:23:39,680 --> 00:23:42,950 Quindi, in pratica, quando si compila questo, hit Conte, che faremo in un 484 00:23:42,950 --> 00:23:48,070 secondo, il compilatore sa che se si usa printf, esiste printf. 485 00:23:48,070 --> 00:23:49,370 E 'intenzione di essere definito da qualche parte. 486 00:23:49,370 --> 00:23:51,200 Non è un problema per voi di usarlo. 487 00:23:51,200 --> 00:23:55,490 E poi in seguito, sarà include il uno e zero che in realtà contengono 488 00:23:55,490 --> 00:23:58,360 printf di attuazione e unirle con il codice. 489 00:23:58,360 --> 00:24:01,935 Come si fa a verificare che include la uno e zero per, diciamo, ottengono stringa? 490 00:24:01,935 --> 00:24:05,670 491 00:24:05,670 --> 00:24:07,210 >> STUDENTE: Get stringa è in cs50.h. 492 00:24:07,210 --> 00:24:07,830 >> JASON HIRSCHHORN: Giusto. 493 00:24:07,830 --> 00:24:11,110 In modo che dice arrivare stringa esiste, la dichiarazione di funzione. 494 00:24:11,110 --> 00:24:15,410 Ma poi la uno e zero, il binario file che contiene effettivamente il 495 00:24:15,410 --> 00:24:17,370 realizzazione di stringa get? 496 00:24:17,370 --> 00:24:19,310 Come si fa a fare in modo che va con il vostro programma? 497 00:24:19,310 --> 00:24:23,220 >> STUDENTE: Passare il linker in l'argomento della riga di comando. 498 00:24:23,220 --> 00:24:25,430 >> JASON HIRSCHHORN: Passare il linker in argomento della riga di comando. 499 00:24:25,430 --> 00:24:26,700 Come si fa a farlo? 500 00:24:26,700 --> 00:24:29,730 >> STUDENTE: E 'il-l linea nella clang 501 00:24:29,730 --> 00:24:30,480 >> JASON HIRSCHHORN: Esattamente. 502 00:24:30,480 --> 00:24:32,900 Tu dici-l CS50, giusto? 503 00:24:32,900 --> 00:24:34,940 Che comprende le uno e zero. 504 00:24:34,940 --> 00:24:36,460 >> Studente: Ma Fai fa che per voi, giusto? 505 00:24:36,460 --> 00:24:37,010 >> JASON HIRSCHHORN: Esattamente. 506 00:24:37,010 --> 00:24:40,390 Assicurarsi che fa per voi, ma alla fine, non avrete Fai, o 507 00:24:40,390 --> 00:24:43,220 dovrete fare un fare da soli, in modo che un 508 00:24:43,220 --> 00:24:43,940 buona cosa da ricordare. 509 00:24:43,940 --> 00:24:47,350 Se si dovesse andare ad usare uno di questi altre biblioteche, non solo si ha 510 00:24:47,350 --> 00:24:49,490 a scrivere # include e poi la libreria. 511 00:24:49,490 --> 00:24:51,420 È inoltre necessario collegarlo dentro 512 00:24:51,420 --> 00:24:54,480 E queste due cose sono diverse. -L CS50 è diversa 513 00:24:54,480 --> 00:24:59,260 di # include cs50.h. 514 00:24:59,260 --> 00:25:02,870 >> Poi abbiamo int main nulle le parentesi graffe, e ora stiamo andando a codice 515 00:25:02,870 --> 00:25:03,590 all'interno principale. 516 00:25:03,590 --> 00:25:07,090 La prima linea che ho qui è un commento che dice, creare un array 517 00:25:07,090 --> 00:25:08,820 con interi da uno a cinque. 518 00:25:08,820 --> 00:25:12,600 Che cosa è una buona parola per descrivere quello che ho avere in questo momento sullo schermo, proprio 519 00:25:12,600 --> 00:25:14,170 commenti all'interno principale? 520 00:25:14,170 --> 00:25:15,722 Come si chiama questo? 521 00:25:15,722 --> 00:25:16,820 >> STUDENTE: pseudocodice. 522 00:25:16,820 --> 00:25:17,840 >> JASON HIRSCHHORN: pseudocodice. 523 00:25:17,840 --> 00:25:18,420 Grazie, Jeffrey. 524 00:25:18,420 --> 00:25:19,540 Questo è esattamente giusto. 525 00:25:19,540 --> 00:25:20,005 Pseudocodice. 526 00:25:20,005 --> 00:25:22,854 Avete visto pseudocodice prima? 527 00:25:22,854 --> 00:25:28,340 Alzi la mano se hai utilizzato pseudocodice prima del problema impostato uno. 528 00:25:28,340 --> 00:25:29,400 Circa la metà di voi. 529 00:25:29,400 --> 00:25:32,700 >> Mi raccomando usando pseudocodice per abbattere i problemi in 530 00:25:32,700 --> 00:25:35,210 più piccolo, più facile da mordere pezzi. 531 00:25:35,210 --> 00:25:38,630 Inoltre, se si fa il pseudocodice, è avere i tuoi commenti già ampiamente 532 00:25:38,630 --> 00:25:40,760 integrato, in modo da non dover tornare indietro e cercare di capire 533 00:25:40,760 --> 00:25:42,450 quello che stavi facendo. 534 00:25:42,450 --> 00:25:44,730 Quindi, qualcuno mi può dare questa prima linea per creare un array con interi uno 535 00:25:44,730 --> 00:25:45,980 attraverso cinque? 536 00:25:45,980 --> 00:25:48,700 537 00:25:48,700 --> 00:25:49,130 Lei? 538 00:25:49,130 --> 00:25:53,350 >> STUDENTE: Int e poi si può chiamare qualunque sia il numero, e poi piazza 539 00:25:53,350 --> 00:25:54,830 Staffa di cinque. 540 00:25:54,830 --> 00:25:57,820 >> JASON HIRSCHHORN: numeri in modo int, parentesi quadra cinque. 541 00:25:57,820 --> 00:25:59,160 >> STUDENTE: Equals, e poi tra parentesi graffe. 542 00:25:59,160 --> 00:26:00,830 >> JASON HIRSCHHORN: Uguale, parentesi graffe. 543 00:26:00,830 --> 00:26:01,830 >> STUDENTE: Uno, due, tre, quattro. 544 00:26:01,830 --> 00:26:05,566 >> JASON HIRSCHHORN: Uno, due, tre, quattro, cinque. 545 00:26:05,566 --> 00:26:07,390 >> STUDENTE: E poi tra parentesi graffe e poi virgola. 546 00:26:07,390 --> 00:26:09,240 >> JASON HIRSCHHORN: E riccio bretelle e virgola. 547 00:26:09,240 --> 00:26:10,330 Eccellente. 548 00:26:10,330 --> 00:26:12,210 Stampate ogni int su una nuova linea. 549 00:26:12,210 --> 00:26:17,140 Qualcun altro può dare me quel codice, per favore? 550 00:26:17,140 --> 00:26:17,530 [? Matu? ?] 551 00:26:17,530 --> 00:26:18,560 Vai avanti. 552 00:26:18,560 --> 00:26:20,440 >> STUDENTE: Per ( 553 00:26:20,440 --> 00:26:21,750 >> JASON HIRSCHHORN: per ( 554 00:26:21,750 --> 00:26:23,740 >> STUDENTE: int i = 0 555 00:26:23,740 --> 00:26:26,070 >> JASON HIRSCHHORN: int i = 0 556 00:26:26,070 --> 00:26:28,190 >> STUDENTE: Punto e virgola i meno di cinque. 557 00:26:28,190 --> 00:26:31,680 >> JASON HIRSCHHORN: Punto e virgola, i meno di 5. 558 00:26:31,680 --> 00:26:33,600 >> STUDENTE: Punto e virgola, i + +. 559 00:26:33,600 --> 00:26:35,140 >> JASON HIRSCHHORN: Punto e virgola, i + +. 560 00:26:35,140 --> 00:26:37,720 >> STUDENTE: parentesi chiusa, poi graffa aperta. 561 00:26:37,720 --> 00:26:39,410 >> JASON HIRSCHHORN: parentesi chiuse e due bretelle. 562 00:26:39,410 --> 00:26:40,510 All'interno delle parentesi graffe? 563 00:26:40,510 --> 00:26:47,640 >> STUDENTE: E poi printf "% d / n" 564 00:26:47,640 --> 00:26:48,695 >> JASON HIRSCHHORN: Scusa, aspetta. 565 00:26:48,695 --> 00:26:52,330 Printf "% d / n, quote chiuso. 566 00:26:52,330 --> 00:26:55,980 >> STUDENTE: E poi preventivo chiuso, virgola, conteggio, staffa i. 567 00:26:55,980 --> 00:26:58,350 >> JASON HIRSCHHORN: Virgola, conteggio, staffa i. 568 00:26:58,350 --> 00:26:59,970 >> STUDENTE: Mi dispiace, numeri staffa i. 569 00:26:59,970 --> 00:27:01,416 >> JASON HIRSCHHORN: Numeri, staffa i. 570 00:27:01,416 --> 00:27:03,200 >> STUDENTE: Mi dispiace. 571 00:27:03,200 --> 00:27:04,750 E poi chiuse tra parentesi, virgola. 572 00:27:04,750 --> 00:27:07,156 >> JASON HIRSCHHORN: chiuso tra parentesi, punto e virgola. 573 00:27:07,156 --> 00:27:08,680 Io vado a salvare quella. 574 00:27:08,680 --> 00:27:12,670 Stiamo andando a fare il conto. 575 00:27:12,670 --> 00:27:14,742 E come faccio a eseguire il conto? 576 00:27:14,742 --> 00:27:16,470 >> STUDENTE: Barra rovesciata. 577 00:27:16,470 --> 00:27:17,180 >> STUDENTE: Dot di barra - 578 00:27:17,180 --> 00:27:18,050 >> JASON HIRSCHHORN:. / Conta, esattamente. 579 00:27:18,050 --> 00:27:19,380 Grazie. . / Conta. 580 00:27:19,380 --> 00:27:21,060 Uno, due, tre, quattro, cinque le nuove linee. 581 00:27:21,060 --> 00:27:22,110 Sembra che abbia funzionato. 582 00:27:22,110 --> 00:27:23,200 Sì, Noah? 583 00:27:23,200 --> 00:27:26,660 >> STUDENTE: Si potrebbe anche fare a meno di o uguale a quattro, come i è inferiore 584 00:27:26,660 --> 00:27:27,630 o uguale a quattro? 585 00:27:27,630 --> 00:27:31,190 C'è qualche vantaggio a fare meno di cinque, o solo un modo diverso di 586 00:27:31,190 --> 00:27:31,610 scriverlo? 587 00:27:31,610 --> 00:27:35,280 >> JASON HIRSCHHORN: Quindi la domanda è: si avrebbe potuto fare i è inferiore o 588 00:27:35,280 --> 00:27:37,450 pari a quattro invece di i è inferiore a cinque. 589 00:27:37,450 --> 00:27:38,935 Vorrei che hanno lavorato lo stesso? 590 00:27:38,935 --> 00:27:39,760 >> STUDENTE: Si dovrebbe. 591 00:27:39,760 --> 00:27:39,860 >> JASON HIRSCHHORN: sì. 592 00:27:39,860 --> 00:27:41,660 E 'del tutto sarebbe lavorare lo stesso. 593 00:27:41,660 --> 00:27:44,780 Stilisticamente, è generalmente inferiore, e vedrete in un secondo momento 594 00:27:44,780 --> 00:27:48,160 facciamo le stringhe, è possibile utilizzare qualcosa chiamato strlen, che avete visto 595 00:27:48,160 --> 00:27:50,380 prima, per ottenere la lunghezza della stringa. 596 00:27:50,380 --> 00:27:54,090 E non si può fare a meno di o uguale strlen. 597 00:27:54,090 --> 00:27:56,500 Si potrebbe fare a meno di o eguagliare strlen meno uno. 598 00:27:56,500 --> 00:27:59,260 Quindi è solo più bello di fare a meno di strlen. 599 00:27:59,260 --> 00:28:00,240 Sì? 600 00:28:00,240 --> 00:28:03,270 >> STUDENTE: E nel vero quiz, fare dobbiamo fornire commenti sul nostro 601 00:28:03,270 --> 00:28:04,620 codice come bene? 602 00:28:04,620 --> 00:28:06,130 >> JASON HIRSCHHORN: La domanda è stato a quiz, si fa 603 00:28:06,130 --> 00:28:07,760 dovranno fornire commenti? 604 00:28:07,760 --> 00:28:12,050 Quindi parleremo di più su quiz quando vengono, ma in generale, un buon 605 00:28:12,050 --> 00:28:14,530 regola è ogni volta che sei la scrittura di codice, forniscono commenti. 606 00:28:14,530 --> 00:28:18,130 Se si ottiene il codice errato, ma il commento giusto, si potrebbe ottenere un po 'di 607 00:28:18,130 --> 00:28:22,280 credito sia da me, se è stato classificando voi su un problema di set o di un quiz. 608 00:28:22,280 --> 00:28:24,660 Quindi, i commenti sono sempre buono a fornire. 609 00:28:24,660 --> 00:28:25,040 Dolce. 610 00:28:25,040 --> 00:28:25,460 Conte. 611 00:28:25,460 --> 00:28:26,720 Ottimo lavoro. 612 00:28:26,720 --> 00:28:28,570 Andiamo avanti. 613 00:28:28,570 --> 00:28:29,920 >> Stringhe. 614 00:28:29,920 --> 00:28:30,630 Stringhe. 615 00:28:30,630 --> 00:28:31,730 Abbiamo visto questo prima in conferenza. 616 00:28:31,730 --> 00:28:33,390 Questo fatto esplodere la mia mente quando ho primo trovato questo fuori. 617 00:28:33,390 --> 00:28:37,240 Probabilmente non soffiare nessuno di mente qui, ma va bene. 618 00:28:37,240 --> 00:28:41,260 >> Le stringhe sono array di caratteri, e finiscono con, come hai detto prima, 619 00:28:41,260 --> 00:28:45,710 il terminatore null, che è questo personaggio / 0. 620 00:28:45,710 --> 00:28:47,740 Se stiamo andando a disegnare una stringa sul bordo, faremo disegnare sopra qui. 621 00:28:47,740 --> 00:28:53,080 622 00:28:53,080 --> 00:28:56,420 Quindi, per quanto tempo è questa stringa? 623 00:28:56,420 --> 00:28:56,680 Mi dispiace. 624 00:28:56,680 --> 00:28:57,660 Quanto è lunga questa stringa? 625 00:28:57,660 --> 00:28:57,910 >> STUDENTE: [incomprensibile]. 626 00:28:57,910 --> 00:28:59,010 >> JASON HIRSCHHORN: Quattro? 627 00:28:59,010 --> 00:28:59,880 Perché è quattro? 628 00:28:59,880 --> 00:29:02,240 >> STUDENTE: Perché il quinto posto è per il carattere null. 629 00:29:02,240 --> 00:29:04,070 >> JASON HIRSCHHORN: Così il quinto posto è per il carattere null. 630 00:29:04,070 --> 00:29:07,130 Quindi, se dovessi correre strlen su questo, sarebbe darmi quattro. 631 00:29:07,130 --> 00:29:07,850 Correggere. 632 00:29:07,850 --> 00:29:11,640 E la matrice, però, se dovessi inizializzare questo array, come molti spazi 633 00:29:11,640 --> 00:29:13,444 dovrei chiedere? 634 00:29:13,444 --> 00:29:13,821 >> STUDENTE: Cinque. 635 00:29:13,821 --> 00:29:14,200 >> JASON HIRSCHHORN: Cinque. 636 00:29:14,200 --> 00:29:17,650 Avrei dovuto chiedere a cinque, ma posso solo mettere quattro personaggi in qui 637 00:29:17,650 --> 00:29:19,750 perché ho bisogno di mettere che nulla terminatore all'estremità. 638 00:29:19,750 --> 00:29:25,260 Quindi stiamo andando a scrivere in "ohai" e mettere il terminatore null in alla fine. 639 00:29:25,260 --> 00:29:31,820 640 00:29:31,820 --> 00:29:34,940 Diremo questo è stringa s è uguale a questo. 641 00:29:34,940 --> 00:29:36,610 Che cosa è s staffa a zero? 642 00:29:36,610 --> 00:29:40,210 643 00:29:40,210 --> 00:29:41,550 s staffa a zero, Annie? 644 00:29:41,550 --> 00:29:41,950 >> STUDENTE: O. 645 00:29:41,950 --> 00:29:45,400 >> JASON HIRSCHHORN: O, esattamente. s Staffa uno? 646 00:29:45,400 --> 00:29:48,200 s staffa cinque? 647 00:29:48,200 --> 00:29:52,670 648 00:29:52,670 --> 00:29:53,955 s staffa cinque? 649 00:29:53,955 --> 00:29:54,740 >> STUDENTE: Non esiste. 650 00:29:54,740 --> 00:29:55,040 >> JASON HIRSCHHORN: Non esiste. 651 00:29:55,040 --> 00:29:57,050 Esattamente. 652 00:29:57,050 --> 00:29:57,940 Freddo. 653 00:29:57,940 --> 00:30:03,120 Tutte le domande circa la comprensione stringhe come array di caratteri? 654 00:30:03,120 --> 00:30:03,870 OK, allora. 655 00:30:03,870 --> 00:30:05,440 Un altro programma per voi ragazzi. 656 00:30:05,440 --> 00:30:09,190 Scrivere un programma che chiede all'utente per una stringa quindi stampa ogni 657 00:30:09,190 --> 00:30:11,880 carattere su una nuova linea. 658 00:30:11,880 --> 00:30:14,160 Così diamo tre minuti per scrivere questo programma, e poi ci si codificare 659 00:30:14,160 --> 00:30:15,410 come gruppo. 660 00:30:15,410 --> 00:31:04,730 661 00:31:04,730 --> 00:31:04,830 >> Mi dispiace. 662 00:31:04,830 --> 00:31:06,470 Hai bisogno di vedere questo? 663 00:31:06,470 --> 00:31:07,410 >> STUDENTE: No. 664 00:31:07,410 --> 00:31:08,660 >> JASON HIRSCHHORN: OK. 665 00:31:08,660 --> 00:31:36,390 666 00:31:36,390 --> 00:31:40,605 Prendiamo ancora un minuto per codificare questo, o almeno iniziare su di esso. 667 00:31:40,605 --> 00:32:13,900 668 00:32:13,900 --> 00:32:17,020 >> Così si può continuare a lavorare, ma ho intenzione per iniziare a passare attraverso di essa. 669 00:32:17,020 --> 00:32:22,560 Così come prima, ho sullo schermo # Include cs50.h, # include stdio.h. 670 00:32:22,560 --> 00:32:24,020 int void main. 671 00:32:24,020 --> 00:32:28,880 All'interno del principale parentesi graffe, ho due commenti, pseudocodice. 672 00:32:28,880 --> 00:32:30,980 Uno è chiedere una stringa dall'utente. 673 00:32:30,980 --> 00:32:33,900 La seconda è stampare ogni carattere su una nuova linea. 674 00:32:33,900 --> 00:32:39,780 Così Anna, potete darmi chiedo per una stringa dall'utente? 675 00:32:39,780 --> 00:32:41,970 >> STUDENTE: printf. 676 00:32:41,970 --> 00:32:42,720 >> JASON HIRSCHHORN: printf? 677 00:32:42,720 --> 00:32:45,050 >> STUDENTE: Sì.. 678 00:32:45,050 --> 00:32:46,165 ( 679 00:32:46,165 --> 00:32:47,610 >> JASON HIRSCHHORN: ( 680 00:32:47,610 --> 00:32:49,300 >> STUDENTE: "Dammi una stringa. 681 00:32:49,300 --> 00:32:52,380 >> JASON HIRSCHHORN: "dare me una str - oops - 682 00:32:52,380 --> 00:32:53,710 stringa. 683 00:32:53,710 --> 00:32:59,980 >> STUDENTE: / n ") punto e virgola. 684 00:32:59,980 --> 00:33:02,300 >> JASON HIRSCHHORN: Terminare la stringa, parentesi chiusa, punto e virgola. 685 00:33:02,300 --> 00:33:03,550 >> STUDENTE: Sì.. 686 00:33:03,550 --> 00:33:09,080 E poi la linea successiva, stringa s = ottenere stringa. 687 00:33:09,080 --> 00:33:11,240 >> JASON HIRSCHHORN: String s = ottenere stringa. 688 00:33:11,240 --> 00:33:11,665 >> STUDENTE: Sì.. 689 00:33:11,665 --> 00:33:13,080 E poi () 690 00:33:13,080 --> 00:33:14,365 >> JASON HIRSCHHORN: () 691 00:33:14,365 --> 00:33:14,720 >> STUDENTE: Punto e virgola. 692 00:33:14,720 --> 00:33:15,540 >> JASON HIRSCHHORN: Punto e virgola. 693 00:33:15,540 --> 00:33:16,890 Fantastico. 694 00:33:16,890 --> 00:33:19,000 Quindi ho intenzione di prendere una stringa e Io vado a salvarlo in che cosa? 695 00:33:19,000 --> 00:33:21,830 Qual è la variabile chiamata che si è creato? 696 00:33:21,830 --> 00:33:23,290 >> STUDENTE: String s. 697 00:33:23,290 --> 00:33:24,580 >> JASON HIRSCHHORN: la variabile si chiama s. 698 00:33:24,580 --> 00:33:25,700 E 'tipo string. 699 00:33:25,700 --> 00:33:27,200 Esattamente. 700 00:33:27,200 --> 00:33:30,080 La prossima cosa che vogliamo è stampare ogni carattere su una nuova linea. 701 00:33:30,080 --> 00:33:31,710 Chi mi può dare quel codice? 702 00:33:31,710 --> 00:33:32,110 [Incomprensibile]? 703 00:33:32,110 --> 00:33:33,000 Puoi dare a me? 704 00:33:33,000 --> 00:33:33,580 >> STUDENTE: Certo. 705 00:33:33,580 --> 00:33:35,420 >> JASON HIRSCHHORN: Cerchiamo di farlo. 706 00:33:35,420 --> 00:33:36,080 E mi dispiace. 707 00:33:36,080 --> 00:33:38,896 Non mi piace ripetere quello che dici perché sei sempre nel modo giusto, ma io 708 00:33:38,896 --> 00:33:42,100 ripetere in modo che quando essi trascrivere questo, possono ottenere tutto 709 00:33:42,100 --> 00:33:44,870 il fuori testo sul trascrizioni. 710 00:33:44,870 --> 00:33:47,180 Così si può semplicemente continuare a parlare. 711 00:33:47,180 --> 00:33:48,590 Purtroppo, non ho a dirlo su di voi. 712 00:33:48,590 --> 00:33:49,510 Mi dispiace, ma - 713 00:33:49,510 --> 00:33:50,610 >> STUDENTE: Questo va bene. 714 00:33:50,610 --> 00:33:53,010 Per int i = 0 715 00:33:53,010 --> 00:33:54,170 >> JASON HIRSCHHORN: per int i = 0 716 00:33:54,170 --> 00:33:56,740 >> Studente: meno di - 717 00:33:56,740 --> 00:33:58,206 >> JASON HIRSCHHORN: Punto e virgola. 718 00:33:58,206 --> 00:34:00,650 >> STUDENTE: Prima di questo, possiamo mettere un variabile in modo da ottenere int lunghezza del nome? 719 00:34:00,650 --> 00:34:01,870 >> JASON HIRSCHHORN: Oh, non è necessario vuole mettere il punto e virgola? 720 00:34:01,870 --> 00:34:02,310 OK. 721 00:34:02,310 --> 00:34:05,120 Quindi, che cosa vuoi fare dopo lo zero? 722 00:34:05,120 --> 00:34:09,340 >> STUDENTE: Voglio ottenere il lunghezza della stringa di s e 723 00:34:09,340 --> 00:34:10,410 set che a una variabile? 724 00:34:10,410 --> 00:34:11,760 >> JASON HIRSCHHORN: OK, Allora, come faccio a farlo? 725 00:34:11,760 --> 00:34:17,636 >> Studente: Così si fa int lunghezza = 726 00:34:17,636 --> 00:34:20,010 >> JASON HIRSCHHORN: int lunghezza = 727 00:34:20,010 --> 00:34:22,230 >> STUDENTE: S-T-R-L-E-N. 728 00:34:22,230 --> 00:34:24,260 >> JASON HIRSCHHORN: S-T-R-L-E-N - 729 00:34:24,260 --> 00:34:25,380 >> STUDENTE: Di s. 730 00:34:25,380 --> 00:34:25,790 Parentesi. 731 00:34:25,790 --> 00:34:27,920 >> JASON HIRSCHHORN: (s). 732 00:34:27,920 --> 00:34:33,040 >> STUDENTE: E poi io penso che si debba mettere un punto e virgola tra i due int. 733 00:34:33,040 --> 00:34:34,590 >> JASON HIRSCHHORN: un punto e virgola dopo lo zero? 734 00:34:34,590 --> 00:34:35,260 >> STUDENTE: Già. 735 00:34:35,260 --> 00:34:40,670 Poi mettere un punto e virgola dopo, e che dici, io meno di lunghezza. 736 00:34:40,670 --> 00:34:43,250 i meno di lunghezza, che è la variabile. 737 00:34:43,250 --> 00:34:44,590 >> STUDENTE: E poi punto e virgola. 738 00:34:44,590 --> 00:34:45,790 >> JASON HIRSCHHORN: Punto e virgola. 739 00:34:45,790 --> 00:34:46,290 >> STUDENTE: i + +. 740 00:34:46,290 --> 00:34:46,909 >> JASON HIRSCHHORN: i + +. 741 00:34:46,909 --> 00:34:47,530 Ecco il nostro ciclo per. 742 00:34:47,530 --> 00:34:48,860 OK, all'interno del ciclo for. 743 00:34:48,860 --> 00:34:51,670 >> STUDENTE: E allora che fare printf. 744 00:34:51,670 --> 00:34:53,340 >> JASON HIRSCHHORN: printf. 745 00:34:53,340 --> 00:34:53,889 >> STUDENTE: staffe. 746 00:34:53,889 --> 00:34:55,130 >> JASON HIRSCHHORN: parentesi, virgolette. 747 00:34:55,130 --> 00:34:59,930 >> STUDENTE: parentesi, virgolette,% c / n. 748 00:34:59,930 --> 00:35:00,760 >> JASON HIRSCHHORN:% c, OK. 749 00:35:00,760 --> 00:35:01,670 >> STUDENTE: / n. 750 00:35:01,670 --> 00:35:03,470 >> JASON HIRSCHHORN: / n. 751 00:35:03,470 --> 00:35:04,410 >> STUDENTE: citazioni chiusi. 752 00:35:04,410 --> 00:35:05,270 >> JASON HIRSCHHORN: virgolette chiuse. 753 00:35:05,270 --> 00:35:05,810 >> STUDENTE: Virgola. 754 00:35:05,810 --> 00:35:06,860 >> JASON HIRSCHHORN: Virgola. 755 00:35:06,860 --> 00:35:07,800 >> STUDENTE: S. 756 00:35:07,800 --> 00:35:08,070 >> JASON HIRSCHHORN: S. 757 00:35:08,070 --> 00:35:08,690 >> STUDENTE: Staffa i. 758 00:35:08,690 --> 00:35:10,230 >> JASON HIRSCHHORN: Staffa i. 759 00:35:10,230 --> 00:35:11,520 >> STUDENTE: E tra parentesi poi chiusi. 760 00:35:11,520 --> 00:35:12,540 >> JASON HIRSCHHORN: parentesi chiusa. 761 00:35:12,540 --> 00:35:13,660 >> STUDENTE: E poi punto e virgola. 762 00:35:13,660 --> 00:35:13,770 >> JASON HIRSCHHORN: Punto e virgola. 763 00:35:13,770 --> 00:35:14,380 Fantastico. 764 00:35:14,380 --> 00:35:16,890 Quindi salviamo questo. 765 00:35:16,890 --> 00:35:19,770 Fai incantesimo. 766 00:35:19,770 --> 00:35:20,040 Oh boy. 767 00:35:20,040 --> 00:35:22,275 Ho un paio di errori. 768 00:35:22,275 --> 00:35:33,120 Primo errore sulla linea 11, si dice, atteso espressione, e sta dando 769 00:35:33,120 --> 00:35:36,910 me un errore che la seconda int, c'è l'errore. 770 00:35:36,910 --> 00:35:38,430 C'è qualche errore lì intorno. 771 00:35:38,430 --> 00:35:41,060 Qualcuno sa che cosa errore? 772 00:35:41,060 --> 00:35:41,640 Kurt? 773 00:35:41,640 --> 00:35:44,108 >> STUDENTE: Io penso che si suppone essere una virgola e non un punto e virgola. 774 00:35:44,108 --> 00:35:46,010 >> JASON HIRSCHHORN: OK, una virgola invece di una virgola. 775 00:35:46,010 --> 00:35:47,340 Quindi è che tutti abbiamo bisogno di risolvere? 776 00:35:47,340 --> 00:35:47,655 >> STUDENTE: No. 777 00:35:47,655 --> 00:35:48,930 >> JASON HIRSCHHORN: Cos'altro abbiamo bisogno di risolvere? 778 00:35:48,930 --> 00:35:50,920 >> STUDENTE: Dobbiamo includere string.h. 779 00:35:50,920 --> 00:35:51,680 >> JASON HIRSCHHORN: Includi string.h. 780 00:35:51,680 --> 00:35:53,730 Dove devo includere questo? 781 00:35:53,730 --> 00:35:57,085 >> STUDENTE: Stesso luogo che stai compreso l'altra roba, giusto 782 00:35:57,085 --> 00:35:59,560 dopo includere stdio.h. 783 00:35:59,560 --> 00:36:01,610 >> JASON HIRSCHHORN: Vediamo se questo viene eseguito in primo luogo perché in genere, mi piace 784 00:36:01,610 --> 00:36:06,360 di fissare una cosa prima, e poi eseguire , e poi vedere gli errori che otteniamo. 785 00:36:06,360 --> 00:36:11,620 Quindi stiamo andando a cancellare il terminale con regolazione n, facciamolo fare magia. 786 00:36:11,620 --> 00:36:15,190 787 00:36:15,190 --> 00:36:18,770 Così un altro errore sulla linea 11. 788 00:36:18,770 --> 00:36:20,540 Previsto virgola. 789 00:36:20,540 --> 00:36:22,640 E sto ancora ricevendo errori su questa linea. 790 00:36:22,640 --> 00:36:25,270 Quindi non mi ha dato un errore dicendo che non capisce cosa strlen è, 791 00:36:25,270 --> 00:36:28,980 ma mi sta dando errori su questa linea, in modo che altro è sbagliato? 792 00:36:28,980 --> 00:36:29,690 Mark? 793 00:36:29,690 --> 00:36:30,940 Marcus. 794 00:36:30,940 --> 00:36:32,570 >> STUDENTE: Avete per rimuovere la seconda dichiarazione di int? 795 00:36:32,570 --> 00:36:34,990 >> JASON HIRSCHHORN: Rimuovere il secondo int. 796 00:36:34,990 --> 00:36:35,710 Proviamo questo. 797 00:36:35,710 --> 00:36:37,600 Ora pulire il terminale. 798 00:36:37,600 --> 00:36:40,130 Fai incantesimo. 799 00:36:40,130 --> 00:36:40,490 Errore. 800 00:36:40,490 --> 00:36:42,890 Dichiarando implicitamente biblioteca funzione strlen. 801 00:36:42,890 --> 00:36:44,270 Così ora noi vediamo che errore. 802 00:36:44,270 --> 00:36:45,760 Di cosa abbiamo bisogno di includere? 803 00:36:45,760 --> 00:36:46,660 >> STUDENTE: string.h. 804 00:36:46,660 --> 00:36:51,880 >> JASON HIRSCHHORN: Includi string.h, Faremo # include string.h in cima 805 00:36:51,880 --> 00:36:52,920 dello schermo. 806 00:36:52,920 --> 00:36:55,450 Salviamo, fanno incantesimo. 807 00:36:55,450 --> 00:36:56,970 Ora compilato. 808 00:36:56,970 --> 00:37:01,970 Quindi, di nuovo, le cose che dovevamo ricordare linea 12 nel nostro ciclo per quando 809 00:37:01,970 --> 00:37:08,010 stiamo sua creazione, int i = 0, lunghezza = strlen (s). 810 00:37:08,010 --> 00:37:09,350 >> Questa è una strategia fantastica. 811 00:37:09,350 --> 00:37:12,590 Lo stile di questo è grande, il progettazione di questo è grande. 812 00:37:12,590 --> 00:37:15,620 Siamo in grado di andare in quelle ragioni più tardi, ma in questo modo è sufficiente chiamare 813 00:37:15,620 --> 00:37:19,040 strlen volta invece che ogni singola volta che si esegue attraverso il ciclo. 814 00:37:19,040 --> 00:37:22,255 Tuttavia, è necessario utilizzare una virgola lì e non avete bisogno di nuovo int. 815 00:37:22,255 --> 00:37:24,180 Se stai dichiarando sia quelli variabili insieme, è 816 00:37:24,180 --> 00:37:26,850 non hanno bisogno di nuovo int. 817 00:37:26,850 --> 00:37:29,820 E allora, se avete intenzione di usare strlen, che è un'altra libreria 818 00:37:29,820 --> 00:37:33,560 funzione non inclusa nel stdio.h o cs50.h, rendono 819 00:37:33,560 --> 00:37:35,310 Assicurati di includere string.h. 820 00:37:35,310 --> 00:37:35,900 Kurt? 821 00:37:35,900 --> 00:37:39,085 >> STUDENTE: Allora, se non c'è bisogno di dire che cosa lunghezza tipo è, vuol 822 00:37:39,085 --> 00:37:40,290 significa che deve essere un int? 823 00:37:40,290 --> 00:37:41,930 Non si potrebbe avere due diversi Tipi di là? 824 00:37:41,930 --> 00:37:43,290 >> JASON HIRSCHHORN: Quindi si potrebbe avere due tipi diversi. 825 00:37:43,290 --> 00:37:45,730 La lunghezza è un int qui, però. 826 00:37:45,730 --> 00:37:48,590 La lunghezza è un int, perché è da virgole e poi la stessa cosa. 827 00:37:48,590 --> 00:37:50,460 >> STUDENTE: Quindi si presuppone che sta andando essere lo stesso come il primo? 828 00:37:50,460 --> 00:37:52,423 >> JASON HIRSCHHORN: Esattamente. 829 00:37:52,423 --> 00:37:54,970 Non abbiamo intenzione di farlo adesso, ma si può includere due variabili sul 830 00:37:54,970 --> 00:37:57,080 stessa linea utilizzando un tipo di dati. 831 00:37:57,080 --> 00:38:01,415 Così int x, y creerebbero due variabili. 832 00:38:01,415 --> 00:38:05,830 833 00:38:05,830 --> 00:38:10,770 Così int x, y, se facciamo che, dà me una x variabile inutilizzata e y perché 834 00:38:10,770 --> 00:38:12,020 noi non li usiamo. 835 00:38:12,020 --> 00:38:17,950 836 00:38:17,950 --> 00:38:21,650 Quindi, mettendo vuoto prima è solo un trucco di fantasia, se non si utilizza 837 00:38:21,650 --> 00:38:22,810 qualcosa, di usarlo. 838 00:38:22,810 --> 00:38:26,300 Ma, come si vede, creo x e y sulla stessa linea con una virgola. 839 00:38:26,300 --> 00:38:28,450 E 'la creazione di due numeri interi proprio lì. 840 00:38:28,450 --> 00:38:31,560 Quindi sì, del tutto possibile creare due cose sulla stessa linea 841 00:38:31,560 --> 00:38:33,720 separati da una virgola. 842 00:38:33,720 --> 00:38:35,470 Liberiamoci di questi, però. 843 00:38:35,470 --> 00:38:36,370 >> Quindi non c'è incantesimo. 844 00:38:36,370 --> 00:38:39,200 Grazie ragazzi per la codifica che per noi. 845 00:38:39,200 --> 00:38:43,040 Facciamo ancora una volta, eseguirlo. 846 00:38:43,040 --> 00:38:44,580 Dammi una stringa. 847 00:38:44,580 --> 00:38:45,580 [Incomprensibile], avete fatto la maggior parte di esso. 848 00:38:45,580 --> 00:38:47,910 Qual è la stringa? 849 00:38:47,910 --> 00:38:48,250 >> STUDENTE: Ciao. 850 00:38:48,250 --> 00:38:50,110 >> JASON HIRSCHHORN: Ciao. 851 00:38:50,110 --> 00:38:52,810 H-E-L-L-O, ogni carattere in una riga. 852 00:38:52,810 --> 00:38:53,700 Sembra grande. 853 00:38:53,700 --> 00:38:54,750 Corriamo ancora. 854 00:38:54,750 --> 00:38:56,050 Sempre andando a controllare per i casi d'angolo. 855 00:38:56,050 --> 00:38:57,750 Che cosa è un buon caso angolo di controllare? 856 00:38:57,750 --> 00:39:00,250 857 00:39:00,250 --> 00:39:00,890 >> STUDENTE: Un numero? 858 00:39:00,890 --> 00:39:02,240 >> JASON HIRSCHHORN: un numero. 859 00:39:02,240 --> 00:39:06,580 Così mi metto a 1, ed esso stampa 1. 860 00:39:06,580 --> 00:39:08,970 Non è richiesto per le lettere, in modo da sembra che i numeri di lavoro. 861 00:39:08,970 --> 00:39:09,890 Buona caso angolo di controllare. 862 00:39:09,890 --> 00:39:11,740 Qual è un altro buon angolo caso di controllare? 863 00:39:11,740 --> 00:39:12,420 >> STUDENTE: Una stringa vuota. 864 00:39:12,420 --> 00:39:12,910 >> JASON HIRSCHHORN: Hm? 865 00:39:12,910 --> 00:39:13,880 >> STUDENTE: Come una stringa vuota. 866 00:39:13,880 --> 00:39:14,400 >> JASON HIRSCHHORN: stringa vuota. 867 00:39:14,400 --> 00:39:16,730 Quindi cerchiamo di non mettere nel nulla. 868 00:39:16,730 --> 00:39:18,660 E che cosa viene stampato? 869 00:39:18,660 --> 00:39:19,090 >> STUDENTE: Niente. 870 00:39:19,090 --> 00:39:19,870 >> JASON HIRSCHHORN: Niente. 871 00:39:19,870 --> 00:39:20,555 Sembra come funziona. 872 00:39:20,555 --> 00:39:23,790 Si potrebbe provare più casi d'angolo, ma in generale i numeri, la scheda è diversa 873 00:39:23,790 --> 00:39:26,160 grande per provare, così non è nulla. 874 00:39:26,160 --> 00:39:29,180 Niente, zero, negativi sono sempre grandi cose da provare e le cose si 875 00:39:29,180 --> 00:39:33,140 dovrebbero prova, le cose certamente si faranno testare per e visualizzate 50 proverà per. 876 00:39:33,140 --> 00:39:34,720 Tutte le domande circa spell.c? 877 00:39:34,720 --> 00:39:37,752 878 00:39:37,752 --> 00:39:39,310 >> OK, andiamo a testa indietro. 879 00:39:39,310 --> 00:39:42,420 Ho un altro programma per voi ragazzi a scrivere. 880 00:39:42,420 --> 00:39:44,700 Si chiama students.c. 881 00:39:44,700 --> 00:39:49,020 Questo è un programma che chiede all'utente di cinque nomi, poi sceglie in modo casuale 882 00:39:49,020 --> 00:39:51,600 e stampa fuori uno dei nomi. 883 00:39:51,600 --> 00:39:54,840 Questo programma è un po 'più coinvolti oltre gli ultimi due che abbiamo scritto, 884 00:39:54,840 --> 00:39:58,080 quindi perché non prendiamo cinque minuti per codificarla individualmente, e poi ci 885 00:39:58,080 --> 00:40:00,130 codificarlo come gruppo. 886 00:40:00,130 --> 00:40:03,795 >> Questo programma coinvolge anche alcune cose forse non avete mai visto prima, quindi se 887 00:40:03,795 --> 00:40:06,390 hai una domanda su come fare Lo faccio, alzi la mano. 888 00:40:06,390 --> 00:40:08,530 Verrò e indicarvi nella giusta direzione. 889 00:40:08,530 --> 00:40:10,820 Ma stiamo anche facendo perché questo sarà un buon modo per introdurre un po 'di 890 00:40:10,820 --> 00:40:12,070 argomenti che sono difficili. 891 00:40:12,070 --> 00:44:14,600 892 00:44:14,600 --> 00:44:15,560 >> Così funziona, giusto? 893 00:44:15,560 --> 00:44:17,580 >> STUDENTE: Già. 894 00:44:17,580 --> 00:44:19,180 >> JASON HIRSCHHORN: Ogni volta che si accende in un problema set, c'è molti modi per farlo 895 00:44:19,180 --> 00:44:20,790 , ma alcuni sono più elegante di altri. 896 00:44:20,790 --> 00:44:29,000 897 00:44:29,000 --> 00:44:31,110 Cerchiamo di tuffarsi dentro 898 00:44:31,110 --> 00:44:32,880 # Include cs50.h. 899 00:44:32,880 --> 00:44:34,250 # Include stdio.h. 900 00:44:34,250 --> 00:44:37,240 int void main, le parentesi graffe. 901 00:44:37,240 --> 00:44:39,430 All'interno delle parentesi graffe, Ho due osservazioni. 902 00:44:39,430 --> 00:44:41,500 Il primo è, chiedere al utente per cinque nomi. 903 00:44:41,500 --> 00:44:46,580 Il secondo è, sceglie in modo casuale e stampare uno dei nomi. 904 00:44:46,580 --> 00:44:50,250 Quindi cerchiamo di fare il primo, chiedere l'utente per cinque nomi. 905 00:44:50,250 --> 00:44:53,730 Chi ha chiesto l'utente per cinque nomi e può dirmi come fare? 906 00:44:53,730 --> 00:44:56,760 907 00:44:56,760 --> 00:44:58,570 Solo due persone hanno fatto la prima parte. 908 00:44:58,570 --> 00:45:00,150 Tre persone hanno fatto la prima parte. 909 00:45:00,150 --> 00:45:00,670 Quattro, cinque. 910 00:45:00,670 --> 00:45:03,140 Tom, come si fa a farlo? 911 00:45:03,140 --> 00:45:09,940 >> STUDENTE: Si potrebbe dichiarare una stringa e poi il nome, staffa di cinque. 912 00:45:09,940 --> 00:45:12,070 >> JASON HIRSCHHORN: String nome staffa cinque. 913 00:45:12,070 --> 00:45:15,350 Così che cosa è questa linea facendo, Nome stringa staffa cinque? 914 00:45:15,350 --> 00:45:17,800 >> STUDENTE: Si potrebbe dichiarare un array di stringhe. 915 00:45:17,800 --> 00:45:19,000 >> JASON HIRSCHHORN: Questo è un array di stringhe. 916 00:45:19,000 --> 00:45:21,590 Quante stringhe stanno per entrare qui? 917 00:45:21,590 --> 00:45:22,010 >> STUDENTE: Cinque. 918 00:45:22,010 --> 00:45:22,320 >> JASON HIRSCHHORN: Cinque. 919 00:45:22,320 --> 00:45:22,660 Eccellente. 920 00:45:22,660 --> 00:45:26,360 Stiamo andando a chiamarlo nomi perché stiamo andando a prendere quelli multipli. 921 00:45:26,360 --> 00:45:27,790 OK, la prossima? 922 00:45:27,790 --> 00:45:29,270 >> STUDENTE: E poi si avere un ciclo for - 923 00:45:29,270 --> 00:45:30,060 >> JASON HIRSCHHORN: ciclo For. 924 00:45:30,060 --> 00:45:33,035 >> STUDENTE: - per i = 0. 925 00:45:33,035 --> 00:45:37,040 >> JASON HIRSCHHORN: for (int i = 0. 926 00:45:37,040 --> 00:45:38,270 >> STUDENTE: Punto e virgola. 927 00:45:38,270 --> 00:45:38,880 >> JASON HIRSCHHORN: Punto e virgola. 928 00:45:38,880 --> 00:45:39,790 >> Studente: inferiore a cinque. 929 00:45:39,790 --> 00:45:41,310 >> JASON HIRSCHHORN: ho meno di cinque. 930 00:45:41,310 --> 00:45:42,230 >> STUDENTE: Punto e virgola. 931 00:45:42,230 --> 00:45:42,560 >> JASON HIRSCHHORN: Punto e virgola. 932 00:45:42,560 --> 00:45:43,380 >> STUDENTE: i + +. 933 00:45:43,380 --> 00:45:46,050 >> JASON HIRSCHHORN: i + +. 934 00:45:46,050 --> 00:45:47,100 >> STUDENTE: E tra parentesi poi chiusi. 935 00:45:47,100 --> 00:45:48,600 >> JASON HIRSCHHORN: parentesi chiusa, e poi alcune parentesi graffe. 936 00:45:48,600 --> 00:45:50,050 All'interno delle parentesi graffe? 937 00:45:50,050 --> 00:45:51,423 >> STUDENTE: E poi printf. 938 00:45:51,423 --> 00:45:52,535 >> JASON HIRSCHHORN: printf. 939 00:45:52,535 --> 00:45:56,200 >> STUDENTE: aperte parentesi, il nome% d. 940 00:45:56,200 --> 00:45:57,090 >> JASON HIRSCHHORN: Scusa? 941 00:45:57,090 --> 00:45:57,660 >> STUDENTE: Nome. 942 00:45:57,660 --> 00:45:58,200 >> JASON HIRSCHHORN: Nome. 943 00:45:58,200 --> 00:46:01,700 >> STUDENTE: E poi spazio, quindi% d. 944 00:46:01,700 --> 00:46:02,950 >> JASON HIRSCHHORN: Nome, spazio,% d. 945 00:46:02,950 --> 00:46:05,630 946 00:46:05,630 --> 00:46:10,820 >> STUDENTE: E poi / n, e poi chiuso. 947 00:46:10,820 --> 00:46:15,070 >> JASON HIRSCHHORN: nome Quindi, spazio, % D / n, parentesi chiuse. 948 00:46:15,070 --> 00:46:17,730 >> STUDENTE: Virgola, i + 1. 949 00:46:17,730 --> 00:46:19,390 Mi dispiace. 950 00:46:19,390 --> 00:46:21,040 Citazione chiuso, e poi virgola, i +1. 951 00:46:21,040 --> 00:46:24,400 >> JASON HIRSCHHORN: chiuso citazione, virgola, i +1. 952 00:46:24,400 --> 00:46:25,850 >> STUDENTE: Sì.. 953 00:46:25,850 --> 00:46:27,650 E poi la prossima linea - 954 00:46:27,650 --> 00:46:29,400 >> JASON HIRSCHHORN: i + 1. 955 00:46:29,400 --> 00:46:31,600 >> STUDENTE: Sì.. 956 00:46:31,600 --> 00:46:36,440 E poi la prossima diapositiva È nomi staffa i. 957 00:46:36,440 --> 00:46:39,000 >> JASON HIRSCHHORN: linea Avanti È nomi staffa i. 958 00:46:39,000 --> 00:46:41,360 >> STUDENTE: = ottenere stringa. 959 00:46:41,360 --> 00:46:43,460 >> JASON HIRSCHHORN: = Get - 960 00:46:43,460 --> 00:46:44,510 capitale G-E-T - 961 00:46:44,510 --> 00:46:45,530 stringa. 962 00:46:45,530 --> 00:46:47,800 Ops, scusate. 963 00:46:47,800 --> 00:46:49,050 >> STUDENTE: aperti, chiusi tra parentesi e poi - 964 00:46:49,050 --> 00:46:50,940 >> JASON HIRSCHHORN: aperta, chiusa parentesi. 965 00:46:50,940 --> 00:46:51,030 >> STUDENTE: Punto e virgola. 966 00:46:51,030 --> 00:46:52,500 >> JASON HIRSCHHORN: Punto e virgola. 967 00:46:52,500 --> 00:46:57,545 OK, si inizializza la matrice di stringhe, nomi, e poi passare attraverso un 968 00:46:57,545 --> 00:47:02,720 per il ciclo, e cinque volte stampare alcuni chiederà all'utente e quindi memorizzare 969 00:47:02,720 --> 00:47:03,360 cinque corde. 970 00:47:03,360 --> 00:47:08,090 Qualcuno ha rettifiche di valore su questo? 971 00:47:08,090 --> 00:47:10,030 Tom, penso che tutti d'accordo con te. 972 00:47:10,030 --> 00:47:10,880 Sembra piuttosto buono. 973 00:47:10,880 --> 00:47:11,660 OK. 974 00:47:11,660 --> 00:47:14,830 Perché l'hai fatto i +1, però? 975 00:47:14,830 --> 00:47:18,000 >> STUDENTE: Voglio dire, non ha di essere, ma i +1 in modo che sia 976 00:47:18,000 --> 00:47:19,700 nome uno per citarne cinque. 977 00:47:19,700 --> 00:47:21,930 In caso contrario, sarebbe il nome zero a nominare quattro. 978 00:47:21,930 --> 00:47:24,400 >> JASON HIRSCHHORN: Così ha fatto i +1 perché altrimenti avrebbe 979 00:47:24,400 --> 00:47:27,060 stampati zero a quattro perché è così che i computer pensano, ma gli esseri umani 980 00:47:27,060 --> 00:47:28,530 in realtà non leggere così. 981 00:47:28,530 --> 00:47:30,190 Questa è un'altra cosa si incontrano. 982 00:47:30,190 --> 00:47:33,210 A volte, quando si stampa qualcosa per l'utente, ti consigliamo di farne una 983 00:47:33,210 --> 00:47:35,733 po 'più carina, e facendo i +1 in questo caso è un 984 00:47:35,733 --> 00:47:37,430 modo per renderlo più bello. 985 00:47:37,430 --> 00:47:41,380 >> Vedo anche cinque volte, string nome è cinque, i è inferiore a cinque. 986 00:47:41,380 --> 00:47:42,430 Io so dove hai preso il cinque. 987 00:47:42,430 --> 00:47:44,890 Hai capito da me dicendo ti cinque nomi. 988 00:47:44,890 --> 00:47:49,000 Ma se volessimo rendere il codice un po 'più robusto, una cosa siamo 989 00:47:49,000 --> 00:47:53,110 potrebbe fare è qui fuori, al di fuori di int, potremmo fare qualcosa di simile, 990 00:47:53,110 --> 00:47:57,070 # Define, e potremmo fare NOMI 5. 991 00:47:57,070 --> 00:48:01,580 992 00:48:01,580 --> 00:48:05,390 >> Quindi, in pratica, ovunque io scrivo capitale N, maiuscola, M maiuscola, maiuscola, 993 00:48:05,390 --> 00:48:08,890 S maiuscola, quella stringa, sostituirà che con 5 nel codice. 994 00:48:08,890 --> 00:48:11,530 995 00:48:11,530 --> 00:48:13,445 O facciamo solo chiamare - faremo basta chiamare il NUMERO. 996 00:48:13,445 --> 00:48:17,190 Così sto definendo tutti i tappi Numero da 5. 997 00:48:17,190 --> 00:48:22,830 >> Così ora, ovunque ho il numero 5, I può sostituirlo con tutte le protezioni NUMERO. 998 00:48:22,830 --> 00:48:26,880 E ora, se voglio cambiare il numero di nomi, tutto quello che devo fare è 999 00:48:26,880 --> 00:48:31,350 questa linea, la linea a quattro, dove ho # Define numero 5, cambiare la situazione a 10, 1000 00:48:31,350 --> 00:48:34,340 o cambiare la situazione di 4. 1001 00:48:34,340 --> 00:48:37,400 Quando il codice diventa più lungo, non sei andando a ricordare tutti i luoghi che 1002 00:48:37,400 --> 00:48:41,630 mettete quanti nomi si voleva, e in modo per voi di non perdere uno, questo è 1003 00:48:41,630 --> 00:48:45,490 un buon modo per farlo, di trovare qualcosa fino in alto e poi basta usare quella frase 1004 00:48:45,490 --> 00:48:46,400 ovunque in tutto il codice. 1005 00:48:46,400 --> 00:48:46,780 Marcus? 1006 00:48:46,780 --> 00:48:49,780 >> STUDENTE: È che stilisticamente preferito che definire globalmente un 1007 00:48:49,780 --> 00:48:51,270 costanti n? 1008 00:48:51,270 --> 00:48:53,760 >> JASON HIRSCHHORN: Quindi è che stilisticamente preferito che a livello globale 1009 00:48:53,760 --> 00:48:54,980 definire una costante n? 1010 00:48:54,980 --> 00:48:59,036 Quindi stai dicendo che si poteva fare, int numero = 5? 1011 00:48:59,036 --> 00:49:01,300 >> STUDENTE: Hanno consonanti in C o no? 1012 00:49:01,300 --> 00:49:02,720 >> JASON HIRSCHHORN: o const - in pari. 1013 00:49:02,720 --> 00:49:04,275 Quindi stai dicendo che basta una variabile globale? 1014 00:49:04,275 --> 00:49:04,990 >> STUDENTE: Già. 1015 00:49:04,990 --> 00:49:08,670 >> JASON HIRSCHHORN: Quindi stilisticamente, non c'è necessariamente un diritto 1016 00:49:08,670 --> 00:49:12,050 risposta, ma entrambi sono dei migliori di un semplice lancio questi casuale 1017 00:49:12,050 --> 00:49:12,960 numeri di tutto il codice. 1018 00:49:12,960 --> 00:49:14,650 Noi li chiamiamo numeri magici. 1019 00:49:14,650 --> 00:49:16,450 Quando guardo il tuo codice o quando Qualcuno sta leggendo attraverso di essa, essi 1020 00:49:16,450 --> 00:49:18,790 Non vogliamo solo questi numeri casuali che non hanno senso. 1021 00:49:18,790 --> 00:49:22,420 Anche il numero 26, che generalmente è il numero di lettere dell'alfabeto, 1022 00:49:22,420 --> 00:49:28,870 è meglio definire ALFABETO fino in alto e salvare il numero 26 in quella stringa, 1023 00:49:28,870 --> 00:49:29,550 se questo ha un senso. 1024 00:49:29,550 --> 00:49:33,210 >> O sul problema impostare uno, piuttosto che - ancora una volta, non abbiamo parlato di questo a 1025 00:49:33,210 --> 00:49:37,020 il tempo, ma invece di buttare in un 25 o un 10 in tutto il mondo, si può 1026 00:49:37,020 --> 00:49:41,860 salvare il numero 25 come quarto o 10 come DIME, e che rende più facile per 1027 00:49:41,860 --> 00:49:44,140 chi sta leggendo il codice a capire perché si è scelto quel numero. 1028 00:49:44,140 --> 00:49:46,540 E anche per voi, se vi capitasse di voler aggiornare il codice, lo rende un po ' 1029 00:49:46,540 --> 00:49:47,290 più robusto. 1030 00:49:47,290 --> 00:49:48,070 Sì? 1031 00:49:48,070 --> 00:49:50,830 >> STUDENTE: E 'questo codice anche andando di essere disponibile per noi dopo? 1032 00:49:50,830 --> 00:49:52,453 >> JASON HIRSCHHORN: Tutti questi codici che abbiamo scritto insieme sono 1033 00:49:52,453 --> 00:49:54,620 sta per essere inviato per email ragazzi e disponibili. 1034 00:49:54,620 --> 00:49:55,740 Sì. 1035 00:49:55,740 --> 00:49:58,040 Quindi, chiedere all'utente di cinque nomi. 1036 00:49:58,040 --> 00:50:00,280 Casualmente scegliere e stampare uno dei nomi. 1037 00:50:00,280 --> 00:50:00,940 Chi ha fatto questa linea? 1038 00:50:00,940 --> 00:50:02,230 Questa è la linea più difficile qui. 1039 00:50:02,230 --> 00:50:02,450 Siamo spiacenti, Tom. 1040 00:50:02,450 --> 00:50:05,510 Hai fatto un ottimo lavoro, ma questo è un po 'più complicato. 1041 00:50:05,510 --> 00:50:06,600 Marcus, andare avanti. 1042 00:50:06,600 --> 00:50:10,180 >> STUDENTE: Beh in primo luogo, si sta andando a necessario includere stdlib.h e time.h. 1043 00:50:10,180 --> 00:50:13,200 >> JASON HIRSCHHORN: Quindi stai dicendo che a la parte superiore, comprende altre due librerie. 1044 00:50:13,200 --> 00:50:18,830 Tu vuoi che io includo S-T-D-L-I-B punto H, libreria standard, e ciò che 1045 00:50:18,830 --> 00:50:19,760 era l'altra? 1046 00:50:19,760 --> 00:50:21,010 >> STUDENTE: Time.h. 1047 00:50:21,010 --> 00:50:25,130 1048 00:50:25,130 --> 00:50:27,840 >> JASON HIRSCHHORN: # include time.h. 1049 00:50:27,840 --> 00:50:29,470 Quindi queste sono altre due librerie. 1050 00:50:29,470 --> 00:50:31,790 Presumo che ora stiamo andando a utilizzare funzioni che sono contenute in questi 1051 00:50:31,790 --> 00:50:34,240 due, che è questo che si deve per includerli? 1052 00:50:34,240 --> 00:50:36,980 >> STUDENTE: Allora, prima si è intenzione di voler scrivere srand. 1053 00:50:36,980 --> 00:50:38,770 >> JASON HIRSCHHORN: srand. 1054 00:50:38,770 --> 00:50:42,070 >> STUDENTE: (time (0) 1055 00:50:42,070 --> 00:50:42,700 >> JASON HIRSCHHORN: Mi dispiace. 1056 00:50:42,700 --> 00:50:45,580 Srand (time ( 1057 00:50:45,580 --> 00:50:46,890 >> STUDENTE: 0. 1058 00:50:46,890 --> 00:50:47,230 >> JASON HIRSCHHORN: 0. 1059 00:50:47,230 --> 00:50:49,990 >> STUDENTE:)), punto e virgola. 1060 00:50:49,990 --> 00:50:51,320 >> JASON HIRSCHHORN: Un'altra parentesi chiusa? 1061 00:50:51,320 --> 00:50:51,650 Punto e virgola. 1062 00:50:51,650 --> 00:50:53,610 Ho intenzione di sostituire solo il vostro a zero con NULL. 1063 00:50:53,610 --> 00:50:55,980 Si farà la stessa cosa, ma generalmente, vedrai NULL, che 1064 00:50:55,980 --> 00:50:57,720 parleremo di questo linea in un secondo. 1065 00:50:57,720 --> 00:50:58,580 >> STUDENTE: Stilisticamente meglio? 1066 00:50:58,580 --> 00:51:02,240 >> JASON HIRSCHHORN: Generalmente, le persone NULL destra, ma stessa cosa. 1067 00:51:02,240 --> 00:51:05,010 >> STUDENTE: E poi il nome int. 1068 00:51:05,010 --> 00:51:06,490 >> JASON HIRSCHHORN: nome int. 1069 00:51:06,490 --> 00:51:07,280 >> STUDENTE: = 1070 00:51:07,280 --> 00:51:07,780 >> JASON HIRSCHHORN: = 1071 00:51:07,780 --> 00:51:08,580 >> STUDENTE: Rand. 1072 00:51:08,580 --> 00:51:09,340 >> JASON HIRSCHHORN: Rand. 1073 00:51:09,340 --> 00:51:10,420 >> STUDENTE: () 1074 00:51:10,420 --> 00:51:11,500 >> JASON HIRSCHHORN: () 1075 00:51:11,500 --> 00:51:12,850 >> STUDENTE: numero di modulo. 1076 00:51:12,850 --> 00:51:14,310 >> JASON HIRSCHHORN: Qual è il modulo? 1077 00:51:14,310 --> 00:51:14,970 Il carattere? 1078 00:51:14,970 --> 00:51:16,000 Il carattere di percentuale? 1079 00:51:16,000 --> 00:51:17,790 >> STUDENTE: simbolo di percentuale. 1080 00:51:17,790 --> 00:51:19,521 Modulo numero che si è definito sulla parte superiore. 1081 00:51:19,521 --> 00:51:22,030 >> JASON HIRSCHHORN: Modulo NUMERO. 1082 00:51:22,030 --> 00:51:24,052 >> STUDENTE: E poi punto e virgola. 1083 00:51:24,052 --> 00:51:24,660 >> JASON HIRSCHHORN: Punto e virgola. 1084 00:51:24,660 --> 00:51:27,820 >> STUDENTE: E poi nuova linea, printf. 1085 00:51:27,820 --> 00:51:28,460 >> JASON HIRSCHHORN: printf. 1086 00:51:28,460 --> 00:51:29,730 >> STUDENTE: ( 1087 00:51:29,730 --> 00:51:30,620 >> JASON HIRSCHHORN: ( 1088 00:51:30,620 --> 00:51:31,650 >> STUDENTE: " 1089 00:51:31,650 --> 00:51:32,630 >> JASON HIRSCHHORN: " 1090 00:51:32,630 --> 00:51:35,320 >> STUDENTE:% s / n 1091 00:51:35,320 --> 00:51:37,220 >> JASON HIRSCHHORN:% s / n 1092 00:51:37,220 --> 00:51:38,420 >> STUDENTE: " 1093 00:51:38,420 --> 00:51:40,640 >> JASON HIRSCHHORN:% s / n " 1094 00:51:40,640 --> 00:51:43,540 >> STUDENTE: Virgola, nomi di spazio. 1095 00:51:43,540 --> 00:51:44,350 >> JASON HIRSCHHORN: Space - 1096 00:51:44,350 --> 00:51:46,300 >> STUDENTE: Oh, credo, quello che abbiamo lo chiamiamo qui? 1097 00:51:46,300 --> 00:51:48,640 >> JASON HIRSCHHORN: abbiamo chiamato i nomi. 1098 00:51:48,640 --> 00:51:52,360 >> STUDENTE: Aperto staffa, nome. 1099 00:51:52,360 --> 00:51:55,090 >> JASON HIRSCHHORN: Aperto staffa, nome. 1100 00:51:55,090 --> 00:51:55,850 >> STUDENTE: parentesi chiusa. 1101 00:51:55,850 --> 00:51:56,490 >> JASON HIRSCHHORN: parentesi chiusa. 1102 00:51:56,490 --> 00:51:57,460 >> STUDENTE:) 1103 00:51:57,460 --> 00:51:58,800 >> JASON HIRSCHHORN:) 1104 00:51:58,800 --> 00:51:59,440 >> STUDENTE: Punto e virgola. 1105 00:51:59,440 --> 00:52:00,410 >> JASON HIRSCHHORN: Punto e virgola. 1106 00:52:00,410 --> 00:52:01,500 OK, salviamo. 1107 00:52:01,500 --> 00:52:04,410 Facciamo questo codice. 1108 00:52:04,410 --> 00:52:06,365 Studenti. 1109 00:52:06,365 --> 00:52:07,100 Corriamo questo codice. 1110 00:52:07,100 --> 00:52:08,480 Studenti. 1111 00:52:08,480 --> 00:52:11,630 Not. / Studente. . / Studenti. 1112 00:52:11,630 --> 00:52:12,870 Nome di uno. 1113 00:52:12,870 --> 00:52:15,490 Diremo David. 1114 00:52:15,490 --> 00:52:18,070 Nome due, RJ. 1115 00:52:18,070 --> 00:52:20,561 Nome tre, Rob. 1116 00:52:20,561 --> 00:52:22,490 Nome quattro, Lucas. 1117 00:52:22,490 --> 00:52:26,060 Nome cinque, Joseph. 1118 00:52:26,060 --> 00:52:28,850 E poi esso stampa Joseph nuovo. 1119 00:52:28,850 --> 00:52:31,730 >> Così mi permetta di correre di nuovo. 1120 00:52:31,730 --> 00:52:32,460 Permettetemi di fare gli stessi nomi. 1121 00:52:32,460 --> 00:52:39,760 David, RJ, Rob, Lucas, Joseph. 1122 00:52:39,760 --> 00:52:41,070 E mi ha dato Davide questa volta. 1123 00:52:41,070 --> 00:52:43,030 Così ho fatto la stessa cosa, ma dato me una cosa diversa, e questo è 1124 00:52:43,030 --> 00:52:45,410 perché, ovviamente, stiamo chiedendo per un nome casuale. 1125 00:52:45,410 --> 00:52:50,950 Quindi penso che, in base al largo di me errante giro per la stanza, che la maggior parte delle persone 1126 00:52:50,950 --> 00:52:55,960 probabilmente ottenuto la prima parte a destra, la creazione di tale matrice e quindi ottenere 1127 00:52:55,960 --> 00:52:56,430 tutti i nomi. 1128 00:52:56,430 --> 00:52:59,320 Sto parlando di linee da 10 a 16. 1129 00:52:59,320 --> 00:53:02,150 Ma le linee dalla 18 alla 21 sono probabilmente alcune cose che non avete mai visto prima, 1130 00:53:02,150 --> 00:53:03,750 quindi andiamo attraverso quelli. 1131 00:53:03,750 --> 00:53:10,390 >> Questa linea, srand tempo NULL è essenzialmente - 1132 00:53:10,390 --> 00:53:14,300 scusate, saltiamo giù una linea, rand (). 1133 00:53:14,300 --> 00:53:17,320 Che ti dà un numero a caso, un numero intero casuale. 1134 00:53:17,320 --> 00:53:19,630 E se si ha colpito l'uomo rand, che molti di voi ha fatto - 1135 00:53:19,630 --> 00:53:21,530 M-A-N spaziale R-A-N-D - 1136 00:53:21,530 --> 00:53:25,910 nel terminale come questo, M-A-N spazio R-A-N-D, premere Invio. 1137 00:53:25,910 --> 00:53:30,490 Si potrebbe venire al manuale e sarebbe in grado di leggere che il rand 1138 00:53:30,490 --> 00:53:34,260 uscite di comando num byte casuali pseudo dopo la semina il numero casuale 1139 00:53:34,260 --> 00:53:35,510 Generatore volta. 1140 00:53:35,510 --> 00:53:38,450 1141 00:53:38,450 --> 00:53:39,700 >> Quindi questa è una descrizione. 1142 00:53:39,700 --> 00:53:43,860 1143 00:53:43,860 --> 00:53:46,800 Questo è ciò che rand fa, dà è un numero casuale quando 1144 00:53:46,800 --> 00:53:48,610 si chiama tale funzione. 1145 00:53:48,610 --> 00:53:53,140 Purtroppo, non è davvero casuale perché per le chiamate casuale 1146 00:53:53,140 --> 00:53:55,970 senza ottenerlo qualche seme, alcuni punto di partenza, sarà sempre scegliere 1147 00:53:55,970 --> 00:53:59,100 stessa e si usa una formula per determinare il successivo. 1148 00:53:59,100 --> 00:54:01,730 Quindi, se si chiama rand, sarà solo vi darà la stessa cosa. 1149 00:54:01,730 --> 00:54:02,610 Sarà molto prevedibile. 1150 00:54:02,610 --> 00:54:03,790 In realtà non sarà casuale. 1151 00:54:03,790 --> 00:54:09,610 >> Quindi quello che dobbiamo fare, per Marcus istruzioni per me, erano rand sementi 1152 00:54:09,610 --> 00:54:13,810 qualcosa di diverso, che è quello che la funzione srand fa. 1153 00:54:13,810 --> 00:54:18,055 E 'semi rand con qualcosa di un po' di più casuale che la stessa cosa, e 1154 00:54:18,055 --> 00:54:23,360 sta seminando con tempo NULL, che è, solo per convenzione, la corrente 1155 00:54:23,360 --> 00:54:24,650 tempo in secondi. 1156 00:54:24,650 --> 00:54:29,790 >> Quindi stai supponendo che tutti non andando a eseguire il codice al esatto 1157 00:54:29,790 --> 00:54:33,620 stesso secondo, quindi è una scommessa sicura che tempo NULL sta per essere diverso 1158 00:54:33,620 --> 00:54:35,250 ogni volta che viene eseguito il codice. 1159 00:54:35,250 --> 00:54:39,020 Scommessa sicura che quindi, srand volontà rand sementi con qualcosa di diverso ogni 1160 00:54:39,020 --> 00:54:39,990 singolo tempo. 1161 00:54:39,990 --> 00:54:44,110 Quindi per convenzione, quando facciamo vogliamo una numero a caso, abbiamo scrivere questa linea, 1162 00:54:44,110 --> 00:54:50,540 srand tempo NULL, di darci una più seme più casuale, e poi corriamo 1163 00:54:50,540 --> 00:54:52,080 rand, che ci dà un numero casuale. 1164 00:54:52,080 --> 00:54:52,840 Sì? 1165 00:54:52,840 --> 00:54:54,140 >> STUDENTE: Si può dire che cosa intendi per seme? 1166 00:54:54,140 --> 00:54:55,630 >> JASON HIRSCHHORN: Seed come in - 1167 00:54:55,630 --> 00:54:58,730 così rand sta per prendere qualche numero e sta andando ad utilizzare alcuni 1168 00:54:58,730 --> 00:55:00,060 formula per arrivarci. 1169 00:55:00,060 --> 00:55:03,250 Quindi sta per iniziare con qualcosa di e poi trasformarlo in qualcosa di base 1170 00:55:03,250 --> 00:55:03,890 fuori di quella formula. 1171 00:55:03,890 --> 00:55:06,090 Se si dà sempre la stessa cosa, è sempre di andare a trasformarlo in 1172 00:55:06,090 --> 00:55:06,790 stessa cosa. 1173 00:55:06,790 --> 00:55:08,450 In modo che prima cosa che dare è il seme. 1174 00:55:08,450 --> 00:55:10,880 Così si vuole dare qualcosa diverso per cominciare, e quindi 1175 00:55:10,880 --> 00:55:12,610 si trasformerà in qualcosa di diverso. 1176 00:55:12,610 --> 00:55:15,840 >> E poi, infine, la linea 20, Questa è chiamata la% 1177 00:55:15,840 --> 00:55:17,470 modulo, e che è confusa. 1178 00:55:17,470 --> 00:55:19,850 Questo è qualcosa che è un po ' diverso qui che non si fa davvero 1179 00:55:19,850 --> 00:55:22,240 avere nella vita reale la matematica. 1180 00:55:22,240 --> 00:55:27,430 Ma, in sostanza, quando si prende un gigante numero e si dividono in C, cosa 1181 00:55:27,430 --> 00:55:29,482 accade per il resto? 1182 00:55:29,482 --> 00:55:30,510 >> STUDENTE: Si viene troncato. 1183 00:55:30,510 --> 00:55:31,220 >> JASON HIRSCHHORN: Essa viene troncato. 1184 00:55:31,220 --> 00:55:35,200 Quindi 20 diviso 3 è ciò? 1185 00:55:35,200 --> 00:55:37,950 Che cosa vuol tornare alla si, 20 diviso 3. 1186 00:55:37,950 --> 00:55:39,260 Spiacente, 10 diviso 3. 1187 00:55:39,260 --> 00:55:41,062 Che cosa vuol tornare a voi? 1188 00:55:41,062 --> 00:55:41,540 >> STUDENTE: [incomprensibile]. 1189 00:55:41,540 --> 00:55:45,170 >> JASON HIRSCHHORN: 10 diviso 3 soli restituisce 3, non 3 resto 1. 1190 00:55:45,170 --> 00:55:51,490 Così che cosa 10 modulo 3 ritorna è solo il resto, 1. 1191 00:55:51,490 --> 00:55:54,020 Quindi, se si voleva sapere che cosa 10 diviso da 3 in realtà era, si farebbe 1192 00:55:54,020 --> 00:55:58,950 fare 10 diviso 3, si otterrebbe il vostro 3, e poi faresti 10 modulo 3, e 1193 00:55:58,950 --> 00:55:59,860 si otterrebbe un 1. 1194 00:55:59,860 --> 00:56:04,630 Quindi, ti renderesti conto che 10 diviso da 3 è 3, resto 1. 1195 00:56:04,630 --> 00:56:07,990 >> E in questa linea, rand potrebbe essere qualsiasi numero intero, in sostanza. 1196 00:56:07,990 --> 00:56:12,660 Così modulo sta dicendo, dividerlo per numero, che è in questo caso 5. 1197 00:56:12,660 --> 00:56:16,420 E se mai dividere per un numero, il integer deve sempre essere inferiore 1198 00:56:16,420 --> 00:56:17,590 tale numero. 1199 00:56:17,590 --> 00:56:22,200 Quindi, se stai dividendo per un numero di 5, il resto sta andando sempre essere 1200 00:56:22,200 --> 00:56:23,396 zero a quattro. 1201 00:56:23,396 --> 00:56:25,520 Questo è solo come la matematica funziona. 1202 00:56:25,520 --> 00:56:29,700 >> Così un gran numero moduloed da un più piccolo numero restituirà sempre 1203 00:56:29,700 --> 00:56:33,530 resto e sarà sempre tornare un numero che è inferiore al numero di 1204 00:56:33,530 --> 00:56:34,693 diviso. 1205 00:56:34,693 --> 00:56:37,920 Qualcuno ha domande su modulo, perché sarà venuto a molto, 1206 00:56:37,920 --> 00:56:41,450 molto pratico, quindi voglio fare in modo ognuno lo capisce? 1207 00:56:41,450 --> 00:56:43,710 Freddo. 1208 00:56:43,710 --> 00:56:46,000 E abbiamo visto che questo programma ha funzionato. 1209 00:56:46,000 --> 00:56:50,280 OK, andiamo avanti. 1210 00:56:50,280 --> 00:56:52,970 >> Così la prossima, stiamo per andare in funzioni, e abbiamo intenzione di andare 1211 00:56:52,970 --> 00:56:55,580 per il resto di questa roba abbastanza presto perché voglio arrivare a 1212 00:56:55,580 --> 00:56:57,150 gli argomenti della riga di comando. 1213 00:56:57,150 --> 00:57:00,330 Per cui funzioni sono essenzialmente, Come avete visto, scatole nere. 1214 00:57:00,330 --> 00:57:04,290 Prendono le cose in detti parametri, fanno qualcosa per loro, sia 1215 00:57:04,290 --> 00:57:06,990 modificarli o creare alcuni effetti collaterali, e, infine, sputano 1216 00:57:06,990 --> 00:57:09,530 qualcosa, che è il valore di ritorno. 1217 00:57:09,530 --> 00:57:12,495 Qualcuno mi può dare una ragione perché dovremmo utilizzare le funzioni? 1218 00:57:12,495 --> 00:57:15,870 1219 00:57:15,870 --> 00:57:16,360 Chiunque? 1220 00:57:16,360 --> 00:57:19,360 Una ragione per cui noi avremmo usato le funzioni? 1221 00:57:19,360 --> 00:57:21,280 Chiunque? 1222 00:57:21,280 --> 00:57:22,700 Ho visto due mani. 1223 00:57:22,700 --> 00:57:23,590 Che cosa è un buon motivo? 1224 00:57:23,590 --> 00:57:24,930 Marcus? 1225 00:57:24,930 --> 00:57:27,730 >> STUDENTE: Se si dispone di chiamare lo stesso pezzo di codice più volte. 1226 00:57:27,730 --> 00:57:29,150 >> JASON HIRSCHHORN: OK, se avete bisogno di chiamare lo stesso pezzo di 1227 00:57:29,150 --> 00:57:30,040 codificare più volte. 1228 00:57:30,040 --> 00:57:32,470 Jeff, hai avuto un altro motivo? 1229 00:57:32,470 --> 00:57:34,230 >> STUDENTE: Solo in modo che è possibile codificare meno. 1230 00:57:34,230 --> 00:57:35,070 >> JASON HIRSCHHORN: È possibile codificare meno. 1231 00:57:35,070 --> 00:57:35,320 Giusto. 1232 00:57:35,320 --> 00:57:38,720 Se si vuole fare qualcosa di molto - 1233 00:57:38,720 --> 00:57:41,720 Nel codice precedente, ho potuto avere scritta ottenere stringa cinque volte, ma una 1234 00:57:41,720 --> 00:57:44,620 per il ciclo lo fa apparire più bello e si deve scrivere meno codice. 1235 00:57:44,620 --> 00:57:45,760 Le funzioni sono un'idea simile. 1236 00:57:45,760 --> 00:57:48,720 Se voglio fare la stessa cosa un sacco, spostarlo in una funzione e chiamare che 1237 00:57:48,720 --> 00:57:49,610 funzionamento ogni volta. 1238 00:57:49,610 --> 00:57:51,190 Che fare quella cosa per voi. 1239 00:57:51,190 --> 00:57:53,740 Questo è un ottimo motivo per utilizzare le funzioni. 1240 00:57:53,740 --> 00:57:54,870 >> Quindi, anatomia di una funzione. 1241 00:57:54,870 --> 00:57:56,670 Una funzione viene generalmente simile a questa. 1242 00:57:56,670 --> 00:57:59,280 Si comincerà con il tipo di ritorno, allora si otterrà il nome. 1243 00:57:59,280 --> 00:58:02,935 Ci vorranno gli argomenti, altrimenti cosiddetti parametri, e dentro 1244 00:58:02,935 --> 00:58:05,290 quelle parentesi graffe, ti scrivere il codice. 1245 00:58:05,290 --> 00:58:07,150 >> Abbiamo visto una funzione molto. 1246 00:58:07,150 --> 00:58:09,160 Ecco principale. 1247 00:58:09,160 --> 00:58:13,820 Qui viene principale sovrapposto anatomia che ho avuto in precedenza. 1248 00:58:13,820 --> 00:58:15,525 Che cosa int proprio qui significa? 1249 00:58:15,525 --> 00:58:18,534 1250 00:58:18,534 --> 00:58:19,450 Cosa vuol int significa? 1251 00:58:19,450 --> 00:58:21,026 Quando scrivo int main (void). 1252 00:58:21,026 --> 00:58:21,740 >> STUDENTE: Tipo di ritorno? 1253 00:58:21,740 --> 00:58:22,350 >> JASON HIRSCHHORN: Scusa? 1254 00:58:22,350 --> 00:58:23,170 >> STUDENTE: Il tipo di ritorno. 1255 00:58:23,170 --> 00:58:24,820 >> JASON HIRSCHHORN: Int è la tipo di ritorno, esattamente a destra. 1256 00:58:24,820 --> 00:58:25,870 Principale restituisce un int. 1257 00:58:25,870 --> 00:58:28,678 Che cosa è main? 1258 00:58:28,678 --> 00:58:29,510 >> STUDENTE: nome della funzione. 1259 00:58:29,510 --> 00:58:30,800 >> JASON HIRSCHHORN: principale è la nome della funzione. 1260 00:58:30,800 --> 00:58:31,510 Esattamente. 1261 00:58:31,510 --> 00:58:31,840 E vuoto? 1262 00:58:31,840 --> 00:58:33,190 Qual è vuoto dentro le parentesi? 1263 00:58:33,190 --> 00:58:36,650 1264 00:58:36,650 --> 00:58:42,030 >> STUDENTE: Non ci vuole qualsiasi valore esterno. 1265 00:58:42,030 --> 00:58:42,930 >> JASON HIRSCHHORN: void So - 1266 00:58:42,930 --> 00:58:43,240 destra. 1267 00:58:43,240 --> 00:58:45,940 All'interno delle parentesi, abbiamo messo la parametri o gli argomenti delle 1268 00:58:45,940 --> 00:58:48,480 funzione prende, che cosa va all'interno della scatola nera. 1269 00:58:48,480 --> 00:58:50,760 Quando si scrive nulla, stai dicendo questo non toglie nulla dentro 1270 00:58:50,760 --> 00:58:53,802 Così int void main significa principale di Non prendere nulla dentro 1271 00:58:53,802 --> 00:58:56,950 >> All'interno delle parentesi graffe, abbiamo un po ' codice, e poi vediamo alla fine 1272 00:58:56,950 --> 00:58:57,640 restituire zero. 1273 00:58:57,640 --> 00:59:01,220 Che cosa fa ritorno a zero significa? 1274 00:59:01,220 --> 00:59:02,470 Beh, abbiamo parlato di tipo di ritorno. 1275 00:59:02,470 --> 00:59:03,780 Principale deve restituire un int. 1276 00:59:03,780 --> 00:59:04,960 Questo è ciò che questa linea fa. 1277 00:59:04,960 --> 00:59:07,330 Esso restituisce un int, zero. 1278 00:59:07,330 --> 00:59:13,600 >> Naturalmente, non abbiamo visto che un sacco perché nella programmazione che facciamo con 1279 00:59:13,600 --> 00:59:16,070 le macchine che facciamo ei compilatori usiamo al giorno d'oggi, è 1280 00:59:16,070 --> 00:59:16,990 non hanno bisogno di quella linea. 1281 00:59:16,990 --> 00:59:20,070 Principale è abbastanza speciale che sa quando si raggiunge la fine della principale, appena 1282 00:59:20,070 --> 00:59:22,060 restituire zero se tutto è andato bene. 1283 00:59:22,060 --> 00:59:25,560 In realtà, se qualcosa non va bene, principale sarà spesso restituire un diverso 1284 00:59:25,560 --> 00:59:28,500 numero significare che qualcosa è andato storto con il vostro programma. 1285 00:59:28,500 --> 00:59:32,470 >> Quindi, in generale, quando si vede il codice, si non scrivere di ritorno pari a zero, ma è buono 1286 00:59:32,470 --> 00:59:34,770 di sapere che sta accadendo dietro il scene perché ogni volta che si scrive 1287 00:59:34,770 --> 00:59:36,370 un altro tipo di funzione, si sta andando ad avere bisogno di 1288 00:59:36,370 --> 00:59:37,400 includere una linea di ritorno. 1289 00:59:37,400 --> 00:59:39,710 Se stai dicendo che sto per restituisce un int, è necessario 1290 00:59:39,710 --> 00:59:41,250 scrivere restituire qualcosa. 1291 00:59:41,250 --> 00:59:45,160 Se dite nulla fino qui al All'inizio, void void main, per 1292 00:59:45,160 --> 00:59:48,670 esempio, allora non è il ritorno nulla - nulla significa nulla - 1293 00:59:48,670 --> 00:59:50,320 quindi non è necessario che la linea di ritorno. 1294 00:59:50,320 --> 00:59:53,610 Ma hai mai scritto qualcosa che non è nulla per il tipo di ritorno, è necessario 1295 00:59:53,610 --> 00:59:55,950 una riga che dice di ritorno e si bisogno di mettere qualcosa lì 1296 00:59:55,950 --> 00:59:57,650 che corrisponde al tipo. 1297 00:59:57,650 --> 00:59:58,900 Avete domande su questo? 1298 00:59:58,900 --> 01:00:03,110 1299 01:00:03,110 --> 01:00:04,680 Dolce. 1300 01:00:04,680 --> 01:00:05,930 >> Ambito di applicazione. 1301 01:00:05,930 --> 01:00:07,360 Questo è qualcosa che abbiamo toccato pure. 1302 01:00:07,360 --> 01:00:10,720 Ogni variabile, come sappiamo, ha un certa portata, e che è fondamentalmente 1303 01:00:10,720 --> 01:00:14,160 parlando in cui la variabile può o non può essere fatto riferimento. 1304 01:00:14,160 --> 01:00:16,310 E mi piace dire quello che succede tra parentesi graffe soggiorni 1305 01:00:16,310 --> 01:00:18,000 all'interno delle parentesi graffe. 1306 01:00:18,000 --> 01:00:21,490 Così, per esempio, se guardiamo a questo codice, stiamo definendo una variabile globale 1307 01:00:21,490 --> 01:00:24,510 esterno principale, int a, qui in alto. 1308 01:00:24,510 --> 01:00:27,380 Noi stiamo chiamando un altro int a interno principale. 1309 01:00:27,380 --> 01:00:29,760 Abbiamo alcune parentesi graffe più, e stiamo chiamando un altro int a. 1310 01:00:29,760 --> 01:00:31,690 >> Abbiamo tre una di nel codice. 1311 01:00:31,690 --> 01:00:32,550 Questi non sono la stessa cosa. 1312 01:00:32,550 --> 01:00:34,880 Ho creato tre variabili distinte. 1313 01:00:34,880 --> 01:00:39,370 Poi all'interno di questi ricci interiore bretelle, mi dicono che a = 4. 1314 01:00:39,370 --> 01:00:44,130 Il che è una che parla, il primo, il secondo, 1315 01:00:44,130 --> 01:00:47,045 o il terzo? 1316 01:00:47,045 --> 01:00:47,920 >> STUDENTE: Il terzo. 1317 01:00:47,920 --> 01:00:49,320 >> JASON HIRSCHHORN: Sta parlando circa il terzo. 1318 01:00:49,320 --> 01:00:52,850 Tutti quelli di una in realtà può essere parlato in questo particolare 1319 01:00:52,850 --> 01:00:58,660 esempio perché il loro campo di applicazione tutto va in queste parentesi graffe più interne. 1320 01:00:58,660 --> 01:01:02,360 Tuttavia, quando si chiama le cose allo stesso nome, c'è qualcosa che si chiama nascondersi. 1321 01:01:02,360 --> 01:01:09,670 Quindi, avete a che fare solo con o riparare o utilizzare il più recente variabile, o quello 1322 01:01:09,670 --> 01:01:11,090 più vicino a voi. 1323 01:01:11,090 --> 01:01:14,760 Quindi qui dentro, questo terzo una è più vicino a quella linea, a = 4, così 1324 01:01:14,760 --> 01:01:16,550 colpisce il terzo. 1325 01:01:16,550 --> 01:01:19,890 E l'ultima riga, a = 2, che a è che parla, il primo, secondo, 1326 01:01:19,890 --> 01:01:20,805 o un terzo? 1327 01:01:20,805 --> 01:01:22,530 >> STUDENTE: Seconda. 1328 01:01:22,530 --> 01:01:24,430 >> JASON HIRSCHHORN: Sta parlando circa il secondo a. 1329 01:01:24,430 --> 01:01:27,970 Naturalmente, il terzo un è più vicino nel codice, ma il terzo un 1330 01:01:27,970 --> 01:01:30,200 non esiste al di fuori quelle parentesi graffe. 1331 01:01:30,200 --> 01:01:32,650 Una volta che si arriva a quella chiusa ricci brace, è come è andato, 1332 01:01:32,650 --> 01:01:33,570 essenzialmente. 1333 01:01:33,570 --> 01:01:36,150 Quindi gli unici due che hai lasciato sono quelli primi due, e, naturalmente, ora 1334 01:01:36,150 --> 01:01:37,960 è più vicina alla seconda. 1335 01:01:37,960 --> 01:01:39,410 >> Ecco, questo è una buona cosa da ricordarsi di portata. 1336 01:01:39,410 --> 01:01:42,900 Ad esempio, sono sicuro che hai incontrato questo in un ciclo Do While. 1337 01:01:42,900 --> 01:01:46,680 Se si inizializza la variabile interna il ciclo Do While e quindi si tenta di 1338 01:01:46,680 --> 01:01:50,360 accedervi dall'esterno, probabilmente avuto qualche avvertimento simile, questo 1339 01:01:50,360 --> 01:01:51,680 variabile non esiste. 1340 01:01:51,680 --> 01:01:54,370 Questo perché l'idea portata, che le cose esistono solo 1341 01:01:54,370 --> 01:01:55,320 all'interno di queste parentesi graffe. 1342 01:01:55,320 --> 01:01:59,320 Le parentesi graffe sono come un abbraccio gigante che si sta dando al codice, è un altro 1343 01:01:59,320 --> 01:02:01,380 modo di pensarci. 1344 01:02:01,380 --> 01:02:05,280 >> Quindi questo è un'altra funzione, qualcosa per voi ragazzi a codice, hellofunction.c. 1345 01:02:05,280 --> 01:02:08,240 Stiamo andando a saltare che per ora, ma questo è qualcosa che ti incoraggio a 1346 01:02:08,240 --> 01:02:09,740 praticare da soli. 1347 01:02:09,740 --> 01:02:12,510 Scrivere un programma in cui i principali chiamate un'altra funzione che stampa un 1348 01:02:12,510 --> 01:02:13,750 saluto per l'utente. 1349 01:02:13,750 --> 01:02:17,750 E 'essenzialmente prendendo mondo ciao e astrazione che printf in 1350 01:02:17,750 --> 01:02:18,680 un'altra funzione. 1351 01:02:18,680 --> 01:02:22,360 Ma noi non abbiamo intenzione di farlo adesso perché non abbiamo più tempo 1352 01:02:22,360 --> 01:02:23,350 lasciato come mi sarebbe piaciuto. 1353 01:02:23,350 --> 01:02:26,250 >> Così dichiarazione di funzione. 1354 01:02:26,250 --> 01:02:28,080 Abbiamo visto questo prima pure. 1355 01:02:28,080 --> 01:02:31,180 Se si vuole scrivere un'altra funzione, è necessario lasciare che il computer conosce e 1356 01:02:31,180 --> 01:02:32,600 principale sanno che esiste. 1357 01:02:32,600 --> 01:02:37,140 Quindi, quello che facciamo è sopra principale, scriviamo il tipo di ritorno, il nome e il 1358 01:02:37,140 --> 01:02:42,970 parametri, e poi giù sotto principale, qui, in realtà copia che la linea 1359 01:02:42,970 --> 01:02:45,080 e poi scrivere il codice vero e proprio. 1360 01:02:45,080 --> 01:02:50,990 Quindi, in questo modo, se si chiama la funzione nel principale nella parte superiore, principale sa che 1361 01:02:50,990 --> 01:02:54,650 ciao esiste, per esempio, se io fossi chiamare ciao, e poi sembra di 1362 01:02:54,650 --> 01:02:56,710 l'attuazione in basso. 1363 01:02:56,710 --> 01:02:59,680 Cosa succede se non includono questa line up top, nulla ciao (void)? 1364 01:02:59,680 --> 01:03:03,820 1365 01:03:03,820 --> 01:03:06,560 >> Se io non includo questa linea e chiede principali Ciao, sono 1366 01:03:06,560 --> 01:03:07,640 andando ad ottenere un errore. 1367 01:03:07,640 --> 01:03:10,090 Ho intenzione di ottenere un errore perché il compilatore non sa 1368 01:03:10,090 --> 01:03:13,070 che questa cosa esiste. 1369 01:03:13,070 --> 01:03:16,680 Questo è simile a questo che do # include cs50.h. 1370 01:03:16,680 --> 01:03:21,390 Cosa essenzialmente cs50.h sta facendo sta mettendo ottenere stringa lassù. 1371 01:03:21,390 --> 01:03:23,120 Sta mettendo ottenere int lassù. 1372 01:03:23,120 --> 01:03:26,570 Si sta mettendo tutte quelle funzioni prototipi prima principale in modo che quando 1373 01:03:26,570 --> 01:03:29,900 li chiami in principale, principale sa che queste cose esistono. 1374 01:03:29,900 --> 01:03:31,630 Questo è ciò che quei file. H fanno. 1375 01:03:31,630 --> 01:03:33,850 E quindi, se avete intenzione di fare il proprio funzione, devi fare in modo 1376 01:03:33,850 --> 01:03:36,690 metti che prototipo lassù. 1377 01:03:36,690 --> 01:03:38,380 Tutte le domande su questo finora? 1378 01:03:38,380 --> 01:03:41,630 1379 01:03:41,630 --> 01:03:42,490 >> Gli argomenti della riga di comando. 1380 01:03:42,490 --> 01:03:44,780 Questo è quello che stiamo andando a finire su, e poi speriamo di 1381 01:03:44,780 --> 01:03:46,180 spremere in qualche pset. 1382 01:03:46,180 --> 01:03:48,700 Non so se saremo in grado di spremere che nella causa di tempo, ma 1383 01:03:48,700 --> 01:03:51,560 con voi ragazzi che sono qui, e se si ragazzi vogliono dire che dopo un po ', abbiamo 1384 01:03:51,560 --> 01:03:54,290 può andare su di esso dall'esterno. 1385 01:03:54,290 --> 01:03:56,020 Ma stiamo andando a finire con argomenti della riga di comando 1386 01:03:56,020 --> 01:03:58,510 per gli ultimi 15 minuti. 1387 01:03:58,510 --> 01:03:59,930 Siamo svegli, Michael? 1388 01:03:59,930 --> 01:04:01,180 Sei sveglio? 1389 01:04:01,180 --> 01:04:01,660 Buono. 1390 01:04:01,660 --> 01:04:03,760 Non so se si dorme con gli occhi chiusi. 1391 01:04:03,760 --> 01:04:05,800 Sarebbe difficile. 1392 01:04:05,800 --> 01:04:07,180 >> Gli argomenti della riga di comando. 1393 01:04:07,180 --> 01:04:10,430 Quelli sono un modo per passare informazioni in un programma. 1394 01:04:10,430 --> 01:04:12,780 Alla fine, ci incontriamo gli altri. 1395 01:04:12,780 --> 01:04:15,600 Ma in sostanza, stiamo andando a fermarsi scrivere int main () se vogliamo 1396 01:04:15,600 --> 01:04:16,720 prendere alcuni argomenti della riga di comando. 1397 01:04:16,720 --> 01:04:19,850 Stiamo per scrivere questa cosa chiamato int main (int argc, 1398 01:04:19,850 --> 01:04:22,430 stringa argv, staffe. 1399 01:04:22,430 --> 01:04:23,710 Che è confusa. 1400 01:04:23,710 --> 01:04:26,070 Questo è un sacco di lettere che non sono in umano inglese, quindi andremo a 1401 01:04:26,070 --> 01:04:27,680 disfare loro in questo momento. 1402 01:04:27,680 --> 01:04:30,450 >> Argc sta per numero di argomenti - 1403 01:04:30,450 --> 01:04:32,600 e ancora, tutte queste saranno essere disponibile on-line - 1404 01:04:32,600 --> 01:04:34,280 e questo è il numero di argomenti. 1405 01:04:34,280 --> 01:04:37,940 Argv sta per argomento vettore, e quelli sono gli argomenti stessi. 1406 01:04:37,940 --> 01:04:38,830 Si tratta di un array di stringhe. 1407 01:04:38,830 --> 01:04:40,880 Abbiamo effettivamente visto una matrice di stringhe prima di oggi. 1408 01:04:40,880 --> 01:04:44,390 Abbiamo creato uno in ultima programma abbiamo scritto. 1409 01:04:44,390 --> 01:04:45,720 >> Quindi, ecco un esempio. 1410 01:04:45,720 --> 01:04:50,230 Scrivo. / Ohai sezione CS50 sulla mia linea di comando. 1411 01:04:50,230 --> 01:04:54,090 Argc in questo caso è uguale a 3. 1412 01:04:54,090 --> 01:05:01,170 Argv staffa 0 è ohai, argv staffa 1 è CS50, argv staffa 2 è la sezione. 1413 01:05:01,170 --> 01:05:05,160 Ancora, argc è il numero di argomenti, e di viaggio in su un po ' 1414 01:05:05,160 --> 01:05:08,710 po ', abbiamo sempre contare il nome del funzione come primo argomento. 1415 01:05:08,710 --> 01:05:12,350 Quindi in questo caso, ci sono tre argomenti, il nome della funzione 1416 01:05:12,350 --> 01:05:14,590 e poi quei due che ho digitato dentro 1417 01:05:14,590 --> 01:05:18,900 >> Avanti, andiamo a salvare coloro stessi argomenti argv. 1418 01:05:18,900 --> 01:05:22,690 E ancora, come abbiamo visto prima, abbiamo fatto questo nell'ultimo programma abbiamo scritto. 1419 01:05:22,690 --> 01:05:27,110 È possibile spostarsi attraverso la matrice di argv e ottenere quelle stringhe. 1420 01:05:27,110 --> 01:05:28,830 Questo è in sostanza quello che abbiamo fatto in Alla fine del nostro ultimo programma. 1421 01:05:28,830 --> 01:05:33,190 Abbiamo scelto un nome a caso e poi siamo andati a nomi staffa qualunque e stampati 1422 01:05:33,190 --> 01:05:34,580 la stringa si trova lì. 1423 01:05:34,580 --> 01:05:39,870 1424 01:05:39,870 --> 01:05:43,670 >> In cima solo una matrice, poiché corde stesse sono array, come 1425 01:05:43,670 --> 01:05:46,320 ha parlato, è possibile avere gli array di array, che è 1426 01:05:46,320 --> 01:05:48,530 essenzialmente ciò che è argv. 1427 01:05:48,530 --> 01:05:51,370 Un modo si può pensare questo è righe e colonne. 1428 01:05:51,370 --> 01:05:54,750 Posso disegnare che in questo momento. 1429 01:05:54,750 --> 01:05:57,370 Così argv - 1430 01:05:57,370 --> 01:05:58,630 che non sta cancellando. 1431 01:05:58,630 --> 01:05:59,880 Impara a disegnare sotto ohai. 1432 01:05:59,880 --> 01:06:09,320 1433 01:06:09,320 --> 01:06:12,490 >> Quindi, se ho scritto in, sezione ohai CS50, Ho intenzione di troncare 1434 01:06:12,490 --> 01:06:14,520 sezione per questo esempio. 1435 01:06:14,520 --> 01:06:29,026 Ma in sostanza, il mio multi-dimensionale array, ohai CS50, 1436 01:06:29,026 --> 01:06:32,200 stiamo andando a fare sez. 1437 01:06:32,200 --> 01:06:34,610 Così qui, posso accedere - 1438 01:06:34,610 --> 01:06:40,930 1439 01:06:40,930 --> 01:06:45,710 se ho appena do argv un numero - 1440 01:06:45,710 --> 01:06:46,390 questo è sbagliato. 1441 01:06:46,390 --> 01:06:49,020 Cosa c'è di sbagliato in questo schema? 1442 01:06:49,020 --> 01:06:49,690 >> STUDENTE: Partenza da zero. 1443 01:06:49,690 --> 01:06:50,350 >> JASON HIRSCHHORN: dovrebbe iniziare con zero. 1444 01:06:50,350 --> 01:06:52,940 Probabilmente dovrei anche ruotarla, ma dal momento che ho già disegnato su, io sono 1445 01:06:52,940 --> 01:06:54,120 intenzione di lasciarlo acceso lì per ora. 1446 01:06:54,120 --> 01:06:55,160 Ma si parte da zero. 1447 01:06:55,160 --> 01:06:56,410 Che è di destra. 1448 01:06:56,410 --> 01:06:58,980 1449 01:06:58,980 --> 01:07:00,120 Mi dispiace se questa è piccola. 1450 01:07:00,120 --> 01:07:01,370 Voi ragazzi potete sorta di vedere? 1451 01:07:01,370 --> 01:07:03,620 1452 01:07:03,620 --> 01:07:06,670 Quindi se faccio argv 0, io ottenere tutte ohai. 1453 01:07:06,670 --> 01:07:08,555 Se faccio argv 1, vado a prendere tutti CS50. 1454 01:07:08,555 --> 01:07:10,720 Se faccio argv 2, vado a prendere tutti setta. 1455 01:07:10,720 --> 01:07:13,370 >> Ma ora, come abbiamo detto, le stringhe sono matrici stesse. 1456 01:07:13,370 --> 01:07:19,740 Quindi quello che posso fare è che posso trattare questo come un array multi-dimensionale, e io 1457 01:07:19,740 --> 01:07:24,190 può fare qualcosa lungo le linee di argv 0, 0, il che mi dà solo il 1458 01:07:24,190 --> 01:07:25,400 carattere 0. 1459 01:07:25,400 --> 01:07:28,760 Argv 0, 1, che dà me solo h. 1460 01:07:28,760 --> 01:07:33,960 Argv 1, 3, il che mi dà solo questo 0 qui in CS50. 1461 01:07:33,960 --> 01:07:37,690 >> Quindi, perché le stringhe stesse sono array, stiamo mettendo 1462 01:07:37,690 --> 01:07:38,540 che in un altro array. 1463 01:07:38,540 --> 01:07:42,850 Ora abbiamo array di array, e noi può indicizzare nel nostro primo array e 1464 01:07:42,850 --> 01:07:44,840 quindi indice nel nostro secondo array. 1465 01:07:44,840 --> 01:07:48,650 E come ci si aspetterebbe, lo facciamo da solo mettendo quei due - 1466 01:07:48,650 --> 01:07:51,760 facciamo le parentesi quadre solo proprio accanto a un altro. 1467 01:07:51,760 --> 01:07:58,930 Quindi in questo esempio, argv 1 è CS50 e argv 1, 2, come abbiamo detto, è solo 5. 1468 01:07:58,930 --> 01:08:02,120 Qualcuno ha domande su array multidimensionali? 1469 01:08:02,120 --> 01:08:05,090 1470 01:08:05,090 --> 01:08:06,380 Voi ragazzi state facendo impressionante. 1471 01:08:06,380 --> 01:08:07,750 Dolce. 1472 01:08:07,750 --> 01:08:11,980 >> Quindi abbiamo un altro programma proprio qui, e questa è l'ultima cosa che siamo 1473 01:08:11,980 --> 01:08:13,690 intenzione di fare adesso. 1474 01:08:13,690 --> 01:08:18,160 Quindi voglio che tu scriva un programma che prende il nome completo di un utente, due e solo 1475 01:08:18,160 --> 01:08:21,649 due argomenti della riga di comando, e, infine, stampare un saluto al 1476 01:08:21,649 --> 01:08:24,180 utente che include il loro nome di battesimo. 1477 01:08:24,180 --> 01:08:27,800 Allora perché non prendi tre o quattro minuti per fare questo, e poi ce ne andiamo 1478 01:08:27,800 --> 01:08:29,870 su di esso come un gruppo, e poi ci spostiamo in su? 1479 01:08:29,870 --> 01:09:44,189 1480 01:09:44,189 --> 01:09:48,084 >> E ancora, ecco, quando si dice prendere un nome completo per la descrizione dell'utente 1481 01:09:48,084 --> 01:09:54,473 di questo problema, dovrebbe essere comando argomenti della riga, non usando ottengono stringa. 1482 01:09:54,473 --> 01:09:55,450 Sì, Marcus? 1483 01:09:55,450 --> 01:09:58,260 >> STUDENTE: Quindi, quando si dice due comandi argomenti della riga, è che, oltre a 1484 01:09:58,260 --> 01:10:00,000 . l'/ correre, o - 1485 01:10:00,000 --> 01:10:02,980 >> JASON HIRSCHHORN: Bella domanda. 1486 01:10:02,980 --> 01:10:05,995 Fare, tra cui il. / Run, tre gli argomenti della riga di comando. 1487 01:10:05,995 --> 01:10:08,550 1488 01:10:08,550 --> 01:10:11,320 O tra il. / Personalizzato, in questo caso, perché questo è il 1489 01:10:11,320 --> 01:10:12,360 nome di questo file. 1490 01:10:12,360 --> 01:10:13,300 Così argc sarebbe tre. 1491 01:10:13,300 --> 01:10:19,480 Ma voglio solo due argomenti dato al programma. 1492 01:10:19,480 --> 01:10:20,400 Vorrei specificare che. 1493 01:10:20,400 --> 01:10:23,380 Farò che il cambiamento prima che post- questi e inviarle a voi ragazzi. 1494 01:10:23,380 --> 01:10:32,747 1495 01:10:32,747 --> 01:10:34,740 >> STUDENTE: cosa succede se si avere un secondo nome? 1496 01:10:34,740 --> 01:10:36,800 >> JASON HIRSCHHORN: Se si dispone di un mezzo nome, sei fuori di fortuna. 1497 01:10:36,800 --> 01:10:38,050 Mi dispiace. 1498 01:10:38,050 --> 01:10:40,320 1499 01:10:40,320 --> 01:10:43,744 Oppure, se si va solo da Shakira, sei anche fuori di fortuna. 1500 01:10:43,744 --> 01:10:55,672 1501 01:10:55,672 --> 01:10:56,425 Sì? 1502 01:10:56,425 --> 01:11:00,760 >> STUDENTE: Quindi, quando le persone non hanno cs50.h, fanno definiscono argv 1503 01:11:00,760 --> 01:11:03,450 come char argv stella? 1504 01:11:03,450 --> 01:11:05,160 O è ancora chiamato stringa argv? 1505 01:11:05,160 --> 01:11:07,430 >> JASON HIRSCHHORN: sì. 1506 01:11:07,430 --> 01:11:10,480 Così stringa, ancora una volta, abbiamo maschera sul quale esattamente sta accadendo là. 1507 01:11:10,480 --> 01:11:14,040 Che sta per essere scompattato forse il Mercoledì, ma presto. 1508 01:11:14,040 --> 01:11:16,380 E 'come le ruote di formazione. 1509 01:11:16,380 --> 01:11:18,370 Perché in sostanza, è la stessa cosa. 1510 01:11:18,370 --> 01:11:37,040 1511 01:11:37,040 --> 01:11:42,560 >> Così diamo un altro minuto per programma questo, e poi andremo oltre 1512 01:11:42,560 --> 01:11:45,130 come un gruppo, e quindi come ho detto, avvolgere. 1513 01:11:45,130 --> 01:11:47,770 E penso che siano ancora caramelle in più, così voi ragazzi dovreste prendere spera 1514 01:11:47,770 --> 01:11:49,790 che, o si prega di prendere quello. 1515 01:11:49,790 --> 01:12:20,380 1516 01:12:20,380 --> 01:12:22,560 >> Mi dispiace se stai ancora scrivendo, ma voglio immergersi e noi 1517 01:12:22,560 --> 01:12:24,010 può finire insieme. 1518 01:12:24,010 --> 01:12:30,470 Così ho scritto a, # include cs50.h, # include stdio.h. 1519 01:12:30,470 --> 01:12:33,970 int main (), parentesi graffa, ricci brace, all'interno di tre linee di 1520 01:12:33,970 --> 01:12:38,760 pseudocodice, prende il nome completo di un utente, due e solo due riga di comando 1521 01:12:38,760 --> 01:12:42,670 argomenti, stampare un saluto al utente che include il loro nome di battesimo. 1522 01:12:42,670 --> 01:12:45,810 >> Quindi la prima, prendere il nome completo di un utente. 1523 01:12:45,810 --> 01:12:47,290 Chi può aiutarmi a portare nome completo? di un utente 1524 01:12:47,290 --> 01:12:50,882 1525 01:12:50,882 --> 01:12:52,780 Come posso fare quella parte? 1526 01:12:52,780 --> 01:12:57,685 1527 01:12:57,685 --> 01:12:59,500 Vi siete farlo prima parte? 1528 01:12:59,500 --> 01:13:02,587 1529 01:13:02,587 --> 01:13:03,894 Prendere il nome completo di un utente. 1530 01:13:03,894 --> 01:13:05,860 Beh, per quella linea di comando argomento, che cosa devo scrivere? 1531 01:13:05,860 --> 01:13:09,624 Cosa dovrei cambiare circa la mia dichiarazione di funzione? 1532 01:13:09,624 --> 01:13:11,140 >> STUDENTE: Lei non si vuole che fosse più nulla. 1533 01:13:11,140 --> 01:13:11,410 >> JASON HIRSCHHORN: Esattamente. 1534 01:13:11,410 --> 01:13:12,385 Io non voglio che sia vuoto. 1535 01:13:12,385 --> 01:13:13,630 Cosa voglio che sia? 1536 01:13:13,630 --> 01:13:14,650 >> STUDENTE: argc int. 1537 01:13:14,650 --> 01:13:15,720 >> JASON HIRSCHHORN: int argc. 1538 01:13:15,720 --> 01:13:17,430 >> STUDENTE: String argv. 1539 01:13:17,430 --> 01:13:19,055 >> JASON HIRSCHHORN: String argv. 1540 01:13:19,055 --> 01:13:19,705 >> STUDENTE: staffa, staffa. 1541 01:13:19,705 --> 01:13:20,070 >> JASON HIRSCHHORN: staffa, staffa. 1542 01:13:20,070 --> 01:13:21,780 E 'esattamente così, e questo è in realtà come ho intenzione di ottenere 1543 01:13:21,780 --> 01:13:22,820 il nome completo di un utente. 1544 01:13:22,820 --> 01:13:24,070 Stanno andando a metterlo in là. 1545 01:13:24,070 --> 01:13:27,720 1546 01:13:27,720 --> 01:13:28,780 In modo che uno ha fatto. 1547 01:13:28,780 --> 01:13:30,780 Quindi ora voglio due e solo due gli argomenti della riga di comando. 1548 01:13:30,780 --> 01:13:35,065 Così Noè, che cosa è un modo che posso verificare il numero di comando 1549 01:13:35,065 --> 01:13:36,315 argomenti della riga ho? 1550 01:13:36,315 --> 01:13:39,676 1551 01:13:39,676 --> 01:13:40,725 >> STUDENTE: Tu fai un if. 1552 01:13:40,725 --> 01:13:42,270 >> JASON HIRSCHHORN: se dichiarazione, esattamente. 1553 01:13:42,270 --> 01:13:44,830 Cosa voglio come la condizione? 1554 01:13:44,830 --> 01:13:48,370 >> STUDENTE: Se argc maggiore di 3. 1555 01:13:48,370 --> 01:13:52,485 >> JASON HIRSCHHORN: se argc è maggiore di 3. 1556 01:13:52,485 --> 01:13:58,430 Se argc maggiore di 3, cosa devo fare? 1557 01:13:58,430 --> 01:13:59,400 >> STUDENTE: ritorno 1. 1558 01:13:59,400 --> 01:14:01,856 >> JASON HIRSCHHORN: RITORNO 1. 1559 01:14:01,856 --> 01:14:04,050 Sarà che ho assicurare due e solo due? 1560 01:14:04,050 --> 01:14:07,280 1561 01:14:07,280 --> 01:14:07,820 >> STUDENTE: No. 1562 01:14:07,820 --> 01:14:13,110 Se argc è maggiore di 3 e minore di 2. 1563 01:14:13,110 --> 01:14:17,770 >> JASON HIRSCHHORN: se argc è maggiore di 3 e argc è minore di 2. 1564 01:14:17,770 --> 01:14:21,540 Che è un modo posso scrivere questo in un solo una linea, o senza usare tale 1565 01:14:21,540 --> 01:14:23,890 e operatore booleano? 1566 01:14:23,890 --> 01:14:25,942 >> STUDENTE: Non è uguale a 2. 1567 01:14:25,942 --> 01:14:28,790 >> JASON HIRSCHHORN: se argc non è uguale a 2. 1568 01:14:28,790 --> 01:14:29,260 Esattamente. 1569 01:14:29,260 --> 01:14:34,890 Quindi se argc non è uguale a 2, che mi darà questo programma, 1570 01:14:34,890 --> 01:14:37,250 personalizzato, quando lo eseguo, e che mi darà quanti 1571 01:14:37,250 --> 01:14:38,740 argomenti della riga di comando? 1572 01:14:38,740 --> 01:14:42,110 Quanti dovrò controllare? 1573 01:14:42,110 --> 01:14:42,370 >> Mi dispiace. 1574 01:14:42,370 --> 01:14:43,400 Permettetemi di riformulare questo. 1575 01:14:43,400 --> 01:14:46,620 Se argc = 2, quante cose ha fatto l'utente scrivere nella linea? 1576 01:14:46,620 --> 01:14:47,500 >> STUDENTE: Uno. 1577 01:14:47,500 --> 01:14:49,120 >> JASON HIRSCHHORN: Solo uno. 1578 01:14:49,120 --> 01:14:50,430 Quindi, prima, avevi ragione, Noah. 1579 01:14:50,430 --> 01:14:52,192 Di cosa ho veramente bisogno di mettere lì? 1580 01:14:52,192 --> 01:14:53,640 >> STUDENTE: Che è uguale a 3. 1581 01:14:53,640 --> 01:14:55,970 >> JASON HIRSCHHORN: argc non è uguale a 3. 1582 01:14:55,970 --> 01:15:00,250 Voglio eguagliare 3 perché voglio personalizzato oltre gli altri due. 1583 01:15:00,250 --> 01:15:02,560 Quindi, se argc non è uguale 3, ritorno 1. 1584 01:15:02,560 --> 01:15:04,475 Perché hai detto RITORNO 1? 1585 01:15:04,475 --> 01:15:06,180 >> STUDENTE: Perché significa che è sbagliato. 1586 01:15:06,180 --> 01:15:08,420 >> JASON HIRSCHHORN: Questo significa che è sbagliato, E che cosa è che andando a fare? 1587 01:15:08,420 --> 01:15:10,360 >> STUDENTE: Re-richiesta all'utente. 1588 01:15:10,360 --> 01:15:11,940 >> JASON HIRSCHHORN: E 'intenzione di smettere il programma, quindi sarà necessario eseguire 1589 01:15:11,940 --> 01:15:14,520 ancora una volta, ma non abbiamo niente in qui per chiedere loro di nuovo. 1590 01:15:14,520 --> 01:15:14,840 Non ho chiesto per questo. 1591 01:15:14,840 --> 01:15:15,990 Ecco, questo è esattamente giusto. 1592 01:15:15,990 --> 01:15:17,680 Ritorno 1 solo chiude il programma. 1593 01:15:17,680 --> 01:15:18,520 Grande. 1594 01:15:18,520 --> 01:15:21,600 >> E stampare un messaggio di saluto per l'utente che include il loro nome di battesimo. 1595 01:15:21,600 --> 01:15:24,010 Come posso fare questo? 1596 01:15:24,010 --> 01:15:25,990 Anna? 1597 01:15:25,990 --> 01:15:26,580 >> STUDENTE: printf. 1598 01:15:26,580 --> 01:15:27,785 >> JASON HIRSCHHORN: printf. 1599 01:15:27,785 --> 01:15:28,640 >> STUDENTE: (" 1600 01:15:28,640 --> 01:15:30,460 >> JASON HIRSCHHORN: ( 1601 01:15:30,460 --> 01:15:31,600 >> STUDENTE: "ciao 1602 01:15:31,600 --> 01:15:33,210 >> JASON HIRSCHHORN: "ciao 1603 01:15:33,210 --> 01:15:34,800 >> STUDENTE:% s 1604 01:15:34,800 --> 01:15:37,230 >> JASON HIRSCHHORN:% s 1605 01:15:37,230 --> 01:15:38,840 >> STUDENTE: / n 1606 01:15:38,840 --> 01:15:41,030 >> JASON HIRSCHHORN: / n 1607 01:15:41,030 --> 01:15:43,120 >> STUDENTE: ", 1608 01:15:43,120 --> 01:15:45,130 >> JASON HIRSCHHORN: ", 1609 01:15:45,130 --> 01:15:46,620 >> STUDENTE: argv 1610 01:15:46,620 --> 01:15:47,080 >> JASON HIRSCHHORN: Scusa? 1611 01:15:47,080 --> 01:15:47,750 >> STUDENTE: argv 1612 01:15:47,750 --> 01:15:48,840 >> JASON HIRSCHHORN: argv 1613 01:15:48,840 --> 01:15:50,190 >> STUDENTE: Piazza staffe 1. 1614 01:15:50,190 --> 01:15:51,230 >> JASON HIRSCHHORN: Le parentesi quadre? 1615 01:15:51,230 --> 01:15:51,870 >> STUDENTE: 1. 1616 01:15:51,870 --> 01:15:54,050 >> JASON HIRSCHHORN: 1. 1617 01:15:54,050 --> 01:15:55,850 >> STUDENTE: E) punto e virgola. 1618 01:15:55,850 --> 01:15:58,290 >> JASON HIRSCHHORN:) virgola. 1619 01:15:58,290 --> 01:16:00,250 Corriamo questo. 1620 01:16:00,250 --> 01:16:03,730 Fai personalizzato. 1621 01:16:03,730 --> 01:16:06,392 . / Personalizzato. 1622 01:16:06,392 --> 01:16:07,420 E 'appena smesso. 1623 01:16:07,420 --> 01:16:10,390 Perché ha smesso? 1624 01:16:10,390 --> 01:16:11,310 >> STUDENTE: Lei non ha messo alcun argomento. 1625 01:16:11,310 --> 01:16:12,560 >> JASON HIRSCHHORN: non l'ho fatto mettere tutti gli argomenti dentro 1626 01:16:12,560 --> 01:16:16,360 1627 01:16:16,360 --> 01:16:16,920 Sembra grande. 1628 01:16:16,920 --> 01:16:18,130 Voi ragazzi inchiodato. 1629 01:16:18,130 --> 01:16:22,420 Così ancora una volta, è andato in argv e si controllato all'inizio argc. 1630 01:16:22,420 --> 01:16:24,390 Quelli sono due importanti cose da ricordare. 1631 01:16:24,390 --> 01:16:29,250 Quindi, nelle nostre ultime due minuti prima di noi lasciare, non si arriva a pset due, ma 1632 01:16:29,250 --> 01:16:33,585 come ho detto, se si vuole rimanere dopo per 10 minuti, vorrei che felice di andare 1633 01:16:33,585 --> 01:16:35,710 sopra con voi ragazzi la logica per questi insiemi di problemi. 1634 01:16:35,710 --> 01:16:37,930 Abbiamo avuto un sacco di coprire oggi così non ho avuto con loro. 1635 01:16:37,930 --> 01:16:39,820 In generale, mi piace includere che alla fine. 1636 01:16:39,820 --> 01:16:42,150 Quindi, se si vuole restare, restare per 10 minuti. 1637 01:16:42,150 --> 01:16:42,990 Lo faremo. 1638 01:16:42,990 --> 01:16:46,250 >> Poi, come ho detto all'inizio, pset zero e uno, otterremo che 1639 01:16:46,250 --> 01:16:48,040 retroazione al più presto possibile. 1640 01:16:48,040 --> 01:16:51,260 L'obiettivo è quello di ottenere pset un feedback, la parte commenti, 1641 01:16:51,260 --> 01:16:52,850 prima pset due è dovuto. 1642 01:16:52,850 --> 01:16:56,730 Quindi, se hai fatto qualche errore o stilisticamente, le cose potrebbero essere migliori, 1643 01:16:56,730 --> 01:17:01,330 avrai le informazioni in modo da non fare le stesse cose in pset due. 1644 01:17:01,330 --> 01:17:06,140 E poi, in futuro, si otterrà tutti del vostro feedback pset e commenti 1645 01:17:06,140 --> 01:17:08,190 indietro prima che il prossimo è dovuta. 1646 01:17:08,190 --> 01:17:12,695 >> Infine, se potevo mettere in un altro spina per il feedback. 1647 01:17:12,695 --> 01:17:13,935 Questo è il tuo primo articolo. 1648 01:17:13,935 --> 01:17:15,920 E 'stata la mia prima sezione l'insegnamento di quest'anno. 1649 01:17:15,920 --> 01:17:16,930 Andare lì. 1650 01:17:16,930 --> 01:17:19,800 Scrivere cose, buone e cattive, e io lo uso per fare 1651 01:17:19,800 --> 01:17:21,320 sezione di meglio la prossima volta. 1652 01:17:21,320 --> 01:17:24,870 E per ultimo, ancora una volta, se avete bisogno di qualsiasi cosa, fammi sapere. 1653 01:17:24,870 --> 01:17:26,410 Sono più che felice di aiutare voi ragazzi. 1654 01:17:26,410 --> 01:17:28,420 Se si desidera solo caramelle, ho avrà caramelle in più. 1655 01:17:28,420 --> 01:17:29,800 Sono felice di portare a voi. 1656 01:17:29,800 --> 01:17:31,190 >> Questo sarà un corso di stupefacente. 1657 01:17:31,190 --> 01:17:34,900 Questo è uno dei, se non il mio preferito Naturalmente, ho preso in tutta la mia vita, 1658 01:17:34,900 --> 01:17:37,220 e spero che sarà così meraviglioso per voi. 1659 01:17:37,220 --> 01:17:40,090 Quindi voglio fare tutto quanto in mio potere per rendere più che impressionante per voi. 1660 01:17:40,090 --> 01:17:46,590 Ho intenzione di inviare una e-mail se si è nella mia sezione o Noah, e 1661 01:17:46,590 --> 01:17:50,310 andando a cercare e pianificare con ciascuno dei voi ragazzi un tempo per il check-in nel 1662 01:17:50,310 --> 01:17:53,820 un paio di settimane in modo che possa ottenere un senso di ciò che il vostro sfondo CS è, 1663 01:17:53,820 --> 01:17:58,170 e aiuterà anche a me su misura questi sezioni per soddisfare al meglio le vostre esigenze. 1664 01:17:58,170 --> 01:17:59,740 Ecco, questo è quello che ho messo in fila. 1665 01:17:59,740 --> 01:18:02,260 Anche in questo caso, ci vediamo fuori se si vuole essere lì. 1666 01:18:02,260 --> 01:18:03,700 Questa settimana è stata a due sezioni. 1667 01:18:03,700 --> 01:18:04,950 Grazie ragazzi così tanto. 1668 01:18:04,950 --> 01:18:09,067