1 00:00:00,000 --> 00:00:05,410 2 00:00:05,410 --> 00:00:08,770 >> ANDI PENG: Siamo quasi attraverso tutti i pset. 3 00:00:08,770 --> 00:00:12,080 In realtà, noi siamo con la maggioranza dei pset più difficili. 4 00:00:12,080 --> 00:00:14,350 Quindi siamo in realtà solo andando a tipo di brezza 5 00:00:14,350 --> 00:00:16,050 attraverso il prossimo paio di settimane. 6 00:00:16,050 --> 00:00:19,520 >> Stiamo per iniziare a parlare del nostro progetti finali, gli eventi in arrivo 7 00:00:19,520 --> 00:00:21,320 nelle prossime settimane. 8 00:00:21,320 --> 00:00:23,825 E la vita sarà un gioco da ragazzi. 9 00:00:23,825 --> 00:00:26,510 10 00:00:26,510 --> 00:00:27,680 Quindi non troppo oggi. 11 00:00:27,680 --> 00:00:30,280 >> Si spera, sarà effettivamente brezza attraverso l'ordine del giorno di oggi, 12 00:00:30,280 --> 00:00:33,400 e poi da qui con un po 'di tempo libero a disposizione. 13 00:00:33,400 --> 00:00:36,210 Inoltre, voglio scusarmi per la mancanza di caramelle oggi. 14 00:00:36,210 --> 00:00:37,030 Non so perché. 15 00:00:37,030 --> 00:00:40,520 Ma nella settimana che precede Halloween, mi avrebbe dimenticato caramelle. 16 00:00:40,520 --> 00:00:43,290 >> Quindi sono in realtà solo un vasto delusione per te in questo momento. 17 00:00:43,290 --> 00:00:47,050 Perché ho letteralmente ricordo caramelle per ogni singola classe, ma di Halloween. 18 00:00:47,050 --> 00:00:49,345 Ma la prossima settimana, io porterò raddoppiare la quantità di caramelle 19 00:00:49,345 --> 00:00:50,720 per compensare questo, tutto per voi. 20 00:00:50,720 --> 00:00:53,260 Sarà fantastico. 21 00:00:53,260 --> 00:00:56,690 >> Così ho un paio di annunci per quanto riguarda alcuni programmazione. 22 00:00:56,690 --> 00:00:59,520 Ho alcuni problemi di pianificazione. 23 00:00:59,520 --> 00:01:02,150 Poi andremo a passare a parlare di ciò che è chiamato chmod. 24 00:01:02,150 --> 00:01:05,980 Stiamo andando a parlare rapidamente TCP / IP HTTP. 25 00:01:05,980 --> 00:01:09,770 >> E poi andremo a codificare la nostra proprio sito web utilizzando HTML e CSS. 26 00:01:09,770 --> 00:01:13,030 E poi ti lascio in realtà forse come 20 minuti per parlare pset6. 27 00:01:13,030 --> 00:01:16,550 Perché pset6 è in realtà un sacco di roba che abbiamo già visto in precedenza, 28 00:01:16,550 --> 00:01:19,090 ma ho voluto rinfrescare alcuni di questi concetti 29 00:01:19,090 --> 00:01:22,140 nonché insegnare un paio di nuove funzioni. 30 00:01:22,140 --> 00:01:23,110 >> Raffreddare. 31 00:01:23,110 --> 00:01:25,440 Quindi prima di tutto, bentornato dalle vacanze. 32 00:01:25,440 --> 00:01:27,410 Spero che tu sia pausa è stata piacevole. 33 00:01:27,410 --> 00:01:29,695 Vuoi hai fatto per la pausa? 34 00:01:29,695 --> 00:01:30,820 PUBBLICO: È andato a New York. 35 00:01:30,820 --> 00:01:32,030 ANDI PENG: Sei andato a New York? 36 00:01:32,030 --> 00:01:33,738 Penso che la metà della nostra scuola è andato a New York. 37 00:01:33,738 --> 00:01:34,740 Va tutto bene. 38 00:01:34,740 --> 00:01:38,250 Ho passato la maggior parte della mia pausa sedentario a letto Netflixing. 39 00:01:38,250 --> 00:01:39,760 Ed è stato un buon tempo. 40 00:01:39,760 --> 00:01:43,450 >> Ma ora siamo indietro, indietro in seduta, di nuovo in altalena delle cose. 41 00:01:43,450 --> 00:01:47,900 Abbiamo un pset dovuto questo Venerdì a mezzogiorno. 42 00:01:47,900 --> 00:01:50,240 >> Credo che tu abbia già preso il quiz, sì? 43 00:01:50,240 --> 00:01:52,140 Così chiunque altro che ha Non avevano i loro quiz, 44 00:01:52,140 --> 00:01:55,416 si prega di venire a prendere i tuoi quiz da me alla fine della sezione. 45 00:01:55,416 --> 00:01:56,540 O mi rintracciare nel campus. 46 00:01:56,540 --> 00:01:59,310 Avrò con me da qualche parte. 47 00:01:59,310 --> 00:02:02,120 >> Il nostro progetto finale pre-proposta anche. 48 00:02:02,120 --> 00:02:06,380 Così per quelli di noi che non hanno mai preso questa classe prima, la chiave di volta di CS50 49 00:02:06,380 --> 00:02:11,150 molto è culminato in questo grande progetto che gli studenti propongono. 50 00:02:11,150 --> 00:02:14,300 E la proposta preliminare, solo un'idea generale 51 00:02:14,300 --> 00:02:18,500 di ciò che si potrebbe desiderare di fare per il loro progetto, l'idea è dovuto Lunedi, 52 00:02:18,500 --> 00:02:20,780 Lunedi prossimo a mezzogiorno. 53 00:02:20,780 --> 00:02:23,800 >> Così più o meno, penso che David sarà comunicare di più circa questo in conferenza 54 00:02:23,800 --> 00:02:25,390 se non l'ha già. 55 00:02:25,390 --> 00:02:28,710 E c'è una pagina solida sul nostro sito web che spiega 56 00:02:28,710 --> 00:02:31,610 tutti i requisiti del progetto. 57 00:02:31,610 --> 00:02:34,082 Ma in sostanza, scegliere qualsiasi argomento che hai 58 00:02:34,082 --> 00:02:35,915 stati interessati a per tutto il vostro tempo qui 59 00:02:35,915 --> 00:02:41,760 a CS, che si tratti di giochi o disegno o un video o qualsiasi cosa. 60 00:02:41,760 --> 00:02:44,920 >> E si può davvero tipo di ora applicare alcune delle lezioni 61 00:02:44,920 --> 00:02:52,470 che abbiamo imparato qui in CS50-- ciao, welcome-- a praticamente condurre 62 00:02:52,470 --> 00:02:56,320 un progetto finale della tua scelta. 63 00:02:56,320 --> 00:02:59,570 Tutto ciò che è dovuto Lunedi è solo un breve trafiletto via e-mail 64 00:02:59,570 --> 00:03:02,010 a me, una rapida sentenza, come, hey, Andi, 65 00:03:02,010 --> 00:03:06,490 Sono molto interessato nella progettazione un gioco che fa per iOS. 66 00:03:06,490 --> 00:03:07,420 Raffreddare. 67 00:03:07,420 --> 00:03:10,767 Basta che mi lasciate che il vostro brief iniziale idee per i vostri progetti finali. 68 00:03:10,767 --> 00:03:13,850 E parleremo attraverso o meno che in realtà è una buona idea o no, 69 00:03:13,850 --> 00:03:15,590 se si tratta di una idea fattibile o meno. 70 00:03:15,590 --> 00:03:20,760 Ma appena la proposta preliminare è prevista per il prossimo Lunedi. 71 00:03:20,760 --> 00:03:24,190 pset6, la nostra bella web-- che è sbagliato. 72 00:03:24,190 --> 00:03:25,060 Pset7? 73 00:03:25,060 --> 00:03:25,560 pset6? 74 00:03:25,560 --> 00:03:26,680 E 'pset6, giusto? 75 00:03:26,680 --> 00:03:32,690 >> pset6, il nostro web server, è dovuto Venerdì a mezzogiorno con la fine del giorno. 76 00:03:32,690 --> 00:03:37,660 Orario di ricevimento riprendere normalmente da Lunedi a Giovedi 8:00-11:00 questa settimana. 77 00:03:37,660 --> 00:03:39,710 Penso Commons per le prossime tre notti. 78 00:03:39,710 --> 00:03:40,310 Raffreddare. 79 00:03:40,310 --> 00:03:44,260 Prima abbiamo avuto nel materiale, qualcuno Per qualsiasi domanda, barzellette, storie? 80 00:03:44,260 --> 00:03:46,662 Che cosa hai fatto per l'autunno pausa? 81 00:03:46,662 --> 00:03:48,640 >> PUBBLICO: Che cosa devo fare? 82 00:03:48,640 --> 00:03:52,834 >> ANDI PENG: Already è tempo fa in realtà. 83 00:03:52,834 --> 00:03:54,000 Christabel andato a New York. 84 00:03:54,000 --> 00:03:55,614 Ho soggiornato qui e Netflixed. 85 00:03:55,614 --> 00:03:56,864 PUBBLICO: Oh, sì ero qui. 86 00:03:56,864 --> 00:03:57,614 ANDI PENG: Oh, OK. 87 00:03:57,614 --> 00:03:59,792 PUBBLICO: non mi ricordo che cosa specificamente. 88 00:03:59,792 --> 00:04:00,710 ANDI PENG: Va bene. 89 00:04:00,710 --> 00:04:01,960 PUBBLICO: Netflixing probabilmente. 90 00:04:01,960 --> 00:04:02,990 ANDI PENG: Netflixing. 91 00:04:02,990 --> 00:04:04,710 Sì, è un buon momento. 92 00:04:04,710 --> 00:04:05,780 OK. 93 00:04:05,780 --> 00:04:06,340 Tutto ok. 94 00:04:06,340 --> 00:04:08,877 Tutte le domande prima saltiamo in materiale? 95 00:04:08,877 --> 00:04:11,210 Inoltre, stiamo andando a cercare di accelerare attraverso la sezione di oggi, 96 00:04:11,210 --> 00:04:12,504 non troppo da coprire. 97 00:04:12,504 --> 00:04:14,420 E si spera, ci arriveremo qui un po 'presto. 98 00:04:14,420 --> 00:04:15,580 Ci scusiamo per non caramelle, anche. 99 00:04:15,580 --> 00:04:20,310 Io sono una delusione, soprattutto durante Halloween. 100 00:04:20,310 --> 00:04:21,110 >> Tutto ok. 101 00:04:21,110 --> 00:04:21,810 Raffreddare. 102 00:04:21,810 --> 00:04:28,370 Quindi stiamo andando a cominciare a parlare un argomento della riga di comando chiamato chmod. 103 00:04:28,370 --> 00:04:32,850 chmod, tutto ciò che è è solo un sistema Unix chiamata effettuata dalla linea di comando 104 00:04:32,850 --> 00:04:34,700 per cambiare i permessi dei file. 105 00:04:34,700 --> 00:04:37,790 Così, per esempio, abbiamo tutto incontrato una pagina 106 00:04:37,790 --> 00:04:40,550 come questo probabilmente qualche volta nel la nostra vita di essere un internet 107 00:04:40,550 --> 00:04:45,110 utente, dove il nostro server web ha ci ha dato l'errore di Proibita. 108 00:04:45,110 --> 00:04:49,086 Non hai il permesso di accesso, bla, bla, bla, su questo server. 109 00:04:49,086 --> 00:04:50,960 Tutto ciò che significa veramente è che le autorizzazioni 110 00:04:50,960 --> 00:04:53,920 che sono stati attaccati a qualsiasi pagina che stavi tentando di accedere 111 00:04:53,920 --> 00:04:55,840 non erano aperte a voi. 112 00:04:55,840 --> 00:04:57,870 Così più o meno, chmod è il modo in cui 113 00:04:57,870 --> 00:05:02,140 siamo in grado di modificare tali autorizzazioni del sistema per dare a tutti, l'utente, il gruppo, 114 00:05:02,140 --> 00:05:04,975 o il mondo, o qualsiasi combinazione di quelle accesso 115 00:05:04,975 --> 00:05:07,900 a determinati file, directory, nulla di veramente, 116 00:05:07,900 --> 00:05:11,720 qualsiasi tipo di sistema un sistema operativo. 117 00:05:11,720 --> 00:05:14,039 Quindi, se qualcuno di ragazzi hanno computer se si sente 118 00:05:14,039 --> 00:05:17,080 come seguire insieme a me oggi, totalmente sentitevi liberi di scrivere le cose solo 119 00:05:17,080 --> 00:05:17,580 in. 120 00:05:17,580 --> 00:05:19,790 In caso contrario, si può semplicemente appendere fuori. 121 00:05:19,790 --> 00:05:23,170 Quindi ho intenzione di tirare realmente il mio terminale al momento. 122 00:05:23,170 --> 00:05:29,810 123 00:05:29,810 --> 00:05:32,310 >> Così il comando da eseguire chmod, o almeno solo 124 00:05:32,310 --> 00:05:37,840 per elencare i permessi della directory del file, è solo ls-l. 125 00:05:37,840 --> 00:05:42,270 Come si può vedere, un gruppo di roba apre maggior parte dei quali 126 00:05:42,270 --> 00:05:45,390 è importante a noi il lato sinistro qui. 127 00:05:45,390 --> 00:05:48,710 Voi ragazzi vedere un mucchio di rs, ws, 1 /. 128 00:05:48,710 --> 00:05:49,210 Già. 129 00:05:49,210 --> 00:05:51,400 >> Questi sono essenzialmente solo tutti i permessi dei file 130 00:05:51,400 --> 00:05:55,960 per spiegare che cosa alcune directory e file all'interno del sistema hanno. 131 00:05:55,960 --> 00:05:58,150 Quindi torniamo a il punto di potere qui. 132 00:05:58,150 --> 00:06:02,450 133 00:06:02,450 --> 00:06:06,500 Quindi, oltre ai nomi di file come voi ragazzi può vedere sulla destra, 134 00:06:06,500 --> 00:06:10,312 stiamo cercando di vedere essenzialmente solo la colonna a sinistra. 135 00:06:10,312 --> 00:06:12,020 Quindi, oltre a solo i nomi dei file, abbiamo 136 00:06:12,020 --> 00:06:16,240 può vedere i permessi dei file, la loro gruppo di proprietari, il nome del gruppo, la data 137 00:06:16,240 --> 00:06:18,460 che il file è stato modificato, eccetera. 138 00:06:18,460 --> 00:06:20,640 Si può vedere un sacco di cose usando chmod. 139 00:06:20,640 --> 00:06:26,037 Quindi il modo che abbiamo letto chmod è che la prima lettera abbiamo praticamente ignoriamo 140 00:06:26,037 --> 00:06:27,370 in termini di permessi di lettura. 141 00:06:27,370 --> 00:06:31,460 >> La prima lettera ci dice proprio quello tipo di sistema che stiamo accesso. 142 00:06:31,460 --> 00:06:34,240 d, in questo caso, è un cartella o directory. 143 00:06:34,240 --> 00:06:38,430 Così sappiamo che la mia area di lavoro attualmente sezione sette era una directory. 144 00:06:38,430 --> 00:06:41,530 E poi si vede a tre triadi, essenzialmente solo 145 00:06:41,530 --> 00:06:43,490 tre gruppi di tre caratteri. 146 00:06:43,490 --> 00:06:45,680 E si può pensare di ciascuno come un po '. 147 00:06:45,680 --> 00:06:49,260 >> Quindi avete appena tre serie di tre bit, nove bit in totale. 148 00:06:49,260 --> 00:06:51,420 Li trattano in gruppi di tre. 149 00:06:51,420 --> 00:06:56,230 Così il primo gruppo di tre è sempre le autorizzazioni degli utenti. 150 00:06:56,230 --> 00:07:00,557 >> Il tuo secondo gruppo di tre è sempre le autorizzazioni di gruppo. 151 00:07:00,557 --> 00:07:02,765 E la tua terza serie di tre è sempre come il mondo, 152 00:07:02,765 --> 00:07:04,380 le autorizzazioni ovunque. 153 00:07:04,380 --> 00:07:06,320 Quindi credo che la facile domanda da porsi è che cosa è 154 00:07:06,320 --> 00:07:08,051 la differenza tra l'utente e il gruppo. 155 00:07:08,051 --> 00:07:09,800 La differenza principale tra l'utente e il gruppo 156 00:07:09,800 --> 00:07:13,180 è che un utente è proprio lei personalmente accedendo qualunque cosa sia adesso. 157 00:07:13,180 --> 00:07:18,070 Un gruppo può essere se si dispone di più utenti su un computer, per esempio. 158 00:07:18,070 --> 00:07:20,280 Tutti loro possono essere trattati come un gruppo. 159 00:07:20,280 --> 00:07:23,220 >> E poi il mondo è solo il mondo, tutti. 160 00:07:23,220 --> 00:07:31,010 Così possiamo vedere più avanti come possiamo modificare quelle in autorizzazioni diverse. 161 00:07:31,010 --> 00:07:33,080 Così più o meno, siamo andando a concentrarsi ancora 162 00:07:33,080 --> 00:07:38,450 sulla parte sinistra, dove per la directory CS50 vediamo drwx, 163 00:07:38,450 --> 00:07:40,970 dove la r significa solo che è leggibile. 164 00:07:40,970 --> 00:07:42,620 >> Il w significa solo che è scrivibile. 165 00:07:42,620 --> 00:07:45,470 E poi le x solo significa che è eseguibile. 166 00:07:45,470 --> 00:07:47,220 Si potrebbe pensare che tipo di non ha senso. 167 00:07:47,220 --> 00:07:47,993 Dovrebbe essere posta. 168 00:07:47,993 --> 00:07:50,150 Ma x realtà tipo di funziona un po 'meglio, 169 00:07:50,150 --> 00:07:51,690 perché si può ricordare meglio. 170 00:07:51,690 --> 00:07:56,406 >> Quindi i tre tipi di cose che si può fare, è possibile leggere un file, 171 00:07:56,406 --> 00:07:59,280 si può avere il permesso di scrivere un su file, o si potrebbe avere il permesso 172 00:07:59,280 --> 00:08:00,780 di eseguire un file. 173 00:08:00,780 --> 00:08:04,580 E così il modo in cui abbiamo effettivamente rappresentano quelli in bit 174 00:08:04,580 --> 00:08:06,940 è il numero 4, 2 e 1. 175 00:08:06,940 --> 00:08:12,870 Quindi tutto ciò che è leggibile sia rappresentata dal numero di 4. 176 00:08:12,870 --> 00:08:15,150 >> Tutto ciò che è scrivibile è rappresentato da 2. 177 00:08:15,150 --> 00:08:18,880 E tutto ciò che è eseguibile come rappresentato dalla 1. 178 00:08:18,880 --> 00:08:22,860 Quindi, in questo senso, possiamo anche rappresentare queste numbers-- 179 00:08:22,860 --> 00:08:25,281 Ciao, benvenuto, in un modo diverso. 180 00:08:25,281 --> 00:08:25,780 Scusate. 181 00:08:25,780 --> 00:08:28,510 Prima di tutto, ho intenzione di chiedere scusa a nome di tutti 182 00:08:28,510 --> 00:08:29,468 entra la classe ora. 183 00:08:29,468 --> 00:08:30,810 Ho dimenticato caramelle oggi. 184 00:08:30,810 --> 00:08:33,640 Mi dispiace che sono un fallimento questa settimana di Halloween. 185 00:08:33,640 --> 00:08:37,070 Porterò doppio della quantità di caramelle prossima volta per fare per essa. 186 00:08:37,070 --> 00:08:42,360 Ma comunque, mi dispiace su che ragazzi, mi dispiace. 187 00:08:42,360 --> 00:08:46,640 >> Quindi il modo che possiamo realmente ingresso sul nostro comando l'argomento è che 188 00:08:46,640 --> 00:08:51,760 può fare le autorizzazioni gruppo oblique chmod, dove il gruppo è solo ciò che 189 00:08:51,760 --> 00:08:54,130 gruppo stiamo cercando di cambiare. 190 00:08:54,130 --> 00:08:56,600 E i permessi sono tutto ciò che vogliamo aggiungere. 191 00:08:56,600 --> 00:08:58,860 Così, per esempio, la e aggiunge autorizzazioni, 192 00:08:58,860 --> 00:09:01,590 e la sottrazione toglie autorizzazioni. 193 00:09:01,590 --> 00:09:07,060 >> E il tipo di gruppo abbiamo un nostro per tutti, u per gli utenti, g per gruppi, 194 00:09:07,060 --> 00:09:09,050 oppure o per gli altri. 195 00:09:09,050 --> 00:09:10,300 E 'un po' astratto in questo momento. 196 00:09:10,300 --> 00:09:13,550 Ma andiamo oltre un paio di esempi proprio per dimostrare questo rapido reale. 197 00:09:13,550 --> 00:09:16,960 Tutto bene su questo scivolo, quindi posso andare avanti? 198 00:09:16,960 --> 00:09:18,280 Raffreddare. 199 00:09:18,280 --> 00:09:21,290 >> Così, per esempio, rwx. 200 00:09:21,290 --> 00:09:26,720 Prima di parlare di ciò che rappresenta, prima di tutto ciò che rwx significa? 201 00:09:26,720 --> 00:09:31,450 Se si vede che questa determinata file ha permessi rwx, 202 00:09:31,450 --> 00:09:34,270 cosa vuol dire la persona potrebbe essere in grado di fare? 203 00:09:34,270 --> 00:09:35,740 >> PUBBLICO: lettura, scrittura ed esecuzione. 204 00:09:35,740 --> 00:09:36,420 >> ANDI PENG: Sì, esattamente. 205 00:09:36,420 --> 00:09:37,840 È possibile leggere scrivere ed eseguire. 206 00:09:37,840 --> 00:09:40,790 Poiché tutti e tre questi personaggi sono presenti. 207 00:09:40,790 --> 00:09:44,370 Quindi, se andiamo avanti e parliamo su questo in termini di bit, 208 00:09:44,370 --> 00:09:48,490 la rwx può anche essere rappresentato come 700. 209 00:09:48,490 --> 00:09:53,370 Perché, come si può vedere in qualsiasi sorta di permesso di directory di file, 210 00:09:53,370 --> 00:09:54,320 ci sono tre triadi. 211 00:09:54,320 --> 00:09:58,060 >> In questo caso, solo la prima triade ha qualcosa lì. 212 00:09:58,060 --> 00:10:04,050 Quindi, in questo caso, la r è 4, la w è 2, ed il x è 1. 213 00:10:04,050 --> 00:10:05,860 Se si aggiungono quelli insieme, è 7. 214 00:10:05,860 --> 00:10:08,730 >> E così se si converte per binario, è 700. 215 00:10:08,730 --> 00:10:10,310 Perché 7 è la prima triade. 216 00:10:10,310 --> 00:10:12,760 0, non c'è niente presente nella seconda terna. 217 00:10:12,760 --> 00:10:15,850 E poi non c'è nulla presenti in la terza triade, quindi questo è un altro 0. 218 00:10:15,850 --> 00:10:22,520 >> Così nello stesso senso, un gruppo di triadi può essere rappresentato solo in bit, solo 219 00:10:22,520 --> 00:10:23,600 in binario pure. 220 00:10:23,600 --> 00:10:29,920 Così 700 significa la stessa cosa come rwx ------ in termini di autorizzazioni. 221 00:10:29,920 --> 00:10:32,590 Ognuno chiaro? 222 00:10:32,590 --> 00:10:33,090 Raffreddare. 223 00:10:33,090 --> 00:10:40,290 E così chmod 111 darebbe che le autorizzazioni per il file? 224 00:10:40,290 --> 00:10:42,600 Darvi ragazzi una coppia secondi per convertire questo. 225 00:10:42,600 --> 00:10:51,140 226 00:10:51,140 --> 00:10:53,250 Ricordate, la prima triade è per l'utente. 227 00:10:53,250 --> 00:10:56,320 La seconda triade è per il gruppo. 228 00:10:56,320 --> 00:10:59,450 E la terza triade è per tutti. 229 00:10:59,450 --> 00:11:03,680 >> E così chmod 111 avrebbe dato che tipo di autorizzazioni e per chi? 230 00:11:03,680 --> 00:11:06,520 231 00:11:06,520 --> 00:11:09,020 Prendete un paio di secondi a pensarci e tornare indietro. 232 00:11:09,020 --> 00:11:19,790 233 00:11:19,790 --> 00:11:20,910 Già. 234 00:11:20,910 --> 00:11:22,920 >> PUBBLICO: Così tutti possono eseguirlo. 235 00:11:22,920 --> 00:11:23,920 ANDI PENG: Yup, esattamente. 236 00:11:23,920 --> 00:11:25,544 PUBBLICO: Ma nessuno sa né leggere né scrivere. 237 00:11:25,544 --> 00:11:27,910 ANDI PENG: E sentitevi liberi per spiegare a tutti 238 00:11:27,910 --> 00:11:29,860 come sei arrivato a questa conclusione. 239 00:11:29,860 --> 00:11:34,290 >> PUBBLICO: Beh, per l'utente, il di gruppo, e il mondo, è tutto uno, 240 00:11:34,290 --> 00:11:35,700 che è il codice eseguibile per. 241 00:11:35,700 --> 00:11:37,070 >> ANDI PENG: Sì, esattamente. 242 00:11:37,070 --> 00:11:42,320 Quindi 1, in questo caso, sappiamo soltanto che questo è il codice eseguibile. 243 00:11:42,320 --> 00:11:45,280 Perché la lettura è di 4. 244 00:11:45,280 --> 00:11:45,990 La scrittura è 2. 245 00:11:45,990 --> 00:11:47,230 E l'eseguibile è 1. 246 00:11:47,230 --> 00:11:51,580 Così è tutti e tre triadi sono 1, che significa che per il mondo, per l'utente, 247 00:11:51,580 --> 00:11:54,680 e al gruppo, sono tutti eseguibili. 248 00:11:54,680 --> 00:11:56,170 >> Tutti bene con quello? 249 00:11:56,170 --> 00:11:56,940 OK. 250 00:11:56,940 --> 00:11:59,180 E così il secondo modo che possiamo realmente 251 00:11:59,180 --> 00:12:01,220 scrivere questo anche è che si potrebbe solo fare chmod 252 00:12:01,220 --> 00:12:05,050 un plus x. una si intendono tutti o tutti. 253 00:12:05,050 --> 00:12:07,060 Il plus significa dare autorizzazioni a. 254 00:12:07,060 --> 00:12:09,112 E poi la x significa eseguibile. 255 00:12:09,112 --> 00:12:11,070 Quindi ci sono due comandi sono in realtà identici. 256 00:12:11,070 --> 00:12:12,903 Quindi, se si desidera eseguire questo nel terminale, 257 00:12:12,903 --> 00:12:15,830 fate chmod 111, nome directory o al file. 258 00:12:15,830 --> 00:12:18,520 Oppure si può fare chmod un plus x, il nome del file della directory. 259 00:12:18,520 --> 00:12:22,150 La stessa cosa, solo un modo più semplice, forse, per alcuni di rappresentare o di cambiamento 260 00:12:22,150 --> 00:12:24,280 i permessi dei file. 261 00:12:24,280 --> 00:12:28,806 >> Ognuno OK con chmod prima di passare? 262 00:12:28,806 --> 00:12:31,700 Raffreddare. 263 00:12:31,700 --> 00:12:35,336 Così ora stiamo andando a testa in un alcune diapositive di concetti molto astratte 264 00:12:35,336 --> 00:12:37,210 che io sono più o meno andando a brezza attraverso. 265 00:12:37,210 --> 00:12:39,530 Ed è del tutto OK se si non capisco tutto. 266 00:12:39,530 --> 00:12:42,330 >> Anche adesso, io ancora non lo faccio davvero comprendere completamente tutto. 267 00:12:42,330 --> 00:12:44,640 Ma è più di ottenere la comprensione di livello superiore 268 00:12:44,640 --> 00:12:47,280 di come alcune di queste cose funzionano. 269 00:12:47,280 --> 00:12:50,490 Quindi stiamo andando a parlare rapidamente sul protocollo TCP / IP, 270 00:12:50,490 --> 00:12:54,880 che è appena Transmission Control Protocollo taglio su Internet Protocol. 271 00:12:54,880 --> 00:12:57,135 >> Ricordiamo da conferenza, David, ti ha insegnato 272 00:12:57,135 --> 00:13:00,700 l'esempio dove aveva passare le note in una busta 273 00:13:00,700 --> 00:13:02,790 fino a come la parte superiore della sala conferenze? 274 00:13:02,790 --> 00:13:06,990 Così nella auditorium della scuola legge David ha dimostrato essenzialmente 275 00:13:06,990 --> 00:13:10,370 come il protocollo TCP / IP funziona in il senso che tutto 276 00:13:10,370 --> 00:13:14,300 è sia un mezzo per assicurare che i dati è stato consegnato attraverso un server 277 00:13:14,300 --> 00:13:15,870 o su Internet. 278 00:13:15,870 --> 00:13:22,270 Quindi, nell'esempio della busta e il messaggio, l'utente al fine 279 00:13:22,270 --> 00:13:26,410 poteva vedere che, oh, avevo bisogno di ricevere quattro pacchetti di informazioni. 280 00:13:26,410 --> 00:13:28,096 >> Ma in realtà ho solo ricevuto tre. 281 00:13:28,096 --> 00:13:29,470 Ciò significa che devo mancare uno. 282 00:13:29,470 --> 00:13:30,760 E non è stato consegnato. 283 00:13:30,760 --> 00:13:33,990 E così il protocollo TCP / IP su Internet, attraverso il computer e il server, 284 00:13:33,990 --> 00:13:35,500 fa la stessa identica cosa. 285 00:13:35,500 --> 00:13:38,900 Tutto ciò che fa è specificare un quadro in cui una perdita di dati 286 00:13:38,900 --> 00:13:41,100 i pacchetti possono essere risentiti e ricevuti. 287 00:13:41,100 --> 00:13:44,760 >> Come su internet quando si sta cercando per accedere ai file online o inviare file 288 00:13:44,760 --> 00:13:48,210 il tuo amico o guardare web browser, migliaia e migliaia 289 00:13:48,210 --> 00:13:50,440 di miliardi e miliardi di byte informazioni 290 00:13:50,440 --> 00:13:52,840 sono trasferiti per millisecondo. 291 00:13:52,840 --> 00:13:54,560 Ed è molto, molto confusa. 292 00:13:54,560 --> 00:13:57,110 Ed è davvero difficile in realtà sapere ciò che è stato inviato 293 00:13:57,110 --> 00:13:58,270 e ciò che non è stato inviato. 294 00:13:58,270 --> 00:14:02,210 >> E così il protocollo TCP / IP specifica solo un quadro coerente 295 00:14:02,210 --> 00:14:04,115 in cui il vostro web il browser e il server 296 00:14:04,115 --> 00:14:05,990 può sorta di comunicare con l'altro, solo 297 00:14:05,990 --> 00:14:08,550 fare in modo che i pacchetti siano tutto qui e niente di perduto 298 00:14:08,550 --> 00:14:12,700 e tutti i dati che avete richiesto è in realtà corretta visualizzazione. 299 00:14:12,700 --> 00:14:16,350 Ognuno OK sul proprio questo molto breve alto livello capito? 300 00:14:16,350 --> 00:14:18,510 Raffreddare. 301 00:14:18,510 --> 00:14:21,550 >> Allora stiamo andando a spostare a parlare di HTTP, che 302 00:14:21,550 --> 00:14:24,610 è solo Hypertext Transfer Protocol. 303 00:14:24,610 --> 00:14:32,550 HTTP, tutto è è tutto ciò che qualsiasi pagina o il file è accessibile sul tuo sito web, 304 00:14:32,550 --> 00:14:35,810 il server restituisce un HTTP codice di stato in risposta 305 00:14:35,810 --> 00:14:39,869 alla richiesta assicurandosi che sia, oh, questa richiesta ha attraversato. 306 00:14:39,869 --> 00:14:41,410 E tutto di visualizzare correttamente. 307 00:14:41,410 --> 00:14:43,500 Oppure, oh, no, 404. 308 00:14:43,500 --> 00:14:44,730 Qualcosa è andato storto. 309 00:14:44,730 --> 00:14:45,940 Oh, non riesco a visualizzare. 310 00:14:45,940 --> 00:14:50,370 >> Tutto ciò che è è che qualunque si sta cercando di accedere, 311 00:14:50,370 --> 00:14:55,160 utilizzare come l'utente sta tentando di accedere, sulla internet-- appena assicurandosi 312 00:14:55,160 --> 00:15:00,080 che hai con successo accessibile qualunque cosa fosse o no 313 00:15:00,080 --> 00:15:02,080 accedere con successo qualsiasi cosa fosse. 314 00:15:02,080 --> 00:15:05,120 E così lo stato HTTP codice appena fornisce 315 00:15:05,120 --> 00:15:09,910 un mezzo per essere in grado di sapere se o non ha avuto successo o meno. 316 00:15:09,910 --> 00:15:13,440 Così, per esempio, un esempio di richiesta. 317 00:15:13,440 --> 00:15:16,050 >> Potete vedere qui è di solito in genere quattro linee. 318 00:15:16,050 --> 00:15:22,530 Abbiamo un HTTP GET 1.1, che è solo l'URL della richiesta metodo, il protocollo 319 00:15:22,530 --> 00:15:24,490 la versione, il nome del campo, e il valore del campo. 320 00:15:24,490 --> 00:15:26,810 Quindi nessun bisogno di completamente memorizzare nulla qui. 321 00:15:26,810 --> 00:15:29,960 Solo tipo di familiarizzare te stesso con come questi sembrano. 322 00:15:29,960 --> 00:15:34,060 >> In questo esempio, il metodo di richiesta URL è proprio qualunque richiesta 323 00:15:34,060 --> 00:15:35,620 si sta inviando al server. 324 00:15:35,620 --> 00:15:40,710 Come, ehi, assistente, ho molta voglia di accesso bla, bla, bla, pag HTTP. 325 00:15:40,710 --> 00:15:43,785 La versione del protocollo è proprio qualunque versione tuo host o server 326 00:15:43,785 --> 00:15:45,490 utilizza per accedere alle informazioni. 327 00:15:45,490 --> 00:15:49,510 >> Il nome del campo è il sito o URL che si sta cercando di accedere, 328 00:15:49,510 --> 00:15:52,610 in questo caso, www.apple.com. 329 00:15:52,610 --> 00:15:56,110 E il valore del campo è solo tipicamente nome, valore. 330 00:15:56,110 --> 00:15:59,540 E può essere qualsiasi tipo di combinazione di lettere o numeri o qualsiasi altra cosa. 331 00:15:59,540 --> 00:16:02,890 >> Quindi una richiesta tipica, in modo da ciò che il computer in realtà 332 00:16:02,890 --> 00:16:08,400 invia al server che dice, hey, si sa che cosa ho bisogno di questo visualizzata, 333 00:16:08,400 --> 00:16:13,000 questo è il tipo di richiesta che in realtà ricevono. 334 00:16:13,000 --> 00:16:16,760 Una risposta esempio di ciò che il server potrebbe rispedire a voi 335 00:16:16,760 --> 00:16:20,320 sarebbe più o meno la stessa cosa, se non con un codice di stato nella parte superiore. 336 00:16:20,320 --> 00:16:24,550 Così 200, 2 0 0 è sempre il codice di stato OK. 337 00:16:24,550 --> 00:16:26,050 Come, OK, questa richiesta ha attraversato. 338 00:16:26,050 --> 00:16:27,980 Siete stati in grado di accedere tutto correttamente. 339 00:16:27,980 --> 00:16:28,810 La vita è bella. 340 00:16:28,810 --> 00:16:29,990 La vita va bene. 341 00:16:29,990 --> 00:16:32,150 Tutto è totalmente buono. 342 00:16:32,150 --> 00:16:36,050 >> E così questo dice solo il browser e il server, ehi, buon tutto. 343 00:16:36,050 --> 00:16:37,470 Ho ottenuto tutte le informazioni che mi servono. 344 00:16:37,470 --> 00:16:39,160 Raffreddare. 345 00:16:39,160 --> 00:16:41,790 Ma il problema è talvolta sorgono dei problemi 346 00:16:41,790 --> 00:16:46,850 quando si have-- durare penso Ho parlato di duplicati. 347 00:16:46,850 --> 00:16:48,870 Hai meno buone risposte. 348 00:16:48,870 --> 00:16:52,660 >> Così, per esempio, 404 è la pagina non trovata. 349 00:16:52,660 --> 00:16:54,897 A volte hanno un accesso Proibita. 350 00:16:54,897 --> 00:16:56,730 Avete vari altri codici di stato che io sono 351 00:16:56,730 --> 00:16:59,688 Assicurati di visto tutti quando si è cercando di fare ricerca su internet. 352 00:16:59,688 --> 00:17:02,300 E il browser ti dà la, no, non può accedere. 353 00:17:02,300 --> 00:17:04,190 E tu sei come, bene, merda. 354 00:17:04,190 --> 00:17:09,260 >> Quindi, solo più o meno, non c'è alcuni codici di stato piuttosto comuni. 355 00:17:09,260 --> 00:17:14,109 Forse familiarizzare con quali quelli sono. 356 00:17:14,109 --> 00:17:16,000 Quello che più divertente Io credo di aver mai sentito 357 00:17:16,000 --> 00:17:18,040 di-- se vi capita di cercare tutti 358 00:17:18,040 --> 00:17:21,490 on-line, per qualche motivo c'è in realtà un codice di stato reale 359 00:17:21,490 --> 00:17:26,619 chiamato 418 Sono una teiera. 360 00:17:26,619 --> 00:17:29,610 >> Ho cercato su google dove il origine di questo era da. 361 00:17:29,610 --> 00:17:33,150 E a quanto pare uno pesce d'aprile ' Giorno un paio di decenni fa, 362 00:17:33,150 --> 00:17:36,415 qualcuno ha pensato che sarebbe stato esilarante per creare un nuovo codice di stato chiamato 418 363 00:17:36,415 --> 00:17:37,380 Io sono una teiera. 364 00:17:37,380 --> 00:17:40,760 Legittimamente, il nome di questo codice viene chiamato io sono una teiera. 365 00:17:40,760 --> 00:17:43,670 >> Io dimenticare ciò che la pagina è necessario andare a fare effettivamente questo display. 366 00:17:43,670 --> 00:17:47,955 Ma a quanto pare, si può effettivamente ottenere un codice di stato sono 367 00:17:47,955 --> 00:17:51,400 una teiera in qualche modo attraverso il fare qualcosa. 368 00:17:51,400 --> 00:17:54,480 Quindi ci sono centinaia e centinaia di codici di stato. 369 00:17:54,480 --> 00:17:56,730 >> Alcuni di loro fanno più senso rispetto ad altri. 370 00:17:56,730 --> 00:18:01,430 Ma praticamente solo familiarizzare te stesso con le più comuni. 371 00:18:01,430 --> 00:18:04,090 Il corpo dell'entità richiesta è corto e robusto, a quanto pare. 372 00:18:04,090 --> 00:18:07,990 >> Così a volte ci sono più errori spaventosi di quanto mi sono una teiera. 373 00:18:07,990 --> 00:18:11,210 Ma questo è quello che immagino è sorta di spera di colpire. 374 00:18:11,210 --> 00:18:14,130 Ma io non credo che si farà. 375 00:18:14,130 --> 00:18:17,260 Tutti bene sul proprio stato i codici, le richieste, i processi, il processo 376 00:18:17,260 --> 00:18:19,155 che le informazioni viene consegnato correttamente? 377 00:18:19,155 --> 00:18:22,270 378 00:18:22,270 --> 00:18:26,120 >> Così ora stiamo andando a transizione in una parte divertente della sezione di oggi, 379 00:18:26,120 --> 00:18:28,500 dove si parla un po 'di HTML. 380 00:18:28,500 --> 00:18:32,580 HTML, tutto è HyperText Linguaggio con marcatori. 381 00:18:32,580 --> 00:18:35,160 E 'solo la lingua standard utilizzato per creare tutti i web 382 00:18:35,160 --> 00:18:36,690 pagine su internet. 383 00:18:36,690 --> 00:18:39,560 >> Quindi, qualsiasi pagina web, qual è la tua pagina web preferita? 384 00:18:39,560 --> 00:18:40,855 Qual è la tua pagina web preferita? 385 00:18:40,855 --> 00:18:41,771 >> PUBBLICO: [incomprensibile]. 386 00:18:41,771 --> 00:18:42,270 387 00:18:42,270 --> 00:18:43,090 ANDI PENG: Siamo spiacenti? 388 00:18:43,090 --> 00:18:43,980 >> PUBBLICO: Tumblr. 389 00:18:43,980 --> 00:18:44,730 >> ANDI PENG: Tumblr. 390 00:18:44,730 --> 00:18:46,800 Così Tumblr è scritto in HTML. 391 00:18:46,800 --> 00:18:50,700 E così faremo effettivamente andare attraverso e giocare con alcune di queste cose 392 00:18:50,700 --> 00:18:51,980 più tardi. 393 00:18:51,980 --> 00:18:54,980 Praticamente tutto quello che si bisogno di imparare, di conoscere, 394 00:18:54,980 --> 00:18:58,540 per scrivere codice HTML si può probabilmente solo Google su internet. 395 00:18:58,540 --> 00:19:04,490 >> HTML, non è un programma come C dove è possibile creare le variabili e fare 396 00:19:04,490 --> 00:19:05,600 cose interessanti con esso. 397 00:19:05,600 --> 00:19:08,747 E 'più di solo, oh, è così che vogliono che le cose appaiono sul mio sito web. 398 00:19:08,747 --> 00:19:10,080 E sto solo andando a mettere in. 399 00:19:10,080 --> 00:19:12,160 E sta andando per lo stile di esso. 400 00:19:12,160 --> 00:19:15,650 >> Così HTML, in un certo senso, è proprio come un linguaggio di formattazione o un modello. 401 00:19:15,650 --> 00:19:16,680 E 'molto più facile. 402 00:19:16,680 --> 00:19:19,030 E 'molto più facile da imparare, molto più facile da scrivere a 403 00:19:19,030 --> 00:19:21,450 che la programmazione tipica lingua, molto semplice, 404 00:19:21,450 --> 00:19:24,310 molto facile accessibile e accogliente. 405 00:19:24,310 --> 00:19:29,040 >> Quindi stiamo effettivamente andando a giocare intorno, scrivere le nostre pagine di oggi. 406 00:19:29,040 --> 00:19:32,900 Ma prima di iniziare, voglio solo andare oltre alcune brevi best practice. 407 00:19:32,900 --> 00:19:35,660 Perché HTML è tale un facile lingua e perché anche 408 00:19:35,660 --> 00:19:39,012 se si fa un paio di cose sbagliate, a volte può non notare, 409 00:19:39,012 --> 00:19:41,970 Vogliamo fare in modo che siamo in realtà aderente alla nostre best practice 410 00:19:41,970 --> 00:19:44,490 per assicurarsi che le cose che potrebbe essere andare in giro, ma 411 00:19:44,490 --> 00:19:49,660 non sono sempre intenzione di non andare a destra assicurarsi che stanno ridotti al minimo. 412 00:19:49,660 --> 00:19:53,570 >> Così più o meno, assicurarsi i tuoi chiusura tutti i tag 413 00:19:53,570 --> 00:19:54,737 quando si scrive in HTML. 414 00:19:54,737 --> 00:19:56,486 Se si sta aprendo un corpo, assicuratevi di essere 415 00:19:56,486 --> 00:19:58,015 chiudendolo con un corpo da qualche parte. 416 00:19:58,015 --> 00:20:00,720 Si vuole fare in modo che il vostro La pagina web di convalida utilizzando 417 00:20:00,720 --> 00:20:02,070 quello che chiama il W3 Validator. 418 00:20:02,070 --> 00:20:05,460 Si può solo Google che on-line, e c'è un link ad esso. 419 00:20:05,460 --> 00:20:07,820 >> E poi vuoi separata HTML, che 420 00:20:07,820 --> 00:20:13,060 è il vostro linguaggio di markup dal vostro stile, che è il linguaggio CSS che David 421 00:20:13,060 --> 00:20:17,510 dimostrato che siamo anche andare a giocare un po 'con lezione. 422 00:20:17,510 --> 00:20:19,120 Raffreddare. 423 00:20:19,120 --> 00:20:23,500 Quindi, ogni volta che si desidera eseguire HTML sull'apparecchio CS50, 424 00:20:23,500 --> 00:20:26,240 stiamo andando a correre un programma chiamato apache, 425 00:20:26,240 --> 00:20:29,810 che tutto è solo un costruito in web server che tutti in CS50 426 00:20:29,810 --> 00:20:31,410 ha accesso. 427 00:20:31,410 --> 00:20:35,700 Noi lo chiamiamo apache50 solo perché siamo Per chiamare tutto 50 in CS50. 428 00:20:35,700 --> 00:20:39,610 >> Quindi il modo che si avvia il web CS50 server è digitando sul vostro comando 429 00:20:39,610 --> 00:20:42,860 Linea apache50 inizio punto. 430 00:20:42,860 --> 00:20:46,665 E se si desidera terminare in qualsiasi tempo, non apache50 finisce alcun punto. 431 00:20:46,665 --> 00:20:47,910 E basta invio. 432 00:20:47,910 --> 00:20:50,810 E dovrebbe essere a capo di qui a breve. 433 00:20:50,810 --> 00:20:53,630 434 00:20:53,630 --> 00:20:54,130 Sì. 435 00:20:54,130 --> 00:20:58,110 Quindi sono solo per andare rapidamente su un esempio di una pagina web molto breve. 436 00:20:58,110 --> 00:21:00,280 E stiamo andando a spendere come 10, 15 minuti a giocare 437 00:21:00,280 --> 00:21:04,008 intorno a scrivere le nostre pagine web. 438 00:21:04,008 --> 00:21:05,320 OK. 439 00:21:05,320 --> 00:21:07,841 Così qui in IDE-- Tutti possono vedere che? 440 00:21:07,841 --> 00:21:08,340 Non proprio. 441 00:21:08,340 --> 00:21:11,400 Qui, io lo zoom in. 442 00:21:11,400 --> 00:21:15,850 >> Ho appena ricevuto questa breve template qui con nulla di fatto in essa. 443 00:21:15,850 --> 00:21:20,660 Stiamo solo andando a scrivere velocemente un programma di HTML in cui abbiamo appena 444 00:21:20,660 --> 00:21:22,050 dire ciao al mondo. 445 00:21:22,050 --> 00:21:24,970 Così stessa cosa come in C, ora siamo solo andando a farlo in formato HTML. 446 00:21:24,970 --> 00:21:28,250 Qualcuno ha voglia di realtà solo provare a dare a me la prima cosa che si 447 00:21:28,250 --> 00:21:31,870 avrebbe dovuto mettere in un documento HTML? 448 00:21:31,870 --> 00:21:32,850 Già. 449 00:21:32,850 --> 00:21:35,965 >> PUBBLICO: le parentesi, il [incomprensibile]. 450 00:21:35,965 --> 00:21:36,590 ANDI PENG: Sì. 451 00:21:36,590 --> 00:21:47,200 452 00:21:47,200 --> 00:21:50,930 Quindi, qualcosa che è molto unica per HTML che abbiamo in genere tradizionalmente 453 00:21:50,930 --> 00:21:56,080 non incontrare in altro comando linguaggi di programmazione a livello di linea 454 00:21:56,080 --> 00:21:59,890 è che in realtà a specificare il tipo di file 455 00:21:59,890 --> 00:22:01,987 che questo sta per essere nella parte superiore del nostro codice. 456 00:22:01,987 --> 00:22:04,570 Quindi, in questo instance-- credo questo è il comando giusto, giusto? 457 00:22:04,570 --> 00:22:10,050 458 00:22:10,050 --> 00:22:10,550 Sì. 459 00:22:10,550 --> 00:22:14,860 Nella parte superiore, si vuole solo includere botto DOCTYPE html tra parentesi solo 460 00:22:14,860 --> 00:22:17,670 a dire il computer, ehi, guarda fuori. 461 00:22:17,670 --> 00:22:20,050 E documento HTML è in arrivo. 462 00:22:20,050 --> 00:22:22,250 E allora come vogliamo per iniziare il nostro file? 463 00:22:22,250 --> 00:22:25,540 Se vogliamo solo dire ciao, hanno un pagina web che dice ciao al mondo, 464 00:22:25,540 --> 00:22:26,915 Come possiamo fare per costruire questo? 465 00:22:26,915 --> 00:22:32,910 466 00:22:32,910 --> 00:22:35,300 >> In realtà, torniamo a Google. 467 00:22:35,300 --> 00:22:36,910 E possiamo effettivamente fare questo. 468 00:22:36,910 --> 00:22:43,170 469 00:22:43,170 --> 00:22:43,670 Sì. 470 00:22:43,670 --> 00:22:44,840 Ci siamo. 471 00:22:44,840 --> 00:22:47,630 Così HTML. 472 00:22:47,630 --> 00:22:52,390 Come potete vedere, il mio browser è in realtà styling automaticamente questo per me. 473 00:22:52,390 --> 00:22:56,010 >> Stessa cosa come in C, quando si creare una parentesi graffa aperta, 474 00:22:56,010 --> 00:22:59,020 il browser automaticamente aggiunge in una stretta parentesi graffa. 475 00:22:59,020 --> 00:23:02,210 Per fortuna, il nostro IDE ama fare questo per noi. 476 00:23:02,210 --> 00:23:05,490 Così ora siamo in grado di tipo di tipo l'inizio di un tag, 477 00:23:05,490 --> 00:23:09,139 e sta andando a dirci sempre a ricordarsi di digitare la fine del tag. 478 00:23:09,139 --> 00:23:10,680 Credo che questo debba essere capitalizzati. 479 00:23:10,680 --> 00:23:15,510 480 00:23:15,510 --> 00:23:21,760 E poi vogliamo aggiungere, sempre, una testa in cui è il titolo. 481 00:23:21,760 --> 00:23:25,270 482 00:23:25,270 --> 00:23:29,160 Vogliamo solo chiamare forse questo ciao, e poi il corpo. 483 00:23:29,160 --> 00:23:34,010 484 00:23:34,010 --> 00:23:36,310 >> E ci si va. 485 00:23:36,310 --> 00:23:39,650 Che è in realtà il nostro documento HTML. 486 00:23:39,650 --> 00:23:45,030 Quindi il modo che qualsiasi documento HTML è sempre in stile dentro-- stessa cosa 487 00:23:45,030 --> 00:23:46,720 con int void main. 488 00:23:46,720 --> 00:23:49,600 Hai sempre voglia di avere HTML un tag di apertura e chiusura 489 00:23:49,600 --> 00:23:52,100 nella parte superiore e inferiore del vostro codice. 490 00:23:52,100 --> 00:23:56,900 >> Volete avere una testa dentro di che contiene il titolo, solo quello 491 00:23:56,900 --> 00:24:01,430 sta per visualizzare la scheda del tuo sito web pagina e quindi un corpo all'interno del quale 492 00:24:01,430 --> 00:24:04,120 effettivamente visualizzare il contenuto di quello che vuoi fare. 493 00:24:04,120 --> 00:24:08,220 Quindi, se si voleva correre in realtà questo, ho intenzione di zoom indietro. 494 00:24:08,220 --> 00:24:12,740 Si può effettivamente iniziare apache50 iniziare a puntino. 495 00:24:12,740 --> 00:24:15,650 496 00:24:15,650 --> 00:24:16,150 Raffreddare. 497 00:24:16,150 --> 00:24:18,980 E così come si può vedere, ora questo link è apparso. 498 00:24:18,980 --> 00:24:21,940 Dice il tuo sito è ora disponibile ad un certo link qui sotto. 499 00:24:21,940 --> 00:24:25,910 Quindi tutto il nostro IDE ha done-- Non IDE, sorry-- sì, 500 00:24:25,910 --> 00:24:33,280 il nostro IDE ha fatto è creare una rete collegamento su cui tutte le nostre pagine web 501 00:24:33,280 --> 00:24:35,407 si può accedere sul server. 502 00:24:35,407 --> 00:24:36,490 Quindi, diamo uno sguardo qui. 503 00:24:36,490 --> 00:24:40,240 >> Facciamo clic su questo, andare a hello.html. 504 00:24:40,240 --> 00:24:42,895 E si vede una molto semplice pagina web per ciao mondo. 505 00:24:42,895 --> 00:24:46,477 506 00:24:46,477 --> 00:24:47,420 OK. 507 00:24:47,420 --> 00:24:50,513 Stiamo davvero andando a solo avere everyone-- sì, che cosa succede? 508 00:24:50,513 --> 00:24:52,353 >> PUBBLICO: Ho una domanda di base. 509 00:24:52,353 --> 00:24:52,978 ANDI PENG: Yup. 510 00:24:52,978 --> 00:24:58,064 PUBBLICO: Come si fa a salvare il file come HTML? 511 00:24:58,064 --> 00:24:58,730 ANDI PENG: Sì. 512 00:24:58,730 --> 00:25:02,960 513 00:25:02,960 --> 00:25:10,820 Quindi, se dovessi creare un nuovo file, se faccio Nuovo file, Untittle, se lo faccio, 514 00:25:10,820 --> 00:25:14,390 section.html, boom, questo è tutto quello che devo fare. 515 00:25:14,390 --> 00:25:15,363 >> PUBBLICO: [incomprensibile]? 516 00:25:15,363 --> 00:25:15,946 ANDI PENG: No. 517 00:25:15,946 --> 00:25:16,660 PUBBLICO: [incomprensibile]. 518 00:25:16,660 --> 00:25:17,240 ANDI PENG: No. 519 00:25:17,240 --> 00:25:18,156 PUBBLICO: [incomprensibile]. 520 00:25:18,156 --> 00:25:19,110 ANDI PENG: Sì. 521 00:25:19,110 --> 00:25:24,300 Praticamente, l'estensione sul il file che è all'interno del vostro IDE, 522 00:25:24,300 --> 00:25:27,840 che dice il computer, che dice al browser, ehi, guarda fuori. 523 00:25:27,840 --> 00:25:30,480 Questo sta per essere il codice scritto in questa lingua. 524 00:25:30,480 --> 00:25:34,240 Così, per esempio, in Microsoft Parola, che cosa fare tutti i documenti di Word 525 00:25:34,240 --> 00:25:37,070 terminare con, quale estensione? 526 00:25:37,070 --> 00:25:39,830 .doc o .docx, giusto? 527 00:25:39,830 --> 00:25:42,299 >> Tutto ciò che fa è specifica per il sistema operativo, hey, 528 00:25:42,299 --> 00:25:43,840 hai un documento di Word in arrivo. 529 00:25:43,840 --> 00:25:44,940 Aprilo con Word. 530 00:25:44,940 --> 00:25:46,955 Stessa cosa con i file PDF. 531 00:25:46,955 --> 00:25:49,650 Si sa, oh, ho bisogno di aprire questo file 532 00:25:49,650 --> 00:25:52,020 con Adobe Reader o Adobe Acrobat. 533 00:25:52,020 --> 00:25:56,130 >> E così le estensioni operano il così come nel vostro computer. 534 00:25:56,130 --> 00:26:00,750 Se si specifica la pagina di codice di essere chiamato HTML, allora sa, 535 00:26:00,750 --> 00:26:01,880 oh, hai il codice HTML. 536 00:26:01,880 --> 00:26:04,890 Ho intenzione di trattarlo come codice html. 537 00:26:04,890 --> 00:26:06,600 Quindi è super intelligente in questo senso. 538 00:26:06,600 --> 00:26:11,360 539 00:26:11,360 --> 00:26:18,730 >> Così tutti, prendiamo come 10 minuti e solo creare i nostri siti web. 540 00:26:18,730 --> 00:26:21,020 Aggiungiamo nelle cose belle. 541 00:26:21,020 --> 00:26:23,440 Sentitevi liberi di dire quello che vuoi. 542 00:26:23,440 --> 00:26:27,890 Voglio solo fare in modo che i server di tutti sono in esecuzione correttamente 543 00:26:27,890 --> 00:26:31,220 prima che ti liberiamo nel pset. 544 00:26:31,220 --> 00:26:33,490 Perché se i server non correre per il pset, 545 00:26:33,490 --> 00:26:34,847 che sarà molto, molto male. 546 00:26:34,847 --> 00:27:17,380 547 00:27:17,380 --> 00:27:21,093 >> Sto solo andando a galleggiare intorno e vedere quello che tutti sta lavorando. 548 00:27:21,093 --> 00:27:26,965 549 00:27:26,965 --> 00:27:27,590 Come sta andando? 550 00:27:27,590 --> 00:27:29,048 >> PUBBLICO: Ho appena acceso il mio computer. 551 00:27:29,048 --> 00:27:29,923 >> ANDI PENG: Va bene. 552 00:27:29,923 --> 00:27:41,200 553 00:27:41,200 --> 00:27:42,390 >> PUBBLICO: [incomprensibile]. 554 00:27:42,390 --> 00:27:44,284 >> ANDI PENG: Basta vostro IDE. 555 00:27:44,284 --> 00:27:44,784 Già. 556 00:27:44,784 --> 00:27:54,040 557 00:27:54,040 --> 00:27:55,910 >> PUBBLICO: [incomprensibile]. 558 00:27:55,910 --> 00:27:57,590 >> ANDI PENG: Va bene. 559 00:27:57,590 --> 00:27:59,491 >> PUBBLICO: [incomprensibile]. 560 00:27:59,491 --> 00:28:00,490 ANDI PENG: Totally bene. 561 00:28:00,490 --> 00:28:47,705 562 00:28:47,705 --> 00:28:51,530 Sono tutti l'accesso OK loro web server? 563 00:28:51,530 --> 00:28:52,970 È apache50 esecuzione OK? 564 00:28:52,970 --> 00:28:54,700 Penso che in alcuni le altre sezioni, abbiamo 565 00:28:54,700 --> 00:28:58,790 avuto problemi con non le persone essere in grado di accedere al server. 566 00:28:58,790 --> 00:28:59,290 Già. 567 00:28:59,290 --> 00:29:05,764 Quindi basta eseguire apache50 spazio di inizio del periodo di spazio. 568 00:29:05,764 --> 00:29:06,680 PUBBLICO: [incomprensibile]. 569 00:29:06,680 --> 00:29:07,610 ANDI PENG: Yup. 570 00:29:07,610 --> 00:29:08,294 Buona? 571 00:29:08,294 --> 00:29:09,210 >> PUBBLICO: [incomprensibile]. 572 00:29:09,210 --> 00:29:12,530 573 00:29:12,530 --> 00:29:13,350 >> ANDI PENG: Oh, OK. 574 00:29:13,350 --> 00:29:14,808 Quindi stai suppone di avere uno spazio. 575 00:29:14,808 --> 00:29:15,425 Così apache50-- 576 00:29:15,425 --> 00:29:16,115 >> PUBBLICO: ho fatto. 577 00:29:16,115 --> 00:29:17,661 >> ANDI PENG: spazio --start. 578 00:29:17,661 --> 00:29:18,660 PUBBLICO: Oh, lo spazio di punti. 579 00:29:18,660 --> 00:29:20,110 ANDI PENG: Yup, spazio puntino. 580 00:29:20,110 --> 00:29:23,230 Ci si va. 581 00:29:23,230 --> 00:29:25,490 Allora se avete una pagina HTML creata, 582 00:29:25,490 --> 00:29:28,560 allora si può solo andare direttamente per il collegamento che specifica. 583 00:29:28,560 --> 00:29:30,539 E si dovrebbe essere in grado di accedervi. 584 00:29:30,539 --> 00:29:35,130 585 00:29:35,130 --> 00:29:37,876 >> Ognuno stato in grado di accedere ai propri pagine web OK? 586 00:29:37,876 --> 00:29:39,339 >> PUBBLICO: [incomprensibile]. 587 00:29:39,339 --> 00:29:40,380 ANDI PENG: Oh, va bene. 588 00:29:40,380 --> 00:29:43,551 589 00:29:43,551 --> 00:29:44,964 >> PUBBLICO: [incomprensibile]. 590 00:29:44,964 --> 00:29:45,630 ANDI PENG: Sì. 591 00:29:45,630 --> 00:29:48,171 Penso che si può effettivamente aprire è all'interno del browser, il browser 592 00:29:48,171 --> 00:29:49,955 e non solo il browser IDE. 593 00:29:49,955 --> 00:29:51,580 Sì, penso che se si copia e si incolla. 594 00:29:51,580 --> 00:29:53,920 >> PUBBLICO: E poi come facciamo a spegnerlo? 595 00:29:53,920 --> 00:29:54,590 [Incomprensibile] 596 00:29:54,590 --> 00:29:58,720 >> ANDI PENG: Sì, si fa apache50 smettere senza periodo. 597 00:29:58,720 --> 00:29:59,220 Sì. 598 00:29:59,220 --> 00:30:01,180 >> PUBBLICO: [incomprensibile]. 599 00:30:01,180 --> 00:30:02,768 >> ANDI PENG: Senza periodo. 600 00:30:02,768 --> 00:30:04,051 Già. 601 00:30:04,051 --> 00:30:04,550 Ci siamo. 602 00:30:04,550 --> 00:30:05,050 Sì. 603 00:30:05,050 --> 00:30:08,480 604 00:30:08,480 --> 00:30:09,855 Stiamo creando le nostre pagine web. 605 00:30:09,855 --> 00:30:10,646 >> PUBBLICO: Oh, fresco. 606 00:30:10,646 --> 00:30:13,396 607 00:30:13,396 --> 00:30:14,062 ANDI PENG: Sì. 608 00:30:14,062 --> 00:30:20,484 609 00:30:20,484 --> 00:30:22,420 >> PUBBLICO: Ho una domanda. 610 00:30:22,420 --> 00:30:25,294 Così apache 50-- 611 00:30:25,294 --> 00:30:26,731 >> ANDI PENG: 50, sì. 612 00:30:26,731 --> 00:30:28,168 >> PUBBLICO: [incomprensibile]. 613 00:30:28,168 --> 00:30:29,130 >> ANDI PENG: Che cosa? 614 00:30:29,130 --> 00:30:29,750 Quello è strano. 615 00:30:29,750 --> 00:30:32,244 Vedere, che era una sorta di questione che stava accadendo prima. 616 00:30:32,244 --> 00:30:37,820 617 00:30:37,820 --> 00:30:38,730 OK. 618 00:30:38,730 --> 00:30:39,800 Vedermi dopo la sezione. 619 00:30:39,800 --> 00:30:42,320 Perché stiamo avendo un po ' problemi con il server. 620 00:30:42,320 --> 00:30:44,325 >> E si vuole fare Assicurarsi che il server sia 621 00:30:44,325 --> 00:30:45,700 in esecuzione prima di avviare il pset. 622 00:30:45,700 --> 00:30:47,800 Perché si sta andando a bisogno. 623 00:30:47,800 --> 00:30:48,300 Già. 624 00:30:48,300 --> 00:30:51,299 C'è qualcun altro che non è stato in grado di ottenere il loro server per iniziare? 625 00:30:51,299 --> 00:31:12,410 626 00:31:12,410 --> 00:31:17,840 >> Per quelli di voi che vogliono aggiungere stile aggiuntivo per le vostre pagine web, 627 00:31:17,840 --> 00:31:20,450 possiamo effettivamente fare quello che Davide fece in conferenza pure, 628 00:31:20,450 --> 00:31:24,070 che è di creare uno stile addizionale foglio, che è un puntino CSS, Cascading 629 00:31:24,070 --> 00:31:30,080 Style Sheet e in realtà solo aggiungere in. 630 00:31:30,080 --> 00:31:33,550 Così, per esempio, ho appena creato praticamente quasi l'esatto stesso 631 00:31:33,550 --> 00:31:37,180 David ha fatto in conferenza. 632 00:31:37,180 --> 00:31:39,220 Si può praticamente solo fare corpo. 633 00:31:39,220 --> 00:31:45,980 >> Hai ciò che sono chiamati tag in cui è possibile applicare a qualunque sezione IDE 634 00:31:45,980 --> 00:31:48,650 vuoi all'interno del tuo effettivo alla pagina HTML. 635 00:31:48,650 --> 00:31:54,890 Così il corpo della pagina, può fare testo centro align. 636 00:31:54,890 --> 00:31:58,110 E poi ti creativo un top tag chiamato dentro 637 00:31:58,110 --> 00:32:01,860 di cui voglio queste cose accadere, assegnare una dimensione del pixel più grande 638 00:32:01,860 --> 00:32:03,104 per il carattere. 639 00:32:03,104 --> 00:32:04,520 Voglio che il peso del carattere di essere audaci. 640 00:32:04,520 --> 00:32:06,478 E voglio il colore essere blu, solo arbitrario 641 00:32:06,478 --> 00:32:08,570 valori che ho deciso di scegliere. 642 00:32:08,570 --> 00:32:10,870 Posso creare un altro tag chiamato mezzo. 643 00:32:10,870 --> 00:32:12,640 Dimensione del carattere, lo rendono un po 'più piccolo. 644 00:32:12,640 --> 00:32:17,730 E poi posso creare un altro tag chiamato fondo dove voglio la dimensione del carattere 645 00:32:17,730 --> 00:32:20,900 per essere ancora più piccolo ancora. 646 00:32:20,900 --> 00:32:25,630 >> E così più o meno questo è solo esempio di codice sorgente o sorgente fogli di stile 647 00:32:25,630 --> 00:32:27,400 che è molto facile da solo Google. 648 00:32:27,400 --> 00:32:31,560 Se dici, oh, voglio che il mio carattere essere in corsivo e di colore verde scuro, 649 00:32:31,560 --> 00:32:33,980 si può probabilmente Google, e poi vi dirà 650 00:32:33,980 --> 00:32:37,590 i tag o gli ID appropriate per creare. 651 00:32:37,590 --> 00:32:41,670 E così il modo in cui si sarebbe in realtà tipo di avere questo in un documento HTML 652 00:32:41,670 --> 00:32:45,660 o usarlo è tutto quello che hai di fare qui è a capo 653 00:32:45,660 --> 00:32:48,560 aggiungere un link al foglio di stile. 654 00:32:48,560 --> 00:32:53,600 >> Così si può semplicemente collegare uguali href qualunque sia il nome del foglio di stile 655 00:32:53,600 --> 00:32:54,590 è. 656 00:32:54,590 --> 00:32:56,740 E poi il rapporto è un foglio di stile. 657 00:32:56,740 --> 00:33:00,700 Quindi all'interno di qualsiasi documento HTML, purché si include questa scheda CSS punto, 658 00:33:00,700 --> 00:33:07,140 si dovrebbe essere in grado di accedere e hanno le proprietà lì. 659 00:33:07,140 --> 00:33:10,370 >> Così, per esempio, qui ho solo creare un'altra pagina web esempio. 660 00:33:10,370 --> 00:33:15,680 Questo è il benvenuto alla sezione CS50 Martedì dalle 02:00 alle 03:30 con me. 661 00:33:15,680 --> 00:33:20,300 E poi ho aggiunto una bella immagine che noi potenzialmente dovremmo essere in grado di vedere. 662 00:33:20,300 --> 00:33:24,620 >> Quindi, se si dà un'occhiata qui, se si va a style.html, 663 00:33:24,620 --> 00:33:26,310 abbiamo creato una pagina web con i gattini. 664 00:33:26,310 --> 00:33:29,420 Perché gattino sono impressionanti. 665 00:33:29,420 --> 00:33:33,570 In modo da aggiungere l'immagine è solo img Link SRC. 666 00:33:33,570 --> 00:33:36,260 667 00:33:36,260 --> 00:33:38,310 >> Praticamente, se c'è qualsiasi tipo di funzione 668 00:33:38,310 --> 00:33:40,268 che si desidera aggiungere alla vostra website-- quindi diciamo, 669 00:33:40,268 --> 00:33:43,290 si desidera aggiungere un menu o una barra di ricerca o come 670 00:33:43,290 --> 00:33:46,450 un image-- solo Google come fare. 671 00:33:46,450 --> 00:33:48,277 E basta plop in quel formato. 672 00:33:48,277 --> 00:33:50,110 E si può solo abbastanza tanto basta aggiungere in. 673 00:33:50,110 --> 00:33:52,670 E 'davvero, davvero facile. 674 00:33:52,670 --> 00:33:55,014 >> Stiamo creando il nostro le pagine web in questo momento. 675 00:33:55,014 --> 00:33:55,680 Se lo desidera-- 676 00:33:55,680 --> 00:33:56,580 >> PUBBLICO: [incomprensibile] 677 00:33:56,580 --> 00:33:57,470 >> ANDI PENG: Siamo spiacenti? 678 00:33:57,470 --> 00:33:59,310 >> PUBBLICO: [incomprensibile]. 679 00:33:59,310 --> 00:34:01,340 >> ANDI PENG: Oh, il div è solo una divisione 680 00:34:01,340 --> 00:34:04,370 dicendomi che, oh, ho una certa sezione 681 00:34:04,370 --> 00:34:07,480 mezzo in cui sto applicando mio tag CSS, e quindi 682 00:34:07,480 --> 00:34:09,619 la mia altra divisione con il fondo. 683 00:34:09,619 --> 00:34:10,785 Questo è tutto ciò che si sta dicendo. 684 00:34:10,785 --> 00:34:12,743 Perché è bello mantenere belle cose in ordine, 685 00:34:12,743 --> 00:34:16,304 in modo che il programma sa esattamente come per l'esecuzione. 686 00:34:16,304 --> 00:34:18,929 E penso di poter copiare incolla questo nel mio browser reale così. 687 00:34:18,929 --> 00:34:21,110 Si dovrebbe andare bene. 688 00:34:21,110 --> 00:34:21,610 Già. 689 00:34:21,610 --> 00:34:24,330 690 00:34:24,330 --> 00:34:25,989 Sìì. 691 00:34:25,989 --> 00:34:29,380 Quindi, se tutti vogliono solo provare a creare una pagina web, 692 00:34:29,380 --> 00:34:32,169 daremo altri due o tre minuti. 693 00:34:32,169 --> 00:34:34,460 Voglio solo essere sicuro i server di tutti sono in esecuzione 694 00:34:34,460 --> 00:34:36,941 e tutti hanno un idea di come farlo. 695 00:34:36,941 --> 00:34:38,774 Se voi volete togliere i computer. 696 00:34:38,774 --> 00:34:44,630 697 00:34:44,630 --> 00:34:45,635 Continua a non funzionare? 698 00:34:45,635 --> 00:34:47,420 >> PUBBLICO: Io sono solo [incomprensibile]. 699 00:34:47,420 --> 00:34:49,838 >> ANDI PENG: Forse provare aggiornare 50 pure. 700 00:34:49,838 --> 00:34:51,392 Già. 701 00:34:51,392 --> 00:34:52,308 PUBBLICO: [incomprensibile]. 702 00:34:52,308 --> 00:35:17,502 703 00:35:17,502 --> 00:35:18,990 >> ANDI PENG: Sì. 704 00:35:18,990 --> 00:35:23,750 Quindi il modo che si inizia un nuovo Web server su l'IDE è solo 705 00:35:23,750 --> 00:35:27,889 fare apache50 avvio spazio spazio puntino. 706 00:35:27,889 --> 00:35:30,430 Volevo solo fare in modo i server di tutti sono in esecuzione su OK. 707 00:35:30,430 --> 00:35:31,763 >> PUBBLICO: Qui, sul terminale? 708 00:35:31,763 --> 00:35:33,334 ANDI PENG: Sì. 709 00:35:33,334 --> 00:35:34,250 PUBBLICO: [incomprensibile]. 710 00:35:34,250 --> 00:35:38,000 711 00:35:38,000 --> 00:35:38,985 >> ANDI PENG: Apache. 712 00:35:38,985 --> 00:35:42,010 In realtà, penso che tu sia in esecuzione qualcosa di già. 713 00:35:42,010 --> 00:35:43,145 Sì, sei in realtà esecuzione di un server diverso. 714 00:35:43,145 --> 00:35:43,830 Sì, sei bravo. 715 00:35:43,830 --> 00:35:45,085 Finché che sta lavorando, tu sei OK. 716 00:35:45,085 --> 00:35:45,626 >> PUBBLICO: OK. 717 00:35:45,626 --> 00:35:47,615 ANDI PENG: Ce ne sono due modi per eseguire i server. 718 00:35:47,615 --> 00:35:49,990 Quindi, fintanto che uno dei modi sta lavorando, è tutto a posto. 719 00:35:49,990 --> 00:36:18,470 720 00:36:18,470 --> 00:36:21,680 Prenderemo un altro minuto solo al tipo di finire 721 00:36:21,680 --> 00:36:25,280 gli ultimi ritocchi di qualsiasi Web page voi ragazzi volevano fare. 722 00:36:25,280 --> 00:36:26,830 >> È tutti lavorando a proposito? 723 00:36:26,830 --> 00:36:30,910 I server di ognuno sono corsa inoltre per il vostro? 724 00:36:30,910 --> 00:36:32,210 Troveremo che fuori. 725 00:36:32,210 --> 00:36:34,137 E HTML di abbastanza semplice. 726 00:36:34,137 --> 00:36:35,220 Quindi penso che siamo tutti buoni. 727 00:36:35,220 --> 00:36:38,260 728 00:36:38,260 --> 00:36:38,760 Già. 729 00:36:38,760 --> 00:36:41,070 Ritornerò. 730 00:36:41,070 --> 00:36:42,797 >> PUBBLICO: [incomprensibile]. 731 00:36:42,797 --> 00:36:43,380 ANDI PENG: OK. 732 00:36:43,380 --> 00:36:44,770 PUBBLICO: Quindi è solo ha iniziato a caricare. 733 00:36:44,770 --> 00:36:45,686 ANDI PENG: Non preoccuparti. 734 00:36:45,686 --> 00:36:49,590 735 00:36:49,590 --> 00:36:52,680 Così HTML, c'è il codice sorgente che sarà online dopo la sezione. 736 00:36:52,680 --> 00:36:54,810 Inoltre, David ha un intero grappolo online. 737 00:36:54,810 --> 00:36:58,190 Solo tipo di sguardo su di esso per vedere come sono scritte le pagine HTML. 738 00:36:58,190 --> 00:36:59,920 E 'abbastanza facile. 739 00:36:59,920 --> 00:37:03,979 Tutto ciò che non lo so, è praticamente molto solo Google e si sta bene. 740 00:37:03,979 --> 00:37:06,270 Voglio solo fare in modo che i server sono in esecuzione. 741 00:37:06,270 --> 00:37:12,962 742 00:37:12,962 --> 00:37:14,880 >> PUBBLICO: Lo fa spesso? 743 00:37:14,880 --> 00:37:16,421 >> ANDI PENG: Non è mai successo a me. 744 00:37:16,421 --> 00:37:18,470 745 00:37:18,470 --> 00:37:20,782 Non sapevo che potrebbe anche ibernazione. 746 00:37:20,782 --> 00:37:22,516 >> PUBBLICO: [incomprensibile]. 747 00:37:22,516 --> 00:37:25,140 ANDI PENG: Penso everyone-- la mia non è mai ibernato prima. 748 00:37:25,140 --> 00:37:26,860 E io non so perché. 749 00:37:26,860 --> 00:37:27,566 È strano. 750 00:37:27,566 --> 00:37:29,310 >> PUBBLICO: [incomprensibile]. 751 00:37:29,310 --> 00:37:30,643 >> ANDI PENG: è tuo letargo? 752 00:37:30,643 --> 00:37:32,615 753 00:37:32,615 --> 00:37:33,669 >> PUBBLICO: [incomprensibile]. 754 00:37:33,669 --> 00:37:34,335 ANDI PENG: Sì. 755 00:37:34,335 --> 00:37:39,122 756 00:37:39,122 --> 00:37:39,872 PUBBLICO: Va bene. 757 00:37:39,872 --> 00:37:40,622 Quindi una volta che è aperto. 758 00:37:40,622 --> 00:37:41,760 ANDI PENG: OK. 759 00:37:41,760 --> 00:37:43,940 Ci occuperemo di qualche server problemi dopo sezione. 760 00:37:43,940 --> 00:37:44,860 Si dovrebbe andare bene. 761 00:37:44,860 --> 00:37:47,950 Anche se, si vuole fare in modo che si farli risolto prima di partire. 762 00:37:47,950 --> 00:37:49,380 Perché se del server non è in esecuzione, allora sei 763 00:37:49,380 --> 00:37:52,004 Non sarà in grado di fare il pset, come ogni parte del pset. 764 00:37:52,004 --> 00:37:54,200 Così si vuole fare in modo che che sta lavorando. 765 00:37:54,200 --> 00:37:54,831 Raffreddare. 766 00:37:54,831 --> 00:37:55,330 Tutto ok. 767 00:37:55,330 --> 00:37:56,490 Dire addio gattini. 768 00:37:56,490 --> 00:37:59,670 Ho trascorso molto tempo alla ricerca di quella foto kitten da indossare. 769 00:37:59,670 --> 00:38:02,272 Così, in ogni modo. 770 00:38:02,272 --> 00:38:04,950 >> PUBBLICO: [incomprensibile]. 771 00:38:04,950 --> 00:38:05,770 >> ANDI PENG: Siamo spiacenti? 772 00:38:05,770 --> 00:38:07,345 >> PUBBLICO: [incomprensibile]. 773 00:38:07,345 --> 00:38:08,970 ANDI PENG: Penso che sia sul sito web. 774 00:38:08,970 --> 00:38:11,064 Come le specifiche? 775 00:38:11,064 --> 00:38:12,020 >> PUBBLICO: [incomprensibile]. 776 00:38:12,020 --> 00:38:16,080 Penso che la specifica è solo on-line in sette settimane. 777 00:38:16,080 --> 00:38:18,850 Mi pare si chiami pset6, anche se siamo sulla settimana di sette, che 778 00:38:18,850 --> 00:38:19,641 è un po 'di calcolo. 779 00:38:19,641 --> 00:38:23,130 PUBBLICO: Ma voglio dire, se si consiglia di guardare at-- se 780 00:38:23,130 --> 00:38:28,666 voglia di tirare su la nostra versione di il sito web del nostro sever? 781 00:38:28,666 --> 00:38:31,820 Così come server.c è il pset, giusto? 782 00:38:31,820 --> 00:38:36,514 Se si vuole guardare a questo, come come controlli fuori? 783 00:38:36,514 --> 00:38:38,680 ANDI PENG: Oh, così in realtà il pset, tutti stiamo facendo 784 00:38:38,680 --> 00:38:41,405 qui è implementing-- qui, Vado oltre brevemente. 785 00:38:41,405 --> 00:38:44,187 786 00:38:44,187 --> 00:38:47,020 Quindi, per tutti che ha appena ottenuto alla sezione, voi siete fortunati. 787 00:38:47,020 --> 00:38:49,340 C'è molto poco materiale per coprire in realtà oggi. 788 00:38:49,340 --> 00:38:52,585 >> Sto solo andando a trascorrere il prossimo 20 minuti andando oltre pset aiuto. 789 00:38:52,585 --> 00:38:55,210 Perché c'è un po 'di utile funzioni che aiuteranno la vostra vita. 790 00:38:55,210 --> 00:38:57,501 E si spera, saremo fuori di qui in come 20 minuti. 791 00:38:57,501 --> 00:38:58,360 OK. 792 00:38:58,360 --> 00:39:00,252 >> Così pset7 è sbagliato. 793 00:39:00,252 --> 00:39:02,460 Anche se siamo su settimana sette, in realtà è pset6. 794 00:39:02,460 --> 00:39:04,220 Cambierò quello. 795 00:39:04,220 --> 00:39:07,550 Tutto quello che stiamo facendo in pset6 è la creazione di un server web. 796 00:39:07,550 --> 00:39:09,010 Che suona eccellente spaventoso. 797 00:39:09,010 --> 00:39:11,010 >> E soprattutto per chi di voi che hanno già 798 00:39:11,010 --> 00:39:14,530 guardato il codice di distribuzione, c'è un sacco di codice, un sacco di codice. 799 00:39:14,530 --> 00:39:15,570 Ma è del tutto OK. 800 00:39:15,570 --> 00:39:17,750 Poiché la Nitty Gritty parte realmente di creare 801 00:39:17,750 --> 00:39:20,140 il server è fatto da noi. 802 00:39:20,140 --> 00:39:22,090 Tutto quello che sei veramente chiesto a fare in questa pset 803 00:39:22,090 --> 00:39:25,350 è solo per fare qualche manipolazione delle stringhe in file di I / O. In realtà è 804 00:39:25,350 --> 00:39:27,570 come abbastanza semplice. 805 00:39:27,570 --> 00:39:30,830 >> Quindi, quando si scarica prima che-- che qui ha effettivamente già scaricato 806 00:39:30,830 --> 00:39:32,540 il pset e dato un'occhiata? 807 00:39:32,540 --> 00:39:33,040 Tutto ok. 808 00:39:33,040 --> 00:39:33,540 Già. 809 00:39:33,540 --> 00:39:36,042 C'è come 500 linee di codice che si sta andando ad essere come, 810 00:39:36,042 --> 00:39:36,750 che cosa succede? 811 00:39:36,750 --> 00:39:38,177 E questo è tutto bene. 812 00:39:38,177 --> 00:39:39,760 Assicurati di guardare i walk-through. 813 00:39:39,760 --> 00:39:41,610 Perché David e- io non lo so. 814 00:39:41,610 --> 00:39:43,870 Io non credo che sia Zamyla, questo uno. 815 00:39:43,870 --> 00:39:47,040 Ma credo che qualche altro walk-through sono abbastanza 816 00:39:47,040 --> 00:39:49,510 utile in termini di solo farti sapere 817 00:39:49,510 --> 00:39:51,780 quello che sta succedendo all'interno del codice. 818 00:39:51,780 --> 00:39:53,330 >> Ed è del tutto OK. 819 00:39:53,330 --> 00:39:57,860 Poiché le quattro funzioni che sei ha chiesto di attuare avere realmente 820 00:39:57,860 --> 00:39:59,720 nulla a che fare con il server effettivo. 821 00:39:59,720 --> 00:40:02,590 Tutto quello che dovete fare è solo analisi diverse stringhe, 822 00:40:02,590 --> 00:40:05,780 ricerca attraverso le stringhe, per assicurarsi che le cose stanno facendo 823 00:40:05,780 --> 00:40:07,750 quello che si suppone di fare. 824 00:40:07,750 --> 00:40:11,200 >> Quindi, in questo senso, ci sono alcune funzioni molto, molto utili, 825 00:40:11,200 --> 00:40:13,630 soprattutto per la stringa manipolazione, che dovremmo tutti 826 00:40:13,630 --> 00:40:15,879 vado oltre che ho pensato di essere molto utile per voi ragazzi 827 00:40:15,879 --> 00:40:19,130 per imparare prima di tentare l'pset. 828 00:40:19,130 --> 00:40:23,350 E sono tutti contenuti all'interno della vostra libreria string.h. 829 00:40:23,350 --> 00:40:25,980 C'è probabilmente più utile funzioni non ho incluso qui, 830 00:40:25,980 --> 00:40:30,740 perché non sia mai li uso o forse io non lo sapevo che esistono. 831 00:40:30,740 --> 00:40:32,440 >> Sentitevi liberi di sfogliare student.h. 832 00:40:32,440 --> 00:40:36,460 Perché ci sara 'un sacco di funzioni che sono molto utili. 833 00:40:36,460 --> 00:40:43,050 Così i sei che io uso il più a mio pset quando stavo facendo che la scorsa settimana 834 00:40:43,050 --> 00:40:49,620 erano strtok, strchr, strrcher, strstr, strcasecmp, e strcpy. 835 00:40:49,620 --> 00:40:53,060 E così le ultime due possono sembrare abbastanza familiare alla maggior parte di voi. 836 00:40:53,060 --> 00:40:56,910 Caso str confronto, tutto ciò che fa è confrontare stringhe per controllare loro per l'uguaglianza, 837 00:40:56,910 --> 00:40:58,110 con custodia. 838 00:40:58,110 --> 00:41:01,430 E strcpy solo copie una stringa in un buffer. 839 00:41:01,430 --> 00:41:04,430 >> E così quei due dovrebbero sembrare molto familiare a voi ragazzi, a questo punto. 840 00:41:04,430 --> 00:41:07,100 Perché abbiamo usato loro un sacco, soprattutto per gli ultimi pset. 841 00:41:07,100 --> 00:41:10,734 Ma i primi quattro forse non avete visto fino ad ora. 842 00:41:10,734 --> 00:41:12,400 Ma ho intenzione di andare a piedi attraverso di loro. 843 00:41:12,400 --> 00:41:15,620 Perché stanno andando a fare la vostra vita davvero, davvero facile non for-- facile, 844 00:41:15,620 --> 00:41:19,830 ma molto più facile per questo prossimo pset. 845 00:41:19,830 --> 00:41:20,420 >> OK. 846 00:41:20,420 --> 00:41:27,720 Così char * strtok, questa è la funzione definizione per questa funzione conteneva 847 00:41:27,720 --> 00:41:31,050 all'interno della stringa, h libreria. 848 00:41:31,050 --> 00:41:34,340 Se le viene somministrato un ingresso di char * stringa, che è solo una stringa, 849 00:41:34,340 --> 00:41:38,220 o un char costante * deliminator, delim in breve, 850 00:41:38,220 --> 00:41:42,410 tutto ciò che sta facendo sta rompendo il più grande stringa in una serie di ciò che chiamiamo 851 00:41:42,410 --> 00:41:45,730 token separati da un certo valore. 852 00:41:45,730 --> 00:42:03,340 Quindi, in un certo senso, se dovessi dare si section.7.php, questa è una stringa. 853 00:42:03,340 --> 00:42:09,520 >> In modo che sarebbe se dovessi passare in questo come il mio str, il mio char * str, 854 00:42:09,520 --> 00:42:18,870 se il mio deliminator era punto, tutto questo vorrei fare è cercare attraverso stringa. 855 00:42:18,870 --> 00:42:22,790 E la prima volta che incontra un punto, sarebbe solo tornare al puntatore 856 00:42:22,790 --> 00:42:25,830 per l'ultimo token trovato nella stringa prima di questo. 857 00:42:25,830 --> 00:42:27,230 Quindi sarebbe andare a destra qui. 858 00:42:27,230 --> 00:42:30,580 >> E sarebbe solo darmi 7.php. 859 00:42:30,580 --> 00:42:34,070 E se dovessi chiamare il funzionare ancora una volta, 860 00:42:34,070 --> 00:42:37,580 mi avrebbe dato solo il .php. 861 00:42:37,580 --> 00:42:41,540 E così tutto questa funzione sta facendo è abbattere la stringa più grande 862 00:42:41,540 --> 00:42:44,620 in stringhe più piccole a seconda su quello che stai cercando. 863 00:42:44,620 --> 00:42:46,670 >> Così per esempio, in il vostro sguardo in su la funzione 864 00:42:46,670 --> 00:42:49,895 se si vuole guardare a ciò che alcuni caratteri vengono su 865 00:42:49,895 --> 00:42:54,280 o se i punti accadono o estensioni accadere, questa funzione potrebbe essere abbastanza utile. 866 00:42:54,280 --> 00:42:57,260 867 00:42:57,260 --> 00:42:59,010 Già. 868 00:42:59,010 --> 00:42:59,510 Nessun problema. 869 00:42:59,510 --> 00:43:01,339 In questo modo tutto essere-- sì, che cosa succede? 870 00:43:01,339 --> 00:43:07,087 >> PUBBLICO: Quindi, in prima linea, se stessimo usando questo esempio, 871 00:43:07,087 --> 00:43:09,504 cosa avremmo inserire in questo? 872 00:43:09,504 --> 00:43:10,170 ANDI PENG: Sì. 873 00:43:10,170 --> 00:43:13,000 874 00:43:13,000 --> 00:43:25,640 Si potrebbe chiamare un strtok delim corda virgola. 875 00:43:25,640 --> 00:43:30,260 E la stringa è uguale a section.7.php. 876 00:43:30,260 --> 00:43:35,244 E allora sei delim potrebbe essere pari a dot solo. 877 00:43:35,244 --> 00:43:36,654 >> PUBBLICO: OK. 878 00:43:36,654 --> 00:43:39,010 >> ANDI PENG: Sì. 879 00:43:39,010 --> 00:43:41,266 Proprio così. 880 00:43:41,266 --> 00:43:43,890 Tutte queste funzioni sono abbastanza simile quando andiamo attraverso di loro. 881 00:43:43,890 --> 00:43:45,514 Hanno appena fanno cose leggermente diverse. 882 00:43:45,514 --> 00:43:49,530 Ma sono tutti di andare a rendere la vita molto più facile. 883 00:43:49,530 --> 00:43:53,940 Seconda funzione, questo è come super, super, super importante, 884 00:43:53,940 --> 00:43:58,254 è the-- reggere. 885 00:43:58,254 --> 00:44:07,560 886 00:44:07,560 --> 00:44:08,730 >> Oops. 887 00:44:08,730 --> 00:44:13,810 Ricerche strchr per la prima occurrence-- realtà, sì. 888 00:44:13,810 --> 00:44:16,385 Strchr è la funzione che Io sicuramente appena andato oltre. 889 00:44:16,385 --> 00:44:18,260 Quindi ignorare quello che ho detto per la prima funzione. 890 00:44:18,260 --> 00:44:20,980 In realtà è chiamato strchr. 891 00:44:20,980 --> 00:44:24,840 >> Quindi, che cosa sarebbe successo qui è se è stata data una stringa in un char c, 892 00:44:24,840 --> 00:44:28,660 sarebbe solo dare voi qualunque cosa fosse. 893 00:44:28,660 --> 00:44:29,230 Già. 894 00:44:29,230 --> 00:44:33,700 Così pensare ad esso come str, che è una stringa, e chr come char. 895 00:44:33,700 --> 00:44:38,621 Quindi tutto quello che sta cercando di fare è cercare per cui un char è all'interno di una stringa. 896 00:44:38,621 --> 00:44:41,120 E così cerca la prima occorrenza del carattere 897 00:44:41,120 --> 00:44:43,601 c nella stringa str. 898 00:44:43,601 --> 00:44:46,463 >> PUBBLICO: [incomprensibile]. 899 00:44:46,463 --> 00:44:48,380 >> ANDI PENG: Yup. 900 00:44:48,380 --> 00:44:51,230 E poi se non ha trovato esso, sta andando a restituire NULL. 901 00:44:51,230 --> 00:44:54,313 Quindi, qualcosa che sta per essere molto utile per voi ragazzi a fare il pset 902 00:44:54,313 --> 00:44:59,030 Se, per esempio, siete stati alla ricerca di un estensione come un .docx per una parola 903 00:44:59,030 --> 00:45:04,740 documento o un .pdf per un documento PDF, è possibile tipo di usarlo per guardare 904 00:45:04,740 --> 00:45:08,720 per tutto ciò che è in seguito ogni volta che vedi un punto, giusto? 905 00:45:08,720 --> 00:45:11,880 E così più o meno, se si eseguire che attraverso la funzione, 906 00:45:11,880 --> 00:45:13,610 se restituisce NULL, poi si sa che 907 00:45:13,610 --> 00:45:17,292 non ha trovato che puntino, che significa che questo chiaramente non è un'estensione di file valida. 908 00:45:17,292 --> 00:45:19,000 Oppure, se restituisce qualcosa, poi si sa 909 00:45:19,000 --> 00:45:21,940 sta andando a restituire tutto quello che è in realtà dopo l'estensione. 910 00:45:21,940 --> 00:45:24,190 Così quelli di voi che hanno avuto iniziato a cercare attraverso di ricerca 911 00:45:24,190 --> 00:45:28,640 e analizzare, questa funzione di andando a essere super utile. 912 00:45:28,640 --> 00:45:32,010 Quindi stiamo effettivamente andando per dimostrare di utilizzare questo. 913 00:45:32,010 --> 00:45:36,670 >> Perché non provare a scrivere un ragazzi funzione bool frase char * s che 914 00:45:36,670 --> 00:45:39,610 semplicemente restituisce true se s è un frase e false altrimenti. 915 00:45:39,610 --> 00:45:44,110 916 00:45:44,110 --> 00:45:46,830 Così Suggerimento, si sta andando utilizzare probabilmente strchr. 917 00:45:46,830 --> 00:45:50,420 O basta cercare nel stringa per un certo carattere. 918 00:45:50,420 --> 00:45:54,950 E così in una frase, ciò che separa una frase 919 00:45:54,950 --> 00:45:57,510 da un non-frase, che carattere specifico? 920 00:45:57,510 --> 00:45:58,260 PUBBLICO: Uno spazio. 921 00:45:58,260 --> 00:45:59,343 ANDI PENG: Uno spazio, giusto? 922 00:45:59,343 --> 00:46:03,354 E così quello che facciamo probabilmente andando a voglia di fare all'interno di questa funzione qui? 923 00:46:03,354 --> 00:46:04,290 >> PUBBLICO: [incomprensibile]. 924 00:46:04,290 --> 00:46:07,623 >> ANDI PENG: Stiamo andando a voler strchr stringa per l'aspetto dello spazio. 925 00:46:07,623 --> 00:46:11,330 Perché se restituisce qualcosa, poi sappiamo che questo deve essere una condanna. 926 00:46:11,330 --> 00:46:14,510 Ciò significa che dobbiamo avere uno spazio in questa stringa. 927 00:46:14,510 --> 00:46:17,660 >> Se non c'è spazio, allora sappiamo che, ehi, immagino che non è una stringa. 928 00:46:17,660 --> 00:46:20,060 E 'probabilmente solo un tempo molto lungo termine. 929 00:46:20,060 --> 00:46:23,242 Così ti darò un paio ragazzi minuti per scrivere questa funzione. 930 00:46:23,242 --> 00:46:44,398 931 00:46:44,398 --> 00:46:45,874 Già. 932 00:46:45,874 --> 00:46:47,970 >> PUBBLICO: Hai ricevuto questa stringa dall'utente? 933 00:46:47,970 --> 00:46:48,440 >> ANDI PENG: Sì. 934 00:46:48,440 --> 00:46:49,565 Quindi questa è solo una funzione. 935 00:46:49,565 --> 00:46:54,586 Quindi immaginate all'interno della vostra funzione principale già have-- andiamo qui. 936 00:46:54,586 --> 00:47:00,040 937 00:47:00,040 --> 00:47:00,540 OK. 938 00:47:00,540 --> 00:47:05,270 Così ho scritto questo programma dove Ho la mia funzione principale dove 939 00:47:05,270 --> 00:47:07,432 Ho appena creato due stringhe. 940 00:47:07,432 --> 00:47:09,890 Il primo è Ciao, il mio nome è Andi-- chiaramente, una frase. 941 00:47:09,890 --> 00:47:13,240 Il mio secondo è solo Andi, chiaramente non condanna. 942 00:47:13,240 --> 00:47:18,390 >> E così io sto correndo sia di quelli stringhe attraverso questa funzione. 943 00:47:18,390 --> 00:47:20,540 Voglio che voi ragazzi a scrivere sentenza freddo. 944 00:47:20,540 --> 00:47:23,380 E sto memorizzare quei valori, e poi basta stamparli. 945 00:47:23,380 --> 00:47:26,549 Quindi pensare che l'utente è andando a passare in una stringa. 946 00:47:26,549 --> 00:47:29,590 E poi si sta andando a essenzialmente capire se si tratta di una frase o no 947 00:47:29,590 --> 00:47:31,131 e restituire true o false di conseguenza. 948 00:47:31,131 --> 00:48:41,850 949 00:48:41,850 --> 00:48:45,200 >> Se voi volete dare una pollice in alto o testa a testa, testa cenno del capo, 950 00:48:45,200 --> 00:48:49,080 è chiunque è pronto per iniziare questo, che sarebbe stato bene. 951 00:48:49,080 --> 00:50:13,570 952 00:50:13,570 --> 00:50:15,200 Forse come 30 secondi? 953 00:50:15,200 --> 00:50:49,570 954 00:50:49,570 --> 00:50:50,070 Tutto ok. 955 00:50:50,070 --> 00:50:52,870 Vediamo se si può provare scrittura di questa funzione. 956 00:50:52,870 --> 00:50:57,480 >> Così pseudo coding-- Sto solo andando a tipo di attraversare questo momento. 957 00:50:57,480 --> 00:51:00,570 Praticamente, sappiamo che la funzione che abbiamo bisogno di usare. 958 00:51:00,570 --> 00:51:04,390 Stiamo andando a chiamare tale funzione su la nostra stringa e ricerca di uno spazio. 959 00:51:04,390 --> 00:51:08,682 Se restituisce qualcosa, allora dobbiamo sa che, chiaramente, questa è una frase. 960 00:51:08,682 --> 00:51:09,640 Perché c'è spazi. 961 00:51:09,640 --> 00:51:10,930 Poi andremo a restituire true. 962 00:51:10,930 --> 00:51:12,310 Altrimenti, stiamo andando a restituire false. 963 00:51:12,310 --> 00:51:14,393 Qualcuno ha voglia di dare me la prima riga di codice 964 00:51:14,393 --> 00:51:16,890 che stiamo effettivamente andando da utilizzare per scrivere questo? 965 00:51:16,890 --> 00:51:19,680 In realtà è la più difficile linea di codice pure. 966 00:51:19,680 --> 00:51:21,026 Già. 967 00:51:21,026 --> 00:51:28,942 >> PUBBLICO: Se strtok S-- 968 00:51:28,942 --> 00:51:29,900 ANDI PENG: Solo strchr. 969 00:51:29,900 --> 00:51:35,354 PUBBLICO: [interponendo VOICES] lo spazio non è uguale a null. 970 00:51:35,354 --> 00:51:38,270 971 00:51:38,270 --> 00:51:40,710 >> ANDI PENG: Freddo. 972 00:51:40,710 --> 00:51:41,470 Completamente giusto. 973 00:51:41,470 --> 00:51:43,200 Capire a tutti che prima linea? 974 00:51:43,200 --> 00:51:46,110 Stiamo andando a chiamare strstr, che è una funzione che cerca 975 00:51:46,110 --> 00:51:51,830 la stringa s per il char di spazio. 976 00:51:51,830 --> 00:51:56,010 E se lo trova, sta andando a restituire un puntatore a dove si trova. 977 00:51:56,010 --> 00:51:58,500 >> Se non lo trova, sta andando a restituire NULL. 978 00:51:58,500 --> 00:52:02,530 Quindi, se restituisce qualcosa di diverso NULL, allora sappiamo che ha trovato uno spazio. 979 00:52:02,530 --> 00:52:03,553 Questo fa senso? 980 00:52:03,553 --> 00:52:04,090 Raffreddare. 981 00:52:04,090 --> 00:52:04,590 Tutto ok. 982 00:52:04,590 --> 00:52:08,246 Quindi, se sappiamo che trovato un spazio, cosa vogliamo fare? 983 00:52:08,246 --> 00:52:09,162 PUBBLICO: Restituisce vero. 984 00:52:09,162 --> 00:52:09,787 ANDI PENG: Yup. 985 00:52:09,787 --> 00:52:11,940 Restituisce vero. 986 00:52:11,940 --> 00:52:15,034 E poi, qualcuno vuole finire la funzione per me? 987 00:52:15,034 --> 00:52:16,300 Già. 988 00:52:16,300 --> 00:52:19,720 Altrimenti, proprio così. 989 00:52:19,720 --> 00:52:20,780 E provare a compilare questo. 990 00:52:20,780 --> 00:52:26,071 991 00:52:26,071 --> 00:52:28,000 >> Sì. 992 00:52:28,000 --> 00:52:33,099 Così come voi potete vedere dal uscite, ricordatevi booleani in C 993 00:52:33,099 --> 00:52:34,390 sono sempre espressi in binario. 994 00:52:34,390 --> 00:52:35,100 1 è vero. 995 00:52:35,100 --> 00:52:36,350 0 è falso. 996 00:52:36,350 --> 00:52:39,720 >> Se dovessimo eseguire questo funzione stringa uno, che 997 00:52:39,720 --> 00:52:42,900 è Ciao, mi chiamo Andi-- chiaramente, un sentence-- risultato 998 00:52:42,900 --> 00:52:45,700 stampato a 1 che è vero. 999 00:52:45,700 --> 00:52:48,420 Il secondo, che è appena una parola, risulti stampata 1000 00:52:48,420 --> 00:52:50,630 a 0, il che è falso. 1001 00:52:50,630 --> 00:52:54,820 Tutti i tipi di chiara su come questa funzione è stato scritto? 1002 00:52:54,820 --> 00:52:55,800 Già. 1003 00:52:55,800 --> 00:52:59,770 >> PUBBLICO: Possiamo anche fare, invece di non è uguale no, è uguale uguale a 0, 1004 00:52:59,770 --> 00:53:03,677 in modo che sia uguale a? 1005 00:53:03,677 --> 00:53:04,260 ANDI PENG: No. 1006 00:53:04,260 --> 00:53:07,480 Perché strchr è una funzione. 1007 00:53:07,480 --> 00:53:09,940 Ho intenzione di tornare a questo. 1008 00:53:09,940 --> 00:53:14,624 Allora qual è il tipo di ritorno della nostra funzione strchr? 1009 00:53:14,624 --> 00:53:15,332 PUBBLICO: Oh, OK. 1010 00:53:15,332 --> 00:53:15,800 O NULL. 1011 00:53:15,800 --> 00:53:16,466 >> ANDI PENG: Sì. 1012 00:53:16,466 --> 00:53:20,890 Si tratta di un char * che mi dice che qualunque questa funzione sta per tornare, 1013 00:53:20,890 --> 00:53:22,090 sta andando essere un puntatore. 1014 00:53:22,090 --> 00:53:24,860 O il puntatore sarà indicando dove è trovato, 1015 00:53:24,860 --> 00:53:27,550 o sta andando a tornare un puntatore a NULL. 1016 00:53:27,550 --> 00:53:30,930 In entrambe le circostanze, sta andando per restituire un puntatore a qualcosa. 1017 00:53:30,930 --> 00:53:34,354 >> E così, se si dovesse equiparare questo è uguale, uguale, 0, 1018 00:53:34,354 --> 00:53:36,020 si sta andando ad ottenere un errore di compilazione. 1019 00:53:36,020 --> 00:53:37,645 Perché sta andando a restituire un puntatore. 1020 00:53:37,645 --> 00:53:40,240 E si sta andando a cercare di confrontare un puntatore ad un intero. 1021 00:53:40,240 --> 00:53:42,515 E il computer non è piacerà questo. 1022 00:53:42,515 --> 00:53:45,630 Si Esattamente. 1023 00:53:45,630 --> 00:53:46,540 Raffreddare. 1024 00:53:46,540 --> 00:53:47,525 Tutti bene? 1025 00:53:47,525 --> 00:53:55,770 1026 00:53:55,770 --> 00:53:59,770 >> E in secondo luogo, stiamo per andare su una funzione chiamata strstr. 1027 00:53:59,770 --> 00:54:02,020 Nessun problema se questi funzioni sono confuse. 1028 00:54:02,020 --> 00:54:03,750 Mi stanno confondendo. 1029 00:54:03,750 --> 00:54:07,250 Come tale, voi ragazzi poteva aver visto, tutti suonano più o meno lo stesso. 1030 00:54:07,250 --> 00:54:10,400 Proprio quando sei confuso, tirare su la biblioteca string.h. 1031 00:54:10,400 --> 00:54:13,290 E voi potete ordinare attraverso il quale uno di che. 1032 00:54:13,290 --> 00:54:18,910 >> Quindi strstr, tutto ciò che non fa altro che le ricerche una stringa per un altra stringa intera. 1033 00:54:18,910 --> 00:54:21,980 Allora, dove strchr soli ricerche per un singolo carattere, 1034 00:54:21,980 --> 00:54:24,090 Ricerche strstr per un'intera stringa. 1035 00:54:24,090 --> 00:54:30,440 Così ho voluto guardare dentro, non lo faccio conoscere, Ciao, il mio nome è Andi. 1036 00:54:30,440 --> 00:54:32,490 E il nome di mio migliore amico è anche Andi. 1037 00:54:32,490 --> 00:54:37,180 >> Se volessi cercare in questo condanna per l'intera parola di Andi, 1038 00:54:37,180 --> 00:54:39,930 mio ago sarebbe stata qualsiasi cosa tu stia cercando. 1039 00:54:39,930 --> 00:54:43,440 E il tuo pagliaio è tutto ciò che cerchi in. 1040 00:54:43,440 --> 00:54:47,050 Quindi, se siete alla ricerca di un parola specifica all'interno di una frase, 1041 00:54:47,050 --> 00:54:48,800 questa parola sta per essere l'ago. 1042 00:54:48,800 --> 00:54:51,397 E poi la frase in sé sta per essere il vostro pagliaio. 1043 00:54:51,397 --> 00:54:53,230 E così cerca solo la prima occorrenza 1044 00:54:53,230 --> 00:54:55,063 dell'ago corda nel pagliaio stringa. 1045 00:54:55,063 --> 00:54:57,140 Restituisce il puntatore alla prima occorrenza. 1046 00:54:57,140 --> 00:55:00,510 Tranne, ricordate in questo caso, è il prima occorrenza della stringa completa 1047 00:55:00,510 --> 00:55:02,510 che si sta cercando per, non solo un personaggio. 1048 00:55:02,510 --> 00:55:04,676 >> E quindi questo è quasi stessa cosa come la funzione 1049 00:55:04,676 --> 00:55:09,100 abbiamo appena fatto, solo con un po 'di più specificità. 1050 00:55:09,100 --> 00:55:12,730 Perché siete alla ricerca di più di un carattere. 1051 00:55:12,730 --> 00:55:16,310 E l'utilizzo è la stessa esatta come quello che abbiamo appena fatto. 1052 00:55:16,310 --> 00:55:18,070 Ognuno OK con questo? 1053 00:55:18,070 --> 00:55:20,250 OK. 1054 00:55:20,250 --> 00:55:23,560 >> L'ultimo che abbiamo intenzione di andare sopra è strrchr, che non è 1055 00:55:23,560 --> 00:55:26,320 confuso con strstr o con strchr. 1056 00:55:26,320 --> 00:55:27,890 strrchr ha un r più in là. 1057 00:55:27,890 --> 00:55:29,140 Fare attenzione quando si sta digitando. 1058 00:55:29,140 --> 00:55:33,851 Si possono trovare te compreso una R in più o meno compreso un r, 1059 00:55:33,851 --> 00:55:35,850 e poi la funzione non è preso a andare a lavorare. 1060 00:55:35,850 --> 00:55:37,183 E si sta andando ad essere confuso. 1061 00:55:37,183 --> 00:55:40,150 Fare attenzione che si sta ortografia tutte queste funzioni a destra. 1062 00:55:40,150 --> 00:55:43,770 >> Così strrchr è l'esatto stessa cosa come strchr 1063 00:55:43,770 --> 00:55:47,480 tranne che cerca non il primo occorrenza di un carattere specifico, 1064 00:55:47,480 --> 00:55:49,350 ma piuttosto l'ultima occorrenza. 1065 00:55:49,350 --> 00:55:52,800 E così, in questo senso, è quasi la stessa esatta. 1066 00:55:52,800 --> 00:55:54,620 Ma invece di muoversi inoltrare in una stringa, 1067 00:55:54,620 --> 00:55:57,230 si sta andando ad essere in movimento all'indietro in una stringa. 1068 00:55:57,230 --> 00:56:00,510 Esattamente la stessa cosa, sei solo la ricerca in un ordine diverso. 1069 00:56:00,510 --> 00:56:04,690 >> E quindi questo potrebbe essere super, super utile per la ricerca 1070 00:56:04,690 --> 00:56:07,490 funzione, la prima funzione sul vostro pset. 1071 00:56:07,490 --> 00:56:12,710 Facciamo finta che avevamo bisogno di scrivere un funzione di estensione vuoto in cui abbiamo 1072 00:56:12,710 --> 00:56:17,850 passare un nome di file * costante char, solo una stringa, un nome di file, 1073 00:56:17,850 --> 00:56:21,370 che prende in quel nome e stampe l'estensione del file. 1074 00:56:21,370 --> 00:56:26,520 Così, per esempio, se dovessi passare nella stringa di pset7.zip, 1075 00:56:26,520 --> 00:56:30,004 sta andando a stampare solo l'estensione, che è .zip. 1076 00:56:30,004 --> 00:56:31,920 E questo dovrebbe funzionare per qualsiasi tipo di estensione, 1077 00:56:31,920 --> 00:56:38,290 .docx per Word o .pdf per un PDF file o .html per un file HTML. 1078 00:56:38,290 --> 00:56:40,425 Praticamente, scrivere un funzione che può farlo. 1079 00:56:40,425 --> 00:56:42,300 In realtà sto andando a passare alla IDE. 1080 00:56:42,300 --> 00:56:54,560 1081 00:56:54,560 --> 00:56:56,740 Non è load-- ci andiamo. 1082 00:56:56,740 --> 00:57:00,990 >> Quindi tutto quello che ho fatto qui è creato un char *, una prima stringa, 1083 00:57:00,990 --> 00:57:01,930 chiamato pset7.zip. 1084 00:57:01,930 --> 00:57:04,530 Io vado per ingrandire. 1085 00:57:04,530 --> 00:57:08,520 Ho creato una seconda stringa chiamato finalpaper.docx. 1086 00:57:08,520 --> 00:57:12,649 E mi scrivere una funzione che, quando chiamata sta per stampare appena fuori 1087 00:57:12,649 --> 00:57:13,690 le estensioni di file. 1088 00:57:13,690 --> 00:57:16,702 1089 00:57:16,702 --> 00:57:19,660 Forse prendere un paio di minuti per pensare di come si sta andando a fare questo. 1090 00:57:19,660 --> 00:57:22,510 Un po 'più impegnativo quello scorso, 1091 00:57:22,510 --> 00:57:24,770 ma l'utilizzo è quasi esattamente la stessa. 1092 00:57:24,770 --> 00:57:29,670 1093 00:57:29,670 --> 00:57:30,170 Già. 1094 00:57:30,170 --> 00:57:37,540 Quindi scrivere un estensione funzione chiamata che, se ti do il nome di un file, 1095 00:57:37,540 --> 00:57:41,340 se dovessi dare io pset7.zip-- desidera di stampare solo la .zip. 1096 00:57:41,340 --> 00:57:45,040 1097 00:57:45,040 --> 00:57:49,890 Se io do ti piace finalpaper.docx, basta stampare il .docx, 1098 00:57:49,890 --> 00:57:51,538 solo l'estensione di qualsiasi file. 1099 00:57:51,538 --> 00:59:03,720 1100 00:59:03,720 --> 00:59:07,790 >> Questo in realtà solo prende due righe di codice. 1101 00:59:07,790 --> 00:59:10,692 Quindi cercate di vedere se si può forse farlo in questo. 1102 00:59:10,692 --> 00:59:12,400 In realtà, solo prende una riga di codice. 1103 00:59:12,400 --> 00:59:14,074 Ma due linee è probabilmente più standard. 1104 00:59:14,074 --> 00:59:20,408 1105 00:59:20,408 --> 00:59:22,574 Quale funzione siamo probabilmente andando a voler chiamare? 1106 00:59:22,574 --> 00:59:25,286 1107 00:59:25,286 --> 00:59:26,260 >> PUBBLICO: strrchr. 1108 00:59:26,260 --> 00:59:27,343 >> ANDI PENG: strrchr, a destra. 1109 00:59:27,343 --> 00:59:29,570 Perché noi stiamo cercando da destra a sinistra. 1110 00:59:29,570 --> 00:59:32,107 1111 00:59:32,107 --> 00:59:33,940 Io non ti ho dato ragazzi un esempio come questo, 1112 00:59:33,940 --> 00:59:38,870 ma se ti ho dato un esempio come www.apple.com e volevo solo 1113 00:59:38,870 --> 00:59:43,005 il .com, sarebbe un esempio di dove si desidera chiamare l'ultima istanza 1114 00:59:43,005 --> 00:59:44,630 del periodo e non la prima, giusto? 1115 00:59:44,630 --> 00:59:47,470 Se tu fossi strchr chiamata, avrebbe mai dato la apple.com. 1116 00:59:47,470 --> 00:59:49,966 >> Se hai chiamato strrchr esso, ti avrebbe dato il .com. 1117 00:59:49,966 --> 00:59:53,062 E quindi state attenti su cui ways-- nel mio esempio, 1118 00:59:53,062 --> 00:59:55,520 si potrebbe probabilmente potrebbe avere appena scritto utilizzando strchr, 1119 00:59:55,520 --> 00:59:57,130 dato che c'è un solo punto. 1120 00:59:57,130 --> 00:59:59,790 Ma in altri casi, che non può essere il caso. 1121 00:59:59,790 --> 01:00:04,960 E così sempre cercare di progettare il codice e, in modo che-- sì? 1122 01:00:04,960 --> 01:00:07,365 >> PUBBLICO: Così nel esempio hai appena detto, 1123 01:00:07,365 --> 01:00:11,760 quando non strrchr sarebbe darvi .com o semplicemente vieni? 1124 01:00:11,760 --> 01:00:13,960 >> ANDI PENG: Si darebbe il .com. 1125 01:00:13,960 --> 01:00:14,794 >> PUBBLICO: OK. 1126 01:00:14,794 --> 01:00:15,460 ANDI PENG: Sì. 1127 01:00:15,460 --> 01:00:18,090 1128 01:00:18,090 --> 01:00:19,744 Che punti a cui si trovata. 1129 01:00:19,744 --> 01:00:20,244 Già. 1130 01:00:20,244 --> 01:00:24,120 1131 01:00:24,120 --> 01:00:25,188 30 secondi forse? 1132 01:00:25,188 --> 01:00:25,688 Già. 1133 01:00:25,688 --> 01:00:56,640 1134 01:00:56,640 --> 01:00:58,500 Tutti bene o forse un po 'più di tempo? 1135 01:00:58,500 --> 01:01:01,057 1136 01:01:01,057 --> 01:01:01,640 Alzata di mano? 1137 01:01:01,640 --> 01:01:02,320 Mostra di teste? 1138 01:01:02,320 --> 01:01:04,801 1139 01:01:04,801 --> 01:01:05,300 Raffreddare. 1140 01:01:05,300 --> 01:01:07,924 Chiunque vuole darmi il primo riga di codice per questo programma? 1141 01:01:07,924 --> 01:01:11,861 1142 01:01:11,861 --> 01:01:12,777 PUBBLICO: [incomprensibile]. 1143 01:01:12,777 --> 01:01:16,190 1144 01:01:16,190 --> 01:01:20,160 >> ANDI PENG: Quindi prima di tutto, diamo forse scomposizione. 1145 01:01:20,160 --> 01:01:24,370 Allora, qual è il tipo di ritorno di strrchr? 1146 01:01:24,370 --> 01:01:26,150 Torniamo indietro. 1147 01:01:26,150 --> 01:01:29,015 strrchr, qual è il tipo di ritorno? 1148 01:01:29,015 --> 01:01:29,640 PUBBLICO: Char * 1149 01:01:29,640 --> 01:01:31,270 ANDI PENG: E 'un char *, giusto? 1150 01:01:31,270 --> 01:01:35,760 Il che significa che probabilmente stai andando a voler creare un altro tipo di char * 1151 01:01:35,760 --> 01:01:40,400 di memorizzare ogni volta che è ritorno a, giusto? 1152 01:01:40,400 --> 01:01:43,200 Perché se si chiama la funzione di strrchr, 1153 01:01:43,200 --> 01:01:47,030 sta andando per darvi un puntatore a ovunque essa ha constatato che nell'ultimo periodo, 1154 01:01:47,030 --> 01:01:47,580 destra? 1155 01:01:47,580 --> 01:01:49,913 >> Ma si sta andando a voler memorizzare che da qualche parte, giusto? 1156 01:01:49,913 --> 01:01:52,612 E così come possiamo codifichiamo questo in il nostro programma? 1157 01:01:52,612 --> 01:01:54,320 PUBBLICO: Fate il char * [incomprensibile]. 1158 01:01:54,320 --> 01:01:55,240 ANDI PENG: Sì. 1159 01:01:55,240 --> 01:01:57,120 PUBBLICO: [incomprensibile]. 1160 01:01:57,120 --> 01:01:58,000 ANDI PENG: strrchr. 1161 01:01:58,000 --> 01:01:58,390 Già. 1162 01:01:58,390 --> 01:01:59,306 Oh, perso una r lì. 1163 01:01:59,306 --> 01:02:02,877 PUBBLICO: Nome file [incomprensibile]. 1164 01:02:02,877 --> 01:02:03,376 Cos'è? 1165 01:02:03,376 --> 01:02:04,420 Oh, E 'solo s. 1166 01:02:04,420 --> 01:02:04,940 >> ANDI PENG: Oh, è solo s. 1167 01:02:04,940 --> 01:02:05,610 Yup, mi dispiace. 1168 01:02:05,610 --> 01:02:06,330 Colpa mia. 1169 01:02:06,330 --> 01:02:08,370 Esempi non corrisponde. 1170 01:02:08,370 --> 01:02:12,130 >> PUBBLICO: E poi dot. 1171 01:02:12,130 --> 01:02:13,970 >> ANDI PENG: Yup. 1172 01:02:13,970 --> 01:02:16,570 Prestare attenzione quando si ragazzi are-- qui, lasciatemi Zoom avanti. 1173 01:02:16,570 --> 01:02:22,355 1174 01:02:22,355 --> 01:02:24,400 Ci siamo. 1175 01:02:24,400 --> 01:02:26,770 Prestare attenzione quando si ragazzi digitazione, soprattutto quando 1176 01:02:26,770 --> 01:02:27,920 si sta facendo solo un carattere. 1177 01:02:27,920 --> 01:02:32,480 E 'davvero facile da solo accidentalmente fare doppi apici piuttosto che singolo. 1178 01:02:32,480 --> 01:02:35,212 >> Non funzionerà. 1179 01:02:35,212 --> 01:02:36,670 Il compilatore sta andando a lamentarsi. 1180 01:02:36,670 --> 01:02:38,790 E la vostra funzione è semplicemente non andare a correre. 1181 01:02:38,790 --> 01:02:40,540 E quindi state attenti quando si sta facendo le cose 1182 01:02:40,540 --> 01:02:42,622 con caratteri che è apici. 1183 01:02:42,622 --> 01:02:44,830 E così fa questa linea di codice senso per tutti? 1184 01:02:44,830 --> 01:02:46,810 Stiamo creando un puntatore char *. 1185 01:02:46,810 --> 01:02:50,310 Perché restituisce strrchr qualcosa di tipo puntatore. 1186 01:02:50,310 --> 01:02:53,440 >> E così stiamo andando a chiamare strchr su s, che è la stringa, il file 1187 01:02:53,440 --> 01:02:55,140 nominiamo, che stiamo passando. 1188 01:02:55,140 --> 01:02:59,750 E stiamo cercando l'ultimo esempio di un periodo, che è 1189 01:02:59,750 --> 01:03:02,200 solo la singola citazione dot sola offerta. 1190 01:03:02,200 --> 01:03:02,700 Già. 1191 01:03:02,700 --> 01:03:05,180 >> PUBBLICO: quando usiamo le virgolette doppie e quando fare usiamo le virgolette singole? 1192 01:03:05,180 --> 01:03:05,320 >> ANDI PENG: Sì. 1193 01:03:05,320 --> 01:03:07,180 Le virgolette doppie sono così sempre utilizzato quando si 1194 01:03:07,180 --> 01:03:10,120 avere una stringa di più di uno. 1195 01:03:10,120 --> 01:03:13,070 Quindi, se si sta facendo strstr, che è quella che si 1196 01:03:13,070 --> 01:03:16,320 cercare una stringa per stringa, passerebbe tra virgolette. 1197 01:03:16,320 --> 01:03:18,070 Ma ogni volta è solo un singolo carattere, 1198 01:03:18,070 --> 01:03:19,870 si vuole fare apici. 1199 01:03:19,870 --> 01:03:22,880 >> E 'una buona cosa da tenere a mente. 1200 01:03:22,880 --> 01:03:25,864 Quindi, ora che abbiamo la nostra puntatore, cosa facciamo con esso? 1201 01:03:25,864 --> 01:03:27,780 Ti sto chiedendo ragazzi a la stampa fuori, giusto? 1202 01:03:27,780 --> 01:03:30,940 Così [incomprensibile], vuoi dammi la riga di codice? 1203 01:03:30,940 --> 01:03:31,780 >> PUBBLICO: printf-- 1204 01:03:31,780 --> 01:03:32,446 >> ANDI PENG: Sì. 1205 01:03:32,446 --> 01:03:35,344 1206 01:03:35,344 --> 01:03:36,843 PUBBLICO: --Potete bisogno di un supporto posto. 1207 01:03:36,843 --> 01:03:37,340 ANDI PENG: Yup. 1208 01:03:37,340 --> 01:03:38,334 AUDIENCE: Stampare il segnaposto. 1209 01:03:38,334 --> 01:03:40,322 Io non so quale sia il posto titolare è ma punto ad esso. 1210 01:03:40,322 --> 01:03:40,819 >> OK. 1211 01:03:40,819 --> 01:03:42,027 Saltiamo che per ora poi. 1212 01:03:42,027 --> 01:03:44,556 PUBBLICO: E poi comma-- 1213 01:03:44,556 --> 01:03:45,720 >> ANDI PENG: Pointer, giusto? 1214 01:03:45,720 --> 01:03:47,970 >> PUBBLICO: Pointer, yup. 1215 01:03:47,970 --> 01:03:51,140 >> ANDI PENG: Quindi tipo di una domanda trabocchetto, ha a che fare con i puntatori e stringhe 1216 01:03:51,140 --> 01:03:53,130 che abbiamo tipo di parlato già. 1217 01:03:53,130 --> 01:03:57,766 Che tipo di supporto posto dobbiamo necessità di un puntatore per un char *? 1218 01:03:57,766 --> 01:03:59,574 >> PUBBLICO: [incomprensibile]. 1219 01:03:59,574 --> 01:04:00,240 ANDI PENG: Sì. 1220 01:04:00,240 --> 01:04:02,522 E 'più facile di quanto pensate ragazzi è. 1221 01:04:02,522 --> 01:04:03,230 PUBBLICO: String? 1222 01:04:03,230 --> 01:04:04,730 ANDI PENG: E 'solo una stringa, esattamente. 1223 01:04:04,730 --> 01:04:06,595 Perché ricordare stringhe in realtà non esistono. 1224 01:04:06,595 --> 01:04:09,430 Un char * è l'esatto stessa cosa come una stringa. 1225 01:04:09,430 --> 01:04:14,461 E così proprio questo è ciò che s avrebbe dovuto essere utilizzato per tutto il tempo. 1226 01:04:14,461 --> 01:04:14,960 OK. 1227 01:04:14,960 --> 01:04:17,810 >> Vediamo se siamo in grado di provare a eseguire questo. 1228 01:04:17,810 --> 01:04:19,450 Facciamo una estensione marca. 1229 01:04:19,450 --> 01:04:22,710 1230 01:04:22,710 --> 01:04:23,396 Raffreddare. 1231 01:04:23,396 --> 01:04:28,830 Voi ragazzi vedere come ho passato in psset7.zip e il finalpaper.docx, 1232 01:04:28,830 --> 01:04:32,500 e la stampa appena fuori il .zip e il .docx? 1233 01:04:32,500 --> 01:04:34,150 Ha senso? 1234 01:04:34,150 --> 01:04:36,660 >> OK Quindi penso che nel tuo sguardo su funzione nel pset sei 1235 01:04:36,660 --> 01:04:41,050 sta per essere chiesto se la stringa ha una certa conclusione, 1236 01:04:41,050 --> 01:04:42,800 si deve dare un certo codice di errore. 1237 01:04:42,800 --> 01:04:44,820 E così questo sarà abbastanza terribile. 1238 01:04:44,820 --> 01:04:47,350 Perché se si riesce a capire ciò che l'estensione è, 1239 01:04:47,350 --> 01:04:49,810 si può quindi confrontare che estensione per vedere se corrisponde up 1240 01:04:49,810 --> 01:04:51,251 con una determinata estensione. 1241 01:04:51,251 --> 01:04:53,250 E poi si può tornare un messaggio di errore, giusto? 1242 01:04:53,250 --> 01:04:53,860 Già. 1243 01:04:53,860 --> 01:04:55,370 >> PUBBLICO: Quindi non lo facciamo deve aggiungere 1 o altro? 1244 01:04:55,370 --> 01:04:56,530 Il puntatore andrà a the-- 1245 01:04:56,530 --> 01:04:56,660 >> ANDI PENG: Nope. 1246 01:04:56,660 --> 01:04:57,530 >> PUBBLICO: --point dopo. 1247 01:04:57,530 --> 01:04:58,196 >> ANDI PENG: Sì. 1248 01:04:58,196 --> 01:05:00,650 Essa ricorda esattamente a dove i casi sono stati. 1249 01:05:00,650 --> 01:05:04,010 Così, per esempio qui, siamo la ricerca per il periodo. 1250 01:05:04,010 --> 01:05:06,597 Così sta andando a tornare un puntatore al periodo. 1251 01:05:06,597 --> 01:05:08,930 E poi sta andando a stampare partendo nel periodo. 1252 01:05:08,930 --> 01:05:10,260 >> Quindi non c'è bisogno di aggiungere 1. 1253 01:05:10,260 --> 01:05:15,000 Anche se, è totalmente bene per, se si è mai sicuri, a solo tipo 1254 01:05:15,000 --> 01:05:16,070 di provarlo voi stessi. 1255 01:05:16,070 --> 01:05:17,590 Costruire un programma di esempio. 1256 01:05:17,590 --> 01:05:20,240 Provatelo voi stessi e vedere dove è la stampa. 1257 01:05:20,240 --> 01:05:23,380 Questo non è un brutto modo di farlo. 1258 01:05:23,380 --> 01:05:26,040 >> Raffreddare. 1259 01:05:26,040 --> 01:05:28,880 E questo è più o meno tutto Ho avuto per voi ragazzi oggi. 1260 01:05:28,880 --> 01:05:31,440 1261 01:05:31,440 --> 01:05:33,300 Abbiamo fatto un sacco di roba pset oggi. 1262 01:05:33,300 --> 01:05:35,720 Così, in caso di dubbio, come Ho detto, sempre guardare in alto 1263 01:05:35,720 --> 01:05:37,620 la libreria string.h per questo pset. 1264 01:05:37,620 --> 01:05:40,370 Ci sara 'un sacco di funzione che ci può essere utile. 1265 01:05:40,370 --> 01:05:41,300 Alcuni potrebbero non essere utile. 1266 01:05:41,300 --> 01:05:42,133 Io non lo so. 1267 01:05:42,133 --> 01:05:44,370 Wade attraverso di essa, c'è un sacco di loro. 1268 01:05:44,370 --> 01:05:49,100 strstr, strchr, strrchr sono super, super disponibile, così come 1269 01:05:49,100 --> 01:05:52,080 le strcpys e strcasecmps che abbiamo già usato. 1270 01:05:52,080 --> 01:05:56,510 >> E 'solo molto fare in giro con stringhe, determinando se sono uguali, 1271 01:05:56,510 --> 01:05:59,960 ottenendo roba di stringhe, e essere in grado di aprire correttamente i file. 1272 01:05:59,960 --> 01:06:02,252 E 'un sacco di file di I / O. pset non è poi così male. 1273 01:06:02,252 --> 01:06:04,210 Stai andando a prendere un guardare, scaricarlo, 1274 01:06:04,210 --> 01:06:05,590 e vedere un sacco di codice. 1275 01:06:05,590 --> 01:06:09,220 Nessun problema, il codice effettivamente scrivere non è affatto male. 1276 01:06:09,220 --> 01:06:12,870 Se qualcuno ha problemi con il loro Server, vieni a vedere me dopo sezione. 1277 01:06:12,870 --> 01:06:16,040 >> Chiedere scusa ancora una volta per non portando caramelle per Halloween. 1278 01:06:16,040 --> 01:06:18,790 Non so che cosa mi stava succedendo. 1279 01:06:18,790 --> 01:06:20,800 Ma avremo doppia la caramella prossima volta. 1280 01:06:20,800 --> 01:06:25,620 E buona fortuna nel vostro pset questa settimana. 1281 01:06:25,620 --> 01:06:27,170 Sì. 1282 01:06:27,170 --> 01:06:28,722