[REPRODUCIÓN DE VIDEO] -A Triunfo de matemáticas e capacidade mecánica é esta nova gran automática calculadora na Universidade de Harvard. Intrincados problemas en matemáticas poñer a través da máquina en forma codificada, na cinta con precisión son resoltos nun diminuta fracción do tempo necesario para o cálculo humano. Deseñado para axilizar toda forma de investigación matemática e científica, o cerebro mecánico xigante vai traballar para Mariña dos Estados Unidos ata o final da guerra. [FIN DE REPRODUCIÓN] David J. Malan: Este é CS50. O pasado era un máxico lugar, pero se xa preguntou o que este dispositivo é en Harvard Science Center, é de feito parte do Harvard Mark I, e é en exposición alí agora nos últimos moitos anos. E o que podes ver incorporado no conxunto de problemas un é un ollar detrás das escenas en que este dispositivo fixo, e fai, Profesor de Harry Lewis, que está o departamento de ciencia da computación aquí. Así, máis que en algo. Pero hoxe comezan a transición desde a semana pasada para esta, e nós imos traer mención dunha fotografía aquí iso é realmente moi famoso. Alguén sabe o que esta aquí está na pantalla? Polo menos segundo o mito. Si. Audiencia O primeiro virus. DAVID J. Malan: Entón foi supostamente o primeiro erro real nun ordenador. Agora, en realidade, a palabra erro, por un erro nun programa, estivo connosco por algún tempo do mundo físico, e este foi un dos primeiros veces documentados en que alguén realmente arrincou unha gran traza fóra do Mark Ordenador II, poñelas no cartafol, e despois gravamos como o primeiro erro coñecido ser realmente atopou fisicamente. Así, polo tanto, foi inserido que en Lore de hoxe. Todo, dende a última semana está dispoñible en liña. En recursos particulares que pode non necesariamente observar, especialmente se vir aquí persoalmente. Así, un dos compañeiros de ensino cada ano fai un conxunto canónico de notas, así que non manter súa cabeza para abaixo, tratando transcribir todo que podería acontecer aquí na clase. Así, entender que os así-chamada [? Scribd?] Notas están en liña, certamente os diapositivas e código fonte que usan en clase. Facemos transcricións de texto completo dispoñible tamén. Entón, se me lembro vagamente algúns prazo, e quere buscalo algo máis facilmente, entender que todos de que é searchable en liña. Así como instrucións paso a paso, ben. De feito, hoxe comezan a mirar para unha linguaxe de programación de baixo nivel, logo a ser coñecido por nós como C, e é moi fácil a sorte de perderse despois de só uns momentos do tempo, e, a continuación, tipo de marabilla como realmente comecei a un pouco máis exemplo complexa desde as máis simples. E así imos entender cereixa escoller durante a clase dalgunha dos exemplos representativos, pero entender que moito máis é tamén dispoñible en liña para que poida traballar través del no seu propio ritmo, con todo, está máis cómodo. Pero paramos con programas que eran só iso. Entón eu premer a bandeira verde, eo que este programa fai? Di: Ola, mundo. Fai o gato dicir Ola no seu pequeno mundo na parte superior esquerda de interface de usuario de cero. Pero comezamos a introducir algunhas terminoloxías a semana pasada. E así, cousas como esta que chamou o que? O que podería ser o termo xenérico para iso? Si. Un método ou unha declaración. Por suposto, é unha acción. Faga iso. E aínda había outras formas para cero, Ademais destes chamados declaración, eles tamén foron cousas como esta, que chamamos o que? Si. Así, un loop. E neste caso, esa cousa repeticións, obviamente, 10 veces. Hai un bloque para sempre. Hai un par de outros. E hoxe imos ver como traducir isto para un mundo máis moderno, se quixeren, aínda que sexa vai parecer a primeira vista a ser moito máis misterioso. Pero aqueles eran de feito lazos. E entón temos cousas como este, que esa forma, e esencialmente preguntas. E falamos de elas como o que? Audiencia: expresión booleana. DAVID J. Malan: Yeah. Expresión booleana. Algo que é certo ou falso, si ou non, un ou cero, con todo, quere ver o mundo. Pero chamamos os booleana expresións, e liga-los en condicións, ou ramas. E no mundo de Cero, todo ben trabas en termos da súa forma, se ten sentido lóxico facelo, pero non ten que deixar en só facendo unha cousa condicional, pode ter unha proverbial bifurcación na estrada e facer isto ou aquilo se a condición é certa ou non. E entón, como vai ver, se non ten, Podes incluso niño eses bloques. Así arañazos crece para cubrir as formas que pode querer inserir-lo, para que poida realmente expresar máis calquera lóxica que pode querer facer. Agora algunhas palabras de anuncio para tanto aquí como New Haven. Entón corte comeza hoxe. A URL para iso é o curso de web, para os non familiarizados. Seccións será un oportunidade de reunirse nun ambiente moito máis intimista de [? Sanders?] Permite, con 10 a 20 cun compañeiros ensinando compañeiro en diferentes pistas, e ritmos diferentes, se así o desexen. En realidade as ofertas de cursos seccións diferentes para aqueles menos cómodo, máis cómodo, e nalgún lugar no medio, eo papel de ouro aquí, é non hai unha definición formal, pero se é menos cómodo, medio que coñecemos. Está un pouco sobre o intrépido idea de entrar a pé, quizais, de volta na clase, ou amosar ata unha sección no medio. Se xa estivo programación sempre que foron seis anos de idade, máis cómodo, quizais para ti. E se é un tipo de tiro-up, iso é o que o in-between está destinado a ser. Agora, con todo, para unha clase deste tamaño, ela nos leva moito tempo para sección todos, polo que temos chamado, seccións de super, chegando este fin de semana e comezos da semana que vén, entón bótalle un ollo no sitio web do curso para os que están naturalmente ampla, e tamén filmou para aqueles que non pode facelos. E seccións si comezará a semana tres dos CS50 índice cero. Problema xa está definido 0 na páxina web do curso. E entender que ten nove días de atraso neste semestre. Polo tanto, esta é unha actualización do pasado ano, cando tivemos cinco días de atraso. Entón, se está a se pregunta, temos nove conxuntos de problemas. Ten nove días de atraso, cada un dos cales só se pode gastar un por semana no. Isto fai de forma eficaz todos o problema define debido venres pero o obxectivo é poñer un pouco pouco de presión psicolóxica en ti para tratar de obter cousas en xoves porque como vai descubrir logo, para mellor ou para peor, a maioría todo no mundo do software acaba levando máis tempo do que se anticipa. Por iso, considero-o unha especie de oportunidade de axudar mesmo para dirixir xoves pero ter confort en que, si, todo é debido venres. E se somete-los en Xoves, que é marabilloso. Non hai puntos de bonos ou extras crédito para cumprir este prazo. Estaba a ser só unha muleta. E o horario de oficina, tanto aquí e en New Haven, en persoa, se quere reunirse con calquera dos nosos cursos ensinando bolsistas e CAs de asistencia. Todo ben. Entón, agora, imos facelo máis real. E por un momento que comezará para obter un pouco máis escuro, pero moi rapidamente o venres e semana estaremos capaz de facer moito máis do que poderiamos ata agora no scratch. Entón, nós introducimos último código semana, aínda pictórica. Foi pezas do puzzle. E nós formalizado que é algo chamado código fonte, pero que se parecía? Ben, el parecía un pouco algo así. E, de feito, só para o tipo de provocalo onde podemos ir con este. Eu estou indo a ir adiante e abrir unha ventá aquí, e eu só vou escoller Novo ficheiro. E eu estou indo a salvar este ficheiro como algo Ola punto c. Máis sobre iso elección palabras só un momento. E así é como alguén podería vai escribir sobre un programa. Incluír estándar I / O punto h, int main baleiro, a continuación, abra chaveta, preto chaveta, printf Ola mundo coma, barra invertida n, punto e coma, Gardar feito. Aceptar. Escribín o meu primeiro programa, pero vai para ser incrible decepcionados porque cando, en realidade, executar este programa, por suposto, por primeira escritura facer Ola, e, a continuación, dot cortar Ola, e nós imos pasar por iso con máis detalles nun momento, iso é todo o que fai. Non abriren as fiestras. Non fai nada particularmente extravagante. Todo o que fai é o que eu dixen a el facer, pero como é que imos chegar a iso? E como é que imos construír enriba diso? Ben, imos introducir algunhas diferentes conceptos aquí. Entón un, que estamos a piques de comezar usando un programa chamado compilador. Existe un compilador para Mac OS, Windows, Linux, calquera número de sistemas operativos, e pronto iremos presentalo ao ambiente que iremos utilizar, pero un compilador é só un xeneral prazo para unha peza de software que leva o código fonte e produce o código obxecto da mesma. Noutras palabras, se ten como entrada a fonte código, algo así como o que eu escriba, en definitiva, produce o código obxecto. E código obxecto é realmente só un xeito elegante de dicir que produce de cero e un de. Noutras palabras, a fonte código, aínda que sexa vai mirar un pouco escuro, e un pouco menos agradable que cero, a primeira vista, é, polo menos, algo que nós, seres humanos poden entender. É o tipo de parece e soa como Inglés aínda que sexa moi sucinta. Tendo en conta que a programación de cero e en one, como os nosos antecesores tiña que facer, uns anos, non era un particularmente divertido reto. E, con todo, este é o que o ordenador aínda entende. Entón compilador está connosco desde código fonte do código obxecto. É como abrir un arquivo co compilador, e cando salvalo, obter eses ceros e uns. Entón, imos ver como facer que en só un momento. Pero imos agora tentar ofrecer un ponte entre a semana pasada e esta, de xeito que mesmo como nós quedan colgadas en cousas como chaves, e-comas e parénteses, e todos estes intelectualmente interesante aspectos da programación, que moi compreensivelmente tropezar persoas ao comezo, entender que todas as ideas Hoxe en día, son o mesmo que na última. Entón pasado vimos este exemplo aquí, o programa Ola Mundo. Ben, a partir de hoxe, se queremos para aplicar ese mesmo programa, que vai mirar un pouco algo así. E nós imos explicar en pouco tempo o que int, e principal, e baleiro, e todo isto é, pero polo menos eu vexo aquí xa o familiar Ola Mundo. Mentres tanto, cousas como función, digamos Ola, é moi simplemente será un declaración moi simple como este. Printf Ola mundo, con algúns cita, cunha barra invertida, cun punto e coma, pero máis de que para vir. Loops, á súa vez, este é un circuíto que, por suposto, di Ola mundo para sempre, e este vai mirar un pouco máis estraño que nunca antes, pero se eu digo algo como, á vez activada, I Pode entón imprimir Ola, mundo novo e de novo e de novo e de novo. E entón, como pode tipo de comezar a inferir aquí, esta convención de usar claves é amable de como abrazar o liña recuada de código alí. A liña printf de código moi parecido a peza do puzzle amarelo enriba. Entón, non imos dicir para sempre, imos dicir mentres certo, pero imos ver por que isto ocorre en só un pouco. Mentres tanto, si temos un loop como este, onde repetir algo finito número de veces, este tamén é vai levar un pouco para acostumar para, pero vai dicir para int i recibe cero, i inferior a 10, i ++, e, a continuación, de novo printf. Pero non vai ser patróns. E para os que están familiarizados con AP Ciencia da Computación, ou Java, ou calquera número de outras linguas, case todas estas construcións ata agora que mirar principalmente familiar. Entón variable. Entón aquí está un simple texto risco que define unha variable chamada contador a cero, e, a continuación, para sempre, di o contador, e a continuación, cambia o contador a unha. Así que comeza con cero, e, a continuación, un, dous, tres. Ben, como podemos introducir que, en esa nova linguaxe algo semellante? Int contador é igual a cero, mentres certo, que é que aínda idea antes de facer algo para sempre, e eu estou indo só para printf. E agora está quedando un pouco raro, i por cento, pero máis sobre iso para vir, pero esas ideas son exactamente os mesmos. Nós só agora teñen que unirse a A sintaxe que o ordenador está vai esixir de nós. Expresión booleana, algo así como SX menor que y, ou x menos que Y, e y inferior a z. Vai parecer un pouco algo así, con parénteses só como en matemáticas para unha boa medida para só asegurar que a orde das operacións é como pretendemos. E agora, condicións. Entón, se x menos y, digamos x é menor de Y, o resto si x é maior que Y, dicir que x é maior que Y, se non loxicamente, x debe ser igual a y. Entón pode aplicar algo así en risco, ou pode aplicar que nesta sintaxe. E, de novo, as claves son unha especie de dándonos a mesma forma en que o puzzle pezas, pero a sintaxe, agora, é quizais empezando a seguir algúns patróns. Entón, o que iso nos dea aquí? Entón, nós estamos de volta, a continuación, no noso programa principal. Imos realmente agora facer algo con el. Así, neste primeiro liña vemos inclúen afiada, E / S estándar, dot h, e logo algún ángulo esquisito soportes debaixo diso. int main baleiro, e despois printf Ola mundo. Entón, só tes que dar un paso. Alguén que nunca programou antes, explicar, polo menos, unha destas liñas. Usando quizais algúns de xerga da semana pasada. ¿Que é printf, por exemplo? Si. Audiencia: [inaudível] DAVID J. Malan: Yeah. É unha función, ou unha declaración, da terminoloxía da semana pasada. E é unha acción que está facendo algo. Agora esta función, ou esta declaración, fai que parecen ter algún tipo de entrada? E en que sentido ten que parecen entrada, en caso afirmativo? Entrada, o que quero dicir con iso? Si. Audiencia: [inaudível] DAVID J. Malan: Yeah. Entón Acoitelado fóra algunhas pezas do puzzle onde pode parametrizar iso. Podería dicir que a repetición bloquear as veces a repetir, de xeito que era unha entrada de tipo, e só como cero tivo un pouco de espazo reservado branco ao número que escribir, nós tamén usar neste parénteses mundo texto para dar esa forma circular no que podemos conectar o noso contribución. Ao final, decenas de anos cando esta linguaxe, chamado C, foi inventado ninguén adiantou que é un de nós, estes, algúns anos despois, estariamos quere unha función que se Ola. Non? Sería bo que houbese unha parte do enigma, ou algunhas palabras clave, que se chama Ola, que literalmente só di Ola. Pero nós non precisamos diso. Podemos ter algo moito máis baixo nivel, como unha impresión xenérico mando, que leva entrada, e imprime o que quere que queremos. Entón, observe agora o estándar que comezará a emerxer. Paréntese aberta, preto paréntese é aparentemente abrazando a entrada, e entón eu vexo dobre cita en ambas as extremidades. Hai aínda barra invertida estraño n, pero espero que agora Pode comezar a ver, polo menos, que printf está tomando en algunha forma de entrada. Non tan agradable canto Rabuñar, pero é só como ter conectado algún valor alí. Todo ben, agora imos realmente facer algo con iso. Entón, algúns de vostedes poden coñecer desde comprar a clase antes, conversou cos amigos, que, para moitos anos usamos algo chamado o aparello CS50. Este foi un termo que describe unha tecnoloxía chamado máquina virtual, o cal é unha peza de software que a súa antecesores ía baixar off o sitio web do curso de balde. Eles poderían baixar unha peza libre de software chamada de hypervisor, algo chamado como VMware, ou VirtualBox, ou calquera número doutras ferramentas, e no seu Mac ou PC ou calquera ordenador que tivemos o ano pasado eo ano pasado, eles dobraría clic nun icono para realizar este software chamado hypervisor. E, a continuación, no interior do referido programa que abriría o aparello CS50. E o efecto que era un predecesor de vós foi rodando Mac OS ou O Windows, el ou ela, a continuación, posteriormente, tivo unha nova ventá no seu pantalla en execución ambiente de CS50. Así, unha máquina virtual permite que executa un sistema operativo dentro doutro, e iso é o que fixemos. Durante a maior parte do que claro usar un sistema operativo chamado Linux, concretamente Ubuntu Linux, e iso é un xeito moi agradable o ano pasado de asegurarse de que todo o curso só tiña o mesmo ambiente. E pode utilizar calquera tipo de ordenador que realmente quere. Entre as desvantaxes, pero foron foi como dous gigabytes Para descargar esta cousa. Non necesariamente traballar ben en super- persoas cuxos ordenadores que quizais única tiña un concerto ou máis de RAM, ou non moitas gigahertz de velocidade da CPU, e por iso este ano, para esta e outras razóns, fomos transición a este ambiente. O chamado CS50 IDE, que é baseado en software de código aberto, e unha plataforma soportada que unha empresa chamada Cloud9 apoia en Europa, que permítenos ter, esencialmente, que mesmo ambiente como na exacta ano pasado, pero no así chamado nube. Entón, cal é a nube? Probablemente ligazón seu icono no seu Mac ou PC. ¿Que é a nube? Si? Un pouco máis alto. Si. É só unha morea de ordenadores noutro lugar que almacenan datos e execución software e semellantes. Entón, é realmente só para a palabra de xure de describir [? alugados?] ordenadores que viven na casa. Que, vostede mesmo, non necesariamente ten. Entón, cando os seus datos, ou o seu programas, están na nube, iso só quere dicir que é en alguén ordenadores doutras persoas noutros lugares, e non, moi probablemente, no seu portátil ou de escritorio físico. E iso é o que CS50 IDE é agora. A partir deste momento vai para un correcto URL que pode presenta-lo para, en conxunto de problemas 1, a finais deste semana, que, a continuación, despois do login, darlle ese ambiente. E moito scratch como tiña unha Algúns paneis de diferentes implicadas, o mesmo ocorre co IDE do CS50 temos exactamente aquel. Na parte superior esquerda aquí, está vai ver un navegador de ficheiros familiar. Entón, calquera dos arquivos que colocado neste ambiente está indo só para ser listado alí. Arquivos e carpetas. Na parte superior dereita aquí, vai ver un lugar onde pode realmente escribir o seu código. Inicialmente en C, ao final do prazo en PHP e JavaScript, e, se cadra, para a final proxectos, Ruby ou Python ou Java ou calquera número de linguas son soportado neste ambiente. Non é de todo amarre especialmente para CS50. E, a continuación, na parte inferior aquí, sobre todo para os máis cómodo, tes algo chamado unha fiestra de terminal. E esta fiestra de terminal permite que executa calquera comando que queremos neste ambiente de nube. Permite que instala ningún programa adicional que quere porque chamado raíz ou de administrador privilexios. Polo tanto, noutras palabras, aínda que esta en definitiva é aloxado na nube, e aínda que temos simplificado que, en certa medida por defecto, literalmente, introducindo, grazas a Dan Armendáriz, e Dino, e Dan Bradley no equipo do CS50 sobre o pasado moitos meses, un menos cómodo Polo que esconde unha morea de distraccións inicialmente confuso. Todo existe para representan un sistema informático típico que pode usar no mundo real. Entón, o que todo isto significa, e o que podemos realmente facer con el? Imos realmente dar un ollo a un programa. Entón, eu estou indo para abrir o ambiente real aquí, que é só a nosa Chrome navegador, o que podería ser o Firefox, podería ser o Internet Explorer, ou algún outro navegador tamén. É cheo de ruta aquí para o momento. E quero realmente provoca ademais o que este programa era. Entón, imos dar un ollo, por ampliar ata arriba, polo que eu fixen, e como eu cheguei aquí. Entón aquí está quen exacta mesmas liñas de código. Polo tanto, esta é a declaración, como mencionar anteriormente. A función que di Ola. As chaves, sobre liña de catro e seis liña, presuntamente tipo de sobre esta liña para asocia-lo coa esencia do meu programa. Entón, en realidade, esta palabra chave principal, que está alí enriba na liña tres, pode pensar que como o equivalente de que, cando premendo bandeira verde, bloquear no scratch. Entón, iso é todo o que temos aquí, é cando bandeira verde premendo, impresión, ou dicir, Ola mundo. Pero imos dar un palpite, agora, o que esta primeira liña, máis escuro, é. Afiado inclúen, aberto angular soporte, E / S estándar dot h, pechar soporte angular. Que quizais facendo, especialmente se xa programou antes de calquera outra lingua. Si? Audiencia: [inaudível] DAVID J. Malan: Yeah. Exactamente. Entón, iso é dándolle acceso a un biblioteca, por así dicir, de funcións. E unha biblioteca de funcións é funcións que outra persoa escribiu, quere recentemente ou hai moito tempo, de modo que Non ten que reinventar a roda. Por exemplo, non ten que saber, en 2015, como escribir código que puts un personaxe en pantalla. Outra persoa que ten figurado coa función printf para que eu poida clasificar de resumo lonxe do que, ou capa na parte superior da súa código, e agora só tomar por certo que calquera programa que eu escribir Pode imprimir algo na pantalla. Polo tanto, esta primeira liña alí na primeira etapa inclúe o chamado ficheiro de cabeceira á biblioteca estándar. Entón mira, a lingua en que estamos a traballar agora tiña unha biblioteca estándar con moitas funcións. Printf é un deles, e que a primeira liña de código significa me dar acceso a estas funcións, para que eu Non ten que reinventar a roda. Agora imos para a parte inferior da xanela e facer o que eu fixen antes. Un momento atrás, cando eu era zunindo través do código, escribindo-o para fora por primeira vez, I moi rapidamente ingresaran, faga Ola. Que foi o que diría? O que eu estaba facendo? Si? Non se preocupe. É Aceptar. Si. Audiencia: compilalo. DAVID J. Malan: Yeah. Foi só compilalo. Non? Mesmo se iso é completamente descoñecido para ti, é moi Inglés como. Certamente non é ceros e uns, entón eu aínda Debe executa-lo a través do que os chamados programa, un compilador, que vai para levalo como entrada e producir saída. E, polo menos, de momento, en Neste ambiente Linux, pero este non é unha condición previa, este é só onde nós imos comezar, normalmente interactuar con sistemas de ordenador como este por unha liña de comandos chamada. Así, cun chiscar listo e teclado, e non tanto o rato, e non tanto fiestras e iconas e menús, en vez todo é textual. E aínda que este se sente, a primeira vista, se cadra, como un paso atrás, é realmente un moito máis xeito poderosa e expresiva do control dun ordenador especialmente como, mesmo, facerse máis cómodo de menos. Vai permitir que faga unha chea máis cousas que Microsoft ou Apple permite que fai con o seu sistema operativo gráfico. Entón, cando prema Intro, agora, nada acontece neste momento porque ao parecer o Ola programa está actualizado. E cal foi o comando Corre despois diso? Dot cortar Ola, e Ola mundo. Agora imos dar un paso volver só un momento. Acontece que facer Ola é só un forma simplificada de compilar un programa. Nós só introducir unha peza de argot, pero, a continuación, se afastar a partir del, xa que non é todo o que interesante para fins de hoxe. O compilador imos comezar a usar Clang chámase, para a linguaxe C. E este é un programa que se executa só como fixemos na liña de comandos alí. E así se eu queira compilar un programa que eu escribir nun ficheiro chamado Ola dot c, eu literalmente escriba clang Ola c inserir. O curioso é que, por razóns históricas, se eu non especificar o nome do programa que quero para a saída, se non o fai especificar un nome de ficheiro para estes ceros e uns, moi estraño Convención foi adoptada anos onde sentiu unha especie de boa resposta no momento, ben, imos só arbitrariamente chamar a primeiro programa que compilar un punto fóra. Un ven en primeiro lugar no alfabeto. Fóra, é a saída. Entón, imos chamar o programa por defecto un punto fóra. E iso é bo, porque se eu queira executar o programa neste texto base ambiente, só escribir dot cortar un punto fóra entrar. E sería executado exactamente como antes. Entón imos ver o que realmente rápido. Entón, se eu volver ao meu código fonte no IDE CS50, e eu, en vez facelo, clang Ola berce c entrar, aviso nada parece ocorrer, pero case sempre Neste ambiente Linux, cando nada de malo parece acontecer, que significa algo de bo realmente aconteceu. Se non ver un erro mensaxe, todo pode ser ben. E, de feito, se fago agora dot cortar un punto a entrar, executar o meu mesmo programa. Eu aínda teño o programa Ola de antes, porque, en realidade, é vai ser moito mellor só escriba o momento, en vez de lembrar estes encantamentos de comandos, pero imos ver como nós pode mellorar este, con todo. Entón, que é o mando para compilar o código. Este é o comando a executar o código compilado posteriormente. Como podo especificar un nome de arquivo? Ben, imos só introducir máis unha peza de xerga. Cando está neste ambiente baseado en texto, vai querer especificar cousas chamadas argumentos de liña de comandos. Que non é máis que un xeito elegante de dicir, É dicir, no poder axustar o comportamento de calquera programa que está executando. Entón, especialmente o programa que eu son en execución, escribindo o nome do clang, chámase o programa Clang. Polo tanto, esta é a vella escola ou equivalente a un dobre clic en Microsoft Word ou icona dalgún programa. Estou en vez só escribindo o seu nome, pero nesta versión do mando, A continuación, teño o trazo espazo Ola espazo Ola punto c. Así, mesmo se nunca desempeñado neste mundo antes, só dar un palpite que O trazo o Ola facer? Ou o que é dicir clang que facer? Si. Audiencia: [inaudível] DAVID J. Malan: Yeah. El só define a saída do ficheiro que se Ola, en vez do máis tolo un punto fóra. E, de feito, imos tratar isto. Entón, se eu agora facer, en primeiro lugar imos facelo, r m Ola. Iso é eliminar. E vai dicir elimina Ola ficheiro regular, que é innecesariamente arcano, pero só medios que quere eliminar o ficheiro, e eu escriba y para si. E teña en conta, se está mirando para arriba á esquerda, o fixo desaparecer de alí de arriba. Deixe-me agora facer clang trazo o, e Eu estou indo a ir adiante e facer Ola, en todo tapóns, Ola punto c. Agora, se eu fai barra dot Ola, o que esperar? Quizais sexa a maiúsculas e minúsculas. Quizais non sexa. Imos ver. Non hai tal Lima ou directorio. E podemos tipo de facer trampa só de ollar para arriba á esquerda. O que eu fixen, obviamente, gardar o programa como? Todas as tapas Ola. Entón, en realidade, o que está pasando para facer a diferenza. Entón, agora Ola mundo está de volta. Agora, iso é todo moi ben e bo, e todos moi de entorpecimento mental, a sorte de que atol en estes detalles, pero comprende-los é bo. Escribindo estes cada vez máis encantamentos longos non vai ser especialmente diversión, así que a xente no mundo inventou navegador, hai algúns anos, chamado facer, que pura e simplemente permite que escriba make, o nome do programa quere facer, e facer é intelixente na medida en que vai mirar en o cartafol actual, tamén coñecido como directorio, e se ten un arquivo Ola chamado punto c, que é o ficheiro ha compilar para que en un programa chamado Ola. Polo tanto, é un xeito moito máis sinxelo de facendo as ordes máis enigmáticas que fixemos anteriormente. E temos preconfigurado CS50 IDE saber que debe facer o guión e un número de outras bandeiras, ou argumentos de liña de comandos, que veremos en breve. Pero imos agora realmente facer algo máis interesante. Só escribindo Ola mundo o tempo non é tan atractivo. Entón deixe-me ir adiante e cambio este programa e dicir: Ola David. Agora eu estou indo a ir para abaixo aquí. Eu estou indo a ir adiante e fan Ola. E unha vez máis, agora está a ver facer é amosar-lle o máis longo secuencia de comandos que se facendo, porque temos preconfigurado dese xeito, pero nós Non se preocupe polo momento o que está facendo distinto do que é compilando dot cortar Ola, Ola mundo. O que hai de malo? Si. Audiencia: [inaudível] DAVID J. Malan: Si. Entón, erro noobie. Eu observo que é super sutil, pero o asterisco aquí, na guía, Significa só que non salvou-lo, e navegadores e programas facelo ás veces. Así, o control s ou comando s debe garda-lo. Agora, deixe-me ir adiante e re-executar o programa. Recompilados. Correcto, polo que é un proceso de varias etapas. Ningún dos cales é particularmente complexo, pero en calquera momento que cambiar o arquivo, necesitamos cambiar a resultante ceros e uns, e Slash dot Ola. Wow. Entón iso é moi underwhelming que acabamos impreso iso. Imos facer as cousas un pouco máis dinámico, agora. Ben se ve, que lle gusta Cero, C soporta variables. E resulta que se quere ter unha variable que almacena, non un número como nós tipicamente fixo o Scratch, senón como unha palabra ou unha frase ou un nome, vostede pode especificar unha variable para ser do tipo cadea. Entón, imos ver máis de estes en só un momento, pero parece que C, e unha morea de linguas como el, teñen tipos moi específicos de variables. Non é só gusta de álxebra, onde recibe un x, dunha y, z e e eses son só sempre números, nunha linguaxe de programación pode almacenar números, pode almacenar caracteres individuais, pode almacenar palabras enteiras, podería almacenar imaxes enteiras, arquivos de son integrais, e semellantes. Entón, necesitamos especificar o que o tipo de variable é noso. E, por convención, eu vou chamar ao meu s variables só porque é sucinto, e s significa cadea. E entón eu vou para almacenar neste variable, así como co Scratch cando eu uso o bloque set, Vou usar o operador de asignación en C, que ben o suficiente é o xeito asinar, pero o signo igual fai iso. Se move algo de dereita á esquerda da expresión. Entón, o que eu fixen, para ser claro en liña de cinco, é que declarou unha variable. Eu dixen ao ordenador, dáme memoria para unha variable, chame-s, e saber de antemán que vou estar poñendo unha corda nel. E unha cadea é só un secuencia de caracteres. É unha palabra ou unha frase, ou parágrafo pero é unha secuencia de caracteres. Non é números. O secuencia de caracteres que eu vou ser poñendo en que variable? Ben, ao parecer, cita unquote, "Hannah". Agora, teña en conta o nivel que está emerxendo. Hai unha expresión man esquerda. Hai unha expresión man dereita, separados polo signo igual. E só dar un palpite, se descoñecido, con todo, co que o punto e coma se facendo. Que presuntamente facendo por nós? Si? Audiencia: [inaudível] DAVID J. Malan: Yeah. É só que encerra o line. Non? Os ordenadores queren estar sen reviravoltas dixo literalmente o que facer. Tal como a manteiga de cacahuete e exemplo bocadillos de marmelada, se non especificar o que pretende, el se pode deixar ao xuízo ou erro. O punto e coma significa, é iso para este comando. Ten que ser super precisa, e é unha cousa moi fácil de saír fóra. Entón agora este programa non parece estar comportándose de xeito diferente ata que eu facelo máis dinámico. Entón en vez de disco podería miña propia citar, déixeme poñer un valor do espazo reservado. E parece que, e eu sei diso de ler a documentación, e utilizada para a función anos, que printf foi deseñado para ser dinámico. Non ten que saber con antelación o que palabras quere poñer nel. Pola contra pode ter un espazo reservado, por cento s, que vai contar a ordenador, poñer unha corda aquí. Que secuencia queremos poñer aí? Will que entre estes parénteses, que lembrar, demarcar a entrada para unha función, se ten coma lista de cousas separadas aquí, realmente pasar en múltiples entradas a unha función. Entón, só tes que un pouco de risco bloques, é posible que non xogar con eles por proxectos aínda ou en todos, algúns bloques de raspadinhas ten dúas entradas. Dúas caixas brancas que podes escribir números ou palabras en. Entón, para non ter funcións como C printf que pode levar dúas entradas. E, de novo, este coma é separalos. Así, en inglés, de novo, aínda que nunca programou antes, polo que printf lóxica é unha función, leva dúas entradas, unha das cales é un espazo reservado, o que espera printf vai facer esa entrada? Vai dicir Hola Hannah, eu espero. Entón, para facelo, necesitamos salvalo. Eu estou indo a afastar. Vou volver para abaixo aquí e dicir, facer Ola entrar. Oh. Algo vai mal, e, de feito, este é moi grande. Teño seis liñas de código e como 12 liñas de erros. Entón, estamos ansiosos para iso. Entón, o que está pasando aquí? Polo tanto, a mellor regra de ouro aquí, especialmente cando se está empezando, non se distraer con o material ao final. En realidade, eu moi deliberadamente só rolou para arriba porque moitas veces, un ordenador é todo o que non brillante dun dispositivo. Vai ficar confuso. Se ve unha cousa que el non entende, pode confundir outros liñas de código como incorrectas, aínda que eles son perfectamente ben. Así, sempre quere traballar arriba abaixo a través dos erros. E o certo é que este é Super arcano no momento. Erro, a utilización de non declarado secuencia de identificador. Será que quero dicir no estándar? Non, eu quería dicir cadea. E está a apuntar cara, quizais sexa un erro de dixitación. Máis ou menos como, corrector ortográfico nun xeito moi geeky, pero a razón aquí, e vostede saberá que este só a práctica, é que parece que cadea non existe en C. De feito, C é un idioma en particular de idade, e é moi baixo nivel, e non fai unha morea de recursos que pode ter crecido con se ten, de feito, programado en Java, como algúns de vós teñen, pero pode ensino-lo cousas novas. E, de feito, fixemos iso CS50, aínda que ata o final do semestre, todas estas rodinhas foi retirado, o que facemos nestes primeiro par de semanas inicialmente é tamén temos incluír CS50 dot h. Que é un ficheiro de cabeceira. Máis sobre iso no futuro. É un arquivo que contén funcións que escribimos para ti. E entre estas funcións é funcións para aproveitar entrada do usuario, como cordas, e números, e números reais, e moito máis. Pero tamén ten algúns atallos. El define un valor booleano como un tipo de datos. C non ten verdadeiro ou falso. Pero podemos darlle a noción de verdadeiro ou falso a través desta biblioteca. E tampouco ten unha secuencia construído en ata incluír esta liña. Entón esta liña de código di o compilador, hey, Clang, ollar neste ficheiro para un todo chea de código que CS50 escribiu para que calquera persoa que use este ficheiro pode tomar para concedida a recursos eles engadiron. Entón, agora deixe-me ir adiante e limpar a pantalla, e curioso Só digo control l cada vez para limpar a pantalla, ou podes escribir clara. Eu só estou indo a ir adiante agora e Tipo de facer Ola, e está todo ben. Aínda unha saída arcano, pero non é unha mensaxe incorrecta. Agora ben, se fago dot cortar Ola, e como un de lado, corte de punto é descoñecido para a maioría. Significa só que, medio punto o directorio actual. Entón, se xa usou DOS ou Linux, ou Unix podería ter feito algo como cd dot dot, onde dot dot significa ir cara atrás en tempo, ou ir para atrás, ou máis arriba no seu directorio. Dot significa só ollar o directorio actual. Quero Ola, o que está ben aquí. E, de feito, agora di Ola Hannah. E se eu cambiar de novo a María, recompilar faría Ola, Slash dot Ola, o programa continúa a cambiar. Pero iso aínda é unha programa moi estúpido. Se eu queira enviar este programa, ou dalo a un amigo, ou dala a María ou Hannah para que o asunto, iso é bo. Podo personalizar-lo para ambos, pero non vai ser dinámico. Non poden cambia-lo despois que está feita dentro dos ceros e uns. Entón, o que fixemos algo máis intelixente? E se, no canto de hard-codificación no programa o nome da persoa, E se nós só obter a secuencia de caracteres baixo demanda? Polo tanto, noutras palabras, déixeme facer. Eu estou indo a recompilar este programa. E déixeme facer zoom no fondo agora. Fai Ola barra dot Ola. Agora nada está a suceder. Podemos obter un voluntario rápida para facer algo acontecer? Imos cara arriba. Cal é o seu nome? Pancho: Pancho. DAVID J. Malan: Pacho? Imos cara arriba. Unha vez que se levanta aquí, este é vai ser moi decepcionante, pero é máis interesante do que eu escribir o mesmo. Se quere ir adiante e introduza o seu nome, eu fixen este programa só para ti. Escriba o seu nome. Intro. Marabilloso. Todo ben, moitas grazas. Pancho: Thank you very much. DAVID J. Malan: Aceptar. [Aplausos] Iso foi moi amable. Aquí vai. O que fixemos? Polo tanto, por fin, polo menos, fixo este programa dinámico. Agora aínda é, certamente, por underwhelming deseño, pero finalmente temos a capacidade agora a escribir código de antelación, moi como os autores do printf, e, a continuación, dinamicamente adaptar con base na entrada somos entregados, quere polo programador, ou polo ser humano que é, en realidade, interactuar co programa. Entón, imos tratar agora, en realidade, para facer algunhas outras construcións para ver se nós non podemos facer os programas Se máis sofisticada. Entón, imos adiante e no canto de escribindo isto a partir de cero, Eu estou indo a ir hoxe código fonte, e todo isto está dispoñible no curso de web, e pode arrastrar e soltalo no seu propio ambiente venres, xa vir problema 1 conxunto dálle a instrucións, ou pode facelo na liña de comandos como ben, pero máis por vir no xogo 1 p. Imos ver o que está neste programa aquí chamado, somador punto c. Agora xa comentou Lo, pero o que hai de novo? A primeira vista, o que liña de código é absolutamente novo? Probablemente non fundamentalmente estraño agora. Audiencia: [inaudível] DAVID J. Malan: Si, así int x é igual a obter n. Nunca vimos nada diso antes, pero é probablemente int o símbolo para o tipo de variable, [? de?] un número enteiro. Así, int por enteiro. Está só sendo máis sucinto. x é só arbitraria. X e Y e Z son aínda bastante razoable para números, pero xeralmente nós imos usar palabras xa nosos programas se fan máis complexas. Obter int, por suposto, moi parecido corda get, é probablemente vai obter un int do usuario, e, a continuación, imos facer o mesmo con y. E, ao parecer, aínda que esta última liña, 24, parece máis complexo, só pode dicir a suma deste e que é esa outra cousa. E noten por cento i probablemente denota o que? Que papel por cento i aparentemente servir? É só espazos reservados. Non? S por cento foi para corda, i por cento é para enteiro. Non vai ser por cento f para valor de punto flotante que é só un número con un punto decimal. Noutras palabras, un número real. Entón imos realmente compilar este programar rápido real e fan víbora. Whoops. Boa oportunidade. Entón, observe aquí, todo este tempo o meu usuario nome para esta conta é jharvard. Estou en CS50 IDE, aka IDE50. E agora aquí en azul, é unha mención, pero do medio ambiente, de onde eu son. E, de feito, se eu aumentar ata o cumio aquí, repare en que eu teño unha IDE50 e vexo esta palabra, se tipo de virar a cabeza para o lado, espazo de traballo. En poucas palabras, o feito de que Estou vendo til barra de espazo de traballo significa que no presente texto ambiente de comandos na base, Estou no equivalente de texto este vídeo cartafol aquí. Entón, cando fago barra dot víbora, está dicindo ningunha regra para facer branco parada víbora. Non sei o que iso significa, pero é malo por algún motivo. Non hai tal Lima ou directorio é aínda máis claro. Onde está, entón? En base a onde prema para abrir o ficheiro. Onde podería estar? É probabelmente na fonte un w, a quarta- e podo velo, de feito, se eu abrir iso. Hai somador de punto C, pero en Neste ambiente baseado en texto, de novo, eu teño que ser super explícito. Se eu queira cambiar os directorios en fonte dunha mércores, eu teño escribir, cd fonte espazo un Mércores e entra agora meus ventá cambia para me dar unha información visual que Estou, en realidade, noutro lugar no meu ambiente, pero agora podo facer víbora, parece funcionar, dot cortar víbora, me dar un enteiro. Unha. Dous. A suma de un e dous é tres. Pero se eu non cooperar, imos ver o que chegar int fai. Dáme un enteiro. Non. Ténteo de novo. Aceptar. Fermosas. 50. 50. Todo ben. Polo que, finalmente coopera. E iso é parte do funcionalidade que estas funcións pode construír en para ti. Entón, dentro da aplicación de obter int, o que de programación construír desde a semana pasada é, probablemente, alí para obrigar este comportamento de repetición, repetir, repetir? Si, hai probablemente algún tipo de loop. Vai mirar sintaticamente diferente a partir de bloques de raspadinhas, pero iso é de feito o que está dentro do arquivo. E en poucas semanas imos realmente ollar para a biblioteca CS50 como o que está dentro, pero hai un loop impoñer exactamente isto. Imos xogar un pouco parvo xogo aquí con este ficheiro. Condition Cero punto c. Nós só estamos indo en xeral comezar a contar en cero. E eu manter a desprazamento pasado algún do material na parte superior. En azul aquí, con toda demarcada destas estrelas e as barras, aqueles de vostedes que programar antes, o que é iso? Por que seguimos a ignorar sobre el? O que? Audiencia: É un comentario. DAVID J. Malan: Yeah. É só un comentario. Este é un comentario para o ser humano ler, que, no noso caso, dinos que o nome do ficheiro é, quen o escribiu, eo que fai, de xeito que non ten para ler o código para saber o que este ficheiro é todo. É só unha descrición pero funcionalmente é irrelevante. E podo incluso borrar-lo meu arquivo e non ten impacto. As liñas son estes suculentos primeiro dous aquí, agora. void main int é o equivalente da nosa bandeira verde cando premendo, entón imos deixar que sexa para hoxe, e nós imos volver, finalmente, sobre o que int e baleiro son, pero agora, entender o que eu fixen aquí tamén, tamén se pode, se ten un en liña comentar, se ten un que quere compartir sobre unha determinada liña de código, convención en C é facer barra slash, e, a continuación, algunhas palabras sucintas, non unha frase completa, xeralmente non un parágrafo que explica a vostede, ou o seu TF, ou outros lectores ou compañeiros, o que o código está facendo. Entón en vez de ter que mirar para iso e inferir a partir de liñas nove e 10, o que é esta facendo, na liña oito Acaba de dar un comentario a pedir ao usuario a un número enteiro, entón eu non teño que pensar moito sobre o que liñas nove e 10 son. Eu só sei que iso é o que colectivamente están facendo. Como? Ben, aquí está o poder. Aquí é a obtención do int. E con base na anterior comportamento, parece que get int é intelixente dabondo para asegurarse de que o humano coopera e dálle un enteiro. Pero agora vemos isto. E esta é unha reminiscencia do Scratch. Eu digo que eu son analizando a entrada do usuario, pero un pouco imprecisa. E iso parece en C é como expresamos unha máis, dunha sucursal, unha bifurcación na estrada, pero eu dicir algo imprecisa. Cal é o erro neste programa? Sobre aínda máis cara atrás? Si. Audiencia: [inaudível] cero. DAVID J. Malan: Yeah. Entón, se eu escribir cero, imos considerar exactamente nese caso caso, ou canto, se quere. Entón, se eu escribir cero, cal dos bloques vai parecer agarralo lo? O caso é a persoa? A outra cousa, e que vai dicir, escolleu un número negativo. E, de feito, cero non se quere para ser positiva ou negativa, e de xeito que sería erroneamente. Iso sería un erro. Entón, como podemos solucionar isto? Alguén que nunca programado antes? Vostede want-- Audiencia: [inaudível] DAVID J. Malan: retraindo? Audiencia: [inaudível] DAVID J. Malan: Oh, ten? Alguén que nunca programado antes. Quere probar a súa man en este, coa camisa vermella? Imos cara arriba. Oh yeah, imos para arriba, se non lle importa. Por iso, nunca programado antes, o que é o seu nome? LAUREN: Lauren. DAVID J. Malan: Lauren, todo ben. Entón corrixir este erro para nós. Non vin C, presuntamente, e probablemente ningún outro idioma. Entón corrixir este programa para nós. Pracer en coñece-ya. Sen presión. LAUREN: Yeah. DAVID J. Malan: Pero, de novo, se este Gamble correr segundo o planeado, o takeaway aquí vai ser, só unha vez, para iniciar a notar patróns e deducir sintaxe existente de que outra forma podes expresar mesmo, sen trocadilhos, para para capturar algún escenario adicional. Entón, nós estamos dicindo else if. printf, bo. E teña en conta con CS50 IDE e IDE frankly-- significa Integrado Ambiente de desenvolvemento. É só un xeito elegante de dicir un programa que axuda programa. Fai cousas como usuario agradable cando insire un paréntese, el dálle automaticamente o outro. A presunción é que é finalmente vai querer escribir que, e tamén o fai con comiñas. Entón, me gusta liña 23. 99% do camiño ata alí. Alguén quere dialogar con unha información? Oín punto e coma do público. Bo. Así que remata que. E agora, eu só teño un pouco consternación coa liña 21. Como queremos expresar isto? Que pregunta queremos de pedir, que pensas? Entón anteriormente que fixo a pregunta, se n é maior que cero, facelo. Else, facelo. Entón, necesitamos escoller un pregunta a facer aquí. Audiencia: [inaudível] DAVID J. Malan: Good. Así, se n é igual a cero. Excelente. Entón, imos facer unha pausa aquí. Moitas grazas por esta enfrentando. Deixe-me dar-lle un pouco merecida bola de estrés, quizais non. Entón, nós estamos case alí. De feito, Lauren, se non mente, deixe-me facer unha emenda aquí, só para ser máis consistente, mesmo con o que vimos en risco, o que quero facer con liñas 21 e 24, só en base novo sobre como nós fixemos iso en perigo, quizais? Audiencia: Move-se. DAVID J. Malan: Si, mover para arriba. Así, a condición máis, a terceira, ou cuarto, quinto ou, ou ramo final, que realmente vir despois, e iso é só por convención, só porque se quere. Entón, eu teño que facer este axuste. E eu teño para poñer o meu chaveta de volta aquí. E agora, este programa pode compilar. Estamos tan preto, pero non hai un erro moi, moi sutil. Imos ver o que acontece. En primeiro lugar, deixe-me ir adiante e diminuír o zoom. Eu estou indo a ir adiante e escriba make condición cero. Oh, eu mentín. Agora, o compilador é realmente moi intelixente. E realmente non entendo é mensaxe de erro. Usando o resultado dunha concesión como condición sen parénteses, aparentemente é mala. Pero o que significa isto? Ben novo, buscando patróns no código que vimos antes, o que é liña 17, en realidade, facendo, aínda Lauren destina lixeiramente doutro xeito? Si. Audiencia: [inaudível] DAVID J. Malan: Yeah. Entón lembre o signo igual, ao parecer como nós usei iso antes, non é igual. A súa asignación, de dereita a esquerda. Así a liña 17 no momento é unha condición, e é execución de código dentro dos parénteses, pero cando este código é executado, o que está a suceder co valor de cero? O que está a ocorrer ao valor de n? Converténdose no cero. Polo tanto, se facer n é cero, e de novo, por a semana pasada, nós xeralmente din que o cero é falsa e unha é verdadeira, ou si é un e non é cero. Así, o certo eo falso, e un 0. Se n desde liña 17 foi dado o valor 0, é cero verdadeiro? Non. Por definición, cero é falso. Esa é a convención que estamos vai agarrarse a seguir adiante. O mesmo acontecerá coas liñas 18, 19 e 20 sempre aplique agora, loxicamente? Eles non poden. Por iso, a pregunta pero non con bastante precisión, e non sabe tanto, a menos xa viu iso, a solución en C é cando quere expresar igualdade, di iguais iguais. Entón, o signo igual xa foi usado para arriba por cesión, de dereita a esquerda. É igual a igual a medio iguais. E se o quere que a súa mente para ser dobrado, en JavaScript e PHP, hai igual iguais, o que é o mesmo que significar algo completamente diferente, pero nós imos chegar a iso en pouco tempo. Polo tanto, esta é unha solución sinxela, pero entender super fácil de facer ese erro, e despois preguntan e loita para minutos, se non unha hora, porque é o meu código non execución como eu pretendo? É porque non dixo el o que quería dicir. Así que foi case perfecto, e foi excelente que tropezamos por estes dous pouco cousas, porque agora se resolve-los, e fago condición de cero dot cortar condición cero, Gustaríame un número enteiro, por favor. Imos ver. Non. Me vai obrigar a facelo. Entón, 42. Eu escollín un número positivo. Entón, agora como fago para probar este programa correcto? Se vostede é un matemático, non pode realmente probalo por intento e erro, non? Pode proba non só por exemplo, pero polo menos como un programador que non estamos vai probar de momento que esta é realmente correcto, pero eu probablemente debería probar algúns casos representativos. Eu proba 42. Eu podía probar 43. Eu podía probar 44. Proba 45. Non? Pero eu podería facelo un tempo moi longo. O que sería un pouco máis casos interesantes de intentar? Audiencia: [inaudível] cero. DAVID J. Malan: Entón cero. Certamente. E bo, hai que ter iso, esta vez, grazas ao novo código de Lauren. ¿Que é un bo caso para tratar? Audiencia: unha negativa. DAVID J. Malan: unha negativa, e quizais algo un pouco maior, entón quizais negativo 42, pero, en xeral, cando probar os seus programas avanzar, está Vai querer pensar para si mesmo, como o que son os casos fundamentais diferentes. E atrévome a dicir que un caso negativo, un caso positivo, e un caso de cero practicamente roldas estes para fóra. Imos ollar a unha variante deste aínda. Condicións un. Esta é unha solución correcta aquí, de xeito que vai ver dúas e en liña, se camiñar a través da orientacións, a vontade xeral incrementar estes paso a paso ata que obter exactamente a visión correcta. E se a xente quería preguntar dúas preguntas á vez? Déixeme abrir esta vez. Non-switch, por razóns imos ver outra vez. O que hai de novo sintaticamente aquí? Actualmente estou xogando un xogo onde o ordenador está dicindo me, dáme un enteiro entre un e 10, e entón eu estou xulgando a entrada do usuario. En inglés, en base a o código que ve aquí en azul, o que é este programa está facendo? Audiencia: [inaudível] recollen un número grande ou pequeno. DAVID J. Malan: Yeah. É só pronunciarão Eu escollín un grande, ou medio, ou un número pequeno en base a unha moi definición arbitraria de pequeno, medio, e gran aquí, pero previo aviso A sintaxe é novo é este. Non hai menos de int ou igual a sinal, ou maior que ou igual a asinar, onde é unha sobre a outra, que pode expresar en como Microsoft Word. Así, nunha linguaxe de programación que normalmente só facer dous personaxes, un despois do outro. E o que iso probablemente representan, comercial e comercial. Audiencia: [inaudível] DAVID J. Malan: Yeah. Significa só que e por que Acontece que os autores do C utilizar un único e comercial, que pode pensar sería perfecto para a noción e de, xa se usa para arriba, E comercial e comercial, en realidade, tan capta o caso de que realmente quere. Entón, imos agora tropezar dúas cousas. Deixe-me ir adiante e abrir unha. Algo que é un pouco preocupante. Imprecisión punto c. Deixe-me presentar dúas cousas aquí. Un, aviso que podemos facer matemática, como só como antes, cando fixemos signo máis de dous números, X e Y. ¿Que é este programa, aparentemente facendo? Non teño comentou aínda, e eu teño presentado por cento f, pero eu rapidamente dixo anteriormente por cento f significa punto flotante valor, que é o número real. Algo cun decimal puntos, que non é un número enteiro. ¿Que pensas que este programa é intentando me amosar na pantalla? Si? Audiencia O resultado dun sobre 10. DAVID J. Malan: Yeah. Cal é o resultado dun dividido por 10. Seguro, porque todos vostedes teñen probablemente crecendo sabendo que un máis de 10 é o que? Si, é só 1/10 ou 0,1. Non? Entón, imos ver o que isto realmente é. Entón deixe-me ir adiante e gardar este. Deixe-me ir para abaixo aquí. Fai barra imprecisión dot imprecisión, e previo aviso, tamén, nun ambiente Linux, non ten que escribir a imprecisión e leva durante todo o día. Xeralmente, se premes tab, el vai rematar o seu pensamento para ti, en base ás palabras que sexan dispoñible no directorio actual. Aceptar. Entón, estaba seguro. Unha dividido por 10 é, de feito, 0,1. Pero eu son un pouco curioso. E resulta que printf soporta algunhas funcións a través do cal pode especificar máis de o número predeterminado de puntos decimais. Entón, se eu quero ver 10 decimal Os puntos que podo facer por cento, para o símbolo de espazo reservado, dot 10 para, dáme 10 puntos decimais, e, a continuación, aínda de punto flotante valor, e, como un aparte, o que é esa barra invertida n aparentemente seguimos usando? Acontece que é unha símbolo para unha nova liña. É o xeito moi explícita de dicir ao ordenador, mover o cursor á seguinte liña despois que fixo. E imos ver que pasa cando nós non facemos iso. Deixe-me facer recompilar imprecisión. Agora dot cortar imprecisión. Aceptar. Aínda dereita. Unha dividido por 10. Agora eu estou quedando un pouco curioso, con todo. E se eu ollar 20 decimal salienta, recompilar, reprise, e como un aparte para velocidade, tamén se pode usar seu arriba e abaixo frechas para rolar a través da súa historia, así que non ten que manter redigitar estes comandos, escriba. Huh. Non aprendín que na escola. Todo ben, entón déixenme ver como 29 prazas fóra. Quizais sexa só un acaso. Quizais o meu ordenador está actuando de forma estraña. Iso non é unha cousa, non? Está facendo algo de forma determinístico. Entón faga imprecisión. OK, iso é confuso. Entón, o que está pasando? Entón, ao parecer, o seu profesor foi deitado para ti todo este tempo para razóns que veremos en breve. Pero imos rematar con outro programa. Esta é unha pequena programas alguén escribiu fai uns anos, e é realmente parte dun concurso. Ninguén realmente escribe código como este, e se o fai, este é un problema estilística. Pero a xente fan isto para esixir dereitos. Para escribir o máis confuso programa que busca con todo, fai algo interesante. E a nota eu penso que ía saír en hoxe, antes de Colton xoga nós aquí fóra, é para executar este programa, que, mesmo en só usando C neste texto-base medio ambiente, nós, isto dá. Droga. [Risas] Espera. [Inaudível] c trazo l m. Vai ver a máxica encantamento que veremos en breve. [Inaudível] Todo ben. E agora pode incluso facer cousas como esta. É iso aí. Para CS50 nós, vai velo o venres. [Música tocando] [Aplausos]