1 00:00:00,000 --> 00:00:11,050 2 00:00:11,050 --> 00:00:13,351 >> ROB BOWDEN: Questa è la sezione più comodo, 3 00:00:13,351 --> 00:00:16,309 ma questo non significa che se si sentire come se non si è più a suo agio 4 00:00:16,309 --> 00:00:18,420 non sarà possibile imparare le cose qui. 5 00:00:18,420 --> 00:00:20,600 Quindi cerchiamo di iniziare. 6 00:00:20,600 --> 00:00:22,819 Hai diapositive andando a destra in cose. 7 00:00:22,819 --> 00:00:24,360 Sto per prendere proprio in questo momento? 8 00:00:24,360 --> 00:00:25,680 9 00:00:25,680 --> 00:00:26,450 Commutazione computer portatili. 10 00:00:26,450 --> 00:00:30,470 11 00:00:30,470 --> 00:00:32,950 >> ALLISON: Non si vuole presentarsi, Rob? 12 00:00:32,950 --> 00:00:34,090 >> ROB BOWDEN: Oh, io sono Rob. 13 00:00:34,090 --> 00:00:35,182 14 00:00:35,182 --> 00:00:37,470 Questo è il mio quinto anno TF-ing CS50. 15 00:00:37,470 --> 00:00:38,760 16 00:00:38,760 --> 00:00:39,650 >> GABRIEL: Io sono Gabriele. 17 00:00:39,650 --> 00:00:41,610 Io sono responsabile di TF di CS50. 18 00:00:41,610 --> 00:00:44,009 Ero TF l'anno scorso e quest'anno. 19 00:00:44,009 --> 00:00:46,675 ALLISON: E io sono Alison, e questo è il mio secondo anno TF-ing CS50. 20 00:00:46,675 --> 00:00:48,510 21 00:00:48,510 --> 00:00:50,825 >> ROB BOWDEN: Va bene, così questa cosa a sinistra, 22 00:00:50,825 --> 00:00:52,250 Speriamo che hai visto prima. 23 00:00:52,250 --> 00:00:54,112 Se non perché si scaricarlo per te stesso, 24 00:00:54,112 --> 00:00:55,570 si dovrebbe avere visto in conferenza. 25 00:00:55,570 --> 00:00:56,590 26 00:00:56,590 --> 00:01:01,320 Quindi questo è l'apparecchio CS50, e lui ha fatto un po 'di una descrizione di esso 27 00:01:01,320 --> 00:01:01,880 in conferenza. 28 00:01:01,880 --> 00:01:06,890 Ma in fondo è solo voi sono in esecuzione di un esercizio 29 00:01:06,890 --> 00:01:10,550 sistema all'interno della vostra operativo sistema in modo che possiamo darvi 30 00:01:10,550 --> 00:01:12,540 programmi senza bisogno di di cui preoccuparsi, oh è questo 31 00:01:12,540 --> 00:01:15,989 andare a lavorare sia in ambiente Windows e Mac, o se qualcuno di voi 32 00:01:15,989 --> 00:01:17,280 sono già usando Linux, Linux. 33 00:01:17,280 --> 00:01:18,532 34 00:01:18,532 --> 00:01:20,240 E 'solo dovuto essere un gioco comune 35 00:01:20,240 --> 00:01:23,010 campo in modo tutti hanno la stesso ambiente esatto. 36 00:01:23,010 --> 00:01:25,344 >> Quindi, se non si dispone di scaricato questo già, 37 00:01:25,344 --> 00:01:28,510 è necessario scaricarlo, perché sei andando ad avere bisogno per il problema insieme. 38 00:01:28,510 --> 00:01:32,335 Ed è due gigabyte scaricare, quindi potrebbe richiedere un po '. 39 00:01:32,335 --> 00:01:33,780 Sul Harvard che andrà veloce. 40 00:01:33,780 --> 00:01:35,870 41 00:01:35,870 --> 00:01:37,440 Apparecchio così CS50. 42 00:01:37,440 --> 00:01:41,980 >> Ora, in principio, che andremo a parlare solo un mucchio di linea di comando 43 00:01:41,980 --> 00:01:46,880 roba, e così con questo, intendo lavorare in questo piccolo ambiente qui. 44 00:01:46,880 --> 00:01:53,230 E notare tutte le cose Io dico proprio qui in questo momento 45 00:01:53,230 --> 00:01:56,900 stanno andando a lavorare, se sei dentro di un terminale interno della macchina, 46 00:01:56,900 --> 00:02:00,790 o se si è all'interno di la finestra del terminale gedit 47 00:02:00,790 --> 00:02:02,090 all'interno dell'apparecchio. 48 00:02:02,090 --> 00:02:03,770 Quindi questi ambienti sono identici. 49 00:02:03,770 --> 00:02:04,940 50 00:02:04,940 --> 00:02:07,270 >> Ma ho intenzione di andare un terzo percorso. 51 00:02:07,270 --> 00:02:12,200 E notare qui questo poco indirizzo IP proprio qui. 52 00:02:12,200 --> 00:02:15,940 Quindi non c'è bisogno di fare questo, ma questo IP 53 00:02:15,940 --> 00:02:19,700 address-- ora se I-- eccezione è bloccato da questa cosa. 54 00:02:19,700 --> 00:02:22,790 55 00:02:22,790 --> 00:02:27,000 OK, in modo che l'indirizzo IP sopra in un terminale 56 00:02:27,000 --> 00:02:31,090 qui-- così questo terminale su ecco un terminale nel mio Mac. 57 00:02:31,090 --> 00:02:34,540 Quindi questo è in alcun modo attualmente propri dell'apparecchio a tutti. 58 00:02:34,540 --> 00:02:39,360 E se siete su Windows, allora sei andando ad avere bisogno di scaricare qualcosa 59 00:02:39,360 --> 00:02:44,430 specificamente per questo, in particolare le persone tendono utilizzare Putty, P-U-T-T-Y. 60 00:02:44,430 --> 00:02:50,700 >> Così che cosa ho intenzione di fare è di tipo SSH e quindi tale indirizzo IP. 61 00:02:50,700 --> 00:02:54,030 Beh, jharvard a tale indirizzo IP. 62 00:02:54,030 --> 00:03:00,150 Così 192.168.24.220. 63 00:03:00,150 --> 00:03:02,127 Questo messaggio spaventoso, lo ignorano. 64 00:03:02,127 --> 00:03:02,710 Basta digitare sì. 65 00:03:02,710 --> 00:03:04,550 66 00:03:04,550 --> 00:03:06,030 Questo è CS50 in una scatola. 67 00:03:06,030 --> 00:03:07,460 Si chiede la password. 68 00:03:07,460 --> 00:03:11,910 >> E così in molti di questi contesti in cui chiede la password, [incomprensibile]. 69 00:03:11,910 --> 00:03:15,670 Abbiamo un sacco di domande in cui si dice che non è in realtà la digitazione. 70 00:03:15,670 --> 00:03:20,011 Esso non mostra i caratteri di la password durante la digitazione, se non altro, 71 00:03:20,011 --> 00:03:23,010 per una funzione di protezione, perché se qualcuno sta cercando dietro le spalle 72 00:03:23,010 --> 00:03:25,870 e vedono star star star star, poi si 73 00:03:25,870 --> 00:03:28,640 sapere che la password è di quattro caratteri. 74 00:03:28,640 --> 00:03:32,660 Così l'idea è che vi chiederà voi per la vostra password, tipo. 75 00:03:32,660 --> 00:03:34,490 Non è intenzione di mostrare i personaggi, 76 00:03:34,490 --> 00:03:36,090 ma in realtà è loro accettazione. 77 00:03:36,090 --> 00:03:39,210 In questo caso, ogni volta che si mai visto una richiesta di password 78 00:03:39,210 --> 00:03:42,280 trattare con l'apparecchio, la la password sarà cremisi. 79 00:03:42,280 --> 00:03:43,270 Così cremisi. 80 00:03:43,270 --> 00:03:44,730 81 00:03:44,730 --> 00:03:50,550 >> Ed ora qui all'interno di questa finestra che è in mio Mac, 82 00:03:50,550 --> 00:03:54,120 Io sono fondamentalmente avendo la stessa visione precisa 83 00:03:54,120 --> 00:03:57,040 come all'interno di un terminale nell'apparecchio. 84 00:03:57,040 --> 00:03:58,470 Quindi non c'è bisogno di fare questo. 85 00:03:58,470 --> 00:04:01,300 Si può fare tutto quello che vogliono interno della macchina. 86 00:04:01,300 --> 00:04:05,140 Ho quasi mai in realtà fare nulla nella macchina. 87 00:04:05,140 --> 00:04:09,440 Ho quasi sempre che minimizzare e ora Sto lavorando SSH all'interno dell'apparecchio. 88 00:04:09,440 --> 00:04:11,480 89 00:04:11,480 --> 00:04:14,180 >> Semmai, se si avere un computer lento, 90 00:04:14,180 --> 00:04:15,820 si può notare una differenza. 91 00:04:15,820 --> 00:04:18,839 Lo faccio perché preferisco questa finestra di terminale. 92 00:04:18,839 --> 00:04:20,881 Ha alcune caratteristiche come Posso dividere la finestra, 93 00:04:20,881 --> 00:04:22,672 e ora posso SSH in attraverso l'apparecchio. 94 00:04:22,672 --> 00:04:24,105 Ho avuto due SSH sta succedendo in una sola volta. 95 00:04:24,105 --> 00:04:28,030 96 00:04:28,030 --> 00:04:32,250 Se il computer è particolarmente lento e si sta lavorando all'interno dell'apparecchio, 97 00:04:32,250 --> 00:04:35,200 e ti rendi conto questo è davvero lag, qualunque sia. 98 00:04:35,200 --> 00:04:38,220 Tende ad essere molto più veloce se siete SSH-ed in. 99 00:04:38,220 --> 00:04:40,960 Ma per il resto si può lavorare in entrambi i modi. 100 00:04:40,960 --> 00:04:42,388 >> PUBBLICO: Cosa significa SSH? 101 00:04:42,388 --> 00:04:43,820 102 00:04:43,820 --> 00:04:47,479 >> ROB BOWDEN: coperture sicure, una cosa del genere? 103 00:04:47,479 --> 00:04:48,270 Che cosa significa SSH significa? 104 00:04:48,270 --> 00:04:54,214 105 00:04:54,214 --> 00:04:55,130 GABRIEL: Secure shell. 106 00:04:55,130 --> 00:04:56,463 ALLISON: E 'solo shell sicura. 107 00:04:56,463 --> 00:04:57,720 ROB BOWDEN: Secure shell. 108 00:04:57,720 --> 00:05:03,700 Si tratta di un protocollo che you-- è un protocollo di sicurezza, in modo crittografato. 109 00:05:03,700 --> 00:05:06,850 La gente non può curiosare nella rete e vedi quello che stai dicendo a nulla 110 00:05:06,850 --> 00:05:08,120 sei SSH-ed a. 111 00:05:08,120 --> 00:05:12,900 Ed infatti, nel anticato giorni di CS50, quindi nel 2009 112 00:05:12,900 --> 00:05:19,300 quando ero una matricola, il modo in cui hai lavorato sui set di problemi CS50, 113 00:05:19,300 --> 00:05:22,490 si era SSH-ed di alcuni server che abbiamo dato di accedere a, 114 00:05:22,490 --> 00:05:23,497 e hai lavorato lì. 115 00:05:23,497 --> 00:05:25,330 Quindi non ha avuto questo apparecchio grafica. 116 00:05:25,330 --> 00:05:26,160 Non c'era bisogno gedit. 117 00:05:26,160 --> 00:05:28,930 Non c'era bisogno di tutte queste cose che si potrebbe visivamente punta e clicca. 118 00:05:28,930 --> 00:05:30,346 Si doveva lavorare in questa interfaccia. 119 00:05:30,346 --> 00:05:31,580 120 00:05:31,580 --> 00:05:33,716 Preferisco lavorare in questa interfaccia. 121 00:05:33,716 --> 00:05:36,090 Quindi, parte di ciò che stiamo andando per andare a più di adesso 122 00:05:36,090 --> 00:05:39,560 sono un gruppo di comandi che si dovrebbe 123 00:05:39,560 --> 00:05:42,095 iniziare a prendere confidenza con come si va avanti nel corso. 124 00:05:42,095 --> 00:05:43,190 125 00:05:43,190 --> 00:05:45,790 E onestamente, una volta che si abituarsi a loro, 126 00:05:45,790 --> 00:05:48,220 è molto più veloce di lavorare in questo ambiente 127 00:05:48,220 --> 00:05:53,690 di quello che è di lavorare con finder, trascinando e facendo clic cose. 128 00:05:53,690 --> 00:05:55,340 129 00:05:55,340 --> 00:05:57,210 >> Così eccoci qui. 130 00:05:57,210 --> 00:06:01,779 Ora ho solo SSH-ed in, e così il default luogo-- 131 00:06:01,779 --> 00:06:04,820 ho visto alcuni di questi comandi in classe, ma andremo su tutti ancora una volta. 132 00:06:04,820 --> 00:06:08,060 La posizione predefinita siamo a è la home directory. 133 00:06:08,060 --> 00:06:11,520 E directory, solo un'altra parola per la cartella. 134 00:06:11,520 --> 00:06:13,310 Quindi siamo nella home directory. 135 00:06:13,310 --> 00:06:15,889 Digitare ls, elencare i file in questa directory. 136 00:06:15,889 --> 00:06:17,430 Evidentemente ho creato un blah.c prima. 137 00:06:17,430 --> 00:06:19,120 138 00:06:19,120 --> 00:06:20,472 Così abbiamo una directory del desktop. 139 00:06:20,472 --> 00:06:21,930 Si nota l'evidenziazione della sintassi? 140 00:06:21,930 --> 00:06:27,400 141 00:06:27,400 --> 00:06:32,900 L'evidenziazione azzurro indica una directory e il bianco dritto 142 00:06:32,900 --> 00:06:34,380 indica solo un normale file. 143 00:06:34,380 --> 00:06:35,410 144 00:06:35,410 --> 00:06:37,690 Quindi ci stanno per essere alcuni altri colori che vedete. 145 00:06:37,690 --> 00:06:41,240 Un file eseguibile è destinata probabilmente essere verde o qualcosa del genere. 146 00:06:41,240 --> 00:06:44,820 OK, quindi siamo nella home directory. 147 00:06:44,820 --> 00:06:48,970 >> Ora, se io voglio andare in un altro directory, cd è il comando che voglio. 148 00:06:48,970 --> 00:06:52,720 Quindi cambiare directory, e poi si passare il nome della directory 149 00:06:52,720 --> 00:06:54,020 che si vuole andare in. 150 00:06:54,020 --> 00:06:55,780 Quindi qui abbiamo quattro opzioni. 151 00:06:55,780 --> 00:07:03,397 Posso andare in download, e ora vediamo qui ha aggiornato questa parentesi 152 00:07:03,397 --> 00:07:04,480 dire che sono in ~ / download. 153 00:07:04,480 --> 00:07:05,620 154 00:07:05,620 --> 00:07:06,800 >> Così che cosa è tilde? 155 00:07:06,800 --> 00:07:10,640 E 'una scorciatoia per la vostra home directory. 156 00:07:10,640 --> 00:07:15,260 Quindi, quasi tutto quello che fai è andare a essere in rapporto al tuo home directory, 157 00:07:15,260 --> 00:07:20,620 e pwd è solo un comando Io uso una volta in un anno che 158 00:07:20,620 --> 00:07:22,420 stampa solo la directory corrente. 159 00:07:22,420 --> 00:07:25,730 E così che vedete qui che ~ / Download risolve veramente 160 00:07:25,730 --> 00:07:26,896 a / home / jharvard / download. 161 00:07:26,896 --> 00:07:29,320 162 00:07:29,320 --> 00:07:32,230 Quindi, / home / jharvard è la mia home directory. 163 00:07:32,230 --> 00:07:33,700 164 00:07:33,700 --> 00:07:39,400 >> Così possiamo cd dot dot. 165 00:07:39,400 --> 00:07:47,800 Ora dot dot è una directory speciale che si riferisce sempre a quella directory up. 166 00:07:47,800 --> 00:07:51,730 Quindi, se mi trovo in ~ / download, quindi cd dot dot sta per portarmi a tilde. 167 00:07:51,730 --> 00:07:52,950 168 00:07:52,950 --> 00:07:55,490 Cosa pensiamo cd dot dot sta per portarmi a ora? 169 00:07:55,490 --> 00:07:58,740 170 00:07:58,740 --> 00:08:00,570 Mi porterò a / home. 171 00:08:00,570 --> 00:08:04,450 Così tilde da directory di lavoro di stampa, Sono ora / home / jharvard. 172 00:08:04,450 --> 00:08:06,060 173 00:08:06,060 --> 00:08:08,820 directory uno fino a quello, ora si dice qui / home. 174 00:08:08,820 --> 00:08:12,330 175 00:08:12,330 --> 00:08:17,180 >> Ora cd dot dot. 176 00:08:17,180 --> 00:08:20,910 Ora sono nella directory principale, e non si può farlo di nuovo. 177 00:08:20,910 --> 00:08:23,340 Devi solo stare in directory radice per sempre. 178 00:08:23,340 --> 00:08:26,700 La directory principale ha un sacco di cose che, se si vuole guardare in, 179 00:08:26,700 --> 00:08:27,410 puoi. 180 00:08:27,410 --> 00:08:29,700 Ad esempio, se vado in bin, che contiene 181 00:08:29,700 --> 00:08:35,789 tutti questi binari, come ls, e cd, e tutte queste cose. 182 00:08:35,789 --> 00:08:38,630 Così questi comandi devono esistere da qualche parte nel sistema, 183 00:08:38,630 --> 00:08:40,820 ed è nella directory / bin. 184 00:08:40,820 --> 00:08:44,530 Ma quasi tutto quello che fai è sta per essere dalla vostra home directory. 185 00:08:44,530 --> 00:08:49,490 E cd senza argomenti di sorta, si potrebbe dire cd ~, non è necessario. 186 00:08:49,490 --> 00:08:51,810 cd sta per portare voi torna alla propria directory home. 187 00:08:51,810 --> 00:08:53,170 188 00:08:53,170 --> 00:08:54,230 >> Un ultimo. 189 00:08:54,230 --> 00:09:00,200 cd - sta per portare indietro a l'ultima directory che eri in. 190 00:09:00,200 --> 00:09:04,080 Così ho cd'd due volte di fila, quindi il mio ultima directory è la directory home. 191 00:09:04,080 --> 00:09:11,520 Se vado a tagliare bin, e ora andiamo su e in utente. 192 00:09:11,520 --> 00:09:12,550 193 00:09:12,550 --> 00:09:13,280 Quota utente. 194 00:09:13,280 --> 00:09:14,840 195 00:09:14,840 --> 00:09:15,940 Andiamo a quota utente. 196 00:09:15,940 --> 00:09:17,140 Ora sono ora in azione utente. 197 00:09:17,140 --> 00:09:19,320 cd -, nel cestino. 198 00:09:19,320 --> 00:09:22,980 Così questo diventa particolarmente utile quando si have-- e ti alternare. 199 00:09:22,980 --> 00:09:25,660 Così condivisione utente, indietro bin, bin quota. 200 00:09:25,660 --> 00:09:27,250 >> Così questo diventa utile. 201 00:09:27,250 --> 00:09:33,150 Si possono trovare a dover molti, molte, molte directory nidificate. 202 00:09:33,150 --> 00:09:37,370 E si vuole fare qualcosa molto velocemente in una directory superiore. 203 00:09:37,370 --> 00:09:40,330 Si va in quella directory, fare modifiche e cose del genere, 204 00:09:40,330 --> 00:09:42,400 e ora si vuole andare indietro a dove eravate. 205 00:09:42,400 --> 00:09:43,660 cd -. 206 00:09:43,660 --> 00:09:47,320 Sono sempre frustrato quando mi capita di andare 207 00:09:47,320 --> 00:09:49,630 in quella directory ho voluto fare un lavoro in. 208 00:09:49,630 --> 00:09:52,670 Ho sempre frustrato quando l'ho fatto in due fasi invece di un passo, 209 00:09:52,670 --> 00:09:55,715 perché questo significa che cd - sta andando mettere in quella posizione intermedia 210 00:09:55,715 --> 00:09:57,010 invece di dove voglio andare. 211 00:09:57,010 --> 00:09:59,350 212 00:09:59,350 --> 00:10:01,450 >> Così vediamo tutti i file di elenco. 213 00:10:01,450 --> 00:10:03,300 Sappiamo come muoversi fino ad ora. 214 00:10:03,300 --> 00:10:09,900 Così ora parliamo di modifica dei file. 215 00:10:09,900 --> 00:10:18,790 Quindi, in questo corso, si è quasi sempre prevede di utilizzare gedit. 216 00:10:18,790 --> 00:10:24,410 Se si desidera, è possibile fare il passo successivo e iniziare ad imparare un testo a riga di comando 217 00:10:24,410 --> 00:10:25,240 Editor. 218 00:10:25,240 --> 00:10:27,560 Quindi, esistono varie opzioni. 219 00:10:27,560 --> 00:10:31,760 >> E quelli che sono probabilmente sta per essere relativo al sistema, 220 00:10:31,760 --> 00:10:35,340 abbiamo Nano, Vim e Emacs. 221 00:10:35,340 --> 00:10:40,196 Così Nano è principianti riga di comando editor di testo. 222 00:10:40,196 --> 00:10:42,985 Così Nano andiamo su blah.c ho creato in precedenza. 223 00:10:42,985 --> 00:10:44,030 224 00:10:44,030 --> 00:10:46,480 E 'solo il file C standard. 225 00:10:46,480 --> 00:10:51,540 E si vede un sacco di roba succede nella parte inferiore della schermata, 226 00:10:51,540 --> 00:10:54,100 e apparentemente blah.c contiene il codice C. 227 00:10:54,100 --> 00:10:55,420 228 00:10:55,420 --> 00:11:00,330 >> Quindi, in questo particolare editore, quello che sta dicendo al bottom-- 229 00:11:00,330 --> 00:11:06,290 ora questo simbolo di accento circonflesso, vediamo questo ^ G, X ^, ^ O. 230 00:11:06,290 --> 00:11:10,310 Così che in quasi tutti contesto che si vede, 231 00:11:10,310 --> 00:11:13,530 si potrebbe vedere che simbolo di inserimento in altri posti in linea, su Stack Overflow, 232 00:11:13,530 --> 00:11:14,450 qualcosa del genere. 233 00:11:14,450 --> 00:11:16,970 Si riferisce quasi sempre da controllare. 234 00:11:16,970 --> 00:11:21,590 Quindi, per uscire da quello che voglio fare Controllo X. Controllo X, esce. 235 00:11:21,590 --> 00:11:22,750 236 00:11:22,750 --> 00:11:26,855 E posso utilizzare il mio freccia i tasti per muoversi. 237 00:11:26,855 --> 00:11:28,010 238 00:11:28,010 --> 00:11:31,015 Si noti che non posso puntare e cliccare facilmente. 239 00:11:31,015 --> 00:11:33,000 240 00:11:33,000 --> 00:11:35,010 È necessario utilizzare la freccia i tasti per muoversi. 241 00:11:35,010 --> 00:11:36,950 Ci potrebbe essere una regolazione per puntare e cliccare. 242 00:11:36,950 --> 00:11:40,000 >> Ma facciamo alcuni cambiamenti. 243 00:11:40,000 --> 00:11:42,100 Ora controllo X per andare all'uscita. 244 00:11:42,100 --> 00:11:44,120 Sta andando a dire salvare buffer modificato. 245 00:11:44,120 --> 00:11:47,900 Ora il prompt, y per sì, n per n. 246 00:11:47,900 --> 00:11:49,900 Controllo C per annullare. 247 00:11:49,900 --> 00:11:50,780 Mi limiterò a dire di sì. 248 00:11:50,780 --> 00:11:51,709 Nome di scrivere file. 249 00:11:51,709 --> 00:11:53,500 Il valore di default è il file che lo sia già. 250 00:11:53,500 --> 00:11:54,230 Premete Invio. 251 00:11:54,230 --> 00:11:54,740 Ok. 252 00:11:54,740 --> 00:11:58,580 Ora ho appena modificato il file, salvato, ed è cambiato. 253 00:11:58,580 --> 00:11:59,770 254 00:11:59,770 --> 00:12:03,000 >> Così Nano è il più facile editor di testo si abitua. 255 00:12:03,000 --> 00:12:05,520 Le alternative sono Vim e Emacs. 256 00:12:05,520 --> 00:12:11,250 Questi sono gli editor di testo di livello superiore che hanno una curva di apprendimento molto ripida. 257 00:12:11,250 --> 00:12:13,740 Quindi la mia preferenza personale è Vim. 258 00:12:13,740 --> 00:12:17,175 Ed ha una grande varietà di opzioni. 259 00:12:17,175 --> 00:12:18,210 260 00:12:18,210 --> 00:12:24,070 E una volta che ci si abitua ad esso, non sarai mai 261 00:12:24,070 --> 00:12:26,900 voglia di andare in qualsiasi altro editor di testo perché basta 262 00:12:26,900 --> 00:12:29,590 avere così tante cose a vostra disposizione in questi, 263 00:12:29,590 --> 00:12:31,690 ma ci vuole molto molto tempo per imparare. 264 00:12:31,690 --> 00:12:36,000 Quindi forse volete solo per forza te stesso in questo momento per abituarsi ad esso, 265 00:12:36,000 --> 00:12:38,130 ma direi che ne vale la pena. 266 00:12:38,130 --> 00:12:39,660 Ma è difficile. 267 00:12:39,660 --> 00:12:41,220 >> E poi Emacs. 268 00:12:41,220 --> 00:12:44,940 Ho sempre fatica a Emacs perché Io so fare assolutamente nulla. 269 00:12:44,940 --> 00:12:47,755 A quanto pare Emacs non è di default installato l'apparecchio. 270 00:12:47,755 --> 00:12:49,210 271 00:12:49,210 --> 00:12:51,720 Ci sarà probabilmente aggiungere che come installazioni predefinite. 272 00:12:51,720 --> 00:12:59,620 273 00:12:59,620 --> 00:13:02,390 Una volta imparato uno dei Vim o Emacs, c'è 274 00:13:02,390 --> 00:13:04,810 alcun motivo valido per mai imparare dall'altro, 275 00:13:04,810 --> 00:13:07,570 ma è uno stile completamente diverso. 276 00:13:07,570 --> 00:13:10,460 OK, questa è la modifica di file di testo. 277 00:13:10,460 --> 00:13:13,374 >> PUBBLICO: Se tu fossi bloccato Vim in questo momento, come si fa we-- 278 00:13:13,374 --> 00:13:18,840 279 00:13:18,840 --> 00:13:20,800 >> ROB BOWDEN: Ci sono più modalità di Vim, 280 00:13:20,800 --> 00:13:23,770 e ci sono tutta tutorial su apprendimento Vim. 281 00:13:23,770 --> 00:13:27,390 Quindi, se vi capita di essere in modalità di inserimento, al fine 282 00:13:27,390 --> 00:13:29,930 per digitare il testo, che è possibile immettere che in vari modi, 283 00:13:29,930 --> 00:13:31,610 ma io è come si entra in modalità inserimento. 284 00:13:31,610 --> 00:13:34,780 In o uscire da qualsiasi danno speciale modalità che ci si trovi, basta fuga. 285 00:13:34,780 --> 00:13:37,640 E basta bash Fuga per ottenere di qualsiasi modalità nidificate la vostra in. 286 00:13:37,640 --> 00:13:40,360 OK, ora sono tornato in modalità normale. 287 00:13:40,360 --> 00:13:43,790 >> E così in modalità normale, i due punti. 288 00:13:43,790 --> 00:13:45,160 Si vede apparire in basso. 289 00:13:45,160 --> 00:13:46,240 E poi q. 290 00:13:46,240 --> 00:13:52,600 Quindi q si chiuderà se hai apportato delle modifiche, che hanno I-- ho fatto modifiche? 291 00:13:52,600 --> 00:13:54,180 Ho apportato delle modifiche a quanto pare. 292 00:13:54,180 --> 00:13:57,264 Quindi, se hai apportato delle modifiche, sarà dici si può mettere un punto esclamativo. 293 00:13:57,264 --> 00:13:58,430 Io vado a chiamare un botto. 294 00:13:58,430 --> 00:14:02,040 Così si può mettere un divieto a poco uscire senza fare niente, 295 00:14:02,040 --> 00:14:04,520 o del colon wq salverà e uscire. 296 00:14:04,520 --> 00:14:06,580 Quindi w in generale è scrivere. 297 00:14:06,580 --> 00:14:08,300 Quindi scrivere il file. 298 00:14:08,300 --> 00:14:09,810 Posso scrivere e uscire. 299 00:14:09,810 --> 00:14:13,606 Oppure si potrebbe avere solo qx Slam, q botto solo 300 00:14:13,606 --> 00:14:16,230 per uscire da lì a prescindere di tutte le modifiche apportate. 301 00:14:16,230 --> 00:14:21,310 302 00:14:21,310 --> 00:14:28,940 >> Va bene, così ora cerchiamo di go-- siamo in grado di creare file. 303 00:14:28,940 --> 00:14:30,890 Cominciamo la rimozione dei file. 304 00:14:30,890 --> 00:14:35,450 E mi limiterò a buttare in un veloce nuovo comando, toccare. 305 00:14:35,450 --> 00:14:38,200 Quindi toccare foo. 306 00:14:38,200 --> 00:14:39,340 Bar Touch. 307 00:14:39,340 --> 00:14:40,220 Toccare baz. 308 00:14:40,220 --> 00:14:42,810 Se I ls, ora vediamo l'esistenza di tali file. 309 00:14:42,810 --> 00:14:44,315 Sono completamente vuoto. 310 00:14:44,315 --> 00:14:47,178 Quindi tocco è solo un semplice modo di uno, [incomprensibile]. 311 00:14:47,178 --> 00:14:50,850 312 00:14:50,850 --> 00:14:54,640 Due, tecnicamente solo a stato esso, aggiorna il timestamp. 313 00:14:54,640 --> 00:14:58,470 Quindi, qualsiasi file che si crea ha un timestamp associato con esso. 314 00:14:58,470 --> 00:15:01,330 Così baz è stato creato il 14 settembre alle 16:21. 315 00:15:01,330 --> 00:15:02,570 316 00:15:02,570 --> 00:15:06,670 Ora è 16:22, quindi se Mi tocco di nuovo baz, abbiamo 317 00:15:06,670 --> 00:15:11,420 vedere che baz è stato più recentemente modificato a 16:22. 318 00:15:11,420 --> 00:15:17,680 Ma per il resto ho quasi mai guardare i timestamp sui file. 319 00:15:17,680 --> 00:15:20,490 Così tocco, qui sto solo usando per creare alcuni file veloci. 320 00:15:20,490 --> 00:15:21,620 321 00:15:21,620 --> 00:15:27,400 >> Va bene, così ora rm è il comando che ci sta a cuore qui. 322 00:15:27,400 --> 00:15:28,665 E possiamo rm boo. 323 00:15:28,665 --> 00:15:31,000 Dire rimuovere file regolare boo vuoto. 324 00:15:31,000 --> 00:15:34,070 E possiamo digitare y, e ora è rimuove. 325 00:15:34,070 --> 00:15:34,850 rm baz. 326 00:15:34,850 --> 00:15:35,910 327 00:15:35,910 --> 00:15:38,620 Rimuovere regolarmente file vuoto baz e tipo n per n. 328 00:15:38,620 --> 00:15:40,060 Ora non è rimosso. 329 00:15:40,060 --> 00:15:41,240 Quindi, bar e baz esistono ancora. 330 00:15:41,240 --> 00:15:42,232 Foo è andato. 331 00:15:42,232 --> 00:15:43,148 GABRIEL: continuare a parlare. 332 00:15:43,148 --> 00:15:43,970 333 00:15:43,970 --> 00:15:44,720 ROB BOWDEN: Grande. 334 00:15:44,720 --> 00:15:45,800 335 00:15:45,800 --> 00:15:50,370 Così il messaggio fastidioso qui, rimuovere empty-- regolare 336 00:15:50,370 --> 00:15:52,390 che ci fai lì? 337 00:15:52,390 --> 00:15:54,030 Rimuovere regolarmente file vuoto. 338 00:15:54,030 --> 00:15:58,840 339 00:15:58,840 --> 00:16:01,610 Quindi, se non vogliamo essere disturbato da quel messaggio, 340 00:16:01,610 --> 00:16:05,340 siamo in grado di lanciare in questo -f bandiera, e in modo che è forza. 341 00:16:05,340 --> 00:16:11,330 E ora, se io rm -f, è non andare a dici vuoi rimuovere questo file. 342 00:16:11,330 --> 00:16:12,040 Sarà solo farlo. 343 00:16:12,040 --> 00:16:13,720 E ls, non vedo bar più lì. 344 00:16:13,720 --> 00:16:14,810 345 00:16:14,810 --> 00:16:18,021 >> Ora che è potenzialmente Comando pericoloso. 346 00:16:18,021 --> 00:16:19,020 Si tende a non troppo male. 347 00:16:19,020 --> 00:16:22,240 Ci torneremo in un secondo come si può ottenere molto pericoloso. 348 00:16:22,240 --> 00:16:28,740 E creiamo una directory temporanea. 349 00:16:28,740 --> 00:16:30,880 mkdir, un altro comando. 350 00:16:30,880 --> 00:16:34,880 Così mkdir è un comando che fa una directory. 351 00:16:34,880 --> 00:16:40,650 E ora da ls vediamo questa bella luce blu evidenziato directory temp. 352 00:16:40,650 --> 00:16:42,295 Posso cd in temperatura. 353 00:16:42,295 --> 00:16:44,590 E posso mkdir foo. 354 00:16:44,590 --> 00:16:46,330 cd in foo. bar mkdir. 355 00:16:46,330 --> 00:16:46,860 cd nella barra. 356 00:16:46,860 --> 00:16:49,400 357 00:16:49,400 --> 00:16:54,300 >> Così vediamo che possiamo facilmente ottenere in qualche nidificazione piuttosto profondo. 358 00:16:54,300 --> 00:16:56,385 Ora come faccio a rimuovere una directory? 359 00:16:56,385 --> 00:16:57,020 360 00:16:57,020 --> 00:16:57,520 rmdir. 361 00:16:57,520 --> 00:16:59,030 362 00:16:59,030 --> 00:17:03,540 Quindi, se ho solo dritto cerco di rm, come abbiamo fatto con un file regolare, 363 00:17:03,540 --> 00:17:06,420 bar rm sta per dire che non è possibile rimuovere la barra. 364 00:17:06,420 --> 00:17:07,569 Si tratta di una directory. 365 00:17:07,569 --> 00:17:10,619 C'è un comando speciale per rimuovere directory, tipo di. 366 00:17:10,619 --> 00:17:12,900 Bar così rmdir. 367 00:17:12,900 --> 00:17:13,710 Ora bar non c'è più. 368 00:17:13,710 --> 00:17:14,980 369 00:17:14,980 --> 00:17:22,680 >> OK, quindi rmdir ho praticamente non uso mai. 370 00:17:22,680 --> 00:17:32,220 La ragione being-- ora facciamo fare un bar normale file qui. 371 00:17:32,220 --> 00:17:34,780 Boo Così rmdir. 372 00:17:34,780 --> 00:17:35,760 rmdir. 373 00:17:35,760 --> 00:17:36,900 Impossibile rimuovere foo. 374 00:17:36,900 --> 00:17:38,420 Directory non vuota. 375 00:17:38,420 --> 00:17:43,420 Quindi non si può utilizzare cancella directory su un directory che ha delle cose in esso. 376 00:17:43,420 --> 00:17:44,830 >> In modo da avere alcune opzioni. 377 00:17:44,830 --> 00:17:49,780 Si può andare in quella directory, rimuovere tutto manualmente, e poi uscire 378 00:17:49,780 --> 00:17:51,759 e RmDir la directory. 379 00:17:51,759 --> 00:17:53,050 Che suona ovviamente fastidioso. 380 00:17:53,050 --> 00:17:55,000 E se ci sono migliaia di file in là? 381 00:17:55,000 --> 00:17:58,119 Beh, si potrebbe rm *. 382 00:17:58,119 --> 00:17:59,410 Parleremo * in un secondo. 383 00:17:59,410 --> 00:18:00,870 Ciò significa in pratica tutte le cose. 384 00:18:00,870 --> 00:18:02,030 385 00:18:02,030 --> 00:18:05,470 Ma meglio ancora, così rm -r. 386 00:18:05,470 --> 00:18:10,220 Così rm -r-- in un sacco di contesti, -r significa ricorsiva, 387 00:18:10,220 --> 00:18:13,810 che parleremo di ciò che mezzi ricorsive in alcune settimane. 388 00:18:13,810 --> 00:18:18,630 Ma significa fondamentalmente traversata la totalità di questa directory 389 00:18:18,630 --> 00:18:20,190 e rimuovere tutto ciò. 390 00:18:20,190 --> 00:18:24,420 >> Così rm -r foo sta per dire scendere nella directory pippo? 391 00:18:24,420 --> 00:18:25,210 Sì. 392 00:18:25,210 --> 00:18:26,800 Rimuovere regolarmente file foo / bar vuoto? 393 00:18:26,800 --> 00:18:27,880 394 00:18:27,880 --> 00:18:28,540 Sì. 395 00:18:28,540 --> 00:18:29,760 Rimuovere la directory foo? 396 00:18:29,760 --> 00:18:30,260 Sì. 397 00:18:30,260 --> 00:18:31,470 398 00:18:31,470 --> 00:18:35,020 Così ora foo e tutto al suo interno è stato rimosso. 399 00:18:35,020 --> 00:18:42,370 >> Ora che si può ottenere particolarmente fastidioso when-- andiamo a toccare 1, 2 toccare, toccare 3. 400 00:18:42,370 --> 00:18:44,400 Potrebbe avere un sacco di file. 401 00:18:44,400 --> 00:18:49,060 Se avessi voluto, avrei potuto creare migliaia di file in qui. 402 00:18:49,060 --> 00:18:53,340 E rm -r foo sta andando essere abbastanza fastidioso. 403 00:18:53,340 --> 00:18:55,374 Sì, sì, sì, sì, sì, sì. 404 00:18:55,374 --> 00:18:57,540 Con un sacco di più file vedere rapidamente quante volte 405 00:18:57,540 --> 00:18:58,581 Avrei dovuto scrivere sì. 406 00:18:58,581 --> 00:19:02,265 Beh, abbiamo appena visto prima come possiamo sbarazzarsi di dover digitare Sì, -f. 407 00:19:02,265 --> 00:19:03,330 408 00:19:03,330 --> 00:19:07,020 Così mkdir foo cd foo tocco 1 2 3. 409 00:19:07,020 --> 00:19:08,380 410 00:19:08,380 --> 00:19:17,190 OK, allora rm -rf foo sta per rimuovano a occhi chiusi foo tutto. 411 00:19:17,190 --> 00:19:17,960 Nessuna richiesta. 412 00:19:17,960 --> 00:19:18,650 No niente. 413 00:19:18,650 --> 00:19:20,040 Foo è andato. 414 00:19:20,040 --> 00:19:23,830 >> Quindi tendo a usare questo comandare tutto il tempo. 415 00:19:23,830 --> 00:19:25,120 416 00:19:25,120 --> 00:19:27,830 Detto questo, si tratta di un comando molto pericoloso, 417 00:19:27,830 --> 00:19:33,240 perché se faccio qualcosa di simile questo, non verrà richiesto. 418 00:19:33,240 --> 00:19:34,730 Sarà andato. 419 00:19:34,730 --> 00:19:40,140 E succede abbastanza di frequente, e anche nel livello superiore corsi di CS. 420 00:19:40,140 --> 00:19:42,070 A volte vedremo qualcosa in cui qualcuno 421 00:19:42,070 --> 00:19:48,360 dice che accidentalmente nostro rm rf-ed a casa mia directory e tutto il mio P set è andato. 422 00:19:48,360 --> 00:19:52,422 Ed è devastante, ma non c'è cestino. 423 00:19:52,422 --> 00:19:54,380 Non c'è non c'è niente di essere recuperato. 424 00:19:54,380 --> 00:19:55,330 E 'appena andato. 425 00:19:55,330 --> 00:19:56,529 426 00:19:56,529 --> 00:19:58,320 Ancora peggio sarebbe qualcosa come rm -rf /. 427 00:19:58,320 --> 00:19:59,432 428 00:19:59,432 --> 00:20:01,140 Così abbiamo appena discusso quella directory radice. 429 00:20:01,140 --> 00:20:03,095 Essa detiene tutti i file sul vostro sistema. 430 00:20:03,095 --> 00:20:04,120 431 00:20:04,120 --> 00:20:07,380 Le cose tendono a diventare piuttosto disordinato quando si rimuove le cose come ls, 432 00:20:07,380 --> 00:20:10,280 e cd, e tutti quelli. 433 00:20:10,280 --> 00:20:15,467 >> PUBBLICO: Qual è la differenza tra rm, rf, e rm * 434 00:20:15,467 --> 00:20:16,300 ROB BOWDEN: Quindi rm * - 435 00:20:16,300 --> 00:20:17,700 436 00:20:17,700 --> 00:20:22,300 >> ALLISON: Domanda era quello che è il differenza tra rm, rf, e rm *. 437 00:20:22,300 --> 00:20:23,750 438 00:20:23,750 --> 00:20:25,950 >> ROB BOWDEN: Così rm *. 439 00:20:25,950 --> 00:20:31,910 Stella in mezzo generale tutti il contenuto di questa directory. 440 00:20:31,910 --> 00:20:33,540 441 00:20:33,540 --> 00:20:35,540 Cercando di pensare di altri modi di mostrare stelle. 442 00:20:35,540 --> 00:20:38,280 443 00:20:38,280 --> 00:20:44,780 Beh, stella in realtà in genere significa corrisponde ad alcun modello. 444 00:20:44,780 --> 00:20:54,930 Quindi, se ho un file chiamato dog1, dog2 toccare, toccare cat1, toccare cat2. 445 00:20:54,930 --> 00:20:56,050 446 00:20:56,050 --> 00:21:02,110 Così ls * 1 sta per la stampa e cat1 dog1, perché quella stella può essere riempito 447 00:21:02,110 --> 00:21:06,270 in with-- la si ha la necessità di essere lì, ma stella può essere sia gatto o cane. 448 00:21:06,270 --> 00:21:07,247 Si tratta di una wild card. 449 00:21:07,247 --> 00:21:08,580 Questa è la parola che sto cercando. 450 00:21:08,580 --> 00:21:09,120 Wild card. 451 00:21:09,120 --> 00:21:10,180 452 00:21:10,180 --> 00:21:13,960 Oppure potrei ls cane *, e Ho avuto modo di vedere dog1, dog2. 453 00:21:13,960 --> 00:21:16,870 Quindi questi sono l'elenco dei file che corrispondono a quel particolare modello. 454 00:21:16,870 --> 00:21:18,150 È possibile utilizzare ls in questo modo. 455 00:21:18,150 --> 00:21:19,350 456 00:21:19,350 --> 00:21:22,020 >> Ls * stelle corrisponde a qualsiasi cosa. 457 00:21:22,020 --> 00:21:25,710 Così sta andando a stampare tutte il contenuto di questo elenco 458 00:21:25,710 --> 00:21:27,290 dal momento che tutti loro corrispondere. 459 00:21:27,290 --> 00:21:30,130 Non sta andando a stampare nulla nelle directory di livello superiore. 460 00:21:30,130 --> 00:21:38,680 Se ho una sottodirectory, foo, e toccare 1 2 3-- così ora se rm * stelle, 461 00:21:38,680 --> 00:21:41,450 rimuovere cat1, CAT2, dog1, dog2. 462 00:21:41,450 --> 00:21:42,340 Impossibile rimuovere foo. 463 00:21:42,340 --> 00:21:43,090 Si tratta di una directory. 464 00:21:43,090 --> 00:21:43,920 465 00:21:43,920 --> 00:21:50,340 >> Quindi stella si espande a tutto il i file nella directory. 466 00:21:50,340 --> 00:21:55,210 Quindi tecnicamente rm * è come dire rm cat1, CAT2, dog1, dog2, foo. 467 00:21:55,210 --> 00:22:03,630 Considerando che -rf rm, tecnicamente stelle sarebbe realizziamo ciò che vogliamo, ma rm -rf-- 468 00:22:03,630 --> 00:22:06,090 se esco di questo directory, rm -rf temporanea, 469 00:22:06,090 --> 00:22:08,890 che sta per andare in temperatura e rimuovere ricorsivamente tutto. 470 00:22:08,890 --> 00:22:11,260 471 00:22:11,260 --> 00:22:21,060 >> Quindi stella è separata in quanto tale si intende by-- così questa cosa 472 00:22:21,060 --> 00:22:25,090 che sto correndo in, questa cosa che mi sta spingendo per i comandi 473 00:22:25,090 --> 00:22:28,770 e poi l'esecuzione e fare loro, io chiamo questo mio guscio. 474 00:22:28,770 --> 00:22:31,930 E così questo guscio è esso stesso un programma. 475 00:22:31,930 --> 00:22:35,010 E se volessi, io potrebbe eseguire in / bin / bash. 476 00:22:35,010 --> 00:22:36,930 La shell si chiama bash. 477 00:22:36,930 --> 00:22:39,340 E ora notiamo qualcosa è un po 'cambiato, 478 00:22:39,340 --> 00:22:42,200 e questo perché le mie impostazioni per il guscio è un po 'diversa. 479 00:22:42,200 --> 00:22:45,415 >> Ma ora sto tecnicamente in esecuzione un guscio nel mio guscio originale, 480 00:22:45,415 --> 00:22:49,570 e posso uscire da quel guscio, e ora Sono tornato al mio guscio di livello superiore. 481 00:22:49,570 --> 00:22:55,240 Lo scopo di dire che è-- la stella. 482 00:22:55,240 --> 00:22:59,020 Così la stella è qualcosa compreso da bash. 483 00:22:59,020 --> 00:23:04,260 Così rm -rf, -rf bandiera è compreso da solo rm. 484 00:23:04,260 --> 00:23:06,380 Si sa che quando si passare un -rf che si 485 00:23:06,380 --> 00:23:09,520 vuole per rimuovere in modo ricorsivo tutti i file senza chiedere conferma. 486 00:23:09,520 --> 00:23:13,960 La stella è qualcosa di comprensibile da bash che quando si dice rm *, 487 00:23:13,960 --> 00:23:16,890 bash non ha intenzione di dire hey rm *, rimuovere stella. 488 00:23:16,890 --> 00:23:21,010 Bash sta per dire rm * rimuovere cat1, CAT2, dog1, dog2. 489 00:23:21,010 --> 00:23:24,305 Sta andando automaticamente per espandere tutti i file nella directory. 490 00:23:24,305 --> 00:23:29,100 491 00:23:29,100 --> 00:23:33,140 >> E allo stesso modo tilde è un altro simbolo che bash capisce. 492 00:23:33,140 --> 00:23:37,130 Quando si dice cd ~, bash si espande che, per la vostra home directory. 493 00:23:37,130 --> 00:23:38,910 494 00:23:38,910 --> 00:23:40,210 Altre domande fino ad ora? 495 00:23:40,210 --> 00:23:42,760 496 00:23:42,760 --> 00:23:46,060 OK, stiamo per cominciare ad andare veloce. 497 00:23:46,060 --> 00:23:47,700 498 00:23:47,700 --> 00:23:48,545 >> Completamento Tab. 499 00:23:48,545 --> 00:23:49,670 Giusto per buttare fuori là. 500 00:23:49,670 --> 00:23:51,530 Un sacco di gente non lo fanno realizzare questo esiste. 501 00:23:51,530 --> 00:23:55,060 Quindi, se digito cd dow, ho voglia di andare in download. 502 00:23:55,060 --> 00:23:56,700 Non ho bisogno di digitare nloads. 503 00:23:56,700 --> 00:23:57,960 504 00:23:57,960 --> 00:24:00,770 Posso solo premere Tab. 505 00:24:00,770 --> 00:24:03,794 Quindi riconosce che finestra è un prefisso che 506 00:24:03,794 --> 00:24:05,710 non corrisponde nulla altro in questa directory, 507 00:24:05,710 --> 00:24:07,520 in modo che completerà per te. 508 00:24:07,520 --> 00:24:08,610 Ora posso entrare. 509 00:24:08,610 --> 00:24:10,110 >> Ho anche fare che in modo ricorsivo. 510 00:24:10,110 --> 00:24:11,205 Foo così mkdir. 511 00:24:11,205 --> 00:24:12,480 512 00:24:12,480 --> 00:24:13,300 Andiamo in foo. 513 00:24:13,300 --> 00:24:14,830 bar mkdir. 514 00:24:14,830 --> 00:24:17,345 Quindi, tornando a casa mia directory, posso vedere i download. 515 00:24:17,345 --> 00:24:19,040 516 00:24:19,040 --> 00:24:21,860 Ora scheda colpire di nuovo, andando automaticamente a compilare foo. 517 00:24:21,860 --> 00:24:22,880 E 'l'unica directory. 518 00:24:22,880 --> 00:24:25,340 Scheda Colpire di nuovo, automaticamente andando a riempire in bar. 519 00:24:25,340 --> 00:24:26,798 Così ora sono in (~ Downloads / foo / bar). 520 00:24:26,798 --> 00:24:27,310 521 00:24:27,310 --> 00:24:31,692 >> Quindi questo completamento automatico, ogni volta che ho avuto modo di orari d'ufficio, 522 00:24:31,692 --> 00:24:33,400 e sto in piedi sopra spalla di qualcuno, 523 00:24:33,400 --> 00:24:40,470 e che stanno andando rm D-O-W-N-L-O-A-D-S, sto morendo. 524 00:24:40,470 --> 00:24:41,990 Scheda Just, scheda, scheda, scheda. 525 00:24:41,990 --> 00:24:44,550 526 00:24:44,550 --> 00:24:45,630 Così scheda sicuramente usato. 527 00:24:45,630 --> 00:24:47,890 528 00:24:47,890 --> 00:24:49,840 E allo stesso modo e verso il basso, un sacco di gente 529 00:24:49,840 --> 00:24:51,930 proprio quello che è successo a mai hanno colpito su e giù. 530 00:24:51,930 --> 00:24:54,870 Sarà passare attraverso il precedente comandi, quindi se si ha qualcosa, 531 00:24:54,870 --> 00:24:58,300 e si desidera eseguire di nuovo, basta tenere su fino ad arrivare ad esso. 532 00:24:58,300 --> 00:24:59,870 533 00:24:59,870 --> 00:25:00,370 Ok. 534 00:25:00,370 --> 00:25:01,460 535 00:25:01,460 --> 00:25:03,585 >> Così veloce, alcune altre cose. 536 00:25:03,585 --> 00:25:04,800 537 00:25:04,800 --> 00:25:05,930 Torniamo in temperatura. 538 00:25:05,930 --> 00:25:06,976 539 00:25:06,976 --> 00:25:08,125 Creiamo alcuni file. 540 00:25:08,125 --> 00:25:10,480 541 00:25:10,480 --> 00:25:15,215 Così qui, io sono solo andando ad elencare alcune parole. 542 00:25:15,215 --> 00:25:18,460 543 00:25:18,460 --> 00:25:21,035 cane, gatto, meow. 544 00:25:21,035 --> 00:25:23,940 545 00:25:23,940 --> 00:25:26,040 Facciamo cane, pesce. 546 00:25:26,040 --> 00:25:27,500 547 00:25:27,500 --> 00:25:32,320 Così ora è un rappresentante molto comandi utili che si 548 00:25:32,320 --> 00:25:37,820 utilizzare per la ricerca in tutta file per un particolare testo, 549 00:25:37,820 --> 00:25:40,910 e tecnicamente si può fare davvero espressioni complesse per essere trovato. 550 00:25:40,910 --> 00:25:44,830 >> Ecco, se io grep, e ciò che voglio cercare? 551 00:25:44,830 --> 00:25:49,130 Diciamo che sto cercando per i gatti, e Voglio cercare tutti questi file. 552 00:25:49,130 --> 00:25:50,650 Allora, come faccio tutti questi file? 553 00:25:50,650 --> 00:25:51,900 Stella. 554 00:25:51,900 --> 00:25:54,939 Quindi, in un unico file, ho cat. 555 00:25:54,939 --> 00:25:56,980 Probabilmente potuto chiamato qualcosa di meglio, 556 00:25:56,980 --> 00:25:59,063 perché che assomiglia numeri di riga o qualcosa del genere. 557 00:25:59,063 --> 00:26:01,590 Ma in un unico file che ho una linea con il gatto. 558 00:26:01,590 --> 00:26:04,160 Nel file di due Ho una linea con il gatto. 559 00:26:04,160 --> 00:26:07,280 Così ora posso guardare dentro un unico file e vedi oh sì, quel file ha avuto cat. 560 00:26:07,280 --> 00:26:10,210 File di preavviso di tre non ha fatto riscontro perché il gatto non è in là. 561 00:26:10,210 --> 00:26:13,882 Posso grep per miagolio. 562 00:26:13,882 --> 00:26:14,840 Solo presentare due ha miagolio. 563 00:26:14,840 --> 00:26:16,120 564 00:26:16,120 --> 00:26:20,640 >> Quindi questo è possibile combinare, di nuovo, con -r, che 565 00:26:20,640 --> 00:26:23,580 come ho detto prima significa spesso ricorsiva. 566 00:26:23,580 --> 00:26:29,800 E così posso venire qui, grep -r per qualsiasi istanza di-- modifichiamo 567 00:26:29,800 --> 00:26:32,010 questo solo per gettare un gatto in là. 568 00:26:32,010 --> 00:26:38,800 Così grep -r per ogni istanza di gatto nel corso di questo elenco. 569 00:26:38,800 --> 00:26:41,600 E lo farà in modo ricorsivo ricercare le sottodirectory. 570 00:26:41,600 --> 00:26:43,940 Quindi, in baz, c'è il gatto. 571 00:26:43,940 --> 00:26:45,570 In temp / 2, c'è il gatto. 572 00:26:45,570 --> 00:26:47,960 E in temp / 1 c'è cat. 573 00:26:47,960 --> 00:26:50,045 Ecco, questo è la ricerca all'interno dei file. 574 00:26:50,045 --> 00:26:51,250 575 00:26:51,250 --> 00:26:55,090 >> Ora è anche possibile utilizzare una scoperta. 576 00:26:55,090 --> 00:26:59,640 E così trovare è specificamente alla ricerca di file con un determinato nome. 577 00:26:59,640 --> 00:27:02,490 Quindi cerchiamo di fare un po 'di più. 578 00:27:02,490 --> 00:27:03,660 Andiamo in download. 579 00:27:03,660 --> 00:27:04,680 580 00:27:04,680 --> 00:27:05,380 Toccare dog1. 581 00:27:05,380 --> 00:27:06,840 582 00:27:06,840 --> 00:27:07,770 Toccare CAT2. 583 00:27:07,770 --> 00:27:09,290 584 00:27:09,290 --> 00:27:10,760 Toccare cat_dog. 585 00:27:10,760 --> 00:27:14,550 586 00:27:14,550 --> 00:27:15,975 Toccare catcat. 587 00:27:15,975 --> 00:27:18,270 588 00:27:18,270 --> 00:27:23,810 >> Quindi voglio trovare tutte file con il cane nel nome. 589 00:27:23,810 --> 00:27:28,060 Così trovare, e per il più lungo tempo non ho mai ricordato 590 00:27:28,060 --> 00:27:33,760 come trovare funzionato, fino a quando ho finalmente leggere qualcosa che ha reso così chiaro. 591 00:27:33,760 --> 00:27:35,784 Quindi, trovare, automaticamente ricorsiva. 592 00:27:35,784 --> 00:27:36,950 Non è necessario passare un -r. 593 00:27:36,950 --> 00:27:38,090 594 00:27:38,090 --> 00:27:39,110 Quindi, trovare dot. 595 00:27:39,110 --> 00:27:40,750 Non abbiamo ancora parlato di punto. 596 00:27:40,750 --> 00:27:44,800 Mentre dot dot sempre significa directory uno. 597 00:27:44,800 --> 00:27:46,960 Dot significa sempre la directory corrente. 598 00:27:46,960 --> 00:27:51,390 Così ho potuto rm -r punti nel Allo stesso modo posso rm -rf *. 599 00:27:51,390 --> 00:27:53,140 In ultima analisi, ottenere la stessa cosa. 600 00:27:53,140 --> 00:27:56,040 rm -rf dot sta per eliminare in tutta la directory corrente. 601 00:27:56,040 --> 00:27:57,440 602 00:27:57,440 --> 00:27:59,680 >> OK, che io non voglio fare. 603 00:27:59,680 --> 00:28:01,490 604 00:28:01,490 --> 00:28:04,320 Ma trovare dot. 605 00:28:04,320 --> 00:28:07,920 Così ricorsivamente la ricerca corrente directory, e ora tutto 606 00:28:07,920 --> 00:28:14,125 dopo questo sono un sacco di bandiere che si utilizzare per escludere le cose dal ritorno. 607 00:28:14,125 --> 00:28:17,250 Quindi, trovare punti restituisce tutto ciò che essa può trovare dalla directory corrente. 608 00:28:17,250 --> 00:28:19,700 Questi sono tutti i file ricorsivamente la ricerca. 609 00:28:19,700 --> 00:28:21,250 Staremo a vedere alcuni di quelli in un secondo. 610 00:28:21,250 --> 00:28:23,150 611 00:28:23,150 --> 00:28:27,140 >> Ma nel caso in cui vi state chiedendo come fare che, così Comando K, almeno 612 00:28:27,140 --> 00:28:29,660 nel mio terminale in Mac cancella esso. 613 00:28:29,660 --> 00:28:34,660 Controllo L cancella generale per qualsiasi tipo di terminale. 614 00:28:34,660 --> 00:28:36,480 È inoltre possibile digitare chiaro. 615 00:28:36,480 --> 00:28:38,410 E se mai in un scenario-- strano 616 00:28:38,410 --> 00:28:42,790 è successo a me un paio tempo-- dove i colori delle vostre richieste 617 00:28:42,790 --> 00:28:46,590 sono tutti incasinato, o si non sono in grado di vedere nulla 618 00:28:46,590 --> 00:28:51,232 essere digitato quando si sta digitando, in quanto a volte come colore di sfondo è impostato 619 00:28:51,232 --> 00:28:53,940 lo stesso del colore di primo piano e ora non è possibile visualizzare i tipi di carattere. 620 00:28:53,940 --> 00:28:55,110 621 00:28:55,110 --> 00:28:59,830 Reset è qualcosa che ripristina solo di lo sfondo nero di default, 622 00:28:59,830 --> 00:29:01,840 anteriore bianco, o qualsiasi altra cosa si imposta loro. 623 00:29:01,840 --> 00:29:03,390 624 00:29:03,390 --> 00:29:04,790 >> Allora, dove eravamo rimasti? 625 00:29:04,790 --> 00:29:05,930 Trova dot. 626 00:29:05,930 --> 00:29:09,360 Così ora tutto questo passato punto restringe i risultati 627 00:29:09,360 --> 00:29:11,450 a qualcosa che corrisponde il modello dato. 628 00:29:11,450 --> 00:29:16,110 Così qui voglio cercare tutto con il nome gatto. 629 00:29:16,110 --> 00:29:17,300 Non ho niente. 630 00:29:17,300 --> 00:29:18,390 Perché è così? 631 00:29:18,390 --> 00:29:21,230 Beh, sto solo cercando qualcosa con esattamente il nome del gatto. 632 00:29:21,230 --> 00:29:25,150 Se voglio cercare qualcosa che ha qualche modello, e cat-- 633 00:29:25,150 --> 00:29:28,890 le citazioni tecnicamente non sono necessari, ma io li sto buttando lì. 634 00:29:28,890 --> 00:29:32,720 Così ora si trova catcat perché questa è l'unica cosa che 635 00:29:32,720 --> 00:29:36,040 ha un po 'arbitraria modello seguito da gatto. 636 00:29:36,040 --> 00:29:41,950 Posso mettere cat *, e ora trovare catcat, cat_dog, cat2, 637 00:29:41,950 --> 00:29:45,245 perché quelle sono tutte le cose con il gatto all'inizio seguita da nulla. 638 00:29:45,245 --> 00:29:46,120 È possibile combinare questo. 639 00:29:46,120 --> 00:29:50,480 Se si desidera eseguire la ricerca per tutti i file C che si ha, si potrebbe fare * .c. 640 00:29:50,480 --> 00:29:51,960 Abbiamo blah.c qui. 641 00:29:51,960 --> 00:29:53,000 642 00:29:53,000 --> 00:29:55,020 Ecco, questo è un funziona Trova. 643 00:29:55,020 --> 00:29:55,770 È possibile cercare. 644 00:29:55,770 --> 00:29:58,270 Ha un sacco di bandiere per ulteriori restrizioni. 645 00:29:58,270 --> 00:30:00,960 E uno di loro, diciamo -d. 646 00:30:00,960 --> 00:30:02,110 647 00:30:02,110 --> 00:30:04,435 Così deprecato. 648 00:30:04,435 --> 00:30:05,425 649 00:30:05,425 --> 00:30:06,550 Oh, che non è quello che voglio. 650 00:30:06,550 --> 00:30:07,730 Non -d. 651 00:30:07,730 --> 00:30:08,860 Tipo d. 652 00:30:08,860 --> 00:30:13,820 Quindi, trovare punti - tipo d. 653 00:30:13,820 --> 00:30:17,760 Quindi, che cosa ha appena fatto è che sto cercando per tutti i file nella directory corrente 654 00:30:17,760 --> 00:30:21,680 con a-- d sta per directory-- tipo di directory. 655 00:30:21,680 --> 00:30:24,430 Ciò restituisce tutte le directory nella directory corrente. 656 00:30:24,430 --> 00:30:27,670 E il tipo F è tutto regolare file, tutti i non le directory. 657 00:30:27,670 --> 00:30:29,809 Ecco, questo è solo un esempio di altri modi 658 00:30:29,809 --> 00:30:32,350 può limitare la ricerca altro non solo il nome del file. 659 00:30:32,350 --> 00:30:34,126 660 00:30:34,126 --> 00:30:35,570 >> Sono passati 30 minuti. 661 00:30:35,570 --> 00:30:36,848 Ancora in corso. 662 00:30:36,848 --> 00:30:38,132 >> ALLISON: Io brezza attraverso. 663 00:30:38,132 --> 00:30:39,670 Andrà tutto bene. 664 00:30:39,670 --> 00:30:41,460 >> ROB BOWDEN: Così alcune altre cose. 665 00:30:41,460 --> 00:30:45,700 Ora battere, punto esclamativo. 666 00:30:45,700 --> 00:30:50,530 In modo che generalmente means-- bene, vediamo un esempio. 667 00:30:50,530 --> 00:30:52,230 Così! F, che cosa è che sta per fare? 668 00:30:52,230 --> 00:30:53,520 669 00:30:53,520 --> 00:30:57,810 Beh, sembra avere ripetuto ritrovamento dot -type f. 670 00:30:57,810 --> 00:30:59,240 Che dire! G? 671 00:30:59,240 --> 00:31:00,760 Che proprio grep -r * cat. 672 00:31:00,760 --> 00:31:02,010 673 00:31:02,010 --> 00:31:05,720 Così sbatte è possibile utilizzare per ripetere un comando fatto di recente. 674 00:31:05,720 --> 00:31:13,280 Quindi, se digito! Gre, sta andando a ri-run i comandi che ha avuto inizio con gre più 675 00:31:13,280 --> 00:31:14,060 di recente. 676 00:31:14,060 --> 00:31:17,090 >> E si può vedere tutte queste comandi con la storia. 677 00:31:17,090 --> 00:31:17,880 Così la storia. 678 00:31:17,880 --> 00:31:19,630 Questi sono tutti comandi Ho eseguito oggi. 679 00:31:19,630 --> 00:31:21,089 680 00:31:21,089 --> 00:31:23,130 E bene, non è letteralmente limitato a oggi, 681 00:31:23,130 --> 00:31:25,180 ma ho usato solo questo apparecchio come di oggi. 682 00:31:25,180 --> 00:31:28,730 E 'il tuo totalità del storia della vostra shell bash, 683 00:31:28,730 --> 00:31:30,433 tranne che interrompe ad un certo punto. 684 00:31:30,433 --> 00:31:33,474 PUBBLICO: Che cosa succede se si fa cronologia dei comandi [incomprensibile] e un errore 685 00:31:33,474 --> 00:31:35,430 nel risultato sarà ancora stampare the-- 686 00:31:35,430 --> 00:31:44,110 >> ROB BOWDEN: Sì, se c'è un errore in uno di questi commands-- 687 00:31:44,110 --> 00:31:48,090 così diciamo, che è un errore Command not found. 688 00:31:48,090 --> 00:31:49,312 689 00:31:49,312 --> 00:31:50,520 Appare ancora nella storia. 690 00:31:50,520 --> 00:31:52,620 691 00:31:52,620 --> 00:31:53,170 Bene. 692 00:31:53,170 --> 00:31:54,750 693 00:31:54,750 --> 00:31:56,040 Altre domande su qualsiasi cosa? 694 00:31:56,040 --> 00:31:58,760 695 00:31:58,760 --> 00:32:00,300 Ecco, questo è il botto. 696 00:32:00,300 --> 00:32:04,230 >> Ora, il comando veramente utile, l'uomo. 697 00:32:04,230 --> 00:32:07,750 In modo che ti dà la manuale per un dato comando. 698 00:32:07,750 --> 00:32:11,640 Quindi diciamo che man ls, così questo mi sta mostrando ls. 699 00:32:11,640 --> 00:32:13,400 Elenca il contenuto della directory. 700 00:32:13,400 --> 00:32:17,150 Ed è qui che vedo che c'è sono queste varie bandiere che esistono. 701 00:32:17,150 --> 00:32:21,340 Così vediamo che ls -l esiste se dovessimo leggere quella. ls -l 702 00:32:21,340 --> 00:32:26,150 mi dà questo integrale dell'elenco dei directory con chi possiede il file, 703 00:32:26,150 --> 00:32:29,750 la dimensione del file, la il timestamp modificato. 704 00:32:29,750 --> 00:32:31,130 705 00:32:31,130 --> 00:32:34,980 Così ls -a è un altro che si potrebbe effettivamente utilizzare un po 'di frequente. 706 00:32:34,980 --> 00:32:38,130 -al è la mia bandiera più comune questi ultimi ls. 707 00:32:38,130 --> 00:32:42,520 >> Così -a, notare che c'è un sacco più file di solo ls. 708 00:32:42,520 --> 00:32:44,170 ls -a. 709 00:32:44,170 --> 00:32:46,170 Cosa c'è in comune con tutti questi file? 710 00:32:46,170 --> 00:32:47,790 Si inizia con un punto. 711 00:32:47,790 --> 00:32:54,710 Quindi questa è una convenzione in Linux i file che iniziano con un punto sono nascosti. 712 00:32:54,710 --> 00:32:58,330 Quindi, significa solo che quando abbiamo appena ls diritte, 713 00:32:58,330 --> 00:33:04,170 o stiamo cercando questa directory utilizzando l'equivalente finder, o Windows 714 00:33:04,170 --> 00:33:07,250 Explorer equivalente, che non vogliono vedere questi file di punti. 715 00:33:07,250 --> 00:33:09,680 Hanno appena inquinano la visione delle cose. 716 00:33:09,680 --> 00:33:11,790 Così sono nascosti a meno che non specificatamente 717 00:33:11,790 --> 00:33:14,250 chiedere loro con qualcosa di simile -a. 718 00:33:14,250 --> 00:33:18,920 Così posso cd in .local, e vedo che che è di per sé una directory con 719 00:33:18,920 --> 00:33:22,220 una directory condivisa, e applicazioni, e bla bla bla. 720 00:33:22,220 --> 00:33:24,520 Così dot, i file sono solo nascosti. 721 00:33:24,520 --> 00:33:26,250 722 00:33:26,250 --> 00:33:29,355 >> OK, in modo che altri importanti. 723 00:33:29,355 --> 00:33:30,490 724 00:33:30,490 --> 00:33:32,000 Ho un paio posso saltare. 725 00:33:32,000 --> 00:33:38,160 Diciamo solo vero e proprio discorso rapido su le cose di file di reindirizzamento. 726 00:33:38,160 --> 00:33:43,020 Quindi c'è tutta una serie complessa di cose che si possono fare con questi, 727 00:33:43,020 --> 00:33:47,204 ma solo per vedere loro, diciamo, eco. 728 00:33:47,204 --> 00:33:47,870 Un altro comando. 729 00:33:47,870 --> 00:33:48,920 Comando di veramente stupido. 730 00:33:48,920 --> 00:33:50,710 Tutto ciò che fa è stampare quello che gli dico di. 731 00:33:50,710 --> 00:33:52,070 Quindi echo ciao. 732 00:33:52,070 --> 00:33:53,850 E 'solo eco ciao allo schermo. 733 00:33:53,850 --> 00:33:55,170 734 00:33:55,170 --> 00:33:56,390 Ciao mondo. 735 00:33:56,390 --> 00:33:57,890 Echi ciao mondo. 736 00:33:57,890 --> 00:34:02,650 >> Quindi, un comando o una simbolo che bash capisce 737 00:34:02,650 --> 00:34:07,620 è questo simbolo di maggiore, e che è l'uscita di un simbolo di file. 738 00:34:07,620 --> 00:34:10,940 Quindi, se ho l'uscita di questo foo, c'è ora un file 739 00:34:10,940 --> 00:34:15,100 chiamato foo, all'interno di che è ciao mondo. 740 00:34:15,100 --> 00:34:18,489 Così notato che quando mi associo ciao tubo mondo in foo, 741 00:34:18,489 --> 00:34:19,980 non ha eco ciao mondo. 742 00:34:19,980 --> 00:34:22,630 Invece è stato messo in file foo. 743 00:34:22,630 --> 00:34:25,340 E un altro comando solo di buttare a voi, cat. 744 00:34:25,340 --> 00:34:29,191 Questo è un modo semplice per solo completamente visualizzare il contenuto del file 745 00:34:29,191 --> 00:34:31,440 in modo che non devo aprire un editor di testo per visualizzarlo. 746 00:34:31,440 --> 00:34:34,159 Quindi il contenuto del file foo sono ciao mondo. 747 00:34:34,159 --> 00:34:38,460 E ho potuto gatto blah.c, il contenuto è presente. 748 00:34:38,460 --> 00:34:42,123 >> Anche in questo caso, si tratta di comandi che, non lo fanno si aspettano di avere tutti memorizzati. 749 00:34:42,123 --> 00:34:43,860 L'idea è che li ho visti. 750 00:34:43,860 --> 00:34:45,735 Forse si sta lavorando qualcosa, e tu sei 751 00:34:45,735 --> 00:34:47,230 come se fossi malato di aprire questo file. 752 00:34:47,230 --> 00:34:50,120 Vorrei poter solo guardare il contenuto reale veloce. 753 00:34:50,120 --> 00:34:52,320 Si potrebbe fare che, poi guardare indietro e dire oh 754 00:34:52,320 --> 00:34:55,250 ricordare qualcosa di simile che esiste, ed è il gatto. 755 00:34:55,250 --> 00:35:00,630 >> In modo che sta andando in un file. 756 00:35:00,630 --> 00:35:06,639 Ora non c'è davvero nulla di buono esempio di lettura da un file ancora. 757 00:35:06,639 --> 00:35:08,930 Che cosa è qualcosa che prende qualcosa di standard? 758 00:35:08,930 --> 00:35:10,010 759 00:35:10,010 --> 00:35:11,544 Qualsiasi semplice comando di Linux? 760 00:35:11,544 --> 00:35:13,480 761 00:35:13,480 --> 00:35:16,970 Quando arriviamo ad essa, in un paio settimane tutte le piece-- bene, 762 00:35:16,970 --> 00:35:20,470 questa settimana avete un pezzo in cui si iniziare a prendere input da parte dell'utente. 763 00:35:20,470 --> 00:35:23,696 E così di solito si digita tale ingresso alla tastiera. 764 00:35:23,696 --> 00:35:25,570 Invece di digitare che ingresso alla tastiera, 765 00:35:25,570 --> 00:35:30,950 si può invece tubo da un file in modo che quando si fa Mario, ./mario, 766 00:35:30,950 --> 00:35:35,200 tubo in da un dato file, e che sta per eseguire il programma mario. 767 00:35:35,200 --> 00:35:37,300 Non mi aspettavo di ingresso a la tastiera, invece è 768 00:35:37,300 --> 00:35:39,650 solo andando a leggere il righe del file foo. 769 00:35:39,650 --> 00:35:45,230 >> Quindi maggiore di foo mette in il file foo, e meno di foo 770 00:35:45,230 --> 00:35:50,170 prende roba dal file foo e che utilizza come input per il programma. 771 00:35:50,170 --> 00:35:51,520 772 00:35:51,520 --> 00:36:00,630 E proprio a vederlo, potremmo anche eco foo bar baz, e allora invece di una 773 00:36:00,630 --> 00:36:03,850 superiore, facciamo due in foo. 774 00:36:03,850 --> 00:36:05,610 Che cosa fare? 775 00:36:05,610 --> 00:36:07,180 Si aggiunge solo per il file. 776 00:36:07,180 --> 00:36:15,360 Così, invece notare se faccio eco blah in foo e poi gatto foo, è solo bla. 777 00:36:15,360 --> 00:36:18,285 Così, quando si output in un file che, sovrascrive completamente il file. 778 00:36:18,285 --> 00:36:19,330 779 00:36:19,330 --> 00:36:22,740 Se si desidera solo per aggiungere, doppia [? grader. ?] 780 00:36:22,740 --> 00:36:24,080 >> E per ultimo è il tubo. 781 00:36:24,080 --> 00:36:29,590 Tubo diventa molto più complicato, in cui prende l'output di un comando 782 00:36:29,590 --> 00:36:32,320 e la immette il comando successivo. 783 00:36:32,320 --> 00:36:36,140 Quindi un po 'cosa comune, la storia. 784 00:36:36,140 --> 00:36:37,920 Quindi, ugh, non voglio guardare a questa. 785 00:36:37,920 --> 00:36:40,680 786 00:36:40,680 --> 00:36:44,485 Visualizza tutti i comandi della mia storia dove ho Grep-ed per qualcosa. 787 00:36:44,485 --> 00:36:45,360 No, questo è fonte di confusione. 788 00:36:45,360 --> 00:36:50,360 Visualizza tutti i comandi dove mi trovo. 789 00:36:50,360 --> 00:36:52,360 Tutto trovano i comandi che io abbia mai imbattuto. 790 00:36:52,360 --> 00:36:55,050 >> Così la storia. 791 00:36:55,050 --> 00:36:59,017 Ora uscite storia alla schermo la lista dei comandi, 792 00:36:59,017 --> 00:37:00,850 ma io non voglio uscita allo schermo. 793 00:37:00,850 --> 00:37:03,445 Invece ho intenzione di tubo in grep. 794 00:37:03,445 --> 00:37:04,790 795 00:37:04,790 --> 00:37:07,830 Quindi cerchiamo di Grep per tutte le istanze di find. 796 00:37:07,830 --> 00:37:09,550 797 00:37:09,550 --> 00:37:17,000 Così ora invece di prendere grep l'ingresso, invece di-- 798 00:37:17,000 --> 00:37:24,360 grep è in grado di gestire come input-- siamo utilizzando grep leggermente diverso qui. 799 00:37:24,360 --> 00:37:29,550 Così, invece di digitare l'elenco dei cose che volevamo cercare 800 00:37:29,550 --> 00:37:31,070 e ha detto grep sta prendendo come input. 801 00:37:31,070 --> 00:37:34,810 Quindi, se mi trovo solo grep, esso aspetta che io digito le cose. 802 00:37:34,810 --> 00:37:37,661 Così gatto ciao trovare. 803 00:37:37,661 --> 00:37:38,160 Ciao. 804 00:37:38,160 --> 00:37:40,430 805 00:37:40,430 --> 00:37:40,930 Trova. 806 00:37:40,930 --> 00:37:43,670 Notate ogni volta che si digita trovare riconosce che ho digitato find. 807 00:37:43,670 --> 00:37:44,880 808 00:37:44,880 --> 00:37:49,540 Così, invece di questo, sarà file di ricerca per trovare. 809 00:37:49,540 --> 00:37:53,930 >> Così la storia è ora di andare a uscita un elenco di tutti i comandi. 810 00:37:53,930 --> 00:37:55,200 811 00:37:55,200 --> 00:37:58,100 Stiamo mettendo che in uscita, e stiamo alimentandola a grep, 812 00:37:58,100 --> 00:38:00,180 e quindi è sputando tutte le istanze di scoperta. 813 00:38:00,180 --> 00:38:02,170 814 00:38:02,170 --> 00:38:05,570 Il motivo che mi ha detto che sarebbe stato fonte di confusione è se I-- è ancora confusa. 815 00:38:05,570 --> 00:38:07,030 Se io GREP per grep. 816 00:38:07,030 --> 00:38:08,755 817 00:38:08,755 --> 00:38:11,130 Si noti è più o meno sempre che mostra il comando ho appena 818 00:38:11,130 --> 00:38:15,280 corse perché quel comando stessa ha grep all'interno di esso. 819 00:38:15,280 --> 00:38:16,580 820 00:38:16,580 --> 00:38:20,674 >> OK, in modo da tutte le domande su qualsiasi cosa? 821 00:38:20,674 --> 00:38:22,340 E io trasferisco sopra a questo punto. 822 00:38:22,340 --> 00:38:24,690 Speriamo che questo sia un bel Panoramica di tutti i comandi 823 00:38:24,690 --> 00:38:30,100 che non c'è bisogno di avere memorizzati, ma questi costituiscono 824 00:38:30,100 --> 00:38:32,950 un solido 95% di quello che fare dalla riga di comando. 825 00:38:32,950 --> 00:38:34,310 826 00:38:34,310 --> 00:38:39,140 Anche tenere a mente che la riga di comando in sé, bash è un linguaggio di programmazione, 827 00:38:39,140 --> 00:38:43,070 e così quando si arriva al dunque, è potrebbe desiderare di fare cose veramente complesse. 828 00:38:43,070 --> 00:38:47,522 E così ha cose come loop e IFS, e tutti coloro 829 00:38:47,522 --> 00:38:50,230 che si sta andando per abituarsi a con i vostri linguaggi di programmazione. 830 00:38:50,230 --> 00:38:53,660 Ma questo è al di là del campo di applicazione della presente sezione. 831 00:38:53,660 --> 00:38:55,520 832 00:38:55,520 --> 00:38:56,985 OK, quindi non domande? 833 00:38:56,985 --> 00:38:57,940 834 00:38:57,940 --> 00:38:58,523 ALLISON: Nessuno? 835 00:38:58,523 --> 00:38:59,450 GABRIEL: Avete intenzione a-- 836 00:38:59,450 --> 00:39:01,158 ALLISON: posso farlo sulla mia se vuoi. 837 00:39:01,158 --> 00:39:02,626 Siamo in grado di vedere cosa succede. 838 00:39:02,626 --> 00:39:03,750 ROB BOWDEN: Off per Allison. 839 00:39:03,750 --> 00:39:05,090 ALLISON: Woo. 840 00:39:05,090 --> 00:39:07,504 Sei un atto difficile da seguire, Rob. 841 00:39:07,504 --> 00:39:08,920 Vuoi che a passare con voi? 842 00:39:08,920 --> 00:39:10,246 Oppure avete ottenuto, OK. 843 00:39:10,246 --> 00:39:13,590 844 00:39:13,590 --> 00:39:16,990 Io vado a cercare di non piuttosto essere il più lungo lì. 845 00:39:16,990 --> 00:39:20,619 846 00:39:20,619 --> 00:39:22,660 Vediamo se questa volontà lavorare nel modo che voglio. 847 00:39:22,660 --> 00:39:26,170 848 00:39:26,170 --> 00:39:26,670 Forse? 849 00:39:26,670 --> 00:39:27,760 850 00:39:27,760 --> 00:39:28,296 Haha! 851 00:39:28,296 --> 00:39:28,796 Sì. 852 00:39:28,796 --> 00:39:30,460 853 00:39:30,460 --> 00:39:34,066 >> Così sto solo andando a andare molto rapidamente attraverso variabili, loop, condizionali, 854 00:39:34,066 --> 00:39:35,440 e un po 'dal compilatore. 855 00:39:35,440 --> 00:39:38,570 Se avete domande a qualsiasi momento, per favore ferma. 856 00:39:38,570 --> 00:39:42,750 Questi ragazzi mi ricordano di ripetere la tua domanda nel caso in cui mi dimentico, 857 00:39:42,750 --> 00:39:44,210 ma non dovrebbe essere troppo male. 858 00:39:44,210 --> 00:39:45,850 >> Quindi le variabili, sì. 859 00:39:45,850 --> 00:39:48,060 Non abbiamo uno dei vostri Pezzi Scratch qui. 860 00:39:48,060 --> 00:39:50,440 Sono sicuro che molti di voi, se hai avuto una sorta di gioco 861 00:39:50,440 --> 00:39:53,810 che si è creato con Scratch, hai avuto per tenere traccia di qualcosa di simile a punteggio, 862 00:39:53,810 --> 00:39:55,870 o il tempo, o qualcosa del genere. 863 00:39:55,870 --> 00:39:58,080 Così quelli arancione pezzi che vediamo lì 864 00:39:58,080 --> 00:40:02,630 sono solo la forma di Scratch variabili, e sarà sicuramente 865 00:40:02,630 --> 00:40:04,640 essere l'utilizzo di variabili durante i vostri programmi. 866 00:40:04,640 --> 00:40:07,350 Se non lo sei, io non sono davvero sicuro di quello che stai facendo. 867 00:40:07,350 --> 00:40:09,000 868 00:40:09,000 --> 00:40:12,215 >> Ma comunque, grande cosa, definizione delle variabili. 869 00:40:12,215 --> 00:40:13,630 870 00:40:13,630 --> 00:40:16,970 Con C ogni variabile ha ad avere un tipo dichiarato, 871 00:40:16,970 --> 00:40:22,090 così ti ho dato un quella generale in alto. 872 00:40:22,090 --> 00:40:24,045 Così avrete il vostro digitare e quindi tutto ciò che 873 00:40:24,045 --> 00:40:25,420 si decide di chiamare la variabile. 874 00:40:25,420 --> 00:40:27,500 875 00:40:27,500 --> 00:40:29,680 Quindi, in questo caso, tipo nella lista delle variabili. 876 00:40:29,680 --> 00:40:31,400 >> Abbiamo tre esempi. 877 00:40:31,400 --> 00:40:34,439 Char di qualche grado, di un A, che è ciò che 878 00:40:34,439 --> 00:40:36,230 Sono sicuro che tutti voi volete per entrare in questa classe. 879 00:40:36,230 --> 00:40:37,380 880 00:40:37,380 --> 00:40:40,670 È possibile definire più variabili in un'unica riga 881 00:40:40,670 --> 00:40:43,880 purché siano tutti dello stesso tipo, che è il nostro secondo esempio ci 882 00:40:43,880 --> 00:40:46,409 dove si hanno tre variabili, x, y, z. 883 00:40:46,409 --> 00:40:47,200 Sono tutti i carri allegorici. 884 00:40:47,200 --> 00:40:49,160 885 00:40:49,160 --> 00:40:53,250 E allora si può anche, in questo ultimo esempio con int punteggio e il numero 886 00:40:53,250 --> 00:40:56,510 di squadre, è possibile li inizializzare proprio lì. 887 00:40:56,510 --> 00:41:01,270 >> Quindi, nell'esempio mezzo dove siamo appena hanno galleggiante di x, y, z, 888 00:41:01,270 --> 00:41:02,730 quelli che non sono ancora inizializzati. 889 00:41:02,730 --> 00:41:04,140 Essi non hanno alcun valore. 890 00:41:04,140 --> 00:41:05,600 O hanno valori di immondizia. 891 00:41:05,600 --> 00:41:07,370 892 00:41:07,370 --> 00:41:10,790 E se si cerca di utilizzarli, il compilatore urlare a voi. 893 00:41:10,790 --> 00:41:14,727 Si deve sia dichiarare e inizializzare le variabili. 894 00:41:14,727 --> 00:41:16,310 Quindi, in questo ultimo, stiamo facendo entrambe le cose. 895 00:41:16,310 --> 00:41:19,320 Siamo la dichiarazione delle variabili di punteggio e il numero di squadre, 896 00:41:19,320 --> 00:41:24,134 e li stiamo in fase di inizializzazione, dando li loro valori iniziali di 7 e 4 897 00:41:24,134 --> 00:41:24,675 rispettivamente. 898 00:41:24,675 --> 00:41:26,310 899 00:41:26,310 --> 00:41:27,190 Freddo. 900 00:41:27,190 --> 00:41:28,550 Tutto bene? 901 00:41:28,550 --> 00:41:29,470 Impressionante. 902 00:41:29,470 --> 00:41:31,690 >> OK, quindi alcune convenzioni. 903 00:41:31,690 --> 00:41:35,965 Se voi ragazzi avete letto attraverso lo stile 50, questi 904 00:41:35,965 --> 00:41:39,510 sono solo cose che vorremmo per di implementare nel vostro stile. 905 00:41:39,510 --> 00:41:41,230 Nomi così significativi. 906 00:41:41,230 --> 00:41:45,700 Se si inizia a chiamare le cose solo x, y, z, in particolare 907 00:41:45,700 --> 00:41:47,902 come si entra in lunghe programmi, si è 908 00:41:47,902 --> 00:41:49,610 probabilmente andando a confondere te stesso ed essere 909 00:41:49,610 --> 00:41:52,930 come quello che è questa variabile si riferisce a. 910 00:41:52,930 --> 00:41:55,880 Non ho idea di cosa questo significhi. 911 00:41:55,880 --> 00:41:59,280 >> Quindi, se è destinata a tenere un punteggio, lo chiamano punteggio. 912 00:41:59,280 --> 00:42:05,720 Se è destinata a tenere qualche risposta o provocare, dargli un nome del genere. 913 00:42:05,720 --> 00:42:09,920 Per i cicli, che ci sarà entrare nella diapositiva successiva, 914 00:42:09,920 --> 00:42:12,985 variabili lettera singoli vanno bene. 915 00:42:12,985 --> 00:42:16,033 916 00:42:16,033 --> 00:42:18,449 ROB BOWDEN: i, j, e k sono solo convenzioni per i cicli for 917 00:42:18,449 --> 00:42:22,050 che ognuno si aspetta essere chiamato i, j, k. 918 00:42:22,050 --> 00:42:26,890 È possibile chiamare them-- vedo fila colonna o riga chiamata a volte 919 00:42:26,890 --> 00:42:29,450 per due cicli annidati, e questo è anche un po 'di serie. 920 00:42:29,450 --> 00:42:31,450 Ma i e j è completamente noto. 921 00:42:31,450 --> 00:42:33,670 >> ALLISON: Sì, i e j sei totalmente soddisfacente. 922 00:42:33,670 --> 00:42:36,250 Per motivi di chiarezza, come in alcune delle vostre serie P, 923 00:42:36,250 --> 00:42:39,745 potrebbe avere senso per avere più cose descrittivi a lì solo 924 00:42:39,745 --> 00:42:40,920 per tenere traccia di esso. 925 00:42:40,920 --> 00:42:45,100 Ma penso che i, j, k e credo la stragrande maggioranza di noi tutto l'uso. 926 00:42:45,100 --> 00:42:46,890 927 00:42:46,890 --> 00:42:50,340 >> ROB BOWDEN: Con questi convenzioni, così lo stile è importante. 928 00:42:50,340 --> 00:42:53,520 E 'uno dei quattro assi su cui si sta graduate, 929 00:42:53,520 --> 00:42:58,110 ed è così facile andare poco più di il vostro P situato alla fine e assicurarsi che 930 00:42:58,110 --> 00:42:59,770 che non ci sono errori stilistici. 931 00:42:59,770 --> 00:43:01,742 Quindi, assicurarsi che si sta tabulazione correttamente. 932 00:43:01,742 --> 00:43:03,200 Assicurarsi che le variabili sono chiamati. 933 00:43:03,200 --> 00:43:04,450 Lasciare alcuni commenti. 934 00:43:04,450 --> 00:43:06,677 E 'molto facile per ottenere quei punti. 935 00:43:06,677 --> 00:43:09,510 Non dovete pensare tutto ciò al fine di ottenere quei punti. 936 00:43:09,510 --> 00:43:11,093 Non c'è bisogno di capire nulla. 937 00:43:11,093 --> 00:43:12,640 E 'solo facendo sembrare abbastanza. 938 00:43:12,640 --> 00:43:14,850 >> ALLISON: In realtà, abbiamo avere stile 50, che 939 00:43:14,850 --> 00:43:17,920 vi dirà dove stai pasticciano up se siete rovinare sullo stile 940 00:43:17,920 --> 00:43:21,180 e vi dirà esattamente quello che bisogno di sistemare e come è necessario risolvere il problema. 941 00:43:21,180 --> 00:43:23,900 E 'anche solo bene ricordare che è la politica corso 942 00:43:23,900 --> 00:43:27,200 che se siete in ufficio ore e il codice è un pasticcio, 943 00:43:27,200 --> 00:43:30,200 possiamo rifiutare di aiutare finché non si guarda più bello. 944 00:43:30,200 --> 00:43:34,310 Quindi iniziare a destra, mantenere stile coerente, 945 00:43:34,310 --> 00:43:37,100 si sta anche solo andando a fare la vostra vita molto più semplice quando 946 00:43:37,100 --> 00:43:38,730 si sta cercando di passare attraverso il debug. 947 00:43:38,730 --> 00:43:41,510 Se si sta cercando di capire dove ti manca una parentesi graffa 948 00:43:41,510 --> 00:43:44,890 e sono in tutto il luogo, si è basta fare il vostro proprio la vita più difficile. 949 00:43:44,890 --> 00:43:47,217 Quindi, essere coerente con lo stile. 950 00:43:47,217 --> 00:43:48,800 Prometto che farò la vita più facile. 951 00:43:48,800 --> 00:43:50,330 Si farà la vita più facile. 952 00:43:50,330 --> 00:43:51,869 Ognuno sarà molto più felice. 953 00:43:51,869 --> 00:43:52,910 E questo è ciò che si desidera. 954 00:43:52,910 --> 00:43:54,192 955 00:43:54,192 --> 00:43:55,650 GABRIEL: Il tuo voto sarà più alto. 956 00:43:55,650 --> 00:43:56,858 ALLISON: Sì, e il vostro grado. 957 00:43:56,858 --> 00:43:58,410 958 00:43:58,410 --> 00:44:01,930 Se il TF è come te, tende ad essere favorevole. 959 00:44:01,930 --> 00:44:02,940 960 00:44:02,940 --> 00:44:05,010 Va bene, e poi basta il secondo punto qui. 961 00:44:05,010 --> 00:44:06,300 Inizializzazioni coerenti. 962 00:44:06,300 --> 00:44:09,605 Quindi, come abbiamo visto, è possibile dichiarare e inizializzare le cose. 963 00:44:09,605 --> 00:44:10,750 964 00:44:10,750 --> 00:44:13,180 Più variabili sulla stessa linea. 965 00:44:13,180 --> 00:44:17,930 Una cosa che vorremmo non di fare è quello di dichiarare alcune variabili 966 00:44:17,930 --> 00:44:21,360 e non li inizializza sullo stesso linea che si inizializza gli altri. 967 00:44:21,360 --> 00:44:23,960 >> Quindi, nel caso quello reso alcun senso, 968 00:44:23,960 --> 00:44:29,050 abbiamo l'esempio qui dove stiamo dichiarando int 969 00:44:29,050 --> 00:44:31,180 nelle variabili di quartieri Dimes e centesimi, 970 00:44:31,180 --> 00:44:34,214 ma quarti e penny non hanno alcun valore iniziale. 971 00:44:34,214 --> 00:44:36,630 Noi non li abbiamo inizializzato, ma proprio nel mezzo là 972 00:44:36,630 --> 00:44:38,600 abbiamo già inizializzato monetine a 0. 973 00:44:38,600 --> 00:44:41,650 Quindi, o fare quarti, Dimes, centesimi. 974 00:44:41,650 --> 00:44:43,170 O fanno quarti uguale a 0. 975 00:44:43,170 --> 00:44:43,930 Dimes uguale a 0. 976 00:44:43,930 --> 00:44:46,810 Pennies uguale a 0, o qualsiasi altra cosa tali valori iniziali sono. 977 00:44:46,810 --> 00:44:49,800 >> Grande cosa con stile, essere coerenti. 978 00:44:49,800 --> 00:44:51,050 In caso di dubbio, essere coerenti. 979 00:44:51,050 --> 00:44:52,129 980 00:44:52,129 --> 00:44:53,420 Ma anche seguire la nostra guida di stile. 981 00:44:53,420 --> 00:44:54,710 982 00:44:54,710 --> 00:44:55,317 Freddo. 983 00:44:55,317 --> 00:44:56,150 Tutto bene lì? 984 00:44:56,150 --> 00:44:57,566 >> PUBBLICO: Dov'è la guida di stile? 985 00:44:57,566 --> 00:45:00,800 ALLISON: La guida di stile è on-- qual è il sito? 986 00:45:00,800 --> 00:45:03,950 >> GABRIEL: Penso che sia manual.cs50.net/-- 987 00:45:03,950 --> 00:45:04,575 ALLISON: Style? 988 00:45:04,575 --> 00:45:05,610 989 00:45:05,610 --> 00:45:06,390 >> GABRIEL: Style. 990 00:45:06,390 --> 00:45:06,920 Yep. 991 00:45:06,920 --> 00:45:07,520 >> ALLISON: Sì. 992 00:45:07,520 --> 00:45:10,150 Quindi mettere in discussione, in cui è in stile 50. 993 00:45:10,150 --> 00:45:12,250 manual.cs50.net/style. 994 00:45:12,250 --> 00:45:13,639 Sì? 995 00:45:13,639 --> 00:45:16,880 >> PUBBLICO: Se stiamo definendo variabili, è OK 996 00:45:16,880 --> 00:45:28,145 se mettiamo come [incomprensibile] come int punteggio e quindi int obiettivo. 997 00:45:28,145 --> 00:45:29,873 998 00:45:29,873 --> 00:45:35,100 Quindi vuoi dire che ora abbiamo avuto modo di definirli insieme? 999 00:45:35,100 --> 00:45:37,640 >> ALLISON: Così in discussione, dovrebbe si dispone di codice ridondante 1000 00:45:37,640 --> 00:45:40,940 quando si definisce variabili come int e punteggio 1001 00:45:40,940 --> 00:45:43,239 sulla prossima int gioco online? 1002 00:45:43,239 --> 00:45:46,030 ROB BOWDEN: Ci sono sicuramente casi in cui il codice ridondante è male. 1003 00:45:46,030 --> 00:45:47,738 Non prenderei in considerazione quel codice ridondante. 1004 00:45:47,738 --> 00:45:50,970 Non ho quasi mai dichiarare più variabili sulla stessa riga mai. 1005 00:45:50,970 --> 00:45:53,736 E se non altro, è perché di solito lascio una sorta di commento 1006 00:45:53,736 --> 00:45:55,235 spiegando ciò che la variabile è per. 1007 00:45:55,235 --> 00:45:57,582 Quindi io dico int punteggio barra barra. 1008 00:45:57,582 --> 00:45:59,350 Tiene traccia di tutto ciò. 1009 00:45:59,350 --> 00:46:00,710 In totale barra barra. 1010 00:46:00,710 --> 00:46:01,790 1011 00:46:01,790 --> 00:46:06,455 Quindi è molto più grossolano in quel modo metterli tutti sulla stessa riga. 1012 00:46:06,455 --> 00:46:08,080 Ho appena non li metto sulla stessa linea. 1013 00:46:08,080 --> 00:46:10,580 >> ALLISON: mi sento come se fosse preferenza personale a questo punto. 1014 00:46:10,580 --> 00:46:14,900 >> PUBBLICO: Fa che vanno per cicli for e roba troppo? 1015 00:46:14,900 --> 00:46:15,900 ROB BOWDEN: Come dentro? 1016 00:46:15,900 --> 00:46:18,282 Come int i uguale a 0 virgola longitudinale è pari a qualcosa? 1017 00:46:18,282 --> 00:46:19,490 Che non si dispone di una scelta. 1018 00:46:19,490 --> 00:46:21,850 1019 00:46:21,850 --> 00:46:25,910 Con cicli for l'inizializzazione part-- per cui si potrebbe aver visto solo 1020 00:46:25,910 --> 00:46:31,520 int i uguale a 0 e virgola i meno di qualunque punto e virgola i plus plus. 1021 00:46:31,520 --> 00:46:33,820 Che int i uguale a 0, tecnicamente si può anche 1022 00:46:33,820 --> 00:46:35,770 facciamo quello che abbiamo visto prima con la sintassi virgola. 1023 00:46:35,770 --> 00:46:39,790 int i uguale a 0 virgola j è uguale a 3 comma k è uguale a 5. 1024 00:46:39,790 --> 00:46:41,610 1025 00:46:41,610 --> 00:46:44,320 Non è una scelta da dividere che fino in più righe, 1026 00:46:44,320 --> 00:46:46,530 e questo è normale. 1027 00:46:46,530 --> 00:46:47,780 Vedendo che non vi va bene. 1028 00:46:47,780 --> 00:46:49,182 1029 00:46:49,182 --> 00:46:49,890 ALLISON: Awesome. 1030 00:46:49,890 --> 00:46:52,120 Beh, comodo Segue in loop. 1031 00:46:52,120 --> 00:46:54,860 1032 00:46:54,860 --> 00:46:58,980 Quindi sì, qui abbiamo alcuni esempi di cicli che voi ragazzi ha visto in Scratch. 1033 00:46:58,980 --> 00:47:01,550 E, naturalmente, tutti questi può solo essere ricreato in C. 1034 00:47:01,550 --> 00:47:04,610 E si tratta fondamentalmente consentono per ripetere alcune sezioni di codice 1035 00:47:04,610 --> 00:47:06,740 finché una certa condizione è soddisfatto, di cui parleremo 1036 00:47:06,740 --> 00:47:09,198 entrare a destra dopo aver parlato su loop con condizionali. 1037 00:47:09,198 --> 00:47:11,150 1038 00:47:11,150 --> 00:47:12,570 >> Quindi abbiamo tre tipi principali. 1039 00:47:12,570 --> 00:47:17,500 Infatti, mentre, e fare, mentre, che noi tutti passare attraverso in questo momento. 1040 00:47:17,500 --> 00:47:18,860 Così prima è per i loop. 1041 00:47:18,860 --> 00:47:20,490 1042 00:47:20,490 --> 00:47:25,034 Così per alcune condizioni, eseguire questo blocco di codice. 1043 00:47:25,034 --> 00:47:27,200 Abbiamo questo piccolo fresco diagramma qui nella parte inferiore. 1044 00:47:27,200 --> 00:47:28,230 1045 00:47:28,230 --> 00:47:32,310 Ma in fondo che avete in per informazioni, che prima linea, 1046 00:47:32,310 --> 00:47:34,240 si sta andando a inizializzare le variabili. 1047 00:47:34,240 --> 00:47:38,260 >> Così come abbiamo detto, i è uguale a 0 o i è uguale a 10. 1048 00:47:38,260 --> 00:47:40,010 Qualunque cosa avete bisogno che variabili di essere è 1049 00:47:40,010 --> 00:47:43,970 sta per essere inizializzato lì, dichiarato e inizializzato a un valore. 1050 00:47:43,970 --> 00:47:46,760 Allora abbiamo un po ' condizione che sta andando 1051 00:47:46,760 --> 00:47:48,900 per essere il nostro controllo variabile contro qualcosa. 1052 00:47:48,900 --> 00:47:55,220 Quindi, nel caso tipico caso in cui forse si vuole questa sezione di codice 1053 00:47:55,220 --> 00:47:56,620 eseguire cinque volte. 1054 00:47:56,620 --> 00:48:02,380 Così avremmo int i uguale a 0, e noi voglio che sia quando i è inferiore a 5. 1055 00:48:02,380 --> 00:48:04,940 In modo che condizione è solo andando a controllare che ogni volta. 1056 00:48:04,940 --> 00:48:07,120 Se tale condizione restituisce true, è 1057 00:48:07,120 --> 00:48:11,162 andando a eseguire il codice, che è esattamente ciò che questo piccolo schema sta mostrando. 1058 00:48:11,162 --> 00:48:12,370 1059 00:48:12,370 --> 00:48:13,639 >> E così lo esegue. 1060 00:48:13,639 --> 00:48:15,430 Si aggiorna una variabile, che è quello che vediamo 1061 00:48:15,430 --> 00:48:21,020 nell'ultima parte del nostro per inizializzazione del ciclo lì. 1062 00:48:21,020 --> 00:48:22,370 1063 00:48:22,370 --> 00:48:26,030 Quindi sarà solo continuare a fare questo fino a quando tale condizione non è soddisfatta, 1064 00:48:26,030 --> 00:48:28,010 e quindi viene nuovamente il ciclo e continua 1065 00:48:28,010 --> 00:48:29,960 passare con il resto del programma. 1066 00:48:29,960 --> 00:48:31,320 1067 00:48:31,320 --> 00:48:33,620 Tutto bene lì? 1068 00:48:33,620 --> 00:48:34,440 Freddo. 1069 00:48:34,440 --> 00:48:37,780 >> Quindi, ecco un esempio, molto simile a qualcosa di cui ho appena parlato. 1070 00:48:37,780 --> 00:48:42,030 Quindi, vogliamo solo la stampa questo è CS50 10 volte. 1071 00:48:42,030 --> 00:48:44,540 Quindi, vedete qui abbiamo per la nostra, e poi ci 1072 00:48:44,540 --> 00:48:47,450 inizializzare la variabile i per essere uguale a 0. 1073 00:48:47,450 --> 00:48:50,610 La nostra condizione è il controllo che è inferiore a 10. 1074 00:48:50,610 --> 00:48:55,210 Quindi, valutata come vera quando abbiamo iniziare, e quindi aggiorna la nostra variabile 1075 00:48:55,210 --> 00:48:58,985 ogni volta che esegue effettivamente e stampa questo è CS50. 1076 00:48:58,985 --> 00:49:00,510 1077 00:49:00,510 --> 00:49:02,180 E terminerà dopo 10 volte. 1078 00:49:02,180 --> 00:49:03,190 1079 00:49:03,190 --> 00:49:04,070 Freddo. 1080 00:49:04,070 --> 00:49:07,130 >> Così, mentre i cicli sono accanto. 1081 00:49:07,130 --> 00:49:12,400 E come vedete qui, non ci resta che qualche tempo a questa domanda condition--? 1082 00:49:12,400 --> 00:49:15,238 >> PUBBLICO: Come posso saltare in realtà non solo un numero, 1083 00:49:15,238 --> 00:49:19,030 ma due numeri [incomprensibile] i plus plus plus? 1084 00:49:19,030 --> 00:49:23,390 >> ALLISON: Quindi la domanda era come si può aggiornare la variabile da più di un 1085 00:49:23,390 --> 00:49:24,070 alla volta. 1086 00:49:24,070 --> 00:49:26,860 Così ho plus plus sarà aggiornamento di uno ogni volta. 1087 00:49:26,860 --> 00:49:32,310 Se si voleva aggiornarlo due, si potrebbe fare i uguale a più 2. 1088 00:49:32,310 --> 00:49:34,526 >> ROB BOWDEN: Hai visto più uguale a lezione ancora? 1089 00:49:34,526 --> 00:49:35,442 >> PUBBLICO: [incomprensibile]. 1090 00:49:35,442 --> 00:49:37,440 1091 00:49:37,440 --> 00:49:42,110 >> ALLISON: E 'efficace la stessa cosa come i uguale i più 2. 1092 00:49:42,110 --> 00:49:46,130 Così sta andando a prenderlo e aggiornarlo due ogni volta. 1093 00:49:46,130 --> 00:49:49,432 Inoltre ha eguagliato è solo qualcosa noi chiamiamo zucchero sintattico. 1094 00:49:49,432 --> 00:49:52,390 ROB BOWDEN: Sì, quelli esistono per più o meno tutti gli operatori aritmetici. 1095 00:49:52,390 --> 00:49:55,830 Volte così ho uguale raddoppierebbe il numero. 1096 00:49:55,830 --> 00:50:02,590 j dividere uguale 3 è la stessa come j pari j diviso per 3. 1097 00:50:02,590 --> 00:50:07,399 >> ALLISON: o meno uguale a 2 sarebbe diminuire i da due ogni volta. 1098 00:50:07,399 --> 00:50:08,565 ROB BOWDEN: Anche eguali mod. 1099 00:50:08,565 --> 00:50:09,690 1100 00:50:09,690 --> 00:50:13,270 Non hai visto operatori bit a bit, ma punto di inserimento è uguale e commerciale è uguale, 1101 00:50:13,270 --> 00:50:14,560 tutti quelli esistono. 1102 00:50:14,560 --> 00:50:19,480 >> ALLISON: Così un sacco di volte, in particolare con il vostro primo paio di set di P, 1103 00:50:19,480 --> 00:50:22,527 sarete probabilmente con incrementi di uno, così ho plus plus, j plus plus 1104 00:50:22,527 --> 00:50:24,610 sono tutte cose che si sta andando di essere in genere utilizzando. 1105 00:50:24,610 --> 00:50:28,240 Ma tale condizione aggiornamento è completamente sotto il vostro controllo. 1106 00:50:28,240 --> 00:50:32,310 È possibile aggiornarlo con qualsiasi incrementi o in qualunque modo si decida di. 1107 00:50:32,310 --> 00:50:33,389 1108 00:50:33,389 --> 00:50:35,680 Forse persino vuoi che sia un numero casuale a volte. 1109 00:50:35,680 --> 00:50:37,180 1110 00:50:37,180 --> 00:50:39,580 Ma sì, ci sono un sacco di cose che si possono fare con questo. 1111 00:50:39,580 --> 00:50:41,280 Tu non sei limitato a i plus plus. 1112 00:50:41,280 --> 00:50:44,400 >> ROB BOWDEN: Solo così si so che esiste, anche 1113 00:50:44,400 --> 00:50:46,960 esiste in un'altra forma, più oltre i. 1114 00:50:46,960 --> 00:50:51,410 Quindi, se siete mai ricerca on-line e capita di vedere i plus plus, 1115 00:50:51,410 --> 00:50:52,870 più o meno significa la stessa cosa. 1116 00:50:52,870 --> 00:50:54,377 1117 00:50:54,377 --> 00:50:54,960 ALLISON: Freddo. 1118 00:50:54,960 --> 00:50:56,070 1119 00:50:56,070 --> 00:50:56,740 Buono? 1120 00:50:56,740 --> 00:50:57,240 Impressionante. 1121 00:50:57,240 --> 00:50:59,190 1122 00:50:59,190 --> 00:50:59,990 Così, mentre i loop. 1123 00:50:59,990 --> 00:51:01,160 1124 00:51:01,160 --> 00:51:02,570 Molto simile. 1125 00:51:02,570 --> 00:51:03,737 Hai qualche condizione. 1126 00:51:03,737 --> 00:51:05,820 La cosa principale da notare qui è invece di avere 1127 00:51:05,820 --> 00:51:08,540 tre parti differenti di istituire, abbiamo uno. 1128 00:51:08,540 --> 00:51:11,090 Non ci resta che una certa condizione che viene controllato. 1129 00:51:11,090 --> 00:51:14,920 E nello stesso modo, finché tale condizione restituisce true, 1130 00:51:14,920 --> 00:51:16,840 il codice è andare a correre. 1131 00:51:16,840 --> 00:51:18,870 E se è falso, terminerà, mossa 1132 00:51:18,870 --> 00:51:21,930 sulla parte successiva del programma. 1133 00:51:21,930 --> 00:51:25,780 Quindi questo è una specie di like-- ciò che è un buon esempio di controllo 1134 00:51:25,780 --> 00:51:27,215 per qualche condizione normale? 1135 00:51:27,215 --> 00:51:29,402 1136 00:51:29,402 --> 00:51:30,235 GABRIEL: while true. 1137 00:51:30,235 --> 00:51:32,110 ALLISON: Si potrebbe fare while true. 1138 00:51:32,110 --> 00:51:33,510 Ebbene, 1 è uguale a 1. 1139 00:51:33,510 --> 00:51:34,970 1140 00:51:34,970 --> 00:51:37,642 >> ROB BOWDEN: Si può fare while-- basta invece di utilizzare un ciclo for, 1141 00:51:37,642 --> 00:51:39,600 è sempre possibile codificare un per ciclo in un ciclo while, 1142 00:51:39,600 --> 00:51:42,600 così ho maggiore di 0 o mentre i meno di 10. 1143 00:51:42,600 --> 00:51:45,200 1144 00:51:45,200 --> 00:51:46,010 >> ALLISON: Awesome. 1145 00:51:46,010 --> 00:51:50,640 E allora abbiamo fare cicli while, che è grande per la convalida utente, dove 1146 00:51:50,640 --> 00:51:55,370 si vuole ottenere qualcosa da l'utente, vedere se è valida, 1147 00:51:55,370 --> 00:51:57,060 e poi continuare da lì. 1148 00:51:57,060 --> 00:52:04,000 Quindi una delle cose da sapere è con un fare mentre è che sta andando ad eseguire, 1149 00:52:04,000 --> 00:52:08,000 e poi si rieseguire se è soddisfatta questa condizione. 1150 00:52:08,000 --> 00:52:11,240 >> Quindi probabilmente il modo migliore per fare questo è solo per vedere un esempio qui. 1151 00:52:11,240 --> 00:52:14,620 Quindi, come ho appena detto, l'utente convalida è davvero useful-- 1152 00:52:14,620 --> 00:52:17,520 o fare talora sono veramente utile con la convalida dell'utente. 1153 00:52:17,520 --> 00:52:19,730 Quindi questo è solo andare di ri-richiedere qualche utente 1154 00:52:19,730 --> 00:52:23,640 fino entrano in un numero positivo, che potrebbe essere utile per il vostro set di P 1155 00:52:23,640 --> 00:52:24,190 questa settimana. 1156 00:52:24,190 --> 00:52:25,850 1157 00:52:25,850 --> 00:52:29,480 E così in questo caso, quando eseguire inizialmente questo programma, 1158 00:52:29,480 --> 00:52:32,260 sta andando per la stampa inserire un numero positivo. 1159 00:52:32,260 --> 00:52:34,810 Sta andando a prendere un po ' input da parte dell'utente, 1160 00:52:34,810 --> 00:52:38,320 e poi sta andando a controllare che l'ingresso contro la condizione 1161 00:52:38,320 --> 00:52:39,500 che hai impostato per esso. 1162 00:52:39,500 --> 00:52:41,030 >> Quindi in questo caso è andare a controllare. 1163 00:52:41,030 --> 00:52:44,190 E 'intenzione di dire, OK, è il nostro ingresso negativo, 1164 00:52:44,190 --> 00:52:47,175 o è 0 o negativo, che sarebbe valido. 1165 00:52:47,175 --> 00:52:48,300 Così allora sarebbe nuovamente pronta. 1166 00:52:48,300 --> 00:52:50,280 1167 00:52:50,280 --> 00:52:50,780 Domanda? 1168 00:52:50,780 --> 00:52:54,720 >> PUBBLICO: E 'lo stesso poi come ciclo while se appena copiato il codice 1169 00:52:54,720 --> 00:52:56,680 e metterlo [incomprensibile] ciclo while? 1170 00:52:56,680 --> 00:52:59,620 1171 00:52:59,620 --> 00:53:05,160 >> ALLISON: Così questione era sarebbe questo sia lo stesso di appena un po 1172 00:53:05,160 --> 00:53:08,570 ciclo se dovessimo solo copiare il ciclo while sopra. 1173 00:53:08,570 --> 00:53:12,440 Quindi, in questo caso, il vostro ciclo while è andando a controllare la condizione del primo. 1174 00:53:12,440 --> 00:53:15,300 Quindi, in questo caso, se abbiamo provato di scrivere come un semplice ciclo while, 1175 00:53:15,300 --> 00:53:18,010 si direbbe, mentre ingresso è inferiore a uno. 1176 00:53:18,010 --> 00:53:20,801 Ma non abbiamo un ingresso per esso. 1177 00:53:20,801 --> 00:53:24,238 >> PUBBLICO: Se [incomprensibile] ciclo while compreso questo codice, 1178 00:53:24,238 --> 00:53:28,166 ma poi cavata il codice sopra il ciclo while anche. 1179 00:53:28,166 --> 00:53:31,052 Hai appena avuto questo codice [Incomprensibile] ciclo while. 1180 00:53:31,052 --> 00:53:32,760 ALLISON: Sarebbe la stessa cosa, sì. 1181 00:53:32,760 --> 00:53:37,110 Quindi, si può solo write-- invece di avere un sì fare--. 1182 00:53:37,110 --> 00:53:37,976 1183 00:53:37,976 --> 00:53:39,350 GABRIEL: Ma questo è più elegante. 1184 00:53:39,350 --> 00:53:41,020 ALLISON: Sì, che è più elegante. 1185 00:53:41,020 --> 00:53:44,560 È possibile ottenere nella progettazione e quant'altro, ma sì, si può assolutamente farlo. 1186 00:53:44,560 --> 00:53:45,850 1187 00:53:45,850 --> 00:53:47,072 Tutte le altre domande? 1188 00:53:47,072 --> 00:53:49,240 1189 00:53:49,240 --> 00:53:50,250 OK, fresco. 1190 00:53:50,250 --> 00:53:55,540 >> Così abbiamo parlato molto di condizioni con tutti questi cicli che abbiamo, 1191 00:53:55,540 --> 00:53:58,615 quindi stiamo in realtà sempre in condizioni di espressioni booleane. 1192 00:53:58,615 --> 00:53:59,990 1193 00:53:59,990 --> 00:54:03,440 Anche in questo caso, è possibile utilizzare questi in C, così solo tipo di transizione 1194 00:54:03,440 --> 00:54:06,050 da interfaccia grafica più effettivamente codifica. 1195 00:54:06,050 --> 00:54:07,480 1196 00:54:07,480 --> 00:54:09,100 >> Fresco, così grande, se. 1197 00:54:09,100 --> 00:54:11,130 1198 00:54:11,130 --> 00:54:17,070 In pratica ci permette solo di introdurre una certa logica nel nostro programma e di controllo 1199 00:54:17,070 --> 00:54:17,790 condizioni sys. 1200 00:54:17,790 --> 00:54:22,150 Quindi in questo caso, OK, n è maggiore di 0? 1201 00:54:22,150 --> 00:54:24,070 Sì, è, in modo da poter eseguire questo. 1202 00:54:24,070 --> 00:54:28,060 E 'solo un po' di controllo condizione che hai 1203 00:54:28,060 --> 00:54:33,565 impostato, che credo che siamo tutti agio con le condizioni di controllo. 1204 00:54:33,565 --> 00:54:35,975 1205 00:54:35,975 --> 00:54:36,475 Freddo. 1206 00:54:36,475 --> 00:54:38,760 1207 00:54:38,760 --> 00:54:44,530 Quindi, se il resto è il vostro altro, si può dire OK, se questo è vero, 1208 00:54:44,530 --> 00:54:46,150 farlo prima cosa. 1209 00:54:46,150 --> 00:54:48,720 Altrimenti Voglio predefinito e fare qualcosa di diverso. 1210 00:54:48,720 --> 00:54:51,977 1211 00:54:51,977 --> 00:54:55,060 Come in questo caso, si sia scelta la numero positivo o un numero negativo. 1212 00:54:55,060 --> 00:54:56,500 Hai solo due opzioni. 1213 00:54:56,500 --> 00:54:59,550 Avete bisogno di eseguire a prescindere di ciò che i vostri dati da parte dell'utente. 1214 00:54:59,550 --> 00:55:02,920 Così si può dire bene, è maggiore di 0? 1215 00:55:02,920 --> 00:55:03,480 Freddo. 1216 00:55:03,480 --> 00:55:04,480 Stampa un numero positivo. 1217 00:55:04,480 --> 00:55:06,153 Se non è, stampare un negativo. 1218 00:55:06,153 --> 00:55:06,960 Tutto bene? 1219 00:55:06,960 --> 00:55:14,920 >> E poi una cosa da riconoscere è che se la se la condizione è soddisfatta, 1220 00:55:14,920 --> 00:55:16,650 l'altro sarà mai anche eseguire. 1221 00:55:16,650 --> 00:55:19,210 Solo uno di questi sarà esecuzione alla volta. 1222 00:55:19,210 --> 00:55:20,410 Quindi è un compromesso. 1223 00:55:20,410 --> 00:55:21,720 Non arrivare ad avere entrambe le cose. 1224 00:55:21,720 --> 00:55:23,566 O si ha la prima condizione. 1225 00:55:23,566 --> 00:55:25,440 O si ha la se o l'altro, non entrambi. 1226 00:55:25,440 --> 00:55:26,849 1227 00:55:26,849 --> 00:55:28,890 Che poi può rendere le cose ancora più complicato, 1228 00:55:28,890 --> 00:55:31,060 perché si può fare se, altrimenti, e poi altro. 1229 00:55:31,060 --> 00:55:32,810 Quindi, in questo caso, avere tre condizioni. 1230 00:55:32,810 --> 00:55:34,830 1231 00:55:34,830 --> 00:55:38,370 E ancora, solo uno di questi è andando a finire per essere eseguito. 1232 00:55:38,370 --> 00:55:41,030 Così si potrebbe chiedere bene, cosa succede se si 1233 00:55:41,030 --> 00:55:45,510 avere qualcosa che può soddisfare due di questi. 1234 00:55:45,510 --> 00:55:49,520 Forse quello che stai inserendo soddisfa sia la condizione 1235 00:55:49,520 --> 00:55:51,811 per se e la else if. 1236 00:55:51,811 --> 00:55:53,060 L'unica cosa che sta andando a correre 1237 00:55:53,060 --> 00:55:56,240 >> ALLISON: Non appena trova qualcosa che soddisfa la condizione che 1238 00:55:56,240 --> 00:55:59,790 restituisce true, questo è ciò che è andare a correre e nient'altro. 1239 00:55:59,790 --> 00:56:04,440 Quindi, se hai avuto questo numero compreso tra 0 e 5 per il primo, 1240 00:56:04,440 --> 00:56:10,530 o è questo numero compreso tra 3 e 5 per l'altra parte, se, 1241 00:56:10,530 --> 00:56:15,550 e si immette il number-- Ho detto 0 e 5 e-- 4. 1242 00:56:15,550 --> 00:56:18,110 Sta andando a colpire il primo. 1243 00:56:18,110 --> 00:56:20,960 E 'intenzione di dire OK, questo numero è compreso tra 0 e 5. 1244 00:56:20,960 --> 00:56:22,480 Esegui e lasciare. 1245 00:56:22,480 --> 00:56:25,340 Non sarà mai colpire quel seconda opzione. 1246 00:56:25,340 --> 00:56:26,394 Cool? 1247 00:56:26,394 --> 00:56:27,250 Impressionante. 1248 00:56:27,250 --> 00:56:31,300 >> OK abbiamo anche istruzioni switch se si desidera ottenere anche more-- o dispiaciuto, 1249 00:56:31,300 --> 00:56:31,965 interruttore è vicino. 1250 00:56:31,965 --> 00:56:33,540 1251 00:56:33,540 --> 00:56:34,990 Sto andando troppo avanti di me stesso qui. 1252 00:56:34,990 --> 00:56:36,370 1253 00:56:36,370 --> 00:56:39,210 Anche in questo caso, di più se i blocchi dove, come ho appena detto 1254 00:56:39,210 --> 00:56:45,600 è, non appena si trova una condizione che è soddisfatta e se un altro se altro, 1255 00:56:45,600 --> 00:56:46,630 lascia. 1256 00:56:46,630 --> 00:56:49,560 Se hai bisogno di controllare più cose, sei 1257 00:56:49,560 --> 00:56:53,000 andando a voler utilizzare questo perché che controllerà ogni volta qui. 1258 00:56:53,000 --> 00:56:58,060 Quindi, questo verrà eseguito attraverso e se è maggiore o uguale a 90, 1259 00:56:58,060 --> 00:56:59,160 sta andando a stampare quello. 1260 00:56:59,160 --> 00:57:00,530 1261 00:57:00,530 --> 00:57:03,600 E verrà eseguito attraverso e controllare ogni singolo uno di questi. 1262 00:57:03,600 --> 00:57:06,444 >> PUBBLICO: Quindi questo sarebbe più buggy di [incomprensibile]. 1263 00:57:06,444 --> 00:57:07,735 Questo sarebbe come [incomprensibile]? 1264 00:57:07,735 --> 00:57:10,990 1265 00:57:10,990 --> 00:57:15,740 >> ALLISON: La domanda è: questo sarebbe buggy o questo fare quello che vuoi. 1266 00:57:15,740 --> 00:57:19,830 Dipende molto da cosa che volete dal vostro programma. 1267 00:57:19,830 --> 00:57:22,291 >> PUBBLICO: Voglio dire, come se si mette 90 in. 1268 00:57:22,291 --> 00:57:23,290 ALLISON: Se si mette 90-- 1269 00:57:23,290 --> 00:57:24,206 PUBBLICO: [incomprensibile]. 1270 00:57:24,206 --> 00:57:25,584 1271 00:57:25,584 --> 00:57:27,250 GABRIEL: Hai intenzione di ottenere due cose. 1272 00:57:27,250 --> 00:57:28,916 ALLISON: Hai intenzione di ottenere due cose. 1273 00:57:28,916 --> 00:57:29,420 Sì, due. 1274 00:57:29,420 --> 00:57:32,420 1275 00:57:32,420 --> 00:57:33,920 >> ROB BOWDEN: Due? 1276 00:57:33,920 --> 00:57:34,580 >> ALLISON: No. 1277 00:57:34,580 --> 00:57:35,288 >> ROB BOWDEN: Four. 1278 00:57:35,288 --> 00:57:37,070 1279 00:57:37,070 --> 00:57:40,070 Se si mette 90, sta andando a dire che ha ottenuto una A, hai una B, hai una C, 1280 00:57:40,070 --> 00:57:40,545 hai un D. 1281 00:57:40,545 --> 00:57:41,461 >> PUBBLICO: [incomprensibile]. 1282 00:57:41,461 --> 00:57:42,196 1283 00:57:42,196 --> 00:57:42,820 ALLISON: Giusto. 1284 00:57:42,820 --> 00:57:44,778 Così ho dipende da ciò che si voglio da te programma. 1285 00:57:44,778 --> 00:57:47,050 A volte è necessario controllare più cose. 1286 00:57:47,050 --> 00:57:49,970 1287 00:57:49,970 --> 00:57:55,270 Otterrete molto più profondo in quello che buon design è, come si va avanti. 1288 00:57:55,270 --> 00:57:57,090 La cosa importante da capiscono è che questo 1289 00:57:57,090 --> 00:58:01,090 controllerà tutte e quattro le condizioni qui. 1290 00:58:01,090 --> 00:58:05,860 Considerando che, se si trattasse di un if else if else se altro, avrebbe colpito quel primo caso, 1291 00:58:05,860 --> 00:58:07,950 sarebbe stampare hai un A e da fare. 1292 00:58:07,950 --> 00:58:10,250 >> ROB BOWDEN: Anche se deciso di cambiare questo per se 1293 00:58:10,250 --> 00:58:13,880 e maggiore o uguale a 90, se e maggiore o uguale a 80, 1294 00:58:13,880 --> 00:58:19,710 e inferiore o uguale a 89, se n maggiore o uguale a 70, 1295 00:58:19,710 --> 00:58:23,830 ed n minore o uguale a 79, così che sarà corretta. 1296 00:58:23,830 --> 00:58:27,190 Che fare quello che vogliamo, ma controlla ancora ogni singolo esso. 1297 00:58:27,190 --> 00:58:34,050 >> Così, mentre nel primo scenario, se si immettere 90 con appena se else if else if, 1298 00:58:34,050 --> 00:58:37,300 ed entriamo 90, poi sta andando a correggere. 1299 00:58:37,300 --> 00:58:39,615 Controllerà la prima uno, stampa hai un A, 1300 00:58:39,615 --> 00:58:42,590 salta tutto, perché già trovato uno che funziona. 1301 00:58:42,590 --> 00:58:46,360 Tutti i casi si escludono a vicenda in base a se else if else if. 1302 00:58:46,360 --> 00:58:48,630 Così sarà eseguire il in primo luogo, se, poi è fatta. 1303 00:58:48,630 --> 00:58:49,790 Si andrà fino in fondo. 1304 00:58:49,790 --> 00:58:52,400 >> Considerando che, se cambiamo che questo sia quello che ero 1305 00:58:52,400 --> 00:58:54,204 dicendo con inferiore o uguale a 89. 1306 00:58:54,204 --> 00:58:55,620 Sta andando a controllare la prima. 1307 00:58:55,620 --> 00:58:56,560 Sarà stampa. 1308 00:58:56,560 --> 00:58:58,010 Sarà controllare la seconda. 1309 00:58:58,010 --> 00:58:59,010 Non è andare in stampa. 1310 00:58:59,010 --> 00:58:59,910 Controllare il terzo. 1311 00:58:59,910 --> 00:59:00,620 Non andare in stampa. 1312 00:59:00,620 --> 00:59:01,495 Controllare il quarto. 1313 00:59:01,495 --> 00:59:02,420 Ora andare in stampa. 1314 00:59:02,420 --> 00:59:05,380 Quindi, in questo caso, l'altro se versione, poiché questi casi 1315 00:59:05,380 --> 00:59:09,120 si escludono a vicenda, è un uso migliore se else if else if, 1316 00:59:09,120 --> 00:59:12,970 perché sta per avere meno controlli delle condizioni 1317 00:59:12,970 --> 00:59:14,750 a questa versione. 1318 00:59:14,750 --> 00:59:17,692 1319 00:59:17,692 --> 00:59:18,400 ALLISON: Awesome. 1320 00:59:18,400 --> 00:59:20,580 Quindi, un'altra cosa che possiamo fare è istruzioni switch. 1321 00:59:20,580 --> 00:59:23,104 1322 00:59:23,104 --> 00:59:25,270 Fondamentalmente un'istruzione switch prende in qualche variabile, 1323 00:59:25,270 --> 00:59:28,780 in questo caso è n, e determina qual caso eseguire. 1324 00:59:28,780 --> 00:59:33,106 Quindi questo è anche uno dove i vostri casi dovrebbe essere una specie di escludono a vicenda. 1325 00:59:33,106 --> 00:59:35,210 1326 00:59:35,210 --> 00:59:37,940 Quindi, in questo caso, se noi abbiamo un uno, è 1327 00:59:37,940 --> 00:59:42,270 intenzione di abbinare qualunque cosa variable-- qualunque sia il valore di n 1328 00:59:42,270 --> 00:59:48,700 è uno di questi casi, quindi 1, 2, o 3, e stampare la riga corrispondente. 1329 00:59:48,700 --> 00:59:51,870 >> E poi se si nota qui, abbiamo anche una impostazione predefinita, 1330 00:59:51,870 --> 00:59:54,670 il quale è possibile di pensare a come gli altri. 1331 00:59:54,670 --> 00:59:58,510 Quindi, se si sceglie un altro numero oltre 1, 2, e 3, in questo caso 1332 00:59:58,510 --> 00:59:59,885 è solo andare in stampa non valida. 1333 00:59:59,885 --> 01:00:03,690 1334 01:00:03,690 --> 01:00:08,390 Decidere quando usare IFS contro se elses contro switch che sta accadendo 1335 01:00:08,390 --> 01:00:12,590 di essere qualcosa che voi ragazzi sarà vedere progettare saggio come si inizia a scrivere 1336 01:00:12,590 --> 01:00:15,270 programmi più complessi, e non ci sono regole dure e veloci 1337 01:00:15,270 --> 01:00:16,330 di quando utilizzarli. 1338 01:00:16,330 --> 01:00:17,890 In realtà dipende dal vostro contesto. 1339 01:00:17,890 --> 01:00:18,590 >> ROB BOWDEN: E proprio di buttare là fuori 1340 01:00:18,590 --> 01:00:20,131 dal momento che è la sezione più comodo. 1341 01:00:20,131 --> 01:00:20,920 1342 01:00:20,920 --> 01:00:25,053 Interruttori, tendono a essere-- così si è limitato 1343 01:00:25,053 --> 01:00:27,430 il numero di modi in cui li può usare, perché IFS, 1344 01:00:27,430 --> 01:00:30,100 la condizione può essere abbastanza molto tutto quello che vuoi. 1345 01:00:30,100 --> 01:00:33,410 Con gli interruttori dei casi devono essere numeri, 1346 01:00:33,410 --> 01:00:37,770 o tecnicamente possono essere caratteri, ma caratteri, come vedremo, sono solo numeri. 1347 01:00:37,770 --> 01:00:44,250 Così devono essere i numeri, ma gli interruttori sono molto più efficiente rispetto al caso 1348 01:00:44,250 --> 01:00:50,060 else if else if, perché anche prendendo l'esempio before-- bene, 1349 01:00:50,060 --> 01:00:51,486 l'esempio di grado sembra buona. 1350 01:00:51,486 --> 01:00:52,550 1351 01:00:52,550 --> 01:00:57,080 >> Beh diciamo qui, noi invece facciamo questo come se else if else if scenario. 1352 01:00:57,080 --> 01:01:00,930 Quindi, se n è uguale a è uguale a 1, stampare hai scelto un numero basso. 1353 01:01:00,930 --> 01:01:04,490 Se altro se n è uguale a è uguale a 2, hai scelto un numero medio. 1354 01:01:04,490 --> 01:01:06,550 Altrimenti se uguali è uguale a 3, alta. 1355 01:01:06,550 --> 01:01:08,060 Altrimenti non valido. 1356 01:01:08,060 --> 01:01:09,820 >> Quindi diciamo che è stato il nostro scenario. 1357 01:01:09,820 --> 01:01:14,060 Quindi diciamo che entriamo 4, quindi ci aspettiamo valido. 1358 01:01:14,060 --> 01:01:17,410 Il modo in cui if else if else se l'approccio è andare a lavorare è 1359 01:01:17,410 --> 01:01:18,740 verifica la prima condizione. 1360 01:01:18,740 --> 01:01:19,776 Non è soddisfatto. 1361 01:01:19,776 --> 01:01:21,150 Quindi controlliamo la seconda condizione. 1362 01:01:21,150 --> 01:01:21,940 Non è soddisfatto. 1363 01:01:21,940 --> 01:01:23,023 Controllare la terza condizione. 1364 01:01:23,023 --> 01:01:23,640 Non soddisfatto. 1365 01:01:23,640 --> 01:01:26,650 Quindi andiamo al resto e il risultato della stampa non valida. 1366 01:01:26,650 --> 01:01:30,169 >> Il modo in cui le opere di commutazione è compila verso il basso 1367 01:01:30,169 --> 01:01:31,960 in quello che stiamo andando per chiamare un tavolo salto. 1368 01:01:31,960 --> 01:01:33,180 1369 01:01:33,180 --> 01:01:37,120 La principale idea dell'essere che quando si entra 4, 1370 01:01:37,120 --> 01:01:39,090 si può immediatamente andare in default. 1371 01:01:39,090 --> 01:01:41,460 Non ha bisogno di controllare am caso ho 1? 1372 01:01:41,460 --> 01:01:42,350 No che non è vero. 1373 01:01:42,350 --> 01:01:42,850 Caso 2? 1374 01:01:42,850 --> 01:01:43,240 Nope. 1375 01:01:43,240 --> 01:01:43,770 Caso 3? 1376 01:01:43,770 --> 01:01:44,270 Nope. 1377 01:01:44,270 --> 01:01:45,090 Di default. 1378 01:01:45,090 --> 01:01:47,610 OK, questo deve essere dove sono volere, e quindi eseguire tale. 1379 01:01:47,610 --> 01:01:49,590 No, salta immediatamente al default. 1380 01:01:49,590 --> 01:01:51,900 Oppure Entro 2, è immediatamente per andare al 2 1381 01:01:51,900 --> 01:01:54,060 senza bisogno di passare per caso 1. 1382 01:01:54,060 --> 01:01:57,820 >> Quindi, in questo modo, realisticamente giorno d'oggi che è 1383 01:01:57,820 --> 01:02:00,250 non tanto di un incremento di efficienza. 1384 01:02:00,250 --> 01:02:02,880 Di solito i computer sono abbastanza veloce, e questo non è un gran che. 1385 01:02:02,880 --> 01:02:07,270 Ma è il caso che interruttori sono più veloci. 1386 01:02:07,270 --> 01:02:10,380 Se si sta veramente cercando per ottimizzare, utilizzare un interruttore. 1387 01:02:10,380 --> 01:02:11,980 1388 01:02:11,980 --> 01:02:12,710 >> ALLISON: Freddo. 1389 01:02:12,710 --> 01:02:15,270 E poi abbiamo operatore ternario. 1390 01:02:15,270 --> 01:02:19,470 Quindi so che ho citato in precedenza la parola zucchero sintattico. 1391 01:02:19,470 --> 01:02:24,160 Quindi è solo cose che fanno il codice molto più conciso. 1392 01:02:24,160 --> 01:02:25,590 Quindi questo è uno di quei casi. 1393 01:02:25,590 --> 01:02:31,430 >> Così operatore ternario è punto interrogativo due punti come si vede nella stringa di linea 1394 01:02:31,430 --> 01:02:35,810 s è uguale a n maggiore di 100 punto di domanda bassa alta del colon. 1395 01:02:35,810 --> 01:02:41,800 Quindi, in pratica come funziona è la sua n maggiore di 100 è una condizione. 1396 01:02:41,800 --> 01:02:43,674 Quindi penso che possa avere un senso. 1397 01:02:43,674 --> 01:02:44,840 E 'come chiedere a una domanda. 1398 01:02:44,840 --> 01:02:47,320 Sta dicendo: oh, è n maggiore di 100. 1399 01:02:47,320 --> 01:02:48,340 Chi lo sa? 1400 01:02:48,340 --> 01:02:50,750 E se restituisce vero, sta andando a dare 1401 01:02:50,750 --> 01:02:54,270 la prima cosa che è lì elencati, che è alto. 1402 01:02:54,270 --> 01:02:55,840 In caso contrario, sta andando per darvi basso. 1403 01:02:55,840 --> 01:03:01,210 Quindi, questo è solo un molto semplice e modo efficace per fare come un if else. 1404 01:03:01,210 --> 01:03:02,780 E 'tutto questo è. 1405 01:03:02,780 --> 01:03:07,450 >> E se dovessimo scrivere questo come se il resto condizionale, 1406 01:03:07,450 --> 01:03:12,480 sarebbe se n è maggiore di 100, di ritorno elevata. 1407 01:03:12,480 --> 01:03:14,220 Altrimenti, ritorno basso. 1408 01:03:14,220 --> 01:03:17,570 Questo è solo un molto più modo conciso di scriverlo. 1409 01:03:17,570 --> 01:03:27,090 >> ROB BOWDEN: Quindi questo particolare esempio è ogni volta che si sta facendo qualcosa 1410 01:03:27,090 --> 01:03:30,190 così, questo è il motivo dove io uso ternario molto frequentemente. 1411 01:03:30,190 --> 01:03:31,540 1412 01:03:31,540 --> 01:03:35,460 Quindi non abbiamo ancora parlato di portata, ma Odio vedere punto e virgola stringa s. 1413 01:03:35,460 --> 01:03:39,150 Se n maggiore di 100, s uguale elevata. 1414 01:03:39,150 --> 01:03:40,660 Altrimenti, s è uguale a basso. 1415 01:03:40,660 --> 01:03:45,070 Quindi quel modello, quei cinque linee di codice letteralmente 100% del tempo 1416 01:03:45,070 --> 01:03:49,800 può essere trasferito in quello era lì con un ternario. 1417 01:03:49,800 --> 01:03:52,340 Così il ternario, una riga di codice. 1418 01:03:52,340 --> 01:03:54,640 L'if else, cinque. 1419 01:03:54,640 --> 01:03:56,910 Questo è un esempio io punto fuori ogni singola volta. 1420 01:03:56,910 --> 01:03:59,250 Questo sarebbe ottimo posto per un operatore ternario. 1421 01:03:59,250 --> 01:04:00,647 E 'così pulito. 1422 01:04:00,647 --> 01:04:01,980 Ma la gente tende mai usarlo. 1423 01:04:01,980 --> 01:04:06,140 1424 01:04:06,140 --> 01:04:08,030 >> ALLISON: Prendere via Gabe. 1425 01:04:08,030 --> 01:04:11,110 >> GABRIEL: Così ora voi ragazzi tutto imparato nella lezione di questa settimana 1426 01:04:11,110 --> 01:04:13,420 che tutto in un calcolatore è binario, giusto? 1427 01:04:13,420 --> 01:04:14,570 Proprio come le lampade qui. 1428 01:04:14,570 --> 01:04:16,492 Si può essere attivata e disattivata. 1429 01:04:16,492 --> 01:04:18,450 E da tutto ciò, voglio dire letteralmente tutto. 1430 01:04:18,450 --> 01:04:24,272 Alcuni numeri e caratteri e stringhe, e anche il codice che si scrive quando 1431 01:04:24,272 --> 01:04:26,480 esso viene compilato a macchina codice e cose del genere, 1432 01:04:26,480 --> 01:04:29,230 in modo che tutto si riduce a 0 e di 1 '. 1433 01:04:29,230 --> 01:04:34,540 >> E così quando abbiamo a che fare con numeri interi, che 1434 01:04:34,540 --> 01:04:38,000 è qualcosa che è tecnicamente molto semplice, dovremmo essere in grado di fare cose 1435 01:04:38,000 --> 01:04:40,630 come l'aggiunta di loro, che è probabilmente una delle cose più semplici 1436 01:04:40,630 --> 01:04:42,300 si può fare per due interi, giusto? 1437 01:04:42,300 --> 01:04:47,410 Quindi, addizione e sottrazione funziona proprio come funziona in notazione decimale, 1438 01:04:47,410 --> 01:04:50,780 solo che qui è binario, giusto? 1439 01:04:50,780 --> 01:04:52,090 Quindi è in base due. 1440 01:04:52,090 --> 01:04:54,070 Quindi aggiungere 1 più 1. 1441 01:04:54,070 --> 01:04:57,020 Che dà 0, e 1 porta su. 1442 01:04:57,020 --> 01:05:01,335 E solo continuare a fare quello, Così ora arriva la domanda più interessante. 1443 01:05:01,335 --> 01:05:03,730 1444 01:05:03,730 --> 01:05:07,710 >> Noi sappiamo come rappresentare tutto interi positivi nel calcolatore, 1445 01:05:07,710 --> 01:05:09,870 ma facciamo questo esercizio. 1446 01:05:09,870 --> 01:05:15,240 Fingere voi ragazzi siete tutti nel 1960 o qualcosa cercando di creare un computer, 1447 01:05:15,240 --> 01:05:19,950 e devi venire da un modo di immagazzinare meno 1, 1448 01:05:19,950 --> 01:05:22,554 per esempio, o meno qualsiasi intero per quella materia. 1449 01:05:22,554 --> 01:05:23,470 Come hai fatto? 1450 01:05:23,470 --> 01:05:27,820 1451 01:05:27,820 --> 01:05:29,220 Tutte le idee? 1452 01:05:29,220 --> 01:05:31,302 Basta buttare niente a me. 1453 01:05:31,302 --> 01:05:32,264 Sì? 1454 01:05:32,264 --> 01:05:39,480 >> PUBBLICO: [incomprensibile] designare uno speciale se il [incomprensibile]. 1455 01:05:39,480 --> 01:05:42,590 >> GABRIEL: È possibile designare un po 'speciale, che sarà 0 o 1. 1456 01:05:42,590 --> 01:05:45,590 Diciamo che uno se è positivo e 0 se è negativo. 1457 01:05:45,590 --> 01:05:48,171 E poi il resto del bit è solo per memorizzare il numero. 1458 01:05:48,171 --> 01:05:48,670 Freddo. 1459 01:05:48,670 --> 01:05:49,990 Ecco, questo è una buona idea. 1460 01:05:49,990 --> 01:05:51,550 Abbiamo, io non lo so, 200. 1461 01:05:51,550 --> 01:05:54,720 E se il primo bit è acceso, allora è più 200. 1462 01:05:54,720 --> 01:05:57,270 Se è spento, è meno di 200. 1463 01:05:57,270 --> 01:05:58,380 Freddo. 1464 01:05:58,380 --> 01:06:01,350 >> C'è solo una piccola problema con questo, 1465 01:06:01,350 --> 01:06:05,370 che è se cerchiamo di riassumere le cose. 1466 01:06:05,370 --> 01:06:18,910 Quindi immaginate che abbiamo 11111 qui, e stiamo sommando questo con 00100 qualunque cosa. 1467 01:06:18,910 --> 01:06:21,630 Se quei due sono positivi, va bene. 1468 01:06:21,630 --> 01:06:24,470 Ma se uno dei loro è negativo, come 1469 01:06:24,470 --> 01:06:27,410 diciamo che questo bit qui è quello che è responsabile 1470 01:06:27,410 --> 01:06:31,390 for-- ho intenzione di fare un separate-- quindi questo significa che questo numero qui 1471 01:06:31,390 --> 01:06:31,970 è positivo. 1472 01:06:31,970 --> 01:06:34,450 Questo significa che questo numero qui è negativo, giusto? 1473 01:06:34,450 --> 01:06:37,010 >> Ma poi quando si è andando a riassumere loro, 1474 01:06:37,010 --> 01:06:40,180 bisogno di un'istruzione if dicendo oh se questo è 0, 1475 01:06:40,180 --> 01:06:43,479 allora la mia somma sarà qualcosa di diverso, giusto? 1476 01:06:43,479 --> 01:06:45,270 Quindi c'è un po ' più intelligente modo di fare 1477 01:06:45,270 --> 01:06:48,520 questo, che si chiama complemento a due. 1478 01:06:48,520 --> 01:06:52,350 Quindi, in pratica quello che abbiamo DO è definiamo meno 1 1479 01:06:52,350 --> 01:06:57,250 essere la cosa che se aggiungiamo fino a 1 ci dà 0. 1480 01:06:57,250 --> 01:06:59,470 1481 01:06:59,470 --> 01:07:00,860 Lasciatemelo ripetere. 1482 01:07:00,860 --> 01:07:03,280 Quindi diciamo che questo qui è 1. 1483 01:07:03,280 --> 01:07:08,110 1484 01:07:08,110 --> 01:07:13,570 Qual è la cosa che naturalmente in numeri interi positivi 1485 01:07:13,570 --> 01:07:15,570 aggiunto che ci dà 0? 1486 01:07:15,570 --> 01:07:19,150 1487 01:07:19,150 --> 01:07:21,030 Che cosa succede se si cerca di aggiungere a questo numero? 1488 01:07:21,030 --> 01:07:22,830 1489 01:07:22,830 --> 01:07:28,032 Stiamo andando a have-- OK, quindi cerchiamo di aggiungere. 1490 01:07:28,032 --> 01:07:32,820 1491 01:07:32,820 --> 01:07:38,065 Stiamo per avere 1 più 1 è 0, e quindi porta sopra. 1492 01:07:38,065 --> 01:07:40,160 1493 01:07:40,160 --> 01:07:45,490 E allora stiamo andando a ottenere 0 di nuovo. 1494 01:07:45,490 --> 01:07:47,730 1495 01:07:47,730 --> 01:07:48,820 Sto diventando confuso. 1496 01:07:48,820 --> 01:07:51,670 E si sta andando ad ottenere 0 e 0 e 0 e 0 e 0 e 0. 1497 01:07:51,670 --> 01:07:52,450 Un sacco di di 0. 1498 01:07:52,450 --> 01:07:56,240 >> Per lo ultimo, non siamo sarà in grado di portare sopra, 1499 01:07:56,240 --> 01:07:59,614 perché diciamo che stiamo solo trattando con un byte, in modo che solo 8 bit. 1500 01:07:59,614 --> 01:08:02,780 Che cosa fa il computer per impostazione predefinita è solo dimentica che [incomprensibile], 1501 01:08:02,780 --> 01:08:03,279 Ok? 1502 01:08:03,279 --> 01:08:04,530 1503 01:08:04,530 --> 01:08:06,880 Quindi questo è quello che viene chiamato complemento a due. 1504 01:08:06,880 --> 01:08:15,180 Abbiamo semplicemente definiamo meno 1 per essere il cosa qui che se si aggiunge che a 1 1505 01:08:15,180 --> 01:08:15,995 darebbe 0. 1506 01:08:15,995 --> 01:08:17,609 1507 01:08:17,609 --> 01:08:20,180 E questo è piuttosto fresco perché in realtà non 1508 01:08:20,180 --> 01:08:24,090 necessario tardi per implementare un diverso tipo di somma 1509 01:08:24,090 --> 01:08:26,590 a seconda del fatto che è un negativo o un numero positivo. 1510 01:08:26,590 --> 01:08:27,465 Questo fa senso? 1511 01:08:27,465 --> 01:08:28,740 1512 01:08:28,740 --> 01:08:32,370 >> Quindi una cosa che facciamo Qui, al fine di convertire 1513 01:08:32,370 --> 01:08:38,550 tra positivo e negativo intero viene poi capovolgere tutto, 1514 01:08:38,550 --> 01:08:40,930 e poi aggiungiamo 1 a quel numero. 1515 01:08:40,930 --> 01:08:43,140 Se si tenta di farlo da soli su un pezzo di carta, 1516 01:08:43,140 --> 01:08:44,681 si sta andando a vedere che ha un senso. 1517 01:08:44,681 --> 01:08:51,000 Ma se prendo questo numero Qui, questo è cinque. 1518 01:08:51,000 --> 01:08:54,859 Quindi, se ho capovolgere tutto qui, quindi 1, 1, 1, 1, 1. 1519 01:08:54,859 --> 01:08:55,880 1520 01:08:55,880 --> 01:08:57,830 Flip, flip, flip. 1521 01:08:57,830 --> 01:09:00,130 E poi aggiungo 1 ad esso. 1522 01:09:00,130 --> 01:09:02,750 Ho intenzione di avere esattamente meno 5. 1523 01:09:02,750 --> 01:09:03,250 Ok? 1524 01:09:03,250 --> 01:09:06,220 >> Questo tipo di senso, perché se si tenta di riassumere con il numero 1525 01:09:06,220 --> 01:09:10,229 che avevamo prima, che era-- cerchiamo di capovolgere di nuovo. 1526 01:09:10,229 --> 01:09:12,999 E 'stato 101 e un sacco di 0 di. 1527 01:09:12,999 --> 01:09:13,795 1528 01:09:13,795 --> 01:09:15,670 Se si tenta di aggiungere questi due numeri insieme, 1529 01:09:15,670 --> 01:09:16,961 si sta andando ad avere esattamente 0. 1530 01:09:16,961 --> 01:09:18,920 1531 01:09:18,920 --> 01:09:19,460 Ok. 1532 01:09:19,460 --> 01:09:19,884 Tutte le domande? 1533 01:09:19,884 --> 01:09:20,759 >> PUBBLICO: [incomprensibile] 1534 01:09:20,759 --> 01:09:25,790 1535 01:09:25,790 --> 01:09:27,280 >> GABRIEL: Che cosa vuoi dire? 1536 01:09:27,280 --> 01:09:29,240 >> PUBBLICO: negativo per positivo [incomprensibile]. 1537 01:09:29,240 --> 01:09:33,215 >> GABRIEL: No, si ribalta e si aggiunge 1 sempre. 1538 01:09:33,215 --> 01:09:34,081 1539 01:09:34,081 --> 01:09:34,580 Sì. 1540 01:09:34,580 --> 01:09:36,910 1541 01:09:36,910 --> 01:09:39,680 Ok, quindi anche caratteri codificati binari. 1542 01:09:39,680 --> 01:09:42,649 Abbiamo tabella ASCII, come si ha visto anche in conferenza, giusto? 1543 01:09:42,649 --> 01:09:45,040 Quindi è fondamentalmente una mappatura delle cose. 1544 01:09:45,040 --> 01:09:50,960 E qui non posso sottolineare abbastanza che per un computer, un e 65 1545 01:09:50,960 --> 01:09:52,770 sono letteralmente la stessa cosa. 1546 01:09:52,770 --> 01:10:03,430 Quindi, se scrivo qualcosa come char c uguale a, ho potuto contemporaneamente 1547 01:10:03,430 --> 01:10:06,890 basta scrivere 65 qui, e sarebbe esattamente lo stesso, OK? 1548 01:10:06,890 --> 01:10:08,470 Non c'è alcuna differenza. 1549 01:10:08,470 --> 01:10:12,420 >> Di solito tendiamo a mettere caratteri a variabili di tipo. 1550 01:10:12,420 --> 01:10:16,770 Char, non perché sono essenzialmente fatta per questo, ma perché 1551 01:10:16,770 --> 01:10:18,050 della convenzione umana. 1552 01:10:18,050 --> 01:10:22,410 Ma si può trattare solo con numeri interi invece di variabili di tipo char, 1553 01:10:22,410 --> 01:10:23,490 e andrà tutto bene. 1554 01:10:23,490 --> 01:10:28,410 L'unica differenza reale tra un c char e int i 1555 01:10:28,410 --> 01:10:31,960 è che un int quattro byte in più sistemi, mentre un char ha un byte. 1556 01:10:31,960 --> 01:10:33,070 1557 01:10:33,070 --> 01:10:35,460 Sono essenzialmente la stessa cosa in termini di dati. 1558 01:10:35,460 --> 01:10:36,990 1559 01:10:36,990 --> 01:10:37,990 Così che cosa stamperà qui? 1560 01:10:37,990 --> 01:10:43,780 Qui stiamo stampando una cifra utilizzando printf con un più 1, e proprio come numeri interi, 1561 01:10:43,780 --> 01:10:46,240 caratteri possono essere sommati, in modo caratteri possono essere sommati. 1562 01:10:46,240 --> 01:10:47,890 Quindi questo è esattamente 65. 1563 01:10:47,890 --> 01:10:49,950 Quindi ci sara ' 66, e qui abbiamo 1564 01:10:49,950 --> 01:10:56,860 65 più piccolo un meno grande A, che sarà, io non lo so. 1565 01:10:56,860 --> 01:11:00,900 Ma sarà esattamente il divario tra le lettere maiuscole 1566 01:11:00,900 --> 01:11:07,800 ee le lettere più piccole, così stiamo andando a ottenere un piccolo, giusto? 1567 01:11:07,800 --> 01:11:08,300 Sì. 1568 01:11:08,300 --> 01:11:11,740 Quindi questo sta per stampare un personaggio che è esattamente questa. 1569 01:11:11,740 --> 01:11:12,260 Buono? 1570 01:11:12,260 --> 01:11:12,860 Tutte le domande? 1571 01:11:12,860 --> 01:11:16,320 1572 01:11:16,320 --> 01:11:19,430 >> Qui abbiamo un mucchio di diverso tipi per le variabili numeriche. 1573 01:11:19,430 --> 01:11:20,620 Abbiamo già parla di int. 1574 01:11:20,620 --> 01:11:21,740 1575 01:11:21,740 --> 01:11:27,760 Float è solo un modo a-- questo è davvero divertente, perché quando ho imparato 1576 01:11:27,760 --> 01:11:32,320 programmare nel giorno con Python, il primo programma che ho mai 1577 01:11:32,320 --> 01:11:37,480 cercato di scrivere, ho visto che c'era un tipo chiamato e un tipo chiamato galleggiante. 1578 01:11:37,480 --> 01:11:39,800 E il galleggiante era per tutti i numeri reali. 1579 01:11:39,800 --> 01:11:43,290 Allora ho chiesto perché dovrei Io abbia mai usare un int, allora? 1580 01:11:43,290 --> 01:11:45,590 Perché se posso usare tutto numeri reali con un galleggiante, 1581 01:11:45,590 --> 01:11:47,120 Vorrei solo smettere di usare interi, giusto? 1582 01:11:47,120 --> 01:11:49,550 Perché i numeri reali sono molto simile più generico. 1583 01:11:49,550 --> 01:11:51,820 1584 01:11:51,820 --> 01:11:54,060 >> Si scopre che si tratta di non è il caso in calcolatori 1585 01:11:54,060 --> 01:11:58,480 perché sono essenzialmente cose diverse. 1586 01:11:58,480 --> 01:12:01,470 Così interi e carri allegorici, il operazioni che fai per loro 1587 01:12:01,470 --> 01:12:04,739 sono essenzialmente diversa perché del modo in cui sono memorizzati, OK? 1588 01:12:04,739 --> 01:12:07,280 Stiamo andando a parlare un po ' po 'di più su che in un secondo. 1589 01:12:07,280 --> 01:12:09,110 >> Quindi doppio è solo un galleggiante più grande. 1590 01:12:09,110 --> 01:12:12,830 Solitamente nella maggior parte dei sistemi, un galleggiante è quattro byte, proprio come un int. 1591 01:12:12,830 --> 01:12:15,440 E una doppia è di otto byte. 1592 01:12:15,440 --> 01:12:21,450 Una lunga lunga in realtà è solo un simbolo che si aggiunge a un tipo come int. 1593 01:12:21,450 --> 01:12:24,040 Tu dici long long int come questo. 1594 01:12:24,040 --> 01:12:28,550 Long long int x per renderlo più a lungo. 1595 01:12:28,550 --> 01:12:32,310 Quindi, nella maggior parte dei sistemi, che darà otto byte invece dei soliti quattro. 1596 01:12:32,310 --> 01:12:35,620 E si può effettivamente cadere la in, in modo che possa solo dire long long, 1597 01:12:35,620 --> 01:12:37,240 e che funziona troppo, OK? 1598 01:12:37,240 --> 01:12:42,850 Si può anche fare altre cose come unsigned int, o ancora semplicemente senza segno 1599 01:12:42,850 --> 01:12:43,680 potrebbe anche funzionare. 1600 01:12:43,680 --> 01:12:49,370 E che avrebbe fatto x sia una variabile come tutto ciò che è positivo, 1601 01:12:49,370 --> 01:12:53,231 quindi non si può davvero negativo numeri nel modo che abbiamo visto qui. 1602 01:12:53,231 --> 01:12:56,484 1603 01:12:56,484 --> 01:12:58,650 Così dopo meraviglioso punto e precisione floating. 1604 01:12:58,650 --> 01:13:01,890 Questo è uno dei motivi per cui si desidera utilizzare int invece di carri allegorici, 1605 01:13:01,890 --> 01:13:04,370 perché interi sono al 100% preciso, giusto? 1606 01:13:04,370 --> 01:13:06,170 E 'esattamente quel numero. 1607 01:13:06,170 --> 01:13:11,910 Per i punti galleggianti, se si dicono risposta è uguale a 1 su 10-- 1608 01:13:11,910 --> 01:13:14,690 Mi capita di avere questo esatto programma qui, float.c. 1609 01:13:14,690 --> 01:13:16,390 1610 01:13:16,390 --> 01:13:19,420 Che stampa a 20 cifre decimali. 1611 01:13:19,420 --> 01:13:23,270 1 diviso 10, e che di solito è 0,1, giusto? 1612 01:13:23,270 --> 01:13:27,910 Ma qui se facciamo Galleggiante e poi corriamo esso, 1613 01:13:27,910 --> 01:13:30,320 si vede che non è esattamente 0.1. 1614 01:13:30,320 --> 01:13:33,570 E 'qualcosa di 0,149. 1615 01:13:33,570 --> 01:13:35,570 >> E perché? 1616 01:13:35,570 --> 01:13:40,390 Perché non si può davvero rappresentare ogni unico possibile numero reale in memoria 1617 01:13:40,390 --> 01:13:42,730 perché ci sono numerabile molti di loro. 1618 01:13:42,730 --> 01:13:48,360 Quindi siamo tecnicamente in grado solo di rappresentare una quantità finita di essi 1619 01:13:48,360 --> 01:13:50,470 con una quantità limitata di dati. 1620 01:13:50,470 --> 01:13:52,050 Ma è davvero interessante. 1621 01:13:52,050 --> 01:13:54,920 Ora si pone la questione di come si farebbe 1622 01:13:54,920 --> 01:13:59,299 andare a questo proposito che rappresenta questo con i bit, giusto? 1623 01:13:59,299 --> 01:14:00,340 Così come vengono memorizzati i galleggianti? 1624 01:14:00,340 --> 01:14:01,970 1625 01:14:01,970 --> 01:14:03,730 Con numeri interi è stato facile. 1626 01:14:03,730 --> 01:14:06,690 Ma con i galleggianti che si desidera per massimizzare l'intervallo, 1627 01:14:06,690 --> 01:14:10,530 e si vuole essere in grado di rappresentare numeri enormi e molto piccoli numeri come 1628 01:14:10,530 --> 01:14:14,210 0.000001 contemporaneamente. 1629 01:14:14,210 --> 01:14:15,180 Quindi, di nuovo, stesso gioco. 1630 01:14:15,180 --> 01:14:20,470 Qualcuno ha qualche idea di come potremmo andare in giro che rappresenta galleggiante in memoria? 1631 01:14:20,470 --> 01:14:26,820 1632 01:14:26,820 --> 01:14:27,970 Basta buttare nulla. 1633 01:14:27,970 --> 01:14:29,930 1634 01:14:29,930 --> 01:14:30,856 Sì, per favore. 1635 01:14:30,856 --> 01:14:33,552 >> PUBBLICO: [incomprensibile] come se era due int e uno 1636 01:14:33,552 --> 01:14:36,890 essendo il [incomprensibile] e un essere tutto dopo il punto decimale. 1637 01:14:36,890 --> 01:14:37,640 GABRIEL: OK, fresco. 1638 01:14:37,640 --> 01:14:40,300 Così due interi diversi. 1639 01:14:40,300 --> 01:14:45,260 Si può avere 12.45, in modo che è 12 e 45. 1640 01:14:45,260 --> 01:14:45,890 Nizza. 1641 01:14:45,890 --> 01:14:46,973 Che prima che tu per dire? 1642 01:14:46,973 --> 01:14:48,420 1643 01:14:48,420 --> 01:14:49,430 La stessa cosa? 1644 01:14:49,430 --> 01:14:49,930 Sì? 1645 01:14:49,930 --> 01:14:55,630 >> PUBBLICO: notazione [incomprensibile] dove si separa la base. 1646 01:14:55,630 --> 01:14:58,910 >> GABRIEL: La notazione scientifica, sì che di solito è quello che succede. 1647 01:14:58,910 --> 01:15:01,350 Quindi questo è quello che viene chiamato la mantissa. 1648 01:15:01,350 --> 01:15:06,490 Questo è ciò che è in realtà il numero, quindi l'esponente 1649 01:15:06,490 --> 01:15:08,780 è proprio dove la virgola è, giusto? 1650 01:15:08,780 --> 01:15:13,720 Quindi questo sta per essere qualcosa della forma 1, 2, 3, 4, 5 volte 10 1651 01:15:13,720 --> 01:15:15,000 al meno 4. 1652 01:15:15,000 --> 01:15:17,800 Ho appena realizzato che-- sì, esattamente. 1653 01:15:17,800 --> 01:15:23,372 E allora questa 10 ^ 4 è andando a definire dove la virgola è, OK? 1654 01:15:23,372 --> 01:15:24,330 In Brasile si usa virgola. 1655 01:15:24,330 --> 01:15:26,795 Qui voi ragazzi Utilizzare un punto. 1656 01:15:26,795 --> 01:15:27,640 Quindi un punto. 1657 01:15:27,640 --> 01:15:28,860 1658 01:15:28,860 --> 01:15:34,840 >> E questo è cool, perché allora si può mettere a fuoco un sacco di vostre punte su questo ragazzo 1659 01:15:34,840 --> 01:15:40,863 qui, sulla mantissa e quindi questo è sarà il vostro precisione effettiva. 1660 01:15:40,863 --> 01:15:41,920 1661 01:15:41,920 --> 01:15:47,175 E si può fare questo sia in decimale o nel sistema basato binario. 1662 01:15:47,175 --> 01:15:49,781 Ci sono diversi modi per implementare questa. 1663 01:15:49,781 --> 01:15:50,280 Domande? 1664 01:15:50,280 --> 01:15:55,918 1665 01:15:55,918 --> 01:15:56,418 Sì? 1666 01:15:56,418 --> 01:15:57,508 1667 01:15:57,508 --> 01:15:59,841 PUBBLICO: Quanti sono i posti dopo la virgola [incomprensibile]? 1668 01:15:59,841 --> 01:16:05,240 1669 01:16:05,240 --> 01:16:12,610 >> GABRIEL: Questa è una domanda complicata, perché non è mai veramente al 100% preciso, 1670 01:16:12,610 --> 01:16:15,680 perché, come si vede qui, per alcuni numeri è 100% precisa. 1671 01:16:15,680 --> 01:16:20,350 Credo che se mettiamo 0,5 qui, che sta per essere al 100% preciso. 1672 01:16:20,350 --> 01:16:22,220 E sarà 0,500000. 1673 01:16:22,220 --> 01:16:24,170 Quindi, in questo caso, è perfetto. 1674 01:16:24,170 --> 01:16:27,330 Ma in altri casi, è molto meno perfetto. 1675 01:16:27,330 --> 01:16:35,010 Nella mia esperienza, come fino a quattro, cinque cifre decimali è abbastanza preciso. 1676 01:16:35,010 --> 01:16:38,300 Se si utilizza un doppio, sta andando a essere il modo più preciso di quello, OK? 1677 01:16:38,300 --> 01:16:42,750 >> ROB BOWDEN: Quindi, solo per gettare un po 'di contesto a carri allegorici, 1678 01:16:42,750 --> 01:16:46,320 Non mi ricordo mai al 100% come il spec di carri funziona davvero, 1679 01:16:46,320 --> 01:16:52,660 ma io ti ricordi sempre che galleggia iniziare a ricevere disordinato. 1680 01:16:52,660 --> 01:16:55,460 1681 01:16:55,460 --> 01:17:00,930 Quindi l'idea è che quando si arriva davvero, numeri molto grandi o molto, molto 1682 01:17:00,930 --> 01:17:03,470 piccoli numeri, si parte sempre peggio e peggio 1683 01:17:03,470 --> 01:17:05,860 a differenziare tra due vicini galleggianti. 1684 01:17:05,860 --> 01:17:09,180 >> Così come mi piace pensare è con il punto imprecisioni galleggiante, 1685 01:17:09,180 --> 01:17:11,890 ci sono due galleggianti se cerco di specificarli 1686 01:17:11,890 --> 01:17:15,150 in C, nonostante il fatto che sono numeri diversi, 1687 01:17:15,150 --> 01:17:17,340 che stanno andando a essere interpretato come lo stesso numero, 1688 01:17:17,340 --> 01:17:19,006 perché non siamo in grado di memorizzare in modo diverso. 1689 01:17:19,006 --> 01:17:20,540 Dobbiamo usare gli stessi bit. 1690 01:17:20,540 --> 01:17:23,220 E così quando si arriva a davvero, davvero grandi numeri, 1691 01:17:23,220 --> 01:17:28,460 parlando come 10 alla 300 o qualcosa, è a quel punto 1692 01:17:28,460 --> 01:17:33,240 che il 10 al 300 o 5 volte 10 al 300 1693 01:17:33,240 --> 01:17:37,020 non può essere differenziata da 7 volte 10 al 300. 1694 01:17:37,020 --> 01:17:39,660 Quindi questa è una bella differenza tra i due numeri. 1695 01:17:39,660 --> 01:17:43,830 >> Ma poi quando si arriva alle normali cose gamma, 1696 01:17:43,830 --> 01:17:45,770 si tende ad essere abbastanza bravi a differenziare. 1697 01:17:45,770 --> 01:17:49,020 E poi quando si arriva davvero piccolo, si sta anche ricevendo di nuovo piuttosto male. 1698 01:17:49,020 --> 01:17:52,529 Così come un sacco di 0.0000, diventa piuttosto male. 1699 01:17:52,529 --> 01:17:53,820 GABRIEL: Sì, così una breve nota. 1700 01:17:53,820 --> 01:17:54,670 Non fare questo. 1701 01:17:54,670 --> 01:17:57,590 Non tentare mai di confrontare galleggianti con uguali uguali, 1702 01:17:57,590 --> 01:18:02,800 perché anche se sono quasi il stesso, quasi lo stesso non è lo stesso. 1703 01:18:02,800 --> 01:18:06,360 Che cosa fai di solito è si sottrae li, assumono il valore assoluto di questo, 1704 01:18:06,360 --> 01:18:12,380 e vedere se è più piccolo di 0,0001 o qualcosa del genere, OK? 1705 01:18:12,380 --> 01:18:12,880 E fresco. 1706 01:18:12,880 --> 01:18:16,630 So che un sacco di persone hanno alcuni retroscena in Java, 1707 01:18:16,630 --> 01:18:19,700 soprattutto quelli che hanno fatto AP informatica, giusto? 1708 01:18:19,700 --> 01:18:23,630 E Java è un linguaggio che per lo più sulla base di C, 1709 01:18:23,630 --> 01:18:26,570 ha una coppia molto grandi differenze. 1710 01:18:26,570 --> 01:18:31,430 Ma per i loop, e IFS, e cose del genere che, sono tutti la stessa sintassi. 1711 01:18:31,430 --> 01:18:35,240 Ho un paio di programmi qui per mostrare questo. 1712 01:18:35,240 --> 01:18:37,050 >> Così, per esempio, un mondo ciao semplice. 1713 01:18:37,050 --> 01:18:43,140 1714 01:18:43,140 --> 01:18:46,600 Questo è ciao mondo in C, che si ragazzi sono sicuramente a conoscenza, 1715 01:18:46,600 --> 01:18:49,100 e questo e questo è in Java. 1716 01:18:49,100 --> 01:18:53,100 Così in Java abbiamo questa public class, ciao mondo, 1717 01:18:53,100 --> 01:18:57,050 e static void pubblico args principale, e di stringa. 1718 01:18:57,050 --> 01:18:59,665 Gli argomenti di stringa sono in corso ad apparire in C molto breve. 1719 01:18:59,665 --> 01:19:00,740 1720 01:19:00,740 --> 01:19:01,990 Ma cerchiamo di non andare lì ancora. 1721 01:19:01,990 --> 01:19:06,060 In questo momento abbiamo nulla qui, il che significa che principale non è richiede alcun argomento. 1722 01:19:06,060 --> 01:19:09,220 E poi abbiamo System.out.println, e questo è il 1723 01:19:09,220 --> 01:19:11,140 tipo di equivalente per printf. 1724 01:19:11,140 --> 01:19:17,150 Qui non abbiamo davvero bisogno della barra rovesciata n perché stampa ln fa per voi. 1725 01:19:17,150 --> 01:19:19,680 Si aggiunge la barra rovesciata n alla fine della linea. 1726 01:19:19,680 --> 01:19:22,540 1727 01:19:22,540 --> 01:19:30,415 >> Ma se si va in qualcosa come un per, voi 1728 01:19:30,415 --> 01:19:32,590 può vedere che sono più o meno la stessa cosa. 1729 01:19:32,590 --> 01:19:37,390 Quindi l'inizializzazione e la condizioni, e l'aggiornamento 1730 01:19:37,390 --> 01:19:42,050 è-- Ho perso uno spazio qui-- sono più o meno la stessa cosa, ad eccezione di Java 1731 01:19:42,050 --> 01:19:44,430 ha come qualcuno in più roba di alto livello. 1732 01:19:44,430 --> 01:19:46,010 1733 01:19:46,010 --> 01:19:49,610 Qui possiamo fare più I e Java verrà automaticamente 1734 01:19:49,610 --> 01:19:52,730 fare questo ho qui, che è un intero, in una stringa, 1735 01:19:52,730 --> 01:19:55,200 e poi aggiungere il due stringhe insieme. 1736 01:19:55,200 --> 01:19:57,570 Qui in C abbiamo bisogno di fare il &% d. 1737 01:19:57,570 --> 01:20:15,310 1738 01:20:15,310 --> 01:20:18,170 La linea qui per la appare esattamente lo stesso. 1739 01:20:18,170 --> 01:20:37,760 >> E se guardiamo se, IFS anche apparire esattamente lo stesso, giusto? 1740 01:20:37,760 --> 01:20:39,290 1741 01:20:39,290 --> 01:20:44,650 Così i veri grandi differenze sono in quelle cose che vedete qui. 1742 01:20:44,650 --> 01:20:47,530 Public static, vuoto, e poi public class se. 1743 01:20:47,530 --> 01:20:48,990 1744 01:20:48,990 --> 01:20:52,360 Quindi, Java ha che cosa è chiamato una macchina virtuale. 1745 01:20:52,360 --> 01:20:53,560 1746 01:20:53,560 --> 01:21:00,150 Ed è fortemente basata su ciò che si chiama programmazione orientata agli oggetti, 1747 01:21:00,150 --> 01:21:04,120 che è molto, molto comune paradigma di programmazione al giorno d'oggi. 1748 01:21:04,120 --> 01:21:10,870 E questa cosa classe è ciò che si vede, qualcosa da orientamento agli oggetti, 1749 01:21:10,870 --> 01:21:14,214 viene a creare una classe e poi si può derivare oggetti da quella classe. 1750 01:21:14,214 --> 01:21:16,380 Non stiamo andando a parlare troppo molto su questo in CS50, 1751 01:21:16,380 --> 01:21:18,213 ma questo è sicuramente qualcosa di veramente cool, 1752 01:21:18,213 --> 01:21:21,440 soprattutto se si vuole andare in più sofisticato sviluppo web 1753 01:21:21,440 --> 01:21:24,050 al termine del corso, come presentare il progetto finale 1754 01:21:24,050 --> 01:21:26,430 e alcune strutture belle e cose. 1755 01:21:26,430 --> 01:21:31,250 >> Quindi, in pratica l'idea è che si non si vuole re-implementare qualcosa, 1756 01:21:31,250 --> 01:21:36,330 in modo da creare qualcosa che sia molto generico, come la forma, 1757 01:21:36,330 --> 01:21:38,310 e quindi si crea forme diverse da esso, 1758 01:21:38,310 --> 01:21:40,240 e poi da ciascuna queste forme, si crea 1759 01:21:40,240 --> 01:21:45,110 alcune forme più specifiche in tre dimensioni o qualcosa del genere. 1760 01:21:45,110 --> 01:21:48,799 E hanno questa gerarchia si ereditano dalle altre, così 1761 01:21:48,799 --> 01:21:51,840 tutte le funzioni e tutte le variabili che la grande forma qui ha, tutti questi 1762 01:21:51,840 --> 01:21:54,110 stanno per avere, e tutti questi sono andando ad avere, e così via e così via. 1763 01:21:54,110 --> 01:21:55,640 Ecco, questo è l'idea di base. 1764 01:21:55,640 --> 01:21:59,170 >> C non ha questo, ma C ++ non avere questo tipo di funzione. 1765 01:21:59,170 --> 01:22:02,710 E Java è fortemente influenzato per l'orientamento agli oggetti, 1766 01:22:02,710 --> 01:22:05,310 ecco perché si vede Classe qui tutto il tempo. 1767 01:22:05,310 --> 01:22:10,790 E l'altra cosa è questa macchina virtuale Java. 1768 01:22:10,790 --> 01:22:13,790 Quindi questo, penso, è una idea molto intelligente. 1769 01:22:13,790 --> 01:22:17,020 Quindi quali sono le persone che java inventato ha fatto è 1770 01:22:17,020 --> 01:22:19,630 che non volevano compilare il loro codice due volte 1771 01:22:19,630 --> 01:22:23,990 se dovessero funzionare in Windows, o un Mac, o Linux, in modo da quello che fanno 1772 01:22:23,990 --> 01:22:26,740 è letteralmente corrono qualcosa di simile l'apparecchio, 1773 01:22:26,740 --> 01:22:29,630 ma non si ha realmente vedere che succede. 1774 01:22:29,630 --> 01:22:32,430 Così corrono una macchina virtuale all'interno del computer, che 1775 01:22:32,430 --> 01:22:34,940 è fondamentalmente come un sistema operativo mini. 1776 01:22:34,940 --> 01:22:37,920 E che di funzionamento scopo del sistema nella vita 1777 01:22:37,920 --> 01:22:41,430 è solo per eseguire quello che viene chiamato bytecode. 1778 01:22:41,430 --> 01:22:47,411 >> Così, invece di in C, il modo in cui sarebbe compilare questo è fare se, e quindi eseguire 1779 01:22:47,411 --> 01:22:47,910 ./if. 1780 01:22:47,910 --> 01:22:53,510 1781 01:22:53,510 --> 01:22:55,290 Ho dimenticato il backslash. 1782 01:22:55,290 --> 01:23:00,240 In Java, si dovrebbe fare prima Java C a compilarlo, if.c. 1783 01:23:00,240 --> 01:23:06,440 1784 01:23:06,440 --> 01:23:08,252 Non è di C. dot java. 1785 01:23:08,252 --> 01:23:09,460 1786 01:23:09,460 --> 01:23:12,140 E poi si deve eseguire non ./. 1787 01:23:12,140 --> 01:23:15,440 È possibile ottenere questo nuovo file if.class, ma non si può davvero 1788 01:23:15,440 --> 01:23:17,980 eseguire if.class ora solo come abbiamo fatto prima. 1789 01:23:17,980 --> 01:23:19,440 Questo non è un eseguibile. 1790 01:23:19,440 --> 01:23:20,630 Devi eseguire. 1791 01:23:20,630 --> 01:23:23,410 Devi dargli da mangiare in un programma chiamato Java, 1792 01:23:23,410 --> 01:23:28,260 e che il programma è la macchina virtuale, e poi si fa if.class, o se. 1793 01:23:28,260 --> 01:23:28,760 Sì. 1794 01:23:28,760 --> 01:23:30,890 E allora funziona. 1795 01:23:30,890 --> 01:23:33,740 OK, questo è una specie di macchina virtuale accadendo. 1796 01:23:33,740 --> 01:23:37,700 C non ha questo, quindi se dovessi mettere questo programma in una macchina Windows, 1797 01:23:37,700 --> 01:23:40,516 che non avrebbe funzionato in C. In Java lo fa. 1798 01:23:40,516 --> 01:23:41,015 Domande? 1799 01:23:41,015 --> 01:23:43,430 1800 01:23:43,430 --> 01:23:44,030 Freddo. 1801 01:23:44,030 --> 01:23:47,160 Questo è se per la sezione eccellente per oggi. 1802 01:23:47,160 --> 01:23:49,462