[Powered by Google Translate] David Malan: Aquest és CS50, i aquest és el començament de la Setmana 1. El que nosaltres pensem que ho fan avui dia és fer una ullada enrere en cosa que molts de vostès probablement va passar per alguna temps i pot semblar una mica familiar. Aquesta cosa aquí, això és clar és al - AUDIÈNCIA: Ciència. David Malan: Science Center. Així que això és realment una de les primeres computadores A la tornada de la dècada de 1940. Va ser un dels equips electromecànics de primera que era capaç d'especialment llarga, sostingudes càlculs, i el que veiem en el centre de la ciència és només una petita part d'aquesta cosa. El que pensem que seria millor fer llavors és prendre un cop d'ull a un vídeo que es va fer fa algun temps, la introducció d'aquesta cosa al món. I veuràs des de la música i la veu que, efectivament, els Eren temps molt feliços. [REPRODUCCIÓ DE VÍDEO] -Un triomf de l'habilitat matemàtica i la mecànica és la següent gran nova calculadora automàtica de la Universitat de Harvard. Un complex entramat de problemes en matemàtiques, passar pel màquina en forma codificada a la cinta, cal resoldre en un fracció de minut el temps requerit per humans càlcul. Dissenyat per agilitzar totes les formes de matemàtica i científica investigació, el cervell mecànic gegant va a treballar per les Nacions Unides Marina dels Estats fins al final de la guerra. David Malan: Així que el que potser no sap és que va ser en aquest mateix dispositiu que un terme que ara tots prendre més o menys per fet va ser encunyat, el d'un insecte. Així que un dels enginyers que treballen en aquest equip literalment trobar una petita arna en la màquina que va donar com a resultat en alguns càlculs incorrectes. I a mesura que la història diu que la arna es va gravar en aquest registre revista aquí, de tornada del 9 de setembre de 1940 i tants, i així va néixer per al món el terme "bug". Així que a partir d'ara considerem errors a haver cap tipus d'errors en la programes, siguin d'origen humà o, en aquest cas, els insectes. Així que alguns anuncis, a mesura que avancem. Així CS50 té una tradició d'oferir àpats de tot tipus de majoria dels divendres durant el semestre, on es pren de 30 a 40 estudiants en Fire and Ice in the Square per casual xerrada, parlar de la informàtica, parlar sobre el futur. Convidem a exalumnes i amics de la indústria per xerrar els estudiants també. Realment cap a un extrem de fer el que és una classe bastant gran encara més íntims, si més no de tant en tant per subgrups d'estudiants. Així que si vol unir-se a nosaltres avui, 1:15 PM, aneu a CS50.net/lunch per confirmar la seva assistència. I ho farem recurrentment, no així et preocupis si no ets entre els primers 30 o menys aquesta setmana. Així que pren nota de escrivà. Una paraula sobre els recursos que ara començarà a ser disponible als estudiants a la classe. De manera que el cap no ha de ser cap avall durant les classes anotant tot el que dic i així successivament, el que fem en el seu lloc s'ofereixen des del personal docent li conjunt canònic de notes. Així que tenim una de les investigadores nostre ensenyament, Andrew Sellergren, que se senti cada setmana, revisa els vídeos, i després escriu el que creiem que és una molt conjunt autoritzat de notes. I estimo d'Andrés, també, de posar notes al peu en snarky la part inferior. Així que t'esperem gaudir d'aquests com un llibre de referència per diversió, i també, arribat Quiz Time, com una oportunitat per revisar el que va passar en conferències individuals. Així que aquests estan vinculats a la pàgina de conferències. Conjunt de problemes 0, en tant, està fora. I en termes dels recursos disponibles per a vostè - el tutorial. Milo va dirigir la primera el divendres. Va ser filmat, posat en línia el dissabte. I així donem compte, si no estàs molt segur de per on començar, per aquesta o futures de p sets, sempre en primer lloc el tutorial o el mateix vídeo. Seccionament està en curs i, al cs50.net/section és on es hauran de presentar les seves preferències, si no ho ha ja, per ara. Com que les seccions s'iniciarà diumenge, dilluns, i dimarts. Fem seccions aquests tres dies, totes les setmanes de l' semestre en la seva major part. I també introduir, de nou, les diferents pistes. Llavors se li demanarà en aquest formulari seccionament, si no ho he vist, si vostè està entre els menys còmode, més còmode, o en algun punt intermedi. I si tens sort de la tanca, en general en algun lloc de entre el que és la majoria dels estudiants acaben de xecs. Horari de començar aquesta nit. Així Scratch és força baix clau, tot i que és molt natural per funcionar en diversos errors i ser incert pel que fa a com implementar alguna cosa. Així adonem que començarem les hores d'oficina aquesta setmana. Estaran en Annenberg dilluns, dimarts, dimecres, Dijous, de 8:00 pm a 11:00 pm durant trencament del cervell. Classmen superior pot entrar, i fer si mai té problemes a la porta, perquè van a pispar, parla a la seva manera i expliquen que estàs amb CS50. Típicament de 20 a 30 de nosaltres en el personal estarà allà per ajudar vostè un a un. En arribar la idea és la següent: vostè porta el seu ordinador portàtil, vostè tindrà el seu carregador, tindrem els cables de corrent extra, particularment al llarg de la paret sud del Annenberg on hi ha un munt d'endolls elèctrics. I el principal punt d'entrada a horaris d'oficina Q & A és anar a cs50.net/discuss i per publicar els teus dubtes. I per etiquetar amb pset 0 o conjunt de processadors 1, sigui quina sigui la setmana vulgui es trobin. I llavors el que farem és tenir una taula de becaris d'ensenyament i els assistents del curs, generalment de 8 o 10 o així de nosaltres, passant, mantenir un ull vigilant sobre el tauler, i arrencant preguntes realment el més ràpid que puguem, referint-se als missatges relacionats si vostè no ha trobat els vosaltres mateixos, referències en línia, segons correspongui. I després, si hi ha problemes, ja que, inevitablement, serà, o simplement té més sentit per seure un a un, resoldre problemes amb algú. O vostè acaba d'entrar en hores d'oficina realment necessitat d'aquesta mentalitat. No vol anar a través del formulari electrònic, realment vull conèixer algú. Comunicar que per a nosaltres, i el que succeirà és quan la seva qüestió ha estat vist per un membre del personal, i determinar, yup, això ha de ser enviat a una de les 20 o 30 membres de l'equip aquí localment, podràs veure a la part superior esquerra aquesta Introduïu el petit botó Cola comença a parpellejar en cs50.net / discutir. I això li està dient que ara han estat convidats, de manera que per parlar, per entrar a la cua. I en fer clic en aquest botó, el seu nom apareixerà en un iPad que la interfície CS50, un dels caps del curs, es celebrarà prop de l'entrada de Annenberg, que llavors veiem com es mostra aquí, els estudiants que tinguin preguntes sobre l'esquerra, els membres del personal que són presents a la dreta. I amb un clic esquerre i dret, el seu navegador web començarà a parpellejar quan, per exemple, el professor McGonnagal està disposada a veure't en una taula en particular en Annenberg. Així que vam fer una mica d'això l'any passat. Hem reiniciat les hores d'oficina i reimplementat gran part del programari. Així que adonar-se que aquest s'escalfi aquesta setmana. Però també s'adonen també, en els últims anys, com vostè pot haver sentit dels amics, les hores d'oficina en efecte tenia entre 50 i 150 estudiants alhora. I no és simplement impossible per a nosaltres per manejar aquest efectivament, un a un, al llarg de la nit. I així el que realment anem a tractar de fer aquest any és aprofitar el fet que una gran quantitat de preguntes estan preguntes més freqüents i, sovint es pot respondre millor de manera asincrònica. Així que es pot ordenar de pensar a través de la resposta del funcionari, i podem pensar a través del seu codi, sense la calefacció pressió de lluitar necessàriament a través d'ella al costat de l'altre. Per tant s'estima que aproximadament un terç o la meitat de les preguntes serà enviat a persona, i tractarem d'arrencar com molts com un mitjà més o electrònicament, durant les hores d'oficina. I continuarem utilitzant Comenta al llarg de la setmana també. I, finalment, es donen compte que aquest curs pot ser pres passa / no passa. Així que si vostè està en la tanca o simplement pensar que ets realment no estic segur si aquest és el món per a tu, o això és realment absolutament aliè a tu, tingueu en compte que aquesta és una manera meravellosa de guanyar una mica de confiança amb què fer un pas en la classe, com ho vaig fer jo, francament, fa anys. I després tenim cinc setmanes per ordenar la figura cap a fora per si vol romandre passa / falla, canviï a una carta grau, o similar. I en general el que passa / falla és, crec jo, per als estudiants és que, si es posa en aquests 10 hores, 20 hores, sigui quina pot estar en problemes, i que està colpejant el seu cap contra la paret, i que realment no pot perseguir alguna cosa a baix, i vostè té moltes altres coses que cal fer, de veritat, el que jo Crec passa / no passa és que es necessita la vora de situacions com aquesta. Si vostè ha pres la cosa el 90% del camí. Ja saps, no és del tot perfecte. Però vostè té un munt d'ell, però. Així que consideri passa / no passa com que li dóna aquest model mental, potser. Durant tota la setmana dreta, per l'últim que es va capbussar en Scratch, i ens va parlar sobre la programació en un nivell gràfic bastant alt. I avui fem la transició a una llengua anomenat C, un llenguatge de programació més avall en la part superior de que moltes llengües modernes es construeixen ara, fins i tot alguns dels que utilitzarem a finals terme. I sintàcticament, el que semblen és tot molt semblant. Així que anem a començar a fer aquesta transició aquí. Així que aquest era un programa de la setmana passada que era el més simple de hola programes mundials. Simplement imprimeix a la pantalla hola món, amb una entrepà petit que surt del gat. Bé, si comencem ara a traduir això a un altre idioma, s'adonen que les idees d'avui i dimecres són idèntiques, però la sintaxi comença a canviar. Així que, la setmana passada vam tenir, quan fa clic a la bandera verda, per exemple hola món. Avui tindrem int, void main, printf, A canvi, amb una sintaxi altre en allà també. Els claudàtors i parèntesis i cometes, i altres coses. Però adonar-se que el nucli de la idea és la tecnologia d'impressió, i, finalment, el fet que la principal és ara serà sinònim de la partida d'un programa. Principal serà on la bandera verda trepitja les coses. Així que ara anem a separar alguns dels components bàsics aquí Abans d'aprofundir en alguns exemples concrets. Així que ens van cridar aquesta setmana una última declaració, pel que és just una instrucció. Feu això - en aquest cas, per exemple hello world. Bé, al carrer, si mirem només aquesta línia, aquesta és la forma en què estem començarà a expressar aquesta peça del trencaclosques particular: printf ("hola món");. I ara anem a fastiguejar les distingeix més i més amb el temps, però s'adonen que hi ha un patró aquí. Per tant, tenim aquesta cosa anomenada printf, que és essencialment anàloga a la paraula Say. Això és el que farà. Printf, if aquí significa "formatat". Per tant, només significa que vostè pot inserir diversos detalls estètics. Així que entre cometes és el començament del que anem per començar a trucar a una cadena. Una paraula, una frase, una oració. Una cadena en un llenguatge de programació és una seqüència de zero o més caràcters. Així que h-i-l-l-o, coma, i és així successivament, entre cometes, una cadena. I ara backslash n, una mica estrany sintàcticament, però ja s'ha definit que la setmana passada en el sentit que? És només una nova línia. És només una forma de transmetre a l'ordinador que vostè desitja que el equivalent de colpejar la tecla Intro allà, però no ho fa volen colpejar realment Entra i per tant espatllar tota la format del seu programa actual. Ara els parèntesis inclouen aquesta cadena, parin obert i parin prop i dins d'això és la nostra cadena. Perquè això és degut a que en C, i altres programes llengües, coses com printf prenen arguments, o prendre paràmetres. Així que començar a pensar ara d'aquest bloc Say porpra com un funció, com un mètode, com un procediment. Segur que es pot dir el que vulguis, per ara, però és una espècie d'un programa en miniatura que només fa una cosa, en una sola línia, ni menys. Així que printf és també el que començarem a trucar a un funció, i les funcions de fer alguna cosa - en aquest cas imprimeix una cadena amb format a la pantalla - sinó que funciona també prenen arguments o paràmetres. I per arguments o paràmetres, gràcies, volem dir que el seu comportament pot ser influenciat pel que passa en dins dels parèntesis. Així que en aquest cas, les necessitats de printf se'ls digui el que voleu imprimir, i passeu a, entre cometes aquí, la cadena que ens realment voleu imprimir. I el punt i coma al final d'aquesta línia és només una molèstia històrica segons la qual al final de la majoria de les línies de codi, es posa un punt i coma per fer súper clar per a l'equip que aquesta línia de codi acaba aquí. Ara bé, això és bo, perquè com veurem com obtenir més programes complex, el punt i coma farà súper clares per a nosaltres els éssers humans, i també l'ordinador, on les línies de codi d'inici i de fi. Adonar-se que alguns llenguatges no tenen algun d'aquests mateixos detalls. I de fet, en JavaScript, que no sempre es necessita alguna cosa com el punt i coma. Però més sobre això més per venir. Així bucles. Teníem una cosa així, molt intuïtiva, òbviament, fer alguna cosa una i altra vegada i una altra. Com posar-se els mitjons, o dir hola, en aquest cas. Doncs bé, a partir d'avui en C, que podríem expressar aquesta esgarrapades bloquejar com while (true) printf ("hola món"). Així notar que estem començant a construir literalment en el trencaclosques peça d'abans. Tenim el mateix bloc morat, però és dins d'aquest Sempre entre claudàtors bloc, i la millor manera de traduir que per C és aquest. No hi ha cap paraula clau per sempre. No es pot escriure f-o-r-i-i-v-r en C. Així que l'anàleg més proper és temps. Ara bé, mentre que (veritat) sembla una mica estúpid perquè té el valor de canvi mai és veritat? Presumiblement no. És com dir que mentre un, mentre que d'ara endavant, mentre que cert. Tot és el mateix, veritable és sempre el cas. Així que aquest circuit és en realitat la inducció de quin tipus de bucle? Només un bucle infinit, és clar. Un bucle infinit o com el va anomenar la setmana passada, només un bucle infinit. Així que de vegades això és dolent. De vegades això és un error, de vegades és per això que et donen la pilota de platja girant o rellotge de sorra o similar. Però en aquest cas, de manera deliberada, per a la qual raó, volia imprimir la mateixa cosa altra vegada i una i altra vegada. O en el cas d'un rellotge, que vol fer alguna cosa una i altra vegada i una altra. Així bucles infinits podria tenir sentit. I és així com en C que podríem traduir per sempre amb el codi. Així que ara aquest és una mica més específic. Havíem repetir 10 vegades la declaració. Així, mentre que (veritat) no acaba de funcionar allà, perquè és la veritable sempre és cert. Així que si en lloc de mirar la versió C, ara la sintaxi obté una poc més críptic. Però per ser honest, quan un s'hi comença a veure això, tot es torna bastant familiaritzat amb rapidesa. Així que això és el que s'anomena un bucle for. Un bucle que va a dir-li a l'ordinador que faci alguna cosa una i altra vegada i una altra durant el temps que aquestes coses són veritables. Ara, què volem dir amb això? Bé, hi ha tres parts per un bucle for, i anem a tornar a això en el context de l'actual exemples en un moment. Així que no et preocupis si no acaba d'enfonsar en un sol cop. Però int i = 0 és, conte llarg, dient dóna'm un variable que és de tipus sencer, així que dóna'm un nombre anomenat i, i s'inicialitza a 0. Això és donar-me com una variable x algebraica i inicialitzar a 0. Però en aquest cas l'anomenem i. Llavors en el medi, es diu i és menor que 10. Això diu l'ordinador és els materials següents, sempre com i és menor que 10. I, òbviament, que s'inicia a menys de 10, perquè que comença en 0. Llavors, finalment, potser puguis endevinar el que significa + +. És una mica de sintaxi que només significa incrementar i. Així que afegir 1 a i, una i altra vegada i una altra. I així, com veurem aquest bucle, aquesta sintaxi, més aviat, posa en pràctica precisament la mateixa cosa que, francament, en Scratch era tan molt més fàcil d'expressar. Repetiu 10, i ja està. En C, i en la majoria dels llenguatges de programació, que ha de ser un poc més instructiu per a l'equip i en realitat especificar alguna cosa com això. Però anem a tornar a aquesta i altres sintaxi. Quines variables? En Scratch teníem una mena aquests blocs de color taronja, on podria declarar una variable. Anem a cridar arbitràriament en sentit contrari. Anem a inicialitzar a 0 i, a continuació, sempre farem alguna cosa. En aquest cas en Scratch que estic dient el taulell, de manera que el gat tindrà un entrepà petit que està parlant el nombre que hi ha en aquesta variable. I després tenim comptador de canvi en 1. Així que tot això està embolicat dins d'un pany Forever. Així que ara ja tenim els elements bàsics en C amb que per traduir aquesta. Una manera com podria fer-ho és la següent. Dóna'm un nombre enter, en diuen taulell. Inicialitzar a 0 en la primera línia allà. Mentre que (veritat), així que estic robant la idea d'un moment fa, seguir endavant i fer el següent. Imprimir el comptador, i després incrementar el comptador, de nou, i de nou, i de nou. O, de nou, + + només significa afegir 1 a alguna cosa. Però hi ha una nova peça de sintaxi aquí. Què està saltant com no es troba entre els exemples anteriors? Sí,% d. Així que potser pot inferir què està fent això, francament, basat en el que el bloc Scratch està fent. Però, de nou al carrer, només hem de ser una mica més concret a l'hora d'expressar-nos. Així printf ("% d \ n"). Bé, la major part de que podem tirar tan familiar. Les cometes només significa que és una cadena, la barra invertida núm és només una nova línia. Així que l'única cosa nova aquí és% d. I tot el que és, és un marcador de posició. D% va a denotar un nombre decimal. I equip% mitjà d, posar un nombre decimal aquí. Bé, quin nombre vols posar allà? Bé, com vostè potser pugui deduir, després de la coma es diu comptador, que és el nom d'una variable que es declara o creat un parell de línies abans. Així que això és només la forma de C de connectar una variable en una cadena dinàmicament. Com que per contra, si jo hagués fet en el seu lloc una mena això, printf ("contra"), el que faria aquest programa en lloc fer-ho, presumiblement? És, literalment, d'imprimir "comptador". La qual cosa no és l'efecte que vull. He de substituir en un valor numèric. Així que veurem que les funcions de llavors, com printf, no pot prendre tot just arguments individuals, com "Hola món". Ells poden prendre coma cita fi de la cita i, a continuació algunes variables que rebrà connectat a, com veurem la cadena anterior a través d'aquestes variables% de signes. Bé, què passa amb les expressions booleanes? Les expressions booleanes són aquests valors, vertader o fals. Sí o no. 1 o 0. Activat o desactivat. Així que en Scratch es veuen així, i noti que la bloc de fons aquí és en realitat la conjunció de dos blocs més petits. Així que tipus d'arrossegar i deixar anar les peces del trencaclosques 3 junts per fer que la peça del trencaclosques que és allà perquè jo podria transmetre la idea que vull que x sigui menor que i i i perquè sigui menor que z. I pel que puc traduir aquestes dues línies separades de la següent manera. La de dalt pot ser molt trivial traduït a C, amb prou feines x