JASON Hirschhorn: Benvingut. Així que només uns pocs anuncis abans de començar. Així seccions, tothom hauria ja han seccionat. Seccions normalment corren de diumenge a dimarts. Així que vostès han d'obtenir les seves assignacions. I llavors crec que la setmana que podràs amb la seva real TFS. Així que si vostè té alguna pregunta, o problemes, o es va oblidar de la secció. Algunes persones fan això. Simplement fes-nos saber. Dispara a nosaltres un correu electrònic als caps. Després d'hores d'oficina. Comencem horari d'oficina la setmana passada. Les hores d'oficina a la setmana. El dilluns és a Leverett 08: 00-11: 00. Els dimarts al pati, així Cabot 8: 00-11: 00. Dimecres, Mather 8: 30-11: 30. I dijous Annenberg 8: 00-11: 00. Així que zero, un munt de gent no necessiten hores d'oficina ajudar a les ratllades, que és completament bé. Si ho fa, això és absolutament bé també. Però en el futur, el problema conjunts, que reben molt més difícil. Així que això va a ser el seu amic. Sens dubte tornaré a les hores d'oficina. Planeja anar a les hores d'oficina. En arribar al problema establir quatre, cinc, sis, set, has d'anar a les hores d'oficina. Aquí és on una gran quantitat de l'ajuda i el treball es fa. Crec que l'any passat, només per exemple, el dijous nit-- així que crec que el problema conjunts es van haver de divendres. Així que la nit de dijous, que tindria 200, 250 estudiants en horari d'oficina. Així que sens dubte fer-ne ús. Aquests són els seus millors amics. Igual que aquí és on si ets enganxat en un conjunt de problemes, aquí és on és probable que rebi ajuda. Així que les hores d'oficina. Acceptar així que aquests són els anuncis. Els anuncis són de fer, així que començarem. Acceptar, l'aparell. És que descarregar tot el món però, l'aparell? No Igual que en tan així. Jo com que vaig descarregar l'aparell. Just el que l'aparell és nou aquest any, pel que estem probablement va a tenir alguns errors en ella. Així que si us plau descarregar- tan aviat com sigui possible. Així que problema va establir un va a dir exactament com descarregar-lo. Com començar la instal·lació aquí. Es dirà com per descarregar l'aparell. Així que definitivament descarregar el aparell més d'hora que tard. Les instruccions estan en l'especificació P conjunt. Així que si vostè espera fins al dimecres nit, i llavors vostè té problemes, i vostè ens envia un correu electrònic a la mitjanit de dimecres a la nit que no es pot descarregar l'aparell, que és no és una raó legítima per a una extensió. Has de fer-ho ara, i vostè tindrà problemes. Vaig tractar de descarregar ahir a la nit. Em vaig trobar amb una mica de problemes. Si arribes a tenir problemes instal·lar, definitivament colpejar reintent, perquè m'acaba de colpejar a intentar un parell de vegades, i finalment va funcionar, que no fa cap sentit, però ho fa. Així que definitivament torni a intentar, però si ensopegat amb un mur de maó, disparar-nos un correu electrònic al capdavant, i anem a ser més que feliç d'ajudar als nois. Què passa? ESTUDIANT: Només una pregunta ràpida. Si comproven estil, hi ha una part que diu que no incloem aquest. JASON Hirschhorn: Encara no. ESTUDIANT: Diu executar-lo. Com s'executa perquè assegureu-vos que és en el seu sistema? JASON Hirschhorn: Ets va a executar una ordre bash. Vaig a anar sobre això més endavant. Refredar. Així que l'aparell pot ser una mica intimidatori, perquè estàs acostumat a tipus de que s'executa en la interfície gràfica d'usuari. Així esgarrapades era un usuari gràfica interfície, així que el que vull dir amb això? El que vull dir és que quan s'està programant, bàsicament estàs fent servir blocs de codi. Podeu veure el codi i coses per l'estil. L'aparell, vas a estar fent les coses en un entorn de línia d'ordres. I així per la resta de les seves vides de programació, vostè va a estar fent coses a l'entorn de línia d'ordres. Així que és bona per saltar a principis de i aconseguir una mica d'experiència. Així que anem a fer-ho. Així que això és Rob. OK, així que anem a saltar en la línia d'ordres coses. Així que aquest és l'aparell. Algú pot dir-me per què utilitzem un aparell? Quin és l'aparell? Algú sap? Què passa? ESTUDIANT: És només una màquina virtual que executa la seva màquina perquè pot aconseguir sobre el sistema operatiu desacords entre Mac i PC. JASON Hirschhorn: Perfecte. ESTUDIANT: És una plantilla universal. JASON Hirschhorn: Sí, és com una plantilla universal. Això és perfecte. Així que sí, és una màquina virtual. Així que és bàsicament un sistema operatiu. Aquest és un sistema operatiu. Això és equivalent a la seva Mac, PC o vostè, o el seu Linux. Aquest és exactament el mateix. I perquè pugui fer coses similars. Si volguessis, podries anar en línia, per exemple. Realment no es pot veure, però aquí, Google Chrome. Vostè pot anar en línia si vols. Aquest és un sistema operatiu. I la raó per la qual fem això és perquè és molt més fàcil quan estem repartint instruccions i tot. Si és només un entorn uniforme, és molt més fàcil per a nosaltres, i és molt més fàcil per a vostè. No va a córrer en que s'executi en qualsevol idiosincràsia quan s'està programant. Sabem exactament el que vostè va a executar en. Així que l'aparell està aquí. Així que quan vostè està començant programació, ets va a anar cap avall per la cantonada esquerra. Hi ha una petita caixa. Vas a fer clic. Aquesta és la finestra de terminal. Així que aquí és on vostè va a ser una gran part del semestre. Així que permetin-me el zoom una mica. Acceptar, per la qual cosa recórrer un terminal finestra és una mica diferent. En primer lloc, no hi ha icones. Jo no puc fer clic res. No hi ha res que faci clic. Així que cal trobar una manera de esbrinar on es troba, el que hi ha aquí, i com moure. Així que els dos comandaments més útils, probablement, està ls-- així que què creus que ls fa? ESTUDIANT: Llista. JASON Hirschhorn: Llistes, sí. Només s'enumeren els algoritmes dins del directori. I després cd. Així que diguem que volia cd CS50, ¿què va fer això? Sí? ESTUDIANT: Canvia el directori. JASON Hirschhorn: Perfecte, sí. Només canvia el directori. Així que anem a tornar. Llavors, ¿com torno? Així que diguem que jo volia anar còpia al directori anterior. Sí, és clar. ESTUDIANT: Crec que escrius cd només sense res. JASON Hirschhorn: Vostè pot fer això. Així que perfecte. Així que si escric cd, és a dir realment em va a esclatar còpies de seguretat en el directori principal. Així que ja veus aquesta accent, que em va a esclatar camí de tornada fins on l'accent és. Així que em va a esclatar cap amunt còpia al directori principal. Però diguem que vaig fer alguna cosa com això. Diguem CS50 cd. ls nou. Tinc altres coses. CD de Super secció. arxius de CD, així que vaig profund. I després direm que vull n'hi ha prou amb posar de nou al cim. cd. Diguem que jo no vull fer això. Diguem que jo només vull fer esclatar de nou fins el directori que estava just a sobre de mi. Com puc fer això? Així que diguem que CS50 cd. supersección cd. Així que anem que sóc aquí. Diguem que jo només vull perquè aparegui una sola vegada. Com puc fer això? Sí, què passa? ESTUDIANT: Vostè acaba d'escriure cd supersección de nou. JASON Hirschhorn: Vostè podria fer això. Bé, jo estic a supersección. ESTUDIANT: Oh, l'anterior. JASON Hirschhorn: Sí, per la qual cosa podria fer això. Vostè fa cd ~ CS50. Així que si vostè mira aquí, aquesta és el camí correcte aquí. Aquest és el teu camí. Pel que podria seriosament només ha d'anar cd ~ / CS50. Boom, que hi ets. Quin és una manera més fàcil de fer-ho però? Això era perfectament correcte, però el que és una manera una mica més fàcil per fer-ho, pel fet que una gran quantitat de vegades que vas estar saltant en directoris, saltar de directoris. Així que anem a tornar. supersección cd. Així que diguem que vull tornar molt ràpid. Vostè pot fer alguna cosa com a punt a punt cd. Això va a esclatar fer còpies de seguretat molt ràpid. Així supersección cd. arxius de CD. Diguem que sóc aquí. Per cert, clar és bo, perquè el meu finestra estava una mica desordenat. Així ls, de manera que no volen estar més aquí. cd punt punt. Llévame un. Cd punt punt em porta un. Cd punt punt i tornar a casa. OK, així cd, ls. Probablement el més important coses, perquè ets va a haver de saber on ets. ls va a dir-te on es trobi, i cd és com vas a saltar al voltant. També pot fer algunes altres coses interessants. Així per exemple, ls. ls és només va a mostrar els directoris a l'arxiu. També et va a mostrar els arxius. Però només va a mostrar el que hi és. Si volies alguna cosa una mica més fresc, i vostè va a fer realitat això en un parell de setmanes. ls tauler l. Que imprimeix un mica més d'informació. Algú pot endevinar a la mà esquerra banda la drwx, rwx i coses per l'estil. Algú té una idea el que això significa? ESTUDIANT: Permisos. JASON Hirschhorn: Sí, perfecte. Permisos. Així que vas a haver de bregar amb això quan ho fa la programació web més endavant. Si alguna vegada has anat en línia, i vostè ha fet clic a una imatge o es fa clic a un camp, i va dir permission-- com el permís no està permès, o com a el permís no es concedeix o el que sigui, això és perquè quan que estan programant, que no han fixat aquests permisos a deixar que facis això. Llavors, ¿on que ve. OK, així que està bé. Així que vam saltar al voltant. Podem mirar les coses al nostre directori. Però, ¿com fem perquè els altres usuaris? Tinc directoris aquí. Això és impressionant. Com puc fer un nou directori? Diguem que vull fer una nova Directori per ara. Vostè pot fer alguna cosa com això, mkdir. Així que directori. Llavors, ¿què és el que vols trucar a aquest directori? ESTUDIANT: Awesome. JASON Hirschhorn: Awesome. M'encanta. Feu directori impressionant. I aquí ho tens. Així que tenim una llista. Vostè té un nou directori. I es pot dir que és un directori en el seu aparell perquè té aquest color, no? Així que és com un blavós porpra o el que sigui. Així que anem a canviar. Anem a canviar de directori. Anem a entrar en directory-- sí, què passa? ESTUDIANT: Hi ha una llista de tot això [inaudible] en línia? JASON Hirschhorn: Sí, vaig a posar ells fins en-- tindrem diapositives. Serà un PDF. Anem a posar cap amunt per a tot el món. Sí, ho sento que és una gran quantitat d'ordres. si vols que reduir la velocitat, o tornar, ni res d'això, sens dubte, m'ho saber. És molt per absorbir immediatament. Què passa? ESTUDIANT: Puc demanar un potencialment estúpida pregunta? JASON Hirschhorn: No no hi ha preguntes tontes. ESTUDIANT: Hi ha. Un directori és de només mirar on la informació de guardar. JASON Hirschhorn: Sí. ESTUDIANT: És que, bàsicament, el que estàs fent? Així que quan fem alguna cosa, hola món o el que sigui, s'emmagatzema en el directori, sí? JASON Hirschhorn: Sí. ESTUDIANT: És això cert per a tot. Tot s'emmagatzema en el directori. JASON Hirschhorn: Sí. Cada vegada que ho fa, qualsevol que sigui el directori que es trobi, que va a, bàsicament, deseu-lo en aquest directori. ESTUDIANT: I ​​quan ens estem cridant, estem cridant des del directori. JASON Hirschhorn: Sí, així que directori és on it és. Així que és una cosa així com si té una nova carpeta a l'escriptori i després s'escriu un text arxiu, posar-lo en aquesta carpeta, aquest arxiu es troba en aquesta carpeta. Això té sentit? ESTUDIANT: Sí. JASON Hirschhorn: Sí, què passa? ESTUDIANT: Puc demanar a que sigui una mica més gran? JASON Hirschhorn: Oh, sí. Ho sento. El projector és tan dolent. Vam tenir molts problemes amb això abans. És això millor? Això és massa gran? ESTUDIANT: No, no, no ho és. JASON Hirschhorn: No, no ho és. És massa petit? Què passa? ESTUDIANT: Ho sento, el que és la comanda per netejar? JASON Hirschhorn: Oh, és clar. Per suprimir, simplement escriure clar. clar ingressar. En l'últim aparell, el que bàsicament fa, no esborra la seva informació, que només una mica de canviar tot sota una pantalla. Així que si vostè ha escrit per clear-- exemple diguem que estic desplaçant-se cap amunt. Puc desplaçar-se cap amunt. Això és tot el que vaig fer. Però si escric clar, i després Em desplaço cap amunt, aquí són les meves coses. Així que no és d'esborrar-los, és només bàsicament li dóna un nou marc. ESTUDIANT: Com fer que [Inaudible] un directori? JASON Hirschhorn: Anem a arribar-hi. [El] Redueixi el seu rotllo. Bé. OK, així que pel que estem en una directori en aquest moment. Així que David, crec que en la conferència que va fer algunes coses interessants. Així que anem a escriure un programa. Així que vostè pot fer que un nombre de maneres diferents. Es pot utilitzar qualsevol tipus d'editor de text. Pot utilitzar l'ordre nano, pot usar Vim, Emacs. Aquests són una mica més complicat. O bé, pot usar alguna cosa en aquí això es diu gedit. Ho sento. gedit no és feliç. Així gedit és bàsicament només un editor de text. De la mateixa manera que el text d'edició paraula que processador o alguna cosa per l'estil. Així que té una bonica interfície igual que aquest. Així que es fa alguna cosa així. Així que en realitat et donaré el nom perquè mai ho vaig fer. Llavors, ¿què és el que vols nomenar al nostre primer programa? És només va a dir hola. ESTUDIANT: [inaudible]. JASON Hirschhorn: et falta imaginació. Acceptar, gedit. Hola. Jo faré .txt. OK, així que aquí està. Així que anem a escriure un programa. Així que crec que el va veure a la conferència. Es necessita una funció principal. Boop. Així que això és només una funció principal. Més gran? Sí, ho sento. Acceptar de manera que necessita una funció principal. Crec que m'estic saltant la pistola una mica, però mai és dolent per aconseguir utilitzat per a aquest tipus de coses. Així que una funció principal, cada programa de C ets va a escriure per a la resta d'aquest curs tindrà una funció principal. Algú sap per què? Què passa? ESTUDIANT: Inicia. JASON Hirschhorn: Exactament, per la qual cosa li diu al seu programa de per on començar. Així que si vostè no té una funció principal, i compila aquest i matèria, que no sabrà fora a començar. Principal sempre és on comença. Pel que té una funció principal i, a continuació, Algú recorda com imprimir? ESTUDIANT: printf. JASON Hirschhorn: Sí, printf. printf hola. Bé, ara jo he posat vostès fins a fallar, però aquesta compilació. ESTUDIANT: No. JASON Hirschhorn: Per què? Hi ha diverses raons per què. És clar. ESTUDIANT: No té l'estàndard [inaudible]. JASON Hirschhorn: Perfecte. Llavors, què és aquesta crida fins aquí? ESTUDIANT: [inaudible] JASON Hirschhorn: És un arxiu de capçalera, no? És un arxiu de capçalera. I tens raó. Tots dos tenen raó. Així que per incloure això, jo només faig lliures incloure .h sortida de l'entrada estàndard. Estic bé per anar ara? Seria compilar això? ESTUDIANT: No. JASON Hirschhorn: Per què no? ESTUDIANT: És un text [inaudible]. JASON Hirschhorn: Sí, impressionant. Així que em vaig fer. Així que em vaig guardar, però hi.txt gedit. Així que ara si ho faig ls, aquí està. Just aquí. Oh, no ho és en impressionant. He haver sortit. Ah, perfecte. Com podem posar això en impressionant? Així que jo no ho vull aquí a casa meva directori amb tota la resta. Vull posar-lo a la carpeta. Com puc fer això? No és massa difícil. Moure. Així que ja hem après ls llista. cd per canviar directoris. cd punt punt a cop de directoris. I ara anem a començarà a moure al voltant dels arxius. Així que per moure només moure hi.txt, i Vaig a posar-ho en impressionant. Només vagi amb compte. Cada vegada que vostè està escrivint en el línia d'ordres, tot importa. Així assumptes majúscules. Si hagués fet una minúscula, és no va a saber el que està passant. Així que tot importa de ser molt específic. Així que executi ls. Ja no és aquí. Anem a canviar el directori en impressionant. ls. Boom, que hi és. I algú va esmentar per què això no seria compilar. Per què no va a compilar de nou? Sí? ESTUDIANT: No està en un .c. JASON Hirschhorn: Perfecte. No és un .c, s així que com sóc jo canviarà el nom a un .c? Quin és una manera fàcil de fer-ho? Anem a fer servir el comandament que acabem de fer. Així que només anem a moure hi.txt a hi.c. ls hi.c. I a continuació, només per diversió, anem a simplement saltar aquest Reial ràpid. hi.c. Es donarà compte de que és agradable i colorit. Així que aquests són només una mica útil colors quan s'està programant. Així que la int i el buit, aquests són els tipus de dades. Anem a repassar els d'un segon. Hi és una cadena. Però els colors útils. Així que si alguna vegada accidentalment triar l'extensió equivocada, vostè ha de tenir aquests colors. Què passa? ESTUDIANT: Com puc copiar en un presentar [inaudible] en un altre arxiu? JASON Hirschhorn: Oh, estic vaig a mostrar que també. Llavors còpia eliminar es troben al moll. Anem a fer això. Assegureu-vos que funciona. Fer hola. Obres, executar-lo. Així ./hi impressionant. Aquest és el seu primer programa. Vull deixar ben més gran. Així que un molt good-- Sí, què passa? ESTUDIANT: Per què seria que quan prenc el gedit, que no em dóna una altra línia per hi.txt gedit? Simplement col·loca el cursor en una línia. ESTUDIANT: Sí. El [inaudible]. JASON Hirschhorn: Esperi, així que dir que una altra vegada. ESTUDIANT: Quan escric gedit, la primera vegada, la primera line-- JASON Hirschhorn: Fins hi ha a la part superior? ESTUDIANT: No té J Harvard aparell, i el cursor és només tot el camí a l'esquerra. JASON Hirschhorn: Tots el camí a l'esquerra? ESTUDIANT: Sí. Algú més ha de? JASON Hirschhorn: Oh, bé J Harvard és igual que el nom d'usuari. Així que això és només el nom d'usuari estàndard. ESTUDIANT: Es deixa de respondre. JASON Hirschhorn: Oh, que deixa de respondre. OK, així que el que has de fer és vostè ha de tancar de gedit. Tan a prop de gedit, i ha de tornar. Així gedit obert en el seu aparell en aquest moment? Si surt fora d'ell, el que hauria torna i vostè ha de ser bo per anar. Va fer que el treball? ESTUDIANT: Així que vas usar la comanda gedit a open-- JASON Hirschhorn: No, la primera ordre gedit va ser un error. El primer ordre gedit, Jo a veure hi.txt gedit. Així que li dono un nom, per la qual cosa hi.txt gedit. hi.txt és el nom de l'arxiu. La primera va ser just un error, i després Vaig tancar ràpidament fora del programa. Per tant el dubte era si ho faig gedit, no estic serà capaç de realment fer qualsevol altra cosa en la meva línia d'ordres fins que tanco que el gedit, així que crec que això és el que es van topar. Així que tanca el gedit. Es va a tornar d'aquest programa, i llavors vostè ser capaç d'escriure en realitat en la línia d'ordres de nou. ¿Això és bo? Dope. Així que assegureu-vos de tancar que si arribes a tenir problemes. Acceptar, de manera que una molt bona pregunta un segon enrere estava copiant. Així que ara he hi.c. Però diguem que vull canviar. Jo vull que sigui una mica millor. Vull dir hola classe. Però vull mantenir aquesta plantilla. Jo no he de tornar a escriure tot el programa de nou. Vull mantenir la plantilla. Com puc copiar? Fàcil. Així newhi.c hi.c cp. Ara tinc dos. I llavors puc obrir newhi.c, i en comptes de dir hola, Vaig a dir hola classe! Així que em vaig a tornar. Sortiu a terme. Tornar a la meva línia d'ordres. ls fan newhi. Executar-lo. Ja està. És millor, molt millor. Així que si vol copiar alguna cosa, fàcil com això. cp és còpia. Així que hem passat més de moviment, fent directoris, còpia. Anem a veure què més he d'anar? Oh, sí. Anem a repassar això. Així que això era impressionant. Diguem que jo volia A-- oh espera. Vaig a anar de nou a impressionant. Diguem que jo no vull aquests arxius aquí. Diguem que jo els vull en una nova com directori en el directori impressionant. Vull començar a organitzar, així que ara em vaig tenir un nou directori anomenat hi. Té tots els programes Escric vaig trucar hola. Llavors, com fem això? ESTUDIANT: Canviar directori. JASON Hirschhorn: Sí. Hola. Boop. mkdir hi_dir. Es va queixar perquè ja tenia una alta aquí. Així que ara tinc un directori hi. Així que ara vull passar tot, tots els programes que vaig escriure, Vull moure en el directori hi. Simplement net coses. Com puc fer això? ESTUDIANT: [inaudible]. JASON Hirschhorn: Mudança, oi? Així que anem a passar. Sí? ESTUDIANT: Quina és la diferència entre hola i hi.c que ja tenim. JASON Hirschhorn: Oh, hi.c és la real. Així que aquest és l'arxiu que vostè va escriure. Així que si vostè anava a obrir-lo en gedit o Nano, això és el que estàs escrivint. Al compilar, llavors s'obté un arxiu executable. Això és alta. Així que si vostè va obrir hola, això va a ser un munt de galimaties per a vostè. Es tracta bàsicament serà manat d'instruccions d'ordinador. Què passa? ESTUDIANT: Què signifiquen els colors? El blau és probablement directori. Què és groc? JASON Hirschhorn: Els són els arxius executables. Així que quan em vaig fer hi.c, que vaig me-- així que puc fer-ho. Saltant la pistola. Així treure hi si. Així que farem ls. No tinc hi més. Així que quan vostè fa, que és quan es prendre el programa que vas escriure i fas un arxiu executable. Així que hi.c-- bé, fer hi. Crec que ell es va acostar en aquesta conferència. Aquests són manat de instruccions de compilació. Així que en lloc d'haver de en realitat escriure Clang amb tot això. Aquests són banderes. Vostè acaba d'escriure fer. Així que això fa que els arxius executables. Així que quan vostè fa ls, ara tens hi. Així que això és el que està funcionarà realment. I pel que s'executa en fer ./hi, i s'executa el programa. Però si intento fer això amb hi.c, no, no funcionarà. Sí, té sentit? ESTUDIANT: Mm-hm. JASON Hirschhorn: Cool. Espera, jo volia dir alguna cosa més. Només molt ràpid, en cas a algú li interessa, quan vostè salta d'un directori, que és el punt punt. Algú té una idea del que potser només el mitjà de punts singulars? ESTUDIANT: [inaudible]. JASON Hirschhorn: És en realitat el directori actual. Així que és el directori actual. Així que sóc aquí. Estic en impressionant. Si ho faig punt de cd, que no fa res. Em porta al meu directori actual. Així que una mica redundant, però vostè ha per fer això, per la qual cosa ./ seu nom del programa, amb la finalitat d'executar la seva programa, vostè ha de fer això. Okay. ESTUDIANT: Si vostè fa punt cd punt punt, però molts punts serà només portarà fins que molts directoris? JASON Hirschhorn: Vols dir com cd punt a punt punt punt? ESTUDIANT: Sí. JASON Hirschhorn: No. Així que en realitat me ls -l? Si faig alguna cosa més, puc ls -a. Així que el que això diu és -a et mostra tot. Així que et mostra les coses que són ocult i les coses que no s'amaguen. Així que si vostè nota que quan ho vaig fer només ls, acabo de veure aquestes coses, les coses que va fer. Si ho faig -a, que va per a mostrar tot. I pel que el directori actual, directori per sobre d'ella. Això té sentit? Sí? ESTUDIANT: Però aquestes no són en realitat en el directori. El directori actual no és en si mateix, ¿Per què mostrar aquells amb punts dins? JASON Hirschhorn: Vols dir que és com no està al directori. ESTUDIANT: Dret. Així que tenim una llista de les coses que estan en el directori. JASON Hirschhorn: Crec que està en el directori. Igual que -a mostra tot, fins i tot si està amagat dins del directori. Així que crec que és només una ruta per al directori actual si això té sentit. És una mica recursiu. És com Origen. Què passa? ESTUDIANT: Així que vostè ha dit espectacles -a [inaudible]? JASON Hirschhorn: -a, sí. ESTUDIANT: Què fa que [inaudible]? JASON Hirschhorn: Bé, per exemple, anem a tornar al cim. En general coses que no ha de ficar- amb i vostè no ha de preocupar. Així que això és una espècie de la casa. Si ho faig -a, tinc un munt de coses. Totes aquestes coses. I vostè no ha de ficar-se amb qualsevol d'aquestes coses. Ni se't passi començar a anar aquí i acaba de treure coses. [El] Sí, aquest era una mica més coses còmodes, però és bo saber. Crec que és bo saber. Però si vostè no vol escriure -a a la totalitat d'aquest curs, oblida. Què passa? ESTUDIANT: Quin és el ls -l? JASON Hirschhorn: Això et mostra els permisos. Bàsicament utilitza que per als permisos, de manera -l. Es mostra una mica poc més d'informació, però de nou, això és una mica bit coses més còmodes. Aquests són només els permisos. Així que els permisos de les carpetes. Així que per exemple, diguem que vaig fer una carpeta, de manera que la d representa el directori. Així que aquests són els directoris. I a continuació, llegir, escriure, executar. Així que aquests són els permisos per Crec usuari, grup, món. Totalment anar massa lluny. Vas a anar en aquest com setmanes a partir d'ara, però perquè ho sàpigues, aquests són els permisos. Què passa? ESTUDIANT: es pot resoldre en lloc de acaba de saltar a la següent cosa, pot usted-- JASON Hirschhorn: Vostè significa realment eliminar? No ho sé. Jo mai faig això. Per què vols fer això? Per què faries això? M'agrada. Vostè viu a la vora. Ets com jo no vull res d'això. Això és intensa. ESTUDIANT: [inaudible]. JASON Hirschhorn: Sí, podem fer això. Ho sentim, jugar amb la mida és totalment em tornant boig ara mateix. Anem a anar cap amunt. Sí, així que ara no puc pujar més. Així que tot el que em van ensenyar que s'ha anat per sempre. Gràcies. Vam fer els nostres directoris. Vam fer els nostres arxius i coses per l'estil que, de manera que encara tenen totes aquestes coses. OK, vaig a anar ràpid. Així que molt ràpid. Així que diguem que estic en impressionant. Diguem que volia moure tot per al nou directori perquè jo només vull organitzar, oi? Llavors, ¿com anava a fer això. Moure. Anem a fer servir moviment una altra vegada. Així que moure hi.c. I el que pot fer és de començar a enumerar les coses, i l'última cosa que la llista és per on es va a moure. Així que moure hi.c, hi newhi newhi.c, hi_dir. I pel que es va traslladar tot a l'última cosa que vostè esmenta. Així que a continuació, canviar de directori, hi_dir ls. Tot hi és. Així que és agradable i més organitzat. Bé, diguem que m'agrada hola el meu programa inicial. Vull desfer-me d'ella. Com em desfaig d'ella? Què passa? ESTUDIANT: [inaudible]. JASON Hirschhorn: Diguem que jo només voler suprimir el programa, de manera que només hola. No, tens raó. Així que és rm, però ho fa rm hola. Es va a donar una petita advertència. Es dirà Estàs segur que vull esborrar això, i sí que ho faig. Si vostè no desitja se li pregunti com que perquè vostè no té temps per advertències, retiri -f. Aquesta és una altra bandera. És com el -l. És com la -a. Aquests són només indicadors que vostè està donant a aquestes comandes. Així treure -f. f -f significa força. Així que forci. No vull que se li pregunti. Així treure -f. Anem a fer hi.c. Només es va desfer d'ella. No m'ho va dir. Però diguem que en lloc d'això estic fet amb aquest directori. Vull desfer-me d'directori. Així que em trec hi_dir. No, això no funciona. No, per la qual cosa no deixarà em trec un directori. Algú té una idea? ESTUDIANT: És treure dir? JASON Hirschhorn: Així que eliminar d'aquesta manera? ESTUDIANT: No. Només el [inaudible]. JASON Hirschhorn: No, en aquest moment no hi ha hi. Només hi ha hi_dir. Així que aquest és el directori. Així que en realitat el que vol fer és-- oh, tens una idea? Veig com un mitjà costat. ESTUDIANT: [inaudible]. JASON Hirschhorn: OK. ESTUDIANT: [inaudible]. JASON Hirschhorn: OK. Així que si vull treure un directori, treure -r. Això és recursiu. Així que treure aquest directori recursiu. Així que vull que et vagis a aquest directori, eliminar tot en el directori, i després desfer-se de la guia. I després vaig a f així, perquè jo no vull que em pregunti amb advertències després que s'elimina cada arxiu. Així treure hi_dir -rf. Boom, que s'ha anat. Només vagi amb compte d'on s'utilitza que. Vaig a usar-lo aquí també. -rf impressionant. S'ha anat. Vagi amb compte en el qual utilitza que. Si utilitza que aquí i escriure alguna cosa d'aquesta manera, no se't passi fer això. Això va a esborrar tot en el seu aparell sense avisar. I ho he fet. Problema de classificació estableix a les 4:00 AM, estava tractant d'eliminar els directoris establerts de problemes, i jo vaig fer això. I jo estava com, oh el meu déu. No fer-- intentar cancel·lar-la. Pots cancel lar. Comando C només cancel·la tot, però ja he eliminat com el 75%. Així que em vaig arruïnar. I la gent fa això. Tothom ho fa. No fer això, però aquest semestre. És una merda. Estic nerviós tenir aquí. Vaig a eliminar-lo. [El] T'imagines? Acceptar, preguntes. Sí? ESTUDIANT: Així que si fem tot que estàs fent aquí, és això el mateix com s'acaba d'entrar en realitat Desa el fitxer com [inaudible]. JASON Hirschhorn: Oh, et refereixes a través de gedit. ESTUDIANT: Sí. JASON Hirschhorn: Sí que ho és. gedit és útil. Així gedit és molt útil. En aquesta classe, es pot fer una moltes coses a través de gedit. Podeu desar. Vostè pot canviar el nom. Podeu moure fitxers i coses per l'estil, però només amb la veritat quan vas a 50-- així vostè està en 50-- 51, si vas a 61, això serà la seva vida. Aquesta és la línia d'ordres. Aquí és on vostè va a programar per a la resta de la seva vida, així que sense dubte utilitzar gedit si vols. Sens dubte una bona manera de començar. Per al primer problema es posa, definitivament utilitzar, però de tant en tant tractar d'aconseguir més acostumat més còmode amb arguments de línia de comandes. Però es pot, sens dubte. Què passa? ESTUDIANT: Així que quan volem eliminar un dels arxius que hem fet, hi ha dues maneres. [Inaudible]. Hi ha alguna manera quan estàs l'eliminació d'un directori per demanar ràpida perquè no acaben d'esborrar-los? JASON Hirschhorn: rm -r. Així que no ho forci. Així rm -r. Es va a anar a través de forma recursiva, esborrar tot, li demanarà després de tot, el que et tornarà boig. Igual que jo faig gairebé exclusivament rm -rf rm -f i, just constantment. Jo sóc com jo no tinc temps. Sóc un home molt ocupat. Molt bé, ¿què passa? Sí. ESTUDIANT: Hi ha un desfer, o galleda de les escombraries, ni res d'això? JASON Hirschhorn: No. [El] Pogués tornar enrere i obtenir el meu aparell que acaba d'eliminar, no. No, no, no. Si ho fa rm, que ha de desaparèixer. Què passa? ESTUDIANT: Així que vostè pot [Inaudible] junts. JASON Hirschhorn: Sí, així com així. Així, per exemple, que vesteix la rm -rf. Diguem que vull fer -la ls, que em mostra tot, fins i tot ocult coses amb els seus permisos. ESTUDIANT: Així que llavors R, la -r bandera, si no hem de, no podem eliminar un directori, no? JASON Hirschhorn: Dret. ESTUDIANT: Així que diu que volem fer alguna cosa amb el directori? És això el que vol dir? JASON Hirschhorn: -r vol dir de forma recursiva. Així que un directori es va a tenir arxius en ella, oi? Llavors, què vols fer vostè és vull entrar en aquest directori, esborrar tot, tot el arxius en aquest directori, a continuació, sortir i esborrar el directori actual. Així que la -r significa recursiu, fer-ho tot de forma recursiva si això té sentit. Sí. ESTUDIANT: Així que els directoris tenen [Inaudible] i simplement eliminar-lo. O still-- JASON Hirschhorn: Intentarem. Així mkdir buida. Traieu buida. No ESTUDIANT: No, de manera que encara necessita ell-- JASON Hirschhorn: Sí, sempre. Així -r, rf, buit. Impressionant. Més preguntes? Crec que és el seu accident curs sobre coses de línia d'ordres. Qualsevol pregunta, perquè anem a saltar per sobre dels tipus de dades, i els bucles, i totes aquestes coses? Què passa? ESTUDIANT: No tinc CS50 mostrant com un dels meus directoris. ¿Això és normal? JASON Hirschhorn: Oh, sí. Això és meu. Sí, això és on el meu solucions a les teves coses és. [El] Així que sí, això és absolutament normal. Crec que probablement només té aquests quatre. Crec que podria ser normal. Sí. Acceptar, alguna pregunta més? Sé que va ser super ràpid. Què passa? ESTUDIANT: Jo vaig veure el color verd blau. Què és això? JASON Hirschhorn: Això significa directori. ESTUDIANT: I ​​aquest blau? JASON Hirschhorn: Oh, et refereixes a aquest verd blau? ESTUDIANT: No. JASON Hirschhorn: Aquesta verd blau? ESTUDIANT: No. Quan listed-- JASON Hirschhorn: Oh. Com aquest? ESTUDIANT: Sí, les icones. JASON Hirschhorn: Oh, això. No ho sé. Què vol dir això? Per tant, sembla ser apuntant a un directori. ESTUDIANT: Gairebé sembla un àlies. JASON Hirschhorn: Podria ser. No necessita saber això. Més preguntes? Impressionant. Si vostè té alguna pregunta, Sé que era molt. Molta d'aquesta informació estarà en línia. El posaré en línia per a vostès. Secció B estarà en línia també. O si vostè té preguntes, acaba d'arribar i em pregunta. Aquí tens. Així que ara Sharon i Hannah repassarà alguns de la lògica de conjunt de problemes un. SHARON: Oh el meu déu. Trastorns. HANNAH: Mentrestant, jo sóc Hanna. Aquesta és Sharon. Els dos estem CS50 TFS, i anem a donar-li una petita introducció en un parell important coses per establir un problema. Tot, des dels tipus de dades els condicionals als bucles. Bucles en general. SHARON: I al final, ens es fa una ullada a P estableix una, i el que has de saber perquè. Així que anem a començar amb els tipus de dades. Vostès haurien d'estar familiaritzats amb la els que es destaquen en blau. Així que podem començar amb enters. sencers són nombres enters, de manera que un, dos, tres, quatre. flotadors, surant punts. Igual que els nombres enters amb decimals, així que 5,2 o fins i tot 5,0. Chars són personatges com A, B, C. I una cadena, tots vostès saben. Com CS50 o hola i el món. Bool és un booleà, pel que tenim veritat i la falsedat com el nostre Boole. Així que si alguna cosa calcula a veritat- 5 és igual a 5, que calcula en true, i si tenim 5 és igual a 4, això és falsa, per la qual cosa calcula en false. I aquí tenim l'associat mida de tots aquests tipus de dades. I vostè haurà de saber això per les seves proves, de manera que aquest podria ser útil recordem, però anem a publicar aquests. En realitat ja estan publicats. Així que vostè ha d'estar familiaritzat amb els ressaltats en blau. JASON Hirschhorn: real ràpida, en cas que voler saber la diferència entre un char i una cadena. Així que quan vostè està escrivint coses, cada vegada que tingui alguna cosa així com "hola" que serà una cadena. Així que si hi ha dos cotitzacions, que és una cadena. Però si jo fos a una "h" així, això és una cadena. Però si només tinc una cita, això és un char. I quin és el diferència que vostè pot ser que demani. Bé, la diferència és aquest és un byte de memòria. Això és 4 bytes de memòria. SHARON: surar? Descriure de nou? Bé, és una cosa així com un nombre que té un punt decimal amb ella, així que 5,2 o fins i tot 5,0 és un flotador enfront de només 5 és un int. ESTUDIANT: [inaudible]. SHARON: Oh, que pot tenir molts punts decimals, per la qual 5,675-3,1415. Sí? ESTUDIANT: Necessitem saber totes les mides per això? SHARON: Sí. ESTUDIANT: [inaudible]. SHARON: No es preocupi per els blancs de moment. HANNAH: Les notes són publicat en CS50.net/sections. ESTUDIANT: Només per curiositat, hi ha una utilitat per conèixer la mida dels arxius que vostè està trucar per la qual cosa hem de saber? SHARON: Així que aquests són els tipus de dades, però sí. Així que en aquest cas, quin seria ocupen més memòria o més espai? JASON Hirschhorn: Així per a un exemple concret, Crec que en conjunt problema quatre o cinc, estem et donarà un munt de les dades, i que, bàsicament, de travessar aquestes dades. Així que és útil saber que si té tants nombres enters, això serà el. Així que diguem que et vaig donar 10 sencers, quin és la mida d'aquest? ESTUDIANT: 40. JASON Hirschhorn: 40 bytes, a la dreta. Així que vostè pot ser que necessiti per saber que Bé, he de saltar 40 bytes. Així que diguem que en canvi és de 40 caràcters, llavors-- diguem que et vaig donar 10 caràcters, llavors vostè sap, està bé, jo només que hagi de saltar 10 bytes. Així que és molt útil per conèixer la mida dels tipus de dades reals, Perquè moltes vegades podràs estar saltant al voltant de les dades, per la qual cosa necessita saber què tan lluny per saltar. ESTUDIANT: Quina és la diferència entre les cotitzacions i una cita? JASON Hirschhorn: OK, dues cites és una cadena. Una cita és un char. ESTUDIANT: Com operacionalment, ¿Quina és la diferència? Tots dos diuen hola. JASON Hirschhorn: Oh, ho sento. Això és només h. Ho sentim, això no està clar. ESTUDIANT: Així que la part superior un-- JASON Hirschhorn: Aquest és una cadena, si. Així que es tracta de dos personatges, no? String, hola. Però diguem que acabo tingut un sol caràcter, si poso cometes només h, que és una cadena. Aquesta és una cadena h. Això té sentit? Així que aquest és de quatre bytes. Però diguem que em vaig desfer que un només posar un. Una cotització. Això és ara un char, un char h. Així exactament el mateix, diferent tipus de dades. Aquesta és només una de bytes, mentre la cadena era de quatre bytes. Sí. ESTUDIANT: Així que si vostè intentava per emmagatzemar una paraula com David, que es vol utilitzar una cadena perquè independentment de la durada de la cadena és, només tindrà quatre bytes llevat que sigui un llarg temps o una de matrimoni, en el qual cas-- pel que si s'estén més enllà dels quatre personatges, a continuació, vol fer-ho en cadena. ¿És aquesta la lògica general darrere. JASON Hirschhorn: Si s'estén més enllà d'un caràcter, que és una cadena. ESTUDIANT: Així que no hi ha [inaudible] per emmagatzemar una de quatre lletres paraula com quatre individu o tres lletres paraula com tres caràcters individuals perquè això només hi haurà tres bytes, en oposició a la cadena de tres parts. JASON Hirschhorn: Vostè podria fer això. Vostè podria fer això, però no ho faig crec que això és realment val la pena, perquè només s'està estalviant un byte. Saps el que estic dient? En el gran esquema de les coses, això no importa realment. Però per exemple, printf, si imprimeix f i vostè de tenir tres caràcters que es poden imprimir que fora-- diguem que C-A-T, vostè pot imprimir gat només per fent una Char Char un hom char, o es pot imprimir cadena gat. És exactament el mateix. Pel que podria fer-ho d'aquesta manera, però- ESTUDIANT: No va per estalviar molt. JASON Hirschhorn: Sí. El mal de cap que seria induir no val la pena. Sí? ESTUDIANT: Per exemple, vas tenir la h amb una davant de dos, les cometes simples o dobles. Per què vols estalviar una sola lletra, com una cadena. Què propòsit ha de sempre serveixen? JASON Hirschhorn: No sé. Vull dir, el que realment depèn del programa. Per exemple, crec que més endavant et fiques en coses de línia d'ordres. Així, per exemple, en comptes de mi vostè demanant una llàstima integer--, puc parlar per vostè? HANNAH: Sí. JASON Hirschhorn: Així Per exemple, en comptes de demanar-me alguna cosa amb final get, que Crec que podria haver vist una conferència, podria haver-hi una línia d'ordres. N'hi ha prou amb escriure a la línia d'ordres. Seria com - / hello4 o alguna cosa, o helloh h, el que sigui. Vostè ho fa en la línia d'ordres en lloc de ser preguntat per això, que la línia d'ordres és sempre una cadena, si es tracta d'un quatre o h, que sempre és una cadena. Així que això és un exemple de quan et poden tenir una carta singular o un singular nombre representa com una cadena. SHARON: D'acord. I llavors aquí hi ha alguns operadors bàsics. Esperem que vostè està familiaritzat amb la primera 4:00 acabem en general. Així que hi ha sumar, restar, multiplicar i dividir, i assegureu-vos d'usar les pulsacions de tecles correctes. I després també ha mòdul, que alguns que probablement no sigui familiaritzat. I el que fa és que en mòdul si prenem aquest exemple 4% 2, que pren la resta de el que fa a la divisió. Així que 4 dividit per 2 és 2, i no hi ha cap resta. 4 dividir per 3 és 1 i 1/3, i així resta gener. Així es calcula a un. I després 4% 5 és la fracció 4/5, i la resta és 4. Això té sentit? Acceptar, fresc. I seguim PEMDAS aquí també. Així que algunes expressions booleanes. Així que vostès han vist és igual als iguals per comparar, per exemple, dos nombres. Així que si és igual a 5 és igual a 5, que calcula el valor true. Comprovar si hi ha només un signe d'igual. Per no iguals, és colpejar o d'exclamació. HANNAH: Dos signes d'igual quan fas la igualtat. SHARON: Oh, sí. Assegureu-vos que vostè no ho fa tenir un signe d'igual. I després per no iguals, que és igual a l'explosió. I llavors vostè pot mirar a través de per menor que, major que. I després tenim lògica i i lògica o aquí. I el que fa és, si Te'n recordes de les ratllades quan vas tenir aquest bloc Dit això i, a continuació, podria encaixar dues peces diferents allà, això és el que aquesta i ho fa. I allibereu-ne dos símbols d'unió. I aquesta clau es pot trobar cap al dreta, just a sota del seu botó Elimina. Pregunta? ESTUDIANT: Quin va ser el [inaudible]? SHARON: OK, així que si vas a fer només un, vostè està comparant bits. Així que si et recordes del que els bits són, són de 0 i 1 de, i així això és la comparació d'una altra cosa. Així que ens centrarem en això per ara. JASON Hirschhorn: Així que un és igual a és com assignació, oi? Així com int x és igual a 4. Estàs dient que la variable x és igual a 4. Així que és igual a 1 és l'assignació, però els ands i les canonades o els bars, igual que Sharon va dir, són els operadors bit a bit. Vostè no ha de preocupar per això. ESTUDIANT: Quan s'utilitza lògica i i lògic o nou? Em vaig oblidar quan fas això. HANNAH: És clar, de manera que si alguna vegada vols per comprovar si dues coses són certes, per exemple, diguem que vull comprovar que és un nombre entre 5 i 15, Jo diria que segur de el nombre és més gran que 5. Així que diguem que si x és més gran de 5 i menys de 15. Així que per tal que tot declaració per avaluar veritable, que necessita tant de la classe de sub declaracions per avaluar el veritable. Amb o només necessita un dels dos o tots dos. ESTUDIANT: Genial, gràcies. SHARON: I també en Scratch, jo sóc segur que en molts dels seus projectes si vostè tenia de tocar la vora o si tocar un altre element sprite després rebotar o alguna cosa així. HANNAH: Molt bé, així que per què tenim es preocupen per tots aquests booleans? Hem aquestes estructures que hem vist en Rasca anomenada condicionals. I condicionals són res de l' formar si alguna condició o algun Boolean És cert, i després fer el codi entre aquestes claus. Així que vostè pot veure a la dreta aquí és el bloc de notes. Vostè té això si llavors, i res que entra en aquesta petita manera que sembla esto-- i no saben el que es cridar això-- això va a ser el de Boole o condició. Així que de nou, un booleà o condició és gens que, o bé avaluar veritable o fals. I de nou, vostè pot combinar Booleans. Vostè pot tenir, de nou, x és més gran a 5 i X és menor que 15. O vostè pot tot just tenir-ne un d'aquests x és menor que 5. Acceptar, pel que en C És a l'esquerra. És només la paraula clau si. Entre parèntesi, la condició o l'operador booleà. I a continuació, el codi entre aquestes dues claus només s'executarà, només s'executarà si aquesta condició o que booleana és veritable. Això té sentit? Impressionant. Okay. I llavors, com vostè pot han vist en Scratch, també podem afegir en un una altra cosa, que és bàsicament res entre el claus sota un altre només s'executarà si la condició és falsa. Té sentit? Qualsevol pregunta sobre aquests dos? Impressionant. Refredar. Així que aquí està un exemple ràpid. Diguem que volem determinar, basant-se en el temps, si hem de dir bona matí o bé a la nit. Vaig a dir si és abans de les 12:00 del migdia, anem a donar el bon dia, en cas contrari ens anem per dir bona nit. I quan li vaig dir que en cas contrari, això és equivalent a C a aquesta persona. Així que anem a comprovar si el hora militar és inferior a 12:00, donar el bon dia. Dir el contrari bona tarda. ESTUDIANT: Així que en realitat posava aquesta entrada per hora militar amb la cadena GET. HANNAH: Dret. Va fer algun altre lloc que havíem fet ha de proporcionar aquesta informació. Aquí mateix no té cap valor. Mai va arribar a declarar que. Suposo que en algun lloc per sobre de aquest programa em va declarar la vegada, o se li va preguntar l'hora, o-- qualsevol altra cosa amb aquest exemple? Impressionant. Bé, ara tenim més per així de simple si el format la resta, tenim dues estructures diferents. Així que primer hem l'interruptor declaració, i aquí està la forma general d'una sentència switch. Vostè té la paraula clau canviar la mateixa manera que vostè té la paraula clau si. I llavors una entrada, en aquest cas n. Així que aquesta només pot treballar amb nombres enters. Així que l'entrada té n a ser un nombre enter, d'acord? I anem a segueixi un d'aquests casos depenent del que el valor de n és. Així que en aquest cas, primer comparar n és igual a una constant, si ho és, fer tot el tipus de sangria per aquí. Puc dir que perquè sóc massa curt. Si no és igual a una constant i és en canvi constant igual a dos, seguirem aquest segon bloc, i podem fer això per les vegades com volem, i després que per defecte és si que no coincideix amb cap dels casos anteriors, executar aquest codi. Qualsevol pregunta aquí? Aquest és una mica més complicat. Sí? ESTUDIANT: Trencament a entendre de què? HANNAH: És clar, de manera que una vegada que entrem aquest bloc, si ens trobem amb, diguem, la nostra n és de fet igual a una constant, entrem en aquest bloc després dels dos punts. Nosaltres fem el que està en aquesta línia de comentaris, i després partim, la qual cosa significa que sortim d'aquesta sentència switch complet. ESTUDIANT: OK. HANNAH: Mm-hm? ESTUDIANT: És la sagnia necessària, o què necessites [inaudible]? HANNAH: És clar. Així que, com sempre, la sagnia no és estrictament necessari. L'equip no es importa si sagnia. Nosaltres, com a persones que són la lectura del seu codi, fer atenció. Així que és molt més fàcil mirar cap amunt a la pantalla i veig, oh, jo sé exactament el que succeeix quan n és igual a un constant. Si tingués guions a l'atzar, jo no seria capaç de dir tan fàcilment. Sí? ESTUDIANT: Així que si volia un usuari triï una de les opcions que tenim a la llista, ho faria utilitzem, suposo, [inaudible], però obtenir un nombre enter de ells i posar això en n? HANNAH: Exactament. Així que diguem que volíem per comprovar quin número sencer. Vam dir oh, introdueixi un enter entre 0 i 5, diguem. Podríem demanar que n, demanar aquest valor, i després tenir cada un d'aquests casos. I de nou, això és una cosa que podria molt fàcil veure amb si les declaracions, Oi? Podríem tenir si és igual a la sentència un, si és igual al cas dos, si és igual al cas 3, així successivament i així successivament. Això és una mica més ràpid i una mica més net. És una espècie de només una estructura agradable ara. ESTUDIANT: Més ràpidament que en l'escriptura? O que s'executi el ordinador una mica més ràpid? HANNAH: Es corre una mica més ràpid. Sí? ESTUDIANT: Així que el doble guió s'acaba de comentar o-- HANNAH: Oh, ho sento molt. No em vaig assenyalar. Bé, si vostè ha de //, és un comentari. Només // és un comentari. Així que cada vegada que l'ordinador veu que, va per dir bé, tot el que segueix això, jo només vaig a ignorar. Vaig a fer veure que mai va escriure això. ESTUDIANT: Així que això [inaudible]. HANNAH: Això no fa absolutament res. Però si he escrit alguna cosa així com a la primer comentari que vaig escriure en lloc de printf dir felicitacions que ha entrat una constant, que seria alguna cosa. Sí? ESTUDIANT: Així que a la vida real, la cas seria simplement ser un nombre i després [inaudible] seria un altre nombre enter. HANNAH: Exactament. ESTUDIANT: I ​​què necessiten els punts suspensius? HANNAH: Ho sento? ESTUDIANT: Cal que? HANNAH: Oh, no. Ho sento. Això va ser només per indicar que pugui continuar per la major quantitat de casos com vulgui. Anem a fer un exemple concret que podria fer les coses una mica més clares. OK, així que diguem que jo dic, Bé, dóna'm un sencer n que representa un nombre de classe, específicament una classe de ciències de la computació nombre. Així que si em dones 50, Jo vaig a dir molt bé. CS50 és una introducció a la informàtica la ciència, i després em vaig a trencar. Així que això significa de saltar de aquesta declaració tota interruptor, de manera que ara he acabat d'executar el codi, d'acord? Si vostè em va donar en lloc de 51 anys, que havia imprimir la segona declaració. I llavors, si vostè em va donar una mica de nombre que no era 50 o 51, Vaig a dir que ho sento, estic no està familiaritzat amb aquesta classe. Sí? ESTUDIANT: No té descans. HANNAH: Ho sento, no tinc descans? ESTUDIANT: Què passa si. HANNAH: Oh, i si vostè no té descans? Excel·lent pregunta. Així que el que succeiria és que vostè volia entrar, i que li tira sóc jo igual a 50? I diguem, sí, eres igual a 50, que li imprimeix el comunicat. I llavors seria continuar amb l'execució, pel que diria que sóc igual a 51? I va a anar i posar-se en marxa a través de tots els casos d'aquesta manera? Sí? ESTUDIANT: És la línia per defecte anàleg a dir una altra cosa? HANNAH: Exactament. Molt bona. És com el tipus de captura tot. ESTUDIANT: Així que si vostè no va tenir descans i després una de les declaracions de casos era veritat, i llavors aquest increment n per 1, llavors seria automàticament fer la següent. Seria comprovar cas 51, i a continuació, mostrar que tan bé? HANNAH: Sí, crec que això funcionaria. Pel que podria causar problemes de tipus, de manera que un descans és una bona cosa a tenir. Sí? ESTUDIANT: Sense descans hauria de fer el defecte? HANNAH: Aquesta és una bona pregunta. JASON Hirschhorn: Crec que només s'executa. Així que si vostè no té per break-- diguem que vaig fer 50 i vaig comprovar 50, i seria imprimir això. Imprimiu CS50 com a introducció amb la informàtica. Vostè no té descans, ha d'anar i seguir endavant fins que es realitza un descans. Així que si no hi ha trencament, que seguirà endavant. Es va a imprimir tota la resta. HANNAH: Així que suposo que ho faria ser inclosos per defecte. JASON Hirschhorn: Sí. HANNAH: Bona pregunta. Sí? ESTUDIANT: És cas considera una funció? HANNAH: Ho sento? ESTUDIANT: És cas considera una funció? HANNAH: És cas considerat una funció. Jo dubtaria a dir això. JASON Hirschhorn: Així que normalment quan veus funcions estaran entre claus. Així, per exemple, quan es mira en el seu codi, per exemple, principal. Va ser principals parin obertes, llavors buit, prop parin. Functions-- que són, bàsicament, sempre veuràs parèntesi. Així cas si el cas no tenir cap parèntesi, aquesta és la teva idea que això no és una funció. Però no ho és. Sí? ESTUDIANT: Així que llavors fa que fer canviar d'una funció? HANNAH: Això marques canviar una funció. ESTUDIANT: En el sentit que es posa alguna cosa en, que li dóna un dels casos. JASON Hirschhorn: I no diria que és una funció. No tot el que amb parens és una funció. Vull dir que és una pista que és una funció. Jo no diria que és un interruptor funció perquè no és realment tornar res. Et fiques en què més. HANNAH: Sí, només pensar en això com una estructura if. ESTUDIANT: Pot vostè niu això en una estructura if? HANNAH: Sí, vostè niu gairebé qualsevol cosa. ESTUDIANT: Barry va dir que les cotitzacions són una mena el mateix que els altres. Així que vostè pot reemplaçar les cometes amb els altres? HANNAH: No en aquest particular, estructura perquè l'interruptor declaració està esperant la paraula per defecte. L'equip sap que per defecte significa alguna cosa especial, que significa la captura de tot. Alguna cosa més sobre això. Tenim un més per passar. Sí? ESTUDIANT: [inaudible]. HANNAH: Diferència entre utilitzant un punt i coma i dos punts. Així que un punt i coma és dir-li a la sempre ordinador he acabat amb aquesta línia. Vostè pot seguir endavant i executar-lo. Aquesta és una línia completa. Un còlon va a, en aquest cas, et s'endinsen en un bloc de concret. Així que punt i coma són utilitzar sempre per acabar línies. Els dos punts s'utilitzen per a una varietat d'altres casos. ESTUDIANT: Això és equivalent a simplement dient que si n és igual a 50, llavors bla, bla, bla. HANNAH: Mm-hm. ESTUDIANT: És el mateix [inaudible]. HANNAH: Exactament. I vam dir que corre una mica més ràpid. Si no tinguéssim el descans, que seria com si, si, si. Si tenim la ruptura, que és com si una altra persona si una altra cosa si la resta si. Fresc? JASON Hirschhorn: Així que quan codificació, vostè pot simplement utilitzar si la resta, però crec que l'any passat en el qual prova havien de escriguin una sentència switch, així que per si de cas. HANNAH: Però sens dubte res dolent. No esperem que vostè es preocupi coses boges sobre rendiment. Només si la resta és totalment bé. Aquests són només bona coses a tenir en compte. I aquí està el nostre últim aquest tipus de cau dins d'aquesta categoria condicional. Tenim una mica de la estat general forma ?, i després un petit tros de codi que passa si la condició és veritable. I després dos punts, una mica tros de codi que executa si la condició és fals, punt i coma. Hem acabat amb aquesta línia. Així que sintàcticament és una mica lleig. Anem a anar a través d'un exemple crec que això és més clar. Així que volem assignar el professor cadena a un d'aquests dos valors, ja sigui David Malan o no David Malan, d'acord? Així que vostè ha d'estar familiaritzat amb la cadena, professor =. Anem a assignar una cadena al professor variable anomenada. Ara volem comprovar un condició particular. En aquest cas, la nostra condició és class_num = = 50. I ara podria ser un bon moment per assenyalar quan tenim professor cadena =, Que és un signe d'igual. Aquesta és l'assignació. Mentre que en class_num = = 50, que són dos signes d'igual. Això és un control de qualitat. Així que anem a dir que és el nombre de classe igual a 50? Si és així, assigni el professor David Malan. Si no és així, assignar professor a no David Malan. Qualsevol pregunta allà? Un cop més, això és només una cosa això és bo saber-ho. Vostè pot fer això amb els altres si. Un problema bona pràctica podria ser que, quan te'n vas a casa, a la dreta de la mateixa exacta condicional en una forma més si, perquè es pot fer això. Qualsevol pregunta aquí? Molt bé, crec que estem passarà als bucles. Impressionant. SHARON: OK, anem a parlar aproximadament, mentre que els bucles. Així que primer de l'esquerra que es veu aquí-- Acceptar que diu mentre, while (condició). I llavors ho fas esto-- podem canviar això? JASON Hirschhorn: Es va tallar. SHARON: Acceptar i, a continuació, hi ha són també les claus. Així que pretendre que arrissat claus hi són a dalt i per sota de la fer això una i altra vegada. Així que si la condició en aquells parèntesi s'avalua com a veritable, llavors vostè ha de seguir fent el que està en el bucle while. Així, per exemple, podríem fer un problema de la pràctica. Estic usant dos pendents en aquest moment, així que diguem si estic fent servir com a mínim un escoltar, aplaudir les seves mans. Així que si anirem a través d'això, estem going-- [Aplaudiments] Dreta? I jo estic fent servir un, i- a D'acord. Sí. Jo no porto pendents més, així no més. Acceptar, pel que llavors és quan vostè detingui. I això es podria dir que és equivalent a gairebé variables. Diguem que vostè té un nombre variable de pendents. Així, mentre que el nombre de pendents és més gran que o igual a 1, aplaudir mans. I després, després d'aplaudir mans, pendents decrement. Fes com pendents, almenys 1. Així que disminuir el nombre de pendents, i llavors vostè va a anar a través del bucle while dues vegades. I si la condició és sempre cert-- pel que si, diguem, 2 = = 2, i 2 és sempre igual a 2, oi? Després ho faria sempre fer alguna cosa allà, i això és equivalent a gairebé el sempre bucle que hem tingut en les ratllades. Sí? ESTUDIANT: Són els dos costats només diferents maneres d'escriure un bucle while? SHARON: Així que estem enfocats en aquest cas primer. I a continuació, per la qual cosa anem a comparar amb un do while. Així que són una mica diferent. OK, així que diguem que l'estat segueix sent mentre que jo estic fent servir com a mínim un pendent, i jo no estic fent servir qualsevol pendents en aquest moment. I diguem que fer i encara aplaudir mentre Jo estic fent servir com a mínim un pendent. ¿Què ha de passar? [CLAPS] Uh oh, nois. Acceptar, per la qual cosa se suposa que aplaudir una vegada perquè en el fons vostè anar a través de la primera part del codi. Vostè ho fa tant i fa, i llavors vostè veu la condició, mentre que, i que vagi de nou a aquest bucle si és veritat. Això té sentit? ESTUDIANT: Vostè sempre fer-ho la primera vegada. SHARON: Sempre ho de la primera vegada, independentment de si o no aquesta condició és vertadera o no. JASON Hirschhorn: En fer Creus que podries fer servir això? Quan té sentit utilitzar aquest? HANNAH: Sí? ESTUDIANT: [inaudible]. JASON Hirschhorn: Dret. HANNAH: Molt bona. JASON Hirschhorn: Així quan vostè demanar a un usuari, vostè va a voler sempre per demanar a un usuari una vegada. Un sempre voldrà per demanar a l'usuari una sola vegada. Així que en lloc de posar en un bucle de temps, vostè posat en fer mentre bucle, perquè ets sempre va a fer una vegada. Si te la donen resposta correcta, ja està. Si no ho fan, llavors tornar a impulsar-los. SHARON: Molt bé, per als bucles. Així que en Scratch, vam tenir blocs de repetició. Així que volíem repetir alguna cosa, diguem, set vegades. Així que acabem de dir repetir 7, i dic que sóc aquí per ajudar a Blancaneus! En C, que tenim per bucles si volen passar per alguna cosa un nombre específic de vegades. Diguem que si inicialitzem els nans variables i fer sure-- pel que el primer bloc allà mateix abans del primer punt i coma, inicialitzem la nostra variable a, i ens vam posar a 0. I la nostra variable existeix és un nombre enter, int. I el nom de la variable és nans, i ens vam posar en nans a 0. I la segona part entre el 2 punt i coma és la nostra condició. I així, sempre que els nans és inferior a set, seguirem anant a través d'aquest bucle. I després l'última part és el que fan fem al final d'aquest cicle for? ++ Nans, i això vol dir que incrementar nans per un cada vegada. Llavors, ¿què passarà aquí? Així que primer anem a anar a través. Tenim nans com a 0, i després anem imprimir Estic aquí per ajudar Blancaneus! I llavors els nans es van a augmentar perquè vam dir nans ++. Nans serà 1. I després ens compare-- nans és 1. Ens comparem amb els nans és de menys de 7? Sí. Vaig a passar per això una altra vegada. Estic aquí per ajudar la Blancaneus! I llavors es converteix en nans 2, i després ho comparem. És 2 menys que 7? Sí. Seguirem endavant a través. I anirem a través d'aquests set vegades. Així que al final, anem a tenir nans = 0 impressió que sóc aquí per ajudar a Blancaneus! nans és igual a 1, 2, 3, 4, 5, i 6. Recorda que en l'índex 0. Així que vam començar amb 0. Sí? ESTUDIANT: Així que això és diferent de la DO perquè això no s'imprimeix inicialment al principi. Pel que podria seguir la mateixa cosa. Podria fer això també amb el bucle do? De la mateixa manera que el mateix procés. La condició és nans menys de 7 o el que sigui. Resposta és inferior a 7. SHARON: Així que podria tècnicament. Així que si ens remuntem A-- el seu parlar sobre el bucle while, oi? Així que el do while és lleugerament diferent perquè ens garanteixen, com a mínim, una vegada que anem a anar a través d'ell, així que aquesta és la diferència més gran. Però amb el bucle while que vam poder dir mentre els nans és inferior a 7, fer això, i després incrementar nans per un. I llavors hem de inicialitzar nans abans de tota aquesta declaració que és igual a 0. Així que sí, podríem fer això amb això. Mm-hm? ESTUDIANT: Es pot tornar a [inaudible]? SHARON: Per llaç? ESTUDIANT: Sí, així que amb els nans ++, sembla que és el que fas després que ha executat algun altre mitjà. SHARON: Correcte. ESTUDIANT: Podria vostè acaba no ha de posar i it-- SHARON: Vostè podria. ESTUDIANT: així [inaudible] just després imprimir a la següent línia sota. SHARON: Sí, vostè podria posar-lo allà. Però llavors ho faria simplement deixar que buit. JASON Hirschhorn: Vostè encara necessitarà el punt i coma però. SHARON: S'assembla una mica incòmode, però vostè podria tècnicament fer això. Tècnicament. Si us plau, no ho facis. Sí? ESTUDIANT: Hi ha alguna alternatives a ++? Hi ha res més [inaudible]? SHARON: Tècnicament És nans. Un signe igual anem per establir-ho en nans més 1. Així que tècnicament això és el que significa nans ++. Això té sentit? ESTUDIANT: Sí, però es Hi ha alguna alternativa? Igual que si vostè ever-- SHARON: Sí, vostè podria fer nans - -. ESTUDIANT: [inaudible]. SHARON: Sí, vostè podria fer una sèrie de coses. HANNAH: I es podria incrementar en un 2. Vostè podria incrementar en un 3. Qualsevol cosa que estarà canviant, amb el temps farà que la condició. ESTUDIANT: Així que si vostè volia incrementar per 2, com s'escriu això? HANNAH: Vostè podria escriure dwarves-- vostè podria escriure tot això a terme. nans nans = + 2. O una mica de la taquigrafia. Jo només vaig a escriure + és igual a 2. ESTUDIANT: OK, i que li escriu que just on nans ++ hi és. HANNAH: Exactament. SHARON: Correcte. Hi havia una altra pregunta? Sí? ESTUDIANT: [inaudible] nans ++? SHARON: Així que no- JASON Hirschhorn: Sí, no cal allà. [Inaudible] final. Així ho fa [inaudible] estimats perquè vostè és tipus de divisió de la inicialització, condició, i el canvi. Al final, vostè no ho necessita. SHARON: Observi també que no cal el punt i coma després de tot el tot per al bucle. ESTUDIANT: Com començar un nombre inicial de negatiu, per exemple? SHARON: Pot inicialitzar nans igual a la negativa febrer. ESTUDIANT: És vostè només Dash 2? SHARON: Sí, per la qual cosa el signe negatiu, guió 2. ESTUDIANT: És [inaudible] per inicialitzar com nans [inaudible]? SHARON: Sí. Així que si només havíem inicialitzat nans anterior, acaba de fer un punt i coma nans int, i llavors no podem fer nans que estableixen igual a 0. ESTUDIANT: Podríem fer-ho abans a el programa dient int nans = 0, i després sol-- SHARON: Simplement no tener-- així no hi hauria un espai nou, però vostè encara necessita un punt i coma. Sí. Mm-hm? ESTUDIANT: Aquest codi diu el el valor dels nans és després. Si li preguntes a ell després de tot això és fet per imprimir el valor dels nans. SHARON: Vostè podria demanar-li que fer això. ESTUDIANT: OK. SHARON: Però ho faria haver de demanar a fer això. No ho faci per vostè. Tinc por de posar els meus pendents de nou. Fes-ho al final per l'aplaudiment. És una broma. JASON Hirschhorn: Així que això és el mateix. Així que inicialitzar a la part superior. Condicions, impressió, el canvi. Així que aquest és exactament el mateix que que si tothom pot veure que. ESTUDIANT: Per què no té la punt i coma en la primera línia? SHARON: On? ESTUDIANT: Després de la primera línia. SHARON: Després de la 4 en els parèntesis? Perquè volem anar A través d'aquest bucle a. I si vostè fes un cop d'ull als bucles en en general, que no tenen punt i coma. No és pràctic. Estem bé? Una pregunta més, dos més. Sí? ESTUDIANT: Això podria ser una mica avançat, però fer nans tenen un diferent [inaudible] a partir d'una variable [inaudible]. SHARON: Molt bona. ESTUDIANT: [inaudible]. SHARON: Sí, ho és. Què? JASON Hirschhorn: Sí, pel que fa. Així que normalment l'abast de alguna cosa està en les claus. Així abast sempre va estar en les claus, però que no faria molt sentit per al bucle for perquè hem inicialitzat nans en què claudàtor. Així que normalment l'abast dels nans, que variable no s'estendria més enllà d'això. Aquest és un cas especial, encara que. Així que el inicialitzi dins dels parèntesis, i llavors vostè té l'abast més endavant. Així cas especial. No han de tenir això, i que era-- Això té sentit? ESTUDIANT: No. JASON Hirschhorn: Em pot anar-hi. Llavors, què està vostè encara confós sobre? ESTUDIANT: Com pot vostè utilitzar en dwarves-- vostè pot utilitzar òbviament nans [inaudible] fora de la fórmula també? JASON Hirschhorn: No, no. Així que l'abast de la mateixa és només dins de la claus per al bucle for, sí. SHARON: Però si inicialitzar nans fora del bucle, a continuació, es pot utilitzar en altres llocs Hi ha una pregunta més? No? Okay. Així que parlem una mica sobre implantació per bucles o condicionals d'implantació, si les declaracions. Així que aquí està un exemple d'on vam poder niu un bucle for. Diguem que estàvem imprimint aquesta taula de x és aquí. Podríem voler A-- primer si simplement no mirem el codi i només pensem en això, ens vull anar a través de cada fila i imprimir cada columna, oi? Això té sentit? Okay. Així que aquí estem passant per cada fila per a cada fila, bàsicament, i hi ha tres files. I a continuació, dins de cada fila per a cada columna, i hi ha quatre columnes, imprimiu una x. de manera. Quan fila és 0 i la columna és 0, imprimim aquesta x. I després seguim endavant a través del bucle de la columna. Fila segueix sent 0, però la columna és un. I a continuació, la columna és 2, i després la columna és 3. I després vam sortir d'aquest bucle perquè llavors la columna ja no menys de 4. I després imprimim una nova línia, i ens anem a la nova línia. I després anem a través de la següent fila i fila s'incrementa, i anem per això una altra vegada. Això té sentit? Sí? ESTUDIANT: Llavors per niar [inaudible] és simplement posar-lo a l'interior del bucle for? SHARON: mitjans de nidificació Així que nosaltres tenir un bucle for dins d'un bucle for, com Origen. ESTUDIANT: No necessita un rotació especial o alguna cosa? Vostè acaba d'enganxar les coses bé dins d'ella? SHARON: Correcte. Sí? ESTUDIANT: Podria ser [inaudible], però sembla que hi ha un espai extra entre totes les x. No sé si Això és-- Si això anaven a fer realitat el programa, caldria fer alguna cosa així? SHARON: Pel que no. Això va ser de prémer ENTER. Això va ser dolent per la nostra part. Demanar disculpes. HANNAH: Com canviar aquesta programa si vostè va fer una línia addicional? ESTUDIANT: [inaudible]. SHARON: Bon treball. ESTUDIANT: Vostè també pot imprimir el mateix cosa pel canvi al voltant de la columna, Oi? SHARON: Hm? ESTUDIANT: Llavors per imprimir el seu petit xxx, la primera línia es pot dir d'impressió, i en comptes de dir fila, diu la columna. SHARON: Així que podria canviar els noms de les variables que fan això. És això el que estàs dient? ESTUDIANT: No, jo només sóc dient que-- pel que és files d'impressió primer i a continuació, imprimir columnes. Pots també imprimir les columnes primera i a continuació, les files per obtenir el mateix diagrama? SHARON: Vostè podria, però llavors vostè hauria de tenir cura d'on es posa la nova línia. I com saltar de nou? JASON Hirschhorn: Si només canviem i els valors van ser diferents, en lloc de tenir passatges autoritzats què és? Tres per quatre. I Vostè tindria quatre files i tres columnes. Això té sentit? ESTUDIANT: Sí. JASON Hirschhorn: Així sí, vostè podria fer això. Sí, sens dubte. SHARON: Però això seria, literalment, només canviar els noms de les variables. Bona? Okay. D'acord, P d'un conjunt. Acceptar, de manera que la primera part d'ella que va a fer això, Mario. És una broma. És de la mateixa família. I així, quan ens fixem en la niat per bucles, fent que la taula, pensar en com podria ser capaç de imprimir aquestes hashtags d'aquesta manera. I llavors aquí com ho faria vostè imprimir aquesta aquí, aquest espai obert. ESTUDIANT: [inaudible]. SHARON: Sí, vostè acaba d'imprimir un espai. Acceptar, de manera que només de pensar en això. HANNAH: I després el mateix part del conjunt de problemes és un programa que es diu greedy.c, pel que ets voldrà pensar sobre els condicionals i assegurar-se que vostè pot fer el canvi correcte. I un petit avís que tenim per a tu es tingui cura de valors de punt flotant. Si això significa absolutament res per a tu, que serà cobert en la conferència d'aquesta setmana i també en [inaudible] caminar a través, que vostès aprendran a l'amor en els butlletins de problemes. Una cosa que realment et suggereixo, especialment amb Mario.c, quan estàs fent el problema establir, si et quedes encallat, començar per fer-ho en paper. Escriu i realment seure allà i pretén ser l'ordinador, i van through-- diuen Jo fos l'ordinador, Com seguiré això per bucle a través de? Com seria la meva variables en el canvi de bucle? Així ho fa en el paper fa que sigui 10 vegades més fàcil quan vostè va a seure a l'ordinador. Així que el meu petit tap. SHARON: I també no pensar que vostè haver de codificar tot d'una vegada. Assegura't de portar un procés iteratiu. Fer una mica petita, d'impressió cap a fora, veure el que passa. A vegades és una mica d'assaig i error. I arribat a les hores d'oficina. Super divertit. JASON Hirschhorn: així que qualsevol pregunta? Tots els nois adequats, que va ser la seva primera secció. HANNAH: Gràcies per venir. JASON Hirschhorn: Gràcies per venir. SHARON: Gràcies. [Aplaudiments]