1 00:00:00,000 --> 00:00:07,070 [Powered by Google Translate] [♪ ♪ Buzzing] 2 00:00:07,070 --> 00:00:10,380 Quindi, per farvi conoscere quello che ho sullo schermo; 3 00:00:10,380 --> 00:00:12,710 è uno degli strumenti che abbiamo sviluppato durante l'estate; 4 00:00:12,710 --> 00:00:15,530 si chiama CS50 Spaces, 5 00:00:15,530 --> 00:00:18,860 ed è il nostro applicazioni collaborative di codifica 6 00:00:18,860 --> 00:00:20,180 che abbiamo intenzione di utilizzare nelle sezioni. 7 00:00:20,180 --> 00:00:22,470 E 'piuttosto fresco. 8 00:00:22,470 --> 00:00:26,040 Qualcuno di voi ha visto CS50 corsa ancora? 9 00:00:26,040 --> 00:00:29,760 Permettetemi di tirare che in un'altra scheda. 10 00:00:29,760 --> 00:00:33,440 Run.cs50.net 11 00:00:33,440 --> 00:00:36,230 Così 12 00:00:36,230 --> 00:00:39,700 se si va a run.cs50.net, 13 00:00:39,700 --> 00:00:43,030 si può vedere questo è un modo nel tuo browser per 14 00:00:43,030 --> 00:00:45,940 in realtà il codice - scrivere codice C, 15 00:00:45,940 --> 00:00:47,460 e quindi eseguirlo, 16 00:00:47,460 --> 00:00:50,960 in modo che sia lo compila, lo esegue, quindi restituisce l'output a voi, 17 00:00:50,960 --> 00:00:53,350 quindi questo è una specie di un modo intelligente per sperimentare 18 00:00:53,350 --> 00:00:56,060 con parte del codice che David va oltre a lezioni frontali 19 00:00:56,060 --> 00:00:58,640 e diamo a su di voi su insiemi di problemi 20 00:00:58,640 --> 00:01:01,900 senza avere di accendere l'apparecchio. 21 00:01:01,900 --> 00:01:04,489 >> Cosa fa Spazi che è diverso da quello 22 00:01:04,489 --> 00:01:07,450 se tornare a questa scheda, 23 00:01:07,450 --> 00:01:11,580 Spaces è CS50 di esecuzione, come si vede qui, 24 00:01:11,580 --> 00:01:15,380 ma se scorrere sopra e guardare l'altro lato della finestra, 25 00:01:15,380 --> 00:01:18,130 si vede a destra io sono l'unica persona in questo spazio, 26 00:01:18,130 --> 00:01:21,030 ma quello che ho intenzione di fare è chiedere voi ragazzi a partecipare a questo spazio con me 27 00:01:21,030 --> 00:01:24,590 e saremo tutti arrivare al codice nella stessa finestra piccola, 28 00:01:24,590 --> 00:01:26,070 parti di codice con l'altro, 29 00:01:26,070 --> 00:01:28,900 e parlare di differenze tra il nostro codice. 30 00:01:28,900 --> 00:01:31,530 Quindi è una specie di cosa cool - 31 00:01:31,530 --> 00:01:35,770 ad aderire, se volete visitare questo link qui in alto 32 00:01:35,770 --> 00:01:38,980 che ho messo in evidenza, 33 00:01:38,980 --> 00:01:53,860 si può semplicemente digitare apps.cs50.net/spaces/vqcspSnO. 34 00:01:53,860 --> 00:01:56,610 >> Va bene, allora per cominciare, 35 00:01:56,610 --> 00:01:59,720 Sto per darvi un po 'di un tour di questa. 36 00:01:59,720 --> 00:02:01,720 Faremo qualche codifica stupide piccole con essa in un primo momento, 37 00:02:01,720 --> 00:02:06,200 solo in modo che tutti si po 'un'idea di cosa vuol dire, 38 00:02:06,200 --> 00:02:09,000 ma quello che ho fatto - 39 00:02:09,000 --> 00:02:11,830 o quello che sto per fare è proprio qui - 40 00:02:11,830 --> 00:02:13,480 Vado a prendere il codice che ho scritto qui, 41 00:02:13,480 --> 00:02:15,800 che, come si vede in questo momento è vuota; 42 00:02:15,800 --> 00:02:17,090 non fa nulla. 43 00:02:17,090 --> 00:02:21,080 E 'solo piastra codice della caldaia, che chiameremo. 44 00:02:21,080 --> 00:02:23,820 Con un po 'di cose da fare commenti. 45 00:02:23,820 --> 00:02:27,850 Io vado a salvarlo premendo il pulsante Salva. 46 00:02:27,850 --> 00:02:30,190 E ciò che fa è 47 00:02:30,190 --> 00:02:34,400 evidenziato che qui brevemente - che la casella revisione verde salvataggio, 48 00:02:34,400 --> 00:02:37,570 e ora, se si cerca per me nello spazio, 49 00:02:37,570 --> 00:02:40,340 si fa clic su il mio nome, 50 00:02:40,340 --> 00:02:43,370 si può vedere che ho questa revisione proprio qui, 51 00:02:43,370 --> 00:02:45,490 e se si fa clic su tale revisione, 52 00:02:45,490 --> 00:02:48,240 sara caricare il codice nel vostro spazio, anche. 53 00:02:50,510 --> 00:02:54,160 >> Così ha caricato tutti che il codice nel loro spazio? 54 00:02:54,160 --> 00:02:57,810 Va bene, se non l'hai ancora, andare avanti e farlo, 55 00:02:57,810 --> 00:03:01,120 e poi quello che voglio voi ragazzi fare in questo poco a che fare-sezione 56 00:03:01,120 --> 00:03:05,940 è scrivere un po 'con printf su di te, 57 00:03:05,940 --> 00:03:08,310 così per esempio, vorrei scrivere 58 00:03:08,310 --> 00:03:12,270 printf ("Il mio nome è Nate"); 59 00:03:15,140 --> 00:03:17,700 e poi mi piacerebbe scrivere 60 00:03:17,700 --> 00:03:21,660 "Mi sono laureato nel 2009 61 00:03:21,660 --> 00:03:24,440 da Stanford " 62 00:03:26,050 --> 00:03:28,390 e mi piacerebbe sentir parlare 63 00:03:28,390 --> 00:03:30,270 che anno si è a scuola, 64 00:03:30,270 --> 00:03:33,910 se sei al college o alla scuola di business 65 00:03:33,910 --> 00:03:36,130 o un'altra scuola di Harvard, 66 00:03:36,130 --> 00:03:39,200 quello che si sta studiando se è ancora noto; 67 00:03:39,200 --> 00:03:41,290 se non si sa, questo è assolutamente cool. 68 00:03:41,290 --> 00:03:45,170 Non ho deciso fino a quando ero in ritardo nel mio secondo anno. 69 00:03:46,910 --> 00:03:49,210 e poi mi piacerebbe anche sapere 70 00:03:49,210 --> 00:03:51,610 pazzie vuoi dirmi o 71 00:03:51,610 --> 00:03:54,790 qualcosa sulla classe o semplicemente qualsiasi altra cosa. 72 00:03:56,930 --> 00:04:00,370 Quando hai finito di scrivere che con il vostro printf piccolo, 73 00:04:00,370 --> 00:04:03,480 se si risparmia la revisione o meglio 74 00:04:03,480 --> 00:04:06,080 prima di tutto che è possibile eseguire 75 00:04:06,080 --> 00:04:10,640 e che mostra esattamente quel che si desidera stampare, 76 00:04:14,050 --> 00:04:16,399 e poi se si va avanti e salvare tale revisione 77 00:04:16,399 --> 00:04:21,600 utilizzando il pulsante Salva modifiche, questo primo ragazzo poco più di qui, 78 00:04:24,080 --> 00:04:27,340 e faremo un pò passare attraverso e fare una piccola introduzione in quel modo. 79 00:04:27,340 --> 00:04:30,150 Così si dovrebbe basta premere il pulsante Play, 80 00:04:30,150 --> 00:04:32,550 che è qui in alto a sinistra, 81 00:04:32,550 --> 00:04:35,340 quindi questo tasto Play in alto a sinistra sarà 82 00:04:35,340 --> 00:04:39,050 invia il tuo codice di sconto al nostro server in cui viene compilato e quindi eseguire. 83 00:04:40,600 --> 00:04:43,300 Così che cosa è un pò pazzi per questo è 84 00:04:43,300 --> 00:04:46,550 questo codice in realtà non è in esecuzione sul computer; 85 00:04:46,550 --> 00:04:49,290 in realtà è stato inviato attraverso Internet. 86 00:04:49,290 --> 00:04:51,240 >> Come va, Charlotte? 87 00:04:51,240 --> 00:04:54,810 >> I - bene. Sto - Penso di essere 88 00:04:54,810 --> 00:04:57,330 avendo difficoltà che il risparmio 89 00:04:57,330 --> 00:05:00,530 sul server in modo tale che si può - io posso eseguire il programma. 90 00:05:02,090 --> 00:05:05,780 E poi quando provo a farlo funzionare, si dice che c'è un errore. 91 00:05:05,780 --> 00:05:08,850 Dichiarata come un virus, che non è più lì. 92 00:05:08,850 --> 00:05:11,860 Oh, vediamo, in grado di colpire Salva di nuovo? 93 00:05:11,860 --> 00:05:13,770 Lo vedo sullo schermo. 94 00:05:13,770 --> 00:05:15,120 Diritto >>, va bene, ed è quello che ho. 95 00:05:15,120 --> 00:05:19,430 E io non so perché non mi permette di farlo funzionare. 96 00:05:22,990 --> 00:05:24,990 Oh, va bene, mi dispiace. 97 00:05:27,930 --> 00:05:31,220 Può spiegare perché - cosa c'era di sbagliato - quello che non funzionava con esso? 98 00:05:31,220 --> 00:05:34,760 >> Già, perché non ho visto che c'era una riga in cui c'è ancora una variabile 99 00:05:34,760 --> 00:05:37,700 che non aveva dichiarato, che non ho intenzione per questo essere lì. 100 00:05:37,700 --> 00:05:38,730 Sì, perfetto! 101 00:05:38,730 --> 00:05:40,390 >> Ora, se lo salvo, penso che dovrebbe funzionare. 102 00:05:40,390 --> 00:05:42,970 Ora che l'hai salvato, funziona; impressionante. 103 00:05:42,970 --> 00:05:44,570 >> Quindi sì, come andiamo attraverso - 104 00:05:44,570 --> 00:05:46,690 così quello che stava succedendo, 105 00:05:46,690 --> 00:05:49,130 Sto solo andando a ripetere per la fotocamera. 106 00:05:49,130 --> 00:05:51,760 Quello che stava accadendo era che questa variabile s 107 00:05:51,760 --> 00:05:54,310 è stato lasciato dopo - Suppongo che tu cancellato alcune altre cose 108 00:05:54,310 --> 00:05:56,670 dove è dichiarato come, 109 00:05:56,670 --> 00:05:59,560 e così questo è stato gettare le cose fuori e non ti permette di farlo funzionare. 110 00:05:59,560 --> 00:06:02,540 Quindi questo è esattamente ciò che vogliamo fare nella sezione 111 00:06:02,540 --> 00:06:05,690 si sono persone che provare a scrivere diversi pezzi di codice, 112 00:06:05,690 --> 00:06:08,490 compilazione, vedere che cosa funziona, vedere ciò che non funziona, 113 00:06:08,490 --> 00:06:10,730 e poi un pò parlare di queste cose, perché questi sono i punti di intervento che 114 00:06:10,730 --> 00:06:12,850 Ho ancora incontrare, 115 00:06:12,850 --> 00:06:15,470 Ho ancora - che faccio un sacco di cose stupide per tutto il tempo, 116 00:06:15,470 --> 00:06:17,820 e io non so perché non funziona, 117 00:06:17,820 --> 00:06:22,960 quindi cerchiamo di tirare su la revisione di Charlotte 3, 118 00:06:23,980 --> 00:06:25,380 e noi lo esegue. 119 00:06:25,380 --> 00:06:28,950 >> Così, quando corro, ora che ho avuto il suo codice qui dentro, 120 00:06:28,950 --> 00:06:31,450 Posso ingrandire, premere il pulsante Run, 121 00:06:31,450 --> 00:06:33,680 caricamenti, costruisce esso, corre, 122 00:06:33,680 --> 00:06:36,980 dice che è stato eseguito correttamente, e se io scorrere verso il basso, 123 00:06:36,980 --> 00:06:39,440 vedere Charlotte è una junior Adams House, 124 00:06:39,440 --> 00:06:42,720 psicologia, secondaria in economia; impressionante. 125 00:06:42,720 --> 00:06:44,310 Grande di conoscerti! 126 00:06:44,310 --> 00:06:46,550 Awesome. 127 00:06:46,550 --> 00:06:49,670 Va bene, andare avanti, andiamo a Daniel, 128 00:06:49,670 --> 00:06:52,710 vai alla revisione 3, 129 00:06:52,710 --> 00:06:54,180 compilare, eseguire; 130 00:06:54,180 --> 00:06:56,680 perchè non ci racconti un po 'di te, Daniel? 131 00:06:56,680 --> 00:06:59,380 Chiamami Dan >>. 132 00:06:59,380 --> 00:07:01,920 Io vado a scuola di business di fronte a voi, 133 00:07:01,920 --> 00:07:05,020 e sono stato nei Marines prima di qui, 134 00:07:05,020 --> 00:07:08,020 e questo è tutto nuovo per me, in modo sì. 135 00:07:08,020 --> 00:07:11,060 Non sento male, ho 30 anni e non conosco nessuna di queste cose. 136 00:07:11,060 --> 00:07:13,800 Fantastico, grazie, Dan! 137 00:07:13,800 --> 00:07:17,300 Va bene, abbiamo ottenuto un altro Daniel. 138 00:07:17,300 --> 00:07:20,930 Si va da Daniel - vi presentarsi, Daniel? 139 00:07:20,930 --> 00:07:22,260 >> >> Certo, sono Daniele. 140 00:07:22,260 --> 00:07:24,330 Sono al secondo anno di Mather in questo momento. 141 00:07:24,330 --> 00:07:25,840 Mi sto concentrando sul governo, 142 00:07:25,840 --> 00:07:28,760 ma ho voluto prendere CS50 perché ho sentito ottime recensioni sulla classe 143 00:07:28,760 --> 00:07:30,750 e non ho mai provato prima di CS. 144 00:07:30,750 --> 00:07:34,680 Scorrere verso il basso qui e mostrare questo - cool. 145 00:07:36,330 --> 00:07:39,090 Passando, Jared. 146 00:07:39,090 --> 00:07:41,990 Come sta andando? 147 00:07:41,990 --> 00:07:43,430 Good >>, come stai? 148 00:07:43,430 --> 00:07:47,520 Come potete vedere, sono un concentratore filosofia junior Eliot, 149 00:07:47,520 --> 00:07:50,260 originario della California meridionale, 150 00:07:50,260 --> 00:07:53,100 e io sono interessato a prendere CS50 perché mi piace la logica di esso, 151 00:07:53,100 --> 00:07:57,420 e sembra davvero bello fare le cose sul computer, quindi. 152 00:07:57,420 --> 00:07:59,570 Impressionante, dove nel sud della California sei? 153 00:07:59,570 --> 00:08:02,340 >> A circa un'ora da [incomprensibile], una piccola città [incomprensibile]. 154 00:08:02,340 --> 00:08:04,850 Oh, si ', mio ​​padre e' da Redlands. 155 00:08:04,850 --> 00:08:07,060 Cool stuff. 156 00:08:07,060 --> 00:08:12,130 >> Va bene, Jimmy, come va, Jimmy? 157 00:08:12,130 --> 00:08:15,130 Good >>, come stai? 158 00:08:15,130 --> 00:08:16,040 Facendo molto bene! 159 00:08:16,040 --> 00:08:17,710 Parlaci di te. 160 00:08:17,710 --> 00:08:20,840 >> Sono una matricola, e io non sono del tutto sicuro di quello che sto laureando in 161 00:08:20,840 --> 00:08:22,820 ma io sono un pò appoggiato verso l'economia. 162 00:08:22,820 --> 00:08:25,680 Come Daniele prima di me, non ho mai fatto alcun CS, ma suona un pò fresco. 163 00:08:25,680 --> 00:08:28,120 Sono originario di Chicago. 164 00:08:28,120 --> 00:08:31,640 Awesome. Allora date un'occhiata qui la sua stampa. 165 00:08:31,640 --> 00:08:34,630 Volevo chiederti, questo ha fatto stampare come ti aspettavi? 166 00:08:34,630 --> 00:08:37,650 >> No, ho dimenticato di stampare una nuova linea. 167 00:08:37,650 --> 00:08:41,270 In realtà ho dimenticato che quando stavo scrivendo la mia cosa 168 00:08:41,270 --> 00:08:43,090 per la prima volta, anche. 169 00:08:43,090 --> 00:08:46,330 E 'una specie di dolore per ricordare di mettere quelle in mano. 170 00:08:46,330 --> 00:08:50,560 Sarebbe bello se è sufficiente sapere che quello che volevi. 171 00:08:50,560 --> 00:08:53,630 >> Va bene, Kelly. 172 00:08:53,630 --> 00:08:56,050 Wow, abbiamo 2 Kellys, 2 Daniels, 2 Kellys. 173 00:08:56,050 --> 00:09:00,490 Così Kelly - si va da Kelly Ren? 174 00:09:00,490 --> 00:09:03,870 Ok, fantastico. 175 00:09:03,870 --> 00:09:07,270 O Kelly, voglio dire. 176 00:09:07,270 --> 00:09:10,260 >> Quindi sì, quindi sono Kelly. 177 00:09:10,260 --> 00:09:12,930 Sono al secondo anno di Pfoho. 178 00:09:12,930 --> 00:09:17,000 Ho ricevuto una e-mail che ho ancora oggi hanno 7 settimane per dichiarare la mia concentrazione, 179 00:09:17,000 --> 00:09:20,940 quindi sto cercando di non pensarci, 180 00:09:20,940 --> 00:09:24,090 e mi piace da forno, in esecuzione e Craisins. 181 00:09:24,090 --> 00:09:29,110 Non ho esperienza con la maggior parte di CS; 182 00:09:29,110 --> 00:09:32,700 Mi ha insegnato a costruire siti web quando ero molto giovane, 183 00:09:32,700 --> 00:09:35,750 ma penso che probabilmente imparato da solo sbagliato un sacco di volte. 184 00:09:35,750 --> 00:09:39,260 Spero di imparare un po 'di più 185 00:09:39,260 --> 00:09:41,450 e - sì. 186 00:09:41,450 --> 00:09:44,100 >> Awesome; bene, grazie. 187 00:09:44,100 --> 00:09:47,190 Andiamo all'altro Kelly; 188 00:09:47,190 --> 00:09:48,880 Non ho nulla - hai detto qualcosa qui? 189 00:09:48,880 --> 00:09:51,880 >> [Incomprensibile] 190 00:09:51,880 --> 00:09:56,180 Eccolo! 191 00:09:56,180 --> 00:09:58,120 Sweet! 192 00:09:58,120 --> 00:10:01,400 >> Va bene, quindi sono Kelly. 193 00:10:01,400 --> 00:10:03,980 Sono un studente del primo anno di laurea. 194 00:10:03,980 --> 00:10:05,560 Sono laureando in Mente, cervello, e l'istruzione. 195 00:10:05,560 --> 00:10:07,940 Mi sono laureato in Franklin & Marshall College nel 2008 196 00:10:07,940 --> 00:10:10,840 con specializzazione in psicologia e sociologia 197 00:10:10,840 --> 00:10:13,120 e un minore in francese. 198 00:10:13,120 --> 00:10:15,330 Sto prendendo CS50 199 00:10:15,330 --> 00:10:18,080 perché sono interessati ad avere un dottorato di ricerca in Neuroscienze 200 00:10:18,080 --> 00:10:21,220 e sento che questo mi aiuterà a capire le tecnologie utilizzate. 201 00:10:21,220 --> 00:10:23,150 Awesome. 202 00:10:26,980 --> 00:10:29,390 Passando, Mikaela. 203 00:10:29,390 --> 00:10:31,640 E 'la corretta pronuncia? 204 00:10:31,640 --> 00:10:32,990 Ok, fantastico. 205 00:10:32,990 --> 00:10:34,640 >> >> Sono Mikhaila. 206 00:10:34,640 --> 00:10:36,870 Sono al secondo anno di Kirkland House, 207 00:10:36,870 --> 00:10:39,950 e mi sto concentrando in Ingegneria Meccanica. 208 00:10:39,950 --> 00:10:43,180 Mi piace molto andare in bicicletta, una moto costruita questa estate. 209 00:10:43,180 --> 00:10:46,140 Sto prendendo CS, in realtà, 210 00:10:46,140 --> 00:10:48,350 come requisito di concentrazione, 211 00:10:48,350 --> 00:10:52,550 ma sai, penso che sia ancora sorta fresco della classe di ingegneria. 212 00:10:52,550 --> 00:10:55,150 Awesome - hai costruito una moto di questa estate? 213 00:10:55,150 --> 00:10:56,730 Sì >>. 214 00:10:56,730 --> 00:10:58,900 Wow, come il telaio e tutto il resto? 215 00:10:58,900 --> 00:11:00,120 >> Uh-hunh (affermativa). 216 00:11:00,120 --> 00:11:01,530 Wow, è davvero cool. 217 00:11:01,530 --> 00:11:06,370 >> [Incomprensibile off-camera chat] 218 00:11:06,370 --> 00:11:10,000 [Risate] 219 00:11:12,640 --> 00:11:14,200 Si ', e' passato tanto tempo. 220 00:11:14,200 --> 00:11:16,730 Non si sa mai, vero? 221 00:11:16,730 --> 00:11:19,420 Beh, fresco, grazie anche, Mikhaila. 222 00:11:19,420 --> 00:11:21,390 >> Va bene, Missy. 223 00:11:21,390 --> 00:11:23,280 >> Mi chiamo Missy, io sono una matricola, 224 00:11:23,280 --> 00:11:25,500 in modo che significa che non so niente! 225 00:11:25,500 --> 00:11:29,180 Voglio concentrarmi in astrofisica. 226 00:11:29,180 --> 00:11:31,220 In CS50, 227 00:11:31,220 --> 00:11:33,350 Mi sento come sarà sicuramente di aiuto in questo. 228 00:11:33,350 --> 00:11:37,750 Un fatto strano per me è che io sono un vigile del fuoco a livello nazionale certificata. 229 00:11:37,750 --> 00:11:39,960 Wow! 230 00:11:39,960 --> 00:11:42,440 Come è successo? 231 00:11:42,440 --> 00:11:45,570 >> Ho frequentato un'accademia 232 00:11:45,570 --> 00:11:49,000 e ha attraversato l'inferno per un sacco di settimane 233 00:11:49,000 --> 00:11:51,200 e ottenuto la mia certificazione. 234 00:11:51,200 --> 00:11:54,090 Wow, complimenti! 235 00:11:54,090 --> 00:11:57,280 Che non è cosa da poco, di sicuro. 236 00:11:57,280 --> 00:11:59,070 Bene, ora che mi fare. 237 00:11:59,070 --> 00:12:01,290 Sono io quella successiva nella riga. 238 00:12:01,290 --> 00:12:04,510 Sto - eseguirlo. 239 00:12:04,510 --> 00:12:07,580 >> Quindi, il mio nome è Nate. 240 00:12:07,580 --> 00:12:11,160 Ero classe del 2009 a Stanford. 241 00:12:11,160 --> 00:12:13,840 Ero un sistemi simbolici più importanti, 242 00:12:13,840 --> 00:12:17,370 che è simile al, Mente Cervello, concentrazione Behavior qui, 243 00:12:17,370 --> 00:12:19,300 ma è una specie di mix di 244 00:12:19,300 --> 00:12:22,350 informatica, la linguistica, la psicologia e la filosofia. 245 00:12:22,350 --> 00:12:26,600 Tipo di - sì, un sacco di cose strane, ma è stato fantastico, 246 00:12:26,600 --> 00:12:29,880 e poi ho fatto il mio master in Computer Science anche lì. 247 00:12:29,880 --> 00:12:33,250 Quindi, io sono nuovo a Harvard quest'anno. 248 00:12:33,250 --> 00:12:35,750 Volevo davvero entrare in insegnamento. 249 00:12:35,750 --> 00:12:39,860 Ho passato gli ultimi 4 anni a Stanford TA-zione classi di Computer Science 250 00:12:39,860 --> 00:12:43,370 e così David fammi venire su, 251 00:12:43,370 --> 00:12:45,550 e saro 'dare una mano con CS50, 252 00:12:45,550 --> 00:12:47,890 in modo da fare questo a tempo pieno, io non sono a scuola grad. 253 00:12:47,890 --> 00:12:50,330 E 'stato divertente. 254 00:12:50,330 --> 00:12:53,130 Spero che continueremo a essere divertente, io sono sicuro che lo farà. 255 00:12:53,130 --> 00:12:56,040 >> Va bene, Sam. 256 00:13:01,910 --> 00:13:05,470 >> Il mio nome è Sam, io sono al secondo anno al college, nel diritto particolare. 257 00:13:05,470 --> 00:13:10,110 Il mio principale sarà la storia della scienza, probabilmente, e VES secondaria, 258 00:13:10,110 --> 00:13:13,240 e il mio colore preferito è il giallo. 259 00:13:18,790 --> 00:13:21,100 Non c'è bisogno di giudicare o altro, ma si tratta di un bel colore! 260 00:13:21,100 --> 00:13:24,780 E Stella. 261 00:13:24,780 --> 00:13:26,980 >> Ciao, sono Stella, io sono una matricola a Grays. 262 00:13:26,980 --> 00:13:30,070 Non ho idea di quello che ho concentrato in ancora, 263 00:13:30,070 --> 00:13:32,500 CS50 quindi era solo tipo di casuale, 264 00:13:32,500 --> 00:13:34,220 che è interessante. 265 00:13:34,220 --> 00:13:36,080 Una curiosità, Jimmy è stato il primo amico di Harvard mio, 266 00:13:36,080 --> 00:13:38,360 perché siamo entrambi di Chicago. 267 00:13:38,360 --> 00:13:42,450 Cool, e Grace - che dovrebbe essere quello veramente bello, vero? 268 00:13:42,450 --> 00:13:45,220 >> Ho pensato che [incomprensibile]. 269 00:13:45,220 --> 00:13:46,690 Oh, si '. 270 00:13:46,690 --> 00:13:51,210 [Incomprensibile / off-camera chat] 271 00:13:51,210 --> 00:13:54,420 Va bene, io sto ancora imparando, ancora imparando. 272 00:13:54,420 --> 00:13:57,800 >> Quindi abbiamo qualcosa d'altro che una specie di interessante. 273 00:13:59,600 --> 00:14:02,870 Si ', mi chiedo solo, hai un'idea che sta succedendo qui? 274 00:14:02,870 --> 00:14:05,890 Tu sai come interpretare questo? 275 00:14:05,890 --> 00:14:13,340 >> Avrei dovuto mettere il punto e virgola dopo ogni singola riga. 276 00:14:13,340 --> 00:14:16,370 E 'una specie di dolore. 277 00:14:16,370 --> 00:14:19,100 A volte questi punti e virgola può essere un vero e proprio dolore da rintracciare. 278 00:14:19,100 --> 00:14:21,420 Così si scopre che 279 00:14:21,420 --> 00:14:22,820 il programma speciale che stiamo usando quest'anno 280 00:14:22,820 --> 00:14:26,670 compilare il codice C è chiamato Clang, 281 00:14:26,670 --> 00:14:29,460 e il motivo per cui hanno iniziato ad utilizzare Clang quest'anno - 282 00:14:29,460 --> 00:14:32,030 perché non abbiamo usato il programma in passato; 283 00:14:32,030 --> 00:14:35,710 abbiamo usato un altro chiamato GCC che è molto popolare - 284 00:14:35,710 --> 00:14:38,420 Clang dà effettivamente si messaggi di errore che senso. 285 00:14:38,420 --> 00:14:41,420 Questo dice "previsto ';' dopo l'espressione", 286 00:14:41,420 --> 00:14:45,260 e si dice anche che l'espressione dopo il quale si aveva bisogno di un punto e virgola. 287 00:14:45,260 --> 00:14:47,830 Quindi lo stai fissando? 288 00:14:47,830 --> 00:14:48,930 >> Si, in questo momento. 289 00:14:48,930 --> 00:14:52,040 Impressionante, me lo faccia sapere e noi provvederemo a tirarlo verso l'alto, e noi lo esegue. 290 00:14:52,040 --> 00:14:55,830 Ma sì, mettere questi punti e virgola in è una specie di dolore. 291 00:14:55,830 --> 00:14:59,580 >> Ho riparato, quindi penso che dovrebbe funzionare. 292 00:14:59,580 --> 00:15:02,760 Awesome - revisione 3. 293 00:15:02,760 --> 00:15:05,250 Che sembra. 294 00:15:05,250 --> 00:15:08,580 Bene, così ora se lo si esegue, 295 00:15:08,580 --> 00:15:11,020 ci va. 296 00:15:11,020 --> 00:15:13,830 Cool stuff. 297 00:15:13,830 --> 00:15:15,340 >> Bene. 298 00:15:15,340 --> 00:15:18,230 Quindi grazie per farlo. 299 00:15:18,230 --> 00:15:20,210 E 'fantastico per incontrare voi ragazzi. 300 00:15:20,210 --> 00:15:22,880 Quello che faremo adesso è passare il bit successivo piccolo 301 00:15:22,880 --> 00:15:24,740 genere di immergersi nei problemi di sezione 302 00:15:24,740 --> 00:15:27,550 che provengono dal problema posto da questa settimana 303 00:15:27,550 --> 00:15:29,920 e lo faremo per la maggior parte delle sezioni 304 00:15:29,920 --> 00:15:32,110 per il resto del termine, 305 00:15:32,110 --> 00:15:35,580 e poi faremo risparmiare gli ultimi 15, 20 minuti o giù di lì 306 00:15:35,580 --> 00:15:38,490 per parlare del problema si è posto 307 00:15:38,490 --> 00:15:41,420 e poi solo altre domande si ha, in generale, sulla classe. 308 00:15:43,380 --> 00:15:45,670 Detto questo, ciò che veramente voglio fare 309 00:15:45,670 --> 00:15:49,390 si hanno tutti partecipato 310 00:15:49,390 --> 00:15:51,500 con la roba Spaces, 311 00:15:51,500 --> 00:15:53,500 gettando nel codice, gettando di suggestioni, 312 00:15:53,500 --> 00:15:56,500 e parlare di quando le cose piace questa rottura 313 00:15:56,500 --> 00:15:58,360 o non funzionano, solo perché queste sono cose che 314 00:15:58,360 --> 00:16:00,870 So che mi sono imbattuto in 315 00:16:00,870 --> 00:16:03,180 quando ho iniziato a codificare, 316 00:16:03,180 --> 00:16:05,490 e sono stati davvero un pò frustrante, a volte 317 00:16:05,490 --> 00:16:08,690 perché se è come 2:00 prima serie problema è dovuto, 318 00:16:08,690 --> 00:16:11,330 così - solo per la divulgazione, 319 00:16:11,330 --> 00:16:14,590 Non ho iniziato la programmazione fino a quando ero al secondo anno al college. 320 00:16:14,590 --> 00:16:17,360 Era un po 'questo strano, cosa sconosciuta 321 00:16:17,360 --> 00:16:20,360 che ho sentito è stato un pò fresco 322 00:16:20,360 --> 00:16:23,590 e ho anche sentito che potrebbe essere un vero e proprio dolore nel culo 323 00:16:23,590 --> 00:16:27,610 se si perde un punto e virgola e questo è l'unico errore mantenere il vostro programma di funzionare 324 00:16:27,610 --> 00:16:30,890 e ti impedisce di andare a dormire, 325 00:16:30,890 --> 00:16:32,650 quindi sicuramente, 326 00:16:32,650 --> 00:16:34,020 se avete domande del genere, 327 00:16:34,020 --> 00:16:37,060 se avete problemi del genere, me lo faccia sapere, 328 00:16:37,060 --> 00:16:40,050 perché voglio rendere questa una buona esperienza per voi ragazzi. 329 00:16:40,050 --> 00:16:44,620 >> Quindi voi ragazzi hanno tutto scaricato il problema posto ancora? 330 00:16:44,620 --> 00:16:47,160 Un po 'sapere dove si trova? Va bene. 331 00:16:47,160 --> 00:16:51,490 Quindi andremo a cs50.net, perché io non ce l'ho per questo motivo, 332 00:16:51,490 --> 00:16:54,110 tirare le serie di problemi, 333 00:16:54,110 --> 00:16:57,940 tirare insieme il problema 2, e vedremo l'edizione standard di oggi. 334 00:16:57,940 --> 00:17:01,190 Ci tirare su le specifiche qui. 335 00:17:02,640 --> 00:17:04,420 Scorrere verso il basso. 336 00:17:06,790 --> 00:17:11,109 Quindi stiamo per iniziare a guardare a questa sezione di domande. 337 00:17:14,069 --> 00:17:16,710 Avete visto questi ragazzi pantaloncini ancora? 338 00:17:16,710 --> 00:17:18,329 Va bene. 339 00:17:18,329 --> 00:17:21,329 Quindi ci sono corti sul loop, 340 00:17:21,329 --> 00:17:24,700 che è fatto da Tommy, uno dei compagni di insegnamento la testa. 341 00:17:24,700 --> 00:17:27,230 C'è uno scopo, 342 00:17:27,230 --> 00:17:30,530 Credo che fatto da un altro collega insegnamento di nome David 343 00:17:30,530 --> 00:17:33,400 e poi uno su Caesar Cipher fatto anche da David. 344 00:17:33,400 --> 00:17:35,550 Sono piuttosto fresco. 345 00:17:35,550 --> 00:17:37,770 Sono stato a guardare voi i pantaloncini fino ad ora? 346 00:17:37,770 --> 00:17:39,270 Come va fossero stati? 347 00:17:39,270 --> 00:17:41,490 Utile? Ok, buono a sapersi. 348 00:17:41,490 --> 00:17:44,210 Se non lo sono, si può dire così. 349 00:17:46,290 --> 00:17:49,870 Ma prima di farlo, 350 00:17:49,870 --> 00:17:52,600 voi ragazzi hanno visto anche questi interrogativi 351 00:17:52,600 --> 00:17:55,430 a tutti? 352 00:17:55,430 --> 00:17:57,480 >> Parliamo di questo un po '. 353 00:17:57,480 --> 00:18:00,600 Proprio per questo abbiamo introdotto nel corso degli ultime settimane 354 00:18:00,600 --> 00:18:02,480 nella lezione 355 00:18:02,480 --> 00:18:04,910 un numero di cicli differenti. 356 00:18:04,910 --> 00:18:06,140 C'è il ciclo for, 357 00:18:06,140 --> 00:18:09,570 il ciclo while, e poi il ciclo do-while, 358 00:18:09,570 --> 00:18:13,100 e in conferenza, abbiamo parlato molto di 359 00:18:13,100 --> 00:18:16,010 come quei cicli sono tutti 360 00:18:16,010 --> 00:18:18,320 abbastanza simile in molti modi, 361 00:18:18,320 --> 00:18:21,210 e si può fare molto di le stesse cose con un ciclo while 362 00:18:21,210 --> 00:18:23,260 che è possibile con un ciclo per. 363 00:18:23,260 --> 00:18:26,300 Devi solo tipo di utilizzare le giuste combinazioni di variabili e così via. 364 00:18:26,300 --> 00:18:28,680 e così davvero 365 00:18:28,680 --> 00:18:31,200 la distinzione reale tra tutti i loop è che 366 00:18:31,200 --> 00:18:33,620 a volte sono più utili 367 00:18:33,620 --> 00:18:36,930 usarli contemporaneamente di un altro momento. 368 00:18:36,930 --> 00:18:39,340 >> Così, per esempio, 369 00:18:39,340 --> 00:18:42,260 il ciclo while diversa da una do-while. 370 00:18:42,260 --> 00:18:45,680 Ha tutti sentono come se avessero una buona maniglia quando 371 00:18:45,680 --> 00:18:48,650 un ciclo do-while è più 372 00:18:48,650 --> 00:18:50,990 utile o qual è la differenza? 373 00:18:50,990 --> 00:18:53,410 >> Penso che la differenza è un ciclo do-while 374 00:18:53,410 --> 00:18:56,960 corre - Non so bene cosa sia la terminologia, 375 00:18:56,960 --> 00:18:59,750 ma la serie di funzioni all'interno del ciclo. 376 00:18:59,750 --> 00:19:02,020 Essi automaticamente - fa le sue piste di almeno 377 00:19:02,020 --> 00:19:05,390 prima di controllare la condizione, o il ciclo while solo si esegue quando 378 00:19:05,390 --> 00:19:08,290 funziona continuamente - se la condizione è soddisfatta. 379 00:19:08,290 --> 00:19:11,010 Sì, ha senso? 380 00:19:11,010 --> 00:19:14,200 >> Diamo un'occhiata a un po 'di codice. 381 00:19:14,200 --> 00:19:16,930 Quindi, solo per ripetere la domanda, 382 00:19:16,930 --> 00:19:19,230 o la risposta, un po '; 383 00:19:19,230 --> 00:19:22,050 la risposta è stata che 384 00:19:22,050 --> 00:19:25,850 un ciclo while controlla per vedere se la condizione 385 00:19:25,850 --> 00:19:27,440 che si specifica è soddisfatta 386 00:19:27,440 --> 00:19:31,320 prima di eseguire il corpo del ciclo per la prima volta, 387 00:19:31,320 --> 00:19:35,000 considerando che il ciclo do-while eseguirà automaticamente il corpo del ciclo, 388 00:19:35,000 --> 00:19:38,450 è ciò che si chiama - è strano terminologia, 389 00:19:38,450 --> 00:19:41,460 ma se mai dire qualcosa che non ha senso, me lo faccia sapere - 390 00:19:41,460 --> 00:19:45,360 il corpo del ciclo è quella roba che si mette tra le parentesi graffe. 391 00:19:45,360 --> 00:19:47,840 E in un ciclo do-while, 392 00:19:47,840 --> 00:19:50,220 che il corpo si esegue almeno una volta, 393 00:19:50,220 --> 00:19:54,460 e quindi la condizione viene verificata prima di eseguire ogni volta successiva. 394 00:19:54,460 --> 00:19:56,580 >> Quindi, in realtà, Sam, 395 00:19:56,580 --> 00:20:00,820 ti dispiace scrittura di un semplice ciclo while 396 00:20:00,820 --> 00:20:02,840 negli spazi? 397 00:20:02,840 --> 00:20:05,600 >> Come si fa un po 'come 398 00:20:05,600 --> 00:20:07,060 fare un nuovo ...? 399 00:20:07,060 --> 00:20:09,220 Ho solo cancellare tutto ciò che avete dentro. 400 00:20:09,220 --> 00:20:11,300 Sì, basta cancellare. 401 00:20:11,300 --> 00:20:14,510 >> Beh, credo che sto avendo questo - 402 00:20:14,510 --> 00:20:16,640 quale vuoi, un po ', o vuoi ...? 403 00:20:16,640 --> 00:20:19,350 Sì, basta fare un po 'vero, stampare qualcosa. 404 00:20:21,050 --> 00:20:23,140 E vediamo. 405 00:20:23,140 --> 00:20:25,850 Alessandro, mi resi conto che non hai mai presentato. 406 00:20:25,850 --> 00:20:27,510 >> Oh, va bene. 407 00:20:27,510 --> 00:20:30,760 Ti - si può codificare un ciclo do-while per noi? 408 00:20:30,760 --> 00:20:32,520 >> Si ', ci proverò. 409 00:20:32,520 --> 00:20:34,370 Va bene, dobbiamo solo tirare questi sullo schermo, 410 00:20:34,370 --> 00:20:38,240 in modo che tipo di avere una maniglia su quali siano le differenze. 411 00:20:38,240 --> 00:20:41,280 >> Quindi, ecco quello che Sam ha fatto. 412 00:20:41,280 --> 00:20:44,460 Ha un numero intero chiamato i 413 00:20:44,460 --> 00:20:47,480 che lui è inizializzato a 17. 414 00:20:47,480 --> 00:20:51,570 Poi dice while (int i = 17) 415 00:20:51,570 --> 00:20:54,230 printf ("Il mio nome è Sam."); 416 00:20:54,230 --> 00:20:57,300 Che cosa succede quando si esegue questo codice? 417 00:20:57,300 --> 00:21:00,340 C'è un errore, l'errore che cosa dice? 418 00:21:00,340 --> 00:21:02,890 Parliamoci chiaro tirare su e parlarne. 419 00:21:02,890 --> 00:21:05,040 È verificato un errore, si dice. 420 00:21:05,040 --> 00:21:07,400 Facciamo scorrere verso il basso. 421 00:21:07,400 --> 00:21:09,460 Così ci ha dato questo errore, e ha detto, 422 00:21:09,460 --> 00:21:12,690 "Ehi, mi aspettavo una espressione." 423 00:21:12,690 --> 00:21:16,180 E 'un po' criptico. 424 00:21:19,160 --> 00:21:23,140 Sì, così esattamente - e di nuovo, 425 00:21:23,140 --> 00:21:27,140 ci sarà un altro piccolo bug che ci cattura in un solo secondo. 426 00:21:27,140 --> 00:21:31,800 Ma questa è un'altra di quelle cose strane tipo di terminologia, 427 00:21:31,800 --> 00:21:36,150 quindi questo int i = 17 428 00:21:36,150 --> 00:21:39,290 non è un'espressione. 429 00:21:39,290 --> 00:21:41,220 Che sembra che sta facendo è che è 430 00:21:41,220 --> 00:21:43,410 dichiarando un intero ho chiamato 431 00:21:43,410 --> 00:21:45,540 e se impostato a pari a 17 432 00:21:45,540 --> 00:21:48,780 o, piuttosto, mettendo 17 in int che ho chiamato. 433 00:21:50,560 --> 00:21:53,350 E questo non ha senso 434 00:21:53,350 --> 00:21:55,790 nel contesto di questo ciclo while. 435 00:21:55,790 --> 00:21:58,190 E ha senso, come vedremo, 436 00:21:58,190 --> 00:22:01,250 nel contesto di un ciclo for, in quanto per le dichiarazioni ciclo do cominciare 437 00:22:01,250 --> 00:22:05,800 con quello per int i è uguale a qualcosa 438 00:22:05,800 --> 00:22:07,830 e continua. 439 00:22:07,830 --> 00:22:09,500 >> Quindi hai fatto - 440 00:22:09,500 --> 00:22:12,630 risolvere un problema, va bene. 441 00:22:12,630 --> 00:22:15,270 Qui si va, impressionante. 442 00:22:15,270 --> 00:22:17,920 Così ora le cose sembrano un po 'diverso. 443 00:22:17,920 --> 00:22:19,030 Un paio di cose sono cambiate. 444 00:22:19,030 --> 00:22:21,300 Ci può dire che cosa le cose sono cambiate? 445 00:22:21,300 --> 00:22:24,950 >> Ho preso la int, quindi non c'è alcuna dichiarazione [incomprensibile] invece di un incarico. 446 00:22:24,950 --> 00:22:28,770 L'unico segno di uguale, ho messo due segni di uguale, il che significa un pari. 447 00:22:28,770 --> 00:22:30,560 Awesome. 448 00:22:30,560 --> 00:22:33,320 Sì, così quello che ha fatto è stato Sam tirò fuori la int 449 00:22:33,320 --> 00:22:35,770 che era proprio qui in precedenza, 450 00:22:35,770 --> 00:22:39,340 quindi se mi limito a guardare a questo - questo è quello che era prima, ha detto int, 451 00:22:39,340 --> 00:22:41,970 che le era stato dichiarato - quindi abbiamo preso il tipo. 452 00:22:41,970 --> 00:22:44,710 Ci sono int, char, string, a breve, 453 00:22:44,710 --> 00:22:47,380 questi sono chiamati tipi. 454 00:22:47,380 --> 00:22:49,510 Così si ha il tipo 455 00:22:49,510 --> 00:22:51,580 e poi in precedenza, 456 00:22:51,580 --> 00:22:54,190 aveva solo il singolo segno di uguale 457 00:22:54,190 --> 00:22:57,300 e quello che ha detto è stato problematico per questo è stato 458 00:22:57,300 --> 00:22:59,580 quando hai 1 segno di uguale, 459 00:22:59,580 --> 00:23:01,780 questo è un operatore di assegnazione. 460 00:23:01,780 --> 00:23:04,930 Questo non prova o meno 2 cose sono uguali. 461 00:23:04,930 --> 00:23:07,920 Questo è in realtà qualcosa di impostazione pari a qualcosa. 462 00:23:07,920 --> 00:23:11,110 Stiamo mettendo il numero 17 nella variabile i. 463 00:23:11,110 --> 00:23:13,850 Quindi, per fare questo tipo di confronto, 464 00:23:13,850 --> 00:23:16,430 è necessario utilizzare il doppio uguale, 465 00:23:16,430 --> 00:23:19,640 che è una specie di una cosa strana 466 00:23:19,640 --> 00:23:22,760 ma è un errore abbastanza comune. 467 00:23:23,980 --> 00:23:27,830 Quindi un'altra cosa farò notare, se non ti dispiace, 468 00:23:27,830 --> 00:23:30,610 è che in 469 00:23:30,610 --> 00:23:33,210 la nostra funzione qui a int main, 470 00:23:33,210 --> 00:23:36,740 si vede che il corpo della nostra funzione 471 00:23:36,740 --> 00:23:39,810 è compensato dalla sinistra 472 00:23:39,810 --> 00:23:42,400 da 4 spazi o una scheda. 473 00:23:42,400 --> 00:23:44,730 La ragione per cui lo facciamo 474 00:23:44,730 --> 00:23:47,000 è solo per migliorare la leggibilità. 475 00:23:47,000 --> 00:23:51,620 Come si può vedere in loop mentre Sam è qui, 476 00:23:51,620 --> 00:23:53,120 egli non trattino a tutti, 477 00:23:53,120 --> 00:23:55,390 e che non influenza la funzionalità del codice. 478 00:23:55,390 --> 00:23:57,860 Verrà eseguito esattamente la stessa. 479 00:23:57,860 --> 00:24:00,950 >> Così, per esempio, se si arriva fino in cima qui 480 00:24:00,950 --> 00:24:02,680 e premete il nostro pulsante Play, intende costruire, 481 00:24:02,680 --> 00:24:04,470 sara eseguirlo, 482 00:24:04,470 --> 00:24:06,700 e che cosa succederà? 483 00:24:06,700 --> 00:24:08,360 Perché ancora dire in esecuzione? 484 00:24:08,360 --> 00:24:10,560 >> Perché ci continuano a ripetere hi. 485 00:24:10,560 --> 00:24:12,900 Esattamente, e perché continuano a ripetere hi? 486 00:24:12,900 --> 00:24:15,850 Poiché l'intero >> non cambia mai, quindi è sempre 17. 487 00:24:15,850 --> 00:24:18,030 Sì, esattamente, in modo da 488 00:24:18,030 --> 00:24:20,970 vediamo, dopo - mi ricordano il tuo nome? 489 00:24:20,970 --> 00:24:24,020 Jimmy. Così Jimmy ha detto che 490 00:24:24,020 --> 00:24:27,340 la ragione per cui questo continua a ripetere ad alta più e più volte 491 00:24:27,340 --> 00:24:30,510 è perché questa condizione è sempre vera. 492 00:24:30,510 --> 00:24:33,270 Non abbiamo mai cambiare il valore di i. 493 00:24:33,270 --> 00:24:36,170 Non abbiamo mai modificare il contenuto di ciò che è memorizzato in quella variabile. 494 00:24:36,170 --> 00:24:39,180 Quindi a questo punto abbiamo ottenuto questo errore 495 00:24:39,180 --> 00:24:42,170 il programma di uscita generato troppo, 496 00:24:42,170 --> 00:24:45,100 e se scorrere verso il basso e il tipo di sguardo a cosa sta succedendo qui, 497 00:24:45,100 --> 00:24:49,160 si può vedere che si tratta di hi, hi, hi, hi, hi, hi, hi fino in fondo. 498 00:24:49,160 --> 00:24:51,200 Awesome. 499 00:24:51,200 --> 00:24:53,750 >> Così sorta di nuovo al punto di partenza 500 00:24:53,750 --> 00:24:57,020 che avendo il rientro qui 501 00:24:57,020 --> 00:25:00,110 nel corpo del ciclo while non pregiudica nulla. 502 00:25:00,110 --> 00:25:03,050 Il programma ancora correva bene. 503 00:25:03,050 --> 00:25:06,790 In genere per lo stile buona - 504 00:25:06,790 --> 00:25:10,210 e questo è qualcosa che cerchiamo nei vostri set di problemi - 505 00:25:10,210 --> 00:25:13,930 vi chiediamo di rientro questo 4 spazi, che si può fare 506 00:25:13,930 --> 00:25:16,440 semplicemente premendo il tasto Tab 507 00:25:16,440 --> 00:25:18,860 oppure manualmente mettendo in 4 spazi stessi. 508 00:25:21,880 --> 00:25:25,050 Cool, va bene quindi cerchiamo di tornare indietro e guardare 509 00:25:25,050 --> 00:25:30,460 Alessandro do-while. 510 00:25:30,460 --> 00:25:32,980 Solo un pò >> avendo un po 'di problemi. 511 00:25:32,980 --> 00:25:34,390 Ok, cerchiamo di lavorare attraverso di essa. 512 00:25:34,390 --> 00:25:36,400 Va bene? 513 00:25:36,400 --> 00:25:37,430 Sì >>. 514 00:25:37,430 --> 00:25:39,200 >> Ok, ci siamo. 515 00:25:39,200 --> 00:25:41,010 Questo è il codice che Alexander ha scritto. 516 00:25:41,010 --> 00:25:43,410 Non si va da Alex - va bene. 517 00:25:43,410 --> 00:25:46,380 Quindi, ecco il codice che Alex ha scritto. 518 00:25:46,380 --> 00:25:50,500 Quindi, abbiamo avuto la nostra dichiarazione di principale proprio qui, 519 00:25:50,500 --> 00:25:54,410 e poi abbiamo ottenuto questa variabile intera ho chiamato 520 00:25:54,410 --> 00:25:57,320 essere stato dichiarato proprio qui. 521 00:25:57,320 --> 00:26:01,060 Abbiamo una dichiarazione do 522 00:26:01,060 --> 00:26:04,600 e poi il corpo di nuovo con questi apparecchi, 523 00:26:04,600 --> 00:26:06,520 quindi questo è il corpo del do-while - 524 00:26:06,520 --> 00:26:09,210 vorrei ingrandire questa quindi è più leggibile - 525 00:26:09,210 --> 00:26:12,730 e nel corpo, che stiamo cercando di stampare "questo è il corpo", 526 00:26:12,730 --> 00:26:14,300 i + +, 527 00:26:14,300 --> 00:26:17,710 in modo da incrementare il contenuto di ie fare questo 528 00:26:17,710 --> 00:26:19,470 fino a quando ho arriva a essere di 3, 529 00:26:19,470 --> 00:26:22,440 e poi il nostro programma termina. 530 00:26:22,440 --> 00:26:24,680 >> Che cosa succede quando si esegue questo programma? 531 00:26:24,680 --> 00:26:27,580 >> Mi aspettavo un identificatore. 532 00:26:27,580 --> 00:26:32,070 Ok, quindi creare, eseguire, errore si è verificato. 533 00:26:32,070 --> 00:26:34,820 Che cosa succede? 534 00:26:34,820 --> 00:26:37,060 Abbiamo scorrere verso il basso qui, 535 00:26:37,060 --> 00:26:40,260 otteniamo questa cosa un po 'criptico, cercando, 536 00:26:40,260 --> 00:26:43,930 previsto punto e virgola dopo la dichiarazione di livello superiore. 537 00:26:43,930 --> 00:26:46,620 E 'un po' strano. 538 00:26:46,620 --> 00:26:50,990 Qualcuno ha un'idea di cosa potrebbe essere successo? 539 00:26:53,080 --> 00:26:54,640 Un po 'strano, sì. 540 00:26:54,640 --> 00:26:57,640 >> [Incomprensibile] essere dichiarato al di fuori delle parentesi? 541 00:26:57,640 --> 00:27:03,480 Quindi, non che si applica quindi quando si utilizza parentesi? 542 00:27:03,480 --> 00:27:07,390 Così ha dichiarato questo tipo al di fuori del quale parentesi? 543 00:27:09,670 --> 00:27:12,240 Oh, questi ragazzi - le parentesi graffe? 544 00:27:12,240 --> 00:27:13,850 Sì >>. 545 00:27:13,850 --> 00:27:15,310 Sì, esattamente. 546 00:27:15,310 --> 00:27:17,120 Così si scopre che 547 00:27:17,120 --> 00:27:21,550 non si può effettivamente dichiarare una variabile proprio qui in questo modo. 548 00:27:23,750 --> 00:27:26,690 Che cosa si potrebbe avere cercato di fare è stato - 549 00:27:26,690 --> 00:27:30,110 tagliare fuori di lì - 550 00:27:30,110 --> 00:27:34,330 è possibile mettere all'interno delle parentesi graffe proprio qui 551 00:27:34,330 --> 00:27:37,400 o un'altra alternativa 552 00:27:37,400 --> 00:27:40,350 è quello di mettere completamente fuori. 553 00:27:42,480 --> 00:27:46,610 E così questi - a seconda di dove effettivamente messo la dichiarazione 554 00:27:46,610 --> 00:27:48,550 di tale variabile intera, 555 00:27:48,550 --> 00:27:53,540 è possibile ottenere due tipi molto diversi di variabili; 556 00:27:53,540 --> 00:27:55,100 quando è al di fuori del principale, 557 00:27:55,100 --> 00:27:58,240 è ciò che noi chiamiamo una variabile globale. 558 00:27:58,240 --> 00:28:00,070 È fuori dell'ambito di una qualsiasi delle funzioni - 559 00:28:00,070 --> 00:28:03,420 non è all'interno di una funzione - 560 00:28:03,420 --> 00:28:07,050 mentre se la mettiamo all'interno della principale, 561 00:28:07,050 --> 00:28:10,000 come proprio qui, allora si chiama una variabile locale, 562 00:28:10,000 --> 00:28:13,830 perché è locale per il campo di applicazione principale. 563 00:28:13,830 --> 00:28:16,720 E parleremo un po 'di più su quali siano le differenze 564 00:28:16,720 --> 00:28:20,970 tra i 2 tipi e perché si utilizzano diversi tipi di variabili, 565 00:28:20,970 --> 00:28:23,040 ma per ora, 566 00:28:23,040 --> 00:28:25,070 si può solo continuare a tutte le variabili locali, 567 00:28:25,070 --> 00:28:28,320 perché non abbiamo alcun bisogno di variabili globali. 568 00:28:28,320 --> 00:28:31,390 >> Ok, allora questa è una cosa che proprio lì. 569 00:28:31,390 --> 00:28:34,680 Proviamo l'esecuzione di questo nuovo, vedere cosa succede. 570 00:28:37,420 --> 00:28:40,270 Eseguire, ottenere un altro errore. 571 00:28:40,270 --> 00:28:43,320 Zoom in un po ', cosa otteniamo? 572 00:28:45,110 --> 00:28:50,000 Otteniamo questa parentesi previsto dopo do / while. 573 00:28:53,660 --> 00:28:55,260 Tutte le idee che cosa sta succedendo? Dan? 574 00:28:55,260 --> 00:28:58,880 >> E 'l'allora parentesi po' e poi - 575 00:28:58,880 --> 00:29:01,990 Non so se avete bisogno di redeclare int, 576 00:29:01,990 --> 00:29:04,980 ma il do while (i <3). 577 00:29:04,980 --> 00:29:06,930 Esattamente, si '. 578 00:29:06,930 --> 00:29:08,830 Così si scopre che Dan è esattamente vero. 579 00:29:08,830 --> 00:29:11,230 Non abbiamo bisogno di mettere questo tipo di nuovo qui. 580 00:29:11,230 --> 00:29:14,440 Possiamo invece uccidere il tipo 581 00:29:14,440 --> 00:29:17,220 e fare solo quello. 582 00:29:19,270 --> 00:29:21,640 Bene. 583 00:29:21,640 --> 00:29:24,950 Io lo zoom indietro, provare ancora una volta. 584 00:29:26,360 --> 00:29:29,580 Guardate che, gestisce con successo. 585 00:29:29,580 --> 00:29:33,260 Se scorrere verso il basso, "questo è il corpo" stampato 3 volte. 586 00:29:33,260 --> 00:29:35,820 Questo è abbastanza dolce. 587 00:29:35,820 --> 00:29:38,670 Ben fatto, ben fatto, ragazzi. 588 00:29:38,670 --> 00:29:41,080 Ben fatto. 589 00:29:41,080 --> 00:29:43,250 Come sta andando questo fino ad ora? 590 00:29:43,250 --> 00:29:46,200 Ritmo decente? 591 00:29:46,200 --> 00:29:49,200 Ok, fresco. 592 00:29:49,200 --> 00:29:52,590 >> Così, mentre i tipi di tornare alla domanda iniziale, 593 00:29:52,590 --> 00:29:55,430 noi - e ora se vediamo la differenza, 594 00:29:55,430 --> 00:29:58,240 si vede che in questo ciclo do-while, 595 00:29:58,240 --> 00:30:00,030 la condizione è l'ultimo. 596 00:30:00,030 --> 00:30:02,530 Così come il computer legge il programma 597 00:30:02,530 --> 00:30:06,050 in quanto i programmi C sono eseguiti in questo tipo di ordine sequenziale, 598 00:30:06,050 --> 00:30:09,450 dove letteralmente iniziare con la prima riga del principale, 599 00:30:09,450 --> 00:30:13,450 e quindi eseguire la linea 6, linea 7, linea 8, linea 9, 600 00:30:13,450 --> 00:30:16,150 linea 10, linea 11, 601 00:30:16,150 --> 00:30:18,440 tutta questa roba in alto a destra qui 602 00:30:18,440 --> 00:30:20,020 sta per eseguire una volta 603 00:30:20,020 --> 00:30:23,350 prima abbiamo mai verificare questa condizione per vedere 604 00:30:23,350 --> 00:30:26,240 con o senza i - o il contenuto di i, piuttosto - 605 00:30:26,240 --> 00:30:29,750 sono meno del numero 3. 606 00:30:29,750 --> 00:30:33,300 E solo se una volta si arriva a linea 12, 607 00:30:33,300 --> 00:30:36,260 il contenuto di i minore di 3 608 00:30:36,260 --> 00:30:39,150 possiamo veramente tornare indietro fino alla linea 7 609 00:30:39,150 --> 00:30:41,140 e poi ripetere il processo, 610 00:30:41,140 --> 00:30:44,620 e poi verificare la condizione ancora e ancora e ancora. 611 00:30:44,620 --> 00:30:47,440 >> Così siamo in grado di contrastare questo 612 00:30:47,440 --> 00:30:50,240 con - zoom indietro, 613 00:30:50,240 --> 00:30:56,500 scorrere fino alla versione di Sam, 614 00:30:56,500 --> 00:31:00,760 dovremo guardare a questo, un po 'modificata in modo che non è più un ciclo infinito - 615 00:31:00,760 --> 00:31:03,570 dove se lo zoom, 616 00:31:03,570 --> 00:31:06,300 vediamo che mentre il programma viene eseguito, 617 00:31:06,300 --> 00:31:09,120 sta andando a dichiarare prima int i, 618 00:31:09,120 --> 00:31:12,030 impostare il contenuto di i sia a 0, 619 00:31:12,030 --> 00:31:15,820 e poi colpisce la condizione del primo ciclo, mentre, 620 00:31:15,820 --> 00:31:19,210 quindi in questo caso, questo corpo, questa printf ("ciao") e i + + 621 00:31:19,210 --> 00:31:21,630 non addirittura eseguire 622 00:31:21,630 --> 00:31:24,310 salvo i è effettivamente inferiore o uguale a 2. 623 00:31:24,310 --> 00:31:26,750 Quindi, se i è 3, per esempio, 624 00:31:26,750 --> 00:31:28,840 se si imposta questa qui 625 00:31:28,840 --> 00:31:32,160 pari a 4 - o farò 3, perché ho detto 3 - 626 00:31:32,160 --> 00:31:34,890 e quindi eseguirlo, 627 00:31:34,890 --> 00:31:38,320 sara costruzione, sarà eseguito tutto bene, 628 00:31:38,320 --> 00:31:40,530 ma non sarà effettivamente stampare qualsiasi cosa, 629 00:31:40,530 --> 00:31:43,030 perché non è riuscito che prova per il primo caso. 630 00:31:44,780 --> 00:31:47,530 Quindi, in classe, tipo di parlato perché questi do-while 631 00:31:47,530 --> 00:31:49,800 sono utili talvolta 632 00:31:49,800 --> 00:31:53,140 e perché userebbero invece di un ciclo while. 633 00:31:53,140 --> 00:31:56,450 >> Ci sono - voi ragazzi avete qualche suggerimento 634 00:31:56,450 --> 00:31:59,090 del motivo per cui un ciclo do-while potrebbe essere più utile? 635 00:31:59,090 --> 00:32:02,560 >> Beh, credo che do-while è se si vuole l'input dell'utente, 636 00:32:02,560 --> 00:32:05,020 perché in questo modo si può far loro 637 00:32:05,020 --> 00:32:07,780 mettere qualcosa in una volta, se è corretto, 638 00:32:07,780 --> 00:32:09,300 possiamo passare al resto del programma, 639 00:32:09,300 --> 00:32:11,250 ma se non è corretta, allora si continua a chiedere conferma all'utente 640 00:32:11,250 --> 00:32:13,250 finché non si inserisce il giusto input. 641 00:32:13,250 --> 00:32:14,260 Sì, esattamente - esattamente, 642 00:32:14,260 --> 00:32:16,840 quindi un ciclo do-while è utile 643 00:32:16,840 --> 00:32:18,930 perché quando la richiesta di input dell'utente 644 00:32:18,930 --> 00:32:23,000 perché è necessario per ottenere l'input dell'utente prima di poter effettivamente verificarlo. 645 00:32:23,000 --> 00:32:27,330 Così in pset 1, in pset 2, 646 00:32:27,330 --> 00:32:29,650 dove si sta la richiesta di input all'utente un sacco, 647 00:32:29,650 --> 00:32:31,200 questa è una cosa a portata di mano da usare 648 00:32:31,200 --> 00:32:33,740 piuttosto che semplicemente un ciclo while semplice. 649 00:32:33,740 --> 00:32:36,780 Se si utilizza un ciclo while, è possibile fare la stessa cosa - 650 00:32:36,780 --> 00:32:38,750 si può fare la stessa cosa con un ciclo while 651 00:32:38,750 --> 00:32:40,580 come si fa con un ciclo do-while. 652 00:32:40,580 --> 00:32:43,380 Devi solo avere questo tipo di processo duplicato 653 00:32:43,380 --> 00:32:47,010 dove si ottiene il primo ingresso e poi avviare il ciclo while. 654 00:32:47,010 --> 00:32:49,800 Considerando che un ciclo do-while, basta scrivere una sola volta 655 00:32:49,800 --> 00:32:52,430 ed è molto più pulita. 656 00:32:52,430 --> 00:32:54,650 >> Bene. 657 00:32:55,970 --> 00:32:57,330 Hai ancora domande? 658 00:32:59,350 --> 00:33:01,380 Ha senso? 659 00:33:01,380 --> 00:33:06,200 Il ritorno >> 0 - che è solo una specie di stallo o è -? 660 00:33:06,200 --> 00:33:08,960 Si ', in modo che possiamo - 661 00:33:08,960 --> 00:33:11,960 bene, vedremo questo un po 'più tardi 662 00:33:11,960 --> 00:33:13,290 ma si scopre che 663 00:33:13,290 --> 00:33:15,720 questo 0 ritorno che abbiamo messo 664 00:33:15,720 --> 00:33:19,090 a fine principale tutto il tempo - 665 00:33:19,090 --> 00:33:21,980 è possibile un pò basta prendere come qualcosa che facciamo 666 00:33:21,980 --> 00:33:24,930 per il momento. 667 00:33:24,930 --> 00:33:28,860 Quello che abbiamo iniziato a parlare con le funzioni 668 00:33:28,860 --> 00:33:31,600 tipo che alla fine della scorsa settimana e poi di nuovo questa settimana 669 00:33:31,600 --> 00:33:33,550 è una funzione che 670 00:33:33,550 --> 00:33:37,680 prende gli ingressi che sono queste cose all'interno delle parentesi; 671 00:33:37,680 --> 00:33:41,690 questi sono 2 ingressi, i nostri argomenti o parametri, 672 00:33:41,690 --> 00:33:44,540 quello che stanno anche chiamata alla nostra funzione principale, 673 00:33:44,540 --> 00:33:48,510 quindi una funzione produce un'uscita 674 00:33:48,510 --> 00:33:51,290 che noi chiamiamo un valore di ritorno. 675 00:33:51,290 --> 00:33:56,260 E il valore di ritorno nel caso di questo principale è int, 676 00:33:56,260 --> 00:33:58,320 questo intero, 677 00:33:58,320 --> 00:34:01,160 e il modo di raccontare una funzione, "Ehi, questo è ciò che l'output 678 00:34:01,160 --> 00:34:05,840 sta per essere, "è con questa parola" ritorno ", 679 00:34:05,840 --> 00:34:07,960 quella parola chiave, piuttosto, 680 00:34:07,960 --> 00:34:11,000 e così principale restituendo 0 681 00:34:11,000 --> 00:34:13,389 o principale l'output 0 682 00:34:13,389 --> 00:34:15,139 è standard nei programmi C 683 00:34:15,139 --> 00:34:18,110 perché restituendo 0 da mezzi principali che 684 00:34:18,110 --> 00:34:21,600 "Ehi, tutto eseguito con il mio programma proprio bene." 685 00:34:21,600 --> 00:34:24,639 Se dovessimo mettere qualcosa di diverso da 0, 686 00:34:24,639 --> 00:34:27,440 come 1, per esempio, 687 00:34:27,440 --> 00:34:31,080 che viene usato per dire chi l'esecuzione di questo programma 688 00:34:31,080 --> 00:34:33,540 che qualcosa è andato storto. 689 00:34:35,739 --> 00:34:39,989 Così come si ottiene più coinvolto con la roba sul semestre, 690 00:34:39,989 --> 00:34:42,670 se siete mai bisogno di dire, 691 00:34:42,670 --> 00:34:46,650 "Oh, sai, qualcosa è andato storto con questo programma," 692 00:34:46,650 --> 00:34:49,409 piuttosto che avere il mio crash del programma, voglio informare 693 00:34:49,409 --> 00:34:52,310 il corridore del mio programma che qualcosa è andato storto, 694 00:34:52,310 --> 00:34:54,530 è possibile utilizzare il valore di ritorno, 695 00:34:54,530 --> 00:34:57,230 come lo chiamiamo noi, non e '0. 696 00:35:00,180 --> 00:35:02,240 >> Così vedremo che un po 'di più 697 00:35:02,240 --> 00:35:05,480 una volta arrivati ​​in funzioni. 698 00:35:05,480 --> 00:35:09,030 Questo genere di senso? 699 00:35:09,030 --> 00:35:11,240 Va bene. 700 00:35:11,240 --> 00:35:13,530 Le funzioni sono un po 'bizzarro - 701 00:35:13,530 --> 00:35:17,270 Penso che per le persone che hanno un sacco di sfondo matematica, 702 00:35:17,270 --> 00:35:20,100 si tratta di un po 'più facilmente, 703 00:35:20,100 --> 00:35:22,540 soprattutto se si dispone di sfondo matematica un po 'più astratto 704 00:35:22,540 --> 00:35:24,240 e siete abituati a parlare di funzioni 705 00:35:24,240 --> 00:35:27,370 e tutto quel genere di cose. 706 00:35:28,590 --> 00:35:30,610 Ma cercheremo di coprire 707 00:35:30,610 --> 00:35:33,280 e vai bello e lento come sono venuti fuori. 708 00:35:34,730 --> 00:35:37,870 Allo stesso modo, questo int argc tutto, 709 00:35:37,870 --> 00:35:41,090 char * argv [], 710 00:35:41,090 --> 00:35:44,960 per ora, si può anche prendere che come piastra della caldaia. 711 00:35:46,650 --> 00:35:49,050 Abbiamo iniziato a coprire quelle un po 'in conferenza 712 00:35:49,050 --> 00:35:53,060 quando si parla di argomenti che vengono passati in programmi sulla riga di comando, 713 00:35:53,060 --> 00:35:55,700 ma nei tuoi set di problemi e dei vostri programmi, 714 00:35:55,700 --> 00:35:58,760 è del tutto bene solo per scrivere nulla e mantenere le cose semplici. 715 00:35:58,760 --> 00:36:01,490 E che cosa questo significa è che vuoto 716 00:36:01,490 --> 00:36:04,630 "Ehi, principale non sta per accettare gli ingressi; 717 00:36:04,630 --> 00:36:07,440 questo è solo un programma che stiamo andando solo correre. 718 00:36:07,440 --> 00:36:09,320 Non stiamo andando dare nessuna informazione aggiuntiva 719 00:36:09,320 --> 00:36:12,420 ogni volta che lo avvio in esecuzione. " 720 00:36:14,730 --> 00:36:16,600 Quindi per ora, si può fare questo; 721 00:36:16,600 --> 00:36:19,710 si può anche omettere anche lo 0 di ritorno 722 00:36:19,710 --> 00:36:22,650 alla fine dei vostri programmi e faranno girare bene, 723 00:36:22,650 --> 00:36:26,150 ma mi raccomando solo di tenere trovi 724 00:36:26,150 --> 00:36:28,320 In un paio di settimane, inizieremo a tipo di 725 00:36:28,320 --> 00:36:31,340 tirare indietro il coperchio un po 'e capire di più su 726 00:36:31,340 --> 00:36:34,380 tutte quelle diverse piccole parti in movimento. 727 00:36:34,380 --> 00:36:38,160 >> Va bene, ora parliamo della nostra seconda domanda qui. 728 00:36:38,160 --> 00:36:43,190 Che cosa significa "identificatore non dichiarato" di solito indicano 729 00:36:43,190 --> 00:36:46,040 se emesso da Clang? 730 00:36:46,040 --> 00:36:49,290 Penso che potrebbe avere visto che già oggi. 731 00:36:51,170 --> 00:36:54,370 Qualcuno può dare un riassunto di quello che significa? 732 00:36:54,370 --> 00:36:57,680 Vediamo un po ', Kelly - uno dei Kellys. 733 00:37:02,580 --> 00:37:05,300 So >> - 734 00:37:05,300 --> 00:37:07,080 Già, che cosa - 735 00:37:07,080 --> 00:37:10,140 >> Penso che quando, come, non dichiarare le variabili e si tenta di usarlo. 736 00:37:10,140 --> 00:37:13,310 Si, esattamente, esattamente. 737 00:37:13,310 --> 00:37:15,250 Quindi, se avete mai visto questa uscita 738 00:37:15,250 --> 00:37:17,690 quando si cerca di compilare il programma, 739 00:37:17,690 --> 00:37:19,470 proprio come ha detto Kelly, 740 00:37:19,470 --> 00:37:24,210 vuol dire che hai usato una variabile che non ha dichiarato, 741 00:37:24,210 --> 00:37:28,460 quindi se vado di nuovo al nostro spazio, 742 00:37:28,460 --> 00:37:31,150 e io fare qualcosa di simile 743 00:37:31,150 --> 00:37:34,800 printf ( 744 00:37:34,800 --> 00:37:38,260 "Ciao% s") 745 00:37:40,070 --> 00:37:42,440 e cercare di riempire in s% che 746 00:37:42,440 --> 00:37:45,640 con s variabile a che non ho dichiarato nessuna parte 747 00:37:45,640 --> 00:37:48,330 e cerco di farlo funzionare, 748 00:37:48,330 --> 00:37:51,330 vedrai che mi deprimo a questo qui in basso a destra: 749 00:37:51,330 --> 00:37:54,010 "L'uso di identificatore non dichiarato 's'"; 750 00:37:54,010 --> 00:37:57,710 questo significa che per te non ha dichiarato la variabile. 751 00:37:57,710 --> 00:38:00,750 Stessa cosa succede se 752 00:38:00,750 --> 00:38:05,240 avete x e si prova a memorizzare 7 in esso 753 00:38:05,240 --> 00:38:08,720 e non ha dichiarato X. 754 00:38:08,720 --> 00:38:10,200 Capisco che lo stesso errore: 755 00:38:10,200 --> 00:38:13,480 "L'uso di 'x' identificatore non dichiarato". 756 00:38:16,390 --> 00:38:18,250 >> Va bene, 757 00:38:18,250 --> 00:38:21,720 in modo che il cifrario di Cesare, non essendo molto sicuro, 758 00:38:21,720 --> 00:38:24,590 Lascio voi guarda questo breve, tipo di capire perché, 759 00:38:24,590 --> 00:38:27,590 e, auspicabilmente, dopo aver fatto un problema di questa settimana impostare 760 00:38:27,590 --> 00:38:29,270 in cui è effettivamente scrivere un cifrario di Cesare, capirete un po 'di più 761 00:38:29,270 --> 00:38:32,600 su ciò che significa essere un sicuro e insicuro - 762 00:38:36,180 --> 00:38:38,960 o non sicuro, credo - insicuro è leggermente diverso. 763 00:38:40,560 --> 00:38:43,140 L'altra cosa è che abbiamo queste altre domande qui 764 00:38:43,140 --> 00:38:45,470 sulle funzioni 765 00:38:45,470 --> 00:38:47,330 e ciò che una funzione è, 766 00:38:47,330 --> 00:38:52,820 e tipo di parlato brevemente quando abbiamo parlato di valori di ritorno; 767 00:38:52,820 --> 00:38:54,560 per qualcuno che è stato a lezione, 768 00:38:54,560 --> 00:38:57,790 si può riassumere che è stato a lezione oggi? 769 00:38:57,790 --> 00:38:59,670 Bene. 770 00:39:01,210 --> 00:39:04,320 Vediamo, vediamo quali sono - qualcuno può dirci che cosa è una funzione? 771 00:39:04,320 --> 00:39:06,060 Kelly? 772 00:39:07,800 --> 00:39:11,260 >> >> In pratica qualcosa che attingere a qualcosa che è scritto nella libreria che è 773 00:39:11,260 --> 00:39:14,460 più complicato là, e poi basta scrivere un breve modulo di esso, 774 00:39:14,460 --> 00:39:17,360 così come si sta facendo riferimento indietro a quella libreria, utilizzando 775 00:39:17,360 --> 00:39:19,650 tutto questo codice lungo e [incomprensibile]. 776 00:39:19,650 --> 00:39:22,680 Sì, esattamente, e poi vuoi aggiungere qualcosa a questo? 777 00:39:22,680 --> 00:39:27,050 >> Si ', ci penso più simile al concetto di una formula in matematica 778 00:39:27,050 --> 00:39:30,130 dove basta scrivere una formula e quindi è possibile collegare le variabili in 779 00:39:30,130 --> 00:39:32,660 ed è quello che una funzione è [incomprensibile]. 780 00:39:32,660 --> 00:39:35,390 >> Si ', quindi abbiamo un paio di risposte qui 781 00:39:35,390 --> 00:39:38,080 che sono entrambi molto buona e giusta via. 782 00:39:38,080 --> 00:39:43,040 Ci riferisce al codice che è stato scritto nella libreria da qualche parte 783 00:39:43,040 --> 00:39:45,390 che è più complicato 784 00:39:45,390 --> 00:39:47,130 e poi si può attingere il codice 785 00:39:47,130 --> 00:39:50,480 e lo usa semplicemente scrivendo la forma breve di esso - 786 00:39:50,480 --> 00:39:54,060 o, piuttosto, il suo nome - 787 00:39:54,060 --> 00:39:57,590 e poi c'è anche questo confronto a una formula di matematica 788 00:39:57,590 --> 00:40:00,400 o della fisica, tutto questo genere di cose 789 00:40:00,400 --> 00:40:02,980 dove si ha una formula 790 00:40:02,980 --> 00:40:05,690 e permette di collegare in 791 00:40:05,690 --> 00:40:08,100 Le variabili da quella formula 792 00:40:08,100 --> 00:40:11,130 per ottenere il risultato della formula, 793 00:40:11,130 --> 00:40:14,580 così ci si pensa come come l'equazione di secondo grado. 794 00:40:14,580 --> 00:40:17,690 Immaginate se invece di dover conoscere 795 00:40:17,690 --> 00:40:21,310 ciò che la formula quadratica è in classe di matematica, 796 00:40:21,310 --> 00:40:24,610 hai appena avuto un piccolo programma calcolatrice che ha fatto per voi. 797 00:40:24,610 --> 00:40:28,930 Qualcuno utilizzare programmi di calcolo nelle classi di matematica al liceo? 798 00:40:28,930 --> 00:40:31,020 Si ', lezioni di fisica? 799 00:40:31,020 --> 00:40:34,670 Dove si può solo dire: "Ehi, formula quadratica. 800 00:40:34,670 --> 00:40:37,740 Queste sono le variabili che voglio ingresso. 801 00:40:37,740 --> 00:40:40,250 Ora dammi la risposta. " 802 00:40:40,250 --> 00:40:42,170 Questo è il tipo di ciò che una funzione è. 803 00:40:42,170 --> 00:40:44,850 E 'un modo per noi di 804 00:40:44,850 --> 00:40:47,720 tipo di scrittura come un piccolo programmino sub 805 00:40:47,720 --> 00:40:51,700 all'interno del nostro programma più ampio 806 00:40:51,700 --> 00:40:55,090 e lo uso più e più volte 807 00:40:55,090 --> 00:40:58,380 in modo che non c'è bisogno di copiare e incollare il codice, 808 00:40:58,380 --> 00:41:04,220 siamo in grado di dare input e trova diverse uscite, 809 00:41:04,220 --> 00:41:07,090 è super comodo 810 00:41:07,090 --> 00:41:11,420 quando si sta cercando di scrivere programmi diversi in momenti diversi. 811 00:41:11,420 --> 00:41:14,580 >> Così, per esempio, una funzione che abbiamo usato più e più e più volte 812 00:41:14,580 --> 00:41:17,310 durante tutto il corso è printf. 813 00:41:17,310 --> 00:41:19,680 È esso stesso una funzione printf 814 00:41:19,680 --> 00:41:23,360 e si scopre che in realtà è un piuttosto lungo e complicato, 815 00:41:23,360 --> 00:41:26,420 brutto cercando, funzione per scrivere. 816 00:41:26,420 --> 00:41:29,590 Così semplice come sembra a noi 817 00:41:29,590 --> 00:41:31,810 stampare roba sullo schermo, 818 00:41:31,810 --> 00:41:34,820 perché tutti noi appena fatto che all'inizio di oggi la sezione, 819 00:41:34,820 --> 00:41:36,870 si scopre che in realtà è, si sa, 820 00:41:36,870 --> 00:41:39,900 un buon paio di centinaia di righe di codice. 821 00:41:42,030 --> 00:41:45,620 Non è qualcosa che avrei mai voluto scrivere, di sicuro, 822 00:41:45,620 --> 00:41:47,480 ma si arriva a usare ogni giorno, che è genere di freddo, 823 00:41:47,480 --> 00:41:49,020 così si arriva a condividere con l'altro, 824 00:41:49,020 --> 00:41:51,790 con diversi programmi, 825 00:41:51,790 --> 00:41:54,520 così saremo immersioni più in funzioni; 826 00:41:54,520 --> 00:41:56,090 per il momento, non siamo - 827 00:41:56,090 --> 00:41:59,150 l'unica funzione che andremo a essere la scrittura è principale. 828 00:41:59,150 --> 00:42:01,570 Principale stesso è anche una funzione, 829 00:42:01,570 --> 00:42:04,270 e si può vedere il suo ha la sua uscita, 830 00:42:04,270 --> 00:42:06,610 gli ingressi, come abbiamo parlato, 831 00:42:06,610 --> 00:42:08,930 e poi il suo nome, che è principale. 832 00:42:08,930 --> 00:42:11,800 Principale è una specie di - è una funzione speciale lì. 833 00:42:11,800 --> 00:42:14,800 Nel programma C, ci deve essere una funzione principale, 834 00:42:14,800 --> 00:42:17,900 e quindi per ora, abbiamo tipo di scrittura omesso 835 00:42:17,900 --> 00:42:21,400 il prototipo, o la dichiarazione di, principale. 836 00:42:21,400 --> 00:42:23,050 Abbiamo visto che a te, 837 00:42:23,050 --> 00:42:25,650 e abbiamo appena avuto a compilare tipo di spazi vuoti. 838 00:42:25,650 --> 00:42:29,120 >> >> Quindi per il set secondo problema, non abbiamo bisogno di 839 00:42:29,120 --> 00:42:31,350 scrivere nella seconda funzione? 840 00:42:31,350 --> 00:42:34,200 Io non lo credo. 841 00:42:34,200 --> 00:42:37,600 Credo che sia tutto qui. 842 00:42:37,600 --> 00:42:41,710 Sì, così Cesare Cipher, 843 00:42:41,710 --> 00:42:45,000 che non è necessario, esso non sembra, 844 00:42:48,740 --> 00:42:53,150 e Vigenère, non si sia, 845 00:42:53,150 --> 00:42:56,400 così - e si scopre che non hanno mai realmente da scrivere 846 00:42:56,400 --> 00:42:58,250 una funzione, giusto? 847 00:42:58,250 --> 00:43:01,950 Si chiama sempre messo tutto il codice all'interno principale, 848 00:43:01,950 --> 00:43:04,500 e molti programmatori farlo. 849 00:43:04,500 --> 00:43:07,130 Come si passa, 850 00:43:07,130 --> 00:43:09,480 iniziamo introducendo funzioni come un modo 851 00:43:09,480 --> 00:43:11,530 per ripulire il codice, 852 00:43:11,530 --> 00:43:13,380 per rendere più elegante, 853 00:43:13,380 --> 00:43:16,890 nel caso in cui si dispone di compiti - un po 'come quando abbiamo parlato di cicli, 854 00:43:16,890 --> 00:43:20,400 come a volte ci sono cose che si vogliono fare ancora e ancora e ancora, 855 00:43:20,400 --> 00:43:23,510 e hanno una specie di modo ingenuo - 856 00:43:23,510 --> 00:43:26,360 o ciò che spesso chiamiamo "uomo di paglia" soluzione, 857 00:43:26,360 --> 00:43:29,390 è quello di copiare e incollare solo più e più volte - 858 00:43:29,390 --> 00:43:31,000 si può fare la stessa cosa con le funzioni in cui è sufficiente copiare e incollare 859 00:43:31,000 --> 00:43:33,360 lo stesso codice più e più volte, 860 00:43:33,360 --> 00:43:35,750 ma che contribuisce ad appesantire il codice - 861 00:43:35,750 --> 00:43:38,550 finisce per rendere il vostro codice molto lungo - 862 00:43:38,550 --> 00:43:41,550 e diventa anche un po 'di confusione, 863 00:43:41,550 --> 00:43:43,470 e allora vuol dire che non sei in grado di scrivere - 864 00:43:43,470 --> 00:43:45,250 se si vuole usare quel codice di nuovo in un altro programma, 865 00:43:45,250 --> 00:43:48,610 sei anche bloccato copiare e incollare di nuovo, 866 00:43:48,610 --> 00:43:51,170 così una delle cose di cui parleremo è 867 00:43:51,170 --> 00:43:54,960 tipo di design e lo stile dei vostri programmi, 868 00:43:54,960 --> 00:43:57,010 e così quando ha senso tipo di 869 00:43:57,010 --> 00:43:59,800 pacchetto di qualcosa e metterlo come una funzione separata, 870 00:43:59,800 --> 00:44:02,080 vi invitiamo a farlo, 871 00:44:02,080 --> 00:44:04,700 e questo è qualcosa che, ancora una volta, 872 00:44:04,700 --> 00:44:07,790 non c'è una regola dura e veloce. 873 00:44:07,790 --> 00:44:11,540 Raramente dire che è necessario scrivere una funzione chiamata tale, 874 00:44:12,870 --> 00:44:16,320 ma è più di una di quelle cose che hai appena si sviluppano nel tempo 875 00:44:16,320 --> 00:44:19,470 come scrivere programmi sempre di più. 876 00:44:21,940 --> 00:44:24,790 >> Altre domande? 877 00:44:26,340 --> 00:44:30,610 Okay, andiamo ora 878 00:44:30,610 --> 00:44:34,750 Torna indietro fino a questo tizio qui, 879 00:44:34,750 --> 00:44:37,800 quindi sono ancora in questa sezione di domande. 880 00:44:37,800 --> 00:44:39,900 Abbiamo parlato di tutti questi differenti, 881 00:44:39,900 --> 00:44:42,050 che cosa è una funzione, perché per scrivere le funzioni, 882 00:44:42,050 --> 00:44:44,700 quando si può semplicemente copiare e incollare? 883 00:44:44,700 --> 00:44:47,700 Speriamo di avervi convinto che la scrittura di funzioni è una buona cosa. 884 00:44:47,700 --> 00:44:50,870 Ora passiamo a questo programma MySpace, 885 00:44:50,870 --> 00:44:53,080 e passeremo un po 'di tempo a fare questo. 886 00:44:54,600 --> 00:44:56,480 >> Allora, vediamo, 887 00:44:56,480 --> 00:45:00,230 posso avere qualcuno letto questo per me? 888 00:45:02,640 --> 00:45:04,660 Diamo Mikhaila - vi leggere questo per noi? 889 00:45:07,660 --> 00:45:08,890 Vuoi dire >> indietro quando MySpace - 890 00:45:08,890 --> 00:45:10,920 Ai tempi in cui MySpace era fresca. 891 00:45:10,920 --> 00:45:12,070 >> "Ai tempi in cui MySpace era fresca, 892 00:45:12,070 --> 00:45:14,900 era di gran moda a digitarla in questo modo. 893 00:45:14,900 --> 00:45:17,320 Forse è ancora? Io non sono molto sicuro. 894 00:45:17,320 --> 00:45:19,990 In ogni caso, con il CS50 Appliance, 895 00:45:19,990 --> 00:45:22,600 Run CS50, CS50 o spazi, 896 00:45:22,600 --> 00:45:25,370 scrivere un programma che richiede all'utente un messaggio 897 00:45:25,370 --> 00:45:29,350 ed emette il messaggio con la sua prima lettera maiuscola, 898 00:45:29,350 --> 00:45:31,800 con tutte le altre lettere nel caso alternata, 899 00:45:31,800 --> 00:45:34,010 come per l'output di esempio di seguito, 900 00:45:34,010 --> 00:45:37,060 testo in grassetto in cui rappresenta un po 'di input dell'utente. 901 00:45:37,060 --> 00:45:39,800 Per semplicità, si può presumere che l'utente 902 00:45:39,800 --> 00:45:42,810 sarà solo lettere minuscole e spazi di ingresso. 903 00:45:42,810 --> 00:45:45,900 Si consideri questo problema l'opportunità di praticare; 904 00:45:45,900 --> 00:45:48,640 non verrà chiesto di presentare questo programma. " 905 00:45:48,640 --> 00:45:51,640 >> Awesome, grazie. 906 00:45:51,640 --> 00:45:54,750 Così come Mikhaila detto, 907 00:45:54,750 --> 00:45:58,850 ci accingiamo a scrivere un programma che myspaces codice. 908 00:45:58,850 --> 00:46:02,230 Così ha fatto qualcuno di voi usa MySpace? 909 00:46:02,230 --> 00:46:04,100 Qualcuno di voi dispone di account MySpace? 910 00:46:04,100 --> 00:46:05,920 Oh, si, si! 911 00:46:05,920 --> 00:46:08,300 E 'stato piuttosto fresco. 912 00:46:08,300 --> 00:46:09,950 [Risate] 913 00:46:09,950 --> 00:46:12,060 Lo so. 914 00:46:12,060 --> 00:46:14,500 Incontri me stesso. 915 00:46:15,490 --> 00:46:18,300 Quindi quello che stiamo cercando di fare è scrivere un programma 916 00:46:18,300 --> 00:46:21,110 che passa attraverso 917 00:46:21,110 --> 00:46:24,490 e con la prima lettera 918 00:46:24,490 --> 00:46:27,140 e poi ogni lettera in seguito - 919 00:46:27,140 --> 00:46:29,350 o ogni altra lettera poi, mi dispiace. 920 00:46:29,350 --> 00:46:32,910 >> Quindi - e si può vedere in questo esempio, 921 00:46:32,910 --> 00:46:35,260 questo è il modo in cui eseguire il programma, 922 00:46:35,260 --> 00:46:38,780 e così questo è solo dicendo: "Stiamo eseguendo un programma chiamato a.out. 923 00:46:41,490 --> 00:46:44,630 L'input che stiamo andando a darle 924 00:46:44,630 --> 00:46:47,090 sarà richiesto. 925 00:46:47,090 --> 00:46:51,150 Non stiamo andando fornire l'input sulla riga di comando. " 926 00:46:51,150 --> 00:46:54,100 Se avete seguito tutte le lezioni 927 00:46:54,100 --> 00:46:56,710 e sentir parlare di argomenti della riga di comando, 928 00:46:57,810 --> 00:47:00,080 che una specie di quelli in cui - che la sintassi funky 929 00:47:00,080 --> 00:47:04,530 al principale arriva con un int argc, tutta quella roba, 930 00:47:04,530 --> 00:47:07,630 ecco che non stiamo usando che, noi non si tratta di nulla di tutto ciò. 931 00:47:09,400 --> 00:47:12,650 Dobbiamo solo avere questo digitato dall'utente, 932 00:47:12,650 --> 00:47:15,700 e poi questa seconda linea con la capitalizzazione di funky 933 00:47:15,700 --> 00:47:18,550 è ciò che vogliamo che il nostro programma di uscita. 934 00:47:19,790 --> 00:47:22,860 >> Quindi, piuttosto che utilizzare l 'apparecchio o Esegui, useremo Spaces, 935 00:47:22,860 --> 00:47:25,360 perché abbiamo spazi, 936 00:47:25,360 --> 00:47:28,640 e così se voi ragazzi sarebbe 937 00:47:28,640 --> 00:47:32,380 ottenere il codice a guardare qualcosa di simile, 938 00:47:32,380 --> 00:47:35,930 così ho intenzione di salvare questa revisione 939 00:47:35,930 --> 00:47:38,390 solo così hai la piastra della caldaia proprio qui 940 00:47:38,390 --> 00:47:42,840 che assomiglia a questo, int main (void), nulla in esso. 941 00:47:44,480 --> 00:47:48,460 In realtà, quello che faremo è dobbiamo solo cancellare tutto insieme. 942 00:47:48,460 --> 00:47:50,330 Vogliamo una tabula rasa, 943 00:47:50,330 --> 00:47:52,470 perché non riuscirai a iniziare a scrivere codice; 944 00:47:52,470 --> 00:47:55,380 piuttosto, stiamo per provare a scrivere un po 'di pseudocodice 945 00:47:55,380 --> 00:47:58,580 che in realtà significa solo che andremo a scrivere qualcosa che non è il codice 946 00:47:58,580 --> 00:48:01,010 questo tipo di descrive ciò che vogliamo fare, 947 00:48:01,010 --> 00:48:05,180 un po 'come Davide fece il primo giorno di lezione, 948 00:48:05,180 --> 00:48:08,310 o credo che era il secondo giorno di lezione quando ha fatto la demo tutta calzini. 949 00:48:08,310 --> 00:48:10,990 Voi ricordate che - vedendo i calzini? 950 00:48:10,990 --> 00:48:13,300 Giuseppe era lì tipo di digitare in lingua inglese? 951 00:48:13,300 --> 00:48:16,300 Quindi faremo la stessa cosa. 952 00:48:16,300 --> 00:48:18,380 >> Così, quando mi metto a scrivere pseudocodice, 953 00:48:18,380 --> 00:48:22,640 Mi piace iniziare a guardare a ciò che l'ingresso sarà. 954 00:48:22,640 --> 00:48:24,950 E mi concedo un caso campione, 955 00:48:24,950 --> 00:48:28,780 così come "thanks for the add!" 956 00:48:35,030 --> 00:48:38,010 E poi ho anche scrivere quello che voglio che l'uscita sia, 957 00:48:38,010 --> 00:48:42,210 che in questo caso è qualcosa di simile. 958 00:48:53,790 --> 00:48:56,050 E questo tipo di mi dà un buon posto, come, iniziando a pensare, 959 00:48:56,050 --> 00:48:59,730 "Va bene, voglio prendere la linea 1 960 00:48:59,730 --> 00:49:03,560 e voglio trasformarlo in linea 2, " 961 00:49:03,560 --> 00:49:06,570 e quel tipo di aiuta a guidare il mio pensiero. 962 00:49:06,570 --> 00:49:09,990 Questo è un buon punto di partenza. 963 00:49:09,990 --> 00:49:12,190 Un altro modo di pensare, anche, come abbiamo razza di andare avanti 964 00:49:12,190 --> 00:49:15,020 e come si esegue questa operazione nei vostri programmi, è quello di 965 00:49:15,020 --> 00:49:18,530 pensate un po 'come quali sono i casi limite di questo? 966 00:49:18,530 --> 00:49:20,740 Quali sono i tipi di scenari strani? 967 00:49:20,740 --> 00:49:23,660 Quali sono gli ingressi strani che si potrebbe ottenere? 968 00:49:23,660 --> 00:49:26,550 E quali dovrebbero essere tali uscite simile? 969 00:49:26,550 --> 00:49:29,670 Ad esempio, un ingresso strano 970 00:49:29,670 --> 00:49:33,200 Sarebbe questa, 971 00:49:33,200 --> 00:49:35,630 creazione assolutamente nulla, 972 00:49:35,630 --> 00:49:37,840 come quello che dobbiamo produrre in questo caso? 973 00:49:37,840 --> 00:49:40,530 Una cosa che voglio pensare, anche. 974 00:49:40,530 --> 00:49:44,450 >> Così come una domanda, 975 00:49:44,450 --> 00:49:46,870 quello che potremmo voler uscita? 976 00:49:46,870 --> 00:49:50,740 Se non si ottiene alcun input a tutti, quello che dovrebbe essere il nostro programma di emissione? 977 00:49:53,740 --> 00:49:54,860 Niente >>. 978 00:49:54,860 --> 00:49:57,340 Niente? Suoni grande. 979 00:49:57,340 --> 00:49:59,280 Quindi vogliamo fare in modo che non stiamo scrivendo nulla 980 00:49:59,280 --> 00:50:01,500 se non si ottiene nulla trovi 981 00:50:01,500 --> 00:50:04,320 Cool. Va bene. 982 00:50:04,320 --> 00:50:07,370 Così 983 00:50:07,370 --> 00:50:09,380 Io vado a chiamare un paio di persone, come andiamo attraverso 984 00:50:09,380 --> 00:50:12,790 e solo capire un po 'come quello che l'algoritmo generale 985 00:50:12,790 --> 00:50:15,250 e noi tipo iniziare a lavorare tutto questo insieme. 986 00:50:16,240 --> 00:50:19,710 >> Allora, vediamo. Missy. 987 00:50:19,710 --> 00:50:21,220 Come pensi che ci piacerebbe iniziare? 988 00:50:21,220 --> 00:50:24,830 Quale potrebbe essere un buon punto di partenza qui 989 00:50:24,830 --> 00:50:27,900 se vogliamo trasformare, ad esempio, la linea 1 990 00:50:27,900 --> 00:50:29,440 in linea 2? 991 00:50:29,440 --> 00:50:32,650 Puoi solo tipo di spiegare a me, in inglese, a cosa stai pensando? 992 00:50:32,650 --> 00:50:34,770 Non fanno così anche preoccupare di codice. 993 00:50:34,770 --> 00:50:38,250 Cosa >> Per prima cosa vorrei fare sarebbe quella di 994 00:50:38,250 --> 00:50:41,170 tipo di indirizzare l'utente a dire loro quello che vuoi. 995 00:50:41,170 --> 00:50:44,730 Ok, quindi, ad esempio, 996 00:50:44,730 --> 00:50:47,450 "Ehi, utente. Voglio 997 00:50:47,450 --> 00:50:50,560 una stringa "- fantastico. 998 00:50:50,560 --> 00:50:52,990 Quindi cerchiamo di scrivere questo in giù. 999 00:50:52,990 --> 00:50:56,140 Richiedere all'utente per una stringa. 1000 00:50:56,140 --> 00:50:59,270 Che suona come un buon inizio. 1001 00:51:03,920 --> 00:51:06,460 Bene. 1002 00:51:06,460 --> 00:51:09,750 Chiediamo Kelly Ren questa volta. 1003 00:51:09,750 --> 00:51:11,580 Che cosa abbiamo poi vuoi fare dopo? 1004 00:51:11,580 --> 00:51:14,220 Che tipo di nostro prossimo -? 1005 00:51:14,220 --> 00:51:18,080 >> Raccogliere il loro contributo e conservarla come una variabile. 1006 00:51:18,080 --> 00:51:20,470 Grande. 1007 00:51:20,470 --> 00:51:24,280 Quindi raccogliere la stringa, 1008 00:51:25,450 --> 00:51:27,880 memorizzare in una variabile. 1009 00:51:34,840 --> 00:51:36,460 Quindi non vi è niente di speciale che vogliamo fare qui? 1010 00:51:36,460 --> 00:51:39,700 Vogliamo controllare il loro ingresso 1011 00:51:39,700 --> 00:51:42,260 prima -? 1012 00:51:42,260 --> 00:51:43,790 Sì >>. 1013 00:51:43,790 --> 00:51:46,330 Che cosa potrebbe vogliamo controllare? 1014 00:51:46,330 --> 00:51:48,980 >> Beh, hai detto che non c'è bisogno di controllare se si tratta di un numero, giusto? 1015 00:51:48,980 --> 00:51:52,400 Perché suppone che è minuscolo? 1016 00:51:52,400 --> 00:51:55,650 Gia '. 1017 00:51:56,380 --> 00:51:58,920 >> Così si scopre che - si '. 1018 00:51:58,920 --> 00:52:01,850 Così getString è garantito per restituirci una stringa. 1019 00:52:01,850 --> 00:52:05,050 E non ha intenzione di restituire un numero a noi o qualcosa di simile. 1020 00:52:05,050 --> 00:52:09,140 Ci potrebbero essere caratteri numerici all'interno di tale stringa, però. 1021 00:52:09,140 --> 00:52:13,460 E quelli, possiamo ignorare come abbiamo fatto la capitalizzazione. 1022 00:52:13,460 --> 00:52:16,620 Ma una stringa vuota è del tutto soddisfacente, 1023 00:52:16,620 --> 00:52:19,900 quindi il caso qui sulla linea 4 e 5, 1024 00:52:19,900 --> 00:52:22,020 destra, dove non c'è alcun ingresso, 1025 00:52:22,020 --> 00:52:25,190 e abbiamo messo nulla come la nostra produzione. 1026 00:52:25,190 --> 00:52:28,730 Non ci si deve preoccupare di fare in modo che ci sia qualcosa nella stringa 1027 00:52:28,730 --> 00:52:31,840 o che la stringa è di almeno 4 caratteri; 1028 00:52:31,840 --> 00:52:34,190 qualsiasi cosa va bene. 1029 00:52:34,190 --> 00:52:38,270 Quindi questo è in contrasto, ad esempio, con programmi come i centesimi che hai scritto 1030 00:52:38,270 --> 00:52:42,340 dove si doveva fare in modo che stavano ottenendo numeri non negativi; 1031 00:52:42,340 --> 00:52:46,430 si doveva fare in modo che si stavano ottenendo il corretto numero di giorni in un mese. 1032 00:52:46,430 --> 00:52:49,630 E come state facendo questo? 1033 00:52:49,630 --> 00:52:51,470 Come hai fatto test? 1034 00:52:51,470 --> 00:52:54,090 Cosa che richiedono l'utilizzo di? 1035 00:52:54,090 --> 00:52:55,650 >> Do-while. 1036 00:52:55,650 --> 00:53:00,840 Do-while; altri tipi di cicli, anche, sì. 1037 00:53:02,190 --> 00:53:04,520 Così si scopre che non è necessario utilizzare un ciclo in questo caso, 1038 00:53:04,520 --> 00:53:07,360 quando stiamo spingendo per una stringa, che è una specie di piacevole. 1039 00:53:08,280 --> 00:53:10,620 >> Va bene, andiamo avanti. 1040 00:53:12,410 --> 00:53:14,270 Così, Stella. 1041 00:53:14,270 --> 00:53:17,530 Puoi dirci un po 'di quello che dovremmo fare? 1042 00:53:17,530 --> 00:53:20,270 Così ora abbiamo la stringa, abbiamo memorizzato in una variabile; 1043 00:53:20,270 --> 00:53:23,360 che cosa dobbiamo fare con la stringa? 1044 00:53:26,790 --> 00:53:33,530 Abbiamo bisogno di >> - 1045 00:53:33,530 --> 00:53:36,550 identificare il 2 - 1046 00:53:36,550 --> 00:53:39,290 Sì, basta dirlo in inglese, che è impressionante. 1047 00:53:39,290 --> 00:53:42,670 Identificare i >> [incomprensibile] capitali - o, in maiuscolo. 1048 00:53:44,420 --> 00:53:48,130 Gia ', in modo che ci identificare quali sono lettere maiuscole e minuscole. 1049 00:53:50,020 --> 00:53:54,180 Non possiamo in maiuscolo o minuscolo finché abbiamo individuato quali. 1050 00:54:03,790 --> 00:54:06,350 Quindi mettiamo che qui dentro. 1051 00:54:06,350 --> 00:54:10,210 >> Così, proprio pensando a questo processo, 1052 00:54:10,210 --> 00:54:13,200 come si fa a fare questa identificazione? 1053 00:54:13,200 --> 00:54:15,050 Sai, Dan? 1054 00:54:15,050 --> 00:54:18,120 Tipo di ciò che - lo strumento che avremmo dovuto utilizzare fuori dalla nostra cassetta degli attrezzi? 1055 00:54:18,120 --> 00:54:22,500 >> Avevo messo in qualche modo in come un array o ogni riga 1056 00:54:22,500 --> 00:54:24,240 è la sua scatola proprio piccolo, 1057 00:54:24,240 --> 00:54:27,240 e poi da lì in maiuscolo o meno. 1058 00:54:27,240 --> 00:54:30,440 Ok, quindi uno strumento che possiamo usare è un array. 1059 00:54:30,440 --> 00:54:33,760 Che cosa dobbiamo guardare nella stringa, 1060 00:54:33,760 --> 00:54:36,680 però, per capire - abbiamo dovuto guardare i personaggi. 1061 00:54:36,680 --> 00:54:40,890 >> Quindi hai avuto modo di guardare la lunghezza della stringa? 1062 00:54:40,890 --> 00:54:43,880 Gia ', cosi parte di questo è sempre la lunghezza della stringa. 1063 00:54:50,450 --> 00:54:54,150 Solo per curiosità, che cosa si usa per ottenere la lunghezza di una stringa? 1064 00:54:54,150 --> 00:54:58,080 Strlen >>? 1065 00:54:58,080 --> 00:55:02,870 Si ', strlen, chiamiamo questo "strlen" 1066 00:55:04,180 --> 00:55:08,620 Tutte queste funzioni di stringa, in modo da strlen è una funzione, 1067 00:55:08,620 --> 00:55:10,670 ed è super comodo, perché si può usare per dire basta, 1068 00:55:10,670 --> 00:55:13,430 Ehi, strlen: Ecco una stringa, mi dica quanto è lungo. 1069 00:55:13,430 --> 00:55:17,350 Nella lezione di oggi, David parlato molto di come strlen è implementato, 1070 00:55:17,350 --> 00:55:20,370 quello che sta realmente accadendo dietro le quinte. 1071 00:55:20,370 --> 00:55:25,450 Ma questo è uno di quelli molto maneggevole. 1072 00:55:25,450 --> 00:55:29,170 Ci sono altri che sono anche nella libreria stringa, 1073 00:55:29,170 --> 00:55:34,690 come strcmp, che è scritto "strcmp", 1074 00:55:34,690 --> 00:55:38,010 che viene utilizzato per confrontare le stringhe tra loro. 1075 00:55:41,220 --> 00:55:45,020 Gli altri si utilizzerà come strstr, 1076 00:55:45,020 --> 00:55:48,770 che è buono per la ricerca di sotto-stringhe e così via. 1077 00:55:48,770 --> 00:55:53,380 Per la maggior parte, tutti iniziano con str e poi passare ad essere qualcosa d'altro. 1078 00:55:53,380 --> 00:55:57,080 Il motivo per cui in realtà non li scrive come la corda e così via 1079 00:55:57,080 --> 00:56:00,260 è perché nel come i primi giorni di C, 1080 00:56:00,260 --> 00:56:04,100 quando le persone erano prima scrittura e tutto il resto, 1081 00:56:04,100 --> 00:56:07,580 avevano limitazioni sul numero di caratteri che è possibile utilizzare 1082 00:56:07,580 --> 00:56:09,950 per i nomi delle funzioni e nomi di variabili, 1083 00:56:09,950 --> 00:56:12,620 quindi tutto è come Super condensato. 1084 00:56:12,620 --> 00:56:15,750 Ma ogni volta che vedi qualcosa che inizia con str, 1085 00:56:15,750 --> 00:56:18,600 che significa in genere questo ha qualcosa a che fare con una stringa. 1086 00:56:20,990 --> 00:56:23,350 >> Ok, quindi hai avuto modo di ottenere la lunghezza della stringa, 1087 00:56:23,350 --> 00:56:27,110 e poi, cosa facciamo con i personaggi? 1088 00:56:27,110 --> 00:56:29,020 Sai, Sam? 1089 00:56:29,020 --> 00:56:32,410 >> Non ho idea, ho cercato di capirlo. 1090 00:56:32,410 --> 00:56:35,410 Io davvero non lo so - Vorrei che ci fosse un modo per - 1091 00:56:35,410 --> 00:56:38,990 Voglio dire, io credo che forse potremmo fare qualcosa con pari e dispari, 1092 00:56:38,990 --> 00:56:40,860 ma io non sono a conoscenza di qualsiasi funzione del genere. 1093 00:56:40,860 --> 00:56:42,240 Gia '. 1094 00:56:43,160 --> 00:56:45,200 >> Ma che - non necessariamente funzionare, 1095 00:56:45,200 --> 00:56:48,690 perché allora si dovrebbe ottenere gli spazi di essere - 1096 00:56:48,690 --> 00:56:51,130 si dovrebbe avere lo spazio per ricevere consigli su come - 1097 00:56:51,130 --> 00:56:54,310 Va bene. 1098 00:56:54,310 --> 00:56:56,490 >> Non lo so - Sto tipo di perdita, a questo punto. 1099 00:56:56,490 --> 00:56:58,120 Si '- no, no, no, questi sono punti buoni. 1100 00:56:58,120 --> 00:57:00,420 Quindi quello che dobbiamo fare è, come Sam ha detto, 1101 00:57:00,420 --> 00:57:02,970 abbiamo bisogno di tenere traccia di quali lettere sono le lettere dispari, 1102 00:57:02,970 --> 00:57:05,540 e quali sono le lettere pari. 1103 00:57:06,650 --> 00:57:09,090 Ma noi vogliamo fare in modo che non stiamo solo guardando 1104 00:57:09,090 --> 00:57:12,110 a pari e dispari 1105 00:57:12,110 --> 00:57:14,030 indici della stringa, 1106 00:57:14,030 --> 00:57:17,660 ma guardando le lettere dispari e pari nella stringa, 1107 00:57:17,660 --> 00:57:20,190 quindi abbiamo bisogno di avere un pò questa distinzione tra 1108 00:57:20,190 --> 00:57:25,190 lettere - come quello che in realtà è A, B, C, D, e così via, 1109 00:57:25,190 --> 00:57:29,090 e ciò che le cose non sono lettere, ma ancora nella nostra stringa. 1110 00:57:29,090 --> 00:57:32,390 Per esempio qui, in questo punto esclamativo non è una lettera, 1111 00:57:32,390 --> 00:57:36,060 ma è ancora parte della nostra stringa, è ancora un char. 1112 00:57:36,060 --> 00:57:38,820 Analogamente, tutti questi spazi - 1113 00:57:38,820 --> 00:57:41,710 non ha senso di capitalizzare uno spazio, giusto? 1114 00:57:41,710 --> 00:57:46,160 Quindi vogliamo fare in modo che in qualche modo saltare quelle 1115 00:57:46,160 --> 00:57:49,410 pur continuando a monitorare i pari e dispari. 1116 00:57:50,900 --> 00:57:54,990 >> Quindi, nel nostro tipo di strumenti di programmazione 1117 00:57:54,990 --> 00:57:57,270 finora, se si vuole, 1118 00:57:57,270 --> 00:58:01,310 abbiamo una serie di diversi strumenti che abbiamo parlato. 1119 00:58:01,310 --> 00:58:04,640 Quindi uno, per esempio, sono variabili, 1120 00:58:04,640 --> 00:58:07,120 come abbiamo già parlato qui. 1121 00:58:07,120 --> 00:58:10,730 Un altro strumento di cui abbiamo parlato sono funzioni. 1122 00:58:10,730 --> 00:58:15,800 Proprio per questo abbiamo parlato di variabili nel nostro pseudocodice qui 1123 00:58:15,800 --> 00:58:19,760 come quello che abbiamo intenzione di utilizzare per memorizzare la nostra stringa. 1124 00:58:19,760 --> 00:58:24,630 Abbiamo parlato di funzioni per ottenere la lunghezza di una stringa, come strlen. 1125 00:58:28,510 --> 00:58:31,170 Abbiamo parlato di qualcosa d'altro, e abbiamo parlato 1126 00:58:31,170 --> 00:58:34,850 per una partita in precedenza nella sezione oggi: loop. 1127 00:58:39,390 --> 00:58:42,030 >> Cosa ne pensate voi ragazzi di usare un ciclo in questo programma? 1128 00:58:42,030 --> 00:58:44,110 Jared, cosa ne pensi? 1129 00:58:47,150 --> 00:58:50,030 Sarebbe usiamo un ciclo in questo programma? 1130 00:58:50,030 --> 00:58:52,500 >> Probabilmente no, no, perché non devono passare più di una volta. 1131 00:58:52,500 --> 00:58:55,260 Ok, non c'è bisogno di passare attraverso quello che più di una volta? 1132 00:58:55,260 --> 00:58:57,190 >> L'intera stringa. 1133 00:58:57,190 --> 00:59:00,660 Giusto, quindi non c'è bisogno di passare attraverso l'intera stringa una volta. 1134 00:59:00,660 --> 00:59:03,330 Mi dispiace che ha assolutamente senso! 1135 00:59:03,330 --> 00:59:06,360 Non c'è bisogno di passare attraverso l'intera stringa più di una volta. 1136 00:59:06,360 --> 00:59:08,660 Va bene. 1137 00:59:09,790 --> 00:59:11,920 Cosa ne pensi? 1138 00:59:11,920 --> 00:59:14,110 >> Penso che è meglio usarli 1139 00:59:14,110 --> 00:59:16,640 in modo che possiamo fare come capitalizzare mentre 1140 00:59:16,640 --> 00:59:19,750 la posizione di esso è il numero [incomprensibile]. 1141 00:59:19,750 --> 00:59:22,940 Grande, e così capitalizzare cosa? 1142 00:59:22,940 --> 00:59:25,200 Ok, quindi stiamo dicendo che 1143 00:59:25,200 --> 00:59:28,130 dovremmo usare un ciclo perché vogliamo 1144 00:59:28,130 --> 00:59:32,550 una lettera in maiuscolo, mentre non è un numero. 1145 00:59:35,130 --> 00:59:37,140 Così - mi dispiace, volevi aggiungere? 1146 00:59:37,140 --> 00:59:39,340 >> Stavo per dire che il modo di trattare la stringa 1147 00:59:39,340 --> 00:59:42,290 e [incomprensibile] a parte il [incomprensibile] sui personaggi? 1148 00:59:42,290 --> 00:59:43,710 Gia '. 1149 00:59:43,710 --> 00:59:45,850 >> E poi siamo in grado di assegnare i numeri a - 1150 00:59:45,850 --> 00:59:47,780 o in base alla posizione delle lettere nella stringa? 1151 00:59:47,780 --> 00:59:49,720 Gia '. 1152 00:59:49,720 --> 00:59:53,640 E >> identificare se è pari o dispari e di capitalizzare la stessa lettera 1153 00:59:53,640 --> 00:59:57,750 mentre la posizione della lettera è [incomprensibile] - dispiace. 1154 00:59:57,750 --> 01:00:00,150 Grande. 1155 01:00:00,150 --> 01:00:03,430 >> Quindi, solo un riassunto. 1156 01:00:03,430 --> 01:00:05,840 Può mi ricordi il tuo nome - mi dispiace. 1157 01:00:05,840 --> 01:00:06,900 Charlotte >>. 1158 01:00:06,900 --> 01:00:08,490 Charlotte, va bene. 1159 01:00:08,490 --> 01:00:11,130 Così che cosa sta dicendo Charlotte, 1160 01:00:11,130 --> 01:00:14,950 che è totalmente di destra - Accidenti, questo piace ad auto trattino su di me - 1161 01:00:14,950 --> 01:00:17,770 è che se guardiamo a una stringa 1162 01:00:17,770 --> 01:00:19,160 come quello in alto - 1163 01:00:19,160 --> 01:00:21,590 "Thanks for the add" - 1164 01:00:21,590 --> 01:00:24,790 come una sequenza di caratteri 1165 01:00:24,790 --> 01:00:29,010 dove la posizione è a 0, 1166 01:00:29,010 --> 01:00:32,260 l'h corrisponde alla posizione 1. 1167 01:00:32,260 --> 01:00:36,880 A è a 2, poi abbiamo ottenuto 3, 4, 5; 1168 01:00:36,880 --> 01:00:40,830 lo spazio è in posizione 6. 1169 01:00:42,380 --> 01:00:45,300 Considerato che: - qual è la posizione di f? 1170 01:00:45,300 --> 01:00:47,610 7! 1171 01:00:47,610 --> 01:00:49,300 O? 8. 1172 01:00:49,300 --> 01:00:52,070 R? 9. 1173 01:00:52,070 --> 01:00:54,340 E poi abbiamo 10, quindi non posso davvero scrivi senza di essa 1174 01:00:54,340 --> 01:00:57,430 un pò disordinato ottenere sullo schermo. 1175 01:00:57,430 --> 01:01:02,340 Ma questo è in realtà il modo in cui si può parlare di stringhe in memoria. 1176 01:01:02,340 --> 01:01:04,660 Si tratta di una stringa 1177 01:01:04,660 --> 01:01:07,920 è una sequenza di caratteri, 1178 01:01:07,920 --> 01:01:12,430 e quando ci si riferisce a un singolo carattere in una stringa, 1179 01:01:12,430 --> 01:01:15,280 che spesso lo fanno facendo riferimento alla posizione di quel personaggio 1180 01:01:15,280 --> 01:01:17,620 all'interno della stringa, 1181 01:01:17,620 --> 01:01:19,910 probabilmente il modo stesso in cui si parla di settembre 1182 01:01:19,910 --> 01:01:22,870 è il nono mese dell'anno 1183 01:01:22,870 --> 01:01:27,730 o Lunedi è il primo giorno della settimana. 1184 01:01:29,280 --> 01:01:33,070 Quindi questo ci fornisce un modo per 1185 01:01:33,070 --> 01:01:37,030 capire quali sono dispari rispetto anche 1186 01:01:37,030 --> 01:01:39,540 perché si può vedere qui, 1187 01:01:39,540 --> 01:01:43,640 se la corrispondenza con questa T, 1188 01:01:46,310 --> 01:01:49,360 si può vedere che tutti quelli capitalizzati 1189 01:01:49,360 --> 01:01:53,040 sono anche posizioni, 1190 01:01:53,040 --> 01:01:55,880 almeno per la prima parola, 1191 01:01:55,880 --> 01:01:59,080 e poi le cose si buttato fuori una volta abbiamo raggiunto quello spazio, 1192 01:01:59,080 --> 01:02:02,460 perché noi non contano questo spazio come una lettera, 1193 01:02:02,460 --> 01:02:05,150 quindi è come se abbiamo iniziato 1194 01:02:05,150 --> 01:02:08,930 e andò 0, 1, 2, 3, 4, 5, 1195 01:02:08,930 --> 01:02:12,600 spazio, 6, 7, 8, spazio, 1196 01:02:12,600 --> 01:02:16,440 9, e poi 10, 11, 12, e così via. 1197 01:02:19,300 --> 01:02:22,910 >> Cool, quindi sicuramente ci vuole utilizzare una sorta di ciclo 1198 01:02:22,910 --> 01:02:27,760 di andare oltre tutti i personaggi a turno. 1199 01:02:31,330 --> 01:02:34,580 Quindi, a questo punto, 1200 01:02:36,490 --> 01:02:38,360 torneremo al nostro pseudocodice vecchio qui. 1201 01:02:40,970 --> 01:02:42,650 Come parte di questa identificazione di quali 1202 01:02:42,650 --> 01:02:45,350 sono in maiuscolo e quali sono minuscole, 1203 01:02:45,350 --> 01:02:48,340 dobbiamo provare a fare questo in una sorta di loop. 1204 01:02:51,080 --> 01:02:53,390 Loop, colon. 1205 01:02:55,070 --> 01:03:01,220 Che tipo di ciclo, fuori dei tipi di cicli che abbiamo, 1206 01:03:01,220 --> 01:03:03,670 sembra essere una buona da usare in questo caso? 1207 01:03:03,670 --> 01:03:05,610 >> Stavo pensando il ciclo for. 1208 01:03:05,610 --> 01:03:07,500 E perché stai pensando per il ciclo? 1209 01:03:07,500 --> 01:03:10,000 >> Perché parte da zero, e poi 1210 01:03:10,000 --> 01:03:13,000 quando si raggiunge la lunghezza della stringa, 1211 01:03:13,000 --> 01:03:16,170 e poi ogni iterazione si può [incomprensibile], anche tu? 1212 01:03:16,170 --> 01:03:18,260 Sì, esattamente. 1213 01:03:18,260 --> 01:03:21,490 Così, dalle diverse scelte di loop, 1214 01:03:21,490 --> 01:03:25,350 abbiamo cicli for, while e do-while. 1215 01:03:25,350 --> 01:03:28,550 Quando un ciclo for è particolarmente utile 1216 01:03:28,550 --> 01:03:32,120 è quando si vuole sapere 1217 01:03:32,120 --> 01:03:34,940 tipo di dove siete nel ciclo, 1218 01:03:34,940 --> 01:03:38,520 quante volte il ciclo è stato eseguito finora. 1219 01:03:38,520 --> 01:03:42,490 Che è esattamente quello che vogliamo sapere in questa situazione, 1220 01:03:42,490 --> 01:03:44,640 come ha detto Kelly, 1221 01:03:44,640 --> 01:03:47,400 in base al largo del commento precedente di Charlotte che vogliamo conoscere la posizione 1222 01:03:47,400 --> 01:03:49,900 del carattere all'interno della stringa, 1223 01:03:49,900 --> 01:03:51,750 e il ciclo for ci darà proprio questo, 1224 01:03:51,750 --> 01:03:54,680 perché se cominciamo tipo di guardare indietro alla nostra stringa, 1225 01:03:54,680 --> 01:03:57,140 se iniziamo il nostro ciclo per 0, 1226 01:03:57,140 --> 01:04:00,350 e saliamo attraverso la lunghezza della stringa completa, 1227 01:04:00,350 --> 01:04:04,740 allora siamo in grado di associare la lettera T 1228 01:04:04,740 --> 01:04:08,110 con lo 0 nel nostro ciclo for, 1229 01:04:09,950 --> 01:04:13,080 con la lettera H 1 nel nostro ciclo for, e così via, 1230 01:04:13,080 --> 01:04:16,600 percorrere la via fino alla fine della stringa. 1231 01:04:18,810 --> 01:04:21,890 >> Quindi cerchiamo di iniziare a scrivere codice presente solo un po ' 1232 01:04:21,890 --> 01:04:24,930 così voi avere un'idea di come si presenta. 1233 01:04:24,930 --> 01:04:27,980 Io vado a salvare questo, 1234 01:04:27,980 --> 01:04:31,230 quindi abbiamo ottenuto il nostro pseudo codice qui dentro, 1235 01:04:33,490 --> 01:04:38,120 e ho intenzione di cancellare tutto. 1236 01:04:38,120 --> 01:04:42,210 Così ho una tabula rasa. 1237 01:04:42,210 --> 01:04:45,910 Iniziero 'scrivendo int main (void) 1238 01:04:45,910 --> 01:04:48,440 { 1239 01:04:48,440 --> 01:04:51,380 Vado a mettere lo 0 ritorno in 1240 01:04:51,380 --> 01:04:53,320 e quindi il}. 1241 01:04:53,320 --> 01:04:56,130 Quindi di solito quando inizio a programmare, questo è quello che inizia con. 1242 01:04:56,130 --> 01:04:59,370 Io salvarlo in modo che voi ragazzi ce l'hanno. 1243 01:05:06,290 --> 01:05:08,440 Così una delle prime cose di cui abbiamo parlato è stato 1244 01:05:08,440 --> 01:05:10,920 avere un input da parte dell'utente 1245 01:05:10,920 --> 01:05:13,740 e riporlo in una stringa. 1246 01:05:13,740 --> 01:05:16,420 Come si fa a ricevere l'input da un utente? 1247 01:05:16,420 --> 01:05:19,640 GetString >>. 1248 01:05:19,640 --> 01:05:21,870 GetString, va bene. 1249 01:05:23,150 --> 01:05:26,820 Quindi, se di tipo I GetString () 1250 01:05:26,820 --> 01:05:32,150 e una virgola. 1251 01:05:32,150 --> 01:05:36,630 Proviamo l'esecuzione di questo, sarà questo percorso, prima di tutto? 1252 01:05:36,630 --> 01:05:38,430 E perché non sarà questo correre? 1253 01:05:38,430 --> 01:05:40,090 >> È necessario dichiarare la variabile. 1254 01:05:40,090 --> 01:05:43,040 Devo dichiarare una variabile. Va bene. 1255 01:05:43,040 --> 01:05:45,700 >> Allora, come faccio a farlo? 1256 01:05:45,700 --> 01:05:48,400 Ti dispiace scrivere qualcosa, condividerlo? 1257 01:05:48,400 --> 01:05:51,270 E poi siamo in grado di tirare su. 1258 01:05:51,270 --> 01:05:54,630 Vediamo, Dan, a destra, va bene. 1259 01:05:54,630 --> 01:05:59,100 Or Daniel. Ricevuto in, ingresso stringa = GetString (). 1260 01:05:59,100 --> 01:06:01,340 Awesome. 1261 01:06:01,340 --> 01:06:02,890 Sarà questo correre? 1262 01:06:02,890 --> 01:06:05,210 Proviamo. 1263 01:06:05,210 --> 01:06:08,890 Hit di esecuzione, il codice sorgente di caricamento, la costruzione, un errore. 1264 01:06:08,890 --> 01:06:11,040 Va bene. 1265 01:06:11,040 --> 01:06:14,950 Così che cosa sta succedendo qui? 1266 01:06:14,950 --> 01:06:18,700 L'uso di 'stringa' identificatore non dichiarato. 1267 01:06:18,700 --> 01:06:22,840 >> Dobbiamo includere le librerie? 1268 01:06:22,840 --> 01:06:25,130 Sì, così Dan dicendo che dobbiamo includere le librerie. 1269 01:06:25,130 --> 01:06:28,270 E 'questo che stavi per dire, Stella? Awesome. 1270 01:06:29,450 --> 01:06:31,430 E 'fantastico, così Stella, è possibile 1271 01:06:31,430 --> 01:06:34,800 copia questo codice su Spazio di Daniel? 1272 01:06:34,800 --> 01:06:37,580 Se si fa clic su Daniel Roland Ki, copiarlo, 1273 01:06:37,580 --> 01:06:41,360 e allora si mette la linea includono, e poi salvarlo fuori? 1274 01:06:46,580 --> 01:06:49,360 Fammi sapere quando sei pronto. 1275 01:06:57,160 --> 01:06:59,490 Quindi questa sintassi di inclusione è anche sorta di funky; 1276 01:06:59,490 --> 01:07:02,210 c'è come quel tag hash, 1277 01:07:02,210 --> 01:07:05,760 e c'è di inclusione, e poi ci sono queste parentesi angolari. 1278 01:07:12,490 --> 01:07:15,360 Ti ricordi come questo funziona, o devo mettere su questo codice proprio qui? 1279 01:07:15,360 --> 01:07:17,850 >> Sto bene. 1280 01:07:17,850 --> 01:07:19,810 Va bene. 1281 01:07:19,810 --> 01:07:23,260 >> Ho stampato - non ero sicuro di quale libreria, però. 1282 01:07:23,260 --> 01:07:25,570 Oh, va bene - sì, quindi è la libreria CS50. 1283 01:07:25,570 --> 01:07:27,660 >> Oh, ho messo libreria stdio. 1284 01:07:27,660 --> 01:07:30,950 >> Oh, ha ottenuto - si ', no, that's - 1285 01:07:30,950 --> 01:07:34,380 così si scopre che la stringa è in realtà qualcosa che è speciale per CS50. 1286 01:07:36,590 --> 01:07:41,240 C'è in realtà non è un tipo stringa vera 1287 01:07:41,240 --> 01:07:45,000 perché proprio qui, stringa è in posizione di tipo, - 1288 01:07:45,000 --> 01:07:49,140 stiamo dichiarando un ingresso variabile chiamata di tipo string - 1289 01:07:49,140 --> 01:07:53,320 e stiamo mettendo dentro di ingresso 1290 01:07:53,320 --> 01:07:58,440 il valore che viene restituito a noi: l'uscita di questa chiamata di funzione GetString. 1291 01:07:58,440 --> 01:08:02,910 Si può dire questo è una chiamata di funzione, perché ha le parentesi, proprio come fa printf, 1292 01:08:02,910 --> 01:08:05,920 proprio come strlen fa. 1293 01:08:05,920 --> 01:08:09,860 Ma stringa non è in realtà un tipo reale 1294 01:08:09,860 --> 01:08:11,760 nel linguaggio C. 1295 01:08:11,760 --> 01:08:15,710 Ce l'abbiamo fatta in un tipo, e ci vorranno circa altri quello che è in realtà 1296 01:08:15,710 --> 01:08:19,000 in C, perché c'è un modo di lavorare con le stringhe; 1297 01:08:19,000 --> 01:08:22,479 abbiamo appena fatto qualcosa per farlo sembrare un po 'più bello. 1298 01:08:22,479 --> 01:08:25,240 >> Quindi qui si va. 1299 01:08:25,240 --> 01:08:28,439 Ecco il codice di Stella. 1300 01:08:28,439 --> 01:08:32,470 E 'ottenuto il # include . 1301 01:08:32,470 --> 01:08:36,390 Altre persone si chiamano come un hash sono talvolta o un forte comprendono. 1302 01:08:36,390 --> 01:08:39,580 Ora possiamo avviarlo, eseguirlo, 1303 01:08:39,580 --> 01:08:43,649 e abbiamo ancora un errore. 1304 01:08:43,649 --> 01:08:46,290 Vediamo cosa sta succedendo. 1305 01:08:48,069 --> 01:08:50,569 "Variabile non utilizzato 'input'." 1306 01:08:50,569 --> 01:08:53,350 Ok, va bene, va bene. 1307 01:08:53,350 --> 01:08:55,859 Voglio dire, non è davvero cool, 1308 01:08:55,859 --> 01:08:57,930 perché stai ricevendo un errore e non è in esecuzione, 1309 01:08:57,930 --> 01:09:00,410 ma cosa sta dicendo è che 1310 01:09:00,410 --> 01:09:03,130 non abbiamo usato la nostra variabile, che ha un senso. 1311 01:09:03,130 --> 01:09:06,090 Non abbiamo cercato di fare qualsiasi cosa con esso. 1312 01:09:07,819 --> 01:09:10,490 Questo è un modo che 1313 01:09:10,490 --> 01:09:14,170 Clang sta cercando di aiutarci a fare in modo che non stiamo solo usando le variabili 1314 01:09:14,170 --> 01:09:18,819 e poi inavvertitamente chiamandoli qualcos'altro più avanti nel nostro codice, 1315 01:09:18,819 --> 01:09:21,649 aiuta ad evitare gli errori in questo modo. 1316 01:09:23,130 --> 01:09:28,810 >> Va bene, allora abbiamo di input da utente, 1317 01:09:28,810 --> 01:09:31,910 abbiamo memorizzato in una variabile. 1318 01:09:31,910 --> 01:09:34,569 Il passo successivo è stato quello di allora 1319 01:09:34,569 --> 01:09:37,609 iniziare a guardare tutti i caratteri della stringa 1320 01:09:37,609 --> 01:09:41,830 e individuare quali devono essere maiuscoli 1321 01:09:41,830 --> 01:09:44,600 e quali devono essere in minuscolo. 1322 01:09:44,600 --> 01:09:49,439 E come Kelly e Charlotte cresciuto, 1323 01:09:49,439 --> 01:09:52,340 lo facciamo con un ciclo for. 1324 01:09:52,340 --> 01:09:55,520 Così qualcuno ricorda la sintassi di un ciclo for 1325 01:09:55,520 --> 01:09:58,670 e vorrei prendere una pugnalata a solo scrivere 1326 01:09:58,670 --> 01:10:03,170 la prima riga del ciclo for, proprio per il bit? 1327 01:10:05,740 --> 01:10:07,330 Kelly, vuoi fare un tentativo? 1328 01:10:07,330 --> 01:10:10,300 >> Si ', in modo da avere per inizializzare in primo luogo, 1329 01:10:10,300 --> 01:10:13,170 così ho messo i = 0, 1330 01:10:13,170 --> 01:10:15,390 e poi ho fatto i 01:10:18,570 E 'nel vostro spazio - posso tirare su? 1332 01:10:18,570 --> 01:10:21,330 >> Si ', ho fatto un casino un po', ma si '. 1333 01:10:21,330 --> 01:10:24,180 >> Okay, tirarlo verso l'alto. 1334 01:10:24,180 --> 01:10:26,490 Awesome. 1335 01:10:26,490 --> 01:10:29,510 >> Ma poi io non so se hai fatto che - 1336 01:10:29,510 --> 01:10:32,180 Si ', va bene. 1337 01:10:33,020 --> 01:10:36,030 Quindi, ecco quello che Kelly ha: guardiamo rapidamente. 1338 01:10:36,030 --> 01:10:40,290 Quindi lei è incluso il CS50 biblioteca in alto. 1339 01:10:40,290 --> 01:10:44,790 E 'incluso nella libreria standard IO nella parte superiore, 1340 01:10:45,550 --> 01:10:48,990 e il IO standard ha funzioni come printf, 1341 01:10:48,990 --> 01:10:51,690 quindi se si vuole usare printf, è necessario che la linea. 1342 01:10:53,060 --> 01:10:56,140 E poi ha incluso la libreria stringa, 1343 01:10:56,140 --> 01:10:58,200 che abbiamo bisogno, 1344 01:10:58,200 --> 01:11:01,010 perché la libreria stringa ha strlen funzione, 1345 01:11:01,010 --> 01:11:04,320 che ci arriveremo tra poco. 1346 01:11:04,320 --> 01:11:07,560 Quindi, se guardiamo a quello che Kelly ha fatto qui, 1347 01:11:07,560 --> 01:11:10,260 ci puoi camminare attraverso quello che hai fatto? 1348 01:11:10,260 --> 01:11:13,600 >> Si ', quindi - voglio dire, ho avuto errori, così - 1349 01:11:13,600 --> 01:11:15,380 Si ', no, E'- 1350 01:11:15,380 --> 01:11:18,580 >> Così ho voluto chiamare la stringa che ho ottenuto solo "stringa". 1351 01:11:18,580 --> 01:11:22,230 Volevo stampare la stringa 1352 01:11:22,230 --> 01:11:25,640 e poi - 1353 01:11:27,450 --> 01:11:30,930 Volevo come impostare la stringa come come un array di ogni carattere 1354 01:11:30,930 --> 01:11:33,170 essere diversi [incomprensibile], giusto? 1355 01:11:33,170 --> 01:11:38,080 E poi volevo iniziare alla posizione 0 1356 01:11:38,080 --> 01:11:40,630 e poi ogni 2 posti, 1357 01:11:40,630 --> 01:11:42,580 Stavo per capitalizzare, 1358 01:11:42,580 --> 01:11:45,680 quindi ho solo descritto come 23, perché stavo guardando la tabella ASCII. 1359 01:11:45,680 --> 01:11:48,730 Ecco, questo è quello che stavo pensando - Lo so che non è giusto. 1360 01:11:48,730 --> 01:11:50,920 >> Capito, quindi questo è un ottimo inizio. 1361 01:11:50,920 --> 01:11:54,120 Penso che un sacco del quadro è a posto qui. 1362 01:11:54,120 --> 01:11:57,500 Andiamo attraverso tipo di riga per riga e vedere cosa sta succedendo. 1363 01:11:57,500 --> 01:12:01,040 Quindi il modo in cui mi piace fare questo è solo iniziare la compilazione del codice 1364 01:12:01,040 --> 01:12:04,300 e lasciare che il compilatore mi dice come cosa c'è di sbagliato con il mio codice, 1365 01:12:04,300 --> 01:12:07,450 perché il compilatore è davvero bravo a raccontare che cosa è sbagliato con il codice. 1366 01:12:09,790 --> 01:12:12,780 Quindi, se si gioca, costruendo, e non costruire. 1367 01:12:12,780 --> 01:12:14,860 Dice che c'è stato un errore, 1368 01:12:14,860 --> 01:12:17,320 quindi se scorrere la pagina fino al primo errore, 1369 01:12:17,320 --> 01:12:20,960 ha detto - 1370 01:12:20,960 --> 01:12:22,040 abbiamo scorrere indietro fino alla cima, 1371 01:12:22,040 --> 01:12:26,070 possiamo vedere ci sono 5 gli errori generati qui in basso. 1372 01:12:26,070 --> 01:12:30,180 Oops, questo è davvero tagliato fuori. 1373 01:12:31,810 --> 01:12:35,790 Direi che è non solo andando a ottenere di meglio. 1374 01:12:36,970 --> 01:12:38,500 >> Ci siamo. 1375 01:12:39,790 --> 01:12:42,530 Quindi ci sono 5 errori totali generati. 1376 01:12:42,530 --> 01:12:45,140 Qui posso solo vedere il primo 2, 1377 01:12:45,140 --> 01:12:49,100 così posso spostare questo un po 'e poi specie di freccia verso l'alto. 1378 01:12:49,100 --> 01:12:53,220 Questo è il comando che è stato eseguito per compilare il codice, 1379 01:12:53,220 --> 01:12:59,030 e poi il primo errore era in file.c proprio qui: 1380 01:12:59,030 --> 01:13:03,300 "Atteso identificare o '('", ed è su questa linea 1381 01:13:03,300 --> 01:13:06,680 dove detta stringa = GetString (). 1382 01:13:07,660 --> 01:13:12,920 Potete vedere proprio qui che era sulla linea 8 di file.c, 1383 01:13:12,920 --> 01:13:17,230 e poi credo che questo è il carattere 12 - questo è l'errore. 1384 01:13:17,230 --> 01:13:20,390 Allora, cosa c'è che non va sulla linea 8 - Kelly? 1385 01:13:20,390 --> 01:13:22,810 >> Hai solo bisogno di chiamarlo, come, una lettera o qualcosa del genere, 1386 01:13:22,810 --> 01:13:24,400 come stringa s o qualcosa del genere? 1387 01:13:24,400 --> 01:13:28,250 Sì, così si scopre che questi nomi di tipo speciale, 1388 01:13:28,250 --> 01:13:31,770 così string, int, char, short, 1389 01:13:31,770 --> 01:13:35,740 sono tutte le parole chiave speciali, 1390 01:13:35,740 --> 01:13:38,940 e non si può effettivamente utilizzare come nomi delle variabili, 1391 01:13:38,940 --> 01:13:41,430 perché il compilatore vede che e dice: 1392 01:13:41,430 --> 01:13:43,680 "Oh, lo so che è un tipo," 1393 01:13:43,680 --> 01:13:46,530 quindi non si può effettivamente avere una variabile stringa chiamata stringa, 1394 01:13:46,530 --> 01:13:50,800 come sto cercando di fare qui, questo non funzionerà. 1395 01:13:52,610 --> 01:13:58,250 Ma invece, si può chiamare qualcosa come s o v o str. 1396 01:13:58,250 --> 01:14:01,540 Abbiamo anche potuto chiamare int. 1397 01:14:01,540 --> 01:14:03,740 Non possiamo avere una stringa chiamata int. 1398 01:14:03,740 --> 01:14:06,740 Non possiamo avere una stringa denominata char; nessuno di quelli funziona. 1399 01:14:06,740 --> 01:14:09,420 >> Quindi ci limiteremo a chiamarla s per il momento. 1400 01:14:10,630 --> 01:14:13,170 Awesome. 1401 01:14:13,170 --> 01:14:17,500 Quindi cosa succederà sta succedendo in questa linea? 1402 01:14:21,390 --> 01:14:24,350 String - questa linea sembra piuttosto buono? 1403 01:14:24,350 --> 01:14:27,830 Facciamo dargli un'altra possibilità, cerchiamo di farlo funzionare. 1404 01:14:27,830 --> 01:14:30,360 Ok, quindi abbiamo ancora degli errori. 1405 01:14:30,360 --> 01:14:32,080 Questa volta, siamo scesi a 4 errori. 1406 01:14:32,080 --> 01:14:34,350 Così abbiamo ottenuto uno di loro. 1407 01:14:34,350 --> 01:14:36,130 Andiamo in alto. 1408 01:14:36,130 --> 01:14:38,890 "Nome del tipo di imprevisto 'string': espressione atteso," sì? 1409 01:14:38,890 --> 01:14:41,780 >> Si ', perché ho cercato di assegnare un nome alla stringa. 1410 01:14:41,780 --> 01:14:44,270 Sì, così sembra che ora anche andare fix 1411 01:14:44,270 --> 01:14:46,560 tutti questi riferimenti a stringa. 1412 01:14:46,560 --> 01:14:50,070 Si può vedere che c'è un riferimento alla stringa qui, uno qui, uno qui, 1413 01:14:50,070 --> 01:14:53,440 in modo da poter spostare tutti questi a s. 1414 01:14:56,040 --> 01:15:00,930 Grande. Ok, eseguire di nuovo. 1415 01:15:00,930 --> 01:15:03,260 Edilizia - un altro errore. 1416 01:15:03,260 --> 01:15:06,900 >> Ok, ora siamo scesi a un errore, 1417 01:15:06,900 --> 01:15:11,090 così int i = s e quindi le parentesi quadre. 1418 01:15:11,090 --> 01:15:14,880 Così ci può dire un po 'di quello che fai qui, Kelly? 1419 01:15:14,880 --> 01:15:17,120 Sì >>. 1420 01:15:17,120 --> 01:15:19,410 Era sulla linea 10. 1421 01:15:19,410 --> 01:15:22,760 >> Non so se avevamo bisogno di tutto, 1422 01:15:22,760 --> 01:15:25,560 ma penso che stavo cercando di - 1423 01:15:25,560 --> 01:15:27,580 Io salvarlo in modo da poter seguire. 1424 01:15:27,580 --> 01:15:30,470 >> Credo di essere stato 1425 01:15:30,470 --> 01:15:33,150 cercando di dirgli di iniziare a posizione 0 1426 01:15:33,150 --> 01:15:35,030 all'inizio del mio ciclo for, 1427 01:15:35,030 --> 01:15:38,370 quindi penso che forse dicendo che non era necessario. 1428 01:15:39,690 --> 01:15:41,350 Quindi, solo per ricapitolare, 1429 01:15:41,350 --> 01:15:44,850 stavi dicendo che questo - si stava tentando di avviare questo in posizione 0 1430 01:15:44,850 --> 01:15:47,030 e ottenere questo - sì, 1431 01:15:47,030 --> 01:15:50,460 quindi penso che prima, anche quando vi erano a piedi attraverso il codice, 1432 01:15:50,460 --> 01:15:54,070 stavi parlando di come si voleva trattare la stringa come un array 1433 01:15:54,070 --> 01:15:57,440 in modo da poter accedere a ogni personaggio singolarmente. 1434 01:15:57,440 --> 01:16:00,660 Penso che gli array di cui Dan, anche cercando di convertire le stringhe in array. 1435 01:16:01,400 --> 01:16:03,300 >> Si scopre che tipo di sotto il cofano, 1436 01:16:03,300 --> 01:16:06,060 una stringa è in realtà memorizzato come un array già, 1437 01:16:06,060 --> 01:16:08,060 e si può accedere come un array; 1438 01:16:08,060 --> 01:16:12,390 non c'è conversione che dovete fare. 1439 01:16:12,390 --> 01:16:15,770 A isnt stringa - così - 1440 01:16:15,770 --> 01:16:18,200 una stringa non è in realtà un array, 1441 01:16:18,200 --> 01:16:21,940 ma è possibile accedere in quanto tale, perché tutti i personaggi sono memorizzati 1442 01:16:21,940 --> 01:16:25,160 accanto all'altra in memoria uno, 1443 01:16:25,160 --> 01:16:28,310 quindi se si vuole ottenere il primo carattere della stringa, 1444 01:16:28,310 --> 01:16:31,910 è lo stesso come ottenere il primo numero intero in un array di interi. 1445 01:16:31,910 --> 01:16:35,010 Così abbiamo spesso - we'll 1446 01:16:35,010 --> 01:16:36,360 riferimento al 2 come 1447 01:16:36,360 --> 01:16:38,590 oh, come una stringa, come un array, 1448 01:16:38,590 --> 01:16:40,830 anche se davvero - Stanno cose molto diverse, 1449 01:16:40,830 --> 01:16:43,410 ma è possibile trattare molto simile. 1450 01:16:44,700 --> 01:16:47,400 Così si scopre che questa linea di fatto - 1451 01:16:47,400 --> 01:16:51,270 non abbiamo bisogno di fare alcuna conversione, 1452 01:16:51,270 --> 01:16:53,500 e in effetti, 1453 01:16:53,500 --> 01:16:56,790 questo in realtà non è un'espressione valida, 1454 01:16:56,790 --> 01:16:59,040 che è ciò che il nostro compilatore ci sta dicendo. 1455 01:16:59,040 --> 01:17:01,290 Sta dicendo: "Ehi, si attendeva una espressione, 1456 01:17:01,290 --> 01:17:04,610 e quello che abbiamo qui è un qualcosa che non è un'espressione. " 1457 01:17:04,610 --> 01:17:07,310 Per dichiarare un array, 1458 01:17:07,310 --> 01:17:11,780 tutto quello che dovete fare è qualcosa di simile a questo con un punto e virgola, 1459 01:17:11,780 --> 01:17:15,080 e poi vi dico la matrice per quanto tempo si desidera che sia, 1460 01:17:15,080 --> 01:17:18,370 come 5, quindi questa linea 10 1461 01:17:18,370 --> 01:17:23,880 si dichiara un array chiamato i con 5 numeri interi in esso. 1462 01:17:23,880 --> 01:17:26,540 >> Questa è una parte, questo non è necessario per il codice, 1463 01:17:26,540 --> 01:17:30,970 ma questo è - questo è una specie di ciò che la dichiarazione è simile. 1464 01:17:30,970 --> 01:17:35,310 >> Come non utilizzare i char [strlen (s)]? 1465 01:17:35,310 --> 01:17:38,500 Char i [strlen (s)]? 1466 01:17:38,500 --> 01:17:41,500 >> I char, e quindi all'interno della parentesi, strlen (s). 1467 01:17:43,900 --> 01:17:47,710 Sì, così abbiamo potuto - 1468 01:17:47,710 --> 01:17:49,460 abbiamo potuto fare questo, 1469 01:17:49,460 --> 01:17:52,160 e questo avrebbe dichiarato - che cosa sarebbe questo? 1470 01:17:52,160 --> 01:17:55,900 >> Penso che sarebbe dichiarare un array 1471 01:17:55,900 --> 01:18:01,780 di, come - di - 1472 01:18:01,780 --> 01:18:04,540 oh, non è necessario l'i - oh, 1473 01:18:04,540 --> 01:18:06,420 sì, è sicuramente non è necessario il i. 1474 01:18:06,420 --> 01:18:10,250 Per dichiarare un array di caratteri 1475 01:18:10,250 --> 01:18:13,150 di lunghezza s. 1476 01:18:14,680 --> 01:18:16,770 E allora cosa dire di Sam è che 1477 01:18:16,770 --> 01:18:20,660 questa linea 10 - mi permetta di mettere un po 'di spazio tra essa e il resto in modo che possiamo isolare - 1478 01:18:20,660 --> 01:18:23,440 questa linea 10 sarebbe dichiarare un array 1479 01:18:23,440 --> 01:18:28,520 di caratteri, strlen (s) del valore di essi, 1480 01:18:28,520 --> 01:18:32,270 ma in realtà abbiamo bisogno della i, 1481 01:18:32,270 --> 01:18:35,710 e il motivo per cui abbiamo bisogno di i è perché abbiamo bisogno di dare un nome la matrice; 1482 01:18:35,710 --> 01:18:38,900 altrimenti, non avremmo di fare riferimento alla matrice avanti nel codice. 1483 01:18:38,900 --> 01:18:41,180 >> Quindi questo qui è il nome della matrice 1484 01:18:41,180 --> 01:18:43,420 e all'interno è la lunghezza. 1485 01:18:43,420 --> 01:18:45,010 Questo ci darà un array, 1486 01:18:45,010 --> 01:18:47,430 ma questo è - ancora una volta, questa è una dichiarazione. 1487 01:18:47,430 --> 01:18:50,380 Non è un incarico, non è una inizializzazione. 1488 01:18:50,380 --> 01:18:52,330 Se si dichiara questo array come questo, 1489 01:18:52,330 --> 01:18:54,490 c'è in realtà nessun elemento del contenuto della matrice. 1490 01:18:54,490 --> 01:18:57,490 E 'solo spazzatura - tutto ciò che è dentro. 1491 01:18:57,490 --> 01:18:59,780 E come abbiamo detto, 1492 01:18:59,780 --> 01:19:01,340 in realtà non c'è nemmeno bisogno di fare questa conversione, 1493 01:19:01,340 --> 01:19:04,810 perché possiamo già trattare stringa s come una matrice. 1494 01:19:06,750 --> 01:19:09,170 So che stiamo correndo un po 'lungo il tempo, 1495 01:19:09,170 --> 01:19:12,330 ma voglio ottenere solo molto velocemente a questo ciclo for 1496 01:19:12,330 --> 01:19:14,850 e vi mostrerà come accedere ai singoli caratteri nella matrice, 1497 01:19:14,850 --> 01:19:17,170 perché questo è fondamentale per il nostro incarico. 1498 01:19:17,170 --> 01:19:20,790 E poi ti lasceremo passare da lì. 1499 01:19:20,790 --> 01:19:24,610 >> Così qui, abbiamo un ciclo for 1500 01:19:24,610 --> 01:19:28,310 che sembra quasi buono. 1501 01:19:28,310 --> 01:19:30,960 Che non è proprio quasi arrivati? 1502 01:19:30,960 --> 01:19:33,240 Coso - cosa non lo è va bene in questo ciclo for? 1503 01:19:33,240 --> 01:19:36,010 No >> parentesi graffe? 1504 01:19:36,010 --> 01:19:38,420 Nessun parentesi graffe, per una. 1505 01:19:38,420 --> 01:19:42,580 Vuoi fare in modo che abbiamo il corpo del ciclo con le parentesi graffe. 1506 01:19:42,580 --> 01:19:45,240 Oops, non il tutore quadrato! 1507 01:19:45,240 --> 01:19:48,660 E qual è la prossima cosa che dobbiamo fare con questo ciclo? 1508 01:19:48,660 --> 01:19:52,640 Se provo ed eseguirlo, 1509 01:19:52,640 --> 01:19:56,740 che cosa è questo errore che ricevo? 1510 01:19:56,740 --> 01:20:00,990 Ricevo tutti questi errori - devo inizializzare i. 1511 01:20:00,990 --> 01:20:03,610 Grande. 1512 01:20:03,610 --> 01:20:05,770 Quindi questo sarà un ciclo - questo non è tutto lì, 1513 01:20:05,770 --> 01:20:08,680 ma è sempre molto vicino. 1514 01:20:08,680 --> 01:20:11,260 Questo codice si può ora eseguire, 1515 01:20:11,260 --> 01:20:14,620 costruire, un errore si verifica ancora. 1516 01:20:17,960 --> 01:20:19,800 Perché è ancora lamentando, 1517 01:20:19,800 --> 01:20:22,030 dicendo che l'espressione è inutilizzato, 1518 01:20:22,030 --> 01:20:24,600 e questo perché questa linea non fa nulla. 1519 01:20:24,600 --> 01:20:27,620 Non l'abbiamo memorizzare ovunque, noi non ha salvato il risultato. 1520 01:20:27,620 --> 01:20:30,210 Dove dovremmo salvare questo risultato? 1521 01:20:30,210 --> 01:20:32,920 >> S o i? 1522 01:20:32,920 --> 01:20:35,990 Esatto, e questa sintassi funky, 1523 01:20:35,990 --> 01:20:38,550 questo s con le parentesi quadre 1524 01:20:38,550 --> 01:20:41,500 significa accedere alla i-esimo carattere di s. 1525 01:20:41,500 --> 01:20:45,650 Che sta per essere qualcosa che è realmente importante per l'assegnazione. 1526 01:20:45,650 --> 01:20:48,070 Purtroppo, stiamo andando ad avere per fermarsi qui, 1527 01:20:48,070 --> 01:20:50,550 in modo che la sezione Sebastian può entrare, 1528 01:20:50,550 --> 01:20:53,980 ma sono felice di rimanere al di fuori dopo e avrà tutte le domande. 1529 01:20:53,980 --> 01:20:56,680 Quindi grazie ragazzi per essere venuti. 1530 01:20:56,680 --> 01:20:59,730 Questo dovrebbe caricare, creare, eseguire. 1531 01:21:01,570 --> 01:21:04,320 Siamo in grado di inserire una stringa come "ciao" 1532 01:21:06,570 --> 01:21:08,730 e stampa "QOX". 1533 01:21:08,730 --> 01:21:11,030 [Risate] 1534 01:21:11,030 --> 01:21:14,640 >> Quindi non proprio lì, ma in movimento, sempre verso quei loop! 1535 01:21:14,640 --> 01:21:18,640 Grazie per essere venuto, e sarò fuori.