1 00:00:00,000 --> 00:00:03,290 >> [RIPRODUZIONE DI BRANI MUSICALI] 2 00:00:03,290 --> 00:00:04,989 3 00:00:04,989 --> 00:00:06,280 JASON HIRSCHHORN: OK, tutti. 4 00:00:06,280 --> 00:00:07,460 Benvenuti alla Sezione. 5 00:00:07,460 --> 00:00:10,840 Questo è il CS50, la nostra stessa prima sezione eccellente. 6 00:00:10,840 --> 00:00:13,700 Come tutti sapete, la settimana prossima sezioni regolari inizieranno, 7 00:00:13,700 --> 00:00:15,580 ma questa settimana siamo tutti insieme. 8 00:00:15,580 --> 00:00:17,730 >> Ci sono io. 9 00:00:17,730 --> 00:00:18,840 Il mio nome è Jason. 10 00:00:18,840 --> 00:00:20,630 Sono un docente di Computer Science. 11 00:00:20,630 --> 00:00:23,910 Abbiamo Andi, che è il capo di TA CS50. 12 00:00:23,910 --> 00:00:27,630 E SCAZ, professor Brian Scassellati, lui è un professore di Computer Science. 13 00:00:27,630 --> 00:00:30,970 >> Noi siamo le teste CS50 a Yale. 14 00:00:30,970 --> 00:00:34,992 Si può sempre e-mail noi heads@cs50.yale.edu. 15 00:00:34,992 --> 00:00:35,950 Saremo a lezione. 16 00:00:35,950 --> 00:00:37,547 Saremo in orario d'ufficio. 17 00:00:37,547 --> 00:00:40,130 Se c'è mai niente che possiamo fare per voi, tutto il necessario, 18 00:00:40,130 --> 00:00:42,610 sentitevi liberi di entrare in contatto con noi. 19 00:00:42,610 --> 00:00:44,140 >> Allora cosa dobbiamo fare oggi? 20 00:00:44,140 --> 00:00:47,790 O prima di allora, che cosa è in arrivo questa settimana? 21 00:00:47,790 --> 00:00:52,620 Quindi orari di ufficio sono Lunedi, Martedì, Mercoledì e Giovedi, 8:00-11:00. 22 00:00:52,620 --> 00:00:54,770 C'è un calendario sul sito web. 23 00:00:54,770 --> 00:00:57,830 >> Sezioni, come ho già detto, stanno partire dalla prossima settimana. 24 00:00:57,830 --> 00:01:01,390 E scoprirete questa settimana cosa tempo la vostra sezione è, che giorno è, 25 00:01:01,390 --> 00:01:03,350 e chi è il vostro TA è. 26 00:01:03,350 --> 00:01:08,610 >> Set Problema 1 è dovuto al Giovedi a mezzogiorno, Venerdì a mezzogiorno con un giorno di ritardo. 27 00:01:08,610 --> 00:01:10,817 Sì, avete nove giorni di ritardo. 28 00:01:10,817 --> 00:01:12,150 E ci sono nove set di problemi. 29 00:01:12,150 --> 00:01:14,320 E può utilizzare un solo giorno di ritardo per set problema. 30 00:01:14,320 --> 00:01:17,930 Sì, in effetti, tutto il problema set sono dovuti Venerdì a mezzogiorno. 31 00:01:17,930 --> 00:01:18,550 Questo è tutto. 32 00:01:18,550 --> 00:01:20,400 Tutto ciò che i dettagli sono sul programma. 33 00:01:20,400 --> 00:01:22,360 >> Ogni Venerdì, abbiamo pranzi. 34 00:01:22,360 --> 00:01:25,230 Ci piace fare questo grande Naturalmente si sentono un po 'più piccolo. 35 00:01:25,230 --> 00:01:26,580 Quindi siete invitati a RSVP. 36 00:01:26,580 --> 00:01:30,050 Pranzo libero con il collega compagni di classe e personale. 37 00:01:30,050 --> 00:01:34,120 cs50.yale.edu/rsvp. 38 00:01:34,120 --> 00:01:36,940 >> Tutte queste cose che Ho sullo schermo, 39 00:01:36,940 --> 00:01:43,330 e di più, si può trovare o cs50.yale.edu cs50.harvard.edu, se si va a Harvard 40 00:01:43,330 --> 00:01:46,800 e stanno guardando questo in linea. 41 00:01:46,800 --> 00:01:50,240 >> Anche su questi siti, ci sono un sacco di risorse per voi. 42 00:01:50,240 --> 00:01:54,610 Ogni lezione non solo ha il video della conferenza, ma rileva anche. 43 00:01:54,610 --> 00:01:58,184 Qualcuno osserverà il lezioni e prendere appunti per voi. 44 00:01:58,184 --> 00:02:00,100 Così si può semplicemente pagare attenzione durante le lezioni, 45 00:02:00,100 --> 00:02:03,970 oppure è possibile utilizzare le loro note / nostro note per integrare le proprie note. 46 00:02:03,970 --> 00:02:04,987 >> Ci sono scivoli in linea. 47 00:02:04,987 --> 00:02:07,320 La fonte code-- tutto David va oltre a lezione, 48 00:02:07,320 --> 00:02:09,979 o SCAZ va ​​oltre lezione, che codice sorgente è disponibile on-line 49 00:02:09,979 --> 00:02:11,750 e, come come ho menzionato i video. 50 00:02:11,750 --> 00:02:14,257 >> Le sezioni, allo stesso modo, saranno tutti girati. 51 00:02:14,257 --> 00:02:15,840 Tutte queste diapositive saranno disponibili. 52 00:02:15,840 --> 00:02:18,190 Tutto questo codice sarà essere disponibili per voi. 53 00:02:18,190 --> 00:02:22,440 Ci sono corti sul sito web in cui I membri del personale CS50 spendono cinque a 10 54 00:02:22,440 --> 00:02:24,130 minuti che passano attraverso gli argomenti per voi. 55 00:02:24,130 --> 00:02:26,750 Alcuni di quelli che hai già incontrato in insiemi di problemi. 56 00:02:26,750 --> 00:02:30,430 >> Orario di ricevimento, come ho detto, il lunedì al giovedì, 8:00 alle 11:00. 57 00:02:30,430 --> 00:02:32,600 CS50 Studio è una risorsa fantastica. 58 00:02:32,600 --> 00:02:37,100 Ci sono problemi di pratica, diapositive campione, bug noti 59 00:02:37,100 --> 00:02:40,920 che gli studenti piace correre in, essenzialmente per ogni argomento che 60 00:02:40,920 --> 00:02:42,650 coprirà in questo corso. 61 00:02:42,650 --> 00:02:46,350 >> E, infine, in questa diapositiva almeno, Reference50 62 00:02:46,350 --> 00:02:49,690 che ti dà informazioni su tutte le funzioni C 63 00:02:49,690 --> 00:02:53,160 si potrebbe mai sperare da usare e molti, molti altri. 64 00:02:53,160 --> 00:02:55,690 >> Anche in questo caso, che puntini puntini a la parte inferiore dello schermo 65 00:02:55,690 --> 00:02:59,990 è per indicare che c'è anche più risorse su questi due siti web: 66 00:02:59,990 --> 00:03:04,270 cs50.yale.edu, cs50.harvard.edu. 67 00:03:04,270 --> 00:03:05,840 >> Allora, cosa stiamo facendo oggi? 68 00:03:05,840 --> 00:03:08,970 Beh, prima ho intenzione di dare si guardano le risorse. 69 00:03:08,970 --> 00:03:10,010 Già ha fatto quello. 70 00:03:10,010 --> 00:03:11,590 Guardaci. 71 00:03:11,590 --> 00:03:16,430 >> Ora, stiamo andando a andare oltre tipi di dati e operatori C. 72 00:03:16,430 --> 00:03:19,990 Poi Andi verrà qui e andare oltre le librerie in C, printf (), 73 00:03:19,990 --> 00:03:24,570 una funzione con la quale si è già familiare o sarà rapidamente diventare molto 74 00:03:24,570 --> 00:03:25,530 familiare. 75 00:03:25,530 --> 00:03:27,810 E potrai anche andare oltre condizionali e cicli. 76 00:03:27,810 --> 00:03:30,900 >> E poi finalmente, SCAZ andrà sopra il ID CS50. 77 00:03:30,900 --> 00:03:34,250 Se non si è in colomba già nel set Problema 1, 78 00:03:34,250 --> 00:03:37,060 e come utilizzare il i comandi del terminale e utili 79 00:03:37,060 --> 00:03:42,280 e poi danno alcuni demo e codifica pratica l'ID CS50. 80 00:03:42,280 --> 00:03:45,130 >> Prima di saltare in questo contenuto di questo lato, 81 00:03:45,130 --> 00:03:46,770 Qualcuno ha delle domande fino ad ora? 82 00:03:46,770 --> 00:03:53,190 83 00:03:53,190 --> 00:03:54,030 Grande. 84 00:03:54,030 --> 00:03:54,950 OK. 85 00:03:54,950 --> 00:03:55,810 Si cambia marcia. 86 00:03:55,810 --> 00:03:58,760 >> [INGRANAGGI CAMBIO] 87 00:03:58,760 --> 00:04:03,070 >> E 'stato me spostamento ingranaggi di una macchina manuale. 88 00:04:03,070 --> 00:04:10,920 Così tipi di dati in C, non si può semplicemente avere una variabile x e farlo essere sulla linea 10, 89 00:04:10,920 --> 00:04:17,170 un numero intero, forse il numero 1, sulla linea 20, un numero decimale 10.5, 90 00:04:17,170 --> 00:04:20,500 e poi un paio di linee poi una stringa, amo CS50. 91 00:04:20,500 --> 00:04:25,052 >> In C, le variabili possono essere solo una cosa e solo una cosa. 92 00:04:25,052 --> 00:04:26,510 E quindi bisogna dare loro tipi. 93 00:04:26,510 --> 00:04:28,780 E su questo bordo, avere una lista di tipi. 94 00:04:28,780 --> 00:04:32,000 Ci sono caratteri, che stare in piedi per i caratteri. 95 00:04:32,000 --> 00:04:36,850 Ecco, questo è una lettera A, B, C, D. Questo può anche essere uno spazio, 96 00:04:36,850 --> 00:04:40,290 o che può anche essere un carattere di nuova riga. 97 00:04:40,290 --> 00:04:45,030 >> Ci sono interi, che sono solo numeri, interi o interi numbers-- 98 00:04:45,030 --> 00:04:47,130 rather-- ma senza decimali. 99 00:04:47,130 --> 00:04:49,790 >> Per decimali, abbiamo numeri in virgola mobile. 100 00:04:49,790 --> 00:04:53,200 Numeri floating point sono numeri con decimali. 101 00:04:53,200 --> 00:04:58,160 >> Poi ci sono lunghi, che sono essenzialmente più numeri interi. 102 00:04:58,160 --> 00:05:01,160 Noterete che un lungo è 8 mentre un int è 4. 103 00:05:01,160 --> 00:05:02,640 Io riesco anche a che in un secondo. 104 00:05:02,640 --> 00:05:07,390 Questo perché anela possono memorizzare anche più interi di un int in grado di memorizzare. 105 00:05:07,390 --> 00:05:10,100 Double è un lungo float. 106 00:05:10,100 --> 00:05:12,460 >> E, infine, abbiamo stringa, che è un tipo 107 00:05:12,460 --> 00:05:14,430 che probabilmente avete usato prima. 108 00:05:14,430 --> 00:05:21,100 Se si includono hashtag # includeCS50.h nel file di origine, 109 00:05:21,100 --> 00:05:23,170 quindi è possibile utilizzare un tipo stringa. 110 00:05:23,170 --> 00:05:25,560 Non è in realtà costruito in C. 111 00:05:25,560 --> 00:05:27,760 >> Ci sono un paio di altri tipi pure. 112 00:05:27,760 --> 00:05:32,900 Ma questi sono quelli principali con che si intende utilizzare e di incontro. 113 00:05:32,900 --> 00:05:36,210 C come, ancora una volta ho già detto, ogni variable-- esso 114 00:05:36,210 --> 00:05:38,620 può essere un solo tipo e un solo tipo. 115 00:05:38,620 --> 00:05:42,890 Questo perché C è una staticamente lingua digitato, al contrario 116 00:05:42,890 --> 00:05:45,780 alle lingue dinamicamente tipizzati dove se si crea una variabile 117 00:05:45,780 --> 00:05:50,081 si può cambiare ciò che è memorizzato in come si va su nel vostro programma. 118 00:05:50,081 --> 00:05:52,580 Qui sulla mano destra lato, ho le diverse dimensioni 119 00:05:52,580 --> 00:05:57,440 di questi tipi di dati in byte. 120 00:05:57,440 --> 00:05:59,710 Quindi, un personaggio è 1 byte. 121 00:05:59,710 --> 00:06:01,250 Ecco 8 bit. 122 00:06:01,250 --> 00:06:05,530 E questo significa, perché 8 bit ci sono otto 0 e 1. 123 00:06:05,530 --> 00:06:08,280 Abbiamo visto i demo nel primo settimana con che le lampadine binari. 124 00:06:08,280 --> 00:06:15,680 >> Con 8 bit o 1 byte, possiamo rappresentare i numeri da 0 a 255. 125 00:06:15,680 --> 00:06:16,180 Destra. 126 00:06:16,180 --> 00:06:18,770 Se tutti gli 8 bit sono 0 che è 0. 127 00:06:18,770 --> 00:06:23,640 Se il primo bit è 1, che è il numero uno, e così via, fino fino a 255. 128 00:06:23,640 --> 00:06:28,290 Ed è per questo che per i caratteri che potete hanno essenzialmente fino a 255 di loro, 129 00:06:28,290 --> 00:06:31,210 ma che c'è molto da coprire tutti i personaggi che hanno bisogno di usare. 130 00:06:31,210 --> 00:06:38,060 >> Per gli interi, si può avere 0 e allora avete 2 al 32 meno 1. 131 00:06:38,060 --> 00:06:40,340 Quelli sono come molte opzioni avete per gli interi. 132 00:06:40,340 --> 00:06:44,780 >> Per un lungo, si ha 0 a 2 alla 64 meno 1. 133 00:06:44,780 --> 00:06:48,860 In modo da avere molti, molti, più opzioni per anela. 134 00:06:48,860 --> 00:06:54,220 >> Stringhe, che è un punto interrogativo perché questo è un cliffhanger per dopo. 135 00:06:54,220 --> 00:06:55,000 Già. 136 00:06:55,000 --> 00:06:56,350 Potrei dire a tutti è sul bordo della loro sede, 137 00:06:56,350 --> 00:06:57,450 come quello che è quel punto di domanda? 138 00:06:57,450 --> 00:06:58,390 Si tratta di un cliffhanger. 139 00:06:58,390 --> 00:07:02,340 Siamo alla fine coprire le dimensioni della archi e chiacchierare stringhe. 140 00:07:02,340 --> 00:07:04,692 Perché stringa è in realtà una delle rotelle 141 00:07:04,692 --> 00:07:06,400 abbiamo messo in questo Naturalmente all'inizio 142 00:07:06,400 --> 00:07:09,700 e poi decollare più tardi su, perché le stringhe in C 143 00:07:09,700 --> 00:07:13,320 sono in realtà puntatori di array di caratteri. 144 00:07:13,320 --> 00:07:15,810 Ma ancora una volta, questo è un Cliffhanger per dopo. 145 00:07:15,810 --> 00:07:18,890 Prima di passare tutte le domande, commenti, le preoccupazioni circa questa diapositiva? 146 00:07:18,890 --> 00:07:25,800 147 00:07:25,800 --> 00:07:26,630 >> OK. 148 00:07:26,630 --> 00:07:30,330 Devo essere un fantastico explainer. 149 00:07:30,330 --> 00:07:33,210 Anche quando si programma, avete intenzione di utilizzare questi operatori. 150 00:07:33,210 --> 00:07:36,730 Segnali molto semplici che possono fare semplice le operazioni, con il quale si sono probabilmente 151 00:07:36,730 --> 00:07:38,340 già molto familiare. 152 00:07:38,340 --> 00:07:42,580 >> Ad esempio, sulla destra lato, vediamo aggiungere. 153 00:07:42,580 --> 00:07:44,640 Per aggiungere, basta fare un segno più. 154 00:07:44,640 --> 00:07:46,850 E così si potrebbe avere due variabili xey. 155 00:07:46,850 --> 00:07:48,810 Si può fare x + y nel codice. 156 00:07:48,810 --> 00:07:52,790 Forse si vuole dire che a-- avere il numero 7 e 3, 157 00:07:52,790 --> 00:07:55,780 si desidera memorizzare che in una variabile denominata somma. 158 00:07:55,780 --> 00:08:03,010 Si può fare int per il tipo, lo spazio somma, il nome della variabile, = 7 + 3; 159 00:08:03,010 --> 00:08:05,780 >> Cosa sarebbe quel negozio, insomma? 160 00:08:05,780 --> 00:08:07,190 Chiunque? 161 00:08:07,190 --> 00:08:09,270 Se avessi insomma = 7 + 3. 162 00:08:09,270 --> 00:08:10,437 Che cosa sarebbe essere conservati in somma? 163 00:08:10,437 --> 00:08:11,520 Si può solo gridare fuori. 164 00:08:11,520 --> 00:08:12,120 PUBBLICO: 10. 165 00:08:12,120 --> 00:08:12,995 >> JASON HIRSCHHORN: 10! 166 00:08:12,995 --> 00:08:14,870 Questo è esattamente vero. 167 00:08:14,870 --> 00:08:19,520 Che dire insomma = 7-3, Mi basta usare quel segno trattino. 168 00:08:19,520 --> 00:08:20,871 Cosa sta per essere conservato? 169 00:08:20,871 --> 00:08:21,370 PUBBLICO: 4. 170 00:08:21,370 --> 00:08:22,203 JASON HIRSCHHORN: 4. 171 00:08:22,203 --> 00:08:25,770 Somma è probabilmente il nome sbagliato per tale variabile, ma 4 viene memorizzato. 172 00:08:25,770 --> 00:08:31,890 >> Per moltiplicare in C, utilizzare il piccolo Carattere della stella, non si utilizza una x. 173 00:08:31,890 --> 00:08:35,990 Per dividere, utilizzare un Attaccante Non Slash il simbolo di divisione. 174 00:08:35,990 --> 00:08:39,580 E per Modulo, utilizzare il simbolo percentuale. 175 00:08:39,580 --> 00:08:47,900 >> Quindi diciamo che voglio vedere int z = 7% 3, ciò che sarebbe memorizzata in z? 176 00:08:47,900 --> 00:08:51,250 Quindi, questo è essenzialmente chiedendo che cosa fa modulo fare? 177 00:08:51,250 --> 00:08:52,750 Qualcuno sa che cosa fa modulo? 178 00:08:52,750 --> 00:08:53,940 Già. 179 00:08:53,940 --> 00:08:54,870 y 4. 180 00:08:54,870 --> 00:08:56,120 SPEAKER 1: E 'il resto. 181 00:08:56,120 --> 00:08:58,369 JASON HIRSCHHORN: E 'la resto quando si divide. 182 00:08:58,369 --> 00:09:02,790 Così 7 diviso 3 è 2 restante 1. 183 00:09:02,790 --> 00:09:04,690 Quindi 1 viene memorizzato. 184 00:09:04,690 --> 00:09:06,970 >> Hai fatto sottrazione, ma è così che funziona. 185 00:09:06,970 --> 00:09:09,140 Questo è ciò che l'operatore modulo fa. 186 00:09:09,140 --> 00:09:12,360 Ci vuole un certo numero divide per un altro numero e torna a voi 187 00:09:12,360 --> 00:09:14,590 il promemoria. 188 00:09:14,590 --> 00:09:19,770 Quindi, di nuovo, il 7% 3 ti dà 1, perché 7 diviso 3 è 2 restante 1, 189 00:09:19,770 --> 00:09:21,650 e restituisce il resto. 190 00:09:21,650 --> 00:09:24,470 >> Che dire andiamo indietro un passo a quel segno di divisione. 191 00:09:24,470 --> 00:09:29,194 Se ho fatto 7 / diviso 3 fa Qualcuno sa cosa che sarebbe tornato? 192 00:09:29,194 --> 00:09:30,090 >> SPEAKER 2: 2. 193 00:09:30,090 --> 00:09:32,240 >> JASON HIRSCHHORN: Perché 2 e non 2.333? 194 00:09:32,240 --> 00:09:34,560 >> SPEAKER 2: Penso taglia dopo il numero intero. 195 00:09:34,560 --> 00:09:36,310 JASON HIRSCHHORN: So che è esattamente vero. 196 00:09:36,310 --> 00:09:39,880 In C, se si fa la divisione di due interi 7 diviso 3, 197 00:09:39,880 --> 00:09:43,430 ottiene la risposta che in questo caso 2,3333 per sempre 198 00:09:43,430 --> 00:09:47,080 e trova quel punto decimale e Chops tutto fuori dopo la virgola 199 00:09:47,080 --> 00:09:49,240 e ti restituisce solo 2. 200 00:09:49,240 --> 00:09:51,120 >> Quindi, se ho fatto 8 diviso 3. 201 00:09:51,120 --> 00:09:54,010 Che in realtà, lo sappiamo che per tornare 2.666, 202 00:09:54,010 --> 00:09:57,050 ma costolette tutto fuori a decimale, tronca tutto, 203 00:09:57,050 --> 00:09:58,640 e appena ritorna a voi due. 204 00:09:58,640 --> 00:10:02,090 Quindi 6 diviso 3, 7 diviso da 3, 8 diviso 3, 205 00:10:02,090 --> 00:10:04,840 sono tutti andando a tornare a te 2. 206 00:10:04,840 --> 00:10:08,770 >> Qualcuno sa, o avere una supposizione, quanto a come avrei potuto realmente ottenere 207 00:10:08,770 --> 00:10:10,790 la risposta completa, se voglio che decimale? 208 00:10:10,790 --> 00:10:13,120 209 00:10:13,120 --> 00:10:13,620 Già. 210 00:10:13,620 --> 00:10:14,152 Vai avanti. 211 00:10:14,152 --> 00:10:15,110 SPEAKER 3: Utilizzare un galleggiante? 212 00:10:15,110 --> 00:10:16,942 JASON HIRSCHHORN: Che vuoi dire? 213 00:10:16,942 --> 00:10:19,786 SPEAKER 3: Perché lei ha detto il galleggiante è per i numeri [incomprensibile] 214 00:10:19,786 --> 00:10:22,900 215 00:10:22,900 --> 00:10:23,900 JASON HIRSCHHORN: Giusto. 216 00:10:23,900 --> 00:10:26,100 Quindi, questo è esattamente giusto. 217 00:10:26,100 --> 00:10:28,440 7 è un numero intero. 218 00:10:28,440 --> 00:10:31,690 Ma se volessi trasformare questa in un numero decimale, 219 00:10:31,690 --> 00:10:34,674 Avrei dovuto memorizzare che come 7,0 poiché il computer 220 00:10:34,674 --> 00:10:37,090 è davvero stupid-- abbiamo visto che con il example-- PB e J 221 00:10:37,090 --> 00:10:38,930 sarà solo fare esattamente quello che gli si dice. 222 00:10:38,930 --> 00:10:40,846 >> Quindi, se si scrive 7, è penso che sia un numero intero. 223 00:10:40,846 --> 00:10:43,640 Se si scrive 7.0, anche se siamo sanno queste cose sono equivalenti, 224 00:10:43,640 --> 00:10:45,550 si tratta che come un numero in virgola mobile. 225 00:10:45,550 --> 00:10:50,441 Quindi, se avete fatto 7.0 diviso da 3 o diviso per 3,0, 226 00:10:50,441 --> 00:10:52,440 direbbe, OK, ora abbiamo a che fare con i galleggianti. 227 00:10:52,440 --> 00:10:57,514 Io tornerò a voi 2,333333 per sempre. 228 00:10:57,514 --> 00:10:59,930 Ma non proprio sempre, perché come abbiamo visto anche in conferenza, 229 00:10:59,930 --> 00:11:03,350 questi numeri in virgola mobile non sono esattamente preciso. 230 00:11:03,350 --> 00:11:05,940 >> Quindi, se si vuole che decimale, o una parte di tale decimale, 231 00:11:05,940 --> 00:11:08,090 poi si deve use-- uno di loro deve essere un numero decimale 232 00:11:08,090 --> 00:11:11,048 e il computer deve capire che si tratta di una virgola mobile sei 233 00:11:11,048 --> 00:11:13,350 si occupano di, non è un numero intero. 234 00:11:13,350 --> 00:11:16,760 Tutte le domande su quel tavolo su il lato destro, fino ad ora? 235 00:11:16,760 --> 00:11:22,650 O il vostro lato della mano sinistra, la vostra a sinistra, lato sinistro. 236 00:11:22,650 --> 00:11:23,264 Già. 237 00:11:23,264 --> 00:11:23,972 SPEAKER 4: Giusto. 238 00:11:23,972 --> 00:11:26,216 Per proprio come un normale interi, si farebbe 239 00:11:26,216 --> 00:11:30,230 write-- avreste scrivere galleggiare? 240 00:11:30,230 --> 00:11:31,920 >> JASON HIRSCHHORN: Già così. 241 00:11:31,920 --> 00:11:34,400 Beh, se si desidera creare una variabile che è un galleggiante, 242 00:11:34,400 --> 00:11:37,020 è necessario dire galleggiante z è uguale a qualcosa. 243 00:11:37,020 --> 00:11:37,640 >> SPEAKER 4: OK. 244 00:11:37,640 --> 00:11:41,950 >> JASON HIRSCHHORN: Ma se volevo fare 7 diviso 3 e ottenere che decimale, 245 00:11:41,950 --> 00:11:48,540 Vorrei fare float z = 7.0 / del 3,0; e che mi avrebbe dato la virgola mobile 246 00:11:48,540 --> 00:11:49,273 numero. 247 00:11:49,273 --> 00:11:50,000 >> SPEAKER 4: OK. 248 00:11:50,000 --> 00:11:56,370 >> JASON HIRSCHHORN: Se l'ho fatto qualcosa come int z = 7 / del 3, 249 00:11:56,370 --> 00:12:00,856 che mi avrebbe dato un numero intero, perché questi sono tutti i numeri interi. 250 00:12:00,856 --> 00:12:01,730 Questo fa senso? 251 00:12:01,730 --> 00:12:02,320 >> SPEAKER 4: Sì. 252 00:12:02,320 --> 00:12:02,950 >> JASON HIRSCHHORN: OK. 253 00:12:02,950 --> 00:12:03,450 Grande. 254 00:12:03,450 --> 00:12:06,030 Tutte le altre domande su quel tavolo? 255 00:12:06,030 --> 00:12:07,220 Davvero? 256 00:12:07,220 --> 00:12:08,380 Sono così emozionato. 257 00:12:08,380 --> 00:12:09,120 OK. 258 00:12:09,120 --> 00:12:13,910 >> Così alcune altre cose che si intende utilizzare, spesso in condizioni o loop, 259 00:12:13,910 --> 00:12:17,580 sono questi tipi di operators-- questi tipi di espressioni booleane. 260 00:12:17,580 --> 00:12:23,140 E come abbiamo appreso, == è quello che utilizzare per controllare se due cose sono uguali. 261 00:12:23,140 --> 00:12:28,170 >> Così qui sto controllando se x == y, andiamo ancora una volta si supponga che x è 7 e y è 3. 262 00:12:28,170 --> 00:12:33,220 Quindi, se ho scritto 7 == 3, cosa vorrei che tornare da me? 263 00:12:33,220 --> 00:12:34,220 È vero o falso? 264 00:12:34,220 --> 00:12:35,275 >> PUBBLICO: Falso. 265 00:12:35,275 --> 00:12:36,150 JASON HIRSCHHORN: OK. 266 00:12:36,150 --> 00:12:37,370 Mi sento come se tutti possono ottenere questo. 267 00:12:37,370 --> 00:12:39,054 Così tutti, quale sarebbe tornare? 268 00:12:39,054 --> 00:12:39,720 PUBBLICO: Falso. 269 00:12:39,720 --> 00:12:40,130 JASON HIRSCHHORN: Falso. 270 00:12:40,130 --> 00:12:40,850 Grande. 271 00:12:40,850 --> 00:12:41,930 7 non è uguale a 3. 272 00:12:41,930 --> 00:12:44,530 Così 7 == 3 sarebbe tornato falso. 273 00:12:44,530 --> 00:12:50,746 Si ha un segno diverso, quindi se io checked 7! = 3, quale sarebbe tornare? 274 00:12:50,746 --> 00:12:51,370 PUBBLICO: Vero. 275 00:12:51,370 --> 00:12:52,650 JASON HIRSCHHORN: Vero. 276 00:12:52,650 --> 00:12:53,200 Eccellente. 277 00:12:53,200 --> 00:12:55,990 Qualcuno era molto enfatico in la schiena e apprezzo. 278 00:12:55,990 --> 00:12:59,070 Allora avete meno di operatore, inferiore o uguale a, 279 00:12:59,070 --> 00:13:01,990 maggiore operatore, maggiore o uguale all'operatore. 280 00:13:01,990 --> 00:13:03,490 >> Così un altro controllo di integrità. 281 00:13:03,490 --> 00:13:05,660 Se avessi 7 è maggiore o uguale a 3. 282 00:13:05,660 --> 00:13:06,966 Quale sarebbe tornare? 283 00:13:06,966 --> 00:13:07,692 >> PUBBLICO: Vero. 284 00:13:07,692 --> 00:13:08,650 JASON HIRSCHHORN: Vero. 285 00:13:08,650 --> 00:13:10,050 Sì. 286 00:13:10,050 --> 00:13:13,290 Quella stanza sul retro, lato posteriore della stanza, fantastico. 287 00:13:13,290 --> 00:13:16,240 È possibile combinare questi espressioni, se volete, come pure, 288 00:13:16,240 --> 00:13:21,880 con un AND logico che è && O un OR logico che è || 289 00:13:21,880 --> 00:13:22,800 ||. 290 00:13:22,800 --> 00:13:25,785 E così ora è possibile testare due cose together-- È divertente? 291 00:13:25,785 --> 00:13:28,250 Perché è così divertente? 292 00:13:28,250 --> 00:13:35,200 >> Quindi, se avessi voluto, posso dire è 7 maggiore di 3 e 2 è minore di 4? 293 00:13:35,200 --> 00:13:37,090 Beh, se 7 è maggiore a 3, questo è vero. 294 00:13:37,090 --> 00:13:38,400 2 è inferiore a 4, questo è vero. 295 00:13:38,400 --> 00:13:41,140 Quindi, tutta questa cosa sarebbe tornato vero. 296 00:13:41,140 --> 00:13:45,130 >> Se ho provato 7 è maggiore di 3 e- Sto solo raccogliendo numeri casuali qui-- 297 00:13:45,130 --> 00:13:47,340 4 è inferiore a 2, beh, questo è falso. 298 00:13:47,340 --> 00:13:49,610 Così vero e falso il falso. 299 00:13:49,610 --> 00:13:54,520 E si può andare avanti e si combinano come molte condizioni insieme come vorresti. 300 00:13:54,520 --> 00:14:00,000 >> Qualcuno ha tutte le domande, commenti, preoccupazioni finora? 301 00:14:00,000 --> 00:14:03,862 E vedo che alcuni di voi scattare foto di me in schermo, che apprezzo. 302 00:14:03,862 --> 00:14:05,070 Si spera, non è snapchat. 303 00:14:05,070 --> 00:14:06,417 Si spera, è per le note. 304 00:14:06,417 --> 00:14:08,500 Ma tutti questi stanno andando ad essere disponibili online. 305 00:14:08,500 --> 00:14:11,210 Quindi non c'è bisogno di scattare foto di questo. 306 00:14:11,210 --> 00:14:15,150 Come ho già detto, tutto sarà disponibile on-line per voi. 307 00:14:15,150 --> 00:14:15,650 OK. 308 00:14:15,650 --> 00:14:17,980 Sto per arrivare dietro le quinte, così fa chiunque 309 00:14:17,980 --> 00:14:20,350 voglio dire nulla prima che ciò accada? 310 00:14:20,350 --> 00:14:21,080 Domande? 311 00:14:21,080 --> 00:14:21,680 >> [VOICES interponendo] 312 00:14:21,680 --> 00:14:22,250 >> JASON HIRSCHHORN: Oh, smettila. 313 00:14:22,250 --> 00:14:23,290 Voi ragazzi siete troppo bello. 314 00:14:23,290 --> 00:14:23,790 OK. 315 00:14:23,790 --> 00:14:26,520 Ho intenzione di tag fuori. 316 00:14:26,520 --> 00:14:27,240 Andiamo. 317 00:14:27,240 --> 00:14:29,570 >> ANDI PENG: Stiamo andando a fare un cambiamento microfono imbarazzante ora. 318 00:14:29,570 --> 00:14:32,280 >> JASON HIRSCHHORN: Sono andando a prendere questa via. 319 00:14:32,280 --> 00:14:33,946 ANDI PENG: Apprezzare il supporto, ragazzi. 320 00:14:33,946 --> 00:14:42,250 321 00:14:42,250 --> 00:14:43,180 Riesci a sentirmi? 322 00:14:43,180 --> 00:14:43,930 Quello è buono? 323 00:14:43,930 --> 00:14:44,760 Perfetto. 324 00:14:44,760 --> 00:14:45,630 Bellissimo. 325 00:14:45,630 --> 00:14:47,490 Vorrei solo che a infilare. 326 00:14:47,490 --> 00:14:49,100 OK. 327 00:14:49,100 --> 00:14:54,140 Quindi, io sto per fare come un gigante informazioni sulla discarica voi in questo momento. 328 00:14:54,140 --> 00:14:57,370 E nessuna preoccupazione di sorta se siete non seguire ogni piccola linea di ciò che 329 00:14:57,370 --> 00:14:58,812 Sto per mostrarvi. 330 00:14:58,812 --> 00:15:00,770 Come ha detto Jason, tutto è completamente online. 331 00:15:00,770 --> 00:15:03,780 Basta stiamo andando a cercare di introdurre tutti i concetti coperto 332 00:15:03,780 --> 00:15:05,270 in alcune di queste diapositive. 333 00:15:05,270 --> 00:15:06,582 Quindi basta seguire lungo. 334 00:15:06,582 --> 00:15:09,540 Nessun problema se non capisci tutto; Tuttavia, se in qualsiasi punto 335 00:15:09,540 --> 00:15:12,820 ti senti perso, alzi la mano, ci fermeremo, non preoccuparti. 336 00:15:12,820 --> 00:15:15,060 Cool. 337 00:15:15,060 --> 00:15:19,270 >> Quindi penso qualcosa che David ha già menzionato nel tipo di lezione 338 00:15:19,270 --> 00:15:23,240 e Jason ha tipo di alluso ad oggi è ciò che una libreria è. 339 00:15:23,240 --> 00:15:27,510 Quindi, in programmazione, abbiamo queste cose chiamati librerie. 340 00:15:27,510 --> 00:15:29,690 Qualora, in sostanza, tutte essi sono è solo un set 341 00:15:29,690 --> 00:15:32,610 di funzioni, cioè essenzialmente solo codice che è 342 00:15:32,610 --> 00:15:35,070 già stato scritto da qualcun altro che tutti noi possiamo 343 00:15:35,070 --> 00:15:36,410 utilizzare nei nostri programmi. 344 00:15:36,410 --> 00:15:38,790 >> Così come fa un normale lavoro biblioteca, giusto? 345 00:15:38,790 --> 00:15:40,030 Si entra nella porta della biblioteca. 346 00:15:40,030 --> 00:15:41,890 Avete tutti questi libri che possono tirare fuori 347 00:15:41,890 --> 00:15:44,590 ed è possibile accedere alle informazioni all'interno di tali libri. 348 00:15:44,590 --> 00:15:45,840 Stessa cosa in programmazione. 349 00:15:45,840 --> 00:15:48,820 >> Si dispone di una libreria che ha già stato scritto da altre persone. 350 00:15:48,820 --> 00:15:51,530 E il modo in cui è possibile, come programmatore o uno studente, 351 00:15:51,530 --> 00:15:55,780 possono accedere a quella libreria è attraverso hashtag # include. 352 00:15:55,780 --> 00:15:59,720 >> Ad esempio, in C ci hanno tre C-- più 353 00:15:59,720 --> 00:16:03,420 comunemente usato tre di serie C libraries-- biblioteca di ingresso / uscita, 354 00:16:03,420 --> 00:16:05,540 la biblioteca corda, e la libreria matematica. 355 00:16:05,540 --> 00:16:07,610 >> Quindi, all'interno della vostra prima problema di coppia fissa, 356 00:16:07,610 --> 00:16:10,940 quelli saranno tre che si sta utilizzando principalmente. 357 00:16:10,940 --> 00:16:14,610 Così come già David spiegato in conferenza, 358 00:16:14,610 --> 00:16:17,460 lo standard I / O biblioteca, o il libreria standard di input / output 359 00:16:17,460 --> 00:16:18,620 fa esattamente questo. 360 00:16:18,620 --> 00:16:23,530 Esso consente, nel codice, a ingresso nulla dall'utente e output 361 00:16:23,530 --> 00:16:25,960 allo schermo, essenzialmente stampa allo schermo. 362 00:16:25,960 --> 00:16:29,990 >> E quindi ogni volta che si utilizza qualsiasi funzione, ad esempio la funzione printf () che 363 00:16:29,990 --> 00:16:33,319 stiamo per andare oltre alla diapositiva successiva, assicurarsi di includere lo standard di I / O 364 00:16:33,319 --> 00:16:36,360 biblioteca oppure non avete intenzione di essere in grado di utilizzare la funzione printf (). 365 00:16:36,360 --> 00:16:39,110 Perché tu, come il programmatore in realtà mai scritto quella funzione, 366 00:16:39,110 --> 00:16:41,840 stai usando solo qualcuno Codice altro all'interno del proprio codice. 367 00:16:41,840 --> 00:16:43,620 >> Questo fa senso tutti? 368 00:16:43,620 --> 00:16:44,520 Cool. 369 00:16:44,520 --> 00:16:48,530 >> E poi abbiamo essenzialmente immettersi la biblioteca e la math.h string.h 370 00:16:48,530 --> 00:16:52,970 biblioteca, .h significa solo biblioteca, altre librerie che più volte si 371 00:16:52,970 --> 00:16:55,310 prevede di utilizzare all'interno del codice. 372 00:16:55,310 --> 00:16:57,620 >> Tuttavia, ai fini di questa libreria, abbiamo anche 373 00:16:57,620 --> 00:17:01,170 have-- di questo class-- abbiamo anche quello che viene chiamato la biblioteca CS50, 374 00:17:01,170 --> 00:17:05,270 cs50.h, dove, per il vostro esame hanno creato 375 00:17:05,270 --> 00:17:07,369 molte funzioni importanti ed utili. 376 00:17:07,369 --> 00:17:09,550 In modo che il programmatore può piggyback off 377 00:17:09,550 --> 00:17:14,470 quello che abbiamo già scritto in modo che di disponibile questa funzione per voi 378 00:17:14,470 --> 00:17:15,599 per il vostro uso. 379 00:17:15,599 --> 00:17:18,359 >> Mi occuperò di un paio di le funzioni di uso comune, 380 00:17:18,359 --> 00:17:20,839 ma sanno che questi sono tutto Googleable on-line. 381 00:17:20,839 --> 00:17:24,904 Sentitevi liberi, tirare su la biblioteca e CS50 allora avete tutte le funzioni lì. 382 00:17:24,904 --> 00:17:25,828 Già. 383 00:17:25,828 --> 00:17:28,140 >> SPEAKER 5: Quindi, se non eri utilizzando il software 384 00:17:28,140 --> 00:17:29,916 è fornito a noi da la classe, lo fa 385 00:17:29,916 --> 00:17:32,698 significa che avremmo dovuto scaricare e trovare questo file di intestazione noi stessi e dire 386 00:17:32,698 --> 00:17:33,840 il computer dove si trova? 387 00:17:33,840 --> 00:17:34,320 >> ANDI PENG: Grande domanda. 388 00:17:34,320 --> 00:17:34,820 Esattamente. 389 00:17:34,820 --> 00:17:38,194 Quindi è come se non siete fisicamente presenti in una biblioteca, 390 00:17:38,194 --> 00:17:40,360 non c'è modo per effettivamente andare e accedervi. 391 00:17:40,360 --> 00:17:42,589 Quindi la stessa cosa con programmazione in C, è 392 00:17:42,589 --> 00:17:45,880 fare in modo che si sta usando il nostro apparecchio perché la libreria è già 393 00:17:45,880 --> 00:17:47,270 stato incorporato in esso. 394 00:17:47,270 --> 00:17:50,020 E poi, quando si hashtag #include, della biblioteca lì. 395 00:17:50,020 --> 00:17:50,520 Già. 396 00:17:50,520 --> 00:17:51,920 Bella domanda. 397 00:17:51,920 --> 00:17:53,461 Tutti bene? 398 00:17:53,461 --> 00:17:53,960 Cool. 399 00:17:53,960 --> 00:17:56,371 400 00:17:56,371 --> 00:17:56,870 Tutto ok. 401 00:17:56,870 --> 00:17:59,330 Quindi stiamo andando a colpire, in sostanza, ciò che è 402 00:17:59,330 --> 00:18:01,620 la prima funzione che Noi, come i programmatori sono 403 00:18:01,620 --> 00:18:03,900 intenzione di utilizzare all'interno del nostro codice. 404 00:18:03,900 --> 00:18:05,690 Questo si chiama la funzione printf (). 405 00:18:05,690 --> 00:18:08,450 Quindi, la funzione printf (), come ho già detto in ultima diapositiva, 406 00:18:08,450 --> 00:18:11,830 è incluso nello standard I / O, standard input / output, biblioteca. 407 00:18:11,830 --> 00:18:16,470 >> Quindi assicuratevi qualunque cosa stai using-- oh, mi permetta di afferrare il laser pointer-- 408 00:18:16,470 --> 00:18:18,660 ogni volta che si sta utilizzando la funzione printf (), 409 00:18:18,660 --> 00:18:21,790 è necessario includere standard di I / O biblioteca oppure, quando si compila, 410 00:18:21,790 --> 00:18:23,760 si sta andando ad ottenere un errore perché il computer sarà come, 411 00:18:23,760 --> 00:18:26,140 oh Non so dove printf () è, tu non mi stai dicendo dove printf () 412 00:18:26,140 --> 00:18:26,830 è. 413 00:18:26,830 --> 00:18:30,150 Well printf () è incluso nel I / O standard, in modo che quando si utilizza printf (), 414 00:18:30,150 --> 00:18:32,960 assicurarsi di avere quel riga sopra il vostro codice. 415 00:18:32,960 --> 00:18:36,040 >> Così, per esempio, printf () qui è una funzione. 416 00:18:36,040 --> 00:18:40,260 Tutto ciò che fa è stampare qualcosa all'interno delle parentesi per l'utente. 417 00:18:40,260 --> 00:18:44,840 Qualcuno dovrebbe piacerebbe prendere una pugnalata a ciò che questa riga di codice a destra 418 00:18:44,840 --> 00:18:46,420 qui sta per stampare? 419 00:18:46,420 --> 00:18:48,730 Quindi, la risposta è sullo schermo. 420 00:18:48,730 --> 00:18:50,480 Chiunque? 421 00:18:50,480 --> 00:18:51,380 >> VERDI: La parte inferiore. 422 00:18:51,380 --> 00:18:53,510 >> ANDI PENG: Verdi, perché non te ne vai avanti e dire tutta la dichiarazione? 423 00:18:53,510 --> 00:18:55,718 >> VERDI: Ciao, il mio nome è Andi, e ho 20 anni. 424 00:18:55,718 --> 00:18:57,270 ANDI PENG: Ah, bella. 425 00:18:57,270 --> 00:19:00,240 Quindi, in questa linea che andremo a stampare, Ciao, il mio nome è Andi, 426 00:19:00,240 --> 00:19:04,280 e ho 20 anni, che è in realtà una vera dichiarazione. 427 00:19:04,280 --> 00:19:05,090 >> Sintassi. 428 00:19:05,090 --> 00:19:08,830 Così paio di questioni sintattiche che voi ragazzi vuole fare in modo di sapere. 429 00:19:08,830 --> 00:19:09,360 Quotes. 430 00:19:09,360 --> 00:19:13,170 I doppi apici raccontano la computer che tutto dentro 431 00:19:13,170 --> 00:19:14,850 sta per essere stampato. 432 00:19:14,850 --> 00:19:16,620 >> Tutto all'interno lattina solo essere esattamente come 433 00:19:16,620 --> 00:19:19,920 lo si digita, ad eccezione di comunemente alla fine, 434 00:19:19,920 --> 00:19:23,610 stiamo andando a voler includere un hash-- oh sorry-- un trattino n. 435 00:19:23,610 --> 00:19:24,640 Quindi un trattino n. 436 00:19:24,640 --> 00:19:28,884 >> Qualcuno ha voglia di prendere una congettura a ciò che fa il nostro codice? 437 00:19:28,884 --> 00:19:29,465 Già. 438 00:19:29,465 --> 00:19:30,840 SPEAKER 6: mette su una nuova linea. 439 00:19:30,840 --> 00:19:31,650 ANDI PENG: Esattamente. 440 00:19:31,650 --> 00:19:34,660 Quindi tutto ciò che fa è permettere qualunque cosa accada 441 00:19:34,660 --> 00:19:37,520 dopo questo, dopo questa dichiarazione, da stampare su una nuova riga. 442 00:19:37,520 --> 00:19:40,030 In modo che quando si scrive il tuo codice non avete a caso le cose 443 00:19:40,030 --> 00:19:41,738 appiccicato alla fine che non si desidera. 444 00:19:41,738 --> 00:19:43,700 Che tutto si ordinatamente stampata una riga 445 00:19:43,700 --> 00:19:46,870 e poi si parte nella riga successiva. 446 00:19:46,870 --> 00:19:50,970 >> Qualcuno ricorda cosa che punto e virgola fa quando siamo codifica? 447 00:19:50,970 --> 00:19:54,580 448 00:19:54,580 --> 00:19:55,330 Già. 449 00:19:55,330 --> 00:19:55,740 >> SPEAKER 7: Dichiarazione. 450 00:19:55,740 --> 00:19:56,010 >> ANDI PENG: Siamo spiacenti? 451 00:19:56,010 --> 00:19:57,100 >> SPEAKER 7: finisce la dichiarazione? 452 00:19:57,100 --> 00:19:57,766 >> ANDI PENG: Sì. 453 00:19:57,766 --> 00:20:02,670 Quindi, in C, o qualsiasi programmazione lingua, il punto e virgola 454 00:20:02,670 --> 00:20:04,640 indica la fine di una linea di programmazione. 455 00:20:04,640 --> 00:20:09,240 Così, per esempio, in inglese usiamo periodo per dire, oh, questa è la fine di una frase. 456 00:20:09,240 --> 00:20:12,857 Nella programmazione, la stessa cosa, abbiamo un virgola per indicare la fine di una riga. 457 00:20:12,857 --> 00:20:14,690 Spesso, quando si è di iniziare la programmazione, 458 00:20:14,690 --> 00:20:17,150 ti rendi conto che dimenticare di aggiungere un punto e virgola 459 00:20:17,150 --> 00:20:19,400 e quindi si tenta di eseguire il codice e non funziona. 460 00:20:19,400 --> 00:20:21,520 E tu sei come, Ah, non lo faccio so perché, dovrebbe funzionare. 461 00:20:21,520 --> 00:20:24,394 >> Le probabilità sono voi probabilmente dimenticato un virgola o una parentesi o qualcosa 462 00:20:24,394 --> 00:20:25,020 da qualche parte. 463 00:20:25,020 --> 00:20:27,740 Quindi, questo è importante da ricordare. 464 00:20:27,740 --> 00:20:29,627 Cool. 465 00:20:29,627 --> 00:20:31,960 Va bene, per alzata di mano, come molte persone qui hanno mai 466 00:20:31,960 --> 00:20:37,210 preso AP Informatica o programmato in Java prima, mai? 467 00:20:37,210 --> 00:20:37,710 OK. 468 00:20:37,710 --> 00:20:38,210 Bello. 469 00:20:38,210 --> 00:20:41,340 Che non sarà applicabile poi, ma in Java, è 470 00:20:41,340 --> 00:20:44,960 avere qualcosa che si chiama System.out.println che non esiste in C. 471 00:20:44,960 --> 00:20:49,927 >> Quindi, in C, ogni volta che si voglio aggiungere nelle variabili 472 00:20:49,927 --> 00:20:51,760 in tutto quello che vuoi di stampare, c'è 473 00:20:51,760 --> 00:20:54,620 una sintassi specifica che andremo ad utilizzare. 474 00:20:54,620 --> 00:20:56,520 Che si chiama il placeholding-- essenzialmente 475 00:20:56,520 --> 00:21:01,180 aggiungiamo segnaposto in atto del numero intero o variabile 476 00:21:01,180 --> 00:21:02,580 che vogliamo stampare. 477 00:21:02,580 --> 00:21:07,430 >> Così come voi potete vedere abbiamo incluso un nuovo header libreria di file qui. 478 00:21:07,430 --> 00:21:09,130 La libreria CS50. 479 00:21:09,130 --> 00:21:13,160 E contenuta in quella libreria CS50 è una funzione comune useremo 480 00:21:13,160 --> 00:21:15,610 nel nostro corso chiamato GetInt (). 481 00:21:15,610 --> 00:21:21,830 >> Qualcuno vuole prendere una pugnalata a cosa GetInt () può essere eventualmente facendo. 482 00:21:21,830 --> 00:21:22,830 >> PUBBLICO: [incomprensibile] 483 00:21:22,830 --> 00:21:23,550 >> ANDI PENG: Siamo spiacenti. 484 00:21:23,550 --> 00:21:24,370 Non si sentiva voi. 485 00:21:24,370 --> 00:21:25,511 Maddie, chiunque. 486 00:21:25,511 --> 00:21:27,260 MADDIE: Oh, viene richiesto voi per un numero intero. 487 00:21:27,260 --> 00:21:28,051 ANDI PENG: Esattamente. 488 00:21:28,051 --> 00:21:30,670 Quindi questa funzione, un'altra funzione che è già 489 00:21:30,670 --> 00:21:33,690 stato scritto da qualcun altro che possiamo invocare ora. 490 00:21:33,690 --> 00:21:38,000 Tutto ciò che è è chiesto il tu, l'utente, per inserire quello che vuoi come il codice 491 00:21:38,000 --> 00:21:41,850 è in esecuzione e memorizza whatever-- in questo caso siamo GetInt () - voce, 492 00:21:41,850 --> 00:21:44,060 in modo che significa che siamo ottenere un numero intero. 493 00:21:44,060 --> 00:21:46,150 >> E stiamo andando a memorizzare che in un altro intero 494 00:21:46,150 --> 00:21:48,900 che abbiamo appena fatto chiamato età. 495 00:21:48,900 --> 00:21:51,500 Che senso per tutti? 496 00:21:51,500 --> 00:21:52,190 Cool. 497 00:21:52,190 --> 00:21:56,400 >> Quindi, ora che abbiamo memorizzato questo intero, che abbiamo spinti da parte dell'utente, 498 00:21:56,400 --> 00:22:00,010 in questa variabile, abbiamo creato di tipo int chiamato età, 499 00:22:00,010 --> 00:22:03,720 siamo in grado di andare avanti e luogo tale funzione nel nostro printf (). 500 00:22:03,720 --> 00:22:08,970 Così la sintassi di solito per printf () è che ovunque nel vostro fisico 501 00:22:08,970 --> 00:22:14,410 linea che si desidera includere tale intero, fate quel simbolo proprio lì, 502 00:22:14,410 --> 00:22:17,800 il simbolo di percentuale, con il tipo di variabile che si desidera. 503 00:22:17,800 --> 00:22:20,090 >> Quindi, in questo caso l'età è un numero intero. 504 00:22:20,090 --> 00:22:25,030 Quindi si sta andando a includere % i perché è un numero intero. 505 00:22:25,030 --> 00:22:26,860 E poi dopo la vostra dichiarazione, si sta andando 506 00:22:26,860 --> 00:22:30,370 per fare virgola e il il nome della variabile. 507 00:22:30,370 --> 00:22:33,420 >> Così qui, stiamo andando a stampare fuori, Ciao, il mio nome è Andi, 508 00:22:33,420 --> 00:22:35,730 e io sono anni di età vuote. 509 00:22:35,730 --> 00:22:38,890 Hashta-- o, sorry--, età con qualunque ingresso I. 510 00:22:38,890 --> 00:22:42,790 Quindi, se dovessi ingresso 20 per la mia GetInt () qui, 511 00:22:42,790 --> 00:22:44,500 sarebbe stampare la stessa identica cosa. 512 00:22:44,500 --> 00:22:47,990 Ma, se volevo qualcosa di ingresso altro, come forse 40 o 45, 513 00:22:47,990 --> 00:22:50,800 allora si vedrebbe che rifletteva di conseguenza nel codice. 514 00:22:50,800 --> 00:22:52,886 >> Quindi questo è un esempio di qualcosa in cui 515 00:22:52,886 --> 00:22:55,260 esso stampa e guarda voi come se fosse la stessa cosa, 516 00:22:55,260 --> 00:22:57,593 ma sotto il cofano il computer c'è in realtà 517 00:22:57,593 --> 00:22:59,560 cose molto diverse accadendo. 518 00:22:59,560 --> 00:23:00,060 Cool. 519 00:23:00,060 --> 00:23:02,760 520 00:23:02,760 --> 00:23:03,260 Tutto ok. 521 00:23:03,260 --> 00:23:06,940 Così che cosa se vogliamo più variabili? 522 00:23:06,940 --> 00:23:08,290 Molto facile. 523 00:23:08,290 --> 00:23:09,150 Stessa cosa. 524 00:23:09,150 --> 00:23:11,930 Abbiamo anche una nuova funzione qui chiamato GetString (), 525 00:23:11,930 --> 00:23:15,380 incluso anche all'interno della libreria CS50, che tutto ciò che fa è richiedere all'utente 526 00:23:15,380 --> 00:23:18,120 per una stringa, che è solo un insieme di caratteri, 527 00:23:18,120 --> 00:23:19,810 così come una frase o un nome simile. 528 00:23:19,810 --> 00:23:25,470 >> Quindi, in questo caso, avremmo due segnaposto% s per stringhe e% i 529 00:23:25,470 --> 00:23:26,750 per intero. 530 00:23:26,750 --> 00:23:29,190 E stiamo andando a seguire che le due variabili 531 00:23:29,190 --> 00:23:32,670 che vogliamo incluso, in ordine che appaiono nella frase. 532 00:23:32,670 --> 00:23:35,471 Così, per esempio, il mio nome è bianco, Voglio un nome lì, 533 00:23:35,471 --> 00:23:36,970 così ho intenzione di avere il nome prima. 534 00:23:36,970 --> 00:23:39,637 E poi dopo, voglio età, vuole avere l'età secondo. 535 00:23:39,637 --> 00:23:42,720 E così se volevo ingresso, Ciao, il mio nome Andi, e sono 20 anni. 536 00:23:42,720 --> 00:23:46,370 Se io immessi Andi e 20, il esatto stessa cosa stampare; 537 00:23:46,370 --> 00:23:51,134 tuttavia, ora abbiamo due memorizzato variabili del nome così come int. 538 00:23:51,134 --> 00:23:51,634 Già. 539 00:23:51,634 --> 00:23:54,124 >> SPEAKER 8: Sarebbe in grado di eseguire, se si è cambiato 540 00:23:54,124 --> 00:23:55,620 nome e l'età alla fine di questo? 541 00:23:55,620 --> 00:23:55,840 >> ANDI PENG: Sì. 542 00:23:55,840 --> 00:23:57,006 Questa è davvero una buona domanda. 543 00:23:57,006 --> 00:23:59,520 Quindi per farla breve, no. 544 00:23:59,520 --> 00:24:03,070 Perché il nome e age-- cosa tipo di variabile è il nome? 545 00:24:03,070 --> 00:24:03,950 >> SPEAKER 8: String. 546 00:24:03,950 --> 00:24:05,440 >> ANDI PENG: E cosa tipo di variabile è l'età? 547 00:24:05,440 --> 00:24:06,231 >> SPEAKER 8: Integer. 548 00:24:06,231 --> 00:24:10,290 ANDI PENG: Quindi qui abbiamo un segnaposto per la stringa e intero, giusto? 549 00:24:10,290 --> 00:24:13,350 Quindi, se si dovesse passare da queste, il computer non ha intenzione di conoscere. 550 00:24:13,350 --> 00:24:16,250 Sta andando a verificare la presenza di una stringa, e se si tenta di dare un int, 551 00:24:16,250 --> 00:24:18,083 che sta per essere come aspettare Sono confuso, è 552 00:24:18,083 --> 00:24:21,100 mi ha detto che dovrei essere l'assegnazione di memoria per un int. 553 00:24:21,100 --> 00:24:23,760 E proprio qui, quando si aspetta un numero intero 554 00:24:23,760 --> 00:24:25,640 e si dà un nome e una stringa invece, 555 00:24:25,640 --> 00:24:28,931 è anche andando essere molto confusa, si non verrà eseguito esattamente il modo in cui avete bisogno. 556 00:24:28,931 --> 00:24:35,280 Quindi, ecco, di denominazione e sintassi è molto importante per l'esecuzione del codice. 557 00:24:35,280 --> 00:24:37,991 Tutti bene? 558 00:24:37,991 --> 00:24:38,490 Già. 559 00:24:38,490 --> 00:24:39,476 Maddie. 560 00:24:39,476 --> 00:24:44,620 >> MADDIE: Qui, so che abbiamo esaminato gli esempi in classe, dove chiedono 561 00:24:44,620 --> 00:24:46,950 Qual è la tua età, qual è il tuo nome. 562 00:24:46,950 --> 00:24:50,250 Ecco, vorrei che sia doesn't-- se dovessimo eseguire questo codice, 563 00:24:50,250 --> 00:24:51,750 non sarebbe chiedere questo? 564 00:24:51,750 --> 00:24:54,740 Ma si farebbe solo di input due numeri e allora sarebbe correre in quel modo? 565 00:24:54,740 --> 00:24:55,781 >> ANDI PENG: Sì, esattamente. 566 00:24:55,781 --> 00:24:58,250 Quindi, se si voleva per la sua visualizzazione, inserisci la tua età, 567 00:24:58,250 --> 00:25:01,100 si può semplicemente aggiungere una funzione printf () Che dice, inserisci la tua età, 568 00:25:01,100 --> 00:25:01,600 Oltre a questo. 569 00:25:01,600 --> 00:25:02,711 Questa è una buona domanda. 570 00:25:02,711 --> 00:25:03,210 Già. 571 00:25:03,210 --> 00:25:07,964 >> SPEAKER 9: Così, sarebbe già incluso nel GetInt () [incomprensibile]. 572 00:25:07,964 --> 00:25:09,380 ANDI PENG: No, in realtà non lo è. 573 00:25:09,380 --> 00:25:11,809 Quindi tutto ciò che fa è solo richiede uno schermo vuoto 574 00:25:11,809 --> 00:25:13,100 per l'utente di inserire qualcosa. 575 00:25:13,100 --> 00:25:17,420 Se si vuole, se si desidera stampare qualcosa che indica all'utente come, 576 00:25:17,420 --> 00:25:21,110 per favore mi dia la vostra età, allora avrebbe dovuto printf (), che da soli. 577 00:25:21,110 --> 00:25:23,789 Perché tutti usano questo Funzione per cose diverse, 578 00:25:23,789 --> 00:25:26,080 si potrebbe essere memorizzando l'età, si potrebbe memorizzare l'indirizzo, 579 00:25:26,080 --> 00:25:28,060 si potrebbe essere la memorizzazione dei numeri di telefono. 580 00:25:28,060 --> 00:25:31,190 E quindi è davvero fino a usi individuali tuoi ragazzi ' 581 00:25:31,190 --> 00:25:34,390 per quello che vuoi dire. 582 00:25:34,390 --> 00:25:34,890 Già. 583 00:25:34,890 --> 00:25:38,236 >> SPEAKER 10: Così, tanto per chiarire, dove si fa inserire il nome e l'età 584 00:25:38,236 --> 00:25:43,020 così che si presenta al posto di% s? 585 00:25:43,020 --> 00:25:44,320 >> ANDI PENG: Come l'utente? 586 00:25:44,320 --> 00:25:47,165 >> SPEAKER 10: Sì, come come faccio fare it-- dove metto Andi, 587 00:25:47,165 --> 00:25:48,350 e dove metto 20? 588 00:25:48,350 --> 00:25:48,640 >> ANDI PENG: Sì. 589 00:25:48,640 --> 00:25:50,250 Quindi, se si dovesse in realtà eseguire questo codice, 590 00:25:50,250 --> 00:25:52,875 Io non sono effettivamente in esecuzione il codice, questo è solo qui adesso. 591 00:25:52,875 --> 00:25:56,910 Se dovessi eseguire il codice, lo farei compilare il codice, rendere il file, 592 00:25:56,910 --> 00:26:00,760 eseguire il codice, e poi ci sarebbe essere solo due spazi per me per inserire esso. 593 00:26:00,760 --> 00:26:01,260 Già. 594 00:26:01,260 --> 00:26:03,843 Voi ragazzi vedrà quando si gioca in giro con il codice. 595 00:26:03,843 --> 00:26:05,760 596 00:26:05,760 --> 00:26:09,645 >> D'accordo che andremo a spostare nella sezione successiva di quello 597 00:26:09,645 --> 00:26:11,610 tratteremo oggi. 598 00:26:11,610 --> 00:26:13,980 Stiamo per andare oltre ciò che istruzioni condizionali sono. 599 00:26:13,980 --> 00:26:16,500 Quindi, se voi ragazzi ricordate e richiamare da conferenza, 600 00:26:16,500 --> 00:26:19,210 istruzioni condizionali, tutto quello che sono sono un insieme 601 00:26:19,210 --> 00:26:24,010 di istruzioni per il computer che se una certa condizione è vera, 602 00:26:24,010 --> 00:26:27,470 si esegue il codice all'interno di tale condizione. 603 00:26:27,470 --> 00:26:30,101 >> Quindi, in sostanza, Scratch-- il grande tema da oggi 604 00:26:30,101 --> 00:26:32,850 è che voi ragazzi avete già tutto visto la logica dietro tutto 605 00:26:32,850 --> 00:26:34,020 che stiamo coprendo. 606 00:26:34,020 --> 00:26:36,190 E tutto quello che stiamo facendo è traducendo qualcosa 607 00:26:36,190 --> 00:26:39,090 che era molto intuitivo Scratch, e duro codificarlo 608 00:26:39,090 --> 00:26:41,950 nella sintassi useremo per la classe che è C. 609 00:26:41,950 --> 00:26:47,550 Quindi logicamente, tutto questo blocco era è quel pezzo di codice proprio lì. 610 00:26:47,550 --> 00:26:49,995 Già. 611 00:26:49,995 --> 00:26:50,900 OK. 612 00:26:50,900 --> 00:26:55,290 >> Otteniamo anche in un if ... else affermazione che è solo un ulteriore livello 613 00:26:55,290 --> 00:26:59,120 di complessità if in cui il computer dà uno sguardo a questo 614 00:26:59,120 --> 00:27:04,260 e vede, se questa condizione è vera, fare qualunque di all'interno di questi due staffe, 615 00:27:04,260 --> 00:27:08,470 else-- così un po 'come se il default non soddisfa il condition-- fare questo. 616 00:27:08,470 --> 00:27:10,120 E 'come un bivio. 617 00:27:10,120 --> 00:27:14,400 Se fuori piove, ho messo su una giacca antipioggia, altrimenti nulla 618 00:27:14,400 --> 00:27:16,330 altrimenti non metto su una giacca antipioggia. 619 00:27:16,330 --> 00:27:18,400 >> Ritiene che la logica ha senso per tutti? 620 00:27:18,400 --> 00:27:21,031 Cool. 621 00:27:21,031 --> 00:27:21,530 Tutto ok. 622 00:27:21,530 --> 00:27:24,970 Così come un esempio di duro questo che avremmo visto in C 623 00:27:24,970 --> 00:27:28,890 è se volevo creare un chiamati ora compiti a casa variabili. 624 00:27:28,890 --> 00:27:32,050 E se ora è meno compiti a casa a cinque, dico vita è grande. 625 00:27:32,050 --> 00:27:33,070 È meravigliosa. 626 00:27:33,070 --> 00:27:36,450 Tuttavia, dicono La lotta è real-- che è quello che tutti noi su questo Lunedi 627 00:27:36,450 --> 00:27:39,337 pomeriggio su Science Hill sono probabilmente facendo giusto now-- 628 00:27:39,337 --> 00:27:40,170 PUBBLICO: [Ride] 629 00:27:40,170 --> 00:27:42,510 ANDI PENG: Loro modo di avrebbe, grazie per questo. 630 00:27:42,510 --> 00:27:46,180 Il modo avremmo hardcode questo in C è se: supponiamo 631 00:27:46,180 --> 00:27:49,920 abbiamo già una variabile di tipo int chiamato ore di compiti a casa proprio qui. 632 00:27:49,920 --> 00:27:53,870 Se le ore di compiti a casa è inferiore a cinque printf (), La vita è grande. 633 00:27:53,870 --> 00:27:57,330 Ricordate mantenere / n perché si vuole una nuova riga dopo. 634 00:27:57,330 --> 00:27:59,660 Stampa Else, La lotta è reale. 635 00:27:59,660 --> 00:28:03,720 >> Fa capire a tutti come Sono passato dal ruolo che questo blocco 636 00:28:03,720 --> 00:28:07,610 in questo blocco di codice? 637 00:28:07,610 --> 00:28:08,110 Cool. 638 00:28:08,110 --> 00:28:11,030 639 00:28:11,030 --> 00:28:11,840 Tutto ok. 640 00:28:11,840 --> 00:28:15,930 >> Così ora stiamo andando a dare un'occhiata a più istruzioni If tutto. 641 00:28:15,930 --> 00:28:18,140 Quindi cerchiamo di assumere la scopo di questo programma 642 00:28:18,140 --> 00:28:20,870 era ci richiedere all'utente un grado. 643 00:28:20,870 --> 00:28:24,450 Abbiamo Prompt utilizzando GetInt () per un grade, e un valore di ingresso, 644 00:28:24,450 --> 00:28:27,700 e si desidera visualizzare che tipo di qualità hanno ottenuto. 645 00:28:27,700 --> 00:28:30,730 >> Quindi, se dovessi progettare un programma, io significa in genere in tutti i nostri occhi, 646 00:28:30,730 --> 00:28:35,490 90-100 è un A, 80-90 è un B, e così via e così via. 647 00:28:35,490 --> 00:28:39,040 Cosa c'è di sbagliato con questo pezzo di codice che non è 648 00:28:39,040 --> 00:28:41,393 fare quello che voglio fare. 649 00:28:41,393 --> 00:28:41,892 Già. 650 00:28:41,892 --> 00:28:45,100 >> SPEAKER 11: Hanno limiti inferiori, ma non hanno limiti superiori. 651 00:28:45,100 --> 00:28:46,280 >> ANDI PENG: Esattamente. 652 00:28:46,280 --> 00:28:47,950 Ognuno ha sentito quello che ha detto? 653 00:28:47,950 --> 00:28:50,200 Ci sara 'superiore limiti, ma senza limiti inferiori. 654 00:28:50,200 --> 00:28:52,540 Siamo spiacenti, viceversa, limiti più bassi, senza limiti superiori. 655 00:28:52,540 --> 00:28:55,090 Quindi ti piacerebbe prendere una pugnalata a dire 656 00:28:55,090 --> 00:28:58,945 ciò sarebbe stampato su questo schermo se dovessi eseguire questo codice. 657 00:28:58,945 --> 00:28:59,820 SPEAKER 11: Un errore? 658 00:28:59,820 --> 00:29:01,140 ANDI PENG: Un errore? 659 00:29:01,140 --> 00:29:02,740 Grande supposizione, non del tutto giusto. 660 00:29:02,740 --> 00:29:05,465 Qualcuno ha un'altra pugnalata? 661 00:29:05,465 --> 00:29:06,640 Sì, Aaron. 662 00:29:06,640 --> 00:29:10,099 >> AARON: Se si mette in qualcosa maggiore di 90, 663 00:29:10,099 --> 00:29:11,640 mostrerebbe tutti i voti che avete ottenuto. 664 00:29:11,640 --> 00:29:13,640 Sarebbe mostrare ottenuto una A, hai una B, hai una C. 665 00:29:13,640 --> 00:29:13,870 >> ANDI PENG: Sì. 666 00:29:13,870 --> 00:29:14,840 Questo è esattamente vero. 667 00:29:14,840 --> 00:29:17,820 Quindi, sarebbe meraviglioso. 668 00:29:17,820 --> 00:29:21,781 Tuttavia, essi sono reciprocamente esclusivo, credo. 669 00:29:21,781 --> 00:29:23,280 Se dovessi eseguire questo pezzo di codice. 670 00:29:23,280 --> 00:29:26,200 E poi diciamo, io immesso il grado di 95. 671 00:29:26,200 --> 00:29:30,360 Così 95 è ora memorizzata nella INT chiamato grado. 672 00:29:30,360 --> 00:29:33,610 >> E così C è un linguaggio che corre fino al basso, 673 00:29:33,610 --> 00:29:36,000 così sta andando sempre eseguire fino a fondo. 674 00:29:36,000 --> 00:29:39,420 Così sta andando a venire qui, se leggere grade è maggiore o uguale a 90, 675 00:29:39,420 --> 00:29:42,850 printf () avete ottenuto una A. Grande, io hanno un 95, che è maggiore di 90. 676 00:29:42,850 --> 00:29:44,866 Sta andando in stampa, Ho ottenuto una A. Sta andando 677 00:29:44,866 --> 00:29:48,850 a dare un'occhiata a questo se, sta andando dicono, ben 95 è anche superiore a 80, 678 00:29:48,850 --> 00:29:52,970 sta andando a stampare anche ottenuto un Got un punto esclamativo B, e così via e così 679 00:29:52,970 --> 00:29:53,690 via. 680 00:29:53,690 --> 00:29:55,890 >> Quindi, come tutti possiamo vedere, questo è un bug comune 681 00:29:55,890 --> 00:30:00,760 che possono verificarsi quando siamo la scrittura di codice per guardare fuori per. 682 00:30:00,760 --> 00:30:05,430 Chiunque, qualsiasi domanda su perché ciò che stava accadendo? 683 00:30:05,430 --> 00:30:05,930 Grande. 684 00:30:05,930 --> 00:30:08,920 685 00:30:08,920 --> 00:30:09,440 OK. 686 00:30:09,440 --> 00:30:12,110 >> Quindi, come possiamo risolvere questo problema, è ovviamente la domanda successiva logico. 687 00:30:12,110 --> 00:30:16,290 Bene, abbiamo queste belle cose chiamato if else if else 688 00:30:16,290 --> 00:30:18,010 se else. 689 00:30:18,010 --> 00:30:22,230 Così si può vedere, se si voleva per cambiare questo problema, 690 00:30:22,230 --> 00:30:25,260 si voleva fare ciascuna delle condizioni escludono a vicenda, 691 00:30:25,260 --> 00:30:26,860 si dovrebbe aggiungere un altro ... if. 692 00:30:26,860 --> 00:30:30,068 >> E questi naturalmente-- pensano di loro come scale, o come pioli sulla ladder-- 693 00:30:30,068 --> 00:30:34,050 è possibile aggiungere come molti di questi, come si desiderare per come molte condizioni come si desidera. 694 00:30:34,050 --> 00:30:36,790 Così qui, se immesso grado di essere 95. 695 00:30:36,790 --> 00:30:39,479 Se il voto è maggiore di 95, printf (), ho avuto un A. Grande. 696 00:30:39,479 --> 00:30:42,020 Sta andando a vedere una cosa ... se e sta andando a conoscere, Oh no, 697 00:30:42,020 --> 00:30:43,750 Ho già eseguito l'altro prima. 698 00:30:43,750 --> 00:30:47,020 Io know-- o la prima se: so che Io non devo guardare uno di questi 699 00:30:47,020 --> 00:30:48,920 perché uno di loro è già stato vero. 700 00:30:48,920 --> 00:30:50,410 Così sta andando a correre dall'alto verso il basso. 701 00:30:50,410 --> 00:30:53,650 Non appena il primo è vero, allora sta andando a saltare tutto il resto 702 00:30:53,650 --> 00:30:54,675 dei else ... if. 703 00:30:54,675 --> 00:30:55,550 Questo fa senso? 704 00:30:55,550 --> 00:30:57,841 Quindi, in questo modo si ha livelli diversi di verifica 705 00:30:57,841 --> 00:31:01,090 e non appena uno di loro è falsa, la resto sono anche, non sarà nemmeno controllare. 706 00:31:01,090 --> 00:31:03,577 707 00:31:03,577 --> 00:31:04,076 Cool. 708 00:31:04,076 --> 00:31:07,680 709 00:31:07,680 --> 00:31:08,180 Tutto ok. 710 00:31:08,180 --> 00:31:11,180 >> Quindi questo è un esempio di un diverso sorta di dichiarazione condizionale 711 00:31:11,180 --> 00:31:15,250 vediamo meno spesso, ma staremo a vedere loro e li usiamo. 712 00:31:15,250 --> 00:31:18,120 E sono spesso più efficiente per alcuni casi. 713 00:31:18,120 --> 00:31:20,020 Così abbiamo quello che si chiama un'istruzione switch. 714 00:31:20,020 --> 00:31:25,140 Quindi, prima abbiamo coperto che cosa è un altro istruzione, un'istruzione else if .... 715 00:31:25,140 --> 00:31:27,790 Qui, abbiamo quello che sono chiamato istruzioni switch. 716 00:31:27,790 --> 00:31:31,100 >> Così, quando fare usiamo interruttore affermazioni è la chiave? 717 00:31:31,100 --> 00:31:34,090 Quindi, in un'istruzione switch, si Di solito, in genere, in realtà voi 718 00:31:34,090 --> 00:31:38,010 può solo numeri interi di ingresso per il vostro variabile che si sta controllando. 719 00:31:38,010 --> 00:31:42,390 Quindi, se ho voluto verificare se una certa number-- per esempio 720 00:31:42,390 --> 00:31:43,720 un grado, se ho ottenuto un 90. 721 00:31:43,720 --> 00:31:48,190 Lo voglio vedere se questo è un A, B o C. potrei avere un caso qui. 722 00:31:48,190 --> 00:31:50,840 Tuttavia, il caso ha di essere un'altra costante. 723 00:31:50,840 --> 00:31:53,170 >> Quindi, in questo senso, la istruzione switch può solo 724 00:31:53,170 --> 00:31:55,290 verificare la presenza di uguaglianza di due numeri. 725 00:31:55,290 --> 00:31:57,242 Esso non verifica per altri scopi. 726 00:31:57,242 --> 00:31:59,950 Ecco, questo è qualcosa di cui essere molto attenzione quando si utilizza questo. 727 00:31:59,950 --> 00:32:04,810 Così qui, se volevo verificare se il grado di 90 è pari a 90 o 80 728 00:32:04,810 --> 00:32:08,500 o 70 o 60, e poi stampare del pari grado, 729 00:32:08,500 --> 00:32:11,420 Sarei in grado di scrivere che in un'istruzione switch. 730 00:32:11,420 --> 00:32:15,120 >> Così sta andando a venire qui, di controllo è questo intero uguale a questa costante? 731 00:32:15,120 --> 00:32:17,030 In caso contrario, sta andando a saltare. 732 00:32:17,030 --> 00:32:19,880 È uguale a costante due, e così via e così via, 733 00:32:19,880 --> 00:32:22,390 fino a colpire il valore di default, se nessuno di loro sono uguali. 734 00:32:22,390 --> 00:32:24,590 Non appena uno di essi è impostato per essere uguali, 735 00:32:24,590 --> 00:32:27,040 sta andando a fare questo riga di codice e pausa. 736 00:32:27,040 --> 00:32:30,990 Il che significa che sta andando a colpire quel correre, spezzare, e solo completamente saltare 737 00:32:30,990 --> 00:32:32,240 al fondo del codice. 738 00:32:32,240 --> 00:32:37,550 In questo senso il tipo di funzioni come un altro se if else if. 739 00:32:37,550 --> 00:32:40,830 >> Quindi, ecco un concreto esempio per voi ragazzi. 740 00:32:40,830 --> 00:32:46,140 Quindi supponiamo che volevo creare una variabile chiamata anno fondato. 741 00:32:46,140 --> 00:32:50,230 E voglio per richiedere all'utente di immettere l'anno in cui la loro scuola è stata fondata. 742 00:32:50,230 --> 00:32:53,300 Così posso creare uno switch qui. 743 00:32:53,300 --> 00:32:56,650 E diciamo solo che, ingresso I 1636. 744 00:32:56,650 --> 00:33:01,120 >> Questo codice qui è andare a vedere interruttore Anno di fondazione che è uguale a 1636. 745 00:33:01,120 --> 00:33:03,940 Sta andando a vedere caso 1636, oh quelli sono uguali, 746 00:33:03,940 --> 00:33:06,230 printf () Non dovresti essere in quella scuola a nord? 747 00:33:06,230 --> 00:33:08,770 Perché diamo per scontato non lo fanno andare qui se vanno a Harvard, 748 00:33:08,770 --> 00:33:10,380 rompere e passare alla fine. 749 00:33:10,380 --> 00:33:14,090 >> Se dovessi ingresso 1701, che Io assumere tutti noi farebbe ingresso, 750 00:33:14,090 --> 00:33:17,500 sarebbe saltare questo caso, vengono giù a caso due che è 1701, 751 00:33:17,500 --> 00:33:19,660 e stampa Benvenuti a Yale! 752 00:33:19,660 --> 00:33:21,360 Rompere, saltare alla fine. 753 00:33:21,360 --> 00:33:25,130 Altrimenti probabilmente sta assumendo questo corso online in cui case-- benvenuto impressionante 754 00:33:25,130 --> 00:33:29,020 per Yale-- sta andando per andare al stampa predefinita, Ciao Internet! 755 00:33:29,020 --> 00:33:29,870 E rompere. 756 00:33:29,870 --> 00:33:30,466 Già. 757 00:33:30,466 --> 00:33:32,090 >> SPEAKER 12: È possibile utilizzare altro invece di inadempienza lì? 758 00:33:32,090 --> 00:33:34,550 >> ANDI PENG: No, perché la modo che tutta questa funzione 759 00:33:34,550 --> 00:33:39,170 interruttore è costruito, la sintassi si necessario utilizzare maiuscole caso di default. 760 00:33:39,170 --> 00:33:42,400 E 'come il caso else if, questo uno che è caso caso di default. Già. 761 00:33:42,400 --> 00:33:45,650 SPEAKER 13: Forse già detto questo, ma si può avere più di due casi? 762 00:33:45,650 --> 00:33:48,066 ANDI PENG: Sì, si potrebbe avere come molti casi, come si desidera. 763 00:33:48,066 --> 00:33:50,050 Pensate a come proprio come infinitamente aggiungendo. 764 00:33:50,050 --> 00:33:52,396 >> SPEAKER 14: Se si commutato 1701 con 1636, 765 00:33:52,396 --> 00:33:54,187 in realtà non fa un diritto differenza? 766 00:33:54,187 --> 00:33:55,770 E 'solo andando a essere il controllo per questo. 767 00:33:55,770 --> 00:33:56,900 >> ANDI PENG: Questo è un davvero bella domanda. 768 00:33:56,900 --> 00:33:58,880 E ci tocchiamo in seguito, ma solo 769 00:33:58,880 --> 00:34:01,160 sanno che è l'interruttore dichiarazione è infinitely-- è 770 00:34:01,160 --> 00:34:03,536 più efficiente di esso e se altrimenti se perché opera 771 00:34:03,536 --> 00:34:06,660 utilizzando un diverso tipo di funzione che si consente, di sostanza, a giuste 772 00:34:06,660 --> 00:34:08,790 passare direttamente al caso è necessario essere a. 773 00:34:08,790 --> 00:34:10,547 Già. 774 00:34:10,547 --> 00:34:11,255 SPEAKER 14: Freddo. 775 00:34:11,255 --> 00:34:11,754 Grazie. 776 00:34:11,754 --> 00:34:12,526 ANDI PENG: Sì 777 00:34:12,526 --> 00:34:16,687 >> SPEAKER 14: e non si poteva fare casi come e superiore. 778 00:34:16,687 --> 00:34:17,270 ANDI PENG: No. 779 00:34:17,270 --> 00:34:19,860 Quindi, questo è quello che sta limitando sulla istruzione switch è che avete 780 00:34:19,860 --> 00:34:21,564 di avere costanti solo, solo numeri interi. 781 00:34:21,564 --> 00:34:22,064 Già. 782 00:34:22,064 --> 00:34:25,179 783 00:34:25,179 --> 00:34:25,820 OK. 784 00:34:25,820 --> 00:34:28,659 >> Quindi questo è qualcosa che si ragazzi incontreranno meno spesso di, 785 00:34:28,659 --> 00:34:32,280 ma volevo solo introdurlo nel caso. 786 00:34:32,280 --> 00:34:36,210 Abbiamo qui ciò che è chiamato un operatore ternario. 787 00:34:36,210 --> 00:34:39,370 Dove in sostanza, è solo come un if compilato in una riga. 788 00:34:39,370 --> 00:34:42,630 Qui, vado sulla riga successiva, il pagina successiva, perché è più facile da vedere. 789 00:34:42,630 --> 00:34:44,860 >> Così abbiamo visto tutti questo diritto? 790 00:34:44,860 --> 00:34:46,110 Questo è abbastanza facile da seguire. 791 00:34:46,110 --> 00:34:51,290 Se avessi voluto fare una variabile chiamata stringa di nome s, se un certo numero 792 00:34:51,290 --> 00:34:54,770 Ho dato è inferiore a 100, mi vuole assegnare basso alla stringa, 793 00:34:54,770 --> 00:34:57,240 altro Voglio assegnare alto. 794 00:34:57,240 --> 00:35:01,370 >> Questo qui sta facendo la stessa cosa quegli otto righe di codice stanno facendo. 795 00:35:01,370 --> 00:35:03,600 Così qui voglio creare una variabile stringa. 796 00:35:03,600 --> 00:35:08,520 E questa è la condizione Sono controllo, se un numero è inferiore a 100, 797 00:35:08,520 --> 00:35:12,750 allora si assegna il valore di basso, altrimenti assegnare il valore di alto. 798 00:35:12,750 --> 00:35:15,802 >> Queste diapositive saranno online, nessuna preoccupazione se voi ragazzi non si ottiene questo giù. 799 00:35:15,802 --> 00:35:18,510 Questo è solo un modo più semplice, più modo efficace di scrivere codice. 800 00:35:18,510 --> 00:35:21,290 801 00:35:21,290 --> 00:35:21,810 OK. 802 00:35:21,810 --> 00:35:25,190 >> Così ora stiamo andando a entrare in quello che, per la maggior parte delle persone 803 00:35:25,190 --> 00:35:28,660 sono come un molto, molto confusa cosa a cui pensare in un primo momento. 804 00:35:28,660 --> 00:35:30,226 La sezione loop. 805 00:35:30,226 --> 00:35:32,600 Così oggi, stiamo andando a parlare circa tre tipi di cicli. 806 00:35:32,600 --> 00:35:34,890 Stiamo per iniziare con un po ' cappio, quindi parlare di un do while, 807 00:35:34,890 --> 00:35:36,740 e poi parlare per i cicli. 808 00:35:36,740 --> 00:35:40,010 >> Quindi, in sostanza, per i più studenti visivo là fuori, 809 00:35:40,010 --> 00:35:44,410 abbiamo, essenzialmente, una grafica raffigurazione di ciò che un ciclo while fa. 810 00:35:44,410 --> 00:35:48,290 Quindi, in una programmazione, si dovrebbe iniziare e inserire l'anello a un certo punto. 811 00:35:48,290 --> 00:35:49,470 Si controlla una condizione. 812 00:35:49,470 --> 00:35:52,165 E se la condizione è vera, si esegue il codice all'interno. 813 00:35:52,165 --> 00:35:53,790 E si torna in giro e controllare. 814 00:35:53,790 --> 00:35:57,190 Se è ancora vero che continua a correre questo codice intorno e intorno ad anello. 815 00:35:57,190 --> 00:36:00,970 >> Tuttavia, il secondo che la condizione diventa falsa, 816 00:36:00,970 --> 00:36:02,739 si sta andando a rompere e terminare il ciclo. 817 00:36:02,739 --> 00:36:05,030 E questo è essenzialmente la sulla sintassi intenzione di utilizzare. 818 00:36:05,030 --> 00:36:08,250 Mentre una certa condizione è vero fare questo, se non è vero, 819 00:36:08,250 --> 00:36:12,920 si sta andando a saltare alla fine e andare avanti con il vostro programma. 820 00:36:12,920 --> 00:36:13,690 OK. 821 00:36:13,690 --> 00:36:17,250 >> Qualcuno ha un esempio su ciò che può potenzialmente accadere 822 00:36:17,250 --> 00:36:19,160 se provo a fare funzionare questo pezzo di codice? 823 00:36:19,160 --> 00:36:22,470 Tra l'altro, questo è SCAZ SAJ--, Andi, Jason-- firmeremo via nostre e-mail, 824 00:36:22,470 --> 00:36:24,830 Amore, SAJ. 825 00:36:24,830 --> 00:36:25,573 Siamo noi. 826 00:36:25,573 --> 00:36:26,500 OK. 827 00:36:26,500 --> 00:36:29,829 >> Chiunque avere un esempio, o hanno un'idea su ciò che questo sarebbe stampare? 828 00:36:29,829 --> 00:36:30,870 Tipo di una domanda trabocchetto. 829 00:36:30,870 --> 00:36:34,550 830 00:36:34,550 --> 00:36:39,380 Così qui, ricorda la condizione stiamo controllando per è while true. 831 00:36:39,380 --> 00:36:42,840 Così, mentre questo è vero, è andare in stampa, io amo SAJ! 832 00:36:42,840 --> 00:36:48,460 C'è un punto in cui saremmo cambiare questo per niente altrimenti? 833 00:36:48,460 --> 00:36:49,050 Nessun diritto? 834 00:36:49,050 --> 00:36:51,470 >> Così qui, abbiamo incontrato quello che è probabilmente 835 00:36:51,470 --> 00:36:54,310 sta per essere un sacco di intercettazioni i programmi, il ciclo infinito. 836 00:36:54,310 --> 00:36:56,268 Troverete che se si eseguire questo pezzo di codice, 837 00:36:56,268 --> 00:36:58,160 è solo andare a tenere stampa, amo SAJ! 838 00:36:58,160 --> 00:37:00,701 Mentre apprezziamo il supporto, noi non vogliamo i vostri computer 839 00:37:00,701 --> 00:37:02,910 in crash perché voi tenere la stampa Amo SAJ! 840 00:37:02,910 --> 00:37:05,320 >> Quindi, per favore, per favore, evitare il ciclo infinito 841 00:37:05,320 --> 00:37:07,320 perché non è mai andata valutare false 842 00:37:07,320 --> 00:37:08,780 e si è mai andare lasciare il loop. 843 00:37:08,780 --> 00:37:10,530 E si sta andando a essere risucchiato per sempre. 844 00:37:10,530 --> 00:37:13,000 Cool. 845 00:37:13,000 --> 00:37:13,694 OK. 846 00:37:13,694 --> 00:37:15,610 Il secondo tipo di ciclo parleremo di oggi 847 00:37:15,610 --> 00:37:17,580 è il do while, do while. 848 00:37:17,580 --> 00:37:20,580 E si chiama un do while perché avete un fare e un po '. 849 00:37:20,580 --> 00:37:24,390 Quindi questo è abbastanza simile a un po ' loop, ma un po 'diverso. 850 00:37:24,390 --> 00:37:27,620 Qui, si sta andando a fare qualunque sia di interno di questo 851 00:37:27,620 --> 00:37:29,747 mentre una certa condizione è vera. 852 00:37:29,747 --> 00:37:32,580 Quindi, se io fossi C e il computer sono correndo giù questo pezzo di codice, 853 00:37:32,580 --> 00:37:33,880 Prendo uno sguardo in alto. 854 00:37:33,880 --> 00:37:36,890 Vado a C, io dico fare questa cosa. 855 00:37:36,890 --> 00:37:40,550 E poi posso controllare, mentre questo è vero, devo ripeterlo. 856 00:37:40,550 --> 00:37:42,750 Ma mentre questo è falso, poi mi muovo in avanti 857 00:37:42,750 --> 00:37:44,700 e non ho mai tornare a quel ciclo di nuovo. 858 00:37:44,700 --> 00:37:48,360 >> Chiunque può prendere una pugnalata a ciò che la differenza 859 00:37:48,360 --> 00:37:52,130 tra questo ciclo e quello che appena guardato era praticamente. 860 00:37:52,130 --> 00:37:52,717 Già. 861 00:37:52,717 --> 00:37:55,050 SPEAKER 15: La condizione viene dopo al posto di prima? 862 00:37:55,050 --> 00:37:55,841 ANDI PENG: Esattamente. 863 00:37:55,841 --> 00:37:57,984 Così ha detto la condizione viene dopo, non prima. 864 00:37:57,984 --> 00:38:00,400 In definitiva, la differenza tra questo e il ciclo while 865 00:38:00,400 --> 00:38:03,597 è che si sta solo andando a fare qualunque cosa di all'interno di questo a prescindere 866 00:38:03,597 --> 00:38:06,430 se la sua condizione è o no vero, e quindi verificare lo stato. 867 00:38:06,430 --> 00:38:08,304 Quindi, in questo caso, siete always-- in questo modo, 868 00:38:08,304 --> 00:38:11,240 si sta sempre facendo attenzione qualunque cosa è eseguito all'interno di almeno 869 00:38:11,240 --> 00:38:14,230 una volta prima di controllare per vedere se si desidera eseguire di nuovo. 870 00:38:14,230 --> 00:38:18,040 >> E qui è un esempio di quando avremmo usarlo. 871 00:38:18,040 --> 00:38:22,570 Così, per esempio, se volevo avere una variabile di tipo int di nome età, 872 00:38:22,570 --> 00:38:25,640 e voglio richiedere l'utente per la loro età, 873 00:38:25,640 --> 00:38:27,910 Ho intenzione di fare printf () Qual è la tua età? 874 00:38:27,910 --> 00:38:30,330 age = GetInt (), che è chiedere conferma all'utente. 875 00:38:30,330 --> 00:38:32,140 >> E alcune persone saranno davvero fastidioso. 876 00:38:32,140 --> 00:38:34,931 E tu non vuoi che gli insetti nel vostro Programma di qualcuno inserendo come, 877 00:38:34,931 --> 00:38:36,680 oh ho negativo di 4 anni o qualsiasi altra cosa. 878 00:38:36,680 --> 00:38:39,900 In tal caso, se farlo, questa valuta 879 00:38:39,900 --> 00:38:43,150 true, il che significa che ho intenzione di deve andare avanti indietro e fare questo. 880 00:38:43,150 --> 00:38:45,310 Quindi questo sta per mantenere ri-chiedere conferma all'utente 881 00:38:45,310 --> 00:38:47,960 per darvi come un vero numero di anni ed è 882 00:38:47,960 --> 00:38:51,930 intenzione di andare avanti indietro e rifare fino a quando non ti danno una vera età 883 00:38:51,930 --> 00:38:56,900 maggiore di uno, o lo zero. 884 00:38:56,900 --> 00:38:58,020 >> Così suggerimento, suggerimento. 885 00:38:58,020 --> 00:39:02,263 Questo sarà molto, molto utile per uno dei vostri problemi PSet. 886 00:39:02,263 --> 00:39:04,155 Già. 887 00:39:04,155 --> 00:39:05,580 >> SPEAKER 16: Ops, scusate. 888 00:39:05,580 --> 00:39:06,288 >> ANDI PENG: Sì. 889 00:39:06,288 --> 00:39:09,424 >> SPEAKER 16: ci sono, non di essere uno stronzo, ma-- 890 00:39:09,424 --> 00:39:10,340 ANDI PENG: Non preoccuparti. 891 00:39:10,340 --> 00:39:11,990 SPEAKER 16: --Siamo lì regole diverse qui, 892 00:39:11,990 --> 00:39:13,810 o hai semplicemente dimenticato per mettere la citazione? 893 00:39:13,810 --> 00:39:14,250 >> ANDI PENG: Oh Yeah. 894 00:39:14,250 --> 00:39:15,530 Siamo spiacenti, questo è totalmente mio male. 895 00:39:15,530 --> 00:39:17,100 Questo è stato sicuramente dovrebbe essere una citazione. 896 00:39:17,100 --> 00:39:17,690 Buona pesca. 897 00:39:17,690 --> 00:39:18,800 Ciò non è stato eseguito. 898 00:39:18,800 --> 00:39:22,070 899 00:39:22,070 --> 00:39:22,830 OK. 900 00:39:22,830 --> 00:39:26,160 >> Così l'ultimo tipo di ciclo ne parleremo circa e, in ultima analisi, un po 'più 901 00:39:26,160 --> 00:39:28,854 complesso è il ciclo for. 902 00:39:28,854 --> 00:39:30,770 Non preoccupatevi se non lo fai sanno che cosa significa. 903 00:39:30,770 --> 00:39:32,061 E 'piuttosto confuso in un primo momento. 904 00:39:32,061 --> 00:39:33,640 Andremo su un esempio. 905 00:39:33,640 --> 00:39:37,040 >> Tutto ciò che accade in un ciclo for è che avete tre dichiarazioni 906 00:39:37,040 --> 00:39:38,380 che si sta andando a includere. 907 00:39:38,380 --> 00:39:42,130 Così, per una certa cosa, sei andando a inizializzare una variabile. 908 00:39:42,130 --> 00:39:45,280 Hai intenzione di aggiungere la condizione che questo ciclo continuerà a funzionare. 909 00:39:45,280 --> 00:39:47,790 E poi, alla fine del cappio, si sta andando per aggiornarlo. 910 00:39:47,790 --> 00:39:50,248 È possibile aggiornare la variabile che si desidera tenere traccia di. 911 00:39:50,248 --> 00:39:52,530 Così abbiamo utilizzano in genere per loop per quando abbiamo 912 00:39:52,530 --> 00:39:55,390 desidera eseguire un ciclo per una certo numero di volte 913 00:39:55,390 --> 00:39:58,900 e sappiamo già, oh voglio questo ciclo per eseguire come 10 volte, 914 00:39:58,900 --> 00:40:03,060 allora si fare-- vado su un esempio nella pagina successiva. 915 00:40:03,060 --> 00:40:07,830 >> Ecco per esempio, in Scratch, se voleva qualcosa da ripetere 10 volte, 916 00:40:07,830 --> 00:40:10,790 tutto quello che doveva dire era, ripetere 10 volte amo SAJ! 917 00:40:10,790 --> 00:40:15,260 che è un più accettabile dimostrazione di sostegno per noi 918 00:40:15,260 --> 00:40:17,120 piuttosto che il ciclo infinito. 919 00:40:17,120 --> 00:40:19,920 Qui, come si farebbe transizione alla C e scrivere 920 00:40:19,920 --> 00:40:26,040 cioè per int-- ho intenzione di creare o dichiarare una variabile di tipo int chiamato i. 921 00:40:26,040 --> 00:40:30,089 Ho intenzione di inizializzare a 0, quindi i = 0; 922 00:40:30,089 --> 00:40:31,630 e questo sarà la mia condizione. 923 00:40:31,630 --> 00:40:33,860 Così i è inferiore a 10. 924 00:40:33,860 --> 00:40:36,096 E poi al end-- l'ultima affermazione sei 925 00:40:36,096 --> 00:40:38,710 andando ad avere è l'aggiornamento di cosa succede al variabile i 926 00:40:38,710 --> 00:40:40,206 alla fine del vostro ciclo for. 927 00:40:40,206 --> 00:40:42,830 Quindi è una specie di confusione, perché diverse parti di questa linea 928 00:40:42,830 --> 00:40:44,871 stanno accadendo in diversi tipi di ciclo. 929 00:40:44,871 --> 00:40:46,746 Ma vado su un esempio pseudocodice di che 930 00:40:46,746 --> 00:40:50,360 e forse spiegare questo appena un po 'meglio. 931 00:40:50,360 --> 00:40:51,500 >> Ecco. 932 00:40:51,500 --> 00:40:52,929 Questo è il ciclo che abbiamo appena visto. 933 00:40:52,929 --> 00:40:55,470 In sostanza in pseudocodice, cosa sta accadendo in questo programma, 934 00:40:55,470 --> 00:40:57,940 è prima Sto creando i, inizializzazione a 0. 935 00:40:57,940 --> 00:41:00,440 Sto controllando per vedere se i è meno di 10, nel qual caso 936 00:41:00,440 --> 00:41:02,840 la prima volta è perché 0 è inferiore a 10. 937 00:41:02,840 --> 00:41:04,727 Così il ciclo è andare a correre. 938 00:41:04,727 --> 00:41:06,310 E poi ho intenzione di stampare questa linea. 939 00:41:06,310 --> 00:41:11,240 E poi alla fine di questa riga, destra qui, ho intenzione di fare incremento i, i ++, 940 00:41:11,240 --> 00:41:13,370 tutto ciò che significa incrementarlo per uno. 941 00:41:13,370 --> 00:41:15,460 >> Così i è ora 1. 942 00:41:15,460 --> 00:41:17,960 Perché era una volta 0, se io incrementa lo è, è ora 1. 943 00:41:17,960 --> 00:41:19,610 E poi ho intenzione di tornare indietro all'inizio del ciclo 944 00:41:19,610 --> 00:41:20,730 e posso controllare la condizione. 945 00:41:20,730 --> 00:41:22,080 È la condizione ancora vero? 946 00:41:22,080 --> 00:41:24,030 Sì, 1 è ancora inferiore a 10. 947 00:41:24,030 --> 00:41:27,370 Così sta andando a stampare di nuovo, andare e quindi incrementare i, e verificare 948 00:41:27,370 --> 00:41:29,180 la condizione continuamente, continuamente, 949 00:41:29,180 --> 00:41:33,290 fino ad arrivare alla fine al punto in cui i è 10. 950 00:41:33,290 --> 00:41:36,300 >> Stai andando a stampare questo 10 volte e poi mi sta per eguagliare 10. 951 00:41:36,300 --> 00:41:37,800 Stai andando a verificare le condizioni. 952 00:41:37,800 --> 00:41:38,760 È 10 meno di 10? 953 00:41:38,760 --> 00:41:40,370 No, questo è falso. 954 00:41:40,370 --> 00:41:43,020 Così, questo ciclo non sta a correre, sta andando a rompere, 955 00:41:43,020 --> 00:41:45,040 e si sta andando a continuare con il vostro codice. 956 00:41:45,040 --> 00:41:47,550 >> Così come voi potete vedere, questo è davvero un grande esempio 957 00:41:47,550 --> 00:41:53,110 di un ciclo è possibile programmare in quel corre per un determinato periodo di tempo. 958 00:41:53,110 --> 00:41:54,457 Ognuno chiaro? 959 00:41:54,457 --> 00:41:54,956 Già. 960 00:41:54,956 --> 00:41:59,060 >> SPEAKER 17: Che ne dite di incremento in modo esponenziale, è diverso codifica? 961 00:41:59,060 --> 00:42:02,060 >> ANDI PENG: È can-- andremo su questo nella diapositiva successiva. 962 00:42:02,060 --> 00:42:03,350 Bella domanda. 963 00:42:03,350 --> 00:42:05,910 È anyone-- prima di passare on-- chiunque a tutti confusi, 964 00:42:05,910 --> 00:42:07,640 perché questo è un concetto davvero difficile. 965 00:42:07,640 --> 00:42:09,510 Nessun problema, se you're-- OK. 966 00:42:09,510 --> 00:42:10,010 Cool. 967 00:42:10,010 --> 00:42:12,836 968 00:42:12,836 --> 00:42:13,490 >> Tutto ok. 969 00:42:13,490 --> 00:42:14,610 Basta una diapositiva generale. 970 00:42:14,610 --> 00:42:18,020 Questo ciclo mentre sta facendo la esattamente la stessa cosa che il ciclo for è stato. 971 00:42:18,020 --> 00:42:19,631 E 'solo scritto in modo diverso. 972 00:42:19,631 --> 00:42:22,130 Voi potete sfogliare le diapositive a vostro piacimento in seguito. 973 00:42:22,130 --> 00:42:24,880 Ma è sufficiente sapere che non c'è più modi di scrivere la stessa cosa 974 00:42:24,880 --> 00:42:28,300 accadere con diversi cicli. 975 00:42:28,300 --> 00:42:28,800 OK. 976 00:42:28,800 --> 00:42:32,380 >> Così, ora entriamo in questione di che cosa se abbiamo un ciclo all'interno di un ciclo. 977 00:42:32,380 --> 00:42:35,810 Stiamo ottenendo in reale Inception tipo roba qui. 978 00:42:35,810 --> 00:42:40,640 Quando vuoi fare le cose più volte all'interno di altre cose 979 00:42:40,640 --> 00:42:44,129 che fanno le cose più volte, è volere ciò che è chiamato un nidificato ciclo for. 980 00:42:44,129 --> 00:42:47,420 Per quelli di voi che prima vedere questo e ottenere molto confuso, tutto quello che stiamo facendo qui 981 00:42:47,420 --> 00:42:50,580 sta avendo un ciclo for in cui abbiamo una variabile di riga. 982 00:42:50,580 --> 00:42:54,500 Ma dentro di esso, abbiamo anche un altro per ciclo di una colonna variabile chiamata. 983 00:42:54,500 --> 00:42:58,560 E consiglio vivamente a tutti voi che sono confusi per mantenere prima 984 00:42:58,560 --> 00:43:00,310 track-- disegnare questo fuori, disegnare questo fuori. 985 00:43:00,310 --> 00:43:03,000 Non cercare di solo motivo attraverso di essa, estrarla. 986 00:43:03,000 --> 00:43:06,630 >> Nella tua testa, su questo pezzo di carta, o qualsiasi altra cosa, riga di scrittura, 987 00:43:06,630 --> 00:43:08,614 tenere traccia di ciò che fila è uguale a. 988 00:43:08,614 --> 00:43:10,780 Scrivi colonna, tenere traccia di quale colonna è pari a. 989 00:43:10,780 --> 00:43:13,490 E tenere traccia di ciò che è stampare con ogni iterazione. 990 00:43:13,490 --> 00:43:16,320 Ogni iterazione questo ciclo ogni iterazione del ciclo più grande che, 991 00:43:16,320 --> 00:43:17,820 solo continuare a seguire la logica. 992 00:43:17,820 --> 00:43:20,190 E vi garantisco, vi innamorerete di ciò che si vede, 993 00:43:20,190 --> 00:43:24,307 perché è anche molto applicabile per i vostri insiemi di problemi. 994 00:43:24,307 --> 00:43:24,806 Cool. 995 00:43:24,806 --> 00:43:27,501 996 00:43:27,501 --> 00:43:28,000 Tutto ok. 997 00:43:28,000 --> 00:43:30,723 Quindi la cosa più importante che voi siete probabilmente tutti 998 00:43:30,723 --> 00:43:32,400 pensare in questo momento, sono i vostri problema posto 1s, 999 00:43:32,400 --> 00:43:33,650 che sono dovuti Giovedi / Venerdì. 1000 00:43:33,650 --> 00:43:36,890 1001 00:43:36,890 --> 00:43:39,710 >> Nel programma water.c, accenni si sta andando ad avere 1002 00:43:39,710 --> 00:43:41,590 per richiedere all'utente per un ingresso. 1003 00:43:41,590 --> 00:43:43,640 All'interno del programma mario.c si sta andando ad avere 1004 00:43:43,640 --> 00:43:46,431 utilizzare un annidato ciclo for, che è un ciclo for all'interno di un ciclo for, 1005 00:43:46,431 --> 00:43:50,247 stampare un blocco di piramide, essenzialmente come quello che Mario deve passare attraverso. 1006 00:43:50,247 --> 00:43:53,330 E poi all'interno del vostro greedy-- o forse Produrre il cambiamento, se qualcuno di voi ragazzi 1007 00:43:53,330 --> 00:43:55,740 hanno mai sentito parlare di che-- si sta andando ad avere per essere molto 1008 00:43:55,740 --> 00:43:58,160 attenti primi valori in virgola mobile. 1009 00:43:58,160 --> 00:44:01,860 Ricordate decimali galleggianti e interi non sono la stessa cosa. 1010 00:44:01,860 --> 00:44:03,620 Tenere traccia di quali uno è che. 1011 00:44:03,620 --> 00:44:05,953 E si sta andando da usare istruzioni condizionali, pure. 1012 00:44:05,953 --> 00:44:09,070 1013 00:44:09,070 --> 00:44:10,940 >> Va bene, un'ultima cosa. 1014 00:44:10,940 --> 00:44:12,770 Ho un paio di minuti dalla fine. 1015 00:44:12,770 --> 00:44:13,460 Stile. 1016 00:44:13,460 --> 00:44:19,320 Quindi, questo è qualcosa che non lo fa effettivamente effettuare l'efficienza, 1017 00:44:19,320 --> 00:44:21,010 o l'effettiva gestione del codice. 1018 00:44:21,010 --> 00:44:24,380 Tuttavia, ci effettua come livellatrici, come i tuoi lettori. 1019 00:44:24,380 --> 00:44:27,290 Effettua te stesso, se sei cercando di trovare un problema. 1020 00:44:27,290 --> 00:44:30,700 Effettua la leggibilità del codice. 1021 00:44:30,700 --> 00:44:34,070 >> Quindi stile, come quando si sta cercando di lo stile un saggio per l'inglese, se si 1022 00:44:34,070 --> 00:44:36,070 non ha avuto punti, avete tutto tipo 1023 00:44:36,070 --> 00:44:39,190 di jumbled insieme su una sola riga, è rende davvero difficile per chiunque 1024 00:44:39,190 --> 00:44:42,620 a leggere il tuo saggio, anche se i punti sono logicamente suono. 1025 00:44:42,620 --> 00:44:44,390 Stessa cosa in programmazione. 1026 00:44:44,390 --> 00:44:47,910 Si può avere orribilmente oscura codice che SCAZ coprirà, 1027 00:44:47,910 --> 00:44:49,660 e può ancora funzionare e funzione. 1028 00:44:49,660 --> 00:44:53,110 Ma per noi, come vostre TA incantevoli, che sarà essere la lettura e valutazione dei vostri pset, 1029 00:44:53,110 --> 00:44:54,460 che non è molto bello. 1030 00:44:54,460 --> 00:44:56,859 >> Quindi, per favore, per il bene di noi e te stesso, 1031 00:44:56,859 --> 00:44:58,900 quando si sta cercando di risolvere un problema nel codice, 1032 00:44:58,900 --> 00:45:00,774 e si sta cercando di leggere il proprio codice, fare 1033 00:45:00,774 --> 00:45:03,910 Assicurati di seguire alcune convenzioni che stiamo per andare oltre. 1034 00:45:03,910 --> 00:45:04,510 >> Così prima. 1035 00:45:04,510 --> 00:45:07,070 Lascia la tua variabili nomi significativi. 1036 00:45:07,070 --> 00:45:11,450 Se si desidera memorizzare un numero intero chiamato l'età, si prega di denominarlo età. 1037 00:45:11,450 --> 00:45:12,875 Non nominarlo altezza. 1038 00:45:12,875 --> 00:45:14,750 Quando si sta cercando di memorizzare un'epoca in altezza, 1039 00:45:14,750 --> 00:45:16,722 rende tutto molto confusa per noi. 1040 00:45:16,722 --> 00:45:17,930 Non ci piace essere confuso. 1041 00:45:17,930 --> 00:45:19,180 Non ti piace essere confuso. 1042 00:45:19,180 --> 00:45:20,350 A nessuno piace essere confuso. 1043 00:45:20,350 --> 00:45:23,100 Se avete intenzione di creare qualcosa, denominarlo qualcosa di significativo. 1044 00:45:23,100 --> 00:45:26,440 >> Tuttavia, nel ciclo for, singola variabili carattere sono di solito bene. 1045 00:45:26,440 --> 00:45:31,350 E nel ciclo for, se si desidera solo i, e j, k, sentitevi liberi di fare proprio questo. 1046 00:45:31,350 --> 00:45:32,670 >> Inizializzazione coerente. 1047 00:45:32,670 --> 00:45:33,770 Che cosa significa? 1048 00:45:33,770 --> 00:45:37,600 Ciò significa che tecnicamente, in teoria, è possibile avviare e creare 1049 00:45:37,600 --> 00:45:40,140 più variabili sulla stessa riga. 1050 00:45:40,140 --> 00:45:42,820 Così, per esempio, posso creare un intero chiamato scaz_age, 1051 00:45:42,820 --> 00:45:47,110 e integer chiamato andi_age = 20, e un intero chiamato jason_age 1052 00:45:47,110 --> 00:45:48,090 sulla stessa linea. 1053 00:45:48,090 --> 00:45:52,060 E posso anche assegnare una sola di loro e non gli altri ai valori. 1054 00:45:52,060 --> 00:45:54,142 Vi chiediamo per favore non lo fai. 1055 00:45:54,142 --> 00:45:57,350 Perché qui si è essenzialmente creato tre variabili, ma solo uno di essi 1056 00:45:57,350 --> 00:45:58,295 in realtà ha un valore. 1057 00:45:58,295 --> 00:46:00,170 E poi quando siamo cercando di leggere il tuo codice, 1058 00:46:00,170 --> 00:46:01,850 o se si sta cercando di risolvere un problema nel codice, 1059 00:46:01,850 --> 00:46:03,340 è molto confuso da seguire. 1060 00:46:03,340 --> 00:46:09,300 Quindi, solo per il vostro leggibilità, per il nostro leggibilità, non farlo. 1061 00:46:09,300 --> 00:46:10,355 >> Parentesi graffe coerenti. 1062 00:46:10,355 --> 00:46:12,980 Ad alcune persone piace mettere il loro parentesi graffe in luoghi diversi. 1063 00:46:12,980 --> 00:46:14,100 Non ha molta importanza. 1064 00:46:14,100 --> 00:46:17,900 Basta fare in modo che sei coerente nella tua proprio codice su cui vuoi metterli. 1065 00:46:17,900 --> 00:46:18,950 >> Spaziatura coerente. 1066 00:46:18,950 --> 00:46:22,040 Se si mette uno spazio dopo un per il ciclo, sempre farlo. 1067 00:46:22,040 --> 00:46:24,930 Non proprio come tipo di farlo a alcuni luoghi, non lo fanno in altri. 1068 00:46:24,930 --> 00:46:26,580 Basta essere coerente. 1069 00:46:26,580 --> 00:46:29,500 >> In secondo luogo, se qualcuno vorrebbe di esaminare la Guida CS50 Stile, 1070 00:46:29,500 --> 00:46:33,230 abbiamo ufficialmente abbiamo una guida di stile che a tutti voi di queste convenzioni racconta, 1071 00:46:33,230 --> 00:46:34,890 e molto di più. 1072 00:46:34,890 --> 00:46:35,530 E 'on-line. 1073 00:46:35,530 --> 00:46:38,670 E 'come cs50.net/style o qualcosa di simile. 1074 00:46:38,670 --> 00:46:40,180 Potete google. 1075 00:46:40,180 --> 00:46:41,399 >> La coerenza è la chiave. 1076 00:46:41,399 --> 00:46:43,190 Quindi non preoccupatevi cosa fanno gli altri, 1077 00:46:43,190 --> 00:46:46,180 basta assicurarsi che si sono coerente all'interno il proprio codice. 1078 00:46:46,180 --> 00:46:50,570 Qualcuno ha domande su questo? 1079 00:46:50,570 --> 00:46:51,070 Già. 1080 00:46:51,070 --> 00:46:53,370 >> SPEAKER 18: Quindi la cosa giusta a che fare con l'inizializzazione è solo 1081 00:46:53,370 --> 00:46:56,130 li hanno tutti in un separato la linea, è che quello che stai dicendo? 1082 00:46:56,130 --> 00:46:58,850 >> ANDI PENG: Così ho raramente ho questo accada. 1083 00:46:58,850 --> 00:47:02,230 Ma se si voleva, se si voleva per essere come risparmio di spazio nel codice, 1084 00:47:02,230 --> 00:47:04,000 o qualsiasi altra cosa, si può fare questo. 1085 00:47:04,000 --> 00:47:07,800 Chiediamo che proprio non si inizializza una cosa e non gli altri. 1086 00:47:07,800 --> 00:47:12,600 Quindi, se volete fare int scaz_age, int andi_age, int jason_age, va bene. 1087 00:47:12,600 --> 00:47:15,600 Basta non inizializzare uno e non gli altri è tutto. 1088 00:47:15,600 --> 00:47:18,380 1089 00:47:18,380 --> 00:47:19,904 >> Domande? 1090 00:47:19,904 --> 00:47:20,850 Tutto ok. 1091 00:47:20,850 --> 00:47:24,610 Ho intenzione di passare il microfono, e il puntatore laser, 1092 00:47:24,610 --> 00:47:28,862 e il testimone a SCAZ a questo punto. 1093 00:47:28,862 --> 00:47:29,808 Questo è strano. 1094 00:47:29,808 --> 00:47:32,650 1095 00:47:32,650 --> 00:47:33,200 Ecco qui. 1096 00:47:33,200 --> 00:47:34,408 >> BRIAN Scassellati: Grazie. 1097 00:47:34,408 --> 00:47:42,500 1098 00:47:42,500 --> 00:47:43,380 Come è che per il suono? 1099 00:47:43,380 --> 00:47:46,420 1100 00:47:46,420 --> 00:47:47,900 Il suono è buono? . 1101 00:47:47,900 --> 00:47:49,220 Eccellente. 1102 00:47:49,220 --> 00:47:50,350 OK. 1103 00:47:50,350 --> 00:47:52,110 Quindi, ciao a tutti. 1104 00:47:52,110 --> 00:47:56,540 >> Io vado a cercare di lavorare attraverso un esempio pratico con voi. 1105 00:47:56,540 --> 00:48:00,850 E stiamo andando a utilizzare CS50 di ambiente di sviluppo, quello che chiama 1106 00:48:00,850 --> 00:48:03,120 l'ambiente di sviluppo integrato. 1107 00:48:03,120 --> 00:48:05,145 E Dopo aver visto questa dimostrato in conferenza. 1108 00:48:05,145 --> 00:48:07,520 E nel set Problema 1, sei andando ad avere l'opportunità 1109 00:48:07,520 --> 00:48:10,890 per usarlo, e giocare con esso, e abituarsi ad esso, 1110 00:48:10,890 --> 00:48:13,640 perché abbiamo intenzione di usarlo per il resto del semestre. 1111 00:48:13,640 --> 00:48:20,350 >> Quindi, in questo IDE, si ha quello che sembra come un browser di file molto tradizionale 1112 00:48:20,350 --> 00:48:21,890 su un lato. 1113 00:48:21,890 --> 00:48:24,360 Hai una porzione up superiore dove si sta andando 1114 00:48:24,360 --> 00:48:28,850 per vedere il codice sorgente, il vostro CFile, il codice che si scrive. 1115 00:48:28,850 --> 00:48:31,880 E giù in basso, ti avere una finestra di terminale 1116 00:48:31,880 --> 00:48:36,330 che userete per sia compilare il programma 1117 00:48:36,330 --> 00:48:39,090 e di eseguire o eseguire il programma. 1118 00:48:39,090 --> 00:48:40,100 OK. 1119 00:48:40,100 --> 00:48:46,560 >> Quindi, solo per darci un po 'di fondazione, in quella finestra di terminale, 1120 00:48:46,560 --> 00:48:48,930 si sta andando ad essere utilizzando un insieme di comandi 1121 00:48:48,930 --> 00:48:53,040 che sono comandi standard in tutta la maggior parte dei sistemi Unix o Linux. 1122 00:48:53,040 --> 00:48:55,890 E così, se avete mai usato qualsiasi forma di Unix, Ubuntu, 1123 00:48:55,890 --> 00:48:59,140 o qualsiasi degli altri aromi, questi stanno andando a guardare familiare. 1124 00:48:59,140 --> 00:49:00,890 >> Se non lo hai, non ti preoccupare. 1125 00:49:00,890 --> 00:49:02,830 Non c'è niente di complicato su di loro. 1126 00:49:02,830 --> 00:49:05,330 Stanno solo utilizzando un diverso sintassi, una denominazione differente 1127 00:49:05,330 --> 00:49:07,630 convenzione di quello che abbiamo visto prima. 1128 00:49:07,630 --> 00:49:12,190 >> Quindi, per elencare i file all'interno di una directory particolare, 1129 00:49:12,190 --> 00:49:15,310 che stanno andando a utilizzare un comando chiamato ls o lista. 1130 00:49:15,310 --> 00:49:18,010 Se volete vedere tutto con tutti i dettagli, 1131 00:49:18,010 --> 00:49:21,535 userete un comando argomento della linea con ls -l. 1132 00:49:21,535 --> 00:49:23,910 E che lo mostrerò tutto più in dettaglio, compresa 1133 00:49:23,910 --> 00:49:26,270 i permessi di un file. 1134 00:49:26,270 --> 00:49:31,190 >> Per cambiare la directory, userete il comando cd. 1135 00:49:31,190 --> 00:49:35,180 E voi sarete in grado di cambiare la directory sia per andare alla vostra home directory. 1136 00:49:35,180 --> 00:49:38,500 Questo è solo cd tutto da sé, cd con due 1137 00:49:38,500 --> 00:49:42,930 puntini torneranno in su uno livello di directory precedente. 1138 00:49:42,930 --> 00:49:46,400 E si può anche cd per un sottodirectory digitando cd 1139 00:49:46,400 --> 00:49:48,500 e il nome di quella sottodirectory. 1140 00:49:48,500 --> 00:49:50,540 >> È inoltre possibile creare nuove directory. 1141 00:49:50,540 --> 00:49:52,790 E stiamo andando a piedi attraverso questo in appena un minuto. 1142 00:49:52,790 --> 00:49:54,498 Ma solo per mettere tutto sullo schermo. 1143 00:49:54,498 --> 00:49:56,310 Così che si può vedere. 1144 00:49:56,310 --> 00:50:00,420 >> Avrete anche la possibilità per manipolare direttamente i file 1145 00:50:00,420 --> 00:50:02,100 dalla riga di comando. 1146 00:50:02,100 --> 00:50:06,059 Sarete in grado di copiarli, a spostarli o rimuoverli, 1147 00:50:06,059 --> 00:50:07,600 vale a dire, in modo efficace, per eliminarli. 1148 00:50:07,600 --> 00:50:10,310 1149 00:50:10,310 --> 00:50:15,350 >> L'IDE CS50 ti dà il pieno potere di argomenti della riga di comando. 1150 00:50:15,350 --> 00:50:20,280 E che significa che è possibile anche fare le cose molto pericolose. 1151 00:50:20,280 --> 00:50:21,560 OK. 1152 00:50:21,560 --> 00:50:25,010 Ad esempio, è possibile rimuovere, o che è di eliminazione, 1153 00:50:25,010 --> 00:50:28,750 un file senza chiedere per conferma. 1154 00:50:28,750 --> 00:50:31,820 E si può anche rimuovere recursively-- che è 1155 00:50:31,820 --> 00:50:38,940 il trattino r flag-- un intero sottodirectory e tutto il suo contenuto. 1156 00:50:38,940 --> 00:50:39,660 OK. 1157 00:50:39,660 --> 00:50:42,940 Sono elencati in rosso perché si dovrebbe pensare "Danger" ogni volta 1158 00:50:42,940 --> 00:50:45,000 vedi quelle cose. 1159 00:50:45,000 --> 00:50:45,920 OK. 1160 00:50:45,920 --> 00:50:46,420 Tutto ok. 1161 00:50:46,420 --> 00:50:50,090 1162 00:50:50,090 --> 00:50:53,430 >> Ora finalmente, le cose che sono sta per essere veramente utile a voi, 1163 00:50:53,430 --> 00:50:57,270 sono ci sono alcuni trucchi per sapere come si sta navigando 1164 00:50:57,270 --> 00:50:59,190 attraverso questa finestra di terminale. 1165 00:50:59,190 --> 00:51:03,590 In primo luogo, è possibile cancellare lo schermo in qualsiasi momento semplicemente digitando in chiaro. 1166 00:51:03,590 --> 00:51:06,310 E si sta andando a vedere mi faccio abbastanza spesso. 1167 00:51:06,310 --> 00:51:09,990 È anche possibile visualizzare il testo di un file 1168 00:51:09,990 --> 00:51:13,992 digitando più e poi il nome del file. 1169 00:51:13,992 --> 00:51:17,200 Sarai quindi in grado di scorrere avanti e avanti con quel giusto con la barra spaziatrice 1170 00:51:17,200 --> 00:51:19,010 e tasti freccia. 1171 00:51:19,010 --> 00:51:25,450 >> Se si dispone, come abbiamo fatto oggi in conferenza, un programma che è in esecuzione continuamente 1172 00:51:25,450 --> 00:51:29,190 in loop infinito, è può fermare il programma 1173 00:51:29,190 --> 00:51:35,160 dall'esecuzione digitando in controllo, che sta tenendo premuto il tasto Ctrl-C. 1174 00:51:35,160 --> 00:51:38,360 E si può avere a che fare questo più volte. 1175 00:51:38,360 --> 00:51:40,620 Il computer diventa molto più avanti di voi. 1176 00:51:40,620 --> 00:51:43,380 E talvolta è necessario dargli un paio di tentativi 1177 00:51:43,380 --> 00:51:46,280 prima che possa effettivamente venire attraverso. 1178 00:51:46,280 --> 00:51:48,760 >> Potrai anche essere in grado di ordinare attraverso i comandi 1179 00:51:48,760 --> 00:51:54,230 che appena digitato con il tasto su, tasto freccia, e quindi il tasto freccia giù. 1180 00:51:54,230 --> 00:51:57,560 E ciò che è più utile è invece di digitare nomi di file lunghi, 1181 00:51:57,560 --> 00:52:02,209 sarete in grado di utilizzare la scheda di completare automaticamente alcune istruzioni. 1182 00:52:02,209 --> 00:52:04,750 Ora stiamo andando a dimostrare tutti quelli in un secondo. 1183 00:52:04,750 --> 00:52:06,780 Quindi, se non ti ricordi loro, non ti preoccupare. 1184 00:52:06,780 --> 00:52:10,780 Queste sono le cose che ti raccogliere e utilizzare come andiamo avanti. 1185 00:52:10,780 --> 00:52:11,470 OK. 1186 00:52:11,470 --> 00:52:18,830 >> Quindi, in C-- differenza Scratch-- C è un linguaggio compilato. 1187 00:52:18,830 --> 00:52:23,210 Questo significa che stiamo andando a prendere una fonte file-- questo è il testo che si scrive, 1188 00:52:23,210 --> 00:52:26,500 i comandi che si scrive, il printf () dichiarazioni, loop, 1189 00:52:26,500 --> 00:52:32,580 tutto else-- e stiamo andando a prendere il file e passarlo 1190 00:52:32,580 --> 00:52:34,670 ad un programma chiamato compilatore. 1191 00:52:34,670 --> 00:52:39,850 >> Il compilatore sarà poi prendere che il testo che hai scritto 1192 00:52:39,850 --> 00:52:43,270 e tradurlo in le istruzioni binarie 1193 00:52:43,270 --> 00:52:46,010 che il computer sia effettivamente andando uso. 1194 00:52:46,010 --> 00:52:49,700 Che si chiama l'oggetto o il file eseguibile. 1195 00:52:49,700 --> 00:52:55,320 Se si guarda a questo file, si sta andando per vedere il codice che avete scritto. 1196 00:52:55,320 --> 00:52:59,480 Se si guarda a questo file, si sta andando per vedere una sequenza casuale di caratteri 1197 00:52:59,480 --> 00:53:01,680 che non hanno senso di sorta. 1198 00:53:01,680 --> 00:53:03,250 Ecco perché questo è il binario. 1199 00:53:03,250 --> 00:53:05,560 Non è pensato per voi di essere la lettura. 1200 00:53:05,560 --> 00:53:08,690 >> Tuttavia, ogni volta che si desidera eseguire qualcosa, quello che si sta andando 1201 00:53:08,690 --> 00:53:13,670 di essere in esecuzione questo file oggetto. 1202 00:53:13,670 --> 00:53:19,110 Così, quando lavoriamo con questi file, scriveremo un file in C. 1203 00:53:19,110 --> 00:53:23,400 Provvederemo quindi compilarlo, utilizzando un comando come marca che richiamerà 1204 00:53:23,400 --> 00:53:27,070 il clangore compilatore per il linguaggio C. 1205 00:53:27,070 --> 00:53:31,530 E che produrrà un oggetto depositare, come un fuori, o in questo caso, 1206 00:53:31,530 --> 00:53:36,580 il nome, il mio file, che ho messo in. 1207 00:53:36,580 --> 00:53:37,780 Tutto ok. 1208 00:53:37,780 --> 00:53:39,790 >> Quindi cerchiamo di provare questo in realtà. 1209 00:53:39,790 --> 00:53:42,850 Così mi si avvicinò con un esempio di quello che ho voluto provare. 1210 00:53:42,850 --> 00:53:47,380 E una delle cose che mi affascina è l'animazione. 1211 00:53:47,380 --> 00:53:51,010 Quindi stiamo andando a cercare di fare un po 'di animazione 1212 00:53:51,010 --> 00:53:53,760 utilizzando solo caratteri ASCII. 1213 00:53:53,760 --> 00:53:56,470 Personaggi che possono stampare con facilità ora. 1214 00:53:56,470 --> 00:54:00,890 >> Così qui è il mio miglior tentativo di creare per voi 1215 00:54:00,890 --> 00:54:07,005 l'animazione di un coniglietto che attraversa l'erba alta. 1216 00:54:07,005 --> 00:54:07,505 Eccolo. 1217 00:54:07,505 --> 00:54:10,150 1218 00:54:10,150 --> 00:54:10,670 OK. 1219 00:54:10,670 --> 00:54:14,050 Così egli non è ancora in esecuzione, ma è in piedi tra l'erba alta. 1220 00:54:14,050 --> 00:54:17,810 >> Ora, se io fossi un animatore, nella vecchia scuola 1221 00:54:17,810 --> 00:54:20,860 versione di animazione, quello che ho vorrei fare è mi produco 1222 00:54:20,860 --> 00:54:23,640 una foto di questo coniglietto nell'erba. 1223 00:54:23,640 --> 00:54:25,390 E poi vorrei produrre un'altra un'Immagine-- 1224 00:54:25,390 --> 00:54:30,600 un'altra cosa che hanno chiamato cella: aveva il coniglio solo leggermente mosso. 1225 00:54:30,600 --> 00:54:34,870 E poi una terza che aveva il Coniglietto spostato un po 'più. 1226 00:54:34,870 --> 00:54:40,610 >> E vorrei produrre un intero sequenza di queste cellule. 1227 00:54:40,610 --> 00:54:44,220 Alcuni dove il coniglio è finita sul lato sinistro. 1228 00:54:44,220 --> 00:54:47,050 E poi si sposta lentamente, una da uno verso il centro. 1229 00:54:47,050 --> 00:54:51,120 E poi dalla metà verso destra. 1230 00:54:51,120 --> 00:54:55,760 E se fossi allora, davvero fortunato, ho potuto mettere insieme 1231 00:54:55,760 --> 00:54:57,970 e ho potuto animare. 1232 00:54:57,970 --> 00:55:00,370 E c'è il mio coniglietto che attraversa l'erba. 1233 00:55:00,370 --> 00:55:02,310 >> Questo è il mio grande PowerPoint trucco per il giorno. 1234 00:55:02,310 --> 00:55:02,809 OK. 1235 00:55:02,809 --> 00:55:04,760 Quindi questo è quanto di meglio si possa. 1236 00:55:04,760 --> 00:55:05,260 OK. 1237 00:55:05,260 --> 00:55:08,455 Quindi, qui ancora una volta, qui è il nostro bunny che attraversa l'erba. 1238 00:55:08,455 --> 00:55:09,217 >> SPEAKER 19: Ancora una volta. 1239 00:55:09,217 --> 00:55:11,050 BRIAN Scassellati: One più tempo, va bene. 1240 00:55:11,050 --> 00:55:11,940 Ecco il tuo coniglio. 1241 00:55:11,940 --> 00:55:12,940 OK. 1242 00:55:12,940 --> 00:55:15,470 >> Così oggi quello che stiamo andando fare è che stiamo andando 1243 00:55:15,470 --> 00:55:21,110 per cercare di automatizzare il processo di produrre queste cellule. 1244 00:55:21,110 --> 00:55:24,135 Non abbastanza arrivare al punto di essere in grado di mettere tutti insieme. 1245 00:55:24,135 --> 00:55:28,900 Ma, stiamo andando a cercare di automatizzare il processo di generazione di questa sequenza. 1246 00:55:28,900 --> 00:55:32,900 >> E questo è molto di quello animazione oggi è come. 1247 00:55:32,900 --> 00:55:36,690 Cioè, non fai le cose necessariamente disegnando tutto a mano. 1248 00:55:36,690 --> 00:55:40,610 Noi usiamo un computer per automatizzare parti di tale processo. 1249 00:55:40,610 --> 00:55:41,110 OK. 1250 00:55:41,110 --> 00:55:47,720 >> Così mi permetta di passare sopra ora al nostro CS50 IDE. 1251 00:55:47,720 --> 00:55:54,260 E ho creato per noi-- e lasciare me lo zoom in qua un po 'bit-- ho 1252 00:55:54,260 --> 00:55:58,420 creato per noi un punto di partenza. 1253 00:55:58,420 --> 00:56:03,830 >> Ogni volta che vi chiediamo di sedersi e scrivere un pezzo di codice, 1254 00:56:03,830 --> 00:56:09,250 quello che stiamo realmente ti chiede di fare è che stiamo chiedendo di risolvere un problema. 1255 00:56:09,250 --> 00:56:11,810 E il modo in cui si dovrebbe pensare a fare che 1256 00:56:11,810 --> 00:56:17,900 è partendo con alcuni semplice parte di questa soluzione. 1257 00:56:17,900 --> 00:56:21,730 E poi costruire fuori da quella parte. 1258 00:56:21,730 --> 00:56:23,400 Ed è quello che stiamo andando a fare oggi. 1259 00:56:23,400 --> 00:56:27,570 >> Quindi, piuttosto che cercare tutto in una volta per scrivere l'intero gruppo di codice che è 1260 00:56:27,570 --> 00:56:30,770 andando a produrre quelli 10 celle di animazione, 1261 00:56:30,770 --> 00:56:35,506 stiamo per iniziare invece con un pezzo che funziona. 1262 00:56:35,506 --> 00:56:37,380 E poi costruiremo un po 'intorno a quel 1263 00:56:37,380 --> 00:56:39,740 e un po 'di più e un po' di più. 1264 00:56:39,740 --> 00:56:42,550 >> Ora la cosa buona di risolvere i problemi in questo modo 1265 00:56:42,550 --> 00:56:46,716 è che vi permetterà di iniziare sempre con qualcosa che si sa 1266 00:56:46,716 --> 00:56:51,130 opere e di introdurre un cambiamento graduale. 1267 00:56:51,130 --> 00:56:54,090 E questo è un ottimo modo per imparare a codificare, 1268 00:56:54,090 --> 00:56:58,590 perché ogni volta che si effettua un cambiamento, si vede qual è l'impatto che ha. 1269 00:56:58,590 --> 00:56:59,540 OK. 1270 00:56:59,540 --> 00:57:01,450 >> Quindi, ecco il nostro punto di partenza. 1271 00:57:01,450 --> 00:57:01,950 OK. 1272 00:57:01,950 --> 00:57:08,030 Così all'inizio del mio file, Ho hash #include stdio.h. 1273 00:57:08,030 --> 00:57:12,560 È così che io possa ottenere il printf () per funzionare. 1274 00:57:12,560 --> 00:57:15,240 >> Io poi ho la mia funzione principale. 1275 00:57:15,240 --> 00:57:18,760 E questo sembra ancora un po ' arcana od oscuro per alcuni di voi. 1276 00:57:18,760 --> 00:57:20,010 Va bene. 1277 00:57:20,010 --> 00:57:23,190 Tutto ciò che dice è che la funzione principale prende 1278 00:57:23,190 --> 00:57:27,830 mezzi non arguments-- vuoto nulla in C. E 1279 00:57:27,830 --> 00:57:29,940 restituisce per convenzione un numero intero. 1280 00:57:29,940 --> 00:57:33,290 Principale restituisce sempre un numero intero, di solito un codice dicendo cose 1281 00:57:33,290 --> 00:57:35,071 è andato bene o non è andato bene. 1282 00:57:35,071 --> 00:57:35,570 OK. 1283 00:57:35,570 --> 00:57:39,110 Ma principale deve avere che formare per noi in questo momento. 1284 00:57:39,110 --> 00:57:42,080 >> Ho poi messo in tre righe di codice. 1285 00:57:42,080 --> 00:57:46,760 E con ogni riga di codice, ho messo un commento. 1286 00:57:46,760 --> 00:57:51,340 Ora, una delle cose che insisteremo che si fa, 1287 00:57:51,340 --> 00:57:55,320 ed è tale importante pratica di programmazione, 1288 00:57:55,320 --> 00:57:57,800 è di commentare sempre il codice. 1289 00:57:57,800 --> 00:58:02,550 Sempre scrivere in giù in un English commento qualcosa 1290 00:58:02,550 --> 00:58:06,740 che si ritiene che il codice dovrebbe fare. 1291 00:58:06,740 --> 00:58:11,360 In questo modo, in seguito, quando si torna a esso, è possibile guardare e si può dire, 1292 00:58:11,360 --> 00:58:13,800 oh, mi ricordo di quello che ero cercando di fare con questo. 1293 00:58:13,800 --> 00:58:17,590 O quando un TA si siede con voi per cercare di aiutarvi in ​​orario d'ufficio, 1294 00:58:17,590 --> 00:58:20,890 si può guardare a questo e andare, io Vedete quello che stavi cercando di fare, 1295 00:58:20,890 --> 00:58:25,630 ma questo è ciò che sta realmente accadendo. 1296 00:58:25,630 --> 00:58:26,130 OK. 1297 00:58:26,130 --> 00:58:30,300 >> Così ho tre parti al mio codice, Io vado a prima di tutto di stampa 1298 00:58:30,300 --> 00:58:33,110 alcuni punti all'inizio. 1299 00:58:33,110 --> 00:58:37,480 Io poi stampare il mio coniglietto estremamente fantasia. 1300 00:58:37,480 --> 00:58:40,600 E poi qualche po 'di punti alla fine. 1301 00:58:40,600 --> 00:58:45,220 >> E queste tre affermazioni di stampa dovrebbe guardare familiare a voi a questo punto. 1302 00:58:45,220 --> 00:58:47,350 Tutto quello che sto facendo in ciascuno di essi è Sono 1303 00:58:47,350 --> 00:58:49,780 stampare una sequenza di caratteri. 1304 00:58:49,780 --> 00:58:51,370 Non ci sono variabili in gioco. 1305 00:58:51,370 --> 00:58:54,320 Tutto è solo piatto. 1306 00:58:54,320 --> 00:58:55,270 OK. 1307 00:58:55,270 --> 00:59:07,340 >> Quindi, se vado giù ora al mio terminal-- Vediamo se riesco a ottenere questo ritorno fuori-- 1308 00:59:07,340 --> 00:59:09,370 e ho intenzione di scrivere di nuovo chiaro. 1309 00:59:09,370 --> 00:59:12,507 >> SPEAKER 20: usiamo il doppia barra di commentare? 1310 00:59:12,507 --> 00:59:14,340 BRIAN Scassellati: Can utilizzare il sì double--. 1311 00:59:14,340 --> 00:59:16,920 Ci sono vari modi di lasciare commenti in C. Uno 1312 00:59:16,920 --> 00:59:19,440 modo è quello di utilizzare la doppia barra. 1313 00:59:19,440 --> 00:59:24,910 L'altro è quello di utilizzare una barra e una stella e poi chiudere con una stella e una barra. 1314 00:59:24,910 --> 00:59:26,110 Tutto ok. 1315 00:59:26,110 --> 00:59:28,950 >> Prima di tutto, ho intenzione di iniziare la navigazione in giro qui. 1316 00:59:28,950 --> 00:59:35,350 Quindi, se vado alla mia home directory, Ho cambiato directory lì, 1317 00:59:35,350 --> 00:59:40,230 Vado a guardare e vedere cosa c'è in quella directory, ls, lista fuori. 1318 00:59:40,230 --> 00:59:43,230 Io vado a vedere che ho ha ottenuto due sottodirectory. 1319 00:59:43,230 --> 00:59:47,910 Facciamo questo un po 'più grande qui in modo che tutti possiamo vedere. 1320 00:59:47,910 --> 00:59:50,610 >> Vedo che ho ha ottenuto due sottodirectory. 1321 00:59:50,610 --> 00:59:53,510 Cambierò elenco per andare nello spazio di lavoro. 1322 00:59:53,510 --> 00:59:58,380 E ho intenzione di scrivere solo parte di esso, e poi basta premere Tab. 1323 00:59:58,380 --> 01:00:01,520 E sarà completare il resto per me. 1324 01:00:01,520 --> 01:00:03,370 Fancy. 1325 01:00:03,370 --> 01:00:04,960 >> Cercherò e vedere in area di lavoro. 1326 01:00:04,960 --> 01:00:08,431 E in questo momento, sto lavorando sulla SuperSection 1327 01:00:08,431 --> 01:00:09,680 che stiamo insegnando al momento. 1328 01:00:09,680 --> 01:00:10,971 Così andrò in quella directory. 1329 01:00:10,971 --> 01:00:14,770 1330 01:00:14,770 --> 01:00:15,970 E, infine, guardare e vedere. 1331 01:00:15,970 --> 01:00:18,480 E ho quel file bunny.c. 1332 01:00:18,480 --> 01:00:20,980 >> Va bene così vorrei chiarire ancora una volta. 1333 01:00:20,980 --> 01:00:24,370 E ho intenzione di now-- nuovo Sono ancora stare in quella directory 1334 01:00:24,370 --> 01:00:27,540 e mi sta dicendo che sono in quella directory SuperSection. 1335 01:00:27,540 --> 01:00:30,690 Ho intenzione di andare avanti e fare il mio programma di coniglio. 1336 01:00:30,690 --> 01:00:33,730 1337 01:00:33,730 --> 01:00:38,810 E quel comando, rendono coniglietto, mentre suona un po po 'strano, 1338 01:00:38,810 --> 01:00:42,960 invoca anche il compilatore clang. 1339 01:00:42,960 --> 01:00:46,470 >> Ed è prodotta per mi un'uscita che è 1340 01:00:46,470 --> 01:00:52,130 un funny-- un eseguibile file eseguibile chiamato coniglio. 1341 01:00:52,130 --> 01:00:52,700 OK. 1342 01:00:52,700 --> 01:00:56,700 Posso allora, e questo suona peggio ancora, eseguire coniglietto. 1343 01:00:56,700 --> 01:00:59,360 1344 01:00:59,360 --> 01:01:00,680 OK. 1345 01:01:00,680 --> 01:01:03,150 E vediamo cosa fa. 1346 01:01:03,150 --> 01:01:04,527 OK. 1347 01:01:04,527 --> 01:01:06,360 Questo è un po 'di quello che mi aspettavo. 1348 01:01:06,360 --> 01:01:11,290 Ho la mia immagine coniglietto in là, ma io tipo di voluto da sola. 1349 01:01:11,290 --> 01:01:13,186 Cosa mi sono perso? 1350 01:01:13,186 --> 01:01:14,478 >> SPEAKER 21: Slash l o barra n. 1351 01:01:14,478 --> 01:01:15,602 BRIAN Scassellati: Slash n. 1352 01:01:15,602 --> 01:01:16,580 OK. 1353 01:01:16,580 --> 01:01:18,800 Così torniamo qui fuori. 1354 01:01:18,800 --> 01:01:20,330 E vado a prendere da quella. 1355 01:01:20,330 --> 01:01:23,320 E io andrò di nuovo in questo. 1356 01:01:23,320 --> 01:01:27,720 E diamo un'occhiata ora dalla mia funzione principale qui. 1357 01:01:27,720 --> 01:01:29,280 >> Quindi cosa dovrei fare? 1358 01:01:29,280 --> 01:01:30,465 Voglio terminare la linea. 1359 01:01:30,465 --> 01:01:34,020 1360 01:01:34,020 --> 01:01:35,800 Così mi metterò in un commento. 1361 01:01:35,800 --> 01:01:38,430 Metterò in un printf (). 1362 01:01:38,430 --> 01:01:41,350 E che devo mettere dentro? 1363 01:01:41,350 --> 01:01:41,890 / n. 1364 01:01:41,890 --> 01:01:43,480 OK. 1365 01:01:43,480 --> 01:01:46,040 Che cosa devo farla finita con? 1366 01:01:46,040 --> 01:01:47,100 Punto e virgola. 1367 01:01:47,100 --> 01:01:48,730 Tutto ok. 1368 01:01:48,730 --> 01:01:52,880 >> Ora, uno dei veramente cose importanti è fare in modo 1369 01:01:52,880 --> 01:01:56,720 ogni volta che si effettua un cambiamento nel codice, che si salva. 1370 01:01:56,720 --> 01:02:01,380 Se non è stato salvato il codice, sei andando a notare una piccola stella lassù. 1371 01:02:01,380 --> 01:02:03,420 E che si dice stella Non hanno salvato questo codice. 1372 01:02:03,420 --> 01:02:07,790 >> Se compilo in questo momento, non è andando a riflettere qualsiasi di tali modifiche, 1373 01:02:07,790 --> 01:02:11,680 perché il compilatore esamina il file che è sul disco, non il file che è 1374 01:02:11,680 --> 01:02:13,790 aprire nel vostro editor. 1375 01:02:13,790 --> 01:02:14,290 Tutto ok. 1376 01:02:14,290 --> 01:02:20,830 >> Quindi cerchiamo di salvarla e poi andremo proprio giù qui, tornare fuori. 1377 01:02:20,830 --> 01:02:24,670 Vieni giù a mio terminale. 1378 01:02:24,670 --> 01:02:27,193 E cerchiamo di chiarire ancora una volta lo spazio. 1379 01:02:27,193 --> 01:02:30,690 1380 01:02:30,690 --> 01:02:35,760 >> E possiamo andare avanti e un altro volta a rendere il nostro programma di coniglio. 1381 01:02:35,760 --> 01:02:40,180 Ed eseguire il coniglio. 1382 01:02:40,180 --> 01:02:42,500 Che non ha funzionato neanche. 1383 01:02:42,500 --> 01:02:43,950 Barra sbagliato. 1384 01:02:43,950 --> 01:02:52,280 Quindi, se si guarda a ciò che ho, ho messo un / n in là, ma ho avuto la barra sbagliato. 1385 01:02:52,280 --> 01:02:56,190 >> Tutto ciò che il computer fa è molto esplicito. 1386 01:02:56,190 --> 01:02:57,230 ok? 1387 01:02:57,230 --> 01:03:01,250 Un piccolo errore di punteggiatura, e improvvisamente non si ottiene ciò che si vuole. 1388 01:03:01,250 --> 01:03:01,750 Tutto ok. 1389 01:03:01,750 --> 01:03:03,740 Quindi cerchiamo di zoom indietro di nuovo. 1390 01:03:03,740 --> 01:03:04,410 Ci torneremo. 1391 01:03:04,410 --> 01:03:07,930 Bene fare che la riparazione molto veloce. 1392 01:03:07,930 --> 01:03:09,270 Metteremo la barra destra. 1393 01:03:09,270 --> 01:03:10,570 Ci salveremo esso. 1394 01:03:10,570 --> 01:03:13,410 Ti ingrandiamo nuovo in. 1395 01:03:13,410 --> 01:03:16,730 >> Per qualche ragione, che non è essere felice, ma andiamo avanti 1396 01:03:16,730 --> 01:03:19,850 e torneremo al terminale qui. 1397 01:03:19,850 --> 01:03:22,940 Chiarirlo. 1398 01:03:22,940 --> 01:03:24,880 Ti ingrandiamo. 1399 01:03:24,880 --> 01:03:28,410 E ancora una volta, faremo coniglio. 1400 01:03:28,410 --> 01:03:32,360 E ora abbastanza sicuro, funziona. 1401 01:03:32,360 --> 01:03:33,240 Evviva. 1402 01:03:33,240 --> 01:03:34,300 OK. 1403 01:03:34,300 --> 01:03:39,580 >> Quindi cerchiamo di fare questo un po 'più generale. 1404 01:03:39,580 --> 01:03:46,750 Vediamo se invece di stampa di una particolare struttura, 1405 01:03:46,750 --> 01:03:49,610 vediamo se possiamo fare questo in modo da poter ottenere tutti i 10 1406 01:03:49,610 --> 01:03:52,960 di quei fotogrammi animati che volevamo avere. 1407 01:03:52,960 --> 01:03:56,550 Così ancora una volta, prendiamo questo un passo alla volta. 1408 01:03:56,550 --> 01:03:59,900 >> Facciamo prima generalizziamo, non così che faccio tutti i fotogrammi, 1409 01:03:59,900 --> 01:04:03,990 ma così faccio un qualsiasi cornice che potrei desiderare. 1410 01:04:03,990 --> 01:04:05,920 Allora, qual è la differenza tra le cornici? 1411 01:04:05,920 --> 01:04:07,377 È il coniglio lo stesso? 1412 01:04:07,377 --> 01:04:07,960 PUBBLICO: Sì. 1413 01:04:07,960 --> 01:04:08,390 BRIAN Scassellati: Sì. 1414 01:04:08,390 --> 01:04:09,370 Qual è la differenza? 1415 01:04:09,370 --> 01:04:10,246 >> PUBBLICO: Posizione. 1416 01:04:10,246 --> 01:04:11,870 BRIAN Scassellati: La sua posizione, giusto? 1417 01:04:11,870 --> 01:04:15,590 E come faccio a controllare la sua posizione? 1418 01:04:15,590 --> 01:04:17,340 Quanti punti sono mettendo all'inizio 1419 01:04:17,340 --> 01:04:19,048 e quanti punti sono mettendo alla fine. 1420 01:04:19,048 --> 01:04:21,970 Così ho avuto cinque al inizio e cinque alla fine. 1421 01:04:21,970 --> 01:04:28,320 >> Facciamo sostituire che cinque con un ciclo for. 1422 01:04:28,320 --> 01:04:29,380 OK. 1423 01:04:29,380 --> 01:04:32,330 E ho intenzione di creare una per ciclo, ora che sta per dire, 1424 01:04:32,330 --> 01:04:37,800 Io vado a stampare qualche numero di punti all'inizio. 1425 01:04:37,800 --> 01:04:39,600 Ho intenzione di utilizzare una variabile. 1426 01:04:39,600 --> 01:04:44,150 Diciamo che, come su i come il contatore nel mio ciclo. 1427 01:04:44,150 --> 01:04:47,200 E ho intenzione di dichiararlo fino in alto. 1428 01:04:47,200 --> 01:04:49,360 >> E poi nel ciclo for Ho bisogno di fare tre cose. 1429 01:04:49,360 --> 01:04:52,340 La prima cosa che ho bisogno di fare è che ho bisogno di inizializzare i. 1430 01:04:52,340 --> 01:04:56,570 Cosa devo inizializzare per iniziare ad essere? 1431 01:04:56,570 --> 01:04:57,160 0. 1432 01:04:57,160 --> 01:04:58,310 OK. 1433 01:04:58,310 --> 01:05:00,950 >> Poi ho bisogno di dire, che cosa è la condizione di terminazione? 1434 01:05:00,950 --> 01:05:03,020 Quando devo smettere? 1435 01:05:03,020 --> 01:05:05,983 Beh quanti punti si fa desidera stampare su questo? 1436 01:05:05,983 --> 01:05:06,921 >> PUBBLICO: Five. 1437 01:05:06,921 --> 01:05:08,170 BRIAN Scassellati: Cinque di nuovo? 1438 01:05:08,170 --> 01:05:10,650 Che ne dite di fare qualcosa facciamo diverso, abbiamo fatto cinque. 1439 01:05:10,650 --> 01:05:12,584 Mostriamo che è diverso. 1440 01:05:12,584 --> 01:05:13,250 SPEAKER 22: Due. 1441 01:05:13,250 --> 01:05:13,580 BRIAN Scassellati: Due. 1442 01:05:13,580 --> 01:05:14,080 OK. 1443 01:05:14,080 --> 01:05:17,760 Quindi, se voglio due punti, cosa devo mettere qui? 1444 01:05:17,760 --> 01:05:19,140 >> PUBBLICO: Tre. 1445 01:05:19,140 --> 01:05:20,530 >> BRIAN Scassellati: Three. 1446 01:05:20,530 --> 01:05:21,400 OK. 1447 01:05:21,400 --> 01:05:24,220 Quante volte è che intenzione di andare fino in fondo? 1448 01:05:24,220 --> 01:05:28,469 Che sta per passare attraverso tre volte, 0, 1, e 2, giusto? 1449 01:05:28,469 --> 01:05:30,010 Va bene, torniamo verso il basso per due. 1450 01:05:30,010 --> 01:05:31,570 Ora avremo due punti. 1451 01:05:31,570 --> 01:05:35,800 E quello che voglio fare ogni volta che vado attraverso il ciclo? 1452 01:05:35,800 --> 01:05:38,657 Che cosa deve cambiare ogni volta che vado fino in fondo? 1453 01:05:38,657 --> 01:05:39,850 >> SPEAKER 23: Aggiungere un punto. 1454 01:05:39,850 --> 01:05:41,020 >> BRIAN Scassellati: Devo andare avanti. 1455 01:05:41,020 --> 01:05:41,978 Ho intenzione di aggiungere un punto. 1456 01:05:41,978 --> 01:05:45,310 Io vado a stampare un punto, ogni iterazione del ciclo. 1457 01:05:45,310 --> 01:05:49,990 Ma come posso tenere traccia di come molte volte che sono stato attraverso il ciclo? 1458 01:05:49,990 --> 01:05:53,260 Sto utilizzando i, che variabile, il contatore. 1459 01:05:53,260 --> 01:05:57,110 >> Così ogni volta attraverso, vado Per incrementare il contatore di uno. 1460 01:05:57,110 --> 01:06:00,670 Ora, che è lo stesso per me come dire i = i + 1. 1461 01:06:00,670 --> 01:06:01,210 Va bene. 1462 01:06:01,210 --> 01:06:04,653 Potrei farlo che-- mi piace il stenografia, così ho intenzione di dire i ++. 1463 01:06:04,653 --> 01:06:07,190 1464 01:06:07,190 --> 01:06:08,370 OK. 1465 01:06:08,370 --> 01:06:10,680 >> Facciamo la stessa cosa qui in basso. 1466 01:06:10,680 --> 01:06:11,846 Solo io tipo di fatto che uno. 1467 01:06:11,846 --> 01:06:13,990 Ho intenzione di lasciare che voi ragazzi fare completamente questo. 1468 01:06:13,990 --> 01:06:14,260 Tutto ok. 1469 01:06:14,260 --> 01:06:15,426 >> Quindi cosa devo scrivere qui? 1470 01:06:15,426 --> 01:06:17,170 Ecco il mio ciclo for. 1471 01:06:17,170 --> 01:06:23,162 Ho intenzione di fare un printf () e sto andando per fare in modo che posso stampare un solo punto 1472 01:06:23,162 --> 01:06:25,740 su tale fondo. 1473 01:06:25,740 --> 01:06:27,740 >> cosa devo scrivere all'interno di questo ciclo for ora? 1474 01:06:27,740 --> 01:06:30,897 1475 01:06:30,897 --> 01:06:33,948 Ebbene, prima di tutto quanto variabili dovrebbero utilizzare? 1476 01:06:33,948 --> 01:06:35,430 >> SPEAKER 24: j. 1477 01:06:35,430 --> 01:06:36,880 >> BRIAN Scassellati: Potrei usare j. 1478 01:06:36,880 --> 01:06:38,040 Posso usare lo stesso? 1479 01:06:38,040 --> 01:06:39,961 Posso usare i di nuovo? 1480 01:06:39,961 --> 01:06:40,460 Già. 1481 01:06:40,460 --> 01:06:45,531 Va bene, perché Is che sto usando qui, 1482 01:06:45,531 --> 01:06:47,780 Non ho bisogno di nuovo quando Scendo a questo punto. 1483 01:06:47,780 --> 01:06:52,240 1484 01:06:52,240 --> 01:06:53,790 >> Ma cosa dovrei inizializzare i to? 1485 01:06:53,790 --> 01:06:56,675 1486 01:06:56,675 --> 01:06:57,300 SPEAKER 25: 10. 1487 01:06:57,300 --> 01:06:58,567 BRIAN Scassellati: 0. 1488 01:06:58,567 --> 01:06:59,400 Cosa devo controllare? 1489 01:06:59,400 --> 01:07:02,960 Quanti punti ho bisogno ormai alla fine se ho due punti all'inizio? 1490 01:07:02,960 --> 01:07:05,820 1491 01:07:05,820 --> 01:07:09,165 Ho bisogno di otto alla fine, così che cosa dovrei controllare, i meno than-- 1492 01:07:09,165 --> 01:07:12,645 >> PUBBLICO: sette, otto, nove. 1493 01:07:12,645 --> 01:07:14,020 BRIAN Scassellati: Ho sentito sette. 1494 01:07:14,020 --> 01:07:14,810 Ho sentito otto. 1495 01:07:14,810 --> 01:07:15,970 E ho sentito nove. 1496 01:07:15,970 --> 01:07:16,470 OK. 1497 01:07:16,470 --> 01:07:19,540 Quindi siamo tutti nel giusto ball-- Jason dice 10. 1498 01:07:19,540 --> 01:07:21,550 OK. 1499 01:07:21,550 --> 01:07:25,920 >> Se avevo bisogno di due punti per il primo, quante fare 1500 01:07:25,920 --> 01:07:30,170 I-- e ho bisogno di otto punti per la ultima tra-- ho messo un due in alto, 1501 01:07:30,170 --> 01:07:31,743 cosa devo mettere giù in basso? 1502 01:07:31,743 --> 01:07:32,570 >> PUBBLICO: Otto. 1503 01:07:32,570 --> 01:07:33,611 >> BRIAN Scassellati: Otto. 1504 01:07:33,611 --> 01:07:35,695 Perché questo sta per contare da zero a sette. 1505 01:07:35,695 --> 01:07:38,490 E questo è otto volte attraverso il ciclo. 1506 01:07:38,490 --> 01:07:38,990 OK. 1507 01:07:38,990 --> 01:07:41,774 E che cosa devo fare alla fine? 1508 01:07:41,774 --> 01:07:42,670 >> PUBBLICO: i ++. 1509 01:07:42,670 --> 01:07:44,400 >> BRIAN Scassellati: i ++. 1510 01:07:44,400 --> 01:07:45,440 Tutto ok. 1511 01:07:45,440 --> 01:07:48,260 In modo che sia cercando piuttosto bene lì. 1512 01:07:48,260 --> 01:07:50,620 Proviamo e vediamo cosa fa. 1513 01:07:50,620 --> 01:07:51,450 OK. 1514 01:07:51,450 --> 01:07:53,770 Quindi stiamo andando a salvarlo. 1515 01:07:53,770 --> 01:07:54,940 Nizza e salvato. 1516 01:07:54,940 --> 01:07:56,910 >> Ti zoom indietro. 1517 01:07:56,910 --> 01:07:58,220 Cercheremo qui nel terminale. 1518 01:07:58,220 --> 01:08:01,440 1519 01:08:01,440 --> 01:08:02,970 Ti ingrandiamo. 1520 01:08:02,970 --> 01:08:05,416 Oops. 1521 01:08:05,416 --> 01:08:09,990 Faremo, ancora una volta, rendere il nostro programma di coniglio. 1522 01:08:09,990 --> 01:08:14,460 E andare avanti ed eseguire coniglietto. 1523 01:08:14,460 --> 01:08:15,980 Ed è così. 1524 01:08:15,980 --> 01:08:17,710 >> Quindi c'è il nostro coniglio. 1525 01:08:17,710 --> 01:08:25,130 Dove ha due punti all'inizio e otto punti alla fine. 1526 01:08:25,130 --> 01:08:27,540 Tutti ancora con me? 1527 01:08:27,540 --> 01:08:28,770 OK. 1528 01:08:28,770 --> 01:08:29,580 >> Così abbiamo costruito su. 1529 01:08:29,580 --> 01:08:33,000 Abbiamo costruito un coniglietto, un particolare fotogramma. 1530 01:08:33,000 --> 01:08:36,229 Ora siamo stati in grado di generalizzare che per costruire 1531 01:08:36,229 --> 01:08:38,390 più, diversi tipi di cornici. 1532 01:08:38,390 --> 01:08:42,399 >> Ora andiamo avanti, e hanno esso genera non solo un fotogramma, 1533 01:08:42,399 --> 01:08:46,290 ma cerchiamo di generare 10 cornici, dove lentamente 1534 01:08:46,290 --> 01:08:50,569 rendono il coniglio andare all la strada attraverso il campo. 1535 01:08:50,569 --> 01:08:51,430 Tutto ok. 1536 01:08:51,430 --> 01:08:53,660 >> Torniamo indietro. 1537 01:08:53,660 --> 01:08:54,839 E cercheremo ora. 1538 01:08:54,839 --> 01:09:00,680 1539 01:09:00,680 --> 01:09:02,830 Allora, cosa ne ho veramente bisogno di cambiare qui? 1540 01:09:02,830 --> 01:09:06,139 1541 01:09:06,139 --> 01:09:07,180 Di cosa ho bisogno di cambiare? 1542 01:09:07,180 --> 01:09:10,638 >> SPEAKER 26: Innanzitutto è necessario modificare il numero massimo di punti 1543 01:09:10,638 --> 01:09:11,626 all'inizio. 1544 01:09:11,626 --> 01:09:16,850 Perché se stiamo facendo 10 punti, sta andando ad avere bisogno di fino a scalare. 1545 01:09:16,850 --> 01:09:17,850 BRIAN Scassellati: Sì. 1546 01:09:17,850 --> 01:09:23,760 Così adesso l'ho sorta di cablato fare sempre due punti all'inizio 1547 01:09:23,760 --> 01:09:27,890 e sempre fare otto punti alla fine. 1548 01:09:27,890 --> 01:09:30,660 >> Voglio costruire un altro ciclo, giusto? 1549 01:09:30,660 --> 01:09:33,290 Perché non voglio costruire solo una foto coniglietto, 1550 01:09:33,290 --> 01:09:37,140 Voglio costruire 10 immagini coniglio. 1551 01:09:37,140 --> 01:09:41,500 Così ho bisogno di costruire un altro ciclo, e come vado attraverso quel ciclo, 1552 01:09:41,500 --> 01:09:44,660 Voglio cambiare il numero di puntini stampo all'inizio 1553 01:09:44,660 --> 01:09:50,529 e quanti punti stampo, alla fine, sulla base di quale ciclo attraverso il ciclo 1554 01:09:50,529 --> 01:09:52,270 Sono dentro. 1555 01:09:52,270 --> 01:09:52,770 Tutto ok. 1556 01:09:52,770 --> 01:09:54,430 >> Quindi cerchiamo di ottenere un altro contatore. 1557 01:09:54,430 --> 01:09:58,142 Qualcuno ha detto prima di j, così faremo un'altra j. 1558 01:09:58,142 --> 01:10:00,100 E ora, stiamo andando a costruire un altro ciclo for. 1559 01:10:00,100 --> 01:10:02,650 1560 01:10:02,650 --> 01:10:06,200 >> Che cosa va dentro quel ciclo? 1561 01:10:06,200 --> 01:10:09,060 Questa roba deve andare all'interno del ciclo, giusto? 1562 01:10:09,060 --> 01:10:11,190 Ha il coniglio ha per andare all'interno del ciclo? 1563 01:10:11,190 --> 01:10:13,390 Ho bisogno di un coniglio in ciascuno di questi 10 fotogrammi? 1564 01:10:13,390 --> 01:10:14,099 >> PUBBLICO: Uh-huh. 1565 01:10:14,099 --> 01:10:15,098 BRIAN Scassellati: Sì. 1566 01:10:15,098 --> 01:10:17,250 Voglio un coniglietto in ogni dei 10 fotogrammi, giusto? 1567 01:10:17,250 --> 01:10:20,531 Come circa i punti a Alla fine, ho bisogno che? 1568 01:10:20,531 --> 01:10:21,030 OK. 1569 01:10:21,030 --> 01:10:22,550 >> Quindi ho intenzione di rientrare tutti. 1570 01:10:22,550 --> 01:10:25,110 Ho intenzione di evidenziare tutti questo, e ho intenzione di colpire Tab. 1571 01:10:25,110 --> 01:10:28,590 E che sta andando a spingerli tutto un po ', in modo che sia facile per me 1572 01:10:28,590 --> 01:10:32,010 per vedere cosa c'è nel ciclo. 1573 01:10:32,010 --> 01:10:33,710 E poi finirò esso. 1574 01:10:33,710 --> 01:10:35,850 Diciamo. 1575 01:10:35,850 --> 01:10:36,430 ok? 1576 01:10:36,430 --> 01:10:39,230 >> Ora, in questo ciclo che Sono building-- whoops, 1577 01:10:39,230 --> 01:10:43,810 fare che così si può see-- Ho ottenuto il mio contatore j. 1578 01:10:43,810 --> 01:10:45,630 Mi avviai a 0. 1579 01:10:45,630 --> 01:10:47,829 Quante volte voglio per passare attraverso questo ciclo? 1580 01:10:47,829 --> 01:10:48,620 PUBBLICO: 10 volte. 1581 01:10:48,620 --> 01:10:49,786 BRIAN Scassellati: 10 volte. 1582 01:10:49,786 --> 01:10:51,402 Quindi, che numero devo mettere qui? 1583 01:10:51,402 --> 01:10:52,880 >> PUBBLICO: 9, 10. 1584 01:10:52,880 --> 01:10:55,600 >> BRIAN Scassellati: 9, 10, qualcuno deve dire 11, giusto? 1585 01:10:55,600 --> 01:10:58,190 1586 01:10:58,190 --> 01:11:01,585 Volevo due punti prima e mettere i meno di 2. 1587 01:11:01,585 --> 01:11:03,810 Volevo otto punti, Ho messo i meno di 8. 1588 01:11:03,810 --> 01:11:06,950 Ora voglio passare attraverso 10 volte, così ho messo j meno than-- 1589 01:11:06,950 --> 01:11:07,590 >> PUBBLICO: 10. 1590 01:11:07,590 --> 01:11:08,610 >> BRIAN Scassellati: 10. 1591 01:11:08,610 --> 01:11:10,150 Ci siamo. 1592 01:11:10,150 --> 01:11:13,360 E cosa faccio alla fine per j? 1593 01:11:13,360 --> 01:11:15,310 ++, Incrementarlo. 1594 01:11:15,310 --> 01:11:16,230 OK. 1595 01:11:16,230 --> 01:11:21,500 Ora, ecco la parte difficile, qual è succederà adesso se faccio questo? 1596 01:11:21,500 --> 01:11:24,537 Sto per stampare i 10 fotogrammi? 1597 01:11:24,537 --> 01:11:26,370 SPEAKER 27: penso saranno tutti uguali. 1598 01:11:26,370 --> 01:11:28,453 BRIAN Scassellati: Faranno tutto più lo stesso, giusto? 1599 01:11:28,453 --> 01:11:31,750 Perché tutti loro sono ancora in corso mettere due punti all'inizio. 1600 01:11:31,750 --> 01:11:34,162 Ma io non li voglio avere due punti l'inizio. 1601 01:11:34,162 --> 01:11:35,870 Quanti punti devo vogliono all'inizio? 1602 01:11:35,870 --> 01:11:39,097 1603 01:11:39,097 --> 01:11:40,020 >> PUBBLICO: Cambiare. 1604 01:11:40,020 --> 01:11:42,840 >> BRIAN Scassellati: I vogliono cambiare, giusto? 1605 01:11:42,840 --> 01:11:46,588 Quindi cosa devo qui che sta cambiando ogni volta che il ciclo passa attraverso? 1606 01:11:46,588 --> 01:11:48,242 >> PUBBLICO: Numero di punti, j. 1607 01:11:48,242 --> 01:11:49,950 BRIAN Scassellati: j, il numero di punti. 1608 01:11:49,950 --> 01:11:54,782 Così posso cambiare questa ad essere j. 1609 01:11:54,782 --> 01:11:59,190 La prima volta attraverso la cappio, cosa che sarà? 1610 01:11:59,190 --> 01:12:01,700 Che cosa faccio a impostare j in un primo momento? 1611 01:12:01,700 --> 01:12:02,420 >> PUBBLICO: 0. 1612 01:12:02,420 --> 01:12:05,700 >> BRIAN Scassellati: Così come molte volte sto andando a fare questo? 1613 01:12:05,700 --> 01:12:06,750 0. 1614 01:12:06,750 --> 01:12:11,750 La seconda iterazione del ciclo, di j sta per essere 1 perché ho incrementarlo. 1615 01:12:11,750 --> 01:12:14,180 Quanti punti farò stampare? 1616 01:12:14,180 --> 01:12:15,100 1. 1617 01:12:15,100 --> 01:12:19,904 La terza iterazione del ciclo, quanti punti farò stampare? 1618 01:12:19,904 --> 01:12:20,587 >> PUBBLICO: Tre. 1619 01:12:20,587 --> 01:12:22,170 BRIAN Scassellati: j sta per essere 3. 1620 01:12:22,170 --> 01:12:24,890 Quanti punti farò stampare? 1621 01:12:24,890 --> 01:12:26,817 Oh, scusa, j sarà 2. 1622 01:12:26,817 --> 01:12:28,233 Quanti punti farò stampare? 1623 01:12:28,233 --> 01:12:28,980 >> PUBBLICO: 2. 1624 01:12:28,980 --> 01:12:29,855 >> BRIAN Scassellati: 2. 1625 01:12:29,855 --> 01:12:32,460 OK, così ho intenzione di continuare a incremento che come andiamo avanti. 1626 01:12:32,460 --> 01:12:33,460 Che ne dici di laggiù? 1627 01:12:33,460 --> 01:12:34,310 Che cosa va giù qui? 1628 01:12:34,310 --> 01:12:38,080 Non voglio sempre 8 alla fine più? 1629 01:12:38,080 --> 01:12:39,269 >> SPEAKER 28: 10. 1630 01:12:39,269 --> 01:12:40,685 BRIAN Scassellati: Voglio 10 punti? 1631 01:12:40,685 --> 01:12:43,440 1632 01:12:43,440 --> 01:12:44,620 Lo voglio cambiare, anche. 1633 01:12:44,620 --> 01:12:47,469 Così come lo voglio cambiare? 1634 01:12:47,469 --> 01:12:49,167 >> PUBBLICO: [incomprensibile]. 1635 01:12:49,167 --> 01:12:51,750 BRIAN Scassellati: Beh, se io hanno cinque punti, all'inizio, 1636 01:12:51,750 --> 01:12:53,293 quanti punti di ricevo alla fine? 1637 01:12:53,293 --> 01:12:54,020 >> PUBBLICO: Five. 1638 01:12:54,020 --> 01:12:55,630 >> BRIAN Scassellati: Se ho sei punti all'inizio, 1639 01:12:55,630 --> 01:12:56,875 quanti ricevo alla fine? 1640 01:12:56,875 --> 01:12:57,500 PUBBLICO: Quattro. 1641 01:12:57,500 --> 01:12:58,950 BRIAN Scassellati: Se ho avuto sette punti all'inizio, 1642 01:12:58,950 --> 01:13:00,204 quanti ricevo alla fine? 1643 01:13:00,204 --> 01:13:00,870 PUBBLICO: Tre. 1644 01:13:00,870 --> 01:13:03,161 BRIAN Scassellati: Se ho ottenuto punti j all'inizio, 1645 01:13:03,161 --> 01:13:04,790 quanti ricevo alla fine? 1646 01:13:04,790 --> 01:13:07,520 10-j. 1647 01:13:07,520 --> 01:13:08,650 OK. 1648 01:13:08,650 --> 01:13:10,390 Quindi cerchiamo di provare che fuori. 1649 01:13:10,390 --> 01:13:13,180 >> Quindi ho intenzione di salvare il nostro programma di coniglio. 1650 01:13:13,180 --> 01:13:16,270 Ancora una volta ci zoom out. 1651 01:13:16,270 --> 01:13:19,090 Andremo giù per il nostro terminale. 1652 01:13:19,090 --> 01:13:20,180 Ti cancellarlo. 1653 01:13:20,180 --> 01:13:23,410 E ingrandire. 1654 01:13:23,410 --> 01:13:26,410 Faremo il nostro programma di coniglio, di nuovo. 1655 01:13:26,410 --> 01:13:27,690 E noi eseguirlo. 1656 01:13:27,690 --> 01:13:30,462 1657 01:13:30,462 --> 01:13:32,090 Uh Oh. 1658 01:13:32,090 --> 01:13:34,580 >> Tenere, andiamo a rimpicciolire. 1659 01:13:34,580 --> 01:13:36,860 Ho ricevuto 10 fotogrammi? 1660 01:13:36,860 --> 01:13:38,970 Beh, come molti conigli faccio vedo lassù? 1661 01:13:38,970 --> 01:13:43,330 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. 1662 01:13:43,330 --> 01:13:44,820 Ho 10 fotogrammi. 1663 01:13:44,820 --> 01:13:46,375 Sono tutti uguali? 1664 01:13:46,375 --> 01:13:47,000 PUBBLICO: Sì. 1665 01:13:47,000 --> 01:13:48,740 No. 1666 01:13:48,740 --> 01:13:50,000 >> BRIAN Scassellati: No. 1667 01:13:50,000 --> 01:13:55,050 Quel primo, il coniglio è lontano a sinistra. 1668 01:13:55,050 --> 01:13:57,541 E qui, il coniglio è di gran lunga il 1669 01:13:57,541 --> 01:13:58,290 SPEAKER 29: Giusto. 1670 01:13:58,290 --> 01:14:00,502 BRIAN Scassellati: Allora, quello che ho dimenticato di fare? 1671 01:14:00,502 --> 01:14:01,750 SPEAKER 30: Inizia una nuova linea. 1672 01:14:01,750 --> 01:14:04,041 BRIAN Scassellati: Ho dimenticato per iniziare una nuova linea, di nuovo. 1673 01:14:04,041 --> 01:14:05,270 Lo stesso errore che ho fatto prima. 1674 01:14:05,270 --> 01:14:07,120 Va bene, andiamo rimediare. 1675 01:14:07,120 --> 01:14:11,690 Ora, io ho ancora il codice in là per fare una nuova linea. 1676 01:14:11,690 --> 01:14:13,899 Perché non ha funzionato? 1677 01:14:13,899 --> 01:14:15,440 SPEAKER 31: Non è all'interno del ciclo. 1678 01:14:15,440 --> 01:14:17,710 BRIAN Scassellati: Oh, non è all'interno del ciclo. 1679 01:14:17,710 --> 01:14:18,520 Giusto. 1680 01:14:18,520 --> 01:14:20,150 E 'seduto fuori qui. 1681 01:14:20,150 --> 01:14:23,470 1682 01:14:23,470 --> 01:14:29,050 E il ciclo for è tutto che è all'interno di quel testo. 1683 01:14:29,050 --> 01:14:35,500 >> Quindi ho intenzione di muoversi questo all'interno del ciclo for. 1684 01:14:35,500 --> 01:14:39,410 E ti Tab di fronte ad essa per mostrano che è nel posto giusto. 1685 01:14:39,410 --> 01:14:42,020 E ora, salveremo di nuovo. 1686 01:14:42,020 --> 01:14:44,350 Ti zoom out. 1687 01:14:44,350 --> 01:14:45,770 Faremo passare al nostro terminale. 1688 01:14:45,770 --> 01:14:48,330 1689 01:14:48,330 --> 01:14:50,360 Ingrandire. 1690 01:14:50,360 --> 01:14:54,050 Ti rifacciamo il nostro programma di coniglio. 1691 01:14:54,050 --> 01:14:59,070 E ora, ora abbiamo i nostri 10 fotogrammi. 1692 01:14:59,070 --> 01:15:00,190 >> [APPLAUSO] 1693 01:15:00,190 --> 01:15:02,120 >> BRIAN Scassellati: OK. 1694 01:15:02,120 --> 01:15:04,080 Così. 1695 01:15:04,080 --> 01:15:08,370 Qui è la nostra cicli for nidificati. 1696 01:15:08,370 --> 01:15:13,140 Siamo stati in grado di generare nel ciclo interno quanti punti ho voluto 1697 01:15:13,140 --> 01:15:15,320 stampare all'inizio, alla fine. 1698 01:15:15,320 --> 01:15:21,570 E l'anello esterno controllato il numero di fotogrammi stavo costruendo. 1699 01:15:21,570 --> 01:15:26,340 Abbiamo iniziato con un po ' kernel del problema, 1700 01:15:26,340 --> 01:15:30,320 e abbiamo costruito fuori da quel punto. 1701 01:15:30,320 --> 01:15:30,820 Tutto ok. 1702 01:15:30,820 --> 01:15:33,500 >> Facciamo un passo in più. 1703 01:15:33,500 --> 01:15:35,040 Sei pronto? 1704 01:15:35,040 --> 01:15:38,800 C'è una cosa a qui dove abbiamo in realtà tipo di arrivati 1705 01:15:38,800 --> 01:15:42,180 maggiore complessità di quanto abbiamo bisogno. 1706 01:15:42,180 --> 01:15:44,700 Diamo un'occhiata. 1707 01:15:44,700 --> 01:15:52,050 Nel nostro programma di coniglio, se zoom out qui, 1708 01:15:52,050 --> 01:15:54,980 Io in realtà fare un po 'lo stesso cosa più e più volte. 1709 01:15:54,980 --> 01:15:59,032 Che cosa devo fare che è una sorta di la stessa cosa ripetuto due volte? 1710 01:15:59,032 --> 01:16:00,310 >> SPEAKER 32: Stampa i puntini. 1711 01:16:00,310 --> 01:16:03,526 >> BRIAN Scassellati: Sì Stampo quei puntini due volte. 1712 01:16:03,526 --> 01:16:05,710 Davvero, dovrei avere questo commento qui. 1713 01:16:05,710 --> 01:16:09,037 Stampo alcuni punti nella parte inizio, proprio qui. 1714 01:16:09,037 --> 01:16:10,620 E poi ho stampare alcuni punti alla fine. 1715 01:16:10,620 --> 01:16:14,694 E faccio tipo di esattamente la stessa cosa. 1716 01:16:14,694 --> 01:16:17,110 Quello che stiamo per iniziare lavorando su nelle prossime settimane 1717 01:16:17,110 --> 01:16:23,440 è essere in grado di prendere quei blocchi di codice che usiamo più e più volte, 1718 01:16:23,440 --> 01:16:25,800 e attraverso un processo chiamato astrazione, 1719 01:16:25,800 --> 01:16:31,100 stiamo andando a tirare fuori e scriverle una volta così che possiamo poi 1720 01:16:31,100 --> 01:16:35,130 riutilizzarli più e più volte. 1721 01:16:35,130 --> 01:16:37,210 Così proviamo questo. 1722 01:16:37,210 --> 01:16:38,220 Pronto? 1723 01:16:38,220 --> 01:16:42,200 >> Stiamo andando a prendere questo blocco di codice. 1724 01:16:42,200 --> 01:16:45,280 E ho intenzione di portarlo fuori di lì. 1725 01:16:45,280 --> 01:16:50,530 E ho intenzione di define-- giù in fondo, 1726 01:16:50,530 --> 01:16:53,130 Ho intenzione di scrivere una nuova funzione. 1727 01:16:53,130 --> 01:16:54,750 Non è intenzione di restituire qualcosa. 1728 01:16:54,750 --> 01:16:58,550 E ho intenzione di chiamarlo printDots. 1729 01:16:58,550 --> 01:17:01,530 >> Sta andando a prendere uno argomento, un numero intero che 1730 01:17:01,530 --> 01:17:04,920 dice howManyDots dovrei stampare. 1731 01:17:04,920 --> 01:17:09,310 1732 01:17:09,310 --> 01:17:17,720 E ora invece di stampare punti j, io sarò stampare dire howManyDots dovrei stampare. 1733 01:17:17,720 --> 01:17:21,581 >> E c'è un piccolo problema qui. 1734 01:17:21,581 --> 01:17:22,580 Qualcuno sa di cosa si tratta? 1735 01:17:22,580 --> 01:17:27,270 1736 01:17:27,270 --> 01:17:31,505 Cosa devo che la elencati qui dentro che non è definito? 1737 01:17:31,505 --> 01:17:34,165 1738 01:17:34,165 --> 01:17:35,090 >> PUBBLICO: [incomprensibile] 1739 01:17:35,090 --> 01:17:37,465 >> BRIAN Scassellati: Bene, come tanti punti è definita fino 1740 01:17:37,465 --> 01:17:40,584 qui, ma sto usando la variabile i. 1741 01:17:40,584 --> 01:17:43,750 Quindi ho intenzione di prendere quella variabile i e ho intenzione di definirlo nel qui 1742 01:17:43,750 --> 01:17:44,610 anziché. 1743 01:17:44,610 --> 01:17:49,683 >> Quindi ora sta andando stay-- oops, Ha ottenuto il blocco maiuscole somehow-- Sono 1744 01:17:49,683 --> 01:17:52,060 intenzione di mantenere i giù qui. 1745 01:17:52,060 --> 01:17:57,050 >> Così ora ecco la mia piccola funzione o sub-routine, e si dice, 1746 01:17:57,050 --> 01:18:00,640 quanti punti farò stampare? 1747 01:18:00,640 --> 01:18:05,300 E sarà passare attraverso questo ciclo e stamparli più e più volte. 1748 01:18:05,300 --> 01:18:10,940 >> Posso quindi modificare il mio programma qui. 1749 01:18:10,940 --> 01:18:12,540 E che cosa ha fatto io chiamo tale funzione? 1750 01:18:12,540 --> 01:18:13,960 printDots. 1751 01:18:13,960 --> 01:18:17,060 Così ti chiamo printDots. 1752 01:18:17,060 --> 01:18:21,530 Quanti punti voglio stampare la prima volta dinanzi al coniglio? 1753 01:18:21,530 --> 01:18:22,030 PUBBLICO: j. 1754 01:18:22,030 --> 01:18:23,230 BRIAN Scassellati: j. 1755 01:18:23,230 --> 01:18:27,110 Quanti punti voglio stampare alla fine, dopo il coniglio? 1756 01:18:27,110 --> 01:18:30,610 1757 01:18:30,610 --> 01:18:31,110 10-j. 1758 01:18:31,110 --> 01:18:35,020 1759 01:18:35,020 --> 01:18:38,010 >> E c'è una cosa che mi manca. 1760 01:18:38,010 --> 01:18:43,740 Come si è visto nella lezione di oggi, stiamo andando a dichiarare printDots 1761 01:18:43,740 --> 01:18:52,430 sopra per dare il prototipo. 1762 01:18:52,430 --> 01:18:56,740 1763 01:18:56,740 --> 01:18:58,220 OK. 1764 01:18:58,220 --> 01:19:03,530 >> Quindi quello che ho fatto è che ho cercato di isolare quella parte del codice riutilizzati 1765 01:19:03,530 --> 01:19:06,430 che ho fatto più e più volte. 1766 01:19:06,430 --> 01:19:11,120 E ho cercato di tirare fuori in modo che tutto ciò che è contenuto in un unico luogo. 1767 01:19:11,120 --> 01:19:16,810 In questo modo, se ho un errore da qualche parte, Ho solo per risolvere il problema in un punto. 1768 01:19:16,810 --> 01:19:17,310 Tutto ok. 1769 01:19:17,310 --> 01:19:18,470 >> Quindi cerchiamo di salvarlo. 1770 01:19:18,470 --> 01:19:20,950 E facciamo in modo che funziona. 1771 01:19:20,950 --> 01:19:22,050 Quindi cerchiamo di andare fuori. 1772 01:19:22,050 --> 01:19:25,200 Andremo di nuovo al nostro terminale. 1773 01:19:25,200 --> 01:19:27,960 Ti ingrandiamo. 1774 01:19:27,960 --> 01:19:31,010 Faremo questo processo coniglio. 1775 01:19:31,010 --> 01:19:32,380 >> Oh. 1776 01:19:32,380 --> 01:19:34,800 E mi ha dato un avvertimento. 1777 01:19:34,800 --> 01:19:37,070 Che cosa è mi dice? 1778 01:19:37,070 --> 01:19:39,870 Ebbene in uno di questi volte, si vogliono sempre 1779 01:19:39,870 --> 01:19:44,170 per scorrere fino al primo error-- ora su questo, ho solo uno. 1780 01:19:44,170 --> 01:19:52,700 >> Mi dice in bunny.c, on line 8, colonna 9, c'è un problema. 1781 01:19:52,700 --> 01:19:58,650 Si dice, hai dichiarato questo i variabili e non è stato utilizzato. 1782 01:19:58,650 --> 01:20:02,230 >> Ora normalmente, che è non il peggiore errore. 1783 01:20:02,230 --> 01:20:04,300 Questo è facile da risolvere. 1784 01:20:04,300 --> 01:20:07,550 E infatti, possiamo tornare a. 1785 01:20:07,550 --> 01:20:09,910 Possiamo tornare a Bunny. 1786 01:20:09,910 --> 01:20:13,010 E in questo caso, tutto ciò che hanno a che fare è sbarazzarsi di i, 1787 01:20:13,010 --> 01:20:16,630 perché non stiamo utilizzando i all'interno principale più. 1788 01:20:16,630 --> 01:20:19,860 Stiamo usando solo all'interno della nostra sub-routine. 1789 01:20:19,860 --> 01:20:22,777 >> Quindi cerchiamo di salvare quello. 1790 01:20:22,777 --> 01:20:23,360 Ci torneremo. 1791 01:20:23,360 --> 01:20:26,760 1792 01:20:26,760 --> 01:20:28,630 E ingrandire. 1793 01:20:28,630 --> 01:20:30,700 Avremo ancora una volta facciamo coniglio. 1794 01:20:30,700 --> 01:20:33,810 1795 01:20:33,810 --> 01:20:36,530 E ci sono ancora i nostri 10 fotogrammi. 1796 01:20:36,530 --> 01:20:39,450 1797 01:20:39,450 --> 01:20:41,360 OK. 1798 01:20:41,360 --> 01:20:43,190 >> Ogni volta che si è dato un procedure-- Già. 1799 01:20:43,190 --> 01:20:44,690 SPEAKER 33: Ho un-- Sono confuso. 1800 01:20:44,690 --> 01:20:45,892 Puoi tornare al codice? 1801 01:20:45,892 --> 01:20:46,850 BRIAN Scassellati: Sì. 1802 01:20:46,850 --> 01:20:50,730 1803 01:20:50,730 --> 01:20:54,367 >> SPEAKER 33: Allora, quando hai scritto prototipo, l'argomento si 1804 01:20:54,367 --> 01:20:56,550 se fosse nominato è stato chiamato howmany? 1805 01:20:56,550 --> 01:20:57,540 Ma, below-- 1806 01:20:57,540 --> 01:20:57,640 >> BRIAN Scassellati: Oh sì. 1807 01:20:57,640 --> 01:20:59,140 >> SPEAKER 33: --called loro qualcosa differente, io non capisco. 1808 01:20:59,140 --> 01:21:00,240 >> BRIAN Scassellati: Perché sono diversi. 1809 01:21:00,240 --> 01:21:01,780 Ecco, questo è una grande domanda. 1810 01:21:01,780 --> 01:21:08,250 Quindi la domanda era, fino qui, ho scritto howmany, 1811 01:21:08,250 --> 01:21:12,380 e giù in basso, ho scritto howManyDots. 1812 01:21:12,380 --> 01:21:15,590 >> La ragione è che nel prototipo, In realtà non è prestando attenzione 1813 01:21:15,590 --> 01:21:17,090 ai nomi che si sta mettendo in. 1814 01:21:17,090 --> 01:21:20,530 Tutto ciò che realmente si preoccupano è che è un numero intero. 1815 01:21:20,530 --> 01:21:23,080 Vuole conoscere la forma di ciò che si sta mettendo in. 1816 01:21:23,080 --> 01:21:31,560 >> Ora stylistically-- oops-- cosa dovrei fare, è mi piace fare questi partita. 1817 01:21:31,560 --> 01:21:33,150 OK. 1818 01:21:33,150 --> 01:21:36,430 Perché che sarà tenerlo più facile per me ricordare. 1819 01:21:36,430 --> 01:21:38,390 Ma quello era il mio errore Sì. 1820 01:21:38,390 --> 01:21:47,620 >> SPEAKER 34: E così per il prototipo al lavoro, solo 1821 01:21:47,620 --> 01:21:50,510 scrivendo che la linea, scrivere il prototipo, 1822 01:21:50,510 --> 01:21:53,932 permette che la funzione che viene proprio sotto per andare fino in fondo 1823 01:21:53,932 --> 01:21:55,140 e recuperare che cosa significa? 1824 01:21:55,140 --> 01:21:58,480 >> BRIAN Scassellati: Che cosa significa è quando il compilatore passa attraverso, 1825 01:21:58,480 --> 01:22:01,930 va dalla cima il codice per il fondo. 1826 01:22:01,930 --> 01:22:05,430 E ciò che questo prototipo è, è che è fondamentalmente una promessa. 1827 01:22:05,430 --> 01:22:09,570 >> Si dice, ci sara ' una funzione definita da qualche parte. 1828 01:22:09,570 --> 01:22:11,880 Sta andando essere chiamati printDots. 1829 01:22:11,880 --> 01:22:15,110 E sta andando a prendere un argomento che sta per essere un numero intero 1830 01:22:15,110 --> 01:22:18,590 e sta andando a tornare niente, tipo void. 1831 01:22:18,590 --> 01:22:19,310 OK. 1832 01:22:19,310 --> 01:22:22,950 Vi prometto che sta per essere definito da qualche parte lungo la strada. 1833 01:22:22,950 --> 01:22:25,590 Ma ogni volta che si vede che, come si va giù 1834 01:22:25,590 --> 01:22:28,710 per il resto della mia funzione principale, voglio 1835 01:22:28,710 --> 01:22:33,800 di trattare che in funzione che prende un ingresso intero. 1836 01:22:33,800 --> 01:22:37,970 >> E così quando il compilatore va giù attraverso questo, si vede che la promessa. 1837 01:22:37,970 --> 01:22:40,220 E quando si arriva verso il basso, continua a andare, continua a andare, 1838 01:22:40,220 --> 01:22:43,060 trova la prima volta printDots è menzionato. 1839 01:22:43,060 --> 01:22:46,910 E dice, Oh, stai dando me questo j. j è un numero intero. 1840 01:22:46,910 --> 01:22:49,570 >> Beh, mi ha promesso che avresti essere un numero intero e che è di destra. 1841 01:22:49,570 --> 01:22:51,370 Va bene. 1842 01:22:51,370 --> 01:22:53,880 E poi finalmente, verso il basso nella parte inferiore, 1843 01:22:53,880 --> 01:22:58,340 prima di arrivare alla fine del mio lima, faccio bene sulla mia promessa 1844 01:22:58,340 --> 01:22:59,896 e io definisco. 1845 01:22:59,896 --> 01:23:01,868 ok? 1846 01:23:01,868 --> 01:23:06,320 >> SPEAKER 35: Così, il saves-- programma salverà spazi vuoti 1847 01:23:06,320 --> 01:23:09,570 che va indietro e si riempie alla fine? 1848 01:23:09,570 --> 01:23:12,140 >> BRIAN Scassellati: Non è circa l'allocazione di memoria. 1849 01:23:12,140 --> 01:23:16,800 In realtà è solo di ciò che tipo ti aspetti di vedere. 1850 01:23:16,800 --> 01:23:19,340 Se questa cosa avere uno argomento o cinque argomenti? 1851 01:23:19,340 --> 01:23:23,590 Dovrebbe avere interi essere dato ad essa, o stringhe? 1852 01:23:23,590 --> 01:23:25,780 Questo è tutto quello che sta cercando a fare è controllare, 1853 01:23:25,780 --> 01:23:29,303 stai dando a me la giusto tipo di argomentazione. 1854 01:23:29,303 --> 01:23:31,560 ok? 1855 01:23:31,560 --> 01:23:32,300 Tutto ok. 1856 01:23:32,300 --> 01:23:38,570 >> Lasciate che vi lascio con un altro po 'a guardare. 1857 01:23:38,570 --> 01:23:44,850 ASCII art non è il grande modello dell'animazione come lo è oggi. 1858 01:23:44,850 --> 01:23:50,850 Ma alcune persone naturalmente prendere le cose e spingono ai loro estremi. 1859 01:23:50,850 --> 01:23:56,790 >> Questo è, come dimostrato David in conferenza, un pezzo di codice 1860 01:23:56,790 --> 01:24:02,150 che si dovrebbe in nessun caso provare a riprodurre voi stessi. 1861 01:24:02,150 --> 01:24:05,260 Perché è terribile stilisticamente. 1862 01:24:05,260 --> 01:24:11,180 In realtà, è progettato per essere il più difficile possibile leggere. 1863 01:24:11,180 --> 01:24:11,680 OK. 1864 01:24:11,680 --> 01:24:16,210 >> Quindi, per fare ancora una volta, cerchiamo di zoom qui. 1865 01:24:16,210 --> 01:24:20,120 Ho intenzione di andare, cambiare directory. 1866 01:24:20,120 --> 01:24:24,050 Ho intenzione di salire di un livello, di nuovo al mio lavoro. 1867 01:24:24,050 --> 01:24:29,760 Io poi cambiare directory in questo altra directory che ho creato. 1868 01:24:29,760 --> 01:24:36,190 >> E questo è il internazionale Offuscato C Programming Contest. 1869 01:24:36,190 --> 01:24:40,650 Mezzi offuscato come duro possibile comprendere. 1870 01:24:40,650 --> 01:24:44,150 Quindi, per favore, non spaventatevi se si guarda a questo e andare, non posso leggere questo. 1871 01:24:44,150 --> 01:24:46,350 Questo è il punto di esso. 1872 01:24:46,350 --> 01:24:47,700 ok? 1873 01:24:47,700 --> 01:24:52,770 >> Ma, abbiamo questa meraviglioso programma che io sono 1874 01:24:52,770 --> 01:24:57,180 andando a guardare semplicemente digitando più. 1875 01:24:57,180 --> 01:25:01,890 E vediamo se riesco a diminuire solo un po ', in modo da poter vedere 1876 01:25:01,890 --> 01:25:03,940 >> E questo è il programma. 1877 01:25:03,940 --> 01:25:08,080 Si chiama endo.c. 1878 01:25:08,080 --> 01:25:14,850 E sembra che questo secchio con tipo di lettere F-L-U-I-D in esso. 1879 01:25:14,850 --> 01:25:16,440 >> Questo è in realtà un programma. 1880 01:25:16,440 --> 01:25:20,260 E 'scritto nella più oscura modo che gli autori potrebbe eventualmente 1881 01:25:20,260 --> 01:25:21,760 Scrivilo. 1882 01:25:21,760 --> 01:25:29,210 Ma è un meraviglioso piccolo pezzo che genera un modello di fluidodinamica. 1883 01:25:29,210 --> 01:25:34,870 >> E così stiamo andando a dare tale modello un input che 1884 01:25:34,870 --> 01:25:42,520 sembra che questo, di un staired set di contenitori 1885 01:25:42,520 --> 01:25:45,820 con un fluido, alcuni liquido, in cima. 1886 01:25:45,820 --> 01:25:48,790 E noi l'abbiamo simulare quello che sta succedendo ad esso. 1887 01:25:48,790 --> 01:25:52,415 >> Così Chiamerò quella funzione, endo. 1888 01:25:52,415 --> 01:25:59,000 E ho deciso di dargli che file di input che ho avuto. 1889 01:25:59,000 --> 01:26:02,830 E c'è il nostro epitome di ASCII art. 1890 01:26:02,830 --> 01:26:08,960 Un completo simulatore fluidodinamico esecuzione in poche linee di codice. 1891 01:26:08,960 --> 01:26:13,750 >> Ora che cosa è in realtà davvero sorprendente di questo piccolo programma 1892 01:26:13,750 --> 01:26:17,280 è che io voglio smettere ora, così ho intenzione di utilizzare ciò che il comando? 1893 01:26:17,280 --> 01:26:18,660 >> PUBBLICO: Control-C. 1894 01:26:18,660 --> 01:26:20,390 >> BRIAN Scassellati: Control-C. OK. 1895 01:26:20,390 --> 01:26:22,960 Così Userò Control-C. C Che ti fermarlo. 1896 01:26:22,960 --> 01:26:25,330 Io a cancellare di nuovo. 1897 01:26:25,330 --> 01:26:31,210 E ora ho intenzione di invocare la il programma, eseguire il programma, 1898 01:26:31,210 --> 01:26:33,740 utilizzando stesso come input. 1899 01:26:33,740 --> 01:26:36,760 1900 01:26:36,760 --> 01:26:42,700 >> E vedremo la fluidodinamica simulazione di sciogliersi. 1901 01:26:42,700 --> 01:26:43,830 OK. 1902 01:26:43,830 --> 01:26:48,180 Si prega di non lasciare che il programma essere la cosa che ti confonde. 1903 01:26:48,180 --> 01:26:52,220 E 'solo così che possiamo porre fine a qualcosa di fresco e interessante. 1904 01:26:52,220 --> 01:26:53,930 OK. 1905 01:26:53,930 --> 01:26:56,330 >> Buona fortuna con il vostro set di problemi. 1906 01:26:56,330 --> 01:26:59,030 Saremo lieti di rispondere domande dopo le lezioni. 1907 01:26:59,030 --> 01:27:01,180 Grazie tanto, ragazzi. 1908 01:27:01,180 --> 01:27:02,793