1 00:00:00,000 --> 00:00:07,170 2 00:00:07,170 --> 00:00:09,100 >> LUCAS FREITAS: OK, credo ora siamo in diretta. 3 00:00:09,100 --> 00:00:11,220 Benvenuti a CS50 Supersection. 4 00:00:11,220 --> 00:00:12,880 Siamo meno confortevole. 5 00:00:12,880 --> 00:00:13,870 Il mio nome è Lucas Freitas. 6 00:00:13,870 --> 00:00:16,230 Sono uno CS50 Testa TF. 7 00:00:16,230 --> 00:00:17,523 Questo è Lauren. 8 00:00:17,523 --> 00:00:19,002 >> LAUREN CARVALHO: Ciao, io sono Lauren. 9 00:00:19,002 --> 00:00:21,330 Sono anche TF Testa per CS50. 10 00:00:21,330 --> 00:00:24,730 >> LUCAS FREITAS: Oggi stiamo solo andando per dare una panoramica di quello che tutti voi 11 00:00:24,730 --> 00:00:28,440 i ragazzi hanno imparato in una settimana, si spera per dare a voi ragazzi una buona 12 00:00:28,440 --> 00:00:32,580 senso a ciò che si deve sapere per il problema di impostare uno. 13 00:00:32,580 --> 00:00:34,120 >> Solo un paio di annunci. 14 00:00:34,120 --> 00:00:36,490 Prima di tutto, le ore di ufficio. 15 00:00:36,490 --> 00:00:41,580 Orario di ricevimento stanno accadendo da Lunedi a Giovedi in case diverse in 16 00:00:41,580 --> 00:00:43,450 Annenberg ogni giorno. 17 00:00:43,450 --> 00:00:46,680 Sono una risorsa molto buona per voi ragazzi a venire e fare domande, e 18 00:00:46,680 --> 00:00:49,470 parlare TF, e anche lo scambio idee con altri studenti. 19 00:00:49,470 --> 00:00:55,420 Quindi, essere sicuri di utilizzare tale risorsa a tuo favore. 20 00:00:55,420 --> 00:00:59,790 >> La seconda cosa è l' CS50 Appliance. 21 00:00:59,790 --> 00:01:01,390 Per l'ultima [incomprensibile] 22 00:01:01,390 --> 00:01:04,180 voi ragazzi non hanno dovuto effettivamente avere un elettrodomestico. 23 00:01:04,180 --> 00:01:06,910 Hai appena fatto tutto in il vostro personal computer. 24 00:01:06,910 --> 00:01:10,330 Ma per questo problema, in realtà hanno avere una macchina virtuale, in modo da essere 25 00:01:10,330 --> 00:01:14,680 Assicurarsi di scaricare il CS50 Appliance e configurarlo. 26 00:01:14,680 --> 00:01:18,670 >> E la terza cosa è essere sicuri di avviare il problema posto ASAP solo 27 00:01:18,670 --> 00:01:22,740 perché è molto più facile trovare aiutare quando sei in 28 00:01:22,740 --> 00:01:23,730 inizio della settimana. 29 00:01:23,730 --> 00:01:27,540 Poiché le persone tendono ad aspettare fino a quando il ultimo secondo per avviare il problema insieme, 30 00:01:27,540 --> 00:01:29,730 e poi si va a ore d'ufficio, e c'è un sacco di gente. 31 00:01:29,730 --> 00:01:33,020 Dove se si va il Lunedi, si sta andando per vedere che si può parlare di TF 32 00:01:33,020 --> 00:01:35,870 praticamente per tutta la notte, e stanno andando più che 33 00:01:35,870 --> 00:01:37,790 felice di aiutarvi. 34 00:01:37,790 --> 00:01:40,720 >> LAUREN CARVALHO: posso semplicemente smettere te per un solo secondo? 35 00:01:40,720 --> 00:01:43,330 Tutti sono stati in grado di scaricare il CS50 Appliance? 36 00:01:43,330 --> 00:01:44,255 Hanno cercato di persone? 37 00:01:44,255 --> 00:01:47,120 >> LUCAS FREITAS: Per scaricare, dal modo, è possibile ottenere istruzioni alla 38 00:01:47,120 --> 00:01:48,045 cs50.net/appliance. 39 00:01:48,045 --> 00:01:48,817 >> LAUREN CARVALHO: Giusto. 40 00:01:48,817 --> 00:01:53,120 E lo fa prendere un po 'di tempo per la nostra amministratori di sistema per ottenere una licenza 41 00:01:53,120 --> 00:01:55,450 chiave, in modo da firmare per il prova gratuita prima. 42 00:01:55,450 --> 00:01:59,080 In questo modo avrai per 30 giorni, e quindi attendere che la chiave di licenza 43 00:01:59,080 --> 00:02:02,650 che dovrebbe dare a voi per un anno. 44 00:02:02,650 --> 00:02:04,100 >> LUCAS FREITAS: Prima di tutto, parliamo un po ' 45 00:02:04,100 --> 00:02:06,180 sulla CS50 Appliance. 46 00:02:06,180 --> 00:02:10,770 Il CS50 Appliance è in realtà un virtuale macchina che si sta andando a 47 00:02:10,770 --> 00:02:15,040 eseguire nel proprio computer, che è fondamentalmente in esecuzione su un altro computer 48 00:02:15,040 --> 00:02:16,010 all'interno del proprio computer. 49 00:02:16,010 --> 00:02:16,800 Che è piuttosto fresco. 50 00:02:16,800 --> 00:02:19,420 E in realtà è usato ovunque. 51 00:02:19,420 --> 00:02:23,150 Le persone che di tecnologia saprebbero che questo è usato per tutto il tempo. 52 00:02:23,150 --> 00:02:23,250 voi? 53 00:02:23,250 --> 00:02:26,200 Può avere più computer in un unico dispositivo. 54 00:02:26,200 --> 00:02:27,760 >> Facciamo in realtà uno sguardo al Appliance. 55 00:02:27,760 --> 00:02:32,680 56 00:02:32,680 --> 00:02:36,640 Quando si va al Appliance dopo la registrazione, si sta andando ad avere per 57 00:02:36,640 --> 00:02:42,035 mettere il vostro nome e accedere a Harvard così possiamo ottenere tutto registrato. 58 00:02:42,035 --> 00:02:46,570 Si andando a vedere fondamentalmente solo un carta da parati, e poi a casa e Trash, 59 00:02:46,570 --> 00:02:48,980 e poi queste piccole icone. 60 00:02:48,980 --> 00:02:51,930 Queste tre icone sono in realtà il più cose importanti che si possono avere in 61 00:02:51,930 --> 00:02:53,000 il vostro Appliance. 62 00:02:53,000 --> 00:03:00,270 >> Il primo è gedit, che è un testo montaggio, proprio come Notepad o simili 63 00:03:00,270 --> 00:03:01,440 qualsiasi tipo di editor di testo. 64 00:03:01,440 --> 00:03:09,750 E 'solo qualcosa che usiamo per scrivere codice e poi fare cose con esso. 65 00:03:09,750 --> 00:03:11,770 >> La seconda cosa che abbiamo avere qui è Chrome. 66 00:03:11,770 --> 00:03:13,910 Quindi se avete bisogno di usare internet nella Appliance, che è 67 00:03:13,910 --> 00:03:15,030 quello che è possibile utilizzare. 68 00:03:15,030 --> 00:03:22,000 >> E la terza cosa è il terminale, che in realtà è molto dolce. 69 00:03:22,000 --> 00:03:26,420 La gente di solito vengono sorta di paura di il terminale perché è questo 70 00:03:26,420 --> 00:03:32,320 vecchia applicazione stile in cui si appena fondamentalmente di tipo tutto con 71 00:03:32,320 --> 00:03:32,940 la tastiera. 72 00:03:32,940 --> 00:03:34,730 Non c'è un sacco di interazione con il mouse. 73 00:03:34,730 --> 00:03:39,780 Ma in realtà il terminale fa cose molto buone. 74 00:03:39,780 --> 00:03:43,990 >> Prima di tutto, facciamo solo passare attraverso alcuni comandi che si 75 00:03:43,990 --> 00:03:48,765 possono utilizzare nel terminale. 76 00:03:48,765 --> 00:03:51,995 >> LAUREN CARVALHO: E sentitevi liberi di fermarsi noi se avete domande. 77 00:03:51,995 --> 00:03:52,830 >> LUCAS FREITAS: Già. 78 00:03:52,830 --> 00:04:01,950 Così il primo comando che abbiamo per il terminale è LS. 79 00:04:01,950 --> 00:04:06,450 ls pratica significa la lista di tutto, tutti i file e tutti gli amministratori, 80 00:04:06,450 --> 00:04:09,540 che ho al posto che io sono a. 81 00:04:09,540 --> 00:04:15,200 Quindi se faccio ls qui, vado a vedere che ho alcune directory. 82 00:04:15,200 --> 00:04:18,670 Ho il desktop, i download, i registri e le vhost. 83 00:04:18,670 --> 00:04:21,260 Coloro che sono in azzurro, perché sono tutte le directory. 84 00:04:21,260 --> 00:04:24,160 >> Allora avete altri file. 85 00:04:24,160 --> 00:04:27,840 Avete come ciao e ciao.c, che sono solo file, e sono in 86 00:04:27,840 --> 00:04:28,910 diversi colori. 87 00:04:28,910 --> 00:04:33,960 Quindi questo è un comando molto importante, proprio potete vedere quali sono i file 88 00:04:33,960 --> 00:04:37,690 e le directory che avete nella directory che 89 00:04:37,690 --> 00:04:39,410 sei in nel terminale. 90 00:04:39,410 --> 00:04:44,580 Quando vedete jharvard @ apparecchio e poi il piccolo simbolo lì, l' 91 00:04:44,580 --> 00:04:49,185 tilde, questo significa solo che questo è il directory che siete in questo momento. 92 00:04:49,185 --> 00:04:52,970 >> LAUREN CARVALHO: Quindi ls è quasi come cliccando sulla cartella 93 00:04:52,970 --> 00:04:57,380 che è elencato proprio lì, in mostra si tutti i contenuti che sono 94 00:04:57,380 --> 00:04:58,886 all'interno di tale cartella. 95 00:04:58,886 --> 00:05:04,232 >> AUDIENCE: C'è testo dopo la ciao.c? 96 00:05:04,232 --> 00:05:10,070 >> LAUREN CARVALHO: Oh, non è possibile vedere che, perché è blu. 97 00:05:10,070 --> 00:05:12,490 >> LUCAS FREITAS: Si dice registri e vhosts. 98 00:05:12,490 --> 00:05:14,450 >> LAUREN CARVALHO: Quelli sono solo altre cartelle. 99 00:05:14,450 --> 00:05:16,890 Mi dispiace, è davvero difficile da vedere. 100 00:05:16,890 --> 00:05:19,090 Forse se abbiamo spento le luci? 101 00:05:19,090 --> 00:05:23,002 Colton, vuoi per cercare di trovare l'interruttore della luce? 102 00:05:23,002 --> 00:05:24,960 Mi dispiace. 103 00:05:24,960 --> 00:05:25,675 Io non penso. 104 00:05:25,675 --> 00:05:27,340 >> LUCAS FREITAS: Ma è fondamentalmente - 105 00:05:27,340 --> 00:05:30,310 sì, se si potesse - 106 00:05:30,310 --> 00:05:32,278 >> LAUREN CARVALHO: Zoom nella schermata. 107 00:05:32,278 --> 00:05:34,738 >> LUCAS FREITAS: non lo faccio avere quella caratteristica. 108 00:05:34,738 --> 00:05:35,988 >> LAUREN CARVALHO: [incomprensibile]. 109 00:05:35,988 --> 00:05:39,528 110 00:05:39,528 --> 00:05:40,001 OK. 111 00:05:40,001 --> 00:05:44,270 Beh, c'è solo un sacco di naturale luce in questa camera. 112 00:05:44,270 --> 00:05:48,726 >> LUCAS FREITAS: Diciamo solo supporre che ci sono altre due cartelle lì. 113 00:05:48,726 --> 00:05:49,780 >> LAUREN CARVALHO: Basta tenere con noi. 114 00:05:49,780 --> 00:05:54,200 Questa è l'unica parte che non avrai essere alla ricerca presso il terminale. 115 00:05:54,200 --> 00:06:00,160 >> LUCAS FREITAS: Il comando successivo è fondamentalmente forse si vuole organizzare 116 00:06:00,160 --> 00:06:01,080 i tuoi file - 117 00:06:01,080 --> 00:06:05,015 per esempio, tutti i file C in un directory, ma non si dispone di un 118 00:06:05,015 --> 00:06:07,180 Elenco solo per file C ancora. 119 00:06:07,180 --> 00:06:11,590 Si può sostanzialmente creare una directory utilizzando il terminale pure, che è 120 00:06:11,590 --> 00:06:15,670 la stessa cosa di clic destro e dicendo Nuova cartella. 121 00:06:15,670 --> 00:06:20,640 Il comando si fanno directory, che è mkdir, quindi sostanzialmente "make" e 122 00:06:20,640 --> 00:06:21,260 "Directory". 123 00:06:21,260 --> 00:06:22,680 >> E poi si può mettere l' il nome della directory. 124 00:06:22,680 --> 00:06:32,490 Diciamo che ho voluto essere chiamato, Non lo so, diciamo pset1 Doing 125 00:06:32,490 --> 00:06:33,900 questo, ho appena creato una directory. 126 00:06:33,900 --> 00:06:35,910 Diciamo solo verificare che è lì. 127 00:06:35,910 --> 00:06:40,870 Quindi se faccio ls, ora vedo i log, e poi pset1, e poi vhosts. 128 00:06:40,870 --> 00:06:44,360 Così ho la nuova directory lì. 129 00:06:44,360 --> 00:06:46,670 >> E poi, dopo hai una nuova directory, forse si vuole navigare 130 00:06:46,670 --> 00:06:51,760 in esso, in modo che il comando successivo questo cd, il che significa che appena fondamentalmente andare in un 131 00:06:51,760 --> 00:06:53,400 directory specifica. 132 00:06:53,400 --> 00:06:58,377 Quindi, se voglio andare a pset1, Posso solo fare cd pset1. 133 00:06:58,377 --> 00:07:01,550 >> LAUREN CARVALHO: cd sta per cambiare directory, [incomprensibile] in grado di 134 00:07:01,550 --> 00:07:02,230 ricordare che. 135 00:07:02,230 --> 00:07:05,460 >> LUCAS FREITAS: E ora si vede che invece di avere jharvard 136 00:07:05,460 --> 00:07:09,150 apparecchio, ho jharvard apparecchio, e poi pset1, perché sta mostrando 137 00:07:09,150 --> 00:07:14,150 me dove sono io in questo computer. 138 00:07:14,150 --> 00:07:17,510 >> Ora, se voglio tornare al directory che era prima di questo, ho 139 00:07:17,510 --> 00:07:22,950 può fare un punto cd dot, il che significa che basta andare la directory che ero prima, 140 00:07:22,950 --> 00:07:26,290 come il padre di questo directory, in fondo. 141 00:07:26,290 --> 00:07:30,460 E ora vedo che sono torna a jharvard. 142 00:07:30,460 --> 00:07:36,050 >> La prossima cosa che posso farlo è rm, che è rimuovere un file. 143 00:07:36,050 --> 00:07:39,590 Ad esempio, si deve prima fare ls per vedere quello che ho qui. 144 00:07:39,590 --> 00:07:41,790 Ho ciao e ciao.c. 145 00:07:41,790 --> 00:07:43,780 Diciamo che voglio rimuoverli. 146 00:07:43,780 --> 00:07:48,280 Posso fare rm ciao. 147 00:07:48,280 --> 00:07:52,770 E 'intenzione di dire "rimuovere file regolare ciao? "E io dico" sì ". Ed ora se io 148 00:07:52,770 --> 00:07:56,410 fare LS, vedo che è non c'è più. 149 00:07:56,410 --> 00:07:59,700 >> Se provo ad usare rm per una directory, però, non sta andando 150 00:07:59,700 --> 00:08:00,800 per farti fare nulla. 151 00:08:00,800 --> 00:08:02,960 Sta andando a dire, ehi, voi non è possibile rimuovere una directory. 152 00:08:02,960 --> 00:08:08,100 Così abbiamo questa altra venire chiamato rmdir, il che significa che appena fondamentalmente 153 00:08:08,100 --> 00:08:09,800 rimuovere la directory. 154 00:08:09,800 --> 00:08:12,842 Posso, per esempio, rimuovere pset1. 155 00:08:12,842 --> 00:08:15,770 E se lo faccio ls, non lo faccio hanno più. 156 00:08:15,770 --> 00:08:18,430 >> Hai domande su questo? 157 00:08:18,430 --> 00:08:20,200 No? 158 00:08:20,200 --> 00:08:20,595 Sì? 159 00:08:20,595 --> 00:08:23,954 >> PUBBLICO: E 'importante che si lascia uno spazio dopo - ogni volta che si 160 00:08:23,954 --> 00:08:26,540 iniziare a digitare qualcosa? 161 00:08:26,540 --> 00:08:26,830 >> LUCAS FREITAS: Già. 162 00:08:26,830 --> 00:08:32,080 Se faccio come CD e la directory, Devo mettere uno spazio. 163 00:08:32,080 --> 00:08:33,350 Che spazio stai parlando? 164 00:08:33,350 --> 00:08:34,979 >> LAUREN CARVALHO: lo spazio tra cd e [incomprensibile]. 165 00:08:34,979 --> 00:08:37,710 >> LUCAS FREITAS: Sì, dovrete mettere gli spazi perché cd è l' 166 00:08:37,710 --> 00:08:42,770 comando e quindi la stringa successiva che si tipo è fondamentalmente la directory. 167 00:08:42,770 --> 00:08:45,020 Quindi è come un argomento. 168 00:08:45,020 --> 00:08:45,360 Sì? 169 00:08:45,360 --> 00:08:47,952 >> AUDIENCE: Quando si elencano tutti coloro sono diverse directory, giusto? 170 00:08:47,952 --> 00:08:50,125 >> LUCAS FREITAS: Sì, sono nella directory. 171 00:08:50,125 --> 00:08:53,524 >> AUDIENCE: Qual è la differenza tra le directory? 172 00:08:53,524 --> 00:08:55,390 >> LUCAS FREITAS: Sono appena diverse cartelle. 173 00:08:55,390 --> 00:08:57,366 Directory è una cartella nel vostro computer. 174 00:08:57,366 --> 00:08:58,120 >> AUDIENCE: Apri cartella. 175 00:08:58,120 --> 00:09:00,140 >> LUCAS FREITAS: Sì, è solo una cartella aperta. 176 00:09:00,140 --> 00:09:03,400 >> LAUREN CARVALHO: qui, quelli che sono in blu sono reali 177 00:09:03,400 --> 00:09:07,107 directory che si possono ottenere in e poi vedere un mucchio di cose che sono 178 00:09:07,107 --> 00:09:10,248 all'interno di questo, che è un peccato perché non si può effettivamente leggere il 179 00:09:10,248 --> 00:09:11,290 quelli in blu. 180 00:09:11,290 --> 00:09:16,166 E quelli in nero sono solo i file che sono all'interno della directory corrente. 181 00:09:16,166 --> 00:09:17,870 >> LUCAS FREITAS: Quindi directory sono cartelle. 182 00:09:17,870 --> 00:09:18,810 Gli altri sono file. 183 00:09:18,810 --> 00:09:22,810 >> AUDIENCE: Qual è il comando per ripristinare o per cancellarlo? 184 00:09:22,810 --> 00:09:23,650 LUCAS FREITAS: Per cancellare? 185 00:09:23,650 --> 00:09:24,362 LAUREN CARVALHO: Per cancellare? 186 00:09:24,362 --> 00:09:27,985 LUCAS FREITAS: Penso che è "chiaro". Già. 187 00:09:27,985 --> 00:09:32,370 Quindi si digita solo chiaro se lo schermo è troppo disordinato. 188 00:09:32,370 --> 00:09:33,700 Tutte le altre domande? 189 00:09:33,700 --> 00:09:36,720 E si impara un sacco di altre comandi solo naturalmente durante la 190 00:09:36,720 --> 00:09:38,405 semestre perché sono molto utili. 191 00:09:38,405 --> 00:09:42,380 192 00:09:42,380 --> 00:09:46,155 >> Così ora parliamo di compilazione. 193 00:09:46,155 --> 00:09:51,510 194 00:09:51,510 --> 00:09:54,730 Abbiamo parlato di pseudocodice e codice sorgente e codice oggetto. 195 00:09:54,730 --> 00:09:59,020 E c'è un sacco di codici, e forse voi siete confusi su quello. 196 00:09:59,020 --> 00:10:02,190 Parliamo un po 'di quello succede quando si sta scrivendo un programma, 197 00:10:02,190 --> 00:10:06,620 e si compila, e diventa un file eseguibile. 198 00:10:06,620 --> 00:10:10,190 Queste sono tutte parole che voi ragazzi probabilmente sentito parlare, e forse non sei 199 00:10:10,190 --> 00:10:12,130 veramente sicuro di quello che sta succedendo. 200 00:10:12,130 --> 00:10:15,540 >> Diciamo, per esempio, che voglio scrivere un programma che dice "ciao". Il 201 00:10:15,540 --> 00:10:19,670 prima cosa che viene in mente è è sorta di prova a pensare a come sei 202 00:10:19,670 --> 00:10:23,000 intenzione di farlo nella vostra mente, e probabilmente stai pensando in inglese o 203 00:10:23,000 --> 00:10:25,550 qualche altra lingua, come naturale lingua, probabilmente. 204 00:10:25,550 --> 00:10:28,770 E allora pensi, bene, se voglio, per esempio, scrivere un programma che 205 00:10:28,770 --> 00:10:32,630 dice "ciao," Vorrei avviare un programma, Io stampare ciao, e poi lo farò 206 00:10:32,630 --> 00:10:35,270 chiudere il programma. 207 00:10:35,270 --> 00:10:36,350 Questo è pseudocodice. 208 00:10:36,350 --> 00:10:41,740 Questo è solo fondamentalmente si sta cercando di venire con una sequenza di eventi 209 00:10:41,740 --> 00:10:46,510 che hai intenzione di fare per essere in grado di scrivere un programma. 210 00:10:46,510 --> 00:10:49,610 >> Allora avete il codice sorgente, e il codice sorgente non deve 211 00:10:49,610 --> 00:10:53,240 in particolare essere in C. Stiamo parlando sul codice sorgente in C perché è 212 00:10:53,240 --> 00:10:56,760 la lingua che stiamo imparando, ma ovviamente codice può essere praticamente qualsiasi 213 00:10:56,760 --> 00:10:59,160 linguaggio di programmazione che si ha. 214 00:10:59,160 --> 00:11:01,230 Più tardi, nel semestre, si sta andando di imparare altre lingue. 215 00:11:01,230 --> 00:11:03,230 Questo è anche il codice sorgente. 216 00:11:03,230 --> 00:11:07,380 >> Per esempio, ecco, questa è la mia fonte codice e quindi sto tra cui un 217 00:11:07,380 --> 00:11:10,170 biblioteca, e poi comincio principale, e poi stampo. 218 00:11:10,170 --> 00:11:14,510 E Laura sta per parlare un po ' po 'di tutto questo. 219 00:11:14,510 --> 00:11:16,190 Quindi questo è il codice sorgente. 220 00:11:16,190 --> 00:11:19,590 >> E qual è il codice oggetto? 221 00:11:19,590 --> 00:11:22,500 L'oggetto è un mucchio di zeri e quelli, in fondo. 222 00:11:22,500 --> 00:11:27,680 Quello che succede è che hai inizialmente pseudocodice, che è tutto in inglese. 223 00:11:27,680 --> 00:11:29,020 E voglio dire, hai capito bene. 224 00:11:29,020 --> 00:11:31,260 Probabilmente i tuoi amici capiscono , e la maggior parte delle persone sarebbe 225 00:11:31,260 --> 00:11:32,560 comprendere l'idea. 226 00:11:32,560 --> 00:11:36,770 Ma i computer sono veramente stupido, e non capisco l'inglese, in modo da 227 00:11:36,770 --> 00:11:41,320 hanno tradurlo in qualcosa, di solito tradotto in qualche 228 00:11:41,320 --> 00:11:42,460 linguaggio di programmazione. 229 00:11:42,460 --> 00:11:46,840 >> E si può pensare ad una programmazione il linguaggio come un po 'come una lingua 230 00:11:46,840 --> 00:11:50,970 che dite al vostro modo di computer di parlare e di capire. 231 00:11:50,970 --> 00:11:54,160 Tu sei fondamentalmente scrivendo qualcosa in un linguaggio che entrambi voi ed il vostro 232 00:11:54,160 --> 00:11:55,190 computer di capire. 233 00:11:55,190 --> 00:11:56,470 Questo è il codice sorgente. 234 00:11:56,470 --> 00:12:00,580 Così andando forma pseudocodice per fonte codice, tocca a voi. 235 00:12:00,580 --> 00:12:03,130 E 'fondamentalmente stai facendo il programma. 236 00:12:03,130 --> 00:12:06,740 >> Ma il problema è che l' Il computer non ancora 237 00:12:06,740 --> 00:12:08,360 comprendere il linguaggio di programmazione. 238 00:12:08,360 --> 00:12:10,320 Essa non capisce codice sorgente affatto. 239 00:12:10,320 --> 00:12:12,520 In realtà capisce solo zero e uno. 240 00:12:12,520 --> 00:12:16,570 Così abbiamo questa cosa molto magico chiamato un compilatore, che è fondamentalmente 241 00:12:16,570 --> 00:12:19,755 andando per ottenere la fonte che si chiama ha scritto in una lingua che sia lei 242 00:12:19,755 --> 00:12:25,320 e il computer parla, e ora sei intenzione di trasformarla in 243 00:12:25,320 --> 00:12:26,270 zero e uno. 244 00:12:26,270 --> 00:12:30,860 Quindi, in pratica quello che il compilatore non è diventa codice sorgente, in questo caso C, 245 00:12:30,860 --> 00:12:34,100 che sta per trasformarla in zeri e quelli che il computer 246 00:12:34,100 --> 00:12:37,440 capisce e può fare un file eseguibile fuori di esso. 247 00:12:37,440 --> 00:12:40,900 >> Ritiene che senso? 248 00:12:40,900 --> 00:12:45,300 Si può solo pensare al compilatore come qualche tipo di un traduttore 249 00:12:45,300 --> 00:12:50,280 aiuta a spiegare al computer esattamente quello che dovrebbe fare. 250 00:12:50,280 --> 00:12:52,310 >> Ma come faccio a compilare. 251 00:12:52,310 --> 00:12:59,680 Torniamo alla Appliance, e diciamo che sto facendo quel programma. 252 00:12:59,680 --> 00:13:04,220 In primo luogo ho intenzione di creare una directory qui, e ho intenzione di chiamarlo 253 00:13:04,220 --> 00:13:11,130 "Pratica". Ora ho intenzione di spostarsi alla directory, così la pratica cd. 254 00:13:11,130 --> 00:13:13,210 Ora sono dentro la pratica. 255 00:13:13,210 --> 00:13:16,860 >> Ora voglio iniziare a gedit, così come posso fare? 256 00:13:16,860 --> 00:13:21,920 Posso fare clic qui, o posso semplicemente letteralmente tipo "gedit", e sta andando 257 00:13:21,920 --> 00:13:24,290 di aprire per me. 258 00:13:24,290 --> 00:13:28,100 >> Ora ho intenzione di scrivere il mio programma, così esattamente quello che ho scritto nella presentazione. 259 00:13:28,100 --> 00:13:30,360 Sto dichiarando una biblioteca. 260 00:13:30,360 --> 00:13:35,440 Sto facendo int main, vuoto. 261 00:13:35,440 --> 00:13:39,180 E ora sto facendo printf, ciao. 262 00:13:39,180 --> 00:13:46,530 263 00:13:46,530 --> 00:13:50,170 Ora sto andando a salvare questo. 264 00:13:50,170 --> 00:13:53,665 Mettiamola in pratica, e Io vado a chiamare questo hello.c. 265 00:13:53,665 --> 00:13:57,710 266 00:13:57,710 --> 00:13:59,590 Così ora è salvato. 267 00:13:59,590 --> 00:14:03,250 >> Se voglio compilarlo, in realtà ho può farlo in due luoghi diversi. 268 00:14:03,250 --> 00:14:07,090 Posso fare sia in una finestra di terminale, così questo grande, oppure si può 269 00:14:07,090 --> 00:14:09,860 utilizzare gedit che in realtà ha un finestra di terminale proprio qui. 270 00:14:09,860 --> 00:14:17,890 Così si può molto convenientemente solo fare il codice, e quindi si può semplicemente digitare 271 00:14:17,890 --> 00:14:20,670 qualunque sia qui, e provare a compilarlo. 272 00:14:20,670 --> 00:14:23,450 >> Allora, come faccio a compilare il codice? 273 00:14:23,450 --> 00:14:27,495 Il modo più semplice che abbiamo è utilizzando fare, che è una funzione che 274 00:14:27,495 --> 00:14:29,590 è fondamentalmente sta per compilare il codice. 275 00:14:29,590 --> 00:14:34,170 Devi solo dire fare ciao, così "Fare" e il nome del programma. 276 00:14:34,170 --> 00:14:35,420 >> Oops. 277 00:14:35,420 --> 00:14:38,250 278 00:14:38,250 --> 00:14:39,280 Questo è imbarazzante. 279 00:14:39,280 --> 00:14:41,738 >> LAUREN CARVALHO: Puoi [incomprensibile]? 280 00:14:41,738 --> 00:14:45,182 281 00:14:45,182 --> 00:14:45,990 >> LUCAS FREITAS: Mi dispiace. 282 00:14:45,990 --> 00:14:49,960 Non ho salvato nel directory giusta. 283 00:14:49,960 --> 00:14:52,130 Venite a praticare, e ora salvarlo come ciao.c. 284 00:14:52,130 --> 00:14:54,750 Mi dispiace. 285 00:14:54,750 --> 00:14:56,250 Ora è salvato. 286 00:14:56,250 --> 00:14:58,300 >> Vorrei solo fare ls ed essere Assicurarsi che sia qui. 287 00:14:58,300 --> 00:14:59,460 OK, ora è qui. 288 00:14:59,460 --> 00:15:05,930 Così ora se faccio fare ciao, sputa un sacco di roba, ma poi dà solo 289 00:15:05,930 --> 00:15:08,870 me un'altra linea per il terminale, che significa che era successo. 290 00:15:08,870 --> 00:15:13,160 Così ora se faccio di nuovo un ls, io in realtà vedere questo file in verde, che è la 291 00:15:13,160 --> 00:15:15,470 file eseguibile. 292 00:15:15,470 --> 00:15:21,700 >> E poi se voglio correre, tutto ciò che Che devo fare è barra dot ciao. 293 00:15:21,700 --> 00:15:25,830 E 'intenzione di dire ciao proprio qui, in modo è esattamente quello che sto chiedendo a. 294 00:15:25,830 --> 00:15:29,620 >> C'è un altro modo di compilazione, che sta usando clang. 295 00:15:29,620 --> 00:15:35,740 Clang è solo un compilatore che abbiamo, ed è un po 'più dettagliato per 296 00:15:35,740 --> 00:15:36,390 compilarlo. 297 00:15:36,390 --> 00:15:40,180 Ma funziona altrettanto bene. 298 00:15:40,180 --> 00:15:46,810 Quindi se faccio clang, e poi-o, e quindi il nome che voglio dare a 299 00:15:46,810 --> 00:15:50,400 il file eseguibile, quindi diciamo "Ciao". E poi il file che voglio 300 00:15:50,400 --> 00:15:53,460 per compilare, hello.c. 301 00:15:53,460 --> 00:15:55,900 E 'anche andando per la compilazione. 302 00:15:55,900 --> 00:15:59,020 E tu hai il file qui, e Posso solo eseguirlo pure. 303 00:15:59,020 --> 00:16:00,610 Così entrambi lavorano. 304 00:16:00,610 --> 00:16:03,270 >> Ritiene che senso? 305 00:16:03,270 --> 00:16:06,020 Tutte le domande? 306 00:16:06,020 --> 00:16:09,020 >> AUDIENCE: Potete ingrandire in un po '? 307 00:16:09,020 --> 00:16:09,913 >> LUCAS FREITAS: Sorry? 308 00:16:09,913 --> 00:16:11,135 >> PUBBLICO: Zoom in? 309 00:16:11,135 --> 00:16:13,310 >> LAUREN CARVALHO: penso che tu può solo comandare più. 310 00:16:13,310 --> 00:16:14,295 >> LUCAS FREITAS: Comanda cosa? 311 00:16:14,295 --> 00:16:16,060 >> LAUREN CARVALHO: Comando plus. 312 00:16:16,060 --> 00:16:17,000 >> LUCAS FREITAS: No. 313 00:16:17,000 --> 00:16:19,350 >> LAUREN CARVALHO: Oh, non è andare a lavorare perché - 314 00:16:19,350 --> 00:16:25,548 è perché abbiamo impostato la risoluzione per questa cosa. 315 00:16:25,548 --> 00:16:27,450 >> LUCAS FREITAS: non lo faccio Pensiamo di poter zoom dentro 316 00:16:27,450 --> 00:16:30,852 317 00:16:30,852 --> 00:16:34,130 Sì, non possiamo zoom. 318 00:16:34,130 --> 00:16:36,200 Avete un'altra domanda? 319 00:16:36,200 --> 00:16:36,680 Scusi. 320 00:16:36,680 --> 00:16:39,170 >> AUDIENCE: Puoi ripetere clang? 321 00:16:39,170 --> 00:16:40,630 >> LUCAS FREITAS: The clang? 322 00:16:40,630 --> 00:16:44,190 Clang è la stessa cosa come marca, ma la differenza è che prima ho intenzione 323 00:16:44,190 --> 00:16:48,460 scrivere clang, che è il comando, poi ho intenzione di fare -0, tutti, che è 324 00:16:48,460 --> 00:16:51,680 proprio quello che stiamo andando a più avanti come una bandiera. 325 00:16:51,680 --> 00:16:54,440 Quindi basta pensare che hai sempre mettere la-o. 326 00:16:54,440 --> 00:16:58,690 >> E allora prima, si sta andando a mettere il nome del file eseguibile, 327 00:16:58,690 --> 00:17:00,680 in pratica il file che si sta andando a creare. 328 00:17:00,680 --> 00:17:06,430 Quindi posso dire, per esempio, Hello2 e quindi il file che voglio compilare, 329 00:17:06,430 --> 00:17:07,800 che è il file c.. 330 00:17:07,800 --> 00:17:09,240 Ecco, questo è ciao.c. 331 00:17:09,240 --> 00:17:10,871 Ritiene che senso? 332 00:17:10,871 --> 00:17:12,635 >> AUDIENCE: Ciao cosa? 333 00:17:12,635 --> 00:17:13,076 Che cosa è questo? 334 00:17:13,076 --> 00:17:15,960 >> LUCAS FREITAS: Hello.c. 335 00:17:15,960 --> 00:17:19,849 E se compilo, e se Io LS, ho anche un 336 00:17:19,849 --> 00:17:22,010 Hello2 che ho appena compilato. 337 00:17:22,010 --> 00:17:26,339 E se provo a farlo funzionare, sta andando a fare esattamente la stessa cosa ciao, 338 00:17:26,339 --> 00:17:27,089 basta stampare ciao. 339 00:17:27,089 --> 00:17:31,660 >> AUDIENCE: Come mai per il make si può mettere ciao.c dopo? 340 00:17:31,660 --> 00:17:33,880 >> LUCAS FREITAS: In make, si non c'è bisogno di mettere l'. c. 341 00:17:33,880 --> 00:17:36,140 In make, basta dire il il nome del programma. 342 00:17:36,140 --> 00:17:37,750 Non hai da dire. C. 343 00:17:37,750 --> 00:17:39,020 Ma per clang, si dovrebbe. 344 00:17:39,020 --> 00:17:44,040 >> AUDIENCE: Con clang ti anche deve aggiungere il [incomprensibile] 345 00:17:44,040 --> 00:17:44,480 >> LAUREN CARVALHO: Già. 346 00:17:44,480 --> 00:17:46,180 Così si hanno anche per biblioteca. 347 00:17:46,180 --> 00:17:51,170 >> LUCAS FREITAS: Sì, questo è qualcosa abbiamo intenzione di utilizzare in seguito. 348 00:17:51,170 --> 00:17:54,850 Questo si chiama collegamento, e penso che siamo andando a parlare più tardi. 349 00:17:54,850 --> 00:17:55,930 Un'altra domanda? 350 00:17:55,930 --> 00:17:59,927 >> AUDIENCE: Mettete un clang dot barra? 351 00:17:59,927 --> 00:18:01,060 >> LUCAS FREITAS: No. 352 00:18:01,060 --> 00:18:06,040 La barra punto è solo per aprire il file eseguibile. 353 00:18:06,040 --> 00:18:09,440 Quindi clang, basta scrivere "clang", e poi il se si desidera aprire il 354 00:18:09,440 --> 00:18:12,640 file eseguibile che hai appena compilato, allora non dot 355 00:18:12,640 --> 00:18:13,780 slash il nome. 356 00:18:13,780 --> 00:18:15,100 Ritiene che senso? 357 00:18:15,100 --> 00:18:18,635 358 00:18:18,635 --> 00:18:22,435 >> AUDIENCE: Se si dovesse solo cambiamento [Incomprensibile] al mondo ciao, ti 359 00:18:22,435 --> 00:18:23,870 ricompilare esso? 360 00:18:23,870 --> 00:18:24,750 >> LUCAS FREITAS: Già. 361 00:18:24,750 --> 00:18:36,650 se voglio dire, per esempio, "ciao lì, "posso solo salvare adesso, e mi 362 00:18:36,650 --> 00:18:38,020 basta compilare di nuovo. 363 00:18:38,020 --> 00:18:41,910 Quindi, mi permetta di fare un make ciao. 364 00:18:41,910 --> 00:18:48,490 E se lo faccio ciao, sta andando a dire "ciao là". Ha senso? 365 00:18:48,490 --> 00:18:50,280 Tutte le altre domande? 366 00:18:50,280 --> 00:18:54,384 >> AUDIENCE: Avete includere il I / O standard per coordinare il lavoro? 367 00:18:54,384 --> 00:18:55,480 >> LUCAS FREITAS: Già. 368 00:18:55,480 --> 00:18:58,050 L'I / O standard è sostanzialmente la libreria che ha un 369 00:18:58,050 --> 00:19:00,050 implementazione per printf. 370 00:19:00,050 --> 00:19:03,450 371 00:19:03,450 --> 00:19:06,910 Così che cosa giusta sul top include stdio. 372 00:19:06,910 --> 00:19:11,920 Ciò include una libreria che ha fondamentalmente un gruppo di diversa 373 00:19:11,920 --> 00:19:13,260 strumenti che è possibile utilizzare. 374 00:19:13,260 --> 00:19:13,480 uno? 375 00:19:13,480 --> 00:19:17,820 Di loro è printf che è una funzione che, in fondo stampa 376 00:19:17,820 --> 00:19:21,290 messaggi a schermo. 377 00:19:21,290 --> 00:19:23,200 >> Tutte le altre domande? 378 00:19:23,200 --> 00:19:24,700 No? 379 00:19:24,700 --> 00:19:25,060 OK. 380 00:19:25,060 --> 00:19:31,620 Così ora parliamo di - 381 00:19:31,620 --> 00:19:33,948 >> LAUREN CARVALHO: Diciamo solo vai alla guida di stile. 382 00:19:33,948 --> 00:19:35,896 Vuoi trovare solo qui dentro? 383 00:19:35,896 --> 00:19:37,880 >> LUCAS FREITAS: Così stiamo andando per parlare di stile. 384 00:19:37,880 --> 00:19:47,006 385 00:19:47,006 --> 00:19:50,430 >> LAUREN CARVALHO: Oh, David non ha finito. 386 00:19:50,430 --> 00:19:51,230 OK. 387 00:19:51,230 --> 00:19:53,870 Perché non tornare a stile alla fine? 388 00:19:53,870 --> 00:19:56,220 E 'stato effettivamente aggiornato mentre parliamo. 389 00:19:56,220 --> 00:19:56,810 >> LUCAS FREITAS: Già. 390 00:19:56,810 --> 00:19:58,300 Diamo modo per David per finire questo. 391 00:19:58,300 --> 00:20:07,150 392 00:20:07,150 --> 00:20:08,600 >> LAUREN CARVALHO: Can passiamo in realtà? 393 00:20:08,600 --> 00:20:14,920 394 00:20:14,920 --> 00:20:17,200 >> Quindi spero che è stato a tutti godendo di Scratch. 395 00:20:17,200 --> 00:20:21,950 Purtroppo, è il momento di allontanarsi da questa - 396 00:20:21,950 --> 00:20:25,280 purtroppo è il momento di allontanarsi da questi blocchi di programmazione belle 397 00:20:25,280 --> 00:20:28,530 a C. Ma per fortuna, tutte le costrutti di programmazione che hai 398 00:20:28,530 --> 00:20:32,370 lavorato con in Scratch sono direttamente traducibile in C, e siamo 399 00:20:32,370 --> 00:20:35,130 intenzione di iniziare a conoscere alcuni di loro in questo momento. 400 00:20:35,130 --> 00:20:39,200 Parliamo prima sulle condizioni nelle espressioni booleane. 401 00:20:39,200 --> 00:20:41,944 >> Questo è in esecuzione su riserva carica della batteria. 402 00:20:41,944 --> 00:20:43,912 >> LUCAS FREITAS: Come è che non funziona? 403 00:20:43,912 --> 00:20:47,850 404 00:20:47,850 --> 00:20:48,010 OK. 405 00:20:48,010 --> 00:20:50,256 Tu vai lì, ho intenzione di ottenere il - 406 00:20:50,256 --> 00:20:53,700 407 00:20:53,700 --> 00:20:57,390 >> LAUREN CARVALHO: So condizioni sono importanti perché ci permettono di 408 00:20:57,390 --> 00:21:00,588 introdurre la logica nei nostri programmi. 409 00:21:00,588 --> 00:21:04,620 Ecco un esempio di una condizione all'interno di un programma C. 410 00:21:04,620 --> 00:21:06,130 Notiamo come questo - 411 00:21:06,130 --> 00:21:11,324 Quindi questo blocco condizione giusta qui, questo printf non verrà eseguito 412 00:21:11,324 --> 00:21:14,860 a meno che la condizione all'interno del parentesi, n maggiore di 0, 413 00:21:14,860 --> 00:21:16,800 restituisce true. 414 00:21:16,800 --> 00:21:20,780 >> Ora, tutte le condizioni all'interno f affermazioni sono espressioni booleane, 415 00:21:20,780 --> 00:21:22,970 il che significa che non vi sono solo due opzioni. 416 00:21:22,970 --> 00:21:26,856 Potrebbero sia valutata come true, oppure possono restituire false. 417 00:21:26,856 --> 00:21:33,174 Ecco, quindi questo ha un senso, giusto? n maggiore di 0, significa che è un positivo 418 00:21:33,174 --> 00:21:41,160 numero, il che significa che stamperà fuori "hai scelto un numero positivo." 419 00:21:41,160 --> 00:21:44,630 >> Ci sono un sacco di espressioni booleane che possono formare la condizione con un 420 00:21:44,630 --> 00:21:47,190 dichiarazione init. 421 00:21:47,190 --> 00:21:48,520 Abbiamo il meno. 422 00:21:48,520 --> 00:21:50,950 Questo è inferiore o uguale a. 423 00:21:50,950 --> 00:21:52,200 Questo è solo un divertente [incomprensibile]. 424 00:21:52,200 --> 00:21:54,800 425 00:21:54,800 --> 00:22:01,630 Se si desidera che il printf si verifichi se è maggiore o uguale a 0, allora 426 00:22:01,630 --> 00:22:03,345 si dovrebbe scegliere questo. 427 00:22:03,345 --> 00:22:07,750 Così la parità accoda giusto dopo il segno di maggiore. 428 00:22:07,750 --> 00:22:12,030 >> Uguale uguale, che è diverso dal solo un segno di uguale, uguale uguale 429 00:22:12,030 --> 00:22:16,430 in realtà significa che tutto ciò che di sul sinistra di questo è lo stesso 430 00:22:16,430 --> 00:22:20,610 cosa c'è sul lato destro di questa in cui un segno di uguale è ciò? 431 00:22:20,610 --> 00:22:23,333 Che è solo un segno di uguale? 432 00:22:23,333 --> 00:22:24,275 Assegnazione. 433 00:22:24,275 --> 00:22:25,985 >> LUCAS FREITAS: Chi l'ha detto? 434 00:22:25,985 --> 00:22:27,170 È che le caramelle? 435 00:22:27,170 --> 00:22:27,370 Oh, no. 436 00:22:27,370 --> 00:22:27,885 Scusi. 437 00:22:27,885 --> 00:22:28,210 Scusi. 438 00:22:28,210 --> 00:22:30,400 Entrambi ottiene caramelle. 439 00:22:30,400 --> 00:22:31,510 Oh, OK! 440 00:22:31,510 --> 00:22:33,046 Tre persone ottenere caramelle! 441 00:22:33,046 --> 00:22:37,393 >> LAUREN CARVALHO: Quindi questo qui è l'operatore botto precedente 442 00:22:37,393 --> 00:22:40,240 il segno di uguale, in modo che sia non uguale. 443 00:22:40,240 --> 00:22:46,560 Quindi, se questo era dentro la mia condizione, il corpo della condizione sarebbe 444 00:22:46,560 --> 00:22:49,615 eseguire solo se qualunque di a sinistra non è la stessa 445 00:22:49,615 --> 00:22:52,540 ciò che è sulla destra. 446 00:22:52,540 --> 00:22:57,680 >> Posso anche avere solo l' punto esclamativo. 447 00:22:57,680 --> 00:23:01,250 In realtà vedremo in una caratteristica scorrere come questo possa essere utilizzato. 448 00:23:01,250 --> 00:23:03,830 >> LUCAS FREITAS: Tutte le domande? 449 00:23:03,830 --> 00:23:06,450 No? 450 00:23:06,450 --> 00:23:10,460 >> LAUREN CARVALHO: Possiamo combinare queste Espressioni booleane per costruire più 451 00:23:10,460 --> 00:23:12,500 istruzioni condizionali intricati. 452 00:23:12,500 --> 00:23:19,680 Quindi qui, se qualunque di sinistra lato delle doppie barre o 453 00:23:19,680 --> 00:23:23,160 ciò che è sul lato destro della le doppie barre restituisce TRUE, 454 00:23:23,160 --> 00:23:25,700 poi ci stampiamo valido. 455 00:23:25,700 --> 00:23:29,503 E poi giù qui, se qualunque di sul lato sinistro dei due 456 00:23:29,503 --> 00:23:33,480 e commerciali e qualunque di a destra lato dei due e commerciali 457 00:23:33,480 --> 00:23:37,470 restituisce true, allora ci stampiamo valido. 458 00:23:37,470 --> 00:23:42,195 Le doppie barre sono chiamati logico Operatore OR doppie e commerciali sono 459 00:23:42,195 --> 00:23:44,190 chiamato l'operatore logico AND. 460 00:23:44,190 --> 00:23:44,648 Sì? 461 00:23:44,648 --> 00:23:47,850 >> AUDIENCE: Sono quelli appena minuscola l's? 462 00:23:47,850 --> 00:23:48,620 >> LAUREN CARVALHO: No. 463 00:23:48,620 --> 00:23:50,890 Sono in realtà - 464 00:23:50,890 --> 00:23:55,134 si conosce il gioco, come sopra il vostro tasto Invio? 465 00:23:55,134 --> 00:23:56,585 Vedete questo? 466 00:23:56,585 --> 00:23:57,940 >> LUCAS FREITAS: In realtà è un bar. 467 00:23:57,940 --> 00:24:02,100 >> LAUREN CARVALHO: In realtà è solo due bar. 468 00:24:02,100 --> 00:24:05,724 >> PUBBLICO: Si può utilizzare il uguale uguale per le stringhe? 469 00:24:05,724 --> 00:24:07,000 >> LUCAS FREITAS: No. 470 00:24:07,000 --> 00:24:09,130 Stiamo per imparare più tardi qualcosa. 471 00:24:09,130 --> 00:24:10,735 >> LAUREN CARVALHO: C'è una funzione che è possibile utilizzare. 472 00:24:10,735 --> 00:24:12,644 Ma non c'è bisogno di preoccupare che appena ancora. 473 00:24:12,644 --> 00:24:15,530 474 00:24:15,530 --> 00:24:18,270 >> Che cosa se io do questo programma il numero 5? 475 00:24:18,270 --> 00:24:20,850 Quale sarà stampare? 476 00:24:20,850 --> 00:24:22,100 >> AUDIENCE: [incomprensibile] 477 00:24:22,100 --> 00:24:27,780 478 00:24:27,780 --> 00:24:28,275 valido. 479 00:24:28,275 --> 00:24:29,770 >> LAUREN CARVALHO: valido? 480 00:24:29,770 --> 00:24:30,135 Già. 481 00:24:30,135 --> 00:24:34,092 Non so che ha ottenuto questo. 482 00:24:34,092 --> 00:24:35,036 >> [Risate] 483 00:24:35,036 --> 00:24:37,990 >> LAUREN CARVALHO: Questo è il tipo di paura [incomprensibile]. 484 00:24:37,990 --> 00:24:40,900 >> AUDIENCE: Così il doppio e, questo significa solo e? 485 00:24:40,900 --> 00:24:41,740 >> LAUREN CARVALHO: Già. 486 00:24:41,740 --> 00:24:46,160 Così il numero 5 sia maggiore di 0 e minore di 100. 487 00:24:46,160 --> 00:24:48,970 >> AUDIENCE: Perché sarebbe uno? 488 00:24:48,970 --> 00:24:51,350 >> LAUREN CARVALHO: One commerciale è in realtà qualcosa di diverso, ed è 489 00:24:51,350 --> 00:24:53,390 un operatore bit per bit, che avrete conoscere più tardi. 490 00:24:53,390 --> 00:24:58,250 Ma è qualcosa che funziona davvero con i bit di un dato numero. 491 00:24:58,250 --> 00:25:00,872 >> LUCAS FREITAS: basti pensare che non lo fanno si deve preoccupare per ora. 492 00:25:00,872 --> 00:25:04,590 >> LAUREN CARVALHO: Penso che sia probabilmente in arrivo la prossima settimana. 493 00:25:04,590 --> 00:25:06,420 >> LUCAS FREITAS: Tutte le altre domande? 494 00:25:06,420 --> 00:25:07,990 No? 495 00:25:07,990 --> 00:25:12,480 >> LAUREN CARVALHO: Così abbiamo visto che un essa blocco può stare da solo, ma può 496 00:25:12,480 --> 00:25:15,370 anche essere accoppiato con e altro blocco. 497 00:25:15,370 --> 00:25:18,880 Quindi, in questo caso, se n è maggiore di 0, stiamo andando a stampare "Tu 498 00:25:18,880 --> 00:25:23,855 scelto un numero positivo. "else, che significa se è 0 o se è meno 499 00:25:23,855 --> 00:25:27,170 di 0, stiamo andando a stampare fuori, «Hai scelto un numero negativo." 500 00:25:27,170 --> 00:25:30,390 >> La cosa interessante è che questi sono esclusivo l'uno dall'altro. 501 00:25:30,390 --> 00:25:33,940 Non c'è mai sarà un caso in cui questo e questo 502 00:25:33,940 --> 00:25:35,544 può sia stampare. 503 00:25:35,544 --> 00:25:38,190 504 00:25:38,190 --> 00:25:41,030 >> Sono sicuro che hai lavorato con l'if / else box in Scratch, quindi questo dovrebbe essere 505 00:25:41,030 --> 00:25:42,392 piuttosto familiare. 506 00:25:42,392 --> 00:25:42,874 Sì? 507 00:25:42,874 --> 00:25:48,522 >> AUDIENCE: Abbiamo bisogno di spazio tra int n uguale a GetInt poi spazio nella 508 00:25:48,522 --> 00:25:49,460 if? 509 00:25:49,460 --> 00:25:51,565 Come si usa una linea [incomprensibile] 510 00:25:51,565 --> 00:25:52,790 >> LAUREN CARVALHO: Oh, lo spazio qui? 511 00:25:52,790 --> 00:25:56,742 >> AUDIENCE: Come quella, ma il doppio dello spazio. 512 00:25:56,742 --> 00:25:58,718 No, salire. 513 00:25:58,718 --> 00:25:59,706 Salite. 514 00:25:59,706 --> 00:26:00,610 >> LUCAS FREITAS: Solo la linea? 515 00:26:00,610 --> 00:26:01,140 >> AUDIENCE: Già. 516 00:26:01,140 --> 00:26:02,870 >> LUCAS FREITAS: Solo riga vuota? 517 00:26:02,870 --> 00:26:03,270 >> AUDIENCE: Già. 518 00:26:03,270 --> 00:26:04,070 >> LAUREN CARVALHO: Riga vuota? 519 00:26:04,070 --> 00:26:04,470 No. 520 00:26:04,470 --> 00:26:06,320 Questo è solo una cosa stilistico. 521 00:26:06,320 --> 00:26:09,360 >> LUCAS FREITAS: E 'proprio come a volte basta saltare alcune linee così 522 00:26:09,360 --> 00:26:12,330 che il codice non sembra un enorme blocco di testo. 523 00:26:12,330 --> 00:26:15,800 >> LAUREN CARVALHO: Penso che quello che è successo era che avevamo un commento qui, ma io 524 00:26:15,800 --> 00:26:18,220 lo portò fuori in modo che voi ragazzi sarebbe pensare al codice piuttosto 525 00:26:18,220 --> 00:26:19,920 che basta leggere il mio commento. 526 00:26:19,920 --> 00:26:24,170 In generale, la spaziatura non sarà davvero influenzare il modo in cui il programma viene eseguito. 527 00:26:24,170 --> 00:26:26,070 E 'più di una cosa stilistico. 528 00:26:26,070 --> 00:26:29,460 E quando abbiamo la guida di stile aggiornato e pronto a partire dalla fine 529 00:26:29,460 --> 00:26:33,260 supersection, parleremo a tale proposito più. 530 00:26:33,260 --> 00:26:34,660 >> C'è qualcosa di sbagliato con questo programma, giusto? 531 00:26:34,660 --> 00:26:38,980 Poiché 0 non è realmente un numero negativo. 532 00:26:38,980 --> 00:26:40,270 Quindi vediamo se possiamo rimediare. 533 00:26:40,270 --> 00:26:45,710 534 00:26:45,710 --> 00:26:48,370 >> Probabilmente si può immaginare con questo, dice, giusto? 535 00:26:48,370 --> 00:26:52,850 Se n è maggiore di 0, stampiamo, "Tu scelto un numero positivo. "Allora cosa 536 00:26:52,850 --> 00:26:57,340 se n è minore di 0, "Hai scelto un numero negativo. "altro" Hai raccolto 537 00:26:57,340 --> 00:27:01,040 0 ". 538 00:27:01,040 --> 00:27:06,030 >> Ora la cosa interessante è che questo potrebbe andare avanti all'infinito. 539 00:27:06,030 --> 00:27:10,020 Si può avere un blocco if, un altro caso blocco, un altro blocco else if, else if, 540 00:27:10,020 --> 00:27:14,790 else if, else if, else, in fondo come il tempo che vuoi. 541 00:27:14,790 --> 00:27:17,110 E quando costruito come questo, questi sono tutti per essere 542 00:27:17,110 --> 00:27:19,206 esclusivo l'uno dall'altro. 543 00:27:19,206 --> 00:27:19,650 Sì? 544 00:27:19,650 --> 00:27:24,130 >> AUDIENCE: Allora perché non si può utilizzare semplicemente un altro se invece di [incomprensibile]? 545 00:27:24,130 --> 00:27:26,990 >> LAUREN CARVALHO: In questo caso, sì, ho potrebbe utilizzare un altro se, e sarebbe 546 00:27:26,990 --> 00:27:29,190 assolutamente bene perché l' condizioni stesse sono 547 00:27:29,190 --> 00:27:30,600 esclusivo l'uno dall'altro. 548 00:27:30,600 --> 00:27:33,560 Ma se le condizioni non erano esclusiva di ogni altro, questo sarebbe 549 00:27:33,560 --> 00:27:37,596 costringerli a non entrambi valutare, se questo ha un senso. 550 00:27:37,596 --> 00:27:44,195 >> AUDIENCE: In tal caso, potremmo nido la seconda se nel primo caso? 551 00:27:44,195 --> 00:27:46,160 >> LAUREN CARVALHO: se - cosa vuoi dire? 552 00:27:46,160 --> 00:27:49,660 >> AUDIENCE: Se le due condizioni non si escludono a vicenda? 553 00:27:49,660 --> 00:27:54,700 >> LAUREN CARVALHO: Se le condizioni non si escludono a vicenda? 554 00:27:54,700 --> 00:27:58,000 Ma si vuole solo uno di loro a correre? 555 00:27:58,000 --> 00:28:00,260 >> AUDIENCE: Volete solo se invece di altro. 556 00:28:00,260 --> 00:28:01,020 >> LAUREN CARVALHO: Già. 557 00:28:01,020 --> 00:28:03,630 Ci sono sempre sarà molto di modi che si può fare questo. 558 00:28:03,630 --> 00:28:06,600 Si può sicuramente nido di loro. 559 00:28:06,600 --> 00:28:10,390 E vedrete in un futuro diapositiva è possibile avere più IFS, solo uno 560 00:28:10,390 --> 00:28:11,680 dopo l'altro. 561 00:28:11,680 --> 00:28:14,840 Ma questo è un modo logicamente organizzare il flusso del programma. 562 00:28:14,840 --> 00:28:18,000 >> LUCAS FREITAS: E c'è un altro cosa, è che lei ha chiesto di mettere 563 00:28:18,000 --> 00:28:20,110 se e poi un altro caso. 564 00:28:20,110 --> 00:28:25,240 Che avrebbe funzionato alla perfezione, ma è male disegno perché in fondo se si 565 00:28:25,240 --> 00:28:29,320 controllare prima se, e si nota che il numero è maggiore di 0, 566 00:28:29,320 --> 00:28:30,660 può solo finire il programma. 567 00:28:30,660 --> 00:28:33,080 Non è necessario verificare se è meno di 0, giusto? 568 00:28:33,080 --> 00:28:37,510 >> Ma se, se, se, sta andando a controllare entrambi, mentre se lo faccio se il resto è, 569 00:28:37,510 --> 00:28:39,260 sta andando a verificare se è maggiore di 0. 570 00:28:39,260 --> 00:28:43,500 Se lo è, non sta andando a guardare anche le altre righe del codice. 571 00:28:43,500 --> 00:28:48,560 Quindi stai praticamente controllando piace due volte inutilmente, ecco perché abbiamo 572 00:28:48,560 --> 00:28:50,750 fare se else if. 573 00:28:50,750 --> 00:28:52,350 Tutte le altre domande? 574 00:28:52,350 --> 00:28:56,547 >> AUDIENCE: Così la funzionalità del resto se è lo stesso 575 00:28:56,547 --> 00:28:57,790 se fosse solo se? 576 00:28:57,790 --> 00:28:58,470 >> LAUREN CARVALHO: No. 577 00:28:58,470 --> 00:29:02,720 Si sta effettivamente andando a vedere nel mio prossimo scorrere un esempio in cui può 578 00:29:02,720 --> 00:29:03,270 essere diverso. 579 00:29:03,270 --> 00:29:05,690 In questo caso, è quasi la stessa. 580 00:29:05,690 --> 00:29:10,190 581 00:29:10,190 --> 00:29:15,410 >> Quindi qui abbiamo un esempio di molteplici se le dichiarazioni e la 582 00:29:15,410 --> 00:29:20,020 funzionalità non è la stessa come se avessi appena detto, se 583 00:29:20,020 --> 00:29:23,120 altro, se altro, se altro. 584 00:29:23,120 --> 00:29:26,970 Basti pensare a quello che sarebbe stampare se inserisco il numero 95 585 00:29:26,970 --> 00:29:27,715 in questo programma. 586 00:29:27,715 --> 00:29:29,764 >> AUDIENCE: [incomprensibile] 587 00:29:29,764 --> 00:29:31,102 >> LAUREN CARVALHO: E poi? 588 00:29:31,102 --> 00:29:32,340 >> AUDIENCE: [incomprensibile] 589 00:29:32,340 --> 00:29:33,680 >> LAUREN CARVALHO: Già. 590 00:29:33,680 --> 00:29:37,430 Quindi, in questo caso, queste condizioni sono non si escludono a vicenda. 591 00:29:37,430 --> 00:29:41,040 E perché non c'è niente di arresto questa condizione da valutare se questa 592 00:29:41,040 --> 00:29:44,730 uno ha già, sono solo tutti di andare a stampare. 593 00:29:44,730 --> 00:29:46,222 Così come potrei risolvere questo problema? 594 00:29:46,222 --> 00:29:47,608 >> AUDIENCE: else if? 595 00:29:47,608 --> 00:29:48,910 >> LAUREN CARVALHO: È possibile utilizzare else if. 596 00:29:48,910 --> 00:29:50,590 Potrei cambiare l'ordine di questi, giusto? 597 00:29:50,590 --> 00:29:53,800 Se ho fatto questo un primo? 598 00:29:53,800 --> 00:29:55,120 Beh, in realtà, no. 599 00:29:55,120 --> 00:29:57,100 Che non avrebbe funzionato per 95. 600 00:29:57,100 --> 00:29:58,490 >> LUCAS FREITAS: No, solo i IFS altro. 601 00:29:58,490 --> 00:30:01,720 >> LAUREN CARVALHO: Il else if avrebbe risolto questo. 602 00:30:01,720 --> 00:30:07,050 Vuol chiarire la confusione tra IFS e altro IFS? 603 00:30:07,050 --> 00:30:11,480 >> PUBBLICO: Volevo solo chiederti, se è stata utilizzata else if, si sarebbe fermata? 604 00:30:11,480 --> 00:30:11,840 >> LAUREN CARVALHO: Giusto. 605 00:30:11,840 --> 00:30:13,330 Quindi solo questo primo. 606 00:30:13,330 --> 00:30:16,535 Se ho inserito il numero 95, solo in questo avrebbe stampato, e non è mai 607 00:30:16,535 --> 00:30:17,934 avrebbe progredito al resto. 608 00:30:17,934 --> 00:30:22,570 >> LUCAS FREITAS: Basta tipo di pensare come se questo accade, fare questo. 609 00:30:22,570 --> 00:30:26,990 Il resto è come se non, assegno per questo, e poi farlo. 610 00:30:26,990 --> 00:30:28,690 Così come sono tutti reciprocamente esclusiva. 611 00:30:28,690 --> 00:30:30,270 Non è possibile ottenere in due su quelli. 612 00:30:30,270 --> 00:30:32,800 613 00:30:32,800 --> 00:30:37,630 >> PUBBLICO: Si può utilizzare un logico E per quella situazione? 614 00:30:37,630 --> 00:30:39,370 >> LAUREN CARVALHO: Già. 615 00:30:39,370 --> 00:30:41,400 Questo è un altro modo in cui potremmo hanno risolto questo problema. 616 00:30:41,400 --> 00:30:43,470 Stiamo potuto definita gamme, giusto? 617 00:30:43,470 --> 00:30:49,410 Così ho potuto dire se n è maggiore di 90 e inferiore a - 618 00:30:49,410 --> 00:30:52,135 bene, credo che questo non si fa davvero importa, ma qui ho potuto dire se 619 00:30:52,135 --> 00:30:53,960 n è maggiore di 80 e minore di 90. 620 00:30:53,960 --> 00:30:55,570 Maggiore di 70, a meno di 80. 621 00:30:55,570 --> 00:30:59,077 Ciò avrebbe anche lavorato. 622 00:30:59,077 --> 00:30:59,891 >> [Risate] 623 00:30:59,891 --> 00:31:00,980 >> LUCAS FREITAS: Lei è spaventata. 624 00:31:00,980 --> 00:31:02,070 >> LAUREN CARVALHO: Non abbiate paura. 625 00:31:02,070 --> 00:31:04,570 >> LUCAS FREITAS: Non è che sarà sbagliato. 626 00:31:04,570 --> 00:31:08,630 E 'solo che è inutilmente verbose. 627 00:31:08,630 --> 00:31:13,480 Come in informatica, si dovrebbe essere il più semplice possibile finché 628 00:31:13,480 --> 00:31:14,730 si ha la funzionalità. 629 00:31:14,730 --> 00:31:16,725 630 00:31:16,725 --> 00:31:17,835 Vuoi la caramella? 631 00:31:17,835 --> 00:31:19,084 >> AUDIENCE: non ne hanno bisogno. 632 00:31:19,084 --> 00:31:20,340 >> LAUREN CARVALHO: Stai spaventando tutti, Lucas. 633 00:31:20,340 --> 00:31:21,590 >> LUCAS FREITAS: Mi dispiace. 634 00:31:21,590 --> 00:31:24,650 635 00:31:24,650 --> 00:31:29,510 >> LAUREN CARVALHO: David anche detto Questi passare affermazione in classe. 636 00:31:29,510 --> 00:31:33,180 Fondamentalmente quello che sta succedendo è l'interruttore dichiarazione prende una variabile. 637 00:31:33,180 --> 00:31:35,760 In questo caso, stiamo prendendo un numero intero. 638 00:31:35,760 --> 00:31:39,220 >> Se il numero intero è 1, stiamo andando a stampare, «Hai scelto un piccolo 639 00:31:39,220 --> 00:31:42,000 numero. "Se l'intero è 1," Tu scegliere un numero medio. "Se l' 640 00:31:42,000 --> 00:31:45,730 intero è 3, "Hai scelto un alto numero. «E ho anche avuto un caso di default 641 00:31:45,730 --> 00:31:50,020 quaggiù, ma non sta mostrando up, che è troppo male. 642 00:31:50,020 --> 00:31:53,120 643 00:31:53,120 --> 00:31:55,360 >> Fondamentalmente, questo è solo un'altra sintassi. 644 00:31:55,360 --> 00:31:58,640 Avremmo potuto implementato questa esatta stessa cosa con se e else if 645 00:31:58,640 --> 00:31:59,390 dichiarazioni. 646 00:31:59,390 --> 00:32:05,530 Ma quando ci sono un sacco di diversi condizioni e un sacco di diversi 647 00:32:05,530 --> 00:32:10,350 variazioni su ciò che si vuole fare per ogni ingresso, questa è un'opzione. 648 00:32:10,350 --> 00:32:13,262 Quindi è solo una buona sintassi di sapere. 649 00:32:13,262 --> 00:32:15,099 Sì? 650 00:32:15,099 --> 00:32:21,380 >> AUDIENCE: Perché non c'è una barra rovesciata n nella prima? 651 00:32:21,380 --> 00:32:23,340 >> LAUREN CARVALHO: Per lassù? 652 00:32:23,340 --> 00:32:27,600 Non c'è backslash n lassù perché il GetInt - 653 00:32:27,600 --> 00:32:30,140 se si tenta questo, sarà dare questo prompt. 654 00:32:30,140 --> 00:32:32,290 Dammi un intero compreso tra 1 e 3. 655 00:32:32,290 --> 00:32:35,550 E se metto il contraccolpo n, sarebbe portami alla riga successiva, ma ho appena 656 00:32:35,550 --> 00:32:38,690 volevano loro di digitare il numero intero subito dopo i due punti. 657 00:32:38,690 --> 00:32:40,120 Avresti potuto mettere il contraccolpo n. 658 00:32:40,120 --> 00:32:42,374 Non è un grosso problema. 659 00:32:42,374 --> 00:32:43,288 Sì? 660 00:32:43,288 --> 00:32:50,525 >> PUBBLICO: Per questo codice, è questo caso, è che a causa 661 00:32:50,525 --> 00:32:51,760 è il primo caso? 662 00:32:51,760 --> 00:32:52,260 Perché - 663 00:32:52,260 --> 00:32:53,400 >> LAUREN CARVALHO: No, no, no. 664 00:32:53,400 --> 00:32:56,480 Quindi questo mi dà un numero intero tra 1 e 3. 665 00:32:56,480 --> 00:32:59,070 Se n è 1, a stampare questo. 666 00:32:59,070 --> 00:33:02,740 Se avevo chiesto per le lettere, ho potuto detto dammi una lettera compresa tra A 667 00:33:02,740 --> 00:33:04,935 e C. Quindi questo sarebbe il caso A. 668 00:33:04,935 --> 00:33:05,910 >> AUDIENCE: [incomprensibile]. 669 00:33:05,910 --> 00:33:08,090 Il caso sarebbe solo [incomprensibile] 670 00:33:08,090 --> 00:33:11,260 >> LAUREN CARVALHO: Sì, giusto. 671 00:33:11,260 --> 00:33:11,550 Sì? 672 00:33:11,550 --> 00:33:14,861 >> AUDIENCE: cosa succede se si voleva avere più di una espressione relazionale? 673 00:33:14,861 --> 00:33:17,645 Così, invece di dire n uguale a 1, [incomprensibile] 674 00:33:17,645 --> 00:33:21,050 n è maggiore di 1 nel primo caso? 675 00:33:21,050 --> 00:33:26,630 >> LAUREN CARVALHO: In realtà, se non lo faccio definire alcuni di questi casi, ciò 676 00:33:26,630 --> 00:33:28,500 da portare giù. 677 00:33:28,500 --> 00:33:30,680 Quindi, in realtà, forse questo non è quello che stai chiedendo. 678 00:33:30,680 --> 00:33:36,240 >> LUCAS FREITAS: Penso che lei sta chiedendo se il caso è stato n maggiore di 0, caso 679 00:33:36,240 --> 00:33:37,150 meno di 0. 680 00:33:37,150 --> 00:33:39,210 >> LAUREN CARVALHO: Forse l'interruttore dichiarazione non è davvero quello che vuoi 681 00:33:39,210 --> 00:33:39,880 da utilizzare in questo caso. 682 00:33:39,880 --> 00:33:42,420 >> LUCAS FREITAS: L'istruzione switch è solo per il valore, in modo che stai controllando di 683 00:33:42,420 --> 00:33:45,370 il valore è simile a questo o quello. 684 00:33:45,370 --> 00:33:47,025 Quindi non si può effettivamente porre condizioni. 685 00:33:47,025 --> 00:33:50,988 686 00:33:50,988 --> 00:33:55,920 >> AUDIENCE: cosa succede se la persona tipi di [incomprensibile]? 687 00:33:55,920 --> 00:33:58,240 >> LAUREN CARVALHO: Che sarebbe stato il mio caso di default, che purtroppo 688 00:33:58,240 --> 00:33:58,910 non si può vedere. 689 00:33:58,910 --> 00:34:02,240 >> LUCAS FREITAS: [incomprensibile] far loro vedere. 690 00:34:02,240 --> 00:34:03,690 >> LAUREN CARVALHO: In realtà, sai una cosa? 691 00:34:03,690 --> 00:34:07,795 Diciamo solo andare a studiare a 50, e lo farò solo ingrandire i vetrini su studio 692 00:34:07,795 --> 00:34:10,610 50, perché questo è solo fastidioso. 693 00:34:10,610 --> 00:34:14,938 Quindi lasciatemi in realtà vado a condizione. 694 00:34:14,938 --> 00:34:17,860 Questo è solo andare a prendere un po 'di tempo. 695 00:34:17,860 --> 00:34:26,940 696 00:34:26,940 --> 00:34:27,840 >> Bene. 697 00:34:27,840 --> 00:34:29,590 Quindi, mi dispiace. 698 00:34:29,590 --> 00:34:33,625 Almeno ora saremo in grado di vedere tutto ciò senza tagliare. 699 00:34:33,625 --> 00:34:36,230 700 00:34:36,230 --> 00:34:36,969 Bene. 701 00:34:36,969 --> 00:34:43,800 >> Quindi, se hanno messo in 10, avremmo difetto qui per il mio caso di default, e io 702 00:34:43,800 --> 00:34:46,510 sarebbe solo stampare valido perché io chiesto loro di immettere un numero intero 703 00:34:46,510 --> 00:34:49,460 tra 1 e 3. 704 00:34:49,460 --> 00:34:50,650 Tutte le altre domande? 705 00:34:50,650 --> 00:34:51,081 Sì? 706 00:34:51,081 --> 00:34:57,590 >> AUDIENCE: Diciamo che per caso uno, caso tre, che tu volevi che fosse tutto il 707 00:34:57,590 --> 00:35:00,950 stessa cosa, così si scelse un numero che non è un numero medio. 708 00:35:00,950 --> 00:35:03,840 In questo caso, sarebbe ridondante? 709 00:35:03,840 --> 00:35:08,371 Vuoi basta cambiare il testo in entrambe le di loro, o ci sarebbe qualche 710 00:35:08,371 --> 00:35:08,617 ridondanza? 711 00:35:08,617 --> 00:35:11,920 C'è un modo per combinare [Incomprensibile]? 712 00:35:11,920 --> 00:35:15,810 >> LAUREN CARVALHO: Ci sono modi per combinarle, ma io credo che si possa 713 00:35:15,810 --> 00:35:18,730 solo combinare quelli adiacenti. 714 00:35:18,730 --> 00:35:22,250 Quindi, se io non definisco nulla per il caso di due, questo sarebbe 715 00:35:22,250 --> 00:35:24,130 applicano a entrambi i casi. 716 00:35:24,130 --> 00:35:28,110 Oh, se non ho messo nulla per caso uno, questo si applica a entrambi 717 00:35:28,110 --> 00:35:30,620 caso uno e due. 718 00:35:30,620 --> 00:35:33,616 Se questo ha un senso. 719 00:35:33,616 --> 00:35:35,872 >> AUDIENCE: Puoi ripetere quello? 720 00:35:35,872 --> 00:35:36,670 >> LUCAS FREITAS: OK. 721 00:35:36,670 --> 00:35:39,950 Se avete fatto fondamentalmente, come, avete la stessa cosa, ma non metti 722 00:35:39,950 --> 00:35:46,820 niente qui, saresti sia per caso in cui uno o due casi, fare questo. 723 00:35:46,820 --> 00:35:47,930 Giusto? 724 00:35:47,930 --> 00:35:54,010 E questa pausa significa che se si ottiene in questo caso, basta lasciare. 725 00:35:54,010 --> 00:35:55,030 Ecco che cosa significa il freno. 726 00:35:55,030 --> 00:35:59,755 Quindi, se ho fatto questo, si guardi, è caso uno, e si sarebbe solo fare questo. 727 00:35:59,755 --> 00:36:02,110 Se era caso due, sarebbe anche basta venire qui e fare quello. 728 00:36:02,110 --> 00:36:03,544 >> AUDIENCE: Ma si può fare? 729 00:36:03,544 --> 00:36:05,140 Se c'è qualcosa per caso due [incomprensibile] 730 00:36:05,140 --> 00:36:07,095 >> LAUREN CARVALHO: io non ci credo si può fare. 731 00:36:07,095 --> 00:36:09,380 Non credo che si può saltare in giro. 732 00:36:09,380 --> 00:36:11,070 Puoi farlo, Rob? 733 00:36:11,070 --> 00:36:13,300 Non ci penso. 734 00:36:13,300 --> 00:36:16,548 >> AUDIENCE: Quindi un solo numero può andare dopo un caso, giusto? 735 00:36:16,548 --> 00:36:21,410 Non ci può essere un caso, virgola, due? 736 00:36:21,410 --> 00:36:21,970 >> LUCAS FREITAS: No, non puoi. 737 00:36:21,970 --> 00:36:25,085 Non puoi assolutamente. 738 00:36:25,085 --> 00:36:28,770 >> LAUREN CARVALHO: Voglio dire, il punto è questa è un'opzione, e questo non potrebbe 739 00:36:28,770 --> 00:36:31,940 misura il vostro caso d'uso, così allora si il se le condizioni userebbe. 740 00:36:31,940 --> 00:36:33,906 >> AUDIENCE: Allora perché fare questo? 741 00:36:33,906 --> 00:36:34,314 L'interruttore? 742 00:36:34,314 --> 00:36:38,540 >> LAUREN CARVALHO: Vorrei usare questa se è stato ben definito - 743 00:36:38,540 --> 00:36:39,730 in realtà, Lucas, è che stai bloccando. 744 00:36:39,730 --> 00:36:40,982 >> LUCAS FREITAS: Oh, mi dispiace. 745 00:36:40,982 --> 00:36:44,200 >> LAUREN CARVALHO: Se si dispone di molto comportamenti definiti che si desidera per 746 00:36:44,200 --> 00:36:48,105 ogni ingresso, questo potrebbe essere un poco più conciso che scrivere su 747 00:36:48,105 --> 00:36:49,530 un'istruzione if per ciascuno di essi. 748 00:36:49,530 --> 00:36:51,210 >> AUDIENCE: Cosa fa il hanno infranto dire ancora? 749 00:36:51,210 --> 00:36:53,180 >> LAUREN CARVALHO: La rottura significa fermarsi. 750 00:36:53,180 --> 00:36:56,860 Ricordate, se non ho avuto questa rottura qui, avremmo appena caduto 751 00:36:56,860 --> 00:36:58,110 nel caso successivo. 752 00:36:58,110 --> 00:37:00,820 >> LUCAS FREITAS: Rottura significa per ottenere fuori l'istruzione switch. 753 00:37:00,820 --> 00:37:03,400 Perché se è 1, che voglio per stampare questa e lasciare. 754 00:37:03,400 --> 00:37:04,640 Non voglio controllare qualcos'altro. 755 00:37:04,640 --> 00:37:05,790 >> AUDIENCE: Tu non vuoi per stampare qualsiasi altra cosa. 756 00:37:05,790 --> 00:37:06,730 >> LUCAS FREITAS: Già. 757 00:37:06,730 --> 00:37:08,260 Perché è mutuamente esclusive. 758 00:37:08,260 --> 00:37:11,378 >> PUBBLICO: E vuol procedere solo al caso successivo se il primo caso 759 00:37:11,378 --> 00:37:11,850 non è vero? 760 00:37:11,850 --> 00:37:14,120 Oppure è testare tutti i casi Allo stesso tempo? 761 00:37:14,120 --> 00:37:16,300 >> LUCAS FREITAS: No, controlli in sequenza. 762 00:37:16,300 --> 00:37:18,070 In sequenza, sì. 763 00:37:18,070 --> 00:37:21,840 Ancora una domanda, allora dobbiamo passa così possiamo coprire tutto. 764 00:37:21,840 --> 00:37:22,300 Sì? 765 00:37:22,300 --> 00:37:25,280 >> AUDIENCE: Quindi per il caso, potrebbe avere fatto qualcosa oltre solo quello? 766 00:37:25,280 --> 00:37:27,680 Potresti dare un intervallo? 767 00:37:27,680 --> 00:37:28,580 >> LUCAS FREITAS: No. 768 00:37:28,580 --> 00:37:29,900 >> LAUREN CARVALHO: Non credo si può dare un intervallo. 769 00:37:29,900 --> 00:37:31,430 >> LUCAS FREITAS: Tu non puoi non può dare un intervallo. 770 00:37:31,430 --> 00:37:33,190 >> PUBBLICO: Il caso è specifico [Incomprensibile]. 771 00:37:33,190 --> 00:37:34,840 >> LUCAS FREITAS: Interruttore è una sorta di valori. 772 00:37:34,840 --> 00:37:38,400 È facendo cose diverse a seconda su un valore, un valore specifico. 773 00:37:38,400 --> 00:37:41,050 Non si può fare intervallo, non è possibile fare qualsiasi altra cosa. 774 00:37:41,050 --> 00:37:43,055 E 'solo un altro strumento per vedere. 775 00:37:43,055 --> 00:37:46,570 >> LAUREN CARVALHO: La maggior parte delle persone non usano passare dichiarazioni molto in CS50, 776 00:37:46,570 --> 00:37:48,760 ma è lì. 777 00:37:48,760 --> 00:37:49,920 >> Bene. 778 00:37:49,920 --> 00:37:53,870 Così la prossima cosa che andremo a parlare circa è l'operatore ternario. 779 00:37:53,870 --> 00:37:56,650 Questo è solo un altro tipo di di condizionale. 780 00:37:56,650 --> 00:38:01,460 Fondamentalmente quello che sta succedendo qui è che io sono chiedendo un intero, e se n è 781 00:38:01,460 --> 00:38:05,550 superiore a 100, ho intenzione di stampare "Alto". Se non lo è, ho intenzione di 782 00:38:05,550 --> 00:38:07,010 stampare "basso". 783 00:38:07,010 --> 00:38:11,230 >> Quindi quello che sta facendo è la condizione viene proprio qui, fra parentesi, e si 784 00:38:11,230 --> 00:38:13,550 può tipo di pensare alla questione come mi sto chiedendo se 785 00:38:13,550 --> 00:38:15,030 questo è vero o no. 786 00:38:15,030 --> 00:38:18,485 Se è vero, ho intenzione di fare questo primo cosa, e se non è vero, io sono 787 00:38:18,485 --> 00:38:20,020 intenzione di fare questa seconda cosa. 788 00:38:20,020 --> 00:38:23,520 789 00:38:23,520 --> 00:38:27,960 >> Tutte le domande circa l' operatore ternario? 790 00:38:27,960 --> 00:38:30,880 >> LUCAS FREITAS: Voglio solo osservare da David è che ogni volta che si dispone di un 791 00:38:30,880 --> 00:38:33,346 condizione - 792 00:38:33,346 --> 00:38:35,690 >> LAUREN CARVALHO: Credo che David guardare attraverso la diretta streaming. 793 00:38:35,690 --> 00:38:37,210 >> LUCAS FREITAS: Sta facendo vita torrente adesso. 794 00:38:37,210 --> 00:38:41,730 Così ogni volta che avete una condizione, sei dovrebbe mettere tra parentesi graffe, 795 00:38:41,730 --> 00:38:45,320 proprio come abbiamo in un interruttore dichiarazione qui. 796 00:38:45,320 --> 00:38:46,750 Abbiamo parentesi graffe qui. 797 00:38:46,750 --> 00:38:49,560 Per qualsiasi condizioni, sei dovrebbe mettere anche questo. 798 00:38:49,560 --> 00:38:50,820 >> LAUREN CARVALHO: Vedrai questo nella guida di stile. 799 00:38:50,820 --> 00:38:52,900 Noi in realtà non abbiamo il guida di stile in questo momento. 800 00:38:52,900 --> 00:38:53,930 Penso che David ancora lavorando. 801 00:38:53,930 --> 00:38:55,100 >> LUCAS FREITAS: Ha detto che è solo ora di lavoro. 802 00:38:55,100 --> 00:38:56,120 >> LAUREN CARVALHO: Oh, è ora di lavoro? 803 00:38:56,120 --> 00:38:57,520 OK. 804 00:38:57,520 --> 00:39:02,060 Quindi, a quanto pare quest'anno in stile guida, anche se vi è solo una linea, 805 00:39:02,060 --> 00:39:06,040 hai avuto modo di mettere quelle parentesi graffe dentro 806 00:39:06,040 --> 00:39:09,480 Non dovete necessariamente per l' funzionalità del programma. 807 00:39:09,480 --> 00:39:12,210 E forse dovremmo solo prendere una pausa dopo che le condizioni e proseguire dritto 808 00:39:12,210 --> 00:39:14,620 alla guida di stile per cancellare un po 'di queste cose? 809 00:39:14,620 --> 00:39:15,010 >> LUCAS FREITAS: Già. 810 00:39:15,010 --> 00:39:15,775 Avete una domanda? 811 00:39:15,775 --> 00:39:17,580 >> PUBBLICO: No, io aspetterò fino alla guida di stile. 812 00:39:17,580 --> 00:39:19,578 >> AUDIENCE: Potrebbe tornare indietro all'operatore ternario? 813 00:39:19,578 --> 00:39:23,360 >> LAUREN CARVALHO: Ternario, sì. 814 00:39:23,360 --> 00:39:29,010 >> LUCAS FREITAS: operatore ternario è fondamentalmente un'istruzione if else, ma 815 00:39:29,010 --> 00:39:33,590 invece di dover avere le due linee di verificare se una e poi l' 816 00:39:33,590 --> 00:39:36,600 altro, basta avere una linea. 817 00:39:36,600 --> 00:39:40,930 Quindi, in pratica, se voglio dare una stringa un valore alto o basso, e 818 00:39:40,930 --> 00:39:46,270 vuole fare un alto se n è maggiore di 100 o bassa, se è di meno, cosa posso fare 819 00:39:46,270 --> 00:39:47,730 è questo [incomprensibile] 820 00:39:47,730 --> 00:39:53,060 la corda sta per essere, e poi ho chiedere al programma è n maggiore di 100? 821 00:39:53,060 --> 00:39:55,750 >> Ecco perché ho questa espressione tra parentesi e poi 822 00:39:55,750 --> 00:39:56,580 il punto interrogativo. 823 00:39:56,580 --> 00:39:59,110 Mi chiedo è maggiore di 100? 824 00:39:59,110 --> 00:40:02,310 Se lo è, sta andando ad essere elevato. 825 00:40:02,310 --> 00:40:03,850 Se non lo è, sta andando ad essere bassa. 826 00:40:03,850 --> 00:40:07,310 >> Quindi, in pratica ciò che si pensa è fare una domanda, così si mette in parentesi 827 00:40:07,310 --> 00:40:08,620 la condizione. 828 00:40:08,620 --> 00:40:11,160 Poi si mette il punto interrogativo perché si sta chiedendo. 829 00:40:11,160 --> 00:40:15,240 E se questo è vero, sta per essere il primo valore [incomprensibile] qui. 830 00:40:15,240 --> 00:40:18,176 Se non lo è, ho intenzione di mettere il valore che è dopo i due punti. 831 00:40:18,176 --> 00:40:21,580 Ha senso? 832 00:40:21,580 --> 00:40:24,730 >> E 'anche qualcosa che è come un strumento in C ma non c'è bisogno di 833 00:40:24,730 --> 00:40:25,700 specificamente usarlo. 834 00:40:25,700 --> 00:40:29,890 Ma CS gente di solito piace che perché consente di risparmiare solo linee. 835 00:40:29,890 --> 00:40:31,050 >> LAUREN CARVALHO: E 'molto elegante. 836 00:40:31,050 --> 00:40:32,951 Si fa molto in una sola istruzione. 837 00:40:32,951 --> 00:40:36,077 >> AUDIENCE: Così il segno di percentuale è solo ciò i risultati sul 838 00:40:36,077 --> 00:40:36,799 la linea precedente? 839 00:40:36,799 --> 00:40:38,260 >> LAUREN CARVALHO: Oh, mi dispiace. 840 00:40:38,260 --> 00:40:42,670 Questo segno di percentuale è in realtà un segnaposto per questo s. 841 00:40:42,670 --> 00:40:46,160 In una dichiarazione printf, hai questo stringa qui, che è quello che sta succedendo a 842 00:40:46,160 --> 00:40:48,440 stampare, ma non si può solo mettere questo s in là. 843 00:40:48,440 --> 00:40:50,290 Altrimenti sarebbe stampare le s letteralmente. 844 00:40:50,290 --> 00:40:54,070 Così abbiamo messo una percentuale qui per continuare questo posto tenuto per qualunque 845 00:40:54,070 --> 00:40:57,590 viene dopo la virgola. 846 00:40:57,590 --> 00:40:59,470 >> Così, per una stringa, hai cento s. 847 00:40:59,470 --> 00:41:00,950 Per un numero intero, cento i. 848 00:41:00,950 --> 00:41:03,330 Per un galleggiante, cento f. 849 00:41:03,330 --> 00:41:06,960 Vedrai quelli come noi vedere più esempi. 850 00:41:06,960 --> 00:41:09,230 Ma forse si dovrebbe parlare di guida di stile per un po ', ora 851 00:41:09,230 --> 00:41:10,480 che tocca. 852 00:41:10,480 --> 00:41:21,040 853 00:41:21,040 --> 00:41:24,010 >> LUCAS FREITAS: Se si va a cs50.net/style, si sta andando a vedere 854 00:41:24,010 --> 00:41:25,760 la guida di stile. 855 00:41:25,760 --> 00:41:32,420 Per i set di problemi, il punteggio per la set problema è composto di portata, 856 00:41:32,420 --> 00:41:35,510 il che significa in pratica, se hai fatto tutto le parti del problema impostati o se si 857 00:41:35,510 --> 00:41:37,170 tentato qualcosa. 858 00:41:37,170 --> 00:41:41,120 La seconda cosa è la correttezza, che mezzo, è il programma facendo quello che 859 00:41:41,120 --> 00:41:44,520 doveva fare, o lo fa hanno dei bug, o non è facendo quello 860 00:41:44,520 --> 00:41:45,620 si suppone di fare. 861 00:41:45,620 --> 00:41:51,420 >> La terza cosa è il design, il che significa stai implementa questo bene, o sono 862 00:41:51,420 --> 00:41:54,520 si utilizzando istruzioni inutili? 863 00:41:54,520 --> 00:41:59,400 Così, per esempio, se si desidera ripetere un numero 10 volte, stai scrivendo un 864 00:41:59,400 --> 00:42:03,040 per loop o stai solo facendo 10 volte la stessa dichiarazione, solo facendo 865 00:42:03,040 --> 00:42:04,060 copia e incolla. 866 00:42:04,060 --> 00:42:05,760 Così design è per questo. 867 00:42:05,760 --> 00:42:07,420 >> E, infine, si dispone di stile. 868 00:42:07,420 --> 00:42:12,000 Lo stile è come giudicare se il codice sia 869 00:42:12,000 --> 00:42:14,050 leggibile e tipo di abbastanza. 870 00:42:14,050 --> 00:42:16,520 Significa solo fondamentalmente è il codice leggibile? 871 00:42:16,520 --> 00:42:20,560 Sarebbe qualcun altro che stava cercando sono il codice in grado di capire che cosa 872 00:42:20,560 --> 00:42:21,250 che sta facendo? 873 00:42:21,250 --> 00:42:25,360 Ha osservazioni e simili? 874 00:42:25,360 --> 00:42:30,430 >> Parliamo lo stile che si suppone di utilizzare. 875 00:42:30,430 --> 00:42:32,200 La prima cosa è commenti. 876 00:42:32,200 --> 00:42:35,280 I commenti sono molto importanti per il vostro codice perché a volte si sta facendo 877 00:42:35,280 --> 00:42:38,750 il programma, e si sa esattamente che cosa si vuole fare in modo che solo iniziare 878 00:42:38,750 --> 00:42:43,120 codifica, basta digitare un mazzo di C. Ma se qualcun altro è in cerca stai sei 879 00:42:43,120 --> 00:42:47,500 codice, non sta andando ad essere in grado di capire perché non sanno 880 00:42:47,500 --> 00:42:51,420 le cose che sono nella tua testa, come il pesudocode, quindi forse lo faranno 881 00:42:51,420 --> 00:42:53,970 avere un tempo difficile da capire ciò che il codice sta facendo. 882 00:42:53,970 --> 00:42:57,900 >> Quindi, i commenti sono davvero utili per spiegare a qualcuno che sta guardando 883 00:42:57,900 --> 00:43:00,880 il codice di quello che sta facendo, e in realtà anche per te, 884 00:43:00,880 --> 00:43:01,880 sono molto utili. 885 00:43:01,880 --> 00:43:05,740 Come si va a p-set più dure e difficili, si sta andando a vedere che il codice diventa 886 00:43:05,740 --> 00:43:10,590 più lunghi, e poi i commenti sono davvero importante quindi ricordare ciò che ciascuno 887 00:43:10,590 --> 00:43:13,320 parte del vostro programma fa. 888 00:43:13,320 --> 00:43:16,920 >> Per inserire un commento, si può solo fare un tagliare barra e poi scrivere un commento. 889 00:43:16,920 --> 00:43:21,250 E l'intera linea è parte di un commento, e tutto ciò che si scrive, 890 00:43:21,250 --> 00:43:24,550 non sarà utilizzato per il codice. 891 00:43:24,550 --> 00:43:27,993 E 'fondamentalmente come il compilatore sta per ignorarlo. 892 00:43:27,993 --> 00:43:29,290 Ritiene che senso? 893 00:43:29,290 --> 00:43:31,710 >> AUDIENCE: Cosa fai di nuovo per scrivere un commento? 894 00:43:31,710 --> 00:43:33,260 >> LUCAS FREITAS: Questo? 895 00:43:33,260 --> 00:43:36,020 La barra ridurre drasticamente? 896 00:43:36,020 --> 00:43:39,810 Ogni volta che si digita barra barra, a prescindere è in quella linea non sta andando 897 00:43:39,810 --> 00:43:42,260 per essere considerati C. Sì? 898 00:43:42,260 --> 00:43:45,910 >> AUDIENCE: Così, dopo il commento, basta entrare e iniziare una nuova linea? 899 00:43:45,910 --> 00:43:47,120 >> LUCAS FREITAS: Sì, esattamente. 900 00:43:47,120 --> 00:43:50,010 >> LAUREN CARVALHO: La barra barra è per i commenti singola linea. 901 00:43:50,010 --> 00:43:52,910 >> LUCAS FREITAS: per esempio, qui abbiamo - 902 00:43:52,910 --> 00:43:54,160 fammi Zoom In - 903 00:43:54,160 --> 00:43:56,530 904 00:43:56,530 --> 00:44:01,180 per esempio, qui sto dichiarando un galleggiante, ma forse se hai appena messo questo 905 00:44:01,180 --> 00:44:04,980 nel codice, come non avete idea cosa sta facendo, come in realtà 906 00:44:04,980 --> 00:44:06,950 qualcuno che sta cercando in questo codice sta per essere, come, quello che il 907 00:44:06,950 --> 00:44:09,190 diamine sta succedendo? 908 00:44:09,190 --> 00:44:12,890 >> Se si mette un commento dicendo: "convertire Fahrenheit a Celsius, rende molto 909 00:44:12,890 --> 00:44:13,450 più senso. 910 00:44:13,450 --> 00:44:15,480 Sei, come, OK, tu sei facendo una conversione. 911 00:44:15,480 --> 00:44:16,730 Ritiene che senso? 912 00:44:16,730 --> 00:44:19,860 913 00:44:19,860 --> 00:44:24,960 Quindi è solo qualcosa che aiuta le persone pronto il codice e anche fare 914 00:44:24,960 --> 00:44:28,290 è in grado di organizzare il codice migliore. 915 00:44:28,290 --> 00:44:33,080 >> La seconda cosa è che si può fare commenti multi-linea, in modo da avere una 916 00:44:33,080 --> 00:44:34,850 commento di un gruppo di linee. 917 00:44:34,850 --> 00:44:38,880 Invece di dover mettere barra barra, le osservazioni prima linea, tagliano barra, 918 00:44:38,880 --> 00:44:43,590 la seconda linea, e così via, può usare la stella barra. 919 00:44:43,590 --> 00:44:46,330 Il modo in cui lo si fa è che per la prima riga del commento, sei 920 00:44:46,330 --> 00:44:49,650 andando a fare una stella barra stella, quindi basta così. 921 00:44:49,650 --> 00:44:56,900 Proprio come qui abbiamo l'inizio di un programma, di solito si mette che si 922 00:44:56,900 --> 00:44:59,530 sono, che cosa fa questo programma, e cose del genere. 923 00:44:59,530 --> 00:45:01,900 E 'un po' come un colpo di testa per il programma. 924 00:45:01,900 --> 00:45:04,540 >> Anche in questo caso, non è qualcosa che un compilatore sta andando a preoccuparsi, ma 925 00:45:04,540 --> 00:45:07,570 è importante per voi sapere che cosa questa programma fa o per le altre persone 926 00:45:07,570 --> 00:45:09,960 di sapere che cosa il programma sta facendo. 927 00:45:09,960 --> 00:45:17,480 Quindi non slash star, e poi il ultima linea si sta andando a fare stella 928 00:45:17,480 --> 00:45:22,250 tagliare per poter chiudere quel commento. 929 00:45:22,250 --> 00:45:26,140 Quindi sostanzialmente per tutte le altre linee, si può solo scrivere quello, e questo 930 00:45:26,140 --> 00:45:27,390 è tutto sta per essere ignorato. 931 00:45:27,390 --> 00:45:32,920 932 00:45:32,920 --> 00:45:37,780 >> E anche, proprio come lo stile, si vede che ciascuna linea ha una stella, e tutti 933 00:45:37,780 --> 00:45:39,380 le stelle sono allineate. 934 00:45:39,380 --> 00:45:41,605 Queste sono cose importanti in modo che il codice sembra piuttosto. 935 00:45:41,605 --> 00:45:42,855 Suona bene? 936 00:45:42,855 --> 00:45:45,320 937 00:45:45,320 --> 00:45:47,290 >> Ora, le condizioni. 938 00:45:47,290 --> 00:45:52,240 Che David stava dicendo che dovremmo effettivamente messo in quelle diapositive, è che 939 00:45:52,240 --> 00:45:55,810 se avete qualsiasi tipo di istruzioni if o qualsiasi tipo di condizioni, 940 00:45:55,810 --> 00:46:00,700 è necessario utilizzare le parentesi graffe per mostrare che questo è ciò che stava per accadere 941 00:46:00,700 --> 00:46:02,730 quando si ha la condizione. 942 00:46:02,730 --> 00:46:07,560 Tecnicamente, quando si ha una condizione e poi la riga successiva è solo uno 943 00:46:07,560 --> 00:46:12,110 linea, non dovete tecnicamente di mettere le parentesi graffe. 944 00:46:12,110 --> 00:46:16,930 >> Fondamentalmente il compilatore avrebbe capito comunque come implicito. 945 00:46:16,930 --> 00:46:21,100 Ma per CS50, vi chiediamo ragazzi a mettere le parentesi graffe solo in modo che la vostra 946 00:46:21,100 --> 00:46:24,560 il codice è più organizzata e più leggibile. 947 00:46:24,560 --> 00:46:28,200 Dato che il codice si allunga se si non hanno parentesi graffe e così via. 948 00:46:28,200 --> 00:46:29,150 Diventa davvero disordinato. 949 00:46:29,150 --> 00:46:31,410 >> LAUREN CARVALHO: Questo è esattamente ciò che David appena sottolineato 950 00:46:31,410 --> 00:46:33,000 nelle mie diapositive precedenti. 951 00:46:33,000 --> 00:46:36,690 Funziona sicuramente senza il riccio parentesi graffe, ma per ragioni stilistiche 952 00:46:36,690 --> 00:46:38,840 stiamo andando a chiedere che non mettete quelli dentro 953 00:46:38,840 --> 00:46:42,400 >> E quando si avvia l'esecuzione style50, che è una specie di controllo 50 per 954 00:46:42,400 --> 00:46:44,860 stile, vi ricorderà di fare questo. 955 00:46:44,860 --> 00:46:49,710 >> LUCAS FREITAS: E un'altra cosa è ricordatevi di mettere le parentesi graffe lungo 956 00:46:49,710 --> 00:46:50,610 in ogni riga. 957 00:46:50,610 --> 00:46:52,490 Così si fa, per esempio, l's. 958 00:46:52,490 --> 00:46:56,910 Passare alla riga successiva, aprire il riccio brace, poi si va alla riga successiva. 959 00:46:56,910 --> 00:46:59,560 Rientri, che è quattro spazi. 960 00:46:59,560 --> 00:47:03,570 Poi si scrive qualsiasi cosa, poi un'altra linea, e chiudere la parentesi graffa. 961 00:47:03,570 --> 00:47:06,870 Quindi, essere sicuri che sia quelli ricci parentesi sono in diverse linee. 962 00:47:06,870 --> 00:47:11,548 >> AUDIENCE: Quindi, se questo codice ha come 10 else if, questo dovrebbe 963 00:47:11,548 --> 00:47:13,040 essere 10 set di staffe? 964 00:47:13,040 --> 00:47:14,610 >> LUCAS FREITAS: Sì, per ciascuno di essi. 965 00:47:14,610 --> 00:47:14,930 Già. 966 00:47:14,930 --> 00:47:17,980 Quindi, se, altrimenti se, e così via. 967 00:47:17,980 --> 00:47:21,990 >> AUDIENCE: si può non premere il tasto Tab per il rientro? 968 00:47:21,990 --> 00:47:25,350 >> LUCAS FREITAS: Vi stiamo chiedendo ragazzi di utilizzare quattro spazi. 969 00:47:25,350 --> 00:47:30,060 Alcuni editor di testo scheda traducono come quattro spazi automaticamente. 970 00:47:30,060 --> 00:47:34,850 gedit non lo fa, quindi bisogna fare space space. 971 00:47:34,850 --> 00:47:37,920 Questo è anche qualcosa che alcuni programmatori fanno solo le schede, alcune 972 00:47:37,920 --> 00:47:40,560 programmatori solo fare quattro spazi, e alcune altre persone anche fare 973 00:47:40,560 --> 00:47:41,900 due o tre spazi. 974 00:47:41,900 --> 00:47:44,040 E 'solo che qui stiamo chiedendo voi ragazzi a fare quattro spazi. 975 00:47:44,040 --> 00:47:47,556 >> AUDIENCE: Non c'è quasi sicuramente avuto modo di essere un modo per gedit per 976 00:47:47,556 --> 00:47:48,645 automaticamente [incomprensibile]. 977 00:47:48,645 --> 00:47:50,480 Come nessun [incomprensibile] fa. 978 00:47:50,480 --> 00:47:51,150 >> LUCAS FREITAS: Già. 979 00:47:51,150 --> 00:47:53,165 Penso che si possa andare su Impostazioni. 980 00:47:53,165 --> 00:47:55,270 >> PUBBLICO: Lo fa già tutto questo. 981 00:47:55,270 --> 00:47:56,410 >> LUCAS FREITAS: Lo fa già? 982 00:47:56,410 --> 00:47:56,890 OK. 983 00:47:56,890 --> 00:48:00,854 Quindi, tanto per essere sicuri che si hanno quattro spazi. 984 00:48:00,854 --> 00:48:05,880 >> AUDIENCE: Dobbiamo mettere il riccio parentesi per i cicli come bene? 985 00:48:05,880 --> 00:48:07,470 >> LUCAS FREITAS: sì. 986 00:48:07,470 --> 00:48:11,610 >> LAUREN CARVALHO: Ogni volta che il incapsulare un blocco di codice, basta 987 00:48:11,610 --> 00:48:13,570 si prega di utilizzare le parentesi graffe. 988 00:48:13,570 --> 00:48:18,040 E prima di pensare che siamo solo essere pignoli su questo per non va bene 989 00:48:18,040 --> 00:48:23,450 ragione, se voi ragazzi andate avanti per ottenere stage tecnologia a grandi aziende, 990 00:48:23,450 --> 00:48:26,020 che vi darà una guida di stile, e vi diranno che questo è ciò che il vostro 991 00:48:26,020 --> 00:48:27,220 codice deve assomigliare. 992 00:48:27,220 --> 00:48:31,120 E anche se hai imparato a codice come questo, forse nel tuo tirocinio 993 00:48:31,120 --> 00:48:32,680 dovrete fare qualcosa completamente diverso. 994 00:48:32,680 --> 00:48:35,115 Essi non si aspettano di conformate al loro stile. 995 00:48:35,115 --> 00:48:39,800 >> LUCAS FREITAS: E più una cosa è che si fa a notare come ho come x, 996 00:48:39,800 --> 00:48:42,290 spazio, meno spazio, 0? 997 00:48:42,290 --> 00:48:44,640 Ogni volta che avete un operatore - 998 00:48:44,640 --> 00:48:50,490 può essere come più, meno, i tempi, meno, maggiore, qualunque operatore - 999 00:48:50,490 --> 00:48:57,560 devi mettere uno spazio a sinistra e la destra dell'operatore. 1000 00:48:57,560 --> 00:49:00,570 >> LAUREN CARVALHO: Quelli sono chiamato operandi binari. 1001 00:49:00,570 --> 00:49:03,720 Basta fare in modo sempre spazio i vostri operandi binari. 1002 00:49:03,720 --> 00:49:05,465 >> LUCAS FREITAS: Questo è Non un operando binario. 1003 00:49:05,465 --> 00:49:07,010 >> LAUREN CARVALHO: Questo è perché bisogna essere in due. 1004 00:49:07,010 --> 00:49:08,260 >> LUCAS FREITAS: Oh, sì. 1005 00:49:08,260 --> 00:49:13,340 1006 00:49:13,340 --> 00:49:14,590 >> OK, gli interruttori. 1007 00:49:14,590 --> 00:49:18,180 1008 00:49:18,180 --> 00:49:23,390 In primo luogo, bisogna vedere che, proprio come in un'istruzione if o altro, avete 1009 00:49:23,390 --> 00:49:28,280 per mettere la parentesi graffa sulla propria linea e sotto la parentesi graffa qui. 1010 00:49:28,280 --> 00:49:32,240 Si noti che esiste un singolo spazio dopo l'accensione, proprio come in se e altro 1011 00:49:32,240 --> 00:49:35,360 abbiamo avuto un unico spazio tra che e le parentesi. 1012 00:49:35,360 --> 00:49:36,610 Quindi devi mettere quella. 1013 00:49:36,610 --> 00:49:40,380 1014 00:49:40,380 --> 00:49:48,270 >> E non c'è giusto spazio dopo ogni delle parentesi o prima della fine 1015 00:49:48,270 --> 00:49:49,080 delle parentesi. 1016 00:49:49,080 --> 00:49:52,612 Così si vede che è tutto insieme, e come anche qui. 1017 00:49:52,612 --> 00:49:53,940 >> Sì? 1018 00:49:53,940 --> 00:49:58,040 >> LAUREN CARVALHO: Penso abbiamo bisogno di andare avanti. 1019 00:49:58,040 --> 00:50:02,340 >> LUCAS FREITAS: Quindi questo è parte del guida di stile che avete per CS50. 1020 00:50:02,340 --> 00:50:06,520 Essere sicuri di andare a cs50.net/style e dare un'occhiata a questo. 1021 00:50:06,520 --> 00:50:09,250 Queste sono tutte molto importanti per il vostro cliente stile. 1022 00:50:09,250 --> 00:50:12,740 1023 00:50:12,740 --> 00:50:15,670 >> Lasciatemi tornare alla dichiarazione. 1024 00:50:15,670 --> 00:50:17,070 >> LAUREN CARVALHO: Preferirei basta usare style50. 1025 00:50:17,070 --> 00:50:18,920 Stiamo solo andando a andare direttamente al loop. 1026 00:50:18,920 --> 00:50:27,580 1027 00:50:27,580 --> 00:50:28,300 Bene. 1028 00:50:28,300 --> 00:50:33,720 >> Quindi torniamo al contenuto, ora che siamo andati sopra la guida di stile. 1029 00:50:33,720 --> 00:50:37,220 Loops, li avete visti in Scratch, e stiamo andando a parlare di loro in 1030 00:50:37,220 --> 00:50:39,210 C. 1031 00:50:39,210 --> 00:50:44,400 >> In un ciclo for, esistono tre porzioni al 1032 00:50:44,400 --> 00:50:45,440 dichiarazione di questo ciclo for. 1033 00:50:45,440 --> 00:50:49,040 Hai la tua inizializzazione in che si impostano le variabili. 1034 00:50:49,040 --> 00:50:52,160 Hai la tua condizione, che sono controllo per vedere se qualcosa è 1035 00:50:52,160 --> 00:50:54,670 vero o falso e se la ciclo deve continuare. 1036 00:50:54,670 --> 00:50:59,390 E hai l'aggiornamento, che sta aggiornando le variabili. 1037 00:50:59,390 --> 00:51:05,310 >> Diciamo solo un rapido sguardo ad alcuni Codice C di questo ciclo for in azione. 1038 00:51:05,310 --> 00:51:08,860 Che cosa sta succedendo qui in inizializzazione, stiamo impostando i per 0. 1039 00:51:08,860 --> 00:51:11,820 Nella condizione stiamo controllando se i è inferiore a 10. 1040 00:51:11,820 --> 00:51:14,982 E nell'aggiornamento siamo incrementando i. 1041 00:51:14,982 --> 00:51:20,490 Così che cosa sarà il risultato di questo ciclo for? 1042 00:51:20,490 --> 00:51:24,344 >> LUCAS FREITAS: In realtà, prima di tutto, voi ragazzi sanno che cosa ho + + è? 1043 00:51:24,344 --> 00:51:25,850 >> AUDIENCE: Aumento di 1. 1044 00:51:25,850 --> 00:51:26,870 >> LUCAS FREITAS: aumento dell'1, sì. 1045 00:51:26,870 --> 00:51:30,020 Quindi questa è la stessa cosa facendo i pari i più 1. 1046 00:51:30,020 --> 00:51:35,890 E notare che non abbiamo uno spazio tra i e il + +. 1047 00:51:35,890 --> 00:51:37,600 >> Quindi voi ragazzi sapete di cosa si farà? 1048 00:51:37,600 --> 00:51:39,060 Qualcuno può dirmi? 1049 00:51:39,060 --> 00:51:41,463 E magari ottenere qualche caramella a causa di questo? 1050 00:51:41,463 --> 00:51:42,912 >> AUDIENCE: [incomprensibile] 1051 00:51:42,912 --> 00:51:44,850 >> LUCAS FREITAS: OK. 1052 00:51:44,850 --> 00:51:45,400 [Incomprensibile] 1053 00:51:45,400 --> 00:51:47,450 dimostrare a tutti dopo [incomprensibile]. 1054 00:51:47,450 --> 00:51:49,565 Sì, sta andando a mostrare "Questo è CS50 "10 volte. 1055 00:51:49,565 --> 00:51:52,150 >> LAUREN CARVALHO: Credo che fosse nel titolo della diapositiva. 1056 00:51:52,150 --> 00:51:53,830 >> LUCAS FREITAS: Oh, sì. 1057 00:51:53,830 --> 00:51:54,670 >> [Risate] 1058 00:51:54,670 --> 00:51:56,790 >> LUCAS FREITAS: Che aiuta. 1059 00:51:56,790 --> 00:51:58,370 >> LAUREN CARVALHO: Così quelli sono cicli for. 1060 00:51:58,370 --> 00:52:03,200 Andiamo a vedere alcuni esempi di cicli for tardi. 1061 00:52:03,200 --> 00:52:06,510 Ma facciamo in realtà un'occhiata al secondo tipo di ciclo che si incontrano 1062 00:52:06,510 --> 00:52:08,920 in C, e si chiama il ciclo while. 1063 00:52:08,920 --> 00:52:11,120 >> In un ciclo while, hai appena ricevuto una condizione. 1064 00:52:11,120 --> 00:52:14,790 La condizione è verificata nel inizio, e se tale condizione 1065 00:52:14,790 --> 00:52:18,450 restituisce true, allora il codice all'interno il corpo del blocco mentre 1066 00:52:18,450 --> 00:52:20,380 eseguirà. 1067 00:52:20,380 --> 00:52:23,000 E il codice continuerà a eseguire fintanto che 1068 00:52:23,000 --> 00:52:24,450 condizione rimane vera. 1069 00:52:24,450 --> 00:52:28,350 1070 00:52:28,350 --> 00:52:33,320 >> Ecco un esempio di un ciclo while in C. Stiamo andando a impostare il conteggio a 10 a 1071 00:52:33,320 --> 00:52:34,580 cominciare. 1072 00:52:34,580 --> 00:52:41,800 Finché conteggio è maggiore di 0, stiamo andando a tenere la stampa di questo 1073 00:52:41,800 --> 00:52:43,360 variabile qui. 1074 00:52:43,360 --> 00:52:47,080 Stiamo andando a diminuire il conteggio e quindi controllare nuovamente la condizione. 1075 00:52:47,080 --> 00:52:51,370 Stampa, decremento, assegno la condizione di nuovo. 1076 00:52:51,370 --> 00:52:54,530 >> Qui abbiamo un esempio che riguarda alla tua domanda precedente. 1077 00:52:54,530 --> 00:52:57,340 Avevamo la percentuale s quando eravamo la stampa di una stringa, e ora che 1078 00:52:57,340 --> 00:53:03,420 stiamo stampando un int, abbiamo una cento i come invece la nostra segnaposto. 1079 00:53:03,420 --> 00:53:09,250 Le lettere dovrebbero essere abbastanza intuitivo s per le stringhe, i per int. 1080 00:53:09,250 --> 00:53:15,400 >> Quindi, se questo codice viene eseguito, si dovrebbe conto alla rovescia da 10 a 0, stampando 1081 00:53:15,400 --> 00:53:15,925 ogni intero. 1082 00:53:15,925 --> 00:53:19,460 >> LUCAS FREITAS: E si può pensare al cento come ci si sente come un vuoto 1083 00:53:19,460 --> 00:53:23,960 spazio e quindi si sta mettendo questa variabile qui in quello spazio vuoto. 1084 00:53:23,960 --> 00:53:27,640 Così, per esempio, qui avrò solo un vuoto, e poi sto mettendo l' 1085 00:53:27,640 --> 00:53:30,262 contare proprio lì, l' valore del conteggio. 1086 00:53:30,262 --> 00:53:32,710 Ritiene che senso? 1087 00:53:32,710 --> 00:53:35,860 >> Posso solo fare come printf e poi cita, contare? 1088 00:53:35,860 --> 00:53:36,840 Vorrei che lavorare? 1089 00:53:36,840 --> 00:53:37,980 >> PUBBLICO: No. 1090 00:53:37,980 --> 00:53:41,190 >> LUCAS FREITAS: No, perché sarà effettivamente stampare la parola "conte" 1091 00:53:41,190 --> 00:53:42,850 anziché stampare il valore. 1092 00:53:42,850 --> 00:53:46,080 Questo è quanto si rendono stampare i valori verso la variabile anziché 1093 00:53:46,080 --> 00:53:47,670 solo il nome della variabile. 1094 00:53:47,670 --> 00:53:48,530 Tutte le domande? 1095 00:53:48,530 --> 00:53:53,060 >> AUDIENCE: Perché si usa per come opposto a trascorrere? 1096 00:53:53,060 --> 00:53:56,130 >> LAUREN CARVALHO: Vorrei usare una di ciclo se so esattamente quante 1097 00:53:56,130 --> 00:53:59,520 iterazioni Voglio che il mio ciclo a correre. 1098 00:53:59,520 --> 00:54:02,810 In questo caso, non importa quanto, Voglio dire, io stavo solo cercando di 1099 00:54:02,810 --> 00:54:05,310 pensare ad una molto semplice esempio per questa diapositiva. 1100 00:54:05,310 --> 00:54:09,990 Ma diciamo che si desidera qualcosa per andare avanti, mentre - 1101 00:54:09,990 --> 00:54:14,480 >> LUCAS FREITAS: per esempio, sei chiedendo di ingresso fino a quando la persona 1102 00:54:14,480 --> 00:54:15,370 ti dà l'input giusto. 1103 00:54:15,370 --> 00:54:19,720 Così come, mentre l'ingresso non è OK, continuare a chiedere per essa. 1104 00:54:19,720 --> 00:54:22,920 O come quando si è genitori non danno denaro, continuare a chiedere per essa. 1105 00:54:22,920 --> 00:54:23,430 >> [Risate] 1106 00:54:23,430 --> 00:54:25,390 >> LAUREN CARVALHO: Tu non sai come molte volte dovrete farlo. 1107 00:54:25,390 --> 00:54:27,292 >> LUCAS FREITAS: Perché non lo fai so quante volte questo è 1108 00:54:27,292 --> 00:54:28,010 Continueremo a correre. 1109 00:54:28,010 --> 00:54:30,397 >> LAUREN CARVALHO: Ma in un ciclo for, è necessario sapere quante volte. 1110 00:54:30,397 --> 00:54:33,640 1111 00:54:33,640 --> 00:54:33,860 Sì? 1112 00:54:33,860 --> 00:54:38,520 >> PUBBLICO: Giusto per chiarire, la percentuale dice che questo è qualcosa su di 1113 00:54:38,520 --> 00:54:42,415 accadere, sulle i per l'intero, e il backslash n - 1114 00:54:42,415 --> 00:54:43,910 >> LAUREN CARVALHO: Mezzi? 1115 00:54:43,910 --> 00:54:45,820 Chi sa cosa significa il backslash n? 1116 00:54:45,820 --> 00:54:47,770 Nuova linea, sì. 1117 00:54:47,770 --> 00:54:48,130 Esattamente. 1118 00:54:48,130 --> 00:54:50,500 >> LUCAS FREITAS: Si può pensare di n come nuova riga. 1119 00:54:50,500 --> 00:54:52,258 >> LAUREN CARVALHO: Nice. 1120 00:54:52,258 --> 00:54:55,775 >> AUDIENCE: Cosa c'è che contano dash dash [incomprensibile]? 1121 00:54:55,775 --> 00:55:00,240 >> LUCAS FREITAS: Count meno meno è la stessa cosa plus plus, ma 1122 00:55:00,240 --> 00:55:02,160 invece di aumentare, è in calo di 1. 1123 00:55:02,160 --> 00:55:04,720 1124 00:55:04,720 --> 00:55:07,185 >> LAUREN CARVALHO: Non più mentre le questioni ciclo? 1125 00:55:07,185 --> 00:55:09,460 No? 1126 00:55:09,460 --> 00:55:13,910 Oh, dovevamo hanno saltato questo. 1127 00:55:13,910 --> 00:55:14,950 >> Questo è un do while. 1128 00:55:14,950 --> 00:55:18,950 Molto simile ad un ciclo while salvo questo caso controlliamo la condizione dopo 1129 00:55:18,950 --> 00:55:23,430 il codice nel corpo della ciclo viene eseguito una volta. 1130 00:55:23,430 --> 00:55:27,170 Quindi eseguiamo il codice prima non importa quale. 1131 00:55:27,170 --> 00:55:31,956 Poi controlliamo la condizione, eseguire di nuovo se la condizione è vera. 1132 00:55:31,956 --> 00:55:35,450 1133 00:55:35,450 --> 00:55:38,950 >> Vi ritroverete con questo quando si sta chiedendo per l'input dell'utente. 1134 00:55:38,950 --> 00:55:42,080 Perché si sta sempre andando ad avere per chiedere una volta, e poi a seconda di quello 1135 00:55:42,080 --> 00:55:46,570 l'input dell'utente è, potrebbe essere necessario reprompt e chiedere ancora e ancora, se 1136 00:55:46,570 --> 00:55:50,670 l'ingresso non era quello che aspettava che fosse. 1137 00:55:50,670 --> 00:55:53,610 >> AUDIENCE: Così è come una forma per le persone a compilare. 1138 00:55:53,610 --> 00:55:56,010 >> LAUREN CARVALHO: Sì, esattamente. 1139 00:55:56,010 --> 00:55:59,720 Troverete, credo, in primo Pset, si sta andando ad avere per 1140 00:55:59,720 --> 00:56:04,010 utilizzare un ciclo do bene a raccogliere input dall'utente. 1141 00:56:04,010 --> 00:56:08,728 >> PUBBLICO: A seconda della situazione, i loop mentre tenderanno a correre più 1142 00:56:08,728 --> 00:56:12,805 spesso che i cicli while, come da uno o qualcosa? 1143 00:56:12,805 --> 00:56:14,080 >> LAUREN CARVALHO: Se è l'esatto - 1144 00:56:14,080 --> 00:56:17,400 >> LUCAS FREITAS: Essi dovrebbero sempre eseguire l'esatta quantità di volte che si 1145 00:56:17,400 --> 00:56:19,130 vuole che venga eseguito. 1146 00:56:19,130 --> 00:56:23,860 Come si usa fare mentre perché abbiamo davvero voluto ottenere l'ingresso almeno una volta. 1147 00:56:23,860 --> 00:56:27,220 Nei cicli mentre, a volte non si vuole per eseguirlo affatto se non è 1148 00:56:27,220 --> 00:56:28,540 il caso di eseguire. 1149 00:56:28,540 --> 00:56:31,300 Quindi dipende dal disegno. 1150 00:56:31,300 --> 00:56:35,900 Voglio dire, è possibile utilizzare o fare mentre mentre fino a quando il codice lo fa 1151 00:56:35,900 --> 00:56:36,905 si suppone di fare. 1152 00:56:36,905 --> 00:56:38,470 >> LAUREN CARVALHO: Ma io pensare che la risposta alla tua 1153 00:56:38,470 --> 00:56:40,540 domanda è probabilmente sì. 1154 00:56:40,540 --> 00:56:42,190 Diciamo che la condizione era falsa. 1155 00:56:42,190 --> 00:56:45,498 In un caso avrebbe eseguito una volta, e un altro caso sarebbe eseguito zero volte. 1156 00:56:45,498 --> 00:56:47,370 Quindi, sì. 1157 00:56:47,370 --> 00:56:49,260 >> Altre domande? 1158 00:56:49,260 --> 00:56:50,320 Sì? 1159 00:56:50,320 --> 00:56:56,443 >> AUDIENCE: Può la condizione del ciclo essere un per il ciclo in termini di un'altra variabile 1160 00:56:56,443 --> 00:56:57,385 che [incomprensibile]. 1161 00:56:57,385 --> 00:57:01,700 >> LAUREN CARVALHO: Sì, può essere qualsiasi cosa. 1162 00:57:01,700 --> 00:57:06,420 Probabilmente per i pset inizio, si non dovrà incontrare quel caso, ma 1163 00:57:06,420 --> 00:57:09,878 sicuramente può essere qualsiasi cosa. 1164 00:57:09,878 --> 00:57:12,680 >> LUCAS FREITAS: Penso abbiamo finito qui. 1165 00:57:12,680 --> 00:57:13,290 >> LAUREN CARVALHO: Siamo? 1166 00:57:13,290 --> 00:57:13,480 No? 1167 00:57:13,480 --> 00:57:13,870 >> LUCAS FREITAS: Loop? 1168 00:57:13,870 --> 00:57:14,600 Già. 1169 00:57:14,600 --> 00:57:16,280 >> LAUREN CARVALHO: Non dovremmo essere. 1170 00:57:16,280 --> 00:57:17,760 Oh, abbiamo finito con i cicli. 1171 00:57:17,760 --> 00:57:19,250 OK. 1172 00:57:19,250 --> 00:57:23,180 >> In realtà, perché abbiamo parlato così tanto, andiamo in realtà tutto navigare 1173 00:57:23,180 --> 00:57:28,950 verso study.cs50.net/conditions. 1174 00:57:28,950 --> 00:57:34,460 E si sta andando a spostarsi verso il basso ai problemi widget di. 1175 00:57:34,460 --> 00:57:39,090 Beh, in realtà, mentre le persone sono sempre questo set up, lo studio CS50 è 1176 00:57:39,090 --> 00:57:42,620 andando ad essere uno strumento che i vostri TFS utilizzare per preparare sezioni e che 1177 00:57:42,620 --> 00:57:45,230 voi potete usare se si dimentica sezioni. 1178 00:57:45,230 --> 00:57:48,980 Sta andando a contenere una serie di diapositive, alcuni trucchi e suggerimenti per ogni 1179 00:57:48,980 --> 00:57:54,030 argomento, e alcuni problemi di pratica con soluzioni. 1180 00:57:54,030 --> 00:57:57,200 >> Perché non tutti basta dare un'occhiata a questo problema proprio qui. 1181 00:57:57,200 --> 00:58:01,630 1182 00:58:01,630 --> 00:58:04,790 >> Mi dispiace, avrei ricordato le persone a portare i computer portatili di oggi. 1183 00:58:04,790 --> 00:58:07,050 Ma se non avete un computer portatile, che è OK. 1184 00:58:07,050 --> 00:58:10,140 Si può solo annotare questo giù su un pezzo di carta o di guardare oltre 1185 00:58:10,140 --> 00:58:12,890 spalla del tuo prossimo. 1186 00:58:12,890 --> 00:58:16,380 >> Proviamo a scrivere un programma che richiede all'utente di prendere una congettura, l' 1187 00:58:16,380 --> 00:58:19,250 numero medio di figli per famiglia unità negli Stati Uniti. 1188 00:58:19,250 --> 00:58:22,265 Quel numero è 2, a proposito, come si può vedere da questi esempi. 1189 00:58:22,265 --> 00:58:24,770 1190 00:58:24,770 --> 00:58:29,030 >> Vogliamo per stampare il numero medio di bambini per famiglia negli Stati Uniti, poi abbiamo 1191 00:58:29,030 --> 00:58:31,080 vogliono che cosa? 1192 00:58:31,080 --> 00:58:35,480 Noi vogliamo raccogliere l'input dall'utente. 1193 00:58:35,480 --> 00:58:41,290 E poi, a seconda di ciò che l'utente del ingresso è, si sta andando a stampare 1194 00:58:41,290 --> 00:58:44,850 o questo è corretto o questo non è corretto. 1195 00:58:44,850 --> 00:58:48,040 >> E la prima cosa che si vedere, se si fa clic sulla piccola freccia a 1196 00:58:48,040 --> 00:58:52,190 la parte inferiore del widget problema è un posto a buttar giù qualche pseudocodice. 1197 00:58:52,190 --> 00:58:53,340 Quindi non sei ancora programmare. 1198 00:58:53,340 --> 00:58:56,740 Stai solo ottenere il vostro le idee in ordine. 1199 00:58:56,740 --> 00:58:59,620 >> Qualcuno ha voglia di aiutare Lucas venire con la giusta 1200 00:58:59,620 --> 00:59:01,270 pseudocodice per questo problema? 1201 00:59:01,270 --> 00:59:04,900 >> LUCAS FREITAS: Qual è la prima cosa che probabilmente dovremmo fare qui? 1202 00:59:04,900 --> 00:59:07,010 Che cosa ne pensate ragazzi? 1203 00:59:07,010 --> 00:59:08,260 >> AUDIENCE: [incomprensibile] 1204 00:59:08,260 --> 00:59:12,060 1205 00:59:12,060 --> 00:59:13,290 >> LUCAS FREITAS: Sì, OK. 1206 00:59:13,290 --> 00:59:16,610 Così, stampa. 1207 00:59:16,610 --> 00:59:19,480 Basta dire che la stampa la media numero di persone? 1208 00:59:19,480 --> 00:59:20,470 OK. 1209 00:59:20,470 --> 00:59:23,450 Print domanda, diciamo. 1210 00:59:23,450 --> 00:59:25,951 Dopo stampo questa domanda, cosa devo fare? 1211 00:59:25,951 --> 00:59:27,875 >> AUDIENCE: Ottenere input. 1212 00:59:27,875 --> 00:59:30,690 >> LUCAS FREITAS: Get ingresso. 1213 00:59:30,690 --> 00:59:32,864 Qualcos'altro? 1214 00:59:32,864 --> 00:59:34,114 >> AUDIENCE: Condition. 1215 00:59:34,114 --> 00:59:36,770 1216 00:59:36,770 --> 00:59:38,980 >> LUCAS FREITAS: Condition. 1217 00:59:38,980 --> 00:59:41,325 >> LAUREN CARVALHO: Cosa e 'quello condizioni sarà? 1218 00:59:41,325 --> 00:59:43,550 >> PUBBLICO: Il numero di [incomprensibile]. 1219 00:59:43,550 --> 00:59:44,440 >> LAUREN CARVALHO: Giusto. 1220 00:59:44,440 --> 00:59:46,945 >> LUCAS FREITAS: Che cosa sto andando per verificare la condizione? 1221 00:59:46,945 --> 00:59:48,750 >> AUDIENCE: se è uguale a 2. 1222 00:59:48,750 --> 00:59:50,640 >> LAUREN CARVALHO: se è uguale a 2. 1223 00:59:50,640 --> 00:59:51,890 Esattamente. 1224 00:59:51,890 --> 00:59:58,340 1225 00:59:58,340 --> 01:00:00,140 >> LUCAS FREITAS: C'è qualcosa altra cosa che dovrei fare? 1226 01:00:00,140 --> 01:00:01,390 >> AUDIENCE: Conte. 1227 01:00:01,390 --> 01:00:05,184 1228 01:00:05,184 --> 01:00:08,110 >> LUCAS FREITAS: Quindi, se è pari a 2, diciamo - 1229 01:00:08,110 --> 01:00:14,250 1230 01:00:14,250 --> 01:00:17,960 vorrei solo scrivere se l'ingresso è uguale a 2, allora che cosa ho intenzione 1231 01:00:17,960 --> 01:00:23,665 di fare è di stampa corretta. 1232 01:00:23,665 --> 01:00:26,230 1233 01:00:26,230 --> 01:00:31,826 E poi il resto, io vado stampare errato. 1234 01:00:31,826 --> 01:00:34,600 1235 01:00:34,600 --> 01:00:37,720 Qualcos'altro? 1236 01:00:37,720 --> 01:00:38,670 No? 1237 01:00:38,670 --> 01:00:40,500 >> LAUREN CARVALHO: Così si possibile fare clic sul - 1238 01:00:40,500 --> 01:00:42,290 Non tutti hanno questo in giù? 1239 01:00:42,290 --> 01:00:44,680 >> LUCAS FREITAS: Ha senso? 1240 01:00:44,680 --> 01:00:46,226 Così ora cerchiamo di codificare questo. 1241 01:00:46,226 --> 01:00:50,140 >> LAUREN CARVALHO: Se si sceglie il piccolo freccia, in realtà salva la 1242 01:00:50,140 --> 01:00:51,900 pseudocodice, che è davvero emozionante. 1243 01:00:51,900 --> 01:00:56,480 E si può fare quelli in commenti se si vuole solo ricordare a voi stessi di 1244 01:00:56,480 --> 01:00:57,075 cosa fare. 1245 01:00:57,075 --> 01:01:01,555 >> LUCAS FREITAS: Così, per esempio, prima Ho intenzione di stampare la domanda, così 1246 01:01:01,555 --> 01:01:05,930 come faccio a farlo, in realtà? 1247 01:01:05,930 --> 01:01:07,050 printf. 1248 01:01:07,050 --> 01:01:12,130 Così printf, e la questione è nella media numero di figli per 1249 01:01:12,130 --> 01:01:14,110 famiglia negli Stati Uniti. 1250 01:01:14,110 --> 01:01:19,070 1251 01:01:19,070 --> 01:01:21,790 >> Poi ho intenzione di ottenere input dall'utente. 1252 01:01:21,790 --> 01:01:29,050 1253 01:01:29,050 --> 01:01:31,324 Così come posso fare? 1254 01:01:31,324 --> 01:01:32,200 >> AUDIENCE: Get Int. 1255 01:01:32,200 --> 01:01:33,076 >> LAUREN CARVALHO: GetInt. 1256 01:01:33,076 --> 01:01:33,890 >> LUCAS FREITAS: OK. 1257 01:01:33,890 --> 01:01:35,220 Quindi, prima di dichiarare, giusto? 1258 01:01:35,220 --> 01:01:39,300 int, chiamiamolo n uguale GetInt. 1259 01:01:39,300 --> 01:01:42,610 1260 01:01:42,610 --> 01:01:44,670 >> E ora la condizione. 1261 01:01:44,670 --> 01:01:49,250 Quindi lasciatemi dire che sto andando a qui controllo risposta. 1262 01:01:49,250 --> 01:01:57,290 Quindi, in primo luogo, se l'ingresso, che è n, è uguale a - come faccio a scrivere questo? 1263 01:01:57,290 --> 01:01:58,480 >> AUDIENCE: Uguali uguali. 1264 01:01:58,480 --> 01:02:00,000 >> LUCAS FREITAS: Perfect. 1265 01:02:00,000 --> 01:02:00,670 Così n. 1266 01:02:00,670 --> 01:02:04,600 E accorgo che faccio uno spazio, uguale, uguale, lo spazio, vero. 1267 01:02:04,600 --> 01:02:06,930 E ora cosa devo fare? 1268 01:02:06,930 --> 01:02:08,820 Qualcosa di molto importante per lo stile. 1269 01:02:08,820 --> 01:02:10,070 Le parentesi graffe. 1270 01:02:10,070 --> 01:02:16,570 1271 01:02:16,570 --> 01:02:17,795 >> E poi ho intenzione di stampare. 1272 01:02:17,795 --> 01:02:19,790 Come faccio a stampare? 1273 01:02:19,790 --> 01:02:22,500 printf. 1274 01:02:22,500 --> 01:02:24,568 >> AUDIENCE: Potrebbe essere capitalizzato? 1275 01:02:24,568 --> 01:02:27,166 1276 01:02:27,166 --> 01:02:28,380 >> LUCAS FREITAS: No. 1277 01:02:28,380 --> 01:02:31,000 Si suppone che sia tutto in minuscolo. 1278 01:02:31,000 --> 01:02:32,250 In modo che sia corretta. 1279 01:02:32,250 --> 01:02:40,990 1280 01:02:40,990 --> 01:02:44,870 >> Sarebbe questo è sufficiente per la printf dichiarazione, o mi sto perdendo qualcosa? 1281 01:02:44,870 --> 01:02:46,265 >> AUDIENCE: Nuova linea. 1282 01:02:46,265 --> 01:02:50,220 >> LUCAS FREITAS: Nuova linea, sì. 1283 01:02:50,220 --> 01:02:51,250 Ed ora il resto. 1284 01:02:51,250 --> 01:02:57,290 >> AUDIENCE: C'è uno spazio dopo la printf, o no? 1285 01:02:57,290 --> 01:03:00,820 >> LAUREN CARVALHO: Dovremmo controllare la guida di stile. 1286 01:03:00,820 --> 01:03:02,260 >> AUDIENCE: Non dovrebbe essere. 1287 01:03:02,260 --> 01:03:03,510 >> LUCAS FREITAS: Non dovrebbe essere OK. 1288 01:03:03,510 --> 01:03:05,820 1289 01:03:05,820 --> 01:03:13,605 Quindi altro, printf, "Questo non è corretto." 1290 01:03:13,605 --> 01:03:17,105 >> LAUREN CARVALHO: Oops, le vostre citazioni. 1291 01:03:17,105 --> 01:03:17,950 >> LUCAS FREITAS: OK. 1292 01:03:17,950 --> 01:03:18,600 Qualcos'altro? 1293 01:03:18,600 --> 01:03:20,770 Ha un bell'aspetto? 1294 01:03:20,770 --> 01:03:21,890 >> LAUREN CARVALHO: Vogliamo provare? 1295 01:03:21,890 --> 01:03:23,190 >> LUCAS FREITAS: Sì, cerchiamo di eseguirlo. 1296 01:03:23,190 --> 01:03:25,880 1297 01:03:25,880 --> 01:03:29,070 Quindi è la compilazione, e sembra che funziona. 1298 01:03:29,070 --> 01:03:31,465 Proviamo due figli. 1299 01:03:31,465 --> 01:03:34,110 Questo è corretto. 1300 01:03:34,110 --> 01:03:37,300 E adesso corriamo di nuovo, ma ora invece di mettere due figli, cerchiamo di 1301 01:03:37,300 --> 01:03:40,990 dire che ho intenzione di mettere come cinque. 1302 01:03:40,990 --> 01:03:41,515 Ciò non è esatto. 1303 01:03:41,515 --> 01:03:42,670 Così sembra che funziona. 1304 01:03:42,670 --> 01:03:44,160 >> LAUREN CARVALHO: Perché non mostrare loro cosa succede se si mette qualcosa 1305 01:03:44,160 --> 01:03:45,055 strano, come alcune lettere. 1306 01:03:45,055 --> 01:03:45,790 >> LUCAS FREITAS: Oh, sì. 1307 01:03:45,790 --> 01:03:47,430 Diamo inoltre verificare che. 1308 01:03:47,430 --> 01:03:51,170 Cosa succede se l'utente sta cercando di pasticciare con il vostro programma, e hanno appena 1309 01:03:51,170 --> 01:03:57,430 scrivere, non so due. 1310 01:03:57,430 --> 01:03:58,320 E 'intenzione di dire di tentativi. 1311 01:03:58,320 --> 01:04:00,780 >> LAUREN CARVALHO: Così GetInt li sta chiedendo di riprovare. 1312 01:04:00,780 --> 01:04:02,115 Non abbiamo dovuto prendere cura di che noi stessi. 1313 01:04:02,115 --> 01:04:02,750 >> LUCAS FREITAS: Già. 1314 01:04:02,750 --> 01:04:06,853 Quindi, a meno Io in realtà messo un numero, è intenzione di continuare mi chiede di riprovare. 1315 01:04:06,853 --> 01:04:08,330 >> AUDIENCE: Come si esegue? 1316 01:04:08,330 --> 01:04:10,570 >> LUCAS FREITAS: Basta cliccare questo pulsante stella. 1317 01:04:10,570 --> 01:04:11,940 >> LAUREN CARVALHO: Si dovrebbe salire. 1318 01:04:11,940 --> 01:04:13,320 Ci si va. 1319 01:04:13,320 --> 01:04:15,550 >> LUCAS FREITAS: La stella tasto destro lì. 1320 01:04:15,550 --> 01:04:16,040 Sì? 1321 01:04:16,040 --> 01:04:19,960 >> PUBBLICO: Ha richiede [incomprensibile] con i numeri decimali troppo? 1322 01:04:19,960 --> 01:04:21,235 >> LAUREN CARVALHO: credo che lo farà. 1323 01:04:21,235 --> 01:04:22,660 >> LUCAS FREITAS: Se fa che cosa? 1324 01:04:22,660 --> 01:04:24,990 >> LAUREN CARVALHO: Se si digita in un numero decimale, credo 1325 01:04:24,990 --> 01:04:25,880 sta andando a richiedere. 1326 01:04:25,880 --> 01:04:26,586 >> LUCAS FREITAS: Vediamo. 1327 01:04:26,586 --> 01:04:28,360 >> LAUREN CARVALHO: Perché non è un int. 1328 01:04:28,360 --> 01:04:32,056 1329 01:04:32,056 --> 01:04:33,442 >> LUCAS FREITAS: Già. 1330 01:04:33,442 --> 01:04:37,370 >> LAUREN CARVALHO: Quindi non è un int, Get Int vi chiederà di riprovare. 1331 01:04:37,370 --> 01:04:40,795 >> AUDIENCE: Allora, dove in quel codice sarebbe decimale che richiede 1332 01:04:40,795 --> 01:04:46,005 utente che devono entrare un intero particolare? 1333 01:04:46,005 --> 01:04:48,480 >> LAUREN CARVALHO: GetInt è in realtà farlo per noi. 1334 01:04:48,480 --> 01:04:50,600 >> PUBBLICO: No, voglio dire se volevamo per entrare [incomprensibile] 1335 01:04:50,600 --> 01:04:55,070 >> LUCAS FREITAS: Si può dire come media numero di bambini negli Stati Uniti. 1336 01:04:55,070 --> 01:04:56,120 Non lo so. 1337 01:04:56,120 --> 01:05:01,761 Possiamo dire, per esempio, "prego ingresso un numero intero. " 1338 01:05:01,761 --> 01:05:04,270 >> LAUREN CARVALHO: Un numero intero pari al numero medio. 1339 01:05:04,270 --> 01:05:06,190 Voglio dire, è solo come voi la parola, giusto? 1340 01:05:06,190 --> 01:05:06,520 >> LUCAS FREITAS: Già. 1341 01:05:06,520 --> 01:05:08,420 Questo non è in realtà parte di codifica. 1342 01:05:08,420 --> 01:05:11,000 E 'più di come qualunque si sta andando a voler 1343 01:05:11,000 --> 01:05:13,987 scrivere nel tuo programma. 1344 01:05:13,987 --> 01:05:17,723 >> AUDIENCE: Come avremmo funzionare se era in realtà in gedit [incomprensibile]. 1345 01:05:17,723 --> 01:05:19,130 Invece di premere gioco? 1346 01:05:19,130 --> 01:05:21,180 >> LUCAS FREITAS: Noi prima compilarlo. 1347 01:05:21,180 --> 01:05:25,080 Possiamo farlo facendo make e il nome del file. 1348 01:05:25,080 --> 01:05:29,896 E poi a correre, noi faremo dot barra e il nome del programma. 1349 01:05:29,896 --> 01:05:36,588 >> PUBBLICO: Credo che quello che volevo dire è se volevamo che il programma per rispondere alle 1350 01:05:36,588 --> 01:05:42,010 il loro corretto, voce non valida, non si dovrebbe mettere in - 1351 01:05:42,010 --> 01:05:45,710 >> LUCAS FREITAS: Non saremo in grado di farlo perché il codice dice questo 1352 01:05:45,710 --> 01:05:50,350 riprovare viene da Get Int, che è un funzione che è già in atto 1353 01:05:50,350 --> 01:05:55,790 per noi tramite la biblioteca CS50, e poiché è già implementato, ci siamo 1354 01:05:55,790 --> 01:05:58,340 non può solo [incomprensibile]. 1355 01:05:58,340 --> 01:06:00,780 >> LAUREN CARVALHO: Se non si utilizza GetInt, allora si può fare. 1356 01:06:00,780 --> 01:06:01,490 >> LUCAS FREITAS: Già. 1357 01:06:01,490 --> 01:06:03,750 Ma se si sta utilizzando GetInt, non si può. 1358 01:06:03,750 --> 01:06:05,427 Tutte le altre domande? 1359 01:06:05,427 --> 01:06:12,938 >> AUDIENCE: Potrebbe andato con il simile GetFloat e quindi essere in grado di mettere 1360 01:06:12,938 --> 01:06:14,381 in un decimale? 1361 01:06:14,381 --> 01:06:15,343 >> LUCAS FREITAS: Già. 1362 01:06:15,343 --> 01:06:15,824 >> AUDIENCE: OK. 1363 01:06:15,824 --> 01:06:19,210 Poi si poteva solo ingresso float A è uguale - 1364 01:06:19,210 --> 01:06:19,950 >> LAUREN CARVALHO: Già. 1365 01:06:19,950 --> 01:06:22,740 Esattamente lo stesso, tranne una float invece di un int. 1366 01:06:22,740 --> 01:06:27,372 >> LUCAS FREITAS: Basta mettere qui e poi GetFloat lì. 1367 01:06:27,372 --> 01:06:29,795 >> AUDIENCE: Come volete vedere o hanno visto - 1368 01:06:29,795 --> 01:06:31,327 >> LAUREN CARVALHO: abbiamo Non è ancora finita lì. 1369 01:06:31,327 --> 01:06:36,490 >> AUDIENCE: - facendo disuguaglianza con galleggianti non [incomprensibile] 1370 01:06:36,490 --> 01:06:40,290 >> AUDIENCE: cosa significano i punti e virgola? 1371 01:06:40,290 --> 01:06:43,220 >> LAUREN CARVALHO: Il punto e virgola appena significa che questa affermazione è completo, 1372 01:06:43,220 --> 01:06:45,030 e stiamo per andare sulla diapositiva successiva. 1373 01:06:45,030 --> 01:06:47,040 >> AUDIENCE: Quindi è necessario ogni volta? 1374 01:06:47,040 --> 01:06:48,330 >> LAUREN CARVALHO: Già. 1375 01:06:48,330 --> 01:06:53,130 Beh, OK, quindi non per queste condizioni, perché sono 1376 01:06:53,130 --> 01:06:54,090 incapsulare qualcosa. 1377 01:06:54,090 --> 01:07:00,290 Quindi, fondamentalmente, se qualcosa sta causando di creare poi una parentesi graffa 1378 01:07:00,290 --> 01:07:03,000 blocco, non mettere un punto e virgola alla fine. 1379 01:07:03,000 --> 01:07:04,200 >> LUCAS FREITAS: Ma tutto altro, sì. 1380 01:07:04,200 --> 01:07:06,670 Quando finisci una dichiarazione, mettere il punto e virgola. 1381 01:07:06,670 --> 01:07:10,380 E se si dimentica il punto e virgola, il compilatore sta per arrivare arrabbiato con te, 1382 01:07:10,380 --> 01:07:12,640 e si sta andando ad avere per cercare di risolvere il problema. 1383 01:07:12,640 --> 01:07:16,520 >> LAUREN CARVALHO: Se metto un punto e virgola qui, che avrebbe fermare questa, e io 1384 01:07:16,520 --> 01:07:18,780 non avrebbe mai arrivare ad eseguire ciò che è all'interno, tra l'altro. 1385 01:07:18,780 --> 01:07:21,113 Quindi è uno di quei bug comuni. 1386 01:07:21,113 --> 01:07:22,390 >> AUDIENCE: l'esecuzione di sempre. 1387 01:07:22,390 --> 01:07:22,950 >> LAUREN CARVALHO: Già. 1388 01:07:22,950 --> 01:07:25,860 In questo caso, avremmo sempre eseguire quello che c'è dentro. 1389 01:07:25,860 --> 01:07:29,050 >> PUBBLICO: Il tuo stile [incomprensibile] attaccare che per voi, pensò. 1390 01:07:29,050 --> 01:07:29,802 >> LAUREN CARVALHO: Oh, questo è vero. 1391 01:07:29,802 --> 01:07:34,298 >> AUDIENCE: [incomprensibile] singolo Linea cosa [incomprensibile] 1392 01:07:34,298 --> 01:07:35,286 >> PUBBLICO: Sì? 1393 01:07:35,286 --> 01:07:37,756 >> PUBBLICO: Si può avere di più ingressi in una riga? 1394 01:07:37,756 --> 01:07:41,214 Così come si può chiedere agli utenti stampare due cose? 1395 01:07:41,214 --> 01:07:42,530 >> LAUREN CARVALHO: Non usando - 1396 01:07:42,530 --> 01:07:44,520 >> LUCAS FREITAS: No. 1397 01:07:44,520 --> 01:07:47,040 Diciamo che voglio anche per ottenere questo intero m. 1398 01:07:47,040 --> 01:07:49,558 Devo farlo in una linea diversa. 1399 01:07:49,558 --> 01:07:54,992 >> AUDIENCE: Se si dovesse correre che, come [incomprensibile]? 1400 01:07:54,992 --> 01:07:59,438 Sarebbe stampare il prompt ci [incomprensibile] 1401 01:07:59,438 --> 01:08:00,940 e poi devi inserire uno e - 1402 01:08:00,940 --> 01:08:01,840 >> LAUREN CARVALHO: Beh, eseguirlo. 1403 01:08:01,840 --> 01:08:04,365 Voglio dire, non c'è nulla ci impedisce di basta eseguirlo e vedere cosa 1404 01:08:04,365 --> 01:08:06,610 sarebbe accaduto. 1405 01:08:06,610 --> 01:08:08,080 >> LUCAS FREITAS: Penso che sia andando a lamenta di noi 1406 01:08:08,080 --> 01:08:08,977 perché non stiamo usando - 1407 01:08:08,977 --> 01:08:09,751 >> LAUREN CARVALHO: Oops. 1408 01:08:09,751 --> 01:08:12,580 >> LUCAS FREITAS: Si lamentava a noi proprio ora perché non stiamo usando questo 1409 01:08:12,580 --> 01:08:21,640 variabile, ma se l'ho fatto, per esempio, n è uguale uguale a, e m è uguale 1410 01:08:21,640 --> 01:08:26,849 uguale a, allora quale sarà succederà in questo caso? 1411 01:08:26,849 --> 01:08:28,830 Cosa sarebbe questo programma fare? 1412 01:08:28,830 --> 01:08:30,330 >> PUBBLICO: Mi chiedo solo come sarebbe - 1413 01:08:30,330 --> 01:08:31,550 >> LAUREN CARVALHO: Vuole solo per sapere come appare 1414 01:08:31,550 --> 01:08:34,189 come, penso, giusto? 1415 01:08:34,189 --> 01:08:36,819 Quindi prese uno, e poi ha preso il secondo. 1416 01:08:36,819 --> 01:08:41,279 1417 01:08:41,279 --> 01:08:43,069 >> Credo che dovremmo andare avanti, perché abbiamo un altro 1418 01:08:43,069 --> 01:08:44,689 slide show da fare prima - 1419 01:08:44,689 --> 01:08:46,269 vuoi tirare su la matematica? 1420 01:08:46,269 --> 01:08:47,558 >> LUCAS FREITAS: Sì, la matematica. 1421 01:08:47,558 --> 01:09:00,033 1422 01:09:00,033 --> 01:09:02,206 >> LAUREN CARVALHO: Dia me solo un secondo. 1423 01:09:02,206 --> 01:09:07,390 1424 01:09:07,390 --> 01:09:14,260 >> Ci sono alcuni numerica diversa variabili in C. Dati numerici in C 1425 01:09:14,260 --> 01:09:18,130 possono essere classificati in diversi tipi, e questi sono quelli che mai 1426 01:09:18,130 --> 01:09:19,570 vedere più spesso. 1427 01:09:19,570 --> 01:09:20,910 >> E int è un numero intero. 1428 01:09:20,910 --> 01:09:23,189 Non si può avere alcuna decimali. 1429 01:09:23,189 --> 01:09:27,754 In Appliance, ci vuole 32 bit per memorizzare un int. 1430 01:09:27,754 --> 01:09:30,450 >> Un galleggiante può avere decimali. 1431 01:09:30,450 --> 01:09:34,330 Ci vuole anche 32 bit per memorizzare un galleggiante in Appliance. 1432 01:09:34,330 --> 01:09:42,270 >> Un doppio è un numero con un decimale punto che prende 64 bit per memorizzare esso, 1433 01:09:42,270 --> 01:09:44,470 il che significa che si può solo avere maggiore precisione perché 1434 01:09:44,470 --> 01:09:46,426 è possibile avere più - 1435 01:09:46,426 --> 01:09:47,785 come si chiama questo? 1436 01:09:47,785 --> 01:09:48,640 >> LUCAS FREITAS: Sì, che è più. 1437 01:09:48,640 --> 01:09:52,140 >> LAUREN CARVALHO: Più posti dopo il punto decimale. 1438 01:09:52,140 --> 01:09:57,140 E una lunga lunga è un numero intero che prende i 64 bit per 1439 01:09:57,140 --> 01:09:58,395 essa dolente nella Appliance. 1440 01:09:58,395 --> 01:10:00,278 >> LUCAS FREITAS: Così può essere più grande di interi può essere. 1441 01:10:00,278 --> 01:10:03,320 1442 01:10:03,320 --> 01:10:08,380 >> LAUREN CARVALHO: La cosa su dati tipi in C è che ti dicono cosa 1443 01:10:08,380 --> 01:10:11,050 tipo di dati che è possibile memorizzare nella variabile. 1444 01:10:11,050 --> 01:10:15,860 Ti dicono come è possibile utilizzare questa variabile nel programma. 1445 01:10:15,860 --> 01:10:19,650 E 'molto importante tenere traccia solo di che tipo di dati si sta utilizzando, e se 1446 01:10:19,650 --> 01:10:23,070 si ha bisogno di cast da un tipo di dati a un altro, assicurarsi che si sa 1447 01:10:23,070 --> 01:10:25,250 esattamente ciò che accade quando colata avviene. 1448 01:10:25,250 --> 01:10:28,520 E vedrete un esempio più tardi in queste slides di un 1449 01:10:28,520 --> 01:10:31,490 errore che può verificarsi. 1450 01:10:31,490 --> 01:10:35,300 >> Diamo uno sguardo ad alcuni di matematica in C e pensare davvero con attenzione, credo, 1451 01:10:35,300 --> 01:10:38,470 su quello che sta succedendo quando questo la matematica è in corso. 1452 01:10:38,470 --> 01:10:43,552 Nella prima riga, ciò che è succede quando dichiaro x? 1453 01:10:43,552 --> 01:10:48,921 >> AUDIENCE: Stai permettendo x essere qualcosa? 1454 01:10:48,921 --> 01:10:49,700 >> LAUREN CARVALHO: Già. 1455 01:10:49,700 --> 01:10:54,040 Beh, sto veramente chiedendo il sistema operativo Sistema per 32 bit di memoria, giusto? 1456 01:10:54,040 --> 01:10:57,890 In che posso conservare un int, e Io vado a chiamare quel int x. 1457 01:10:57,890 --> 01:11:01,370 >> LUCAS FREITAS: andare Fondamentalmente in memoria e trovare un posto che ha 32 1458 01:11:01,370 --> 01:11:05,290 bit e dicendo, hey, voglio questo spazio, e sta andando ad essere chiamato x. 1459 01:11:05,290 --> 01:11:08,590 Quindi sei solo più o meno scoperta una casella nella vostra memoria per 1460 01:11:08,590 --> 01:11:10,440 memorizzare valori di x. 1461 01:11:10,440 --> 01:11:13,980 >> LAUREN CARVALHO: E poi inizializzare x, il che significa che ho appena memorizzare il 1462 01:11:13,980 --> 01:11:20,270 valore di 2 in quel luogo, quel pezzo della memoria, che abbiamo chiesto di funzionamento 1463 01:11:20,270 --> 01:11:21,860 sistema. 1464 01:11:21,860 --> 01:11:25,090 E qui quello che stiamo facendo è in realtà stiamo dichiarando e 1465 01:11:25,090 --> 01:11:29,060 inizializzazione y in una riga invece di in due righe, come abbiamo fatto qui, 1466 01:11:29,060 --> 01:11:33,960 che è anche un perfettamente bene, Siamo aggiungendo 1 x, e stiamo memorizzazione che 1467 01:11:33,960 --> 01:11:34,950 valore y. 1468 01:11:34,950 --> 01:11:39,360 >> LUCAS FREITAS: Quindi, in pratica ciò che questo linea fa, trova ora una casella per y, 1469 01:11:39,360 --> 01:11:41,990 e quindi il suo valore, la cosa che si sta andando a mettere dentro la scatola, è 1470 01:11:41,990 --> 01:11:43,800 sarà il valore di x più 1. 1471 01:11:43,800 --> 01:11:45,850 Così ha questa casella per y. 1472 01:11:45,850 --> 01:11:49,980 Si ottiene il valore di x, sembra qui, e vedere che è 2. 1473 01:11:49,980 --> 01:11:53,035 Messo lì, più 1, quindi mette a 3 lì. 1474 01:11:53,035 --> 01:11:54,290 Ritiene che senso? 1475 01:11:54,290 --> 01:11:55,780 Quindi y sarebbe 2 in questo caso. 1476 01:11:55,780 --> 01:11:58,993 1477 01:11:58,993 --> 01:12:00,770 >> LAUREN CARVALHO: Va bene, fresco. 1478 01:12:00,770 --> 01:12:06,010 Abbiamo visto qualche aggiunta, quindi cerchiamo di pensare ora sulla divisione in C. Qui sto 1479 01:12:06,010 --> 01:12:11,490 dichiarazione e inizializzazione di un float chiamata risposta e dividendo 1 per 10, 1480 01:12:11,490 --> 01:12:14,860 e poi sto stampando la risposta con due decimali. 1481 01:12:14,860 --> 01:12:18,800 E notare qui, nella mia dichiarazione printf, quando voglio stampare qualcosa a due 1482 01:12:18,800 --> 01:12:25,600 decimali,% .2 f è quello che voglio usare. 1483 01:12:25,600 --> 01:12:28,880 1484 01:12:28,880 --> 01:12:31,760 Quindi, il punto 2 è solo dicendo Ho bisogno di due posti dopo il 1485 01:12:31,760 --> 01:12:34,980 decimale stampato. 1486 01:12:34,980 --> 01:12:38,740 >> Ora, che cosa succederà se corro questo codice? 1487 01:12:38,740 --> 01:12:40,500 Qualcuno ha un'idea? 1488 01:12:40,500 --> 01:12:42,721 Che cosa sarebbe stampare? 1489 01:12:42,721 --> 01:12:45,010 >> LUCAS FREITAS: Quali sono ci aspettavamo di ottenere. 1490 01:12:45,010 --> 01:12:46,810 >> LAUREN CARVALHO: Cosa fare vogliamo, innanzitutto? 1491 01:12:46,810 --> 01:12:48,871 >> LUCAS FREITAS: [incomprensibile] 1492 01:12:48,871 --> 01:12:51,120 >> LAUREN CARVALHO: 0.1, sì. 1493 01:12:51,120 --> 01:12:52,325 Ma cosa stampare? 1494 01:12:52,325 --> 01:12:53,275 >> AUDIENCE: [incomprensibile] 1495 01:12:53,275 --> 01:12:56,760 >> LAUREN CARVALHO: Beh, no, in realtà. 1496 01:12:56,760 --> 01:13:01,400 Questo è quello che stavo parlando perché si necessario tenere molto attenti traccia di 1497 01:13:01,400 --> 01:13:02,550 i tipi di dati. 1498 01:13:02,550 --> 01:13:05,000 Quindi, che tipo di dati è questo? 1499 01:13:05,000 --> 01:13:06,250 È un int, giusto? 1500 01:13:06,250 --> 01:13:07,600 Non c'è decimale. 1501 01:13:07,600 --> 01:13:08,770 10 è anche un int. 1502 01:13:08,770 --> 01:13:09,930 Non c'è decimale. 1503 01:13:09,930 --> 01:13:15,770 >> Se divido un int da un int, ottengo un int che non è 0.1, perché int 1504 01:13:15,770 --> 01:13:18,630 non può avere cifre decimali, ma solo 0. 1505 01:13:18,630 --> 01:13:21,005 Perché un int tronca solo al largo delle cifre decimali. 1506 01:13:21,005 --> 01:13:24,280 >> LUCAS FREITAS: Così ogni volta che fate operazioni con interi, si sta andando a 1507 01:13:24,280 --> 01:13:25,990 ottenere un int come risposta. 1508 01:13:25,990 --> 01:13:28,930 Quindi, fondamentalmente, ciò che il computer sta facendo, è divide 1 per 1509 01:13:28,930 --> 01:13:31,520 10, e diventa 0,1. 1510 01:13:31,520 --> 01:13:34,870 Ma poi è come, aspetta, questo è dovrebbe essere un numero intero, quindi basta 1511 01:13:34,870 --> 01:13:37,045 ignorare la 0.1, quindi è ora solo 0. 1512 01:13:37,045 --> 01:13:41,782 >> LAUREN CARVALHO: Così, quando si stampa questo out, ottengo 0,00 anziché 0,10. 1513 01:13:41,782 --> 01:13:44,075 >> LUCAS FREITAS: Ritiene che senso? 1514 01:13:44,075 --> 01:13:45,530 >> LAUREN CARVALHO: Questo è il tipo del peccato, giusto? 1515 01:13:45,530 --> 01:13:47,290 >> LUCAS FREITAS: Quindi, come possiamo risolvere questo problema? 1516 01:13:47,290 --> 01:13:48,620 >> LAUREN CARVALHO: Diamo cercare di sistemare le cose. 1517 01:13:48,620 --> 01:13:51,570 1518 01:13:51,570 --> 01:13:54,810 Ecco un esempio di dove sono in realtà la colata 1 1519 01:13:54,810 --> 01:13:56,650 e il 10 per galleggia. 1520 01:13:56,650 --> 01:13:58,800 Così ora, 1 non è più un int. 1521 01:13:58,800 --> 01:14:00,020 1 è un float. 1522 01:14:00,020 --> 01:14:02,590 Tra l'altro, questo è solo la sintassi per quando si vuole lanciare da un 1523 01:14:02,590 --> 01:14:03,410 tipo di dati a un altro. 1524 01:14:03,410 --> 01:14:07,140 Si può semplicemente mettere il tipo di dati in tra parentesi e che hanno appena precedono 1525 01:14:07,140 --> 01:14:10,860 il valore che si sta colata. 1526 01:14:10,860 --> 01:14:15,800 >> Così qui, sto dividendo un galleggiante un galleggiante per ottenere una risposta galleggiante. 1527 01:14:15,800 --> 01:14:19,535 E sì, questo sarebbe in fatto stampare 0.10. 1528 01:14:19,535 --> 01:14:20,470 Ritiene che senso? 1529 01:14:20,470 --> 01:14:24,110 >> LUCAS FREITAS: Quindi tipo casting è appena conversione da un tipo all'altro. 1530 01:14:24,110 --> 01:14:29,460 Così galleggiano 1 è in realtà 1.000. 1531 01:14:29,460 --> 01:14:33,400 Non esattamente questo, ma è qualcosa con decimali 1532 01:14:33,400 --> 01:14:34,715 che in realtà è 1. 1533 01:14:34,715 --> 01:14:35,960 Ritiene che senso? 1534 01:14:35,960 --> 01:14:36,260 Sì? 1535 01:14:36,260 --> 01:14:40,990 >> AUDIENCE: cosa succede se hai fatto la risposta galleggiante è uguale a 1.0 diviso per 10? 1536 01:14:40,990 --> 01:14:43,940 >> LAUREN CARVALHO: Si sta effettivamente andando vedere che in diapositiva successiva. 1537 01:14:43,940 --> 01:14:47,150 Che in realtà è la nostra stessa diapositiva successiva. 1538 01:14:47,150 --> 01:14:50,740 Questo è in realtà un più bello tipo casting, credo. 1539 01:14:50,740 --> 01:14:53,470 Quindi, questi due sono galleggianti semplicemente natura del fatto che 1540 01:14:53,470 --> 01:14:54,926 avere cifre decimali. 1541 01:14:54,926 --> 01:14:55,300 Sì? 1542 01:14:55,300 --> 01:14:57,670 >> AUDIENCE: cosa succede se si ha [incomprensibile] 1543 01:14:57,670 --> 01:14:59,480 diviso 10? 1544 01:14:59,480 --> 01:15:02,270 >> LAUREN CARVALHO: In realtà un galleggiante diviso da un int realtà si dà una 1545 01:15:02,270 --> 01:15:03,670 galleggiante, in modo che avrebbe funzionato bene. 1546 01:15:03,670 --> 01:15:08,070 1547 01:15:08,070 --> 01:15:09,120 >> Aspetta, fa capire a tutti questo? 1548 01:15:09,120 --> 01:15:12,720 Perché questo sta per essere davvero grande affare in Pset1, in realtà. 1549 01:15:12,720 --> 01:15:13,130 Sì? 1550 01:15:13,130 --> 01:15:14,762 >> AUDIENCE: Potresti rapidamente andare oltre la parte rossa? 1551 01:15:14,762 --> 01:15:16,380 >> LAUREN CARVALHO: La parte rossa, sì. 1552 01:15:16,380 --> 01:15:17,250 Lucas, vuoi? 1553 01:15:17,250 --> 01:15:18,020 >> LUCAS FREITAS: OK. 1554 01:15:18,020 --> 01:15:20,570 Quindi ricorda che la percentuale è un segnaposto. 1555 01:15:20,570 --> 01:15:22,150 E 'come uno spazio vuoto. 1556 01:15:22,150 --> 01:15:26,240 Quindi cerchiamo di capire tutto che sta succedendo qui. 1557 01:15:26,240 --> 01:15:28,170 Percentuale significa che è un segnaposto. 1558 01:15:28,170 --> 01:15:33,640 Allora avete la f, il che significa che questo segnaposto è per un galleggiante. 1559 01:15:33,640 --> 01:15:38,870 L'ultima cosa che abbiamo qui è un 0,2, il che significa voglio avere due 1560 01:15:38,870 --> 01:15:42,410 decimali per il galleggiante. 1561 01:15:42,410 --> 01:15:48,510 >> Se ho appena avuto% f, che si metteranno un mucchio di cifre decimali. 1562 01:15:48,510 --> 01:15:54,170 Quindi posso solo mettere 0,2 o 0,1 o 0,5, o qualunque cosa, e sta andando a mettere che 1563 01:15:54,170 --> 01:15:55,950 numero di cifre decimali. 1564 01:15:55,950 --> 01:15:59,950 L'unica cosa è che se si mette come .100 O .1,000, in realtà non è 1565 01:15:59,950 --> 01:16:04,200 andando a mettere tutti quei decimali perché non ha abbastanza memoria 1566 01:16:04,200 --> 01:16:06,432 per avere quella precisione. 1567 01:16:06,432 --> 01:16:07,955 >> Tutte le altre domande? 1568 01:16:07,955 --> 01:16:08,450 Sì? 1569 01:16:08,450 --> 01:16:12,970 >> AUDIENCE: Così galleggiare appena permette di andare oltre interi? 1570 01:16:12,970 --> 01:16:13,720 >> LUCAS FREITAS: sì. 1571 01:16:13,720 --> 01:16:17,345 >> LAUREN CARVALHO: Beh, un galleggiante solo permette di avere decimali. 1572 01:16:17,345 --> 01:16:20,460 >> LUCAS FREITAS: Significa solo che si Ora è possibile avere numeri decimali. 1573 01:16:20,460 --> 01:16:25,728 >> AUDIENCE: perché dovremmo mai usare interi? 1574 01:16:25,728 --> 01:16:27,870 >> LUCAS FREITAS: Perché sarebbe si utilizza interi? 1575 01:16:27,870 --> 01:16:31,810 Forse se si sta contando 0-10, si desidera utilizzare effettivamente un numero intero. 1576 01:16:31,810 --> 01:16:33,370 Non è necessario utilizzare un galleggiante. 1577 01:16:33,370 --> 01:16:35,430 In alcune situazioni, non è necessario hanno in realtà - 1578 01:16:35,430 --> 01:16:37,040 >> LAUREN CARVALHO: Forse si non vogliono decimali. 1579 01:16:37,040 --> 01:16:38,600 >> LUCAS FREITAS: Forse tu non lo fai desidera utilizzare un galleggiante. 1580 01:16:38,600 --> 01:16:42,660 >> LAUREN CARVALHO: L'altra cosa è, ricordare, sia mettere un galleggiante e un int 1581 01:16:42,660 --> 01:16:46,170 prendere a 32 bit per memorizzare loro, e forse non si vuole sprecare bit per il 1582 01:16:46,170 --> 01:16:48,062 decimali. 1583 01:16:48,062 --> 01:16:49,750 >> LUCAS FREITAS: Già. 1584 01:16:49,750 --> 01:16:51,910 Così come, basta pensare a questo. 1585 01:16:51,910 --> 01:16:55,200 Hai 32 bit sia per un int e float. 1586 01:16:55,200 --> 01:16:59,400 Per un int, tutte quelle a 32 bit andare alla parte intera. 1587 01:16:59,400 --> 01:17:03,460 Se si utilizza un galleggiante con 32 bit, si avere una parte di questa memoria utilizzata 1588 01:17:03,460 --> 01:17:06,820 per il numero, per l'intero numero, e dall'altra di essere utilizzato per la 1589 01:17:06,820 --> 01:17:08,300 decimali. 1590 01:17:08,300 --> 01:17:12,370 Quindi questo significa che non si può arrivare a numeri molto grandi, con carri allegorici, perché 1591 01:17:12,370 --> 01:17:16,020 il galleggiante sta già utilizzando un sacco di memoria per i decimali. 1592 01:17:16,020 --> 01:17:17,014 Sì? 1593 01:17:17,014 --> 01:17:21,487 >> AUDIENCE: Quella prima risposta, che cosa esattamente sta facendo? 1594 01:17:21,487 --> 01:17:25,214 E 'impostazione del valore del flottante pari a quel segnaposto che è possibile 1595 01:17:25,214 --> 01:17:26,954 richiamarlo nella riga successiva? 1596 01:17:26,954 --> 01:17:28,942 Dice galleggiante risposta. 1597 01:17:28,942 --> 01:17:29,770 >> LUCAS FREITAS: Già. 1598 01:17:29,770 --> 01:17:37,200 Quindi, la risposta galleggiante significa che stai ricevendo ora un po secchio in memoria che 1599 01:17:37,200 --> 01:17:40,050 in possesso di un float, e che sta andando di essere chiamato risposta. 1600 01:17:40,050 --> 01:17:42,040 Ecco che cosa rispondere float fa. 1601 01:17:42,040 --> 01:17:44,720 >> E poi dici che dentro di questo, si sta andando a mettere 1602 01:17:44,720 --> 01:17:46,470 il risultato di questo. 1603 01:17:46,470 --> 01:17:52,610 Quindi stai andando a fare 1.0 diviso per 10.0, si ottiene 0,1, e poi si mette 1604 01:17:52,610 --> 01:17:53,490 che all'interno della risposta. 1605 01:17:53,490 --> 01:17:57,540 >> LAUREN CARVALHO: Così in una linea, siamo dichiarazione e l'inizializzazione di questo galleggiante 1606 01:17:57,540 --> 01:18:00,070 chiamato risposta. 1607 01:18:00,070 --> 01:18:04,470 >> LUCAS FREITAS: interessante notare che, sebbene questa è solo una riga, sta facendo 1608 01:18:04,470 --> 01:18:05,570 più operazioni. 1609 01:18:05,570 --> 01:18:08,800 E 'solo un modo di C locazione si utilizza meno codice. 1610 01:18:08,800 --> 01:18:12,310 E 'la stessa cosa del ternario operatore, come si può fare solo un 1611 01:18:12,310 --> 01:18:13,810 [Incomprensibile] in una riga. 1612 01:18:13,810 --> 01:18:18,860 In realtà facendo la stessa cosa facendo risposta galleggiante, punto e virgola, e 1613 01:18:18,860 --> 01:18:23,060 allora la risposta è uguale a questa, ma invece di che ti fai due righe per questo, 1614 01:18:23,060 --> 01:18:24,160 è come una scorciatoia. 1615 01:18:24,160 --> 01:18:24,520 Sì? 1616 01:18:24,520 --> 01:18:27,929 >> AUDIENCE: Quindi, se è stato eseguito questo, sarebbe 0,10? 1617 01:18:27,929 --> 01:18:30,120 >> LUCAS FREITAS: sì. 1618 01:18:30,120 --> 01:18:30,530 Sì? 1619 01:18:30,530 --> 01:18:34,540 >> AUDIENCE: è la risposta effettivamente il codice, o è solo il nome? 1620 01:18:34,540 --> 01:18:36,010 >> LAUREN CARVALHO: questo è in realtà codice. 1621 01:18:36,010 --> 01:18:37,750 Questo è quello che stiamo andando per citarne nostra variabile. 1622 01:18:37,750 --> 01:18:39,770 >> AUDIENCE: Quindi è solo un nome [incomprensibile]. 1623 01:18:39,770 --> 01:18:40,270 >> LAUREN CARVALHO: Già. 1624 01:18:40,270 --> 01:18:44,670 Avrei potuto dire float x è uguale a 1,0. 1625 01:18:44,670 --> 01:18:47,160 >> LUCAS FREITAS: Il fatto è che il nome della variabile è 1626 01:18:47,160 --> 01:18:48,400 qualcosa che si utilizza. 1627 01:18:48,400 --> 01:18:49,690 E 'importante per voi. 1628 01:18:49,690 --> 01:18:52,660 Per il programma attuale, l'unica cosa che conta è il valore che si 1629 01:18:52,660 --> 01:18:55,570 avere all'interno del secchio. 1630 01:18:55,570 --> 01:18:59,270 Il motivo per cui si dispone di variabili e nomi di variabili è così sapresti 1631 01:18:59,270 --> 01:19:01,910 quello che hai a che fare con, come che tipo di dati si è 1632 01:19:01,910 --> 01:19:03,040 accedendo alla volta. 1633 01:19:03,040 --> 01:19:07,580 Ma per il codice stesso, se si chiama esso risponde o domanda o nulla, 1634 01:19:07,580 --> 01:19:09,530 più o meno, non importa. 1635 01:19:09,530 --> 01:19:10,060 Non importa. 1636 01:19:10,060 --> 01:19:12,910 Finché sei coerente in ogni occorrenza e così si chiamano 1637 01:19:12,910 --> 01:19:13,620 qualcos'altro. 1638 01:19:13,620 --> 01:19:14,880 Sì? 1639 01:19:14,880 --> 01:19:17,208 >> AUDIENCE: Se le variabili andare oltre la funzione? 1640 01:19:17,208 --> 01:19:20,902 Come se si dovesse creare una staffa [Incomprensibile], potrebbe basta 1641 01:19:20,902 --> 01:19:21,806 [Incomprensibile] rispondere di nuovo? 1642 01:19:21,806 --> 01:19:22,550 >> LAUREN CARVALHO: No. 1643 01:19:22,550 --> 01:19:23,300 >> AUDIENCE: [incomprensibile] 1644 01:19:23,300 --> 01:19:24,200 >> LAUREN CARVALHO: No. 1645 01:19:24,200 --> 01:19:26,930 Sarebbe al di fuori dell'ambito di questa particolare variabile. 1646 01:19:26,930 --> 01:19:29,940 E in realtà, che una specie di interessante, perché quando abbiamo 1647 01:19:29,940 --> 01:19:33,010 cose come loop o se questi condizioni, se si dichiara una variabile 1648 01:19:33,010 --> 01:19:36,330 all'interno di un altro insieme di parentesi graffe, esiste davvero solo 1649 01:19:36,330 --> 01:19:39,800 all'interno di tali parentesi graffe. 1650 01:19:39,800 --> 01:19:43,088 >> AUDIENCE: Un'ultima nota su i [incomprensibile] galleggianti. 1651 01:19:43,088 --> 01:19:46,076 Perché si mai voglia di usare int? 1652 01:19:46,076 --> 01:19:49,562 Questo è più di una nota a margine di nulla, ma il computer è 1653 01:19:49,562 --> 01:19:53,048 significativamente migliore a gestire interi quello che è a galleggianti movimentazione. 1654 01:19:53,048 --> 01:19:55,040 E 'come un ordine di grandezza più veloce. 1655 01:19:55,040 --> 01:20:00,360 Quindi, se abbiamo appena gestito galleggianti solo, le cose sarebbero molto più lento. 1656 01:20:00,360 --> 01:20:03,080 >> LAUREN CARVALHO: In realtà, non sembra ad essere un problema con galleggianti. 1657 01:20:03,080 --> 01:20:06,400 >> LUCAS FREITAS: Tipo del motivo per che, si può pensare, è come in binario 1658 01:20:06,400 --> 01:20:08,480 è possibile rappresentare numeri interi mettendo 0 e di 1. 1659 01:20:08,480 --> 01:20:09,980 >> LAUREN CARVALHO: Ecco la prossima cosa. 1660 01:20:09,980 --> 01:20:10,480 >> LUCAS FREITAS: OK. 1661 01:20:10,480 --> 01:20:10,740 Impressionante. 1662 01:20:10,740 --> 01:20:11,480 >> LAUREN CARVALHO: Just tenere quel pensiero. 1663 01:20:11,480 --> 01:20:13,800 >> LUCAS FREITAS: OK, io racconterò più tardi. 1664 01:20:13,800 --> 01:20:16,920 >> LAUREN CARVALHO: Prima di arrivare a ciò che Lucas ha appena detto, operatore 1665 01:20:16,920 --> 01:20:17,420 la precedenza. 1666 01:20:17,420 --> 01:20:18,220 Questo è il senso comune. 1667 01:20:18,220 --> 01:20:20,830 Voi ragazzi avete fatto abbastanza. 1668 01:20:20,830 --> 01:20:24,705 Quindi, solo se c'è qualcosa in parentesi, accadrà prima. 1669 01:20:24,705 --> 01:20:27,970 E 'la moltiplicazione ha la precedenza over Inoltre, 1670 01:20:27,970 --> 01:20:30,330 sottrazione, cose del genere. 1671 01:20:30,330 --> 01:20:34,700 Quindi, in realtà, appena qualcuno vuole dimmi cosa numero uno in realtà 1672 01:20:34,700 --> 01:20:36,674 valuta per? 1673 01:20:36,674 --> 01:20:37,638 >> AUDIENCE: 27. 1674 01:20:37,638 --> 01:20:39,090 >> LAUREN CARVALHO: 27? 1675 01:20:39,090 --> 01:20:39,550 Già. 1676 01:20:39,550 --> 01:20:41,975 >> LUCAS FREITAS: Faccio caramelle alle persone. 1677 01:20:41,975 --> 01:20:42,850 >> LAUREN CARVALHO: Va bene. 1678 01:20:42,850 --> 01:20:44,100 Che dire di numero due? 1679 01:20:44,100 --> 01:20:46,880 1680 01:20:46,880 --> 01:20:48,340 Che dire di numero due? 1681 01:20:48,340 --> 01:20:49,280 >> AUDIENCE: 22. 1682 01:20:49,280 --> 01:20:50,680 >> LAUREN CARVALHO: 22, sì. 1683 01:20:50,680 --> 01:20:51,570 Non so che ha ottenuto questo. 1684 01:20:51,570 --> 01:20:52,694 Numero tre? 1685 01:20:52,694 --> 01:20:54,050 >> AUDIENCE: 10. 1686 01:20:54,050 --> 01:20:55,300 >> LAUREN CARVALHO: 10, sì. 1687 01:20:55,300 --> 01:20:58,150 1688 01:20:58,150 --> 01:20:58,490 Freddo. 1689 01:20:58,490 --> 01:21:01,280 Così modulo. 1690 01:21:01,280 --> 01:21:03,700 Lucas, vuoi spiegare modulo? 1691 01:21:03,700 --> 01:21:07,150 >> LUCAS FREITAS: Modulo è questo operatore che è in realtà molto utile per una 1692 01:21:07,150 --> 01:21:09,470 mucchio di problemi. 1693 01:21:09,470 --> 01:21:15,270 Se faccio 55 modulo 10, cosa fa questo diciamo che voglio 1694 01:21:15,270 --> 01:21:16,970 dividere 55 per 10. 1695 01:21:16,970 --> 01:21:18,240 Che cosa ottengo? 1696 01:21:18,240 --> 01:21:21,380 Si sente come se sto in realtà solo facendo la divisione, qual è la 1697 01:21:21,380 --> 01:21:22,450 prima volta che ho avuto il numero intero? 1698 01:21:22,450 --> 01:21:23,190 >> PUBBLICO: 5. 1699 01:21:23,190 --> 01:21:24,080 >> LUCAS FREITAS: 5. 1700 01:21:24,080 --> 01:21:26,230 E poi il resto è 5, giusto? 1701 01:21:26,230 --> 01:21:29,250 Così è come 5 volte 10 più 5. 1702 01:21:29,250 --> 01:21:35,570 Fondamentalmente, ciò modulo fa, si cerca di dividere questo numero per questo, e 1703 01:21:35,570 --> 01:21:37,440 vede quanto è il resto della divisione. 1704 01:21:37,440 --> 01:21:40,080 >> LAUREN CARVALHO: Quindi basta restituisce il resto. 1705 01:21:40,080 --> 01:21:41,920 Così il numero uno è quello che? 1706 01:21:41,920 --> 01:21:42,560 5. 1707 01:21:42,560 --> 01:21:43,336 Numero due? 1708 01:21:43,336 --> 01:21:44,150 >> AUDIENCE: 3. 1709 01:21:44,150 --> 01:21:44,934 >> LAUREN CARVALHO: 3. 1710 01:21:44,934 --> 01:21:46,240 Numero tre? 1711 01:21:46,240 --> 01:21:47,190 0. 1712 01:21:47,190 --> 01:21:48,410 E quattro è 1. 1713 01:21:48,410 --> 01:21:48,665 Esattamente. 1714 01:21:48,665 --> 01:21:49,915 >> LUCAS FREITAS: semplice, giusto? 1715 01:21:49,915 --> 01:21:54,270 1716 01:21:54,270 --> 01:21:56,560 >> LAUREN CARVALHO: Perché non saltiamo questo solo perché in realtà non hanno 1717 01:21:56,560 --> 01:21:59,780 tempo, e la gente sembra capire. 1718 01:21:59,780 --> 01:22:03,330 Quindi, ecco quello che Lucas era solo parlando. 1719 01:22:03,330 --> 01:22:08,030 >> LUCAS FREITAS: Un altro motivo per cui ho userebbe int invece di carri allegorici fa 1720 01:22:08,030 --> 01:22:10,840 che galleggianti sono molto imprecisi. 1721 01:22:10,840 --> 01:22:12,720 E perché sono imprecise? 1722 01:22:12,720 --> 01:22:17,140 David ha detto che per rappresentare un intero, per esempio, usiamo 0 e 1723 01:22:17,140 --> 01:22:17,810 1, giusto? 1724 01:22:17,810 --> 01:22:22,370 E poi in fondo fare il moltiplicazione, fare tutte quelle 1725 01:22:22,370 --> 01:22:30,000 operazioni di sapere quale numero decimale avete al posto del binario. 1726 01:22:30,000 --> 01:22:33,040 >> Cosa succede ora se provo a mettere punti decimali? 1727 01:22:33,040 --> 01:22:37,680 In realtà, per esempio, se ho il numero come 3.33333? 1728 01:22:37,680 --> 01:22:40,250 Ci si sente come 10 su 3. 1729 01:22:40,250 --> 01:22:44,950 Come faccio a memorizzare tutti i 3 è che ho dopo? 1730 01:22:44,950 --> 01:22:47,120 E 'davvero difficile, giusto? 1731 01:22:47,120 --> 01:22:49,580 Non si può semplicemente dire al computer, hey, ho un 3, e 1732 01:22:49,580 --> 01:22:50,520 allora lo fai sempre. 1733 01:22:50,520 --> 01:22:52,810 In realtà il computer non è abbastanza intelligente per questo. 1734 01:22:52,810 --> 01:22:58,300 >> Quindi, in pratica tutti i tuoi computer non è che cerca di mettere il numero di cifre 1735 01:22:58,300 --> 01:23:00,950 si può fino a la memoria che hai. 1736 01:23:00,950 --> 01:23:05,890 Quindi diciamo che sta andando a dire 3,3333, e il gioco è fatto. 1737 01:23:05,890 --> 01:23:10,690 Quindi non è in grado di esprimere effettivamente esattamente ciò che il galleggiante sia. 1738 01:23:10,690 --> 01:23:13,240 >> LAUREN CARVALHO: Abbiamo un numero finito di bit, il che significa che non 1739 01:23:13,240 --> 01:23:17,910 ogni numero decimale sarà in grado di essere riprodotti in modo preciso. 1740 01:23:17,910 --> 01:23:24,910 E così in questo esempio, se vogliamo stampare 0.1, ora siamo di stampa 1741 01:23:24,910 --> 01:23:26,475 su 20 posti. 1742 01:23:26,475 --> 01:23:30,250 >> LUCAS FREITAS: Proprio come dicevo voi ragazzi, si potrebbe mettere un qualsiasi numero. 1743 01:23:30,250 --> 01:23:36,520 Ma se hai appena fatto i due luoghi, si otterrebbe 0,10, ma se si mette 20 1744 01:23:36,520 --> 01:23:43,630 luoghi, sta andando a mostrare un mazzo s di ', perché questo è ciò che si può mettere 1745 01:23:43,630 --> 01:23:45,720 nella memoria, giusto? 1746 01:23:45,720 --> 01:23:48,800 >> Ma proprio qui, fino a 0, e poi è solo mettere un 1747 01:23:48,800 --> 01:23:50,030 mucchio di numeri casuali. 1748 01:23:50,030 --> 01:23:52,590 Questo è un po 'come alcuni - 1749 01:23:52,590 --> 01:23:56,190 >> LAUREN CARVALHO: Questo è perché siamo non in grado di rappresentare questa decimale 1750 01:23:56,190 --> 01:23:58,320 proprio con il numero di bit che abbiamo. 1751 01:23:58,320 --> 01:23:59,730 >> LUCAS FREITAS: E poi l' computer è fondamentalmente 1752 01:23:59,730 --> 01:24:01,470 dando un numero di spazzatura. 1753 01:24:01,470 --> 01:24:04,530 Questo non è in realtà il valore del numero. 1754 01:24:04,530 --> 01:24:08,242 >> PUBBLICO: E 'il più vicino si può ottenere [incomprensibile] 1755 01:24:08,242 --> 01:24:09,613 utilizzando il [incomprensibile]. 1756 01:24:09,613 --> 01:24:12,685 1757 01:24:12,685 --> 01:24:18,830 >> LAUREN CARVALHO: Quindi l'implicazione di questo è che diciamo che invece di 1758 01:24:18,830 --> 01:24:27,680 essendo 0.100014, qualunque sia, E se fosse 0,0999 - 1759 01:24:27,680 --> 01:24:30,470 bene, OK. 1760 01:24:30,470 --> 01:24:38,280 Facciamo finta che la risposta reale per questo era 0,9999999. 1761 01:24:38,280 --> 01:24:40,740 Questo è molto vicino a 1, ma non è esattamente 1. 1762 01:24:40,740 --> 01:24:42,840 E '0,99999. 1763 01:24:42,840 --> 01:24:48,140 >> Questo significa che se io prendo 0.999, e io caccio a un int, ottengo 0. 1764 01:24:48,140 --> 01:24:49,460 Non capisco 1. 1765 01:24:49,460 --> 01:24:53,050 >> LUCAS FREITAS: Perché ricordate, colata da float a int, basta 1766 01:24:53,050 --> 01:24:54,880 ignorare tutti i decimali. 1767 01:24:54,880 --> 01:24:56,400 Basta ignorarli. 1768 01:24:56,400 --> 01:25:00,170 Non c'è cosa come arrotondamento o correndo verso il basso quando si typecast. 1769 01:25:00,170 --> 01:25:03,310 In realtà, c'è questa funzione che fa arrotondamento, che è molto 1770 01:25:03,310 --> 01:25:08,840 importante, ma basta pensare che quando fate fusione di caratteri, è solo 1771 01:25:08,840 --> 01:25:09,720 andando a cancellare tutto. 1772 01:25:09,720 --> 01:25:13,970 Quindi, anche se si dispone di 0,99999, sta andando a solo dare 0 se typecast 1773 01:25:13,970 --> 01:25:14,800 [Incomprensibile] un numero intero. 1774 01:25:14,800 --> 01:25:17,480 >> LAUREN CARVALHO: Quindi basta essere veramente consapevoli punto di galleggianti in precisione, 1775 01:25:17,480 --> 01:25:20,410 soprattutto quando si inizia utilizzare galleggianti in Pset1. 1776 01:25:20,410 --> 01:25:22,790 Ma la passeggiata attraverso dovrebbe si avvertono anche di questo. 1777 01:25:22,790 --> 01:25:26,100 >> LUCAS FREITAS: E in realtà è davvero difficile, per esempio, se l'ho fatto 1778 01:25:26,100 --> 01:25:31,570 risposta galleggiante 1 equivale a 1,0 su 10, e poi galleggiano risposta 2 1779 01:25:31,570 --> 01:25:35,540 equivale a 10,0 su 100,0. 1780 01:25:35,540 --> 01:25:36,890 Essi sono lo stesso numero, giusto? 1781 01:25:36,890 --> 01:25:38,540 0.1, giusto? 1782 01:25:38,540 --> 01:25:41,700 1 su 10 o 10 su 100. 1783 01:25:41,700 --> 01:25:46,360 Ma ora se provo a vedere l'uguaglianza, come se la risposta 1 è uguale a rispondere 2, 1784 01:25:46,360 --> 01:25:49,300 forse non sta realmente succedendo essere la stessa cosa. 1785 01:25:49,300 --> 01:25:50,720 Così galleggianti sono un po 'come quella. 1786 01:25:50,720 --> 01:25:51,970 Sono come fare uguaglianza. 1787 01:25:51,970 --> 01:25:55,136