>> JASON HIRSCHHORN: Benvenuti.
Quindi, solo un paio di annunci prima di iniziare.
Così sezioni, tutti dovrebbero hanno già sezionato.
Sezioni normalmente funzionano da Domenica a Martedì.
Quindi voi ragazzi dovreste ottenere le assegnazioni.
E poi penso che la prossima settimana sarete con il vostro attuale TF.
Quindi, se avete domande, o problemi, o ti sei dimenticato di sezione.
Alcune persone lo fanno.
Fateci sapere.
Noi sparare una e-mail a testa.
>> Poi l'orario d'ufficio.
Abbiamo iniziato l'orario d'ufficio la scorsa settimana.
Orario di ricevimento ogni settimana.
Lunedi è in Leverett 8:00-11:00.
Martedì in quad, così Cabot 8:00-11:00.
Mercoledì, Mather 8:30-11:30.
E Giovedi Annenberg 8:00-11:00.
>> Così Scratch, un sacco di gente non hanno bisogno di ore di ufficio
aiutare per Scratch, che è completamente bene.
Se lo fai, questo è assolutamente bene così.
Ma in futuro, il problema set, ottengono molto più difficile.
Quindi questo sta per essere tuo amico.
Sicuramente andare in orario d'ufficio.
Intenzione di andare a orari di ufficio.
Quando si arriva al problema set di quattro, cinque, sei, sette,
avete bisogno di andare a orari di ufficio.
Questo è dove un sacco l'aiuto e il lavoro viene fatto.
>> Penso che l'anno scorso, solo per esempio, il Giovedi notte--
quindi penso che il problema set erano dovuti il ​​Venerdì.
Così Giovedi notte, avremmo 200, 250 studenti nelle ore di ufficio.
Quindi sicuramente fare uso di questi.
Questi sono i tuoi migliori amici.
Come questo è dove se siete bloccato su un set problema,
è qui che probabilmente otterrete aiuto.
Quindi l'orario d'ufficio.
OK, quelli sono gli annunci.
Gli annunci sono fatto, quindi cerchiamo di iniziare.
>> OK, l'apparecchio.
Sono andati tutti a scaricare ancora l'apparecchio?
No.
Come in così così.
I tipi di scaricato dell'apparecchio.
Destro in modo che la macchina è nuova quest'anno, quindi probabilmente siamo
andando ad avere qualche bug in esso.
Quindi, per favore scaricarlo il più presto possibile.
Così problema impostato uno sta per dire esattamente come scaricarlo.
Per iniziare l'installazione proprio qui.
E 'intenzione di dirvi come per scaricare l'apparecchio.
>> Quindi sicuramente scaricare il apparecchio il più presto possibile.
Le istruzioni sono nel P set spec.
Quindi, se si aspetta fino a Mercoledì notte, e poi si hanno problemi,
e ci inviate una e-mail a mezzanotte di Mercoledì sera
che non è possibile scaricare l'apparecchio, che è
non è un motivo legittimo per una proroga.
Hai bisogno di farlo ora, e avrete problemi.
Ho provato a scaricare la scorsa notte.
Mi sono imbattuto in un po 'di problemi.
Se si esegue nei guai l'installazione, sicuramente
colpito tentativo, perché ho appena colpito ritentare un paio di volte, e alla fine ha funzionato,
che non ha alcun senso, ma lo fa.
Quindi sicuramente riprovare, ma se si venire contro un muro di mattoni,
ci spara una e-mail a testa, e faremo essere più che felice di aiutare voi ragazzi.
Cosa succede?
>> STUDENTE: Solo una domanda veloce.
Se controllano lo stile, c'è una parte dice che non abbiamo incluso questo.
JASON HIRSCHHORN: Non ancora.
STUDENTE: Dice eseguirlo.
Come si esegue che a assicurarsi che sia nel vostro sistema?
>> JASON HIRSCHHORN: Sei andando ad eseguire un comando bash.
Vado oltre che più tardi.
Freddo.
Quindi l'apparecchio può essere po 'intimidatorio,
perché siete abituati a tipo di esecuzione in interfaccia utente grafica.
Così Scratch è stato un utente grafica interfaccia, quindi cosa voglio dire con questo?
Quello che voglio dire è che quando si programma,
si sta fondamentalmente utilizzando blocchi di codice.
Si può vedere il codice e cose del genere.
>> L'apparecchio, hai intenzione di fare cose in un ambiente a riga di comando.
E così per il resto le vostre vite di programmazione,
avete intenzione di fare le cose in un ambiente a riga di comando.
Quindi è buona per saltare all'inizio del e fare esperienza.
Quindi facciamolo.
Ecco, questo è Rob.
>> Ok, facciamo solo salto in linea di roba di comando.
Quindi questo è l'apparecchio.
Qualcuno può dirmi perché usiamo un apparecchio?
Che cosa è l'apparecchio?
Qualcuno lo sa?
Cosa succede?
>> STUDENTE: E 'solo una macchina virtuale di eseguire la macchina in modo che si
in grado di superare il sistema operativo disaccordi tra Mac e PC.
JASON HIRSCHHORN: Perfect.
STUDENTE: Si tratta di un modello universale.
JASON HIRSCHHORN: Sì, è come un modello universale.
È perfetto.
Quindi sì, si tratta di una macchina virtuale.
Quindi è fondamentalmente un sistema operativo.
Questo è un sistema operativo.
Questo è equivalente a vostra Mac, o PC, o il vostro Linux.
Questa è la stessa esatta.
E in modo da poter fare cose simili.
Se si volesse, si potrebbe andare online per esempio.
Non si può davvero vedere, ma proprio qui, Google Chrome.
Si può andare online, se si desidera.
Questo è un sistema operativo.
E il motivo lo facciamo è perché è molto più facile quando stiamo distribuendo
istruzioni e tutto.
Se è solo un ambiente uniforme, è molto più facile per noi,
ed è molto più facile per voi.
Tu non stai andando a correre in correre in tutte le idiosincrasie
quando si programma.
Sappiamo esattamente cosa si sta andando a correre in.
Quindi l'apparecchio è qui.
>> Così, quando si sta iniziando programmazione, si è
intenzione di scendere a in alto a sinistra.
C'è una piccola scatola.
Stai andando a fare clic su di esso.
Questa è la tua finestra di terminale.
Quindi questo è dove stai andando ad essere un sacco di semestre.
Permettetemi quindi di zoomare un po '.
>> OK, in modo da ottenere intorno ad un terminale finestra è un po 'diverso.
In primo luogo, non ci sono le icone.
Non riesco a cliccare nulla.
Non c'è niente da cliccare.
Quindi devi trovare un modo per capire dove si è, ciò che è qui,
e come muoversi.
>> Così i due comandi più utili probabilmente sta ls-- così che cosa ne pensi ls fa?
>> STUDENTE: List.
JASON HIRSCHHORN: Liste, sì.
E 'appena elenca algoritmi all'interno della directory.
E poi cd.
Quindi diciamo che ho voluto cd CS50, che cosa ha fatto che fare?
Sì?
>> STUDENTE: Cambia directory.
JASON HIRSCHHORN: Perfetto, sì.
E 'appena cambia la directory.
Quindi cerchiamo di tornare indietro.
Allora, come faccio a tornare indietro?
Quindi diciamo che volevo andare tornare alla directory precedente.
Sì certo.
>> STUDENTE: Penso che si scrive cd solo senza niente.
JASON HIRSCHHORN: Si può fare.
Così perfetto.
Quindi se scrivo cd, questo è in realtà andando a pop me
eseguire il backup della directory home.
Quindi, vedete questo tilde, che sta per scoppiare me
via del ritorno fino al punto in cui la tilde è.
Così sta andando a pop me up tornare alla home directory.
Ma diciamo che ho fatto qualcosa di simile.
Diciamo cd CS50.
di nuovo ls.
Ho altre cose. cd sezione eccellente.
file di cd, quindi sto andando in profondità.
E poi diciamo che voglio solo pop indietro fino alla cima.
cd.
Diciamo che non voglio farlo.
Diciamo che voglio solo pop torna fino a la directory che era proprio sopra di me.
Come posso fare questo?
Quindi diciamo cd CS50.
cd supersection.
Quindi cerchiamo di cui sono qui.
Diciamo che voglio solo a pop-up una volta.
Come posso fare questo?
Già, che cosa succede?
>> STUDENTE: Basta digitare cd supersection di nuovo.
>> JASON HIRSCHHORN: Si potrebbe farlo.
Beh, io sono in supersection.
>> STUDENTE: Oh, quello prima.
>> JASON HIRSCHHORN: Sì, così si potrebbe fare.
Fate cd ~ CS50.
Quindi, se si guarda qui, questo è il vostro percorso proprio qui.
Questo è il tuo percorso.
Così si potrebbe seriamente basta andare cd ~ / CS50.
Boom, sei lì.
Che cosa è un modo più semplice per farlo però?
E 'stato perfettamente corretto, ma che cosa è un modo un po 'più facile
per farlo, perché un sacco dei tempi si sta andando
da saltare in directory, saltando fuori delle directory.
Quindi cerchiamo di tornare indietro.
cd supersection.
Quindi diciamo che voglio tornare reale veloce.
Si può fare qualcosa di simile cd punto punto.
Che sta per scoppiare si esegue il backup reale veloce.
Così cd supersection.
file del CD.
Diciamo che io sono qui.
Tra l'altro, chiaro è buono, perché la mia finestra stava diventando un po 'disordinato.
Così ls, quindi non voglio essere più qui. cd dot dot.
Portami uno.
Cd dot dot mi porta uno.
Cd punto punto e tornare a casa mia.
>> OK, così cd, ls.
Probabilmente la più importante cose, perché sei
andando ad avere bisogno di sapere dove ti trovi.
ls sta per dirti dove siete, e cd
è come si sta andando a saltare in giro.
>> Si può anche fare un po 'di altre cose interessanti.
Così, per esempio ls.
ls è solo andare a mostrarvi le directory nel file.
E 'inoltre intenzione di mostrare i file.
Ma è solo andando a mostrare ciò che c'è.
>> Se si voleva qualcosa un po 'più fresco,
e si sta andando a fare in realtà questo in un paio di settimane. ls precipitare l.
Che stampa un qualche informazione in più.
Qualcuno può indovinare sulla mano sinistra lato il drwx, rwx e cose del genere.
Qualcuno ha un'idea che cosa potrebbe significare?
>> STUDENTE: Autorizzazioni.
>> JASON HIRSCHHORN: Sì, perfetto.
Autorizzazioni.
Così si sta andando a avere a che fare con questo
quando si fa programmazione web più tardi.
Se avete mai andato on-line, e hai cliccato su un'immagine
o cliccato su un campo, e ha detto permission--
come il permesso non consentito, o come il permesso non è stato concesso o qualsiasi altra cosa,
Questo perché quando che stanno di programmazione, che
non hanno impostare queste autorizzazioni per consentire di farlo.
Allora, dove che viene da.
>> OK, in modo che è cool.
Così ci siamo buttati in giro.
Possiamo guardare roba nel nostro elenco.
Ma come facciamo roba?
Ho directory qui.
E 'fantastico.
Come faccio a creare una nuova directory?
Dire che voglio fare una nuova directory per ora.
Si può fare qualcosa di simile, mkdir.
Quindi, fare directory.
Così che cosa si vuole chiamare questo elenco?
STUDENTE: Awesome.
JASON HIRSCHHORN: Awesome.
Lo adoro.
Fai directory impressionante.
E ci si va.
Quindi, abbiamo bisogno di una lista.
Hai una nuova directory.
E si può dire che è un directory nel vostro apparecchio
perché ha questo colore, giusto?
Quindi è come un bluastro viola o qualsiasi altra cosa.
Quindi cerchiamo di cambiare.
Cambiamo directory.
Andiamo in directory-- sì, che succede?
STUDENTE: Esiste una lista di tutti questi [incomprensibile] on-line?
JASON HIRSCHHORN: Sì, metterò li on-- avremo diapositive.
Sarà un PDF.
Ci ha posta in tutti.
Sì, mi dispiace è un sacco di comandi.
se vuoi che rallentare, o tornare indietro, o qualcosa di simile,
sicuramente me lo faccia sapere.
E 'un sacco di assorbire subito.
Cosa succede?
STUDENTE: Posso chiedere un potenzialmente stupida domanda?
JASON HIRSCHHORN: Non c'è domande stupide.
STUDENTE: Ci sono.
Una directory è solo per guardare a informazioni dove riporlo.
>> JASON HIRSCHHORN: Sì.
>> Studente: E 'questo in sostanza, quello che stai facendo?
Così, quando facciamo qualcosa, ciao mondo o qualsiasi altra cosa,
è memorizzato nella rubrica, sì?
>> JASON HIRSCHHORN: Sì.
>> STUDENTE: E 'vero che per ogni cosa.
Tutto è memorizzato nella directory.
>> JASON HIRSCHHORN: Sì.
Ogni volta che si rendono, directory in cui vi trovate,
sta andando a fondo conservarlo in quella directory.
STUDENTE: E quando noi stiamo chiamando, stiamo chiamando dalla directory.
>> JASON HIRSCHHORN: Sì, così la directory in cui è es.
Quindi è un po 'come se si dispone di una nuova cartella sul desktop
e poi si scrive un testo il file, metterlo in quella cartella,
il file è in quella cartella.
Questo fa senso?
>> STUDENTE: Sì.
>> JASON HIRSCHHORN: Sì, che cosa succede?
>> STUDENTE: Posso solo chiedervi di rendere un po 'più grande?
>> JASON HIRSCHHORN: Oh, sì.
Scusi.
Il proiettore è poi così male.
Abbiamo avuto così tanti problemi con questo in precedenza.
Va meglio?
Che è troppo grande?
>> STUDENTE: No, no, non lo è.
>> JASON HIRSCHHORN: No, non lo è.
E 'troppo piccolo?
Cosa succede?
>> STUDENTE: Mi dispiace, che cosa è il comando per la cancellazione?
>> JASON HIRSCHHORN: Oh, chiaro.
Se si desidera cancellare, basta tipo chiaro. chiara entrare.
L'ultimo dispositivo, ciò che fa in sostanza,
non cancella le informazioni, è solo un po 'di spostare tutto
in basso una schermata.
Quindi, se avete digitato clear-- per esempio diciamo che sto scorrendo verso l'alto.
Posso scorrere verso l'alto.
Questo è tutto quello che ho fatto.
Ma se digito chiaro, e poi I Scorrere verso l'alto, ecco la mia roba.
Quindi non è la cancellazione di esso, è solo in pratica dando un nuovo fotogramma.
>> STUDENTE: Come si fa [Incomprensibile] una directory?
>> JASON HIRSCHHORN: Ci arriveremo.
>> [Risate]
Rallentare il tiro.
Bene.
OK, così così siamo in un directory in questo momento.
Così David, penso che in conferenza ha fatto un po 'di cose interessanti.
Quindi cerchiamo di scrivere un programma.
Così si può fare un numero di modi diversi.
È possibile utilizzare qualsiasi tipo di editor di testo.
È possibile utilizzare il Nano, è può usare Vim, Emacs.
Quelli sono leggermente più complicato.
Oppure si può usare qualcosa in qui che si chiama gedit.
Scusi.
gedit non è felice.
Quindi, gedit è fondamentalmente solo un editor di testo.
Proprio come modificare il testo parola processore o qualcosa del genere.
Quindi ha un bel Interfaccia proprio come questo.
In modo da fare una cosa del genere.
Quindi, in realtà mi permetta di dargli nome perché non ho mai fatto.
>> Così che cosa si vuole chiamare il nostro primo programma?
E 'solo per dire ciao.
>> STUDENTE: [incomprensibile].
>> JASON HIRSCHHORN: Ti manca la fantasia.
OK, gedit.
Ciao.
Ho intenzione di fare .txt.
OK, ecco che è.
Quindi cerchiamo di scrivere un programma.
Quindi penso che hai visto questo in conferenza.
Hai bisogno di una funzione principale.
Boop.
Quindi, questa è solo una funzione principale.
Più grande?
Sì, mi dispiace.
OK, hai bisogno di una funzione principale.
Penso che sto saltando la pistola un po ',
ma non è mai male per ottenere utilizzato per questo genere di cose.
>> Quindi una funzione principale, ogni programma C che sei
andando a scrivere per il resto di questa corso avrà la funzione principale.
Qualcuno sa perché?
Cosa succede?
>> STUDENTE: Avvia.
>> JASON HIRSCHHORN: Esattamente, quindi indica al programma dove cominciare.
Quindi, se non si dispone di una funzione principale, e si compila questo e roba del genere,
non sta andando a conoscere dovesse iniziare.
Principale è sempre dove inizia.
In modo da avere una funzione principale, e poi qualcuno ricorda come stampare?
>> STUDENTE: printf.
JASON HIRSCHHORN: Sì, printf.
printf hi.
OK, ora che mi sono prefissato voi ragazzi fino a fallire, ma questo la compilazione.
>> Studente: No.
>> JASON HIRSCHHORN: Perché?
Ci sono diverse ragioni.
Certo.
>> STUDENTE: Non ha lo standard [incomprensibile].
>> JASON HIRSCHHORN: Perfect.
Così Come si chiama questo qui?
>> STUDENTE: [incomprensibile]
>> JASON HIRSCHHORN: E ' un file di intestazione, giusto?
Si tratta di un file di intestazione.
E hai perfettamente ragione.
Tutti e due hanno ragione.
Quindi, per comprendere che, io faccio solo pound includere standard di .h input output.
Sto bene di andare adesso?
Sarebbe questo la compilazione?
>> Studente: No.
JASON HIRSCHHORN: Perché no?
STUDENTE: E 'un [incomprensibile] testo.
JASON HIRSCHHORN: Si, impressionante.
Così ho appena fatto.
Così ho salvato, ma gedit hi.txt.
Così ora se faccio ls, eccolo qui.
Proprio qui.
Oh, non è in impressionante.
Devo essere uscito.
Oh, perfetto.
Ma come si traduce questo fantastico?
Quindi io non lo voglio qui a casa mia directory con tutto il resto.
Voglio metterlo nella cartella.
Come posso fare questo?
>> Non è troppo difficile.
Sposta.
Quindi abbiamo già imparato ls, lista.
cd per cambiare directory.
cd punto punto a urtare fuori di directory.
E ora andiamo a iniziare a muoversi intorno file.
Quindi, per spostare basta spostare hi.txt, e Ho intenzione di mettere in impressionante.
>> Basta essere attenti.
Ogni volta che si sta scrivendo in riga di comando, tutto è importante.
Le cose in modo maiuscole.
Se avessi fatto a minuscola, è non ho intenzione di sapere cosa sta succedendo.
Così tutto è importante essere molto specifico.
>> Quindi eseguire che ls.
Non è più qui.
Cambiamo directory in impressionante.
ls.
Boom, è lì.
E qualcuno menzionato perché questo non sarebbe la compilazione.
Perché non sta andando per compilare di nuovo?
Sì?
>> STUDENTE: Non è in un .c.
>> JASON HIRSCHHORN: Perfect.
Non è un .c, cosi come sono io andando a rinominarlo in un .c?
Che cosa è un modo semplice per farlo?
Usiamo il comando che abbiamo appena fatto.
Quindi stiamo solo andando a spostare hi.txt a hi.c.
ls hi.c.
E poi solo per divertimento, cerchiamo di basta saltare in questo reale veloce.
hi.c.
Noterete è bello e colorato.
Quindi, questi sono solo un po 'utile colori quando si programma.
Così la int e il vuoto, questi sono i tipi di dati.
Andremo su quelle di un secondo.
Ciao è una stringa.
Ma i colori utili.
Quindi, se mai per caso scegliere l'estensione sbagliata,
si dovrebbe avere questi colori.
Cosa succede?
>> STUDENTE: Come faccio a copiare in un file [incomprensibile] in un altro file?
JASON HIRSCHHORN: Oh, io sono intenzione di mostrare anche questo.
Quindi copia eliminare sono sul molo.
Facciamo questo.
Assicurarsi che funzioni.
Fai hi.
Opere, eseguirlo.
Così ./hi impressionante.
Questo è il tuo primo programma.
Vorrei che fosse più grande.
Quindi davvero buono-- Sì, che cosa succede?
STUDENTE: Perché sarebbe che quando prendo gedit,
che non mi dà un altro line per gedit hi.txt?
E 'appena mette il cursore su una linea.
STUDENTE: Sì.
Il [incomprensibile].
>> JASON HIRSCHHORN: Attendere, così dire ancora una volta che.
>> STUDENTE: Quando digito gedit, il prima volta, la prima line--
JASON HIRSCHHORN: Up lì in cima?
STUDENTE: Non ha J Harvard apparecchio e il cursore
è solo completamente a sinistra.
JASON HIRSCHHORN: Tutti la strada a fianco?
STUDENTE: Sì.
Qualcun altro ha questo?
>> JASON HIRSCHHORN: Oh, bene J Harvard è proprio come il nome utente.
Ecco, questo è solo il nome utente standard.
>> STUDENTE: Si smette di rispondere.
JASON HIRSCHHORN: Oh, non risponde più.
OK, quindi quello che devi fare è si deve chiudere di gedit.
Così vicino da gedit, e deve restituire.
Così è gedit aperto sul apparecchio in questo momento?
Se si esce fuori di esso, dovrebbe torna e si dovrebbe essere pronti per partire.
Ha fatto quel lavoro?
>> STUDENTE: Così ha fatto si utilizza il comando gedit per open--
JASON HIRSCHHORN: No, il primo il comando gedit è stato un errore.
Il primo comando gedit, Devo fare gedit hi.txt.
Così ho dato un nome, hi.txt così gedit.
hi.txt è il nome del file.
Il primo è stato proprio un errore, e quindi
Ho subito chiuso fuori dal programma.
Quindi la domanda è stata se lo faccio gedit, non sono
sarà in grado di fare veramente qualsiasi altra cosa nella mia linea di comando
fino a quando chiudo che gedit, così ho credo che sia quello che si imbatterono in.
Quindi chiudere il gedit.
Si tornerà da quel programma, e poi ti
essere in grado di scrivere in realtà nella riga di comando di nuovo.
Che è buono?
Dope.
Quindi, assicuratevi di chiudere se si esegue nei guai.
>> OK, quindi una buona domanda un secondo fa stava copiando.
Così ora ho hi.c.
Ma diciamo che voglio cambiarlo.
Io voglio che sia un po 'meglio.
Voglio dire classe ciao.
Ma voglio mantenere questo modello.
Non devo riscrivere l'intero programma di nuovo.
Voglio mantenere il modello.
Come faccio a copiare?
>> Facile.
Così cp hi.c newhi.c.
Ora ho due.
E poi posso aprire newhi.c, e invece di dire ciao,
Dirò di classe hi!
Quindi io tornerò.
Uscire fuori.
Torna alla mia linea di comando.
ls fanno newhi.
Eseguirlo.
Là.
E 'meglio, molto meglio.
Quindi, se si desidera copiare qualcosa, facile come quello. cp è la copia.
>> Così siamo passati sopra in movimento, rendendo le directory, la copia.
Vediamo cos'altro dovrei andare oltre?
Oh, sì.
Andiamo su questo.
Quindi questo era incredibile.
Diciamo che ho voluto a-- oh wait.
Ho intenzione di tornare in impressionante.
>> Diciamo che non voglio questi file proprio qui.
Diciamo che io li voglio in una nuova directory come in directory impressionante.
Voglio iniziare ad organizzare, così ora sto andando
di avere una nuova directory denominata hi.
E 'ottenuto tutti i programmi Scrivo chiamato hi.
Quindi, come possiamo farlo?
>> STUDENTE: Modificare la directory.
>> JASON HIRSCHHORN: Sì.
hi.
Boop.
mkdir hi_dir.
Si lamentava perché già avuto un hi qui.
Così ora ho una directory hi.
Quindi ora voglio spostare tutto, tutti i programmi che ho scritto,
Voglio spostarli nella directory hi.
Basta pulire roba.
Come posso fare questo?
>> STUDENTE: [incomprensibile].
>> JASON HIRSCHHORN: Moving, giusto?
Quindi andiamo avanti.
Sì?
>> STUDENTE: Qual è la differenza tra ciao e hi.c che abbiamo già.
JASON HIRSCHHORN: Oh, hi.c è l'attuale.
Ecco, questo è il file che hai scritto.
Quindi, se si andavano a aprirlo in gedit o Nano,
questo è quello che si sta digitando.
Quando si compila, allora si ottiene un file eseguibile.
Questo è hi.
Quindi, se hai aperto ciao, che sta andando di essere un gruppo di parole senza senso per voi.
E 'fondamentalmente sta per essere gruppo di istruzioni del computer.
Cosa succede?
>> STUDENTE: Che cosa significano tutti i colori?
Il blu è probabilmente directory.
Che cosa è giallo?
>> JASON HIRSCHHORN: Quelli sono i file eseguibili.
Così, quando ho fatto hi.c esso, dato me-- modo che io possa farlo.
Saltando la pistola.
Quindi rimuovere hi sì.
Allora cerchiamo di fare ls.
Non ho piu 'hi.
Così, quando si fanno, che è quando si prendere il programma che hai scritto
e si fa un file eseguibile.
Quindi, fare hi.c-- bene, fare ciao.
Credo che sia andato su questo in conferenza.
>> Si tratta di gruppo di istruzioni di compilazione.
Così, invece di dover effettivamente scrivere clang con tutti questi.
Queste sono le bandiere.
Devi solo scrivere fare.
Quindi questo rende i file eseguibili.
Così, quando si fa ls, ora avete hi.
Quindi questo è quello che stai andando a correre in realtà.
E così che si esegue facendo ./hi, e funziona il vostro programma.
Ma se provo a farlo con hi.c, no, non è andare a lavorare.
Sì, ha senso?
>> STUDENTE: Mm-hm.
>> JASON HIRSCHHORN: Freddo.
Aspetta, volevo dire un'altra cosa.
Basta reale veloce, nel caso in cui qualcuno è interessato,
quando si salta da una directory, è il punto punto.
Qualcuno ha un'idea di che cosa forse solo il mezzo di punti singolari?
STUDENTE: [incomprensibile].
JASON HIRSCHHORN: E ' in realtà la directory corrente.
Quindi è la directory corrente.
Quindi sono qui.
Sono in impressionante.
Se lo faccio cd punto, non fa nulla.
Mi prende al mio directory corrente.
Quindi un po 'ridondante, ma si ha per farlo, in modo ./ il tuo nome del programma,
al fine di eseguire il programma, è necessario farlo.
Ok.
>> STUDENTE: Se lo fai cd dot dot dot, tuttavia molti punti
sarà solo porterà fino che molte directory?
>> JASON HIRSCHHORN: Vuoi dire come cd dot dot dot dot?
STUDENTE: Sì.
JASON HIRSCHHORN: No.
Quindi, in realtà Ricorda ho ls -l?
Se faccio qualcosa di diverso, posso ls -a.
Quindi, cosa dice questo è -a mostra tutto ciò.
Così ti mostra le cose che sono nascosto e le cose che non sono nascoste.
Quindi, se si nota che quando l'ho fatto solo ls, ho appena visto quella roba,
le cose che ho fatto.
Se lo faccio -a, sta andando a mostrarmi tutto.
E così directory corrente, directory sopra di esso.
Questo fa senso?
Sì?
>> Studente: Ma quelli non sono effettivamente nella directory.
La directory corrente non è di per sé, quindi perché mostrare quelli con i puntini dentro?
>> JASON HIRSCHHORN: Vuoi dire che è come non è nella directory.
>> STUDENTE: Giusto.
Così abbiamo una lista di cose che si trovano nella directory.
>> JASON HIRSCHHORN: credo è nella directory.
Come -a mostra tutto, anche se è nascosto all'interno della directory.
Quindi penso che è solo un percorso per la directory corrente, se questo ha un senso.
E 'un po' ricorsivo.
E 'come Inception.
Cosa succede?
>> STUDENTE: Quindi lei ha detto mostra -a [incomprensibile]?
JASON HIRSCHHORN: -a, sì.
>> STUDENTE: Che cosa lo rende [incomprensibile]?
JASON HIRSCHHORN: Beh, per esempio, torniamo fino alla cima.
Di solito è roba che non dovrebbe pasticcio con e non c'è bisogno di preoccuparsi.
Quindi questo è una specie di casa.
Se lo faccio -a, ricevo tonnellate di roba.
Tutta quella roba.
E non c'è bisogno di pasticciare con qualsiasi di quella roba.
Sicuramente non cominciare ad andare qui e basta rimuovere roba.
>> [Risate]
>> Sì, questo era un po 'più roba comodo, ma è bene sapere.
Penso che sia bene sapere.
Ma se non si desidera digitare -a nell'interezza di questo corso,
solo dimenticare.
Cosa succede?
>> STUDENTE: qual è il ls -l?
JASON HIRSCHHORN: Che vi mostra i permessi.
In pratica si usa quella per le autorizzazioni, così -l.
Esso mostra un po ' po 'più di informazioni,
ma ancora una volta, questo è un po bit roba più comodo.
Questi sono solo i permessi.
Così i permessi delle cartelle.
Quindi, solo per esempio, diciamo che ho fatto un cartella, così d rappresenta directory.
Quindi, queste sono le directory.
E poi leggere, scrivere, eseguire.
Così quelli sono i permessi per Penso utente, gruppo, mondo.
Totalmente andare troppo lontano.
Hai intenzione di andare in questa come settimane da oggi, ma solo in modo da sapere,
quelli sono i permessi.
Cosa succede?
STUDENTE: si può eliminare, piuttosto che saltare alla prossima cosa, può you--
JASON HIRSCHHORN: Si media effettivamente eliminare?
Non lo so.
Non ho mai farlo.
Perché si vuole fare questo?
Perché l'hai fatto?
Mi piace.
Si vive sul bordo.
Sei come io non voglio niente di tutto questo.
Questo è intenso.
STUDENTE: [incomprensibile].
JASON HIRSCHHORN: Sì, possiamo farlo.
Siamo spiacenti, scherzi con la dimensione è totalmente me andando fuori di testa in questo momento.
Andiamo su.
Sì, così ora non posso salire più.
Quindi tutto quello che ho insegnato si è andato per sempre.
Grazie.
Abbiamo fatto le nostre directory.
Abbiamo fatto le nostre file e cose del genere che, quindi abbiamo ancora tutta quella roba.
OK, vado veloce.
>> Così reale veloce.
Quindi diciamo che io sono in impressionante.
Diciamo che ho voluto spostare tutto per la nuova directory
perché voglio solo di organizzare, giusto?
Così come dovrei farlo.
Sposta.
Stiamo andando a utilizzare di nuovo mossa.
Quindi spostare hi.c.
E che cosa si può fare è si inizia a quotazione roba,
e l'ultima cosa di avere una lista è dove sta andando per spostarlo.
Quindi spostare hi.c, hi newhi newhi.c, hi_dir.
E così è spostato tutto in l'ultima cosa che lei ha citato.
Allora cambiare directory, hi_dir ls.
Tutto è in là.
Quindi è bello e più organizzato.
>> OK, diciamo che odio il mio programma ciao originale.
Voglio sbarazzarsi di esso.
Come faccio a sbarazzarsi di esso?
Cosa succede?
>> STUDENTE: [incomprensibile].
JASON HIRSCHHORN: Diciamo che ho appena consiglia di rimuovere il programma, quindi basta hi.
No, hai ragione.
Quindi è rm, ma si fa rm hi.
E 'intenzione di darvi un piccolo avvertimento.
E 'intenzione di dire che sei sicuro di di voler eliminare questo, e sì lo faccio.
Se non si desidera la richiesta di conferma del genere
perché non si ha il tempo Per avvisi, rimuovere -f.
Questa è un'altra bandiera.
E 'come la -l.
E 'come la -a.
Questi sono solo flag che si sta dando a questi comandi.
Quindi rimuovere -f.
-f f significa forza.
Così forzarlo.
Io non voglio essere richiesto.
Quindi rimuovere -f.
Facciamo hi.c.
Appena è sbarazzato di esso.
Non me l'ha detto.
>> Ma diciamo che invece sono fatto con questa directory.
Voglio sbarazzarsi di directory.
Così mi tolgo hi_dir.
No, questo non funziona.
No, in modo da non lasciare che tolga una directory.
Qualcuno ha un'idea?
>> STUDENTE: E 'rimuovere dir?
JASON HIRSCHHORN: Quindi rimuovere in questo modo?
>> Studente: No.
Proprio il [incomprensibile].
JASON HIRSCHHORN: No, in questo momento non c'è hi.
C'è solo hi_dir.
Quindi questa è la directory.
Quindi, in realtà ciò che si vuole fare è-- oh, avete un'idea?
Vedo come una mezza mano.
>> STUDENTE: [incomprensibile].
JASON HIRSCHHORN: OK.
>> STUDENTE: [incomprensibile].
>> JASON HIRSCHHORN: OK.
Quindi, se voglio rimuovere una directory, rimuovere -r.
Questo è ricorsiva.
Quindi, rimuovere quella directory ricorsiva.
Quindi io voglio che tu vada in quella directory, rimuovere tutto ciò nella directory,
e poi sbarazzarsi della directory.
E poi ho intenzione di f così, perché io
non voglio che mi venga chiesto con avvisi dopo rimuove ogni singolo file.
Quindi rimuovere hi_dir -rf.
Boom, non c'è più.
Basta essere attenti a dove si usa quella.
Ho intenzione di usarlo anche qui. -rf impressionante.
E 'andato.
Fare attenzione a dove si usa quella.
Se si usa che qui e digita qualcosa in questo modo, non farlo mai.
Che cancellare tutto sul vostro apparecchio senza mai preavviso.
E l'ho fatto.
Problema di classificazione imposta alle 4:00 del mattino, ero cercando rimuovere problema directory impostate,
e ho fatto questo.
E io ero come oh mio dio.
Non fare-- ho cercato di cancellarlo.
È possibile annullare.
Comando C cancella proprio tutto, ma ho già eliminato come il 75%.
Così ho rovinato tutto.
E la gente lo fanno.
Ognuno fa questo.
Non fare questo, però questo semestre.
Fa schifo.
Sto nervoso averlo qui.
Ho intenzione di eliminarlo.
>> [Risate]
Potete immaginare?
OK, domande.
Sì?
>> STUDENTE: Quindi, se facciamo tutto che stai facendo qui, è questo lo stesso
come solo andando in realtà File Salva con nome [incomprensibile].
JASON HIRSCHHORN: Oh, vuoi dire con gedit.
STUDENTE: Sì.
JASON HIRSCHHORN: Sì, lo è.
gedit è utile.
Così gedit è molto utile.
In questa classe, si può fare un sacco di cose attraverso gedit.
È possibile salvare.
È possibile rinominare.
È possibile spostare file e cose del genere, ma proprio sinceramente quando si va a 50--
bene si è in 50-- 51, se si va in 61, questo sta andando essere la vostra vita.
Questa è la riga di comando.
Questo è dove si programmare per il resto della tua vita,
quindi sicuramente utilizzare gedit se vuoi.
Sicuramente un buon modo per iniziare.
Per il primo problema si pone, sicuramente utilizzare, ma ogni tanto un po '
cercare di ottenere più abituati più a suo agio con gli argomenti della riga di comando.
Ma è possibile, sicuramente.
Cosa succede?
>> STUDENTE: Quindi quando vogliamo eliminare uno dei file che abbiamo fatto,
ci sono due modi. [Incomprensibile].
C'è un modo quando si è eliminazione di una directory
per chiedere una rapida in modo da non finire per eliminarlo?
JASON HIRSCHHORN: rm -r.
Quindi non forzarlo.
Così rm -r.
E 'intenzione di passare in modo ricorsivo, eliminare tutto, richiederà
dopo tutto, che ti farti impazzire.
Come ho quasi esclusivamente faccio rm -rf rm -f e, appena costantemente.
Sono come se non ho tempo.
Sono un uomo impegnato.
Va bene, che cosa succede?
Sì.
>> STUDENTE: C'è un annullamento, o di un cestino, o qualcosa di simile?
JASON HIRSCHHORN: No.
[Risate]
Potrei tornare indietro e ottenere il mio apparecchio che ho appena cancellato, no.
No, no, no.
Se lo fai rm, dovrebbe essere sparito.
Cosa succede?
>> STUDENTE: Così si può [Incomprensibile] insieme.
JASON HIRSCHHORN: Sì, proprio così.
Così, per esempio, hai visto la rm -rf.
Diciamo che voglio fare ls -la, mi mostra
tutto, anche nascosto le cose con i loro permessi.
>> STUDENTE: Allora r, -r bandiera, se non abbiamo che,
non siamo in grado di eliminare una directory, giusto?
>> JASON HIRSCHHORN: Giusto.
>> STUDENTE: Allora che dice che vogliamo di fare qualcosa con la directory?
E 'questo che cosa significa?
>> JASON HIRSCHHORN: -r significa in modo ricorsivo.
Così una directory sta per avere i file in esso, giusto?
Allora, cosa si vuole fare è che si vuole andare in quella directory,
eliminare tutto, tutte le file in quella directory,
poi saltar fuori e cancellare la directory attuale.
Così il -r significa ricorsiva, farlo tutto in modo ricorsivo se questo ha un senso.
Sì.
>> STUDENTE: Quindi directory hanno [Incomprensibile] e sufficiente eliminarlo.
Oppure still--
>> JASON HIRSCHHORN: Proviamo.
Così mkdir vuota.
Rimuovere vuoto.
No.
>> STUDENTE: No, quindi è ancora necessario the--
>> JASON HIRSCHHORN: Sì, sempre.
Così -r, rf, vuoto.
Impressionante.
Anymore domande?
Credo che questo sia il tuo incidente corso on line di comando roba.
Tutte le domande, perché stiamo andando a salta verso tipi di dati, e loop,
e tutta quella roba?
Cosa succede?
>> STUDENTE: non ho CS50 che mostra come uno dei miei directory.
È normale?
>> JASON HIRSCHHORN: Oh, sì.
Questo è il mio.
Sì, è lì che il mio soluzioni per la tua roba è.
>> [Risate]
>> Quindi sì, questo è assolutamente normale.
Penso che probabilmente vi basta avere questi quattro.
Penso che potrebbe essere normale.
Sì.
OK, altre domande?
So che è stato super veloce.
Cosa succede?
>> STUDENTE: ho visto il colore verde blu.
Che cos'è?
>> JASON HIRSCHHORN: Ciò significa directory.
STUDENTE: E questo blu?
>> JASON HIRSCHHORN: Oh, vuoi dire questo verde blu?
>> Studente: No.
>> JASON HIRSCHHORN: Questo verde blu?
>> Studente: No.
Quando si listed--
JASON HIRSCHHORN: Oh.
Come questo?
>> STUDENTE: Sì, le icone.
>> JASON HIRSCHHORN: Oh, questo.
Non lo so.
Che cosa significa?
Così sembra essere che punta a una directory.
>> STUDENTE: Sembra quasi un alias.
>> JASON HIRSCHHORN: Potrebbe essere.
Non hai bisogno di sapere che.
Anymore domande?
Impressionante.
Se avete domande, So che era un sacco.
Molte di queste informazioni sarà online.
La metterò on-line per voi ragazzi.
Sezione B sarà anche online.
Oppure, se avete domande, appena arrivato e mi chiedono.
Ecco qui.
Così ora Sharon e Hannah andrà oltre alcuni
della logica problema impostare uno.
>> SHARON: Oh mio Dio.
Troubles.
>> HANNAH: Nel frattempo, io sono Hanna.
Si tratta di Sharon.
Siamo entrambi CS50 TF, e stiamo per darvi
un po 'intro su un paio importante cose per impostare un problema.
Tutto da tipi di dati di condizionali per i cicli for.
Loops in generale.
>> SHARON: E alla fine, ci sarà dare un'occhiata a P impostato uno,
e quello che hai da sapere per esso.
Quindi cominciamo con i tipi di dati.
Voi ragazzi dovreste avere familiarità con il quelli che sono evidenziati in blu.
Così possiamo iniziare con int.
interi sono numeri interi, così uno, due, tre, quattro. galleggianti, galleggiante punti.
Come interi con decimali, così 5.2 o addirittura 5.0.
Caratteri sono personaggi come A, B, C. E una stringa, voi ragazzi tutti conosciamo.
Come CS50 o ciao e mondo.
>> Bool è un valore booleano, quindi abbiamo vero e falso come il nostro booleano.
Quindi, se qualcosa calcola a truth-- 5 è uguale a 5, che calcola su true,
e se abbiamo 5 è uguale a 4, che è falso, in modo che calcola su false.
E qui abbiamo l'associato dimensioni di tutti questi tipi di dati.
E si dovrà sapere questo per i vostri quiz,
quindi questo potrebbe essere utile per ricordiamo, ma postiamo questi.
In realtà stanno già pubblicati.
Così si dovrebbe avere familiarità con quelli evidenziati in blu.
>> JASON HIRSCHHORN: reale veloce, nel caso in cui
vogliono sapere la differenza tra un char e una stringa.
Così, quando si sta scrivendo roba, ogni volta che avete qualcosa come "ciao,"
che sta per essere una stringa.
Quindi, se ci sono due citazioni, è una stringa.
Ma se dovessi una "h" così, questa è una stringa.
Ma se ho solo una citazione, che è un char.
E quindi qual è il differenza si potrebbe chiedere.
Ebbene, la differenza è questo è un byte di memoria.
Questo è 4 byte di memoria.
>> SHARON: float?
Descrivere di nuovo?
OK, è un po 'come un numero che ha un punto decimale con esso,
così 5.2 o anche 5.0 è un galleggiante contro solo 5 è un int.
STUDENTE: [incomprensibile].
>> SHARON: Oh, può avere molti punti decimali, così 5,675-3,1415.
Sì?
>> STUDENTE: abbiamo bisogno di sapere tutte le dimensioni di questo?
SHARON: Sì.
STUDENTE: [incomprensibile].
>> SHARON: Tu non ti preoccupare quelle bianche appena ancora.
>> HANNAH: Le note sono pubblicato su CS50.net/sections.
STUDENTE: Appena fuori curiosità, c'è un programma di utilità
a conoscere la dimensione dei file che si stanno chiamando così che dovremmo conoscere?
>> SHARON: Quindi questi sono i tipi di dati, ma sì.
Quindi in questo caso, quale sarebbe occupano più memoria o più spazio?
>> JASON HIRSCHHORN: Così un esempio concreto,
Credo che in set problema quattro o cinque, siamo
andando per darvi un gruppo di dati, e che, fondamentalmente,
devono attraversare tali dati.
Quindi è utile sapere che se si dispone di così tanti numeri interi,
che sta per essere quello.
Quindi diciamo che ti ho dato dieci numeri interi, qual è la dimensione di tale?
STUDENTE: 40.
JASON HIRSCHHORN: 40 byte, a destra.
Quindi potrebbe essere necessario sapere che OK, ho bisogno di saltare 40 byte.
Quindi diciamo che invece è di 40 caratteri, then-- diciamo che ti ho dato 10 caratteri,
poi si sa, OK, ho solo bisogno di saltare 10 byte.
Quindi è molto utile conoscere il dimensione dei tipi di dati reali,
perché molte volte avrete da saltare i dati,
quindi è necessario sapere quanto per saltare.
>> STUDENTE: Qual è la differenza tra le virgolette e un preventivo?
>> JASON HIRSCHHORN: OK, due apici è una stringa.
Una citazione è un char.
>> STUDENTE: Come operativamente, qual è la differenza?
Entrambi dicono ciao.
JASON HIRSCHHORN: Oh, mi dispiace.
Questo è solo h.
Siamo spiacenti, questo non è chiaro.
>> STUDENTE: Quindi la parte superiore tra--
JASON HIRSCHHORN: questo è una stringa, sì.
Quindi si tratta di due personaggi, giusto?
String, ciao.
Ma diciamo che ho appena ha avuto un singolo carattere,
se ho messo due virgolette solo h, che è una stringa.
Questa è una stringa h.
Questo fa senso?
Quindi questo è di quattro byte.
Ma diciamo che mi sono liberato di che un solo mettere uno.
Un preventivo.
Questo è ormai un char, un char h.
Quindi, esattamente la stessa cosa, tipo di dati diverso.
Questo è solo un byte, mentre la stringa era di quattro byte.
Sì.
STUDENTE: Quindi, se stavi cercando per memorizzare una parola come David,
si vorrebbe utilizzare una stringa, perché indipendentemente da quanto tempo la stringa è,
ci vorranno solo quattro byte a meno che non si tratta di una lunga lunga
o doppio, in cui case-- quindi se si estende al di là di quattro caratteri, quindi
si vuole fare in stringa.
È che la logica generale dietro.
JASON HIRSCHHORN: Se si estende al di là di un carattere, si tratta di una stringa.
>> STUDENTE: Quindi non c'è [incomprensibile] per la memorizzazione di un quattro lettere
parola come quattro singoli o tre lettere parola come tre singoli caratteri
perché questo sarà solo tre byte, rispetto alla stringa tre parti.
JASON HIRSCHHORN: Si potrebbe farlo.
Si potrebbe farlo, ma non lo faccio credo che sia davvero la pena,
perché si sta salvando un solo byte.
Tu sai cosa sto dicendo?
Nel grande schema delle cose, questo non importa.
Ma per esempio, printf, se si sta stampando f e
avere tre caratteri che è possibile stampare che fuori-- diciamo che C-A-T,
è possibile stampare gatto semplicemente facendo un char un carattere un carattere,
o è possibile stampare stringa di cat.
E 'la stessa identica cosa.
Così si potrebbe fare così, ma--
>> STUDENTE: Non sta andando a risparmiare più di tanto.
>> JASON HIRSCHHORN: Sì.
Il mal di testa che sarebbe indurre non vale la pena.
Sì?
>> STUDENTE: Per esempio, hai avuto la h con una sola
contro due, le virgolette singole o doppie.
Perché si vuole salvare una singola lettera come stringa.
Che fine fa che mai servono?
JASON HIRSCHHORN: Non lo so.
Voglio dire, è davvero dipende dal programma.
Per esempio, penso che più avanti si otterrà in linea di comando roba.
Così, per esempio, invece di me si chiede una dispiace integer--,
posso parlare in te?
HANNAH: Sì.
>> JASON HIRSCHHORN: Così ad esempio, invece
di chiedermi qualcosa con fine get, che
Penso che si potrebbe avere visto una lezione, ci potrebbe essere una riga di comando.
Basta digitare nella nella riga di comando.
Sarebbe come - / hello4 o qualcosa, o helloh h, a prescindere.
Lo fai dalla riga di comando invece di essere chiesto,
che la riga di comando è sempre un stringa, che si tratti di un quattro o un h,
che è sempre una stringa.
Ecco, questo è un esempio di quando si potrebbe avere una lettera singolare o un singolare
numero rappresentato come una stringa.
SHARON: Va bene.
E poi qui ci sono alcuni operatori di base.
Speriamo che si ha familiarità con le prime quattro solo in generale.
Quindi c'è l'aggiunta, sottrazione, moltiplicando e dividendo,
e assicurarsi di utilizzare le sequenze di tasti giusti.
>> E poi c'è anche modulo, che un po ' di voi potrebbe non essere molto familiare.
E ciò modulo fa è che se prendiamo questo esempio 4% 2,
prende la restante cosa che fa nella divisione.
Quindi 4 diviso 2 è 2, e non c'è resto.
4 dividere per 3 a 1 e 1/3, e così resto 1.
Quindi calcola a uno.
E poi 4% 5 è la frazione 4/5, e il resto è 4.
Questo fa senso?
OK, fresco.
E seguiamo PEMDAS anche qui.
>> Così alcune espressioni booleane.
Quindi voi ragazzi hanno visto Uguale uguale per confrontare, per esempio, due numeri.
Quindi, se è uguale a 5 è uguale a 5, che calcola su true.
Assicurarsi di avere un solo segno di uguale.
Per non uguali, è battere o esclamativo.
>> HANNAH: due segni di uguale quando fate l'uguaglianza.
>> SHARON: Oh, sì.
Assicurati di non fare avere un segno di uguale.
E poi per non uguali, è uguale a scoppio.
E allora si può guardare attraverso per meno di, maggiore di.
E poi abbiamo logico e e logico o proprio qui.
E ciò che fa è, se Vi ricordate in Scratch
quando hai avuto quel blocco Detto questo e, e poi si
potrebbe andare bene due pezzi diversi c'è, che è ciò che questo e fa.
E assicuratevi di fare due e commerciali.
E questa chiave è possibile trovare verso la a destra, proprio sotto il pulsante Elimina.
Domanda?
>> STUDENTE: Qual è stato il [incomprensibile]?
>> SHARON: OK, quindi se solo si fa uno, si sta confrontando bit.
Quindi, se vi ricordate che cosa bit sono, sono 0 e 1 di, e così
che è il confronto qualcos'altro.
Quindi stiamo andando a concentrarsi su questo per ora.
>> JASON HIRSCHHORN: Così si è uguale è come assegnazione, giusto?
Così come int x è uguale a 4.
Stai dicendo che la variabile x è uguale a 4.
Quindi è uguale a 1 è l'assegnazione, ma i ands ei tubi
o bar, proprio come Sharon detto, sono operatori bit a bit.
Non è necessario preoccuparsi di questo.
>> STUDENTE: Quando utilizzare logico ed e logico o di nuovo?
Ho solo dimenticato quando fai così.
>> HANNAH: Certo, quindi se vi capitasse di voler per verificare se due cose sono vere,
per esempio, diciamo che voglio controllare che un numero è compreso tra 5 e 15,
Direi assicurarsi che il numero è maggiore di 5.
Quindi diciamo che se x è maggiore di 5 e meno di 15.
Quindi, al fine di tale complesso dichiarazione di valutare al vero,
è necessario sia il tipo di sub dichiarazioni di valutare il vero.
Con o è sufficiente uno dei due o entrambi.
STUDENTE: Grande, grazie.
>> SHARON: E anche in Scratch, sono sicuro che in molti dei vostri progetti
se hai avuto di toccare il bordo o se toccare un altro sprite poi rimbalzare
o qualcosa del genere.
HANNAH: Va bene, allora perché dobbiamo cura di tutti questi booleani?
Abbiamo queste strutture che hai visto in Scratch chiamato condizionali.
E condizionali sono qualche cosa del formare se qualche condizione o qualche booleana
è vero, poi fare il codice tra queste parentesi graffe.
Così si può vedere sulla destra qui è il blocco Scratch.
Hai questo se poi, e tutto ciò che va in quella piccola forma che
sembra questo-- i non so quello che ci si
chiamare che-- che sta per essere il booleano o condizione.
>> Quindi, di nuovo, un valore booleano o condizione è nulla
che o valutare true o false.
E ancora, è possibile combinare booleani.
Si può avere, ancora una volta, x è maggiore di 5 e x è inferiore a 15.
Oppure si può semplicemente avere uno di tali x è minore di 5.
>> OK, quindi in C E 'sulla sinistra.
E 'solo la parola chiave se.
Tra parentesi, il condizione o la booleana.
E poi il codice tra queste due parentesi graffe
sarà solo eseguire, verrà eseguito solo se tale condizione o che booleano è vero.
Questo fa senso?
Impressionante.
Ok.
E poi come si può hanno visto in Scratch,
si può anche aggiungere in un altro, che è fondamentalmente
nulla tra il parentesi graffe sotto altro
sarà eseguito solo se la condizione è falsa.
Dare un senso?
Tutte le domande su questi due?
Impressionante.
>> Freddo.
Quindi, ecco un esempio veloce.
Diciamo che vogliamo determinare, in base al tempo,
se dobbiamo dire addio mattina o buona sera.
Dirò se è prima delle ore 12:00, stiamo andando a dire buongiorno,
altrimenti stiamo andando dire buona sera.
E quando ho detto che in caso contrario, che è equivalente in C per questo altro.
Quindi stiamo andando a verificare se il tempo militare è inferiore a 12:00,
dire buongiorno.
In caso contrario, dire buona sera.
>> STUDENTE: Quindi avremmo realmente ottenere che l'ingresso per il tempo militare con la stringa GET.
HANNAH: Giusto.
Ha fatto qualche altra parte ci aveva in realtà devono fornire tali informazioni.
Proprio qui non ha alcun valore.
Non abbiamo mai nemmeno dichiarato.
Presumo che da qualche parte sopra questo programma che ho dichiarato il tempo,
o ha chiesto il tempo, o- qualsiasi altra cosa con questo esempio?
Impressionante.
>> OK, ora abbiamo oltre a quella semplice se il formato altro,
abbiamo altre due strutture differenti.
Quindi, prima abbiamo l'interruttore dichiarazione, ed ecco
la forma generale di un'istruzione switch.
Avete la parola chiave commutare la Allo stesso modo si ha la parola chiave se.
E poi un ingresso, in questo caso n.
Quindi questo può funzionare solo con numeri interi.
Così che l'ingresso n ha ad essere un numero intero, OK?
E stiamo andando a seguire uno di questi casi
a seconda di ciò che il valore n è.
>> Quindi, in questo caso, in primo luogo confrontare n è uguale a una costante,
se lo è, fare tutto tipo di frastagliata qui.
Posso indicare perché sono troppo breve.
Se non è uguale a una costante ed è invece pari a due costanti,
stiamo andando a seguire che secondo blocco, e siamo in grado di fare questo per il numero di volte
come vogliamo, e poi che di default è se esso non corrisponde nessuno dei casi di cui sopra,
esecuzione di tale codice.
Tutte le domande qui?
Questo è un po 'più complicato.
Sì?
>> STUDENTE: Pausa significare che cosa?
>> HANNAH: Certo, così una volta si entra quel blocco, se troviamo, diciamo,
il n è infatti pari a una costante, entriamo in quel blocco dopo i due punti.
Facciamo tutto ciò che è in quella linea di commentare,
e poi noi spezziamo, cioè usciamo di questo switch del tutto.
STUDENTE: OK.
>> HANNAH: Mm-hm?
>> STUDENTE: E 'il rientro necessario, o avete bisogno di [incomprensibile]?
HANNAH: Certo.
Quindi, come sempre, il rientro non è strettamente necessario.
Il computer non lo fa importa se si rientra.
Noi, come le persone che sono leggere il tuo codice, fare attenzione.
Quindi è molto più facile da guardare in alto lo schermo
e vedo, oh, so esattamente cosa succede quando n è uguale a una costante.
Se avessi trattini casuali, ho non sarebbe in grado di dire così facilmente.
Sì?
>> STUDENTE: Quindi, se voleva un utente scegliere una delle opzioni che
abbiamo sulla lista, sarebbe usiamo, credo, [incomprensibile],
ma ottenere un numero intero da li e inserirla nel n?
HANNAH: Esattamente.
Quindi diciamo che abbiamo voluto controllare che cosa intero.
Abbiamo detto oh, immettere un numero intero tra 0 e 5, diciamo.
Potremmo chiedere che n, per chiedere tale valore,
e poi ciascuno di tali casi.
E ancora una volta, questo è qualcosa che potrebbe molto facilmente fare con istruzioni if,
giusto?
Avremmo potuto avere se uguali a caso uno, se uguale al caso due,
se uguale al caso tre, così via e così via.
Questo è un po 'più veloce e un po 'più pulita.
È un po 'solo una bella struttura di ora.
STUDENTE: veloce come iscritto?
Oppure correre il computer di un po 'più veloce?
>> HANNAH: E 'eseguito un po' più veloce.
Sì?
>> STUDENTE: Quindi il doppio trattino è solo un commento o-
>> HANNAH: Oh, mi dispiace.
Non ho fatto notare.
OK, se si dispone di che //, è un commento.
Basta // è un commento.
Così ogni volta che il computer vede che, sta andando
per dire OK, qualsiasi cosa che segue questo, sto solo andando a ignorare.
Ho intenzione di far finta di mai nemmeno scritto che.
>> STUDENTE: Quindi questo [incomprensibile].
>> HANNAH: Questo non fa assolutamente nulla.
Ma se ho scritto qualcosa di simile sul primo commento che ho scritto invece printf
dire complimenti che hai inserito una costante, che sarebbe qualcosa.
Sì?
>> STUDENTE: Quindi, nella vita reale, la caso sarebbe semplicemente essere un numero
e poi [incomprensibile] sarebbe un altro numero intero.
>> HANNAH: Esattamente.
>> STUDENTE: E cosa hai bisogno i puntini di sospensione?
>> HANNAH: Ci dispiace?
>> STUDENTE: Avete bisogno di questo?
>> HANNAH: Oh, no.
Mi dispiace.
Questo era solo per indicare che è possibile proseguire per il maggior numero di casi, come si desidera.
Facciamo un esempio concreto che potrebbe rendere le cose un po 'più chiara.
OK, allora diciamo che io dico, OK, dammi un numero intero n
che rappresenta un numero di classe, specificamente una classe di informatica
numero.
Quindi, se mi dai 50, Sto per dire grande.
CS50 è una introduzione al calcolatore la scienza, e poi ho intenzione di rompere.
Quindi significa che io salto fuori questa affermazione tutta interruttore,
così ora ho finito l'esecuzione del codice, OK?
>> Se mi hai dato invece 51, mi piacerebbe stampare la seconda istruzione.
E poi se mi ha dato un po ' numero che non era 50 o 51,
Ho intenzione di chiedere scusa, io sono non hanno familiarità con quella classe.
Sì?
>> STUDENTE: Non si dispone di pausa.
>> HANNAH: Mi dispiace, non ho pausa?
>> STUDENTE: Che cosa succede se.
>> HANNAH: Oh, che cosa succede se non si dispone di pausa?
Ottima domanda.
Quindi, che cosa accadrebbe viene si va in, e si dovrebbe controllare sono io uguale a 50?
E diciamo, sì, eri uguale a 50, che ci si stampare la dichiarazione.
E allora si potrebbe continuare l'esecuzione, quindi si dovrebbe dire sono io pari al 51?
E si dovrebbe andare avanti e andare attraverso tutti i casi del genere?
Sì?
>> STUDENTE: E 'la linea di default analogo a dire altro?
HANNAH: Esattamente.
Molto buona.
E 'come il tipo di cattura tutti.
>> STUDENTE: Quindi, se non hai avuto pausa e poi una delle istruzioni case
era vero, e poi detto aumento di n da 1,
allora sarebbe automaticamente rendere il successivo.
Sarebbe verificare caso 51, e quindi visualizzare anche quello?
HANNAH: Sì, penso che avrebbe funzionato.
Così si potrebbe tipo di ottenere disordinato, così una pausa è una buona cosa avere.
Sì?
STUDENTE: Senza rottura avrebbe fatto il default?
HANNAH: Questa è una buona domanda.
JASON HIRSCHHORN: Penso che sia eseguito solo.
Quindi, se non si dispone di break-- così diciamo che ho fatto 50 ed è controllato 50,
e sarebbe la stampa che fuori.
Stampare CS50 come introduzione all'informatica.
Non devi rompere, dovrebbe andare e andare avanti fino a quando non colpisce una pausa.
Quindi, se non c'è nessuna rottura, che sta per andare avanti.
Sta andando a stampare tutto il resto fuori.
>> HANNAH: Quindi credo che sarebbe essere compreso il valore di default.
>> JASON HIRSCHHORN: Sì.
>> HANNAH: Bella domanda.
Sì?
STUDENTE: E 'caso considerata una funzione?
HANNAH: Mi dispiace?
STUDENTE: E 'caso considerata una funzione?
HANNAH: è caso considerata una funzione.
Io esiterei a dire che.
>> JASON HIRSCHHORN: così normalmente quando si vede funzioni
essi saranno tra parentesi graffe.
Così, per esempio, quando si guarda al vostro codice, ad esempio, principale.
Era principali paren aperti, poi vuoto, vicino paren.
Functions-- sono fondamentalmente sempre vedrai parentesi.
Quindi, caso in cui caso non lo fa Per qualsiasi parentesi,
questo è il segnale che che non è una funzione.
Ma non lo è.
Sì?
>> STUDENTE: Allora fa che fare passare una funzione?
>> HANNAH: Ritiene che marche attivare una funzione.
>> STUDENTE: Nel senso che si mette qualcosa in,
ti dà uno dei casi.
JASON HIRSCHHORN: I Non la chiamerei una funzione.
Non tutto con parentesi è una funzione.
Voglio dire che è un indizio che è una funzione.
Non direi che è un interruttore funzione perché non è davvero
ritorno nulla.
Otterrete in quella più.
>> HANNAH: Sì, basti pensare di esso come se la struttura.
STUDENTE: Riesci a nido questo in un caso la struttura?
HANNAH: Sì, nido praticamente qualsiasi cosa.
>> STUDENTE: Barry ha detto che le citazioni sono un po 'come la stessa cosa.
Quindi, è possibile sostituire le virgolette con gli altri?
>> HANNAH: Non in questo particolare struttura, poiché l'interruttore
dichiarazione si aspetta la parola di default.
Il computer sa che di default significa qualcosa di speciale, che
si intende la cattura tutti.
Tutto il resto su questo.
Abbiamo un altro per ottenere attraverso.
Sì?
>> STUDENTE: [incomprensibile].
HANNAH: Differenza tra con un punto e virgola e due punti.
Quindi un punto e virgola è sempre quello di raccontare la del computer mi sono fatto con questa linea.
Si può andare avanti ed eseguirlo.
Questa è una linea completa.
Un colon sta andando, in questo caso, si mettono in un blocco particolare.
Quindi, il punto e virgola sono utilizzare sempre per linee fine.
I due punti sono utilizzati per una varietà di altri casi.
>> Studente: E 'questo equivale a solo che se n è uguale a 50, allora
bla bla bla.
HANNAH: Mm-hm.
STUDENTE: E 'la stessa cosa [incomprensibile].
HANNAH: Esattamente.
E noi abbiamo detto si corre un po 'più veloce.
Se non avessimo la pausa, sarebbe come se, se, se.
Se abbiamo la pausa, è come se else if else if else if.
Cool?
>> JASON HIRSCHHORN: Così, quando codifica, si può semplicemente utilizzare if else,
ma credo che l'anno scorso abbiamo sul quiz avevano a scrivere un'istruzione switch,
così per ogni evenienza.
HANNAH: Ma sicuramente niente di male.
Non vi aspettate di cui preoccuparsi sulle prestazioni cose folli.
Solo se il resto è del tutto bene.
Questi sono solo buoni cose di essere a conoscenza.
>> Ed ecco la nostra ultima che tipo di rientra in questa categoria condizionale.
Abbiamo qualcosa del condizioni generali forma?,
e poi un piccolo pezzo di codice che succede se la condizione è vera.
E poi colon, un po ' pezzo di codice che
esegue se la condizione è falso, punto e virgola.
Abbiamo finito con quella linea.
Quindi sintatticamente è un po 'brutto.
Stiamo per passare attraverso un esempio Penso che sia più chiaro.
Quindi vogliamo assegnare il professore di stringa
ad uno di questi due valori, sia David Malan o no David Malan, OK?
Quindi, è necessario avere familiarità con la stringa, professore =.
Stiamo per assegnare una stringa al professore variabile chiamata.
>> Ora vogliamo verificare un particolare condizione.
In questo caso, la nostra condizione è class_num = = 50.
E ora potrebbe essere un buon momento per sottolineare
quando abbiamo professore stringa =, Che è un segno di uguale.
E 'assegnazione.
Considerando che, class_num = = 50, che sono due segni di uguale.
Questo è un controllo di qualità.
Quindi stiamo andando a dire è il numero di classe pari a 50?
Se è così, assegnare il professor David Malan.
In caso contrario, assegnare professore per non David Malan.
Tutte le domande lì?
Ancora una volta, questo è solo qualcosa che è bene sapere.
Si potrebbe fare questo con if else.
Un problema di buona pratica potrebbe essere quello di, quando
si va a casa, proprio la stessa identica condizionale in una forma, se altra cosa,
perché si può fare.
Tutte le domande qui?
Va bene, penso che siamo intenzione di andare a loop.
Impressionante.
>> SHARON: OK, parliamo circa mentre loop.
Quindi, prima a sinistra si vede qui-- OK che dice mentre, while (condizione).
E poi si fa questo-- possiamo cambiare questo?
>> JASON HIRSCHHORN: E 'tagliato fuori.
>> SHARON: OK, e poi ci sono anche le parentesi graffe.
Così fingere che ricci bretelle sono lì sopra
e sotto il farlo ancora e ancora.
Quindi, se la condizione in quelli parentesi restituisce true,
allora si dovrebbe continuare a fare qualunque sia nel ciclo while.
>> Così, per esempio, abbiamo potuto fare un problema di pratica.
Sto indossando due orecchini in questo momento, quindi diciamo
se sto indossando almeno un udito, battere le mani.
Quindi, se abbiamo intenzione di andare attraverso questo, stiamo going--
>> [APPLAUSO]
>> Giusto?
E sto indossando uno, e- OK.
Sì.
Non sto indossando orecchini più, quindi non più.
OK, in modo poi che quando si ha l'arresto.
E questo si può dire è equivalente a quasi variabili.
Diciamo che avete un numero variabile di orecchini.
Così, mentre il numero di orecchini è maggiore o uguale a 1, battere le mani.
E poi, dopo applauso mani, orecchini decremento.
Fate come orecchini meno 1.
Quindi diminuire il numero di orecchini, e poi si passerà attraverso il ciclo while
due volte.
>> E se la condizione è sempre true-- quindi se, diciamo, 2 = = 2,
e 2 è sempre uguale a 2, giusto?
Poi si farebbe sempre fare qualcosa in là,
e che è pari a quasi il sempre ciclo che abbiamo avuto in Scratch.
Sì?
>> STUDENTE: Sono le due parti solo diversi modi di scrivere un ciclo while?
>> SHARON: Così ci siamo concentrati su questo primo.
E poi così confrontiamo con un do while.
Quindi sono un po 'diverso.
OK, allora diciamo che la condizione è ancora mentre sto indossando almeno un orecchino,
e non sto indossando eventuali orecchini in questo momento.
E diciamo fare e ancora battere le mani mentre Sto indossando almeno un orecchino.
Che cosa dovrebbe accadere?
>> [CLAPS]
>> Uh oh, ragazzi.
OK, quindi si suppone a battere le mani una volta perché in fondo si
passare attraverso la prima parte del codice.
Lo si fa non importa cosa, e poi si vede la condizione, mentre,
e si torna in che ciclo se è vero.
Fa questo ha un senso?
>> STUDENTE: Hai sempre farlo la prima volta.
SHARON: Hai sempre farlo nel prima volta indipendentemente dal fatto
o no che la condizione sia vera o no.
JASON HIRSCHHORN: Quando fare si pensa che si potrebbe usare questo?
Quando ha senso usare questo?
HANNAH: Sì?
STUDENTE: [incomprensibile].
JASON HIRSCHHORN: Giusto.
HANNAH: Molto bene.
JASON HIRSCHHORN: Così quando ti chiede un utente,
si sta andando a voler sempre per richiedere all'utente una sola volta.
Stai sempre andando a voler per richiedere all'utente una sola volta.
Così, invece di mettere in un ciclo while, si
mettere in ciclo Do While, perché sei sempre intenzione di farlo una sola volta.
Se il danno risposta corretta, il gioco è fatto.
Se non lo fanno, poi si ri-prompt.
>> SHARON: Va bene, cicli for.
Quindi, in Scratch, abbiamo avuto blocchi di ripetizione.
Così abbiamo voluto ripetere qualcosa, diciamo, sette volte.
Così abbiamo appena detto ripetere sette, e dico che sono qui per aiutarvi a Biancaneve!
In C, abbiamo cicli for se vuole passare attraverso qualcosa
un certo numero di volte.
Diciamo che se si inizializza i nani variabili
e rendere sure-- così il primo blocco proprio lì prima del primo punto e virgola,
inizializziamo la nostra variabile a, e lo impostiamo a 0.
E la nostra variabile non è un numero intero, int.
E il nome della variabile è nani, e abbiamo fissato nani a 0.
>> E la seconda parte tra la due punti e virgola è la nostra condizione.
E così il più a lungo nani è meno di sette,
vi terremo passare attraverso questo ciclo for.
E poi l'ultima parte è quello che fanno facciamo alla fine di questo ciclo for?
nani ++, e questo significa che incrementare nani di uno ogni volta.
>> Così che cosa sta per accadere qui?
Quindi, prima abbiamo intenzione di passare attraverso.
Abbiamo nani come 0, e poi stiamo andando
stampare Sono qui per aiutare Biancaneve!
E poi nani sta per aumentare perché abbiamo detto nani ++.
Nani sta per essere 1.
E poi abbiamo compare-- nani è 1.
Confrontiamo per nani è inferiore a 7?
Sì.
Ho intenzione di passare attraverso questo nuovo.
Sono qui per aiutarvi a Biancaneve!
E poi nani diventa 2, e poi lo confrontiamo.
2 è inferiore a 7?
Sì.
Abbiamo intenzione di andare avanti con.
E stiamo per andare attraverso questo sette volte.
>> Così, alla fine, che andremo a avere nani = 0 stampare sono
qui per aiutarvi a Biancaneve!
nani uguale a 1, 2, 3, 4, 5 e 6.
Ricordate che l'indice a 0.
Quindi si parte con 0.
Sì?
>> STUDENTE: Quindi questo è diverso dal do
perché questa non stampa inizialmente in un primo momento.
Così si potrebbe continuare la stessa cosa.
Potresti farlo anche con il ciclo do?
Come lo stesso processo.
La condizione è nani meno di 7 o qualsiasi altra cosa.
La risposta è inferiore a 7.
SHARON: così si potrebbe tecnicamente.
Quindi, se torniamo a-- vostro parlare circa il ciclo while, giusto?
Così il ciclo Do While è un po 'diverso
perché garantiamo almeno una volta che andremo attraverso di essa,
così che è la più grande differenza.
Ma con il ciclo while abbiamo potuto dire mentre nani è inferiore a 7,
fare questo, e poi incrementare nani per uno.
E poi dobbiamo inizializzare nani prima di tutto questa affermazione
che è uguale a 0.
Quindi sì, si potrebbe fare con questo.
Mm-hm?
>> STUDENTE: Si può tornare a [incomprensibile]?
SHARON: ciclo For?
STUDENTE: Sì, così con i nani ++, Sembra che questo è ciò che si fa dopo
hai eseguito altri mezzi.
SHARON: Corretto.
STUDENTE: Potresti non hanno che e mettere it--
SHARON: Si potrebbe.
STUDENTE: Quindi è [incomprensibile] subito dopo stampare nella riga successiva sotto.
SHARON: Sì, si potrebbe mettere lì.
Ma allora si farebbe lasciare che vuoto.
>> JASON HIRSCHHORN: Hai ancora bisogno del punto e virgola però.
>> SHARON: Sembra un po 'imbarazzante, ma si potrebbe tecnicamente farlo.
Tecnicamente.
Si prega di non fare.
Sì?
>> STUDENTE: Ci sono alternative alla ++?
C'è qualcos'altro che [incomprensibile]?
>> SHARON: Tecnicamente si tratta di nani.
Un segno di uguale stiamo andando per impostarlo su nani più 1.
Quindi, tecnicamente questo è cosa nani ++ mezzi.
Questo fa senso?
>> STUDENTE: Sì, ma sono Ci sono delle alternative?
Come se si ever--
>> SHARON: Sì, si poteva fare nani - -.
>> STUDENTE: [incomprensibile].
>> SHARON: Sì, si potrebbe fare una serie di cose.
HANNAH: E si potrebbe incrementare del 2.
Si potrebbe incrementare del 3.
Tutto ciò che sta succedendo stia cambiando, finirà per rendere la condizione.
>> STUDENTE: Quindi, se si voleva incrementare da 2, come è possibile scrivere che?
>> HANNAH: Si potrebbe o scrivere dwarves-- si potrebbe scrivere tutta questa cosa.
nani nani = + 2.
O un po 'stenografia.
Sto solo andando a dare + è uguale a 2.
>> STUDENTE: OK, e che ci si scrive che proprio dove nani ++ è lì.
HANNAH: Esattamente.
SHARON: Corretto.
C'era un'altra domanda?
Sì?
>> STUDENTE: [incomprensibile] nani ++?
SHARON: Così si don't--
JASON HIRSCHHORN: Sì, non hanno bisogno di lì. [Incomprensibile] molto fine.
Così si fa [incomprensibile] quelli perché sei
tipo di frazionamento l'inizializzazione, condizioni, e il cambiamento.
Alla fine, non hai bisogno di esso.
SHARON: Notate anche voi non è necessario il punto e virgola
dopo tutto intero ciclo for.
>> STUDENTE: Come iniziare un numero iniziale di negativi,
per esempio?
>> SHARON: È possibile inizializzare nani uguali a negativo 2.
>> STUDENTE: Non basta non Dash 2?
>> SHARON: Sì, in modo che il segno negativo, tratto 2.
>> STUDENTE: E '[incomprensibile] per inizializzare come nani [incomprensibile]?
>> SHARON: Sì.
Quindi, se avevamo appena inizializzato nani in precedenza, basta fare int virgola nani,
e poi ci possiamo fare nani impostati che uguale a 0.
>> STUDENTE: Possiamo farlo prima in il programma dicendo int nani = 0,
e poi solo--
>> SHARON: Basta che non have-- così ci sarebbe ancora uno spazio,
ma si sarebbe comunque bisogno di un punto e virgola.
Sì.
Mm-hm?
STUDENTE: Questo codice dice cosa il valore di nani è seguito.
Se chiedete dopo tutto questo è fatto per stampare il valore di nani.
SHARON: Si potrebbe chiedere di farlo.
STUDENTE: OK.
SHARON: Ma si farebbe chiedere a farlo.
E non lo fa per voi.
Ho paura di mettere i miei orecchini di nuovo in.
Farlo alla fine per gli applausi.
Stavo solo scherzando.
>> JASON HIRSCHHORN: In modo che è lo stesso.
Quindi inizializzare in alto.
Condizione, la stampa, il cambiamento.
Quindi questo è esattamente lo stesso che se chiunque può vedere che.
STUDENTE: Perché non si ha la punto e virgola nella prima riga?
SHARON: Dove?
STUDENTE: Dopo la prima linea.
SHARON: Dopo la 4 tra parentesi?
Perché vogliamo andare Attraverso in questo ciclo.
E se si dà un'occhiata al loop in generale, non si dispone di un punto e virgola.
Non è pratico.
Siamo a posto?
Ancora una domanda, altri due.
Sì?
STUDENTE: Questo potrebbe essere un po 'avanzato,
ma fare nani hanno un diverso [incomprensibile]
da una variabile [incomprensibile].
SHARON: Molto bene.
STUDENTE: [incomprensibile].
>> SHARON: Sì, lo è.
Che cosa?
JASON HIRSCHHORN: Sì, così lo fa.
Così normalmente nel campo di applicazione qualcosa è nelle parentesi graffe.
Così ambito sta andando sempre essere nelle parentesi graffe,
ma che non avrebbe fatto molto senso per il ciclo for
perché abbiamo inizializzato nani in quella parentesi graffa.
Quindi normalmente la portata di nani, che variabile non si estenderebbe passato.
Questo è un caso speciale però.
Così si inizializza esso all'interno di queste parentesi,
e poi ci sono l'ambito più tardi.
Caso così speciale.
Non dovrebbero avere quel, e che era-- che hanno senso?
>> Studente: No.
>> JASON HIRSCHHORN: posso andare su di esso.
Allora, cosa stai ancora confusi su?
>> STUDENTE: Come si può utilizzare dwarves-- voi può, ovviamente, usare i nani [incomprensibile]
al di fuori della formula troppo?
>> JASON HIRSCHHORN: No, no.
Quindi il campo di applicazione è solo all'interno parentesi graffe per il ciclo for, sì.
SHARON: Ma se si inizializza nani al di fuori del ciclo for, poi
è possibile utilizzarlo altrove C'è un'altra domanda?
No?
Ok.
>> Quindi, abbiamo parlato un po 'di nidificazione cicli for o condizionali nidificazione,
if.
Quindi, ecco un esempio di dove potremmo nidificare un ciclo for.
Diciamo che siamo stati stampando questa tabella di x è proprio qui.
Potremmo voler a-- prima se noi non guardiamo il codice
e abbiamo appena pensiamo, noi voglia di passare attraverso ogni riga
e stampare ogni colonna, giusto?
Questo fa senso?
Ok.
>> Così qui stiamo attraversando ogni riga praticamente per ogni riga,
e ci sono tre file.
E poi all'interno di ogni riga per ogni colonna, e là
sono quattro colonne, stampare una x.
così.
Quando riga è 0 e la colonna è 0, il risultato della stampa questo x.
E allora continuiamo a attraverso il ciclo colonna.
Row è ancora 0, ma è una colonna.
E poi colonna è 2, e poi colonna è 3.
E poi usciamo fuori da quella ciclo perché poi colonna
non è più minore di 4.
E poi stampiamo una nuova linea, e andiamo alla nuova linea.
E poi andiamo attraverso il successivo fila, e la riga viene incrementato,
e attraversiamo di nuovo.
Questo fa senso?
Sì?
>> STUDENTE: Quindi, per nido [incomprensibile] è solo mettendo all'interno del ciclo for?
>> SHARON: significa così nidificazione che hanno un ciclo for all'interno di un ciclo for,
come Inception.
>> STUDENTE: Non hai bisogno di un rotazione speciale o altro?
Devi solo bastone è proprio all'interno di esso?
SHARON: Corretto.
Sì?
>> STUDENTE: potrebbe essere [incomprensibile], ma sembra che ci sia uno spazio aggiuntivo
tra tutte le x.
Non so se that's-- Se questo dovevano fare in realtà il programma,
avrebbe fatto una cosa del genere?
>> SHARON: Quindi non.
Che è stato premuto ENTER.
E 'stato male da parte nostra.
Apologize.
>> HANNAH: Come cambiare questo programma se avete fatto una riga in più?
>> STUDENTE: [incomprensibile].
SHARON: Buon lavoro.
STUDENTE: È anche possibile stampare lo stesso cosa passando attorno alla colonna,
giusto?
>> SHARON: Hm?
>> STUDENTE: Quindi, per stampare il vostro piccolo xxx, la prima linea può dire di stampa,
e invece di dire fila, si dice colonna.
>> SHARON: Così si potrebbe cambiare i nomi delle variabili di farlo.
È questo che stai dicendo?
>> STUDENTE: No, io sono solo dicendo che-- così sei
righe di stampa prima e poi la stampa di colonne.
È anche possibile stampare le colonne prima e poi le righe per ottenere lo stesso schema?
SHARON: Si potrebbe, ma allora si avrebbe
fare attenzione a dove si inserisce la nuova linea.
E come è possibile tornare indietro?
JASON HIRSCHHORN: se appena cambiato lo
ei valori erano diversi, invece di avere four-- cosa si tratta?
Tre per quattro.
Vorrei avere quattro righe e tre colonne.
Questo fa senso?
>> STUDENTE: Sì.
>> JASON HIRSCHHORN: Così sì, si potrebbe fare.
Sì, assolutamente.
SHARON: Ma che sarebbe letteralmente appena interruzione, i nomi delle variabili.
Buono?
Ok.
Va bene, P impostare uno.
OK, quindi la prima parte di essa si farà questo, Mario.
Stavo solo scherzando.
E 'più simile a questo.
E così quando abbiamo appena guardato il cicli for nidificati, facendo quel tavolo,
pensare a come si potrebbe essere in grado di stampare queste hashtags in questo modo.
E poi proprio qui come faresti stampare questo qui, questo spazio aperto.
>> STUDENTE: [incomprensibile].
SHARON: Sì, basta stampare uno spazio.
OK, quindi basta pensarci.
HANNAH: E poi lo stesso parte del problema set
è un programma chiamato greedy.c, in modo che tu sia
andando a voler pensare su condizionali
e fare in modo che si può fare buon cambiamento.
E un piccolo avvertimento che abbiamo per voi è stare attenti a valori a virgola mobile.
Se questo significa assolutamente nulla per te, Sarà coperto in conferenza di questa settimana
e anche in [incomprensibile] camminare attraverso, che
voi ragazzi impareranno a l'amore sul set di problemi.
>> Una cosa che mi propongo, soprattutto con Mario.c,
quando si sta facendo il problema impostare, se ti trovi in ​​difficoltà,
iniziare facendo su carta.
Scrivi fuori ed effettivamente stare lì e fingere di essere il computer,
e andare through-- dire Fossi il computer,
come faccio a seguire questo per loop through?
Come direbbe mio variabili nel ciclo for cambiamento?
Così facendo su carta facilita 10 volte
quando si va a sedersi al computer.
Quindi, solo la mia piccola spina.
>> SHARON: E inoltre non credo che si devono codificare tutto in una volta.
Assicurati di prendere un processo iterativo.
Fate un po ', di stampa fuori, vedere cosa succede.
A volte è un po 'di tentativi ed errori.
E venire a orari di ufficio.
Super divertente.
JASON HIRSCHHORN: Quindi tutte le domande?
Tutte le persone giuste, che è stato il tuo primo tratto.
HANNAH: Grazie per essere venuti.
JASON HIRSCHHORN: Grazie per venire.
SHARON: Grazie.
[Applausi]