[Música tocando] DAVID Malan: Todo ben. Benvido de volta. É dicir CS50, e este é Unha semana, continuación. Entón, unha das razóns que estamos pasando arredor de tecnoloxías como Google Glass é que eles veñen con algo coñecido como unha API, un Interface de Programación de Aplicacións. E o que isto significa que, co arquivos correcto e co dereito documentación, pode realmente escribir software para dispositivos incluso como estes. E así, o que temos en mente para semestres final é, se un proxecto que inclúen, por exemplo, vidro Google pode recurso, imos ver o que podemos facer en termos de conectar-te con algúns prestado hardware, así como o API accesíbel para que poida realmente comezar a crear software que corre o mesmo cristal Google. Outro dispositivo que vimos xogar co de tarde que pensamos que podería ser diversión ao final do semestre é este peixe aquí. Chámase Leap Movemento, e que está a piques de ver é tecnicamente un publicidade ao teléfono, pero el fala o que neste particular dispositivo é capaz de facer. E, tamén, ven con unha API vía que pode escribir software para controlar o seu propio ordenador de forma me gusta moito desta película dun minuto aquí. [REPRODUCIÓN] [FIN reprodución de vídeo] Entón, agora, o dispositivo pasa a ser aplicada como un pequeno USB conectores que se pode conectar o seu ordenador, pero eu non quedaría sorprendido se antes de tempo que ten este tipo de tecnoloxías no seguinte lote de PCs e Macs para que poida, de feito, interactuar con ela de forma semellante. En realidade, o que eu penso que eu ía facer, tamén, é Puxei unha pequena demostración programa que ven con este software. Entón eu coloque o pequeno sensor diante do meu portátil. E como se pode ver, el xa entende que a man está aí controlala. E toda esta aplicación fai é marabillas pequenas cousas como esta. Pero podes ver que, de feito, Teño cinco dedos alí. Se logramos que el faga as 10, podes imaxinar un piano limpo aplicación ou semellante. Entón, se quere chegar ata despois da aula hoxe e xogar con iso como así, vostede é benvido. Entón, máis sobre iso máis cara ao final do semestre. Así, un par de administrativa anuncios. Un deles, por formar parte deste venres ao mediodía cs60.net/section. Esta URL é o curso de páxina de inicio tamén. Nese medio tempo, con todo, supersections vai estrear este domingo. Supersections son unha cousa de unha soa vez, porque nos leva moito tempo para traballar quen está en que sección e onde. Polo tanto, este próximo domingo, haberá unha sección para aqueles menos cómodo, unha sección para os máis cómodo. E aqueles de vós nalgún lugar entre son benvidos para ir un ou ambos ou ningún. Ambos serán filmadas. Eles van estar nun auditorio maior que unha sección normalmente estaría dentro Pero o obxectivo aquí é equipa-lo con algún confort con un conxunto de problemas, con C, co aparello CS50, esta fin de semana, antes de descubrir a súa asignación formal de sección. Entón, vai coñecer o TF e súa menor grupo de sectionmates nuns tempo de unha semana. Horario de oficina, pola súa banda, foron pasando. Facer aproveitala las esta noite ou mañá á noite, se desexa. Problema set 0 débese o venres. Este é un día máis tarde do que o regular-programado xoves. Pero, con un conxunto de problemas, verás que inclúe algúns warm-up exercicios co que se Pode estender a súa Xoves prazo para o venres. Un conxunto de problemas, mentres, vai estrear na páxina web de suposto o próximo Venres, se quere se roscar con como eu fixen era xa tarde Venres á noite no seu cuarto. Entón cs50.net/appliance é onde pode obter o aparello CS50 que comezamos a utilizar o luns. Imos usalo un pouco máis hoxe. Pero a seguridade de que o problema definido un especificación ha oriente-lo a través precisamente os pasos que cómpre para obter este instalado e funcionando. Entón non se preocupe en facer iso antes Pset 1, se non prefire. Todo ben. Entón, nós miramos o luns no código fonte, pero, no contexto dunha nova linguaxe de programación, é dicir, C. e C, ao contrario de risco, non é de vídeo. Non é Puzzles Pieces. É máis inglés-como sintaxe. E hai un par de pasos implicados realmente en escribir e executar un programa en C, xa que ademais de fonte código coma este, precisas algo chamado compilador. E, en termos leigos, o que non un compilador facer por nós? Si ALUMNO: El converte o código que escribe para 0s e 1s. DAVID Malan: Xenial. Por iso, o código que converte Escribir para 0s e 1s. El converte o chamado código fonte para código obxecto, o último dos cales parece un pouco algo así. E é a súa CPU, os cerebros dentro o ordenador, que, por mor da persoas que crearon eses ordenadores, sabe o que estas secuencias media de 0s e 1s. Quizais só sexa impresión. Quizais só sexa iso. Quizais isto significa subtracción. Quizais só sexa amosar un gráfico. Existen patróns predeterminados de bits que o mundo decidiu dicir certas cousas. Pero para a maior parte deste curso, nós imos traballar nun nivel superior, e imos tomar como certo que hai cousas como compiladores que poden facer a nosa función de código fonte na forma na que pretendemos. Así, o programa que escribiu por primeira vez a semana pasada e logo, empezaron a porta, co fin de falar, C ese pasado Luns, foi iso. Cando a bandeira verde premendo, dicir Olá Este foi, por suposto, escrita en perigo. E afirmou que o equivalente programa en C parecía un pouco algo así. Entón o que eu penso que ía facer en primeiro lugar é, imos desmembrar o que parece, a primeira vista, en realidade, como moi misterioso sintaxe, pero vai comezar a notar patróns moi rapidamente. O que nós tamén imos facer hoxe é proporcionar lo con un modelo mental para algúns canónico, algunhas construcións estándar na programación. E entón nós imos realmente chegar nas nosas mans porco con algúns exemplos ben. Polo tanto, para aqueles de vostedes máis cómodo, entender que esta semana e logo, xunto semana pode moi ben ser un pouco de crítica. Pero, sobre todo cando a edición hackers dun problema conxunto sae no páxina web do curso o venres, eu creo que vai descubrir que, aínda que cubrir algunhas lagoas ao longo da próxima semana ou dúas, vai comezar a estar cada vez máis desafiado e atopar cousas novas e máis recentes. Entón, imos provocar este programa ademais algunhas liñas de cada vez. Na parte superior, temos o que hai de tecnicamente chamado directiva de pre-procesamento. Esta é só unha liña de código que se para incluír o contido dun ficheiro, chamado estándar I / R, entrada estándar - ou, desculpe, estándar I / O, patrón de entrada / saída. h, para dentro do meu propio programa. Polo tanto, noutras palabras, se escribín iso programa con un editor de texto simple como gedit, o equivalente a máis simple de algo así como o Microsoft Word, que instrución # include stdio.h, é só vai dicir ao compilador, cara o contido que outro arquivo, stdio.h, e cola-los aquí. Agora, por que eu me importa? O que nós reivindicamos é dentro deste ficheiro stdio.h chamada, que é almacenado en algún lugar no meu disco duro, ou neste caso, en algún lugar do aparello CS50? Alguén puxo aí para min. Pero o que está nel? Si, polo que é unha declaración de unha función chamada printf. Entón printf recorda a función que exhibe palabras e caracteres e números na pantalla do meu tiro. Pero eu non quería escribir. CS50 non escribilo. Anos alguén escribiu, e esencialmente nos deu a receita para iso nun arquivo chamado stdio.h. Así que a primeira liña só me dá acceso ás funcións que alguén escribiu anos, entre que son printf. Agora, a seguinte liña que vou acenar miña man en, polo menos ata a próxima semana. Pero, por agora, sabe que int main (void) é esencialmente o equivalente deste peza do puzzle amarela cando bandeira verde premendo. O mundo, desde hai anos, decidiu que, se está escribindo un programa no linguaxe chamada C, comeza o seu programa cunha liña que se parece con isto. En só preto de unha semana, que vai facer sentido que int é, o que é branco. Pero, polo de agora, só pense nisto como esta peza do puzzle amarelo. Agora seguinte, temos unha chaveta seguido doutra preto rizados cinta, por así dicir. E veremos ao longo destes programas en C, así como a JavaScript e PHP. E estes só encapsulado liñas afíns de código. O aberto chaveta esencialmente di, aí ven un código. E a chaveta pechada, o que é inclinado na dirección contraria, só significa, iso é todo para o código correspondente. Así, a liña suculento neste primeiro programa é a última, printf, entre comiñas, Ola mundo. E eu chamei a cousa entre citas que a última vez? Entón é unha cadea. E unha corda é só o tecnólogo prazo para unha secuencia de personaxes, unha palabra, unha frase. Mesmo unha única letra pode ser o dobre citado. Pero é unha secuencia de cero ou máis caracteres. Barra-n, con todo, parece un pouco raro. Pero simplemente dicir algo sinxelo para o ordenador. Que é barra-n? Nova liña. Entón, iso é só a secuencia especial de personaxes que o mundo decidiu significa poñer un salto de liña alí, xa que o compilador vai realmente comezar confusa, xeralmente, se, moi compreensivelmente, pero incorrectamente, só comezar a bater Intro para poñer novas liñas no seu código. Ten que ser un pouco máis explícita con barra-n. E nós imos ver que hai algúns outros, tales normas para caracteres especiais. Por exemplo, se quere deixar o seu mente vagar a un caso de canto, supoñer que eu quería imprimir unha comiñas na pantalla para calquera razón, parecería que ser un pouco problemático, non? Porque se eu poñer comiñas no medio do "Ola, mundo", para o que razón, por que é que isto parece potencialmente problemáticos? El rompe a cadea. O compilador é só un programa. Un programa como un compilador é só ir ler o top código para abaixo, esquerda a dereita. E se ve tres comiñas dobres no canto de dous fillos, non vai saber Se quere dicir que a cousa á esquerda debe ser a cadea, ou a cousa a á dereita, ou a cousa toda. É ambiguo, e así o que un típico compilador facer é brotes, e darlle algunha mensaxe de erro, e facer vostede xestionar o problema. Así, dado que a barra-n significa un novo liña, o que faría os seus instintos agora comezar a ser se quere incluír algo anômalo como un dobre citar dentro deste caso contrario citado corda? Cita barra-dobre. E entón imos ver iso tipo de patrón tamén. Se queres facer algo un pouco estraño, vai descubrir que o solucións moitas veces seguen un patrón, ea barra invertida denota unha secuencia de escape. E isto significa só algo especial que necesitamos para representar nunha xeito diferente. En canto á forma como representa unha barra invertida, así, imos volver a iso. Pero a resposta tamén é certo algo evidente. Entón, imos agora introducir algún outro construcións de programación que viu en perigo. Probablemente xa tida como certa xa se xa mergullou conxunto de problemas 0. Pero imos agora introducir a sintaxe en C para estes pola contra moi intuitiva ideas, polo menos algúns deles. Polo tanto, esta noción de unha condición ou unha rama, mentres que anteriormente nós representado con un código que mirou como esta á esquerda en Risco - Se x é menor que y, entón diga - no canto agora en C - déixeme mellorar en no caso máis simple - estamos indo simplemente para dicir que si, abra parénteses, algo é certo - un Expresión booleana está a ir onde eu dixen condición - Pechar parénteses, a continuación, facer o que é dentro desas chaves. Entón, aquí, tamén, as claves é tipo como de risco de Pezas de puzzle en forma de U. Faga o que ten dentro destas claves. Neste caso, slash slash. E entender que é un dianteiro slash, non unha barra invertida. Barra, barra, para os que xa programou antes, só significa - é só un comentario. Un comentario non é unha liña de código, de por si. É unha liña de inglés que, humano, escribir a si mesmo para quizais lembra-lo de facer algo, explicar a si mesmo, para explicar a outra persoa, o que o código está facendo. É só un comentario descritivo. Agora, por suposto, pode ter unha de dúas vías bifurcación na estrada, só por iso, un tres vías bifurcación na estrada, facendo iso, e se continúa esta estándar, pode ter de catro vías, cinco vías, seis vías garfos na estrada se ten que xestionar, de feito, que moitas condicións. E, a continuación, teña en conta o paralelismo aquí - if (condición), else if (condición), eo único que é un pouco estraño é o último, que É xusto que os outros. Pero, de novo, esta é idéntica, conceptualmente, para o que fixemos xa, aínda que a sintaxe vontade tomar algún tempo para se acostumar. Agora, no presente exemplo, existen outra sintaxe estraña. Vemos printf novo, paréntese aberta, e os parénteses. E alí dentro é unha cadea. As parénteses, no contexto de printf, vaia á esquerda e dereito de que? O que nós describimos que citada cadea como máis xeral? Entón é un argumento. Cada vez que ten unha función, como printf, e, a continuación, un paréntese aberta e un preto paréntese e algo dentro que, se é unha cadea, ou un enteiro, ou calquera outra cousa, a cousa en entre os parénteses chámase un argumento. E un argumento só inflúe comportamento da función. Neste caso, é moi claro como. x