DAVID J. Malan: Entón este é CS50. E iso foi o propio Colton Ogden do CS50, por máis de quen é a música que pode descargar en soundcloud.com/cs50. Entón, hoxe imos concentrar aínda máis sobre a arte da programación. E tomamos onde paramos a semana pasada, con foco en cero, o que se isto linguaxe de programación gráfica. E levar as cousas a un nivel inferior, usando unha programación máis tradicional linguaxe coñecida como C. Pero ao longo do camiño, entendendo que as mesmas ideas que falou o venres deberá repetir-se non só no presente linguaxe C, pero na maior parte todos os outros que miramos para este semestre. Entón chamamos esa cousa aquí o que a última vez? Este é representante dun comunicado. Por iso, chamou este comunicado. E fai algo. É unha instrución que un ordenador ou arranhão pode executar. E a partir de agora, imos tamén comezar chamando algo así unha función, por razóns veremos en breve. Mentres tanto, vimos cousas como esta. E estes son xeralmente coñecido como o que construír? Audiencia: loop. DAVID J. Malan: Entón un loop. Así, moi sinxelo. É, literalmente, fai o que di. E en perigo, se quere empinar máis pezas do quebra-alí, a peza vai medrar para encaixar. E veremos no que C podemos facer o mesmo. Outro tipo de circuíto, aínda que, en risco pode ser para sempre, ou hai calquera número doutras enfoques. Pero imos dar un máis ollar generalista, cun rostro que é probable moi familiar, en lazos máis xeral. Mark Zuckerberg: Unha cousa que ordenadores é realmente bo é ordes de repetición. Como unha persoa, pegaría realmente aburrido, se tiña que facer o mesmo moitas veces nunha fileira. Pero un ordenador pode facer o mesmo millóns ou billóns de veces, e non se cansar, e ser capaz para realizar a vontade moi ben. Así, por exemplo, se eu quería desexar a todos en Facebook un feliz aniversario enviando un correo electrónico, el me pode levar máis dun século para escribir, en realidade, fóra todos estes correos electrónicos para todos. Pero, con só algunhas liñas de código, podo ter un sistema de enviar un correo-e para todos en Facebook desexando lles un feliz aniversario. Entón é iso que lazos son e por que son valiosos e algo que os ordenadores poden facer moi ben. DAVID J. Malan: Entón, se foi o destinatario dalgúns dos CS50 e do Espazo de Dropbox de tarde, que en realidade é precisamente o que nos facer, usando o código ben así. Nós esencialmente ter un gran folla en que persoas foron entrando seu nomes e enderezos de correo-e. E escribimos algo de código que poden interactuar sobre estes enderezos e cuspir enderezos exclusivos en Se alguén sometido varias veces. E despois diso, enviamos unha automática correo electrónico do bot do CS50, incluíndo o código do cupón. Agora nós tamén analizaron Nesta construción da última vez. E este é un especial exemplo do que? Entón, si, unha expresión booleana. E o xeito enténdese para capturar iso tamén. Todas estas cuestións do formar verdadeiras ou falsas en perigo vai parecer un pouco algo como isto. E chamamos iso de unha expresión booleana. Isto é de feito verdadeiro ou falso, si ou non. É unha forma de responder a unha pregunta. E Mentres tanto, pode utilizar estes booleana expresións dentro construcións como estes, que de Claro que son condicións ou ramas, proverbial garfos na estrada. E poden ollar non só como este, pero eles tamén poden ter elses que lles están asociados. E realmente pode ter unha de tres vías bifurcación na estrada ou un catro garfos na estrada, simplemente por nidificación destas cousas, como podes ver en perigo se non ten xa. E, como pode facer en C tamén. Imos dar máis generalista ollar para un alumnist, así, que pode presentar unha visión diferente para esas cousas chamadas condicións. BILL GATES: As persoas fan decisións todos os días. Por exemplo, antes de ir para fóra de ti medio que temos unha instrución if que di: Se está chovendo, entón eu Necesito ter miña chaqueta. E os ordenadores son sorprendentes, xa que decidir estes tipos de declaracións, que se pode realizar de forma fiable isto a unha velocidade incrible. E así, un programa de ordenador realmente é un pouco de matemáticas e algúns if onde a decisión sexa feito. DAVID J. Malan: Así como ten que saber, que era persoas como Bill Gates, Paul Allen, e outros que realmente deu inicio á chamado computador persoal revolución, hai uns anos. Eu penso, antes de mergullo nalgúns administrivia, nós relacionar un conto do Albuquerque, New Mexico Museum of Natural History e ciencia, onde algúns dos Bill Gates e primeiras historias de Paul Allen son contadas como temos agora PCs de hoxe e Macs e moito máis. Para iso, con todo, necesitamos dous voluntarios que teñen moi boas voces de narración para ler un guión en voz alta. Todo ben, que tal en volver para alí. Imos cara arriba. E que tal diante aquí. Imos cara a abaixo. Tomen seus lugares aquí. Como vostedes veñen para arriba, unha parella de anuncios administrativos. paso, o proceso de elección dunha sección, vai iniciar este De mércores a venres. Máis sobre iso no seguinte Mércores en charla. Super seccións, mentres, son algo que nos ofrece a próxima semana en que toda a clase é invitado para participar en escala moi grande seccións, unha máis cómodo, un menos cómodo. E imos anunciar as indicacións de que, así, ao final desta semana. Seccións Mentres tanto, si, comezará na terceira semana do curso, o grao cero, o que significa que estes son un par de semanas fóra. Entón non se preocupe. Aínda non perdeu algo nese sentido. Mentres tanto, con todo, se ten dúbidas administrativamente, enviar correo-e min e Devon e Gabe e Rob neste enderezo aquí. Finalmente, conxuntos de problemas 0 é, por suposto, para fóra. Debe ter notado que na páxina web do curso. Debe fornecer-lle as respostas para as preguntas pode que ao longo do camiño para comezando co conxunto de problemas. Pero se se atopa precisando unha man amiga, por todos os medios asistir o horario de expediente, Luns, martes, mércores, xoves esta semana, á noite en catro comedores. Mira que URL alí polas indicacións de onde o horario de expediente será. Agora imos coñecer o noso dous invitados aquí hoxe. Cal é o seu nome? JAY PAUL: Jay Paul. DAVID J. Malan: Jay Paul, pracer de coñece-lo. Hikari: Hikari. DAVID J. Malan: Hikari? Hikari: Hikari. DAVID J. Malan: Hikari. Pracer en coñece-lo ben. Jay Paul e Hikari teñen en fronte nestes música dous guións que impresos esta mañá desde o Novo México Museo de Historia Natural e da Ciencia. E o que eu pensaba Eu faría na sobrecarga é seguir a súa recitação do guión e esta historia con algunhas imaxes visuais, sen sorpresas. E o que eu teño feito con antelación é prehighlight no seu guión o que ten que ler, eo que ten que ler. E nós imos esencialmente parágrafos só alternativos. Por iso, é moi parecido que pode ter feito na aula de inglés. Isto é realmente obrigar ao público a crer no seu conto aquí. Debemos nós? Así, a historia aquí é que temos unha BASIC, e comeza en Cambridge. JAY PAUL: Era inverno de 1974, en Cambridge, Massachusetts onde os invernos poden ser fríos. Un barbudo, de cabelos longos abandono da facultade chamado Paul Allen foi drudging través de Harvard Square, absorto nos seus pensamentos. A súa principal preocupación naqueles días era como lograr o seu amigo, Bill Gates, a abandonar a escola e ir na empresa con el. Hikari: Os dous xa foran a través dunha serie de proxectos comerciais xuntos, con inicio ás Lakeside escola en Seattle, onde foron pagados en tempo de ordenador libres para probar un ordenador PDP-10 a unha hora local compartir empresa. O plan última fora a parar escola e formar unha empresa de software. Allen deixara Washington Universidade Estadual. Pero no último minuto, Portas decidiu ir con Harvard. JAY PAUL: Aquel día, cruzando Harvard Square, Allen viu a xaneiro de 1975 da Popular Electronics co título de parada terra, Kit primeiro minicomputador do mundo para rivalizar Modelos Comerciais. Baixo o titular era unha imaxe dunha pequena caixa adornadas con luces e interruptores. Foi chamado o MITS Altair 8800. E Allen sabía que iso era o que estaba a buscar. Hikari: Días de discusión seguiu. Allen e Gates entendeu a importancia do Altair. Tiñan falado moitas veces sobre microprocesadores e estaban esperando a ver que sería feito con eles. Agora había un kit de minicomputador en portada da electrónica popular. Ao parecer, non tiña aínda software. Eles imaxinaron unha nación de programadores descendendo sobre MITS. E así eles chamaron Ed Roberts, o xefe da empresa, alegando ter unha versión do Linguaxe de programación BASIC case listo ao Altair. Non o fixo. E Roberts debe ter sabido que non. Estaba quedando 10 chamadas por día a partir de persoas que tiñan un BASIC case listo. E a súa resposta stock era ", a primeira persoa que aparece cun traballo BASIC recibe o contrato. " JAY PAUL: Gates e Allen nunca vira un Altair. Nunca viran o Intel microprocesador 8080 no corazón do Altair. Pero un par de anos máis tarde Allen escribira un programa nun ordenador Exposicións que emulado a operación dun Intel anterior microprocesador. E esta vez faría o mesmo. Hikari: Cun procesador Intel 8080 Manual ao seu lado, Allen sentou-se nun Harvard PDP-10 ordenador e escribiu o emulador e software ferramentas necesarias para facer a programación. Mentres tanto, Gates, deixou de ir ás clases e se dedicou para proxectar o BASIC, usando cada truco el sabía que para obter o tamaño por baixo de 4 kilobytes. JAY PAULO: Fóra de Albuquerque, Ed Roberts recibiu unha chamada de Gates pedindo detalles sobre como o Altair tratadas rutinas específicas. Ninguén nunca lle preguntaron iso antes. E Roberts comezou a se interesar. Hikari: Co desenvolvemento ferramentas eo proxecto listo, Gates e Allen escribiu o código no PDP-10, alistar outro estudante de Harvard, Monte Davidoff para escribir rutinas de matemáticas. Tras unha noite final programación, Allen entrou nun avión para entregar a súa BASIC para o MITS. Pasou o avión afrontar preocupante. E de volta en Cambridge Gates estaba preocupando. Eles probaron seus BASIC e el traballara no emulador. Pero e se o emulador estaba mal? JAY PAUL: Cando o avión achegouse Albuquerque, Allen entendeu que a súa BASIC, agora perfectamente contido nun pequeno rolo de cinta de papel perforado, que será inútil sen un separado programa, chamado de cargador, que diría o Altair como ler a ser unha cinta de papel introducidos na máquina de teletipo. Tirou o portátil e axiña rabiscos un programa de xestión de en linguaxe Assembly, entón a man trasladado para 1s e 0s Altair entendería. Hikari: Allen estaba esperando un , Pouco, empresa de alta tecnoloxía limpa executado por homes de traxe. Así, el ficou sorprendido cando atopou Roberts el no aeroporto parecendo un rancho man. Roberts tamén foi sorprendido. Cando soltou a Harvard programador nun hotel caro, Allen tivo de confesar que el non podía pagar o cuarto. JAY Galicia: MITS, en si, foi situado nun centro comercial empoeirados. Dentro dun desordenado banca era un Altair cargado con 5 kilobytes de memoria e conectado por un cable a un teletipo. Roberts e Enxeñeiro-Xefe, Bill Yates, esperou ansiosamente como Allen alternado seu cargador programa para o Altair. O teletipo comezou chugging que tirou a cinta de papel a través do lector de cintas. Levou 15 minutos quizais para cargar o programa. A continuación, o teletipo impreso abruptamente dun ventá de memoria, a continuación, unha liña de pronto, e Allen comezou a escribir Comandos de algunhas probas. Para asombro de todos, o software traballado. Houbo erros, claro. Pero o principal era que funcionaba. Hikari: Posteriormente, no seu camiño para unha $ 3,00 xantar no Pancho, unha vespa voou na fiestra da picape camión e picado Allen no brazo. Pero naquel momento nada podería romper o clima. O Altair agora tivo súa BASIC, o primeiro software comercial para unha casa ordenador, feita por Paul Allen e Bill Gates, facendo negocios como Microsoft. DAVID J. Malan: Moitos grazas aos nosos dous lectores. [Aplausos] DAVID J. Malan: Agora ten a súa elección, antes de saír, dun brillante ou un brillo no dark-- oh, agarde un segundo, wait-- brillante e un brillo na escuridade elefante da propia Cheng Gong do CS50. Hikari: Ah, grazas. David J. Malan: Todos seguro, moitas grazas. [Aplausos] DAVID J. Malan: Entón verdadeira historia. É dicir, para dicir que todos estes máquinas e a facilidade coa que usalos agora e tomar por certo, moi comezou aquí, a poucos pasos deste teatro real. E hoxe, se non foi, este é Maxwell Dworkin, o ordenador ciencias edificio, tamén á volta da esquina. E no segundo piso deste edificio non colgar tres páxinas dende o código fonte orixinal que Bill Gates e Paul Allen escribiu. En realidade, se usa zoom en que se pode ver non só os seus nomes no Tipo de orixinal, pero tamén súas firmas que adornaban a Hai uns anos, cando visitou por última vez. Pero o que era particularmente atractivo sobre iso é o que se propuxo a facer era escribir un programa que permitir que outras persoas escribindo seus propios programas. Na época todo o que había con esta máquina Altair feita pola MITS. E todo o que precisaba era unha forma de facendo máis doado para afeccionados e persoas quere nós nesta sala para realmente programa que sen entender necesariamente Código Assembly, ou máquina código, ou Deus me libre, 0s e 1s. Nós, programadores, como aqueles nesta sala, nos quero ser capaz de expresar nós mesmos moito máis como código pseudo aínda que sexa un pouco máis nit esixente do que falamos a semana pasada. Non quero escribir un código coma este, que Paul Allen e Bill Gates fixo. Nós, pola contra, quero escribir un código que parece un pouco máis agradable. Agora, esta é unha linguaxe coñecida como BASIC. E os números de liña non son o que usar simplemente numerar as liñas de código que está escribindo. Non ten nin facelo nos días de hoxe. Pero pode ver aquí como print "Ola, mundo" sería, de feito, presuntamente, imprimir só iso. E entón o que Bill e Paul fixo foi capacitar as persoas para escribir un código coma este no canto de-- se der un ollo ao ciencia da computación wall-- código coma este. De feito, CS50 recentemente tivo a oportunidade sentir-se co profesor Harry Lewis no departamento de Ciencia da Computación, que realmente ensinou Bill Portas hai uns anos, e está aquí diante de estes tres páxinas de fragmentos. Imos dar un ollo. HARRY LEWIS: O que ten aquí é un perfil dunha peza inicial de software escrito por Bill Gates e Paul Allen, fundadores de Microsoft. Así, o código é interesante por dúas razóns. En primeiro lugar, converteu-se O primeiro produto de Microsoft, que era un intérprete para a linguaxe de programación BASIC. E en segundo lugar, esta foi unha das primeiras tentativas para crear un intérprete de xeito ordinario persoas poderían usar ordenadores persoais. Entón Bill Gates era un graduación en Harvard. Comecei a ensinar en Harvard en 1974. Isto foi feito en 1975. Así foi o inicio da súa carreira e no inicio da miña carreira. Realmente ensinou Bill en un curso en torno a este tempo. Paul Allen non era un Harvard estudante, pero el fora unha escola compañeiro de clase de Bill Gates. Se ve e ollar en o perfil, vai realmente atopar unha terceira nome, Monte Davidoff, que era compañeiro de clase de Gates aquí en Harvard. OK, entón aquí está un interesante comentario aquí. El di: "En 4K podes borrar raíz cadrada pero para loops aínda debe funcionar. " OK, entón o que quere dicir que hai que dous xeitos de compilar este programa. Un estaba a ser executado nunha versión deste ordenador Altair que só tiña 4K palabras de memoria, 4096 palabras de memoria. Pero a versión tivo gran 8K. E entón o que isto di é que na versión 4K tiña que eliminar algúns código para facelo apto. E unha das cousas que serían eliminados sería a rutina de raíz cadrada. Pero, ao parecer, a loops aínda debe traballar, mesmo cando está compilando abaixo para só a versión 4K do ordenador. DAVID J. Malan: Entón un dos temas, como veremos en ciencia da computación, É esa noción de estratificación e abstracción, e realmente estar sobre os ombreiros de persoas que viñeron antes de nós, non ao contrario de algúns do Bill Gates e Paul Allen narrativa aquí. E o que isto significa que hoxe podemos tomar para seguro que as cousas son, en realidade, máis doado para nós a escribir código. De feito código, como dixemos o venres, é máis tecnicamente coñecido como código fonte. E é este inglés como sintaxe que é máis axeitado e máis ben definida que algo como pseudo-código, para que non hai ningunha definición formal. E hoxe o que imos centrar é o código fonte que se parece con isto, que reconhecidamente, a primeira vista parece totalmente enigmática. E, francamente, é un xeito máis esteticamente complexo do que o programa subxacente é. Todo este programa fai, recall, é o que podemos dicir? El só imprime "Ola mundo". E, con todo ollar para todas as cousas que necesitamos para involucrar esa frase moi sinxelo. Pero en pouco tempo todo estas liñas e máis vai facer máis sentido para ti. E o fluxo é como segue. O que necesitamos á nosa disposición é tomar código, como fonte código que acabamos de ver. E necesitamos un novo programa para executa-lo completamente. Necesitamos algoritmos que poden converter o código fonte, así, en código obxecto, 0s e 1s. Noutras palabras, o que imos aprender hoxe é como facelo, escribir código fonte encima, pasalo como entrada para un especial programa coñecido como un compilador, e nós imos producir código obxecto. Que é só un xeito elegante de dicindo que vai levar algo que se parece iso, pasalo nun programa chamado compilador, producir código obxecto que se parece con isto. Polo tanto, estas son literalmente os patróns de 0s e 1s que son comprendidas por un Intel ordenador nos días de hoxe, que, se interpretado pola CPU, os cerebros no interior dun ordenador, vai, literalmente, imprimir, simplemente, "Ola mundo". Agora non hai forma máis 0s e 1s do que sería de esperar pode ser necesario para iso. Pero iso é porque estamos construíndo nunha boa dose de complexidade que podemos adiante tomar para concedida. Noutras palabras, unha morea de persoas intelixentes nos deron unha morea de ferramentas legais e un poderoso software co cal agora pode facer proxectos da nosa propia. Entón, imos comezar. Considerando o venres pasado, e Conxunto de problemas a 0, esta semana, estará botando nun o mundo que se parece con isto. A partir de hoxe e para o problema Conxunto 1 a próxima semana, o código vai parecer un pouco máis enigmático, pero funcionalmente é será o mesmo. Así, o aviso previo, superior é cero, inferior é C. France Raspadinha é moito máis user agradable e accesible. Pero se agora comparar visualmente superior ao inferior, hai unha especie de 1-1 a correspondencia entre o pezas do puzzle e da linguaxe estamos a piques de xogar. En particular, dicir, o puzzle azul peza enriba, aparentemente é equivalente ao que contrasinal ou frase especial nesta lingua chamado C? Audiencia: printf. DAVID J. Malan: printf. Isto significa que a impresión formatado. E iso é só unha fantasía forma de dicir printf en C vai ser unha declaración ou unha función que imprime algo na pantalla. Que é impreso na pantalla? Todo o que diga a el para dentro de citas, dentro parénteses. Entón, de novo, é certo, hai unha morea de cousas que ten que ter presente, parénteses, comiñas, punto e coma, e todo isto. Pero todo isto é unha especie ao lado do punto. O takeaway interesante para agora é que o bloque digamos en perigo é practicamente equivalente a a instrución printf en C. Mentres tanto, a peza de puzzle amarela enriba, cando a bandeira verde premendo, é probablemente equivalente o que contrasinal aquí? Audiencia: Páxina. DAVID J. Malan: Entón principal. Quizais int, quizais baleiro. Pero tipo principal de sons como é importante, e de feito é. Entón, cando a bandeira verde premendo é, de novo, a peza de puzzle que comeza unha todo o programa de Notas. Pero imos agora comezar a chamar que o principal, esta función coñecida como principal. Agora, con todo, nós imos xeneralizar esta como segue. Podemos chamar dicir unha función. E iso pode parecer especialmente como este. Ben, o que dicir de lazos? Se queremos iniciar a conversión ou traducindo máis en perigo para C, esta cousa aquí, ao parecer, só di: "Ola, mundo" para sempre. Entón, se asociar estes scripts cun gato en perigo, el só vai continuar a dicir nalgún tipo de burbulla dos debuxos animados, "Ola mundo, Ola mundo, Ola mundo ", ad nauseum, para sempre. Se queremos facer algo semellante no C, que vai mirar un pouco enigmática. Pero podemos conseguir o mesmo resulta, como veremos finalmente descubrir, con sintaxe como esta. Vou usar printf de novo, porque ao final do día Quero imprimir "Ola mundo". E eu estou aparentemente usando un contrasinal que non é para sempre. É, no canto da palabra tempo. Pero só semanticamente en Inglés, mentres que o tipo de suxire algún tipo de lazo ou ciclo. Entón, que pasa a ser a palabra clave que usa C. E, aínda que certo, por que mentres realidade significa efectivamente para sempre? Ben, aínda que, como veremos en breve apreciar todo o máis, ten este parénteses ao lado del onde podes poñer unha expresión booleana. E mentres ese expresión é verdadeira, este código, como indícase entre estes dous claves como imos chamalos, vai só manter funcionando de novo e de novo. Tanto é así. Así, mentres que os verdadeiros medios só facelo para sempre. É case un estúpido construír para se expresar. Pero alí non era para sempre contrasinal en C. Houbo tempo. E había unha forma moi simple Expresión booleana como verdade. E así, este, imos ver, obtén o mesmo resultado. De que outra forma podes aplicar un loop? Ben, en risco que pode codificar un número específico de iteracións no loop aquí. E iso é o que nós pode facer nesta versión de C, polo que temos unha chamada ao circuíto. E o loop for aquí vai a iteración, un tanto enigmaticamente, do valor 0 enriba a, pero menor que 10. Agora variables en cero. Pode non ter ocasión para usalos. Pero cal é o punto, en xeral, dunha variable que nós dixemos a semana pasada? ¿Que é iso? Audiencia: puntos. DAVID J. Malan: Para apuntar? Oh, apunta. OK, mantendo o control de puntos, por exemplo, nun xogo. Ou, máis xeralmente facendo que coa variable? Cal é a utilidade deles? Audiencia: Memoria. DAVID J. Malan: Si, entón memoria. É para gardar algo. E o tipo de bobada que me visual utilizado última vez foi como esta cunca de vidro. E se quixésemos almacenar algo dentro dunha variable, por exemplo, no momento da valor é porque hai seis San seis bolas de ping pong en aquí. É só algún tipo de almacenamento recipiente que debaixo do capó é aplicado mediante bits, 0s e 1s, con todo, un equipo pasa a facelo. Así, en perigo, se nós Quere ter unha variable, podemos utilizar un bloque de laranxa así. Imos chamar ese contador neste caso particular. Eu inicializar a 0. E o que eu entón facer? Para sempre, din balcón, que se xoga con iso en perigo, só verá cero. O gato é o que poñer en traxe vai falar o número en cuestión. Cambio de contador 1 é como incrementar en 1. E así é que isto vai contar co que entón? De 0 ata o infinito, ou ata saltos de raspadinhas, ou que tipo de perder o interese en asistir ; alto pode realmente contar. Entón, como podemos converter isto en C? Vai parecer un pouco enigmática. Pero, de novo, se ollar para cada destas liñas individualmente que tipo de programación en xeral. Entón, ao parecer int vai ten algún significado especial en C. A ver iso de novo. Como un aparte, significa enteiro. Entón, isto significa só número. Entón ese é o tipo de recipiente de vidro que quero, un que pode almacenar números, non executar ping pong bolas. E eu vou usar o signo igual non para asignar-lle un valor de 0. Entón, iso é completamente como conxunto contador a 0, pero en C. Mentres tanto, aínda certa, que era equivalente, por suposto, para sempre, aínda que sexa un pouco enigmática, e logo, dentro das chaves. E pode pensar nesas claves, cal podes escribir no teclado, como realmente ser como a curvatura en destes bloques circulares amarelos en cero. Ela abrangue varias liñas de código. Printf está a recibir unha pouco asustado, porque agora eu ver non só cita entre parénteses. Pero o que máis hai de novo sintaticamente neste exemplo? Hai un por cento d. E entón barra invertida n está aí. Fixemos ver que antes, aínda aínda que eu non mencionalo-lo. Despois, hai unha coma. E despois hai un contador. Pero imos ver en só un momento no que este é só unha forma estándar de dicir unha impresión "Número decimal", cita, pecha comiñas, un número decimal. Pero eu vou che dicir máis tarde o que este número decimal é. Así, o feito de que hai unha coma nesta liña dito printf, significa ir adiante e impresión un número decimal. Ah, e por certo, o número é calquera que sexa o valor desta variable é. E así, para facer isto máis suposto, imos ver un exemplo en pouco tempo, que inclúen exactamente printf no contexto dos programas de reais C. Agora é só para embrulhar algúns destas construcións. Expresións booleanas, pode non ter ocasión para usalos no seu programa pero pode moi ben, especialmente utilizando condicións. E así estes dous exemplos de Acoitelado dicir, se x é menor que y, ou, se x é menor que y e y é menos de z, como podemos traducir isto? Ben, en C é só se ve así. Un pouco enigmático, máis parénteses, algúns ampersands raro, pero fundamentalmente as ideas son tan sinxelo coma eles están no mundo da peza do puzzle. Estamos só comprobando se algo é menor que calquera outra cousa. Que tal condicións? En poucas palabras en inglés, o que iso anaco de código do risco que diría? Audiencia: Compara dous números. DAVID J. Malan: Compara dous números, e, se x é menor que y el di tanto. Se x é maior que y el di tanto como, senón Se x é igual a y que di tanto. Agora onde x e y vén? Quen sabe. Este anaco do scratch código está fóra de contexto. Pero o que queremos facer agora é traducir isto por só un momento para ver. Entón, como vostede se sentir cómodo esta semana no Conxunto de Problemas 0 xogando neste mundo na parte esquerda, entender que as ideas non están cambiando esta semana ou o próximo ou aló. Estamos indo simplemente para comezar a escribir cousas dun modo diferente co noso teclado en vez do noso rato. Polo tanto, se x é menor que y e hai algúns parénteses alí, entón hai algunhas claves de novo para o tipo de encapsulado así como as pezas do puzzle amarelo facer. E eu estou indo a printf x é menor que y e así por diante. Que é agradable sobre C, como podes ver aquí, é que non obter este asento, do asento, asento que é necesariamente vai empurrar o seu código á dereita. Pola contra pode ter todo lineup ordenadamente así. Pero isto é só unha estética detalle veremos de novo en pouco tempo. Todo correcto. Isto nos trae de volta ao este programa ollar enigmático. Imos realmente escribir un código. Agora, como é que vai escribir o código? Todos estes anos que posuíu un Mac ou PC, escritorio ou portátil, realmente tiña a capacidade para comezar a escribir código de programación. Pero probablemente falta un tipo especial de programa. Certamente pode escribir código. Pero non pode, necesariamente, fóra da caixa, converter o código fonte en código obxecto, 0s e 1s sen o que o seu ordenador? Audiencia: Compiler. DAVID J. Malan: Entón, un compilador, certo. Agora, a maioría de vostedes probablemente non posúe un compilador, nunca baixar un compilador. Pero vai ver que pode baixa-lo como a maioría calquera outra peza de software. No mundo do Mac OS, pode descargar ou xa baixou algo chamado Xcode ou GCC ou Clang. Se vén do Mundo Windows que pode ter feito a descarga do Visual Studio, Visual Basic, ambientes como ese. Hai decenas de compiladores estes días que pode usar. Pero o curto que aquí é que sería unha dor e, a verdade, un tecnolóxico pesadelo para centos de persoas con diferentes configuración do ordenador para todos configurar as súas máquinas exactamente da mesma maneira para que todos poidamos estar na mesma páxina. Entón, o que nós, en vez diso, facer en CS50 é nós dámoslle un ambiente normal, unha Ambiente Linux que é vai parecer un pouco algo así. Vai ver máis diso no Conxunto de problemas 1 especificación que será facilitada liña nesta noite de venres. E o que iso significa é que, de agora en diante van ser capaces de descargar e instalar un programa chamado o CS50 Appliance. E vai facer a descarga e instalar outro programa chamado un hypervisor, que é só unha forma elegante de conseguir isto. Se tes un Mac ou PC ou un Ordenador Linux ou nun ordenador Solaris, ou calquera que sexa tolo operativo sistema que está a ser executado, vai baixar un programa chamado hypervisor que é vai realizar o CS50 Appliance no seu ordenador non importa o que o seu sistema operativo é. Un hipervisor noutras palabras converte noso material para calquera lingua, o que quere que as súas instrucións propio ordenador entende. Polo tanto, esta é unha estratificación. E unha vez máis, este é o tipo da temática en ordenador ciencia, o edificio enriba das cousas. Pode que o Windows. Pode que o Mac OS. Pero a partir da próxima semana está terá descargada un programa gratuito chamado hypervisor. Vai baixar unha peza de software chamado CS50 Appliance. Isto vai funcionar no hypervisor, que vai executar no seu ordenador. E o resultado final é que todos nós ter unha simple fiestra como esta no seu Mac ou PC que nos dá a ilusión de todo executando o mesmo sistema operativo, sen calquera outra impacto no seu ordenador. E pode pantalla completa isto e, esencialmente, se comportan como se está executando unha sistema operativo chamado Linux, que é o que o CS50 Appliance baséase. Entón, imos realmente usar este agora escribir un programa. Pode escribir un programa usando Microsoft Word. Pode escribir un programa usando o TextEdit, ou bloque de notas, ou Wordpad, ou practicamente calquera palabra programa de procesamento que xa usou. Pero a realidade é que non debe utilizar realmente calquera destes programas. Certamente non debe usar algo así como o Microsoft Word, que ten virado e negra e cursiva, e fontes grandes e fontes pequenas, porque o ordenador non se preocupan nada diso. Todo o equipo está vai interesa é Inglés como instrucións escritas en C. Entón, o que nós imos facer dentro do Appliance CS50 é usar un programa libremente dispoñible, e é preinstalado neste aparello, chamado Gedit. E Gedit é só un super sinxelo editor de texto como o TextEdit de Mac VOS, como o Bloc de Notas de Windows que vai mirar un pouco algo como isto. Entón, imos realmente non ollar diapositivas desta. Pero imos realmente entrar o propio ambiente. Eu estou indo a ir adiante e Póñase-se, nesta outra xanela, ao meu CS50 Appliance, que eu teño pre-instalado no meu portátil aquí. Teña en conta que, como Windows e VOS, ten algúns menús. Como Windows pon alí en baixo, no canto Mac OS, o que o sitúa alí en baixo. Pero a realidade é que é todo tipo do mesmo. E aquí é un todo banda de software. Hai Dropbox. Hai unha morea de accesorios, programas gráficos que imos usar máis tarde no prazo de conxuntos de problemas. Hai un navegador construído en que se trata dun verdadeiro ordenador completo no interior dun ordenador. Pero eu vou facer clic neste máis á esquerda icono branco aquí, que é a icona para Gedit. E iso vai abrir unha xanela que ten tres paneis de que, un á esquerda, un alto, e unha parte inferior. Agora é nun presente superior dereita que Vou realmente escribir un código. Entón, imos facelo,. Eu estou indo a ir en File, Save. E non pode nunca ver este diálogo específica antes. Pero isto é como VOS ou Windows. É só unha fiestra con todos os cartafoles que eu teño dentro deste ordenador. E eu estou indo a gardar o ficheiro como ola.c. E eu estou indo a ir adiante e prema Gardar. E agora entende que eu teño unha guía na esquina superior esquerda chamado ola.c. Entón, probablemente, moi familiarizado, aínda que non teña utilizando este programa específico antes. E agora estou indo a escribir os secuencia críptica de comandos que vimos hai pouco. Incluír, eu estándar / O.h. Máis sobre iso en breve. Void main Int, rizado aberto cinta, pechou chaveta. E entón alí dentro eu creo que é onde tivemos "Ola mundo", punto e coma. E agora gardar. Polo tanto, este é un programa escrito en C, escrito, polo tanto, no código de fonte. Pero eu non podo simplemente executar este programa. Eu medio que quero dobrar facer clic nun icono algún lugar, pero ningunha icona existe outro que o ficheiro de código fonte. O que, de novo, é o proceso que agora Necesito realizar este ficheiro a través de? Audiencia: Compiler. DAVID J. Malan: Entón un compilador. Así, en diferentes ordenadores ti facelo de diferentes maneiras. Pero o que fixemos aquí en o Appliance CS50 que é representante como pode facelo en moitos sistemas diferentes, é que eu vou simplemente executar un comando chamado make. E o make é literalmente vai facelo. Fai-me un programa. Entón faga vai executar un compilador para min. E o nome do programa Eu quero facer é Ola. Agora, facer un programa. E facer é intelixente dabondo para entender que, se eu digo facer Ola, vai buscar automaticamente para un ficheiro chamado ola.c só porque esa é a forma como está configurado. Entón, cando eu agora prema Intro aquí, este liña enigmática tolo acaba de ser executado. E confíen en min, antes de longo, dentro de poucos días, vai entender o que todos de que os medios sen sentido. Pero, polo de agora, só sei que facer execución desencadeada dun compilador. Por outras palabras, atopou un compilador no meu ordenador que é pre-instalado no aparello CS50 que nós imos entregar para ti en Conxunto de problemas 1. E logo levou ola.c como de entrada, e ao parecer producido 0s e 1s como saída. E, por defecto, o que fai é gardada eses 0s e 1s nun ficheiro chamado Ola. E aínda que esta sintaxe tamén pode ser novidade para ti, simplemente dicindo dot Ola cortar será a medios polos que eu executar este programa. De momento e para, polo menos, un par semanas, case todos os programas escribimos van estar en fiestras de texto branco e negro. No Ratinho, non premer, sen fiestras, sen iconas. Imos mantelo simple e concentrar-se nas ideas subxacentes inicialmente, antes de chegar a algo nivel máis elevado, por exemplo, como o xogo pausa que falamos sobre a primeira clase a semana pasada. Entón, cando eu prema Intro aquí, é equivalente nun texto único ambiente dobrar premer nun icono chamado Ola. O que espera vontade pasar cando prema Intro logo? Audiencia: El vai imprimir "Ola mundo". DAVID J. Malan: Esperemos el ha imprimir "Ola mundo". E de feito o fixo. Agora que houbo algún sintaxe enigmática aquí. Imos rebobinar para só un momento para ver se Non se pode iniciar inferir só por xogar, probar e falla, acerca do que está pasando aquí. E se eu me librar da barra invertida n? Agora, algúns de vostedes que teño programado antes, probablemente, saber instantáneamente o que iso significa. Pero para aqueles de vostedes que teño nunca programou antes, polo menos pensar a si mesmo o que está a suceder cambiando cando executar novamente este programa? Entón, eu vou volver para o meu janelinha branco e negro, que é a fiestra na que Podo compilar este. Vou recompilar Ola. Nós imos ver o mesmo secuencia de comandos crípticos. E eu vou facer barra dot Ola. E agora alguén, se, que nunca programou antes, o que pode ser diferente esta vez? Si. Audiencia: Ela non vai parar impresión "Ola mundo". DAVID J. Malan: Vai para-- arrepentido? Audiencia: Ela non vai deixar de imprimir lo? DAVID J. Malan: non deixar de imprimir "Ola mundo". Entón, non é unha mala idea. Outras ideas? Si. Audiencia: mensaxe de erro? DAVID J. Malan: Erro mensaxe, OK, pode ser. Que máis? Audiencia: Pode imprimir o soporte co punto e coma tamén? DAVID J. Malan: Pode imprimir o soporte co punto e coma tamén. Entón quizais esta barra invertida entón é algunha tipo de terminous iso é importante. Calquera outros pensamentos? Así, as boas ideas. E, de feito, vai ser unha mensaxe de erro. Isto pode ser máis probable ser a resposta en xeral para as próximas semanas cando aprendemos a código aquí. Pero, polo de agora lembre de que os ordenadores só faga o que diga a eles para facer. Moi parecido ao de cacahuete ridículo manteiga e marmelada exemplo. Os nosos ordenadores humanos só deberían para facer o que dixo a eles faceren. Polo tanto, neste caso, se non diga o ordenador para mover ese cursor piscando á liña seguinte, el non vai facelo. Entón, cando eu executar este programa Agora, teña en conta a diferenza. Parece un erro. É un erro estética, quizais. Pero o que é diferente sobre este de saída con respecto ao último obviamente? Si. Audiencia: Non fixo unha nova liña. DAVID J. Malan: El non fixo unha nova liña. Agora, aqueles de vostedes que ten páxinas web quizais feitas antes, pode saber do BR etiqueta ou marca de parágrafo, moi semellante en espírito. Un navegador web van ignore-lo ata que diga a el o que facer. Do mesmo xeito, é unha linguaxe como C só vai facer o que diga a el para facer. Así, a razón que todos estes exemplos, ata agora, temos unha especie de casualmente tiña esa barra invertida alí dentro, que é o medio polo cal se expresa como un carácter de nova liña, por así dicir. E pode tipo de apreciar, se cadra, que esta sería unha especie de idiota se nada máis. Se eu quixese unha nova liña, só premer Intro e logo, tipo de masacrar o código así Realmente non debe fregar-lle o camiño certo. E mesmo se non fai iso realmente importa neste momento, notarás que este non é especialmente boa parte de vista de código. E así que o mundo anos é decidido que cando quere poñer o cursor unha nova liña explicitamente, ten que dicir explicitamente nova liña, barra invertida n. E hai algunha outra símbolos así. Pero polo de agora imos só concentrarse en barra invertida n. Agora imos facer o programa algo máis interesante. Eu estou indo a ir adiante e esta vez abrir un novo ficheiro. Vou gardalo como Ola-1.c. E só por diversión, eu vou ir poñelas na miña carpeta Dropbox. Como verás na CS50 documentación para o seu dispositivo, aínda esta semana para o problema Conxunto 1, imos impulsar usa Dropbox ou algún servizo equivalente, porque, entón, todo o seu código de será feito automaticamente. E é por iso que eu teño ir a esa carpeta aquí. E agora eu vou escribir un programa un pouco diferente. Incluír, eu estándar / O.h, void main int. E entón aquí printf, Ola mundo, que é exactamente a mesma de antes. Pero agora quero imprimir algo iso é un pouco diferente. Quero imprimir, dicir: "Ola, David." Todo ben, entón, obviamente, debería esperemos ser o caso de que se eu recompilar Neste programa, executa-lo de novo, vai dicir "Ola, David." Pero e se eu queira introducir este tipo de variable, a noción de un recipiente que está a suceder para almacenar D-a-v-i-d e non é difícil de código que no meu programa. Ben, o que se eu comezar facer algo así? Cadea s, polo que esta é unha variable. Se queres unha corda, A.K.A. unha palabra ou unha frase. Unha secuencia de caracteres é a que nós na programación chamar unha cadea. Nós só estamos indo a xenericamente chamadas el é, porque é un bo nome simple. Pero eu podería chamalo de nada. Vou dicir iguais cadea s entre comiñas, "David", punto e coma. E agora quero inserir D-a-v-i-d para o que eu son impresión. E antes de que vimos un teaser en a pantalla dunha sintaxe especial que nos permitiu substituto nun valor. Cal foi o especial símbolo algúns diapositivas detrás? Así por cento. Na época, era por cento d ao número decimal. Isto non parece realmente relevante aquí. Acontece que hai outro símbolo de porcentaxe, que representa a porcentaxe de s, que se atopa para un espazo reservado para a cadea. Entón, agora, de forma moi simple, eu son indo a ir facer Ola-1, porque este ficheiro chámase Ola-1.c, e prema Intro. E eu estraguei todo. O que está pasando? Ben, aquí é onde temos que comezar a Entendo que estamos neste comando ambiente de liña, isto texto único ambiente. Non hai premendo en iconas como carpetas agora. E lembra un momento atrás. En que cartafol que dixen Eu estaba gardando o meu código? Entón o cartafol Dropbox. Podería ser chamado de calquera cousa. Pero el pasa a chamarse Dropbox. Entón, eu dalgún xeito ten que premer dúas veces no esta carpeta Dropbox, a fin de obter para el e chegar a miña código chamado Ola-1.c. En realidade, deixe-me ir adiante e minimizar Nesta fiestra por un momento. Así como Windows e Mac OS, existen carpetas en Linux. Existen directorios en CS50 Appliance. É só agora estamos confinando nos a este ambiente texto. Pero se eu premer dúas veces no Dropbox, ter en conta que hai é o arquivo que quero para compilar. Pero eu teño esta en branco e negro fiestra de terminal, por así dicir. Pero eu teño, polo tanto, para desprazarse para esa carpeta ou directorio. Entón, un pouco misterioso, pero vai se acostumar con iso tamén. No mundo de Linux, que á súa vez é o operativo sistema que está a ser executado dentro do CS50 Appliance, hai unha orde chamado CD. O que significa que podo facer CD, espazo, Dropbox. CD, cambie o directorio. Certo. De volta ao día en que as persoas eran inventando ordenadores e operando sistemas coma este, querían escriba o menor número de teclas escritas posible. Así, o xeito máis doado de dicir directorio cambio foi CD. Entón, se eu bater CD, espazo Dropbox, entender o que cambiou aquí. Dentro dos parénteses o aparello é unha especie de me agradar e lembrándome onde estou. Así, o cartafol aberto é Dropbox. Se eu agora escriba ls para lista, de novo sucinta, porque a xente non querían escriba de novo o día l-i-s-t. Entón, eles, en vez fixo sl. Intro. Repare que eu ver dúas cousas, Ola-1.c, e entón esa cousa enigmática, fonte 1m. Isto é só a miña forma de dicir código fonte para a semana 1 luns. Isto é un cartafol que eu baixei do Sitio web da CS50 que fixen hoxe cedo e basta colocar-lo no aparello con antelación. Pero, polo de agora o único que interesa é facer este programa. Entón, cando eu introducir make Ola-1, Intro. Caramba. Algo deu mal. Entón, imos xogar con este apart. E, por desgraza, este é o lugar onde as cousas estar un pouco estresante no inicio, polo menos se ten Nunca programado antes. Meu Deus. Eu escribín un programa de dúas liñas e Teño catro liñas de erros. Entón, o que está pasando aquí. En primeiro lugar sempre rolar para atrás e atopar a primeira mensaxe de erro, porque moitas veces só compiladores se confunden co que vostede e eu. Compiladores son moi burro. Eles só vou facer o que ti dicirlles o que facer. E se confundir-los, son só vai tipo de vomitar as súas mans e quizais lanzar máis mensaxes de erro que son realmente relevantes. Entón, imos ollar para a primeira. Super enigmática en primeiro lugar. Pero aviso, aquí está o nome do ficheiro no que eu estraguei todo parecer. Colón 5, colon 5 significa só en liña 5 no quinto personaxe. Entón quinta columna de caracteres, se quixeren, de erro. Uso de secuencia de identificador non declarado. Quixo dicir estándar n? Non, eu quería dicir cadea. E entón, é unha especie de copiando e colando o que eu escriba para realmente chamar a miña atención a onde eu estraguei todo. Entón, por algún motivo C, ou, polo menos, o compilador non comprende a secuencia de palabras. E iso é porque o fixemos anteriormente. Entón cadea non existir en C. O CS50 fai, para as primeiras semanas só da clase, é nos das algunha formación rodas, por así dicir. E poñemos esas Rodas pequenas dentro dun arquivo especial chamado CS50.h. Polo tanto, este é o segundo de dous ficheiros nomes que aparentemente terminan en punto h. Imos rebobinar. Printf é unha declaración ou función que ao parecer imprime algo á pantalla. Pero non me viu aplicar printf, certo. Alguén anos aplicado printf. En que ficheiro se apostar que ou ela puxo a implantación para printf, o código para printf? Nun ficheiro chamado estándar I / O.h. En realidade, é probablemente en dous arquivos, eu estándar / O.h, que significa cabeceira ficheiro, e eu estándar / O.c, que significa o código fonte C. Que el ou ela, hai algúns anos se xogou o código que eles escribiron ao arquivo para que persoas coma nós anos máis tarde, pode inclui-lo, por así dicir, nos nosos propios programas. E, de feito, é o que o sinal de libra seguido da palabra inclúen fai. El mira para o disco duro local, atopa o ficheiro chamado estándar I / O.h, e logo, de forma eficaz e copias cola-lo dentro do meu propio arquivo. Entón agora o meu programa sabe como imprimir a pantalla. Entón, por esa lóxica, onde defínese corda? Audiencia: CS50.h. DAVID J. Malan: CS50.h. E, de feito, iso é o que nós, o persoal do núcleo, teñen feito. Nós inventou algúns tipos de datos, por así dicir, como unha corda, ademais de que obter de balde, como un int. E veremos os outros como un char para un personaxe e un pouco máis. Dentro CS50.h aparentemente é polo menos algunha mención de cadea. Entón, agora deixe-me ir adiante e make reprise Ola-1. Vou aumentar o zoom novo e cruzar os dedos. Agora por ter feito unha cambiar Eu fixo a maioría das cousas. Pero dane-se. Máis por cento do que os argumentos datos. O que eu fixen de malo esta vez? Por iso, aínda é moi enigmática. Pero este erro está na liña 7 e 21 caracteres. Entón, imos ollar para arriba aquí. É un pouco sutil. Pero se pensar sobre o que as ideas fundamentais aquí son, quizais poidamos provocar este apart. Así printf é o nome da función. Parénteses, ata o momento, é así como o que poñemos en torno as cousas que estamos pasando como entradas para unha función. Todo ben, só un convención humana arbitraria. Use parénteses. Dentro destes parénteses vimos poñer comiñas dobres, e, a continuación, unha cadea como "Ola mundo". Pero nese exemplo anterior moi brevemente fixo miramos co Scratch. E tivemos a porcentaxe d, o que máis estaba dentro destes parénteses que eu chamei verbalmente? Si. Audiencia: Entón é o que está tomando [Inaudível] dentro [inaudível] o que estes [inaudível]? DAVID J. Malan: Exactamente. Entón tivemos a porcentaxe d. Pero despois tivemos preto cita, coma, contador. Certo. Nós especificados que queremos facer como o espazo reservado. Entón o que eu vou facer aquí é coma, o que quere que eu poña? Audiencia: S. DAVID J. Malan: S, porque s neste caso é o nome do recipiente de almacenamento. É o nome da copa de cristal. Mentres antes era contador en que exemplo simple arranhão nós miramos. Entón, agora, tendo feito dous cambios, déixeme achegar e intentar unha vez máis compilar este programa. Agora vexo que a liña enigmática. Pero iso é realmente o nome do compilador. Tinido é o nome do compilador. Fai só me salvando a dor de cabeza de sempre escribindo o comando longo tolo para fóra. Polo tanto, agora se eu cortar punto Ola-1, Eu vería "Ola, David." Moi por baixo do esperado, con todo, non? Poderiamos ter feito esta moito máis simplemente sen falar de variables e CS50.h e todo iso. Entón, imos facelo un pouco máis interesante. Ademais CS50.h, ter cousas como cordas declarada, a biblioteca CS50 tamén ten algunhas funcións. Entón, así como anos atrás, alguén escribiu printf e poñelas no estándar I / O.h e algún outro ficheiro. Nós, o equipo CS50, escribiu unha función chamado nextchar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, e poñemos os dentro dun ficheiro chamado CS50.h e CS50.c. E nós poñer-los dentro do CS50 Appliance. E a xente tamén poden baixa-los en liña se quere poñer-los no seu propios ordenadores tamén. Que significa dicir que creamos funcións que obter a entrada do usuario. Eu non sei que todos destes tipos de datos son. GetInt é medio sinxelo, como obter un número enteiro de algunha maneira do usuario. E GetString é, probablemente, como get unha palabra ou unha frase do usuario. Entón imos centrar niso. E eu vou volver para o aparello e eu estou indo a ir adiante e salva este ficheiro como, digamos Ola el-2.c como miña segunda versión. E imos facer algúns cambios. Esta vez, en vez de difícil codificación David, que fai incrible consistente pero o programa baixo do esperado, e se eu, no canto facer GetString? Agora conta GetString ten un paréntese de apertura, parénteses pechado, porque non precisa de calquera entrada. El só vai pegar unha cadea de usuario. E agora unha palabra noutra sintaxe. Semicolons só rematar unha liña de código. Non precisa de todas as partes. Pero iso só quere dicir que eu son feito con esta liña de código. Déixeme pasar a outro declaración ou función. Corda declara unha variable. Cadea é como dicir dáme un recipiente, por favor. E deixe-me poñer unha corda nel. E agora o signo igual. Cal é o signo igual esencialmente equivalente a? Audiencia: Asignar. DAVID J. Malan: Si, atribuíndo un valor. Entón, se eu, por exemplo, chamada esta función GetString, e veremos en un momento que é vai solicitar ao usuario unha cadea. Isto é como me deixar logo escribir D - a-v i-d sobre unha peza de papel. E cando digo cadea s é igual a GetString, igual non significa realmente igual en programación C. Significa atribuír da dereita lado a lado esquerdo. Entón eu comece unha cadea. E o signo igual significa poñela no almacenamento recipiente chamado s. E A continuación, pase esta off para printf para realmente facer a súa cousa. Así, o resultado final, entón vai a ollar un pouco diferente. Imos fan Ola-2. Ou podería traballar. Está acompañando. Fai Ola-2 funcionou. Dot cortar Ola-2, Intro. Eu parezo ter un infinito loop ou algo así. Non está pasando nada. Por que? Audiencia: Está facendo un loop infinito. DAVID J. Malan: É un loop infinito. É unha especie de me esperando para realmente fornece-lo con algunhas entradas. Entón deixe-me ir adiante e escribir en David, e prema Intro. E agora di "Ola, David." Se eu executa-lo de novo. Imos escribir Rob, "Ola, Rob." Agora que é o peor interface co usuario de sempre. O usuario é aparentemente debería saber o que facer. Pero non importa. Usando estes mesmo edificio bloques así como no risco, podemos resolver este problema e dicir algo así como o seu nome, por favor, colonos, espazo, pechado cita, preto paréntese, punto e coma. Entón, unha morea de novo disparate coa sintaxe. Pero repare que eu acaba de engadir un parte do enigma enriba desta e por riba deste. Polo tanto, agora se eu executar novamente este, Ola-2, Intro. Espere un minuto. O que está mal? Non está comportándose de forma diferente. Si. Audiencia: non executar make novo. DAVID J. Malan: Eu non fixen executar make de novo, certo. Entón eu mudei de código fonte. Pero, de novo, non hai ese fluxo. O código fonte a través do compilador dá Vostede é novo código obxecto, ou 0s e 1s. Entón eu teño realmente make reprise Ola-2 Intro. OK, algo parece acontecer. Dot cortar Ola-2. O seu nome, por favor. E para ser claro agora, por que o cursor na mesma liña? Exactamente. Non coloque a barra invertida n-se aquí no meu código. Entón agora podo escribir algo así como Daven, Intro. Podo executa-lo de novo e escriba algo así como Gabe, Intro, e temos un programa diferente de novo e de novo e de novo. Agora, en definitiva, imos ter usar algunhas capacidades diferentes. Necesitamos introducir en definitiva, algúns condicións de facer as cousas condicional. Quizais lazos para que poidamos facer cousas repetidas veces. Quizais sería bo se nós podería aplicar as nosas propias funcións, como podemos aplicar o noso propio printf ou a nosa propia versión do GetString GetFlow e, en definitiva, porque aínda usando este medio de liña de comandos que podemos facer ata o máis visualmente interesante de cousas. De feito, en conclusión, déixeme facer. Eu estou indo a ir adiante e pechar esas fiestras e abrir ese icono aquí, que é só unha maior versión que incorporado fiestra de terminal. Entón Gedit ten non só o lugar para o meu código, pero tamén construído nunha fiestra de terminal, o fiestra branco e negro onde eu poida executar comandos. Aconteceu de eu abrir unha versión maior desta. E agora eu estou indo a ir a o cartafol que eu xa poñer con antelación na páxina web do curso. E eu estou indo a ir adiante e abrir un ficheiro chamado thadgavin.c, que foi escrito por alguén máis. E se miramos para iso, este non é o tipo de código estaremos escribindo desde O obxectivo deste código era escribir a máis fermosa buscando o código que el ou ela podería, sen importar se ou non outro ser humano xamais podería comprender este código. De feito, todos os anos hai é o que se chamado un concurso C ofuscado, que é para geeks reais que escriben código que ninguén máis pode ler, pero que fai algo ou realmente simple ou realmente incrible. E pensamos Concluímos con este ollar en algo que é bastante sorprendente pode ter visto antes. Pero imos rematar nesta nota, corte de punto, thadgavin. Iso, entón, é o que espera. Isto é todo para CS50. Imos velo na Mércores. [MÚSICA DE XOGO]