LUCAS FREITAS: OK, eu creo agora estamos en directo. Benvido ao CS50 Supersection. Estamos menos cómodo. O meu nome é Lucas Freitas. Son un CS50 Cabeza TFS. Este é Lauren. Lauren CARBALLO: Ola, eu son Lauren. Eu tamén son xefe TF para CS50. LUCAS FREITAS: Hoxe nós só estamos indo para dar unha visión xeral de todo o que caras aprenderon nunha semana, espero que para dar a vostedes unha boa sentido para o que debes saber para definir un problema. Anuncios só unha parella. Primeiro de todo, o horario de expediente. Horario de atención están a ocorrer de luns o xoves en diferentes casas en Annenberg cada día. Son un recurso moi bo para ti caras que están por vir e facer preguntas, e falar con TFS e ata intercambio ideas con outros alumnos. Entón non esqueza usar este recurso no seu favor. A segunda cousa é o CS50 Appliance. Para o último [inaudível] Vostedes non ten que realmente ter un aparello. Acaba de facer todo en seu ordenador persoal. Pero a este problema, o que realmente ten ter unha máquina virtual, polo que non Asegúrese de baixar o CS50 Appliance e configure-lo. E a terceira cousa é estar seguro de iniciar o conxunto de problemas o máis rápido posible só porque é moito máis doado atopar axudar cando está no no inicio da semana. Porque as persoas tenden a agardar a que o último segundo para iniciar o conxunto de problemas, e logo, vai para o horario de expediente, e hai unha chea de xente. Onde se ir o luns, vai a ver que se pode falar para TFS practicamente durante toda a noite, e eles van ser máis que pracer en axudar. Lauren CARBALLO: Podo deixar por só un segundo? Toda a xente soubo baixar o CS50 Appliance? A xente intentaron? LUCAS FREITAS: Para descargar, polo xeito, pode obter instrucións de cs50.net/appliance. Lauren CARBALLO: Certo. E fai levar un pouco para o noso administradores de sistemas para que obteña unha licenza clave, de forma que se rexistrar para o avaliación gratuíta en primeiro lugar. Desta forma, vai telo por 30 días, e despois esperar pola súa clave de licenza que debe darlle a vostede por un ano. LUCAS FREITAS: Primeiro de todo, imos falar un pouco sobre o CS50 Appliance. O CS50 Appliance é realmente un virtuais máquina que vai executado no seu propio ordenador, que é basicamente executando outro ordenador dentro do seu propio ordenador. O que é moi legal. E, de feito, é usado en todas as partes. A xente que a tecnoloxía ía saber que isto é usado o tempo. vostede? Pode ter varios ordenadores nun único dispositivo. Imos realmente un ollo no Appliance. Cando vai para o aparello despois rexistrar, terá que poñer o seu nome e usuario para Harvard de modo que pode obter todos os rexistrados. Vai ver basicamente só un fondo, e logo, Home and Trash, e logo, eses pequenos iconas. Este tres iconas son realmente o máis cousas importantes que pode ter en O seu dispositivo. O primeiro é o Gedit, que é un texto editor, como o bloque de notas ou como calquera tipo de editor de texto. É só algo que usan para escribir código e, a continuación, facer cousas con el. A segunda cousa que nós temos aquí é Chrome. Entón, se precisa utilizar a Internet no aparello, que é o que pode usar. E a terceira cousa é o terminal, que é realmente moi doce. A xente xeralmente son unha especie de medo de o terminal, porque é este mesmo aplicación á moda antiga, en que basicamente só escribir todo con teclado. Non hai moita interacción co rato. Pero, en realidade, o terminal fai cousas moi boas. Primeiro de todo, imos só pasar por algúns comandos que pode usar na terminal. Lauren CARBALLO: E Sinto-se libre para deixar connosco se ten algunha dúbida. LUCAS FREITAS: Yeah. Así, o primeiro mando que temos para o terminal é ls. ls significa basicamente lista todo, todo os ficheiros e todos os directores, que eu teño no lugar que eu estou en. Entón, se eu fai ls aquí, eu vou ver que eu teño algúns directorios. Eu teño o meu ordenador, as transferencias, os rexistros e os vhosts. Esas son en azul, porque son todos os directorios. Entón tes algúns outros arquivos. Ten como Ola e hello.c, que son só arquivos, e están en cores diferentes. Polo tanto, este é un comando moi importante só podes ver cales son os arquivos e directorios que ten no directorio que está no terminal. Cando ve jharvard @ aparello e logo, o pequeno símbolo de alí, o til, iso só quere dicir que esa é a directorio que existe na actualidade. Lauren CARBALLO: Entón escribindo ls é case como facer clic no cartafol que está listado alí mesmo, na Mostra vostede todo o contido que están dentro desa carpeta. Audiencia: Existe texto tras o ola.c? Lauren CARBALLO: Ah, non pode ver iso, porque é azul. LUCAS FREITAS: Di toras e VHosts. Lauren CARBALLO: Estes son só outros cartafoles. Sinto moito, é realmente difícil de ver. Quizais se apagou as luces? Colton, quere probar e atopar a chave de luz? Sentímolo por iso. Eu non penso niso. LUCAS FREITAS: Pero é basicamente - si, se puidese - Lauren CARBALLO: Zoom na súa pantalla. LUCAS FREITAS: Non teñen esta característica. Lauren CARBALLO: [inaudível]. Aceptar. Así, hai só unha morea de recursos naturais luz nesta sala tamén. LUCAS FREITAS: Supoñamos que hai outros dous directorios alí. Lauren CARBALLO: Só ten que ter con nós. Esta é a única parte que vai estar a ollar para o terminal. LUCAS FREITAS: O seguinte comando é basicamente pode utilizar organizar os seus arquivos - por exemplo, os seus arquivos nun C directorio, pero non ten un directorio só para ficheiros C aínda. Basicamente pode crear un directorio mediante o terminal, así como, o que é o mesmo que botón dereito e dicindo Novo Cartafol. A orde é facer directorio, que é mkdir, entón basicamente "facer" e "O directorio". E entón podes poñer o nome do directorio. Imos dicir que eu quería ser chamado, Eu non sei, imos dicir pset1 Facer iso, acaba de crear un directorio. Imos comprobar se está alí. Entón, se eu fai ls, e agora vexo rexistros e entón pset1 e VHosts. Entón, eu teño o novo directorio alí. E, despois de que ten un novo directorio, quizais quere navegar para el, para que o seguinte comando deste cd, que significa, basicamente, ir a un directorio específico. Entón, se eu queira ir a pset1, Podo só facer cd pset1. Lauren CARBALLO: cd significa cambio directorio, [inaudível] poder lembre que. LUCAS FREITAS: E agora ve que no canto de só ter jharvard aparello, teño jharvard aparello, e despois pset1 porque está amosando me onde estou neste ordenador. Agora, se eu queira volver á directorio que foi antes de este, eu pode facer un punto cd punto, o que significa só ir ao directorio que era antes, como o pai deste directorio, basicamente. E agora eu vexo que eu son volta a jharvard. A seguinte cousa que eu podo facer iso é rm, que é eliminar o ficheiro. Por exemplo, imos primeiro facer ls a ver que eu teño aquí. Teño Ola e hello.c. Imos dicir que eu queira eliminar-los. Eu podo facer rm Olá Vai dicir "borrar o ficheiro regular Ola? "E digo" si ". E agora, se eu ls facer, eu vexo que é xa non está alí. Se eu tentar empregar rm a un directorio, con todo, iso non vai para deixar facer calquera cousa. Vai dicir, hey, ten Non se pode eliminar un directorio. Polo tanto, temos estoutra vir chamado rmdir, que significa, basicamente, eliminar o directorio. Podo, por exemplo, eliminar pset1. E se eu fai ls, eu non ten máis. Calquera dúbida sobre iso? Non? Si? Audiencia: É importante que deixe un espazo despois - sempre que comezar a escribir algo no? LUCAS FREITAS: Yeah. Se eu fai como CD eo directorio, Teño que poñer un espazo. O espazo que está falando? Lauren CARBALLO: O espazo entre cd e [inaudível]. LUCAS FREITAS: Si, vai ter que poñer os espazos porque é o cd mando e, a continuación, a seguinte secuencia que vostede tipo é basicamente o directorio. Entón, é como un argumento. Si? Audiencia: Cando lista, todos aqueles son directorios distintos, non? LUCAS FREITAS: Si, eles están no directorio. Audiencia: Cal é a diferenza entre os directorios? LUCAS FREITAS: Son só diferentes cartafoles. Directorio é un cartafol no seu computador. Audiencia: Abrir cartafol. LUCAS FREITAS: Si, é só un cartafol aberto. Lauren CARBALLO: aquí, os que están en azul son reais directorios que pode entrar e logo ver unha chea de cousas que son dentro diso, o que é lamentable porque non pode ler o aqueles en azul. E os en branco son só arquivos que están dentro do directorio actual. LUCAS FREITAS: Entón directorios son carpetas. Os outros son arquivos. Audiencia: Cal é a orde para axustar-la ou para limpa-la? LUCAS FREITAS: Para borrar? Lauren CARBALLO: Para borrar? LUCAS FREITAS: Eu creo que que é "clara". É. Entón acaba de escribir claro se A súa pantalla é moi desorde. Algunha pregunta? E vai aprender unha morea de outras ordes só naturalmente durante o semestre, porque son moi útiles. Entón, agora imos falar sobre a compilación. Nós falamos sobre pseudocódigo e código fonte e código obxecto. E hai unha morea de códigos, e quizais Vostedes están confuso sobre iso. Imos falar un pouco sobre o que ocorre cando está escribindo un programa, e recompila-lo, e convértese en un arquivo executable. Estas son todas as palabras que vostedes Probablemente xa escoitou falar, e quizais non estea realmente certo o que está a suceder. Digamos, por exemplo, que quero escribir un programa que di "Ola". O primeiro que ven na súa mente é vostede medio que tentar pensar en como está vai facelo na súa mente, e Probablemente está a pensar en inglés ou outra lingua, como naturais lingua, probablemente. E entón pensa, ben, se eu queira, por exemplo, escribir un programa que di "Ola", eu ía comezar un programa, Vou imprimir Ola, e entón eu vou saír do programa. Este é pseudocódigo. Isto é basicamente só estás chegar a unha secuencia de eventos que vai facer para ser capaz de escribir un programa. Entón tes o código fonte, e o código de fonte non precisa ser especialmente en C. Estamos a falar sobre o código fonte en C, porque iso é a lingua que está a aprender, pero está claro código pode ser practicamente calquera linguaxe de programación que ten. Máis tarde, o semestre, vai para aprender outros idiomas. Iso é tamén o código fonte. Por exemplo, aquí, esta é a miña fonte código, e entón eu estou incluíndo un biblioteca, e entón eu comezo principal, e, a continuación, imprimir. E Laura vai falar un pouco pouco sobre todo isto. Polo tanto, este é o código fonte. E o que é o código de obxecto? O obxecto é unha morea de ceros e queridos, basicamente. O que pasa é que ten inicialmente pseudocódigo, que é todo en inglés. E quero dicir, entende isto. Probablemente os seus amigos entender lo, ea maioría da xente entender a idea. Pero os computadores son realmente mudo, e non entenden inglés, entón ter traducir isto en algo, xeralmente traducido nalgúns linguaxe de programación. E pode pensar nunha programación linguaxe como como unha especie de linguaxe que informa o ordenador como de falar e de entender. Está basicamente escribir algo en unha linguaxe que ambos vostede eo seu ordenador entende. Ese é o código fonte. Entón, indo forma pseudocódigo a fonte código, é ata. É basicamente está facendo o seu programa. Pero o problema é que o ordenador nin sequera entender a linguaxe de programación. El non entende código fonte de todo. En realidade, só entende ceros e uns. Entón temos esta cousa moi máxica chamada un compilador, que basicamente é será a fonte de chamada que escribiu nunha linguaxe tanto a vostede e seu ordenador falar, e agora está vai transformar isto en ceros e uns. Entón, basicamente o que o compilador fai é recibe o código fonte, neste caso C, que vai transformalo en ceros e aqueles que o ordenador entende e pode facer unha arquivo executable fóra del. Será que isto ten sentido? Pode só pensar no compilador como algún tipo de tradutor que estea axudar a explicar para o ordenador exactamente o que se quere facer. Pero como fago para compilar. Imos volver para o aparello, e imos dicir que eu estou facendo este programa. Primeiro vou crear un directorio aquí, e eu vou chamalo "Práctica". Agora vou para navegar ao directorio, por iso, a práctica cd. Agora eu estou dentro práctica. Agora quero comezar gedit, entón como é que eu fago isto? I ou facer clic aquí, ou podo só literalmente escribir "gedit", e que vai para abrir para min. Agora eu vou escribir o meu programa, de xeito exactamente o que eu escribín no slide. Estou declarando unha biblioteca. Estou facendo int main, nula. E agora eu estou facendo printf, Olá Agora estou indo a gardar esta. Deixe-me poñer en práctica, e Vou chamar esa hello.c. Entón, agora está gardado. Se eu queira recompila-lo, realmente pode facelo en dous lugares diferentes. Ou podo facelo nunha fiestra de terminal, polo que esta grande, ou pode usar gedit que realmente ten un fiestra de terminal aquí. Así, pode moi cómodo só facer seu código, e entón pode simplemente escribir todo o que aquí, e tentar compilalo. Entón, como fago para compilar o código? O xeito máis doado que temos é a usar facer, o que é unha función que Vai, basicamente, a compilar o código. Vostede só ten que dicir facer Hola, así "Facer" eo nome do programa. Oops. Isto é raro. Lauren CARBALLO: Pode [inaudível]? LUCAS FREITAS: Sentímolo. Non garda-lo no directorio correcto. Veña para a práctica, e agora garda-lo como hello.c. Sinto moito. Agora que está gardado. Déixeme só facer ls e ser seguro de que el está aquí. OK, agora é aquí. Polo tanto, agora se eu fai Ola, el Cospe un chea de cousas, pero despois só dá me outra liña para o terminal, que quere dicir que foi un éxito. Polo tanto, agora se eu fai un ls novo, realmente ver este ficheiro en verde, que é a arquivo executábel. E entón se eu queira para executa-lo, todo o que Teño que facer é barra dot Olá Vai dicir Ola ben aquí, entón é o que eu estou pedindo a el. Non é máis unha forma de compilar, que está a usar bumbum. Clang é só un compilador que temos, e é un pouco máis detallado para compilalo. Pero funciona moi ben. Entón, se eu fai bumbum, e despois-o, a continuación, nome que quero dar a o ficheiro executable, entón imos dicir que "Ola". E, a continuación, o arquivo que quero para compilar, hello.c. Tamén vai compilar. E ten o ficheiro aquí, e Podo só executa-lo tamén. Así, ambos funcionan. Será que isto ten sentido? Algunha pregunta? Audiencia: Pode zoom de aquí a pouco? LUCAS FREITAS: Sentímolo? Audiencia: Zoom in? Lauren CARBALLO: Eu creo que pode só comandar plus. LUCAS FREITAS: Comanda o que? Lauren CARBALLO: Command plus. LUCAS FREITAS: Non Lauren CARBALLO: Ah, iso non é indo para o traballo, porque - é porque definir a resolución por iso. LUCAS FREITAS: Non creo que podemos zoom in Si, non podemos ampliar. Ten outra pregunta? Sentímolo. Audiencia: Pode repetir bumbum? LUCAS FREITAS: O bumbum? Clang é o mesmo que facer, pero o diferenza é que primeiro eu vou escribir tinido, que é o mando, entón eu vou facer -0, todo, o que se só o que nós imos aprender máis tarde, como unha bandeira. Entón, só creo que sempre ten que poñer-o. E entón, en primeiro lugar, vai poñer o nome do ficheiro executable, basicamente o ficheiro que está vai crear. Entón eu podo dicir, por exemplo, e hello2 logo, o arquivo que quero para compilar, que é o ficheiro c .. Entón, iso é hello.c. Será que isto ten sentido? Audiencia: Ola que? ¿Que é iso? LUCAS FREITAS: Hello.c. E se eu recompila-lo, e se Eu ls, eu tamén teño un hello2 que eu só compilado. E se eu tentar executa-lo, que vai facer exactamente o mesmo que Ola, basta imprimir Olá Audiencia: Como é a make pode pór hello.c despois? LUCAS FREITAS: O make, vostede Non ten que poñer o. c. O make, que acaba de dicir o nome do programa. Non ten que dicir. C. Pero para bumbum, ten que. Audiencia: Con clang tamén Ten que engadir o [inaudível] Lauren CARBALLO: Yeah. Entón, tamén ten que biblioteca. LUCAS FREITAS: Si, iso é algo imos usar máis tarde. Iso é chamado de conexión, e eu creo que somos imos falar sobre iso máis tarde. Outra pregunta? Audiencia: Vostede pon un tinido barra dot? LUCAS FREITAS: Non O conxunto de punto é só para abrir o ficheiro executable. Entón bumbum, que acaba de escribir "bumbum", e entón o que quere abrir o arquivo executábel que acaba de compilado, entón dot corte e do nome. Será que isto ten sentido? Audiencia: Se fose só cambio [Inaudível] para Ola mundo, non é ten que recompilar? LUCAS FREITAS: Yeah. se eu quero dicir, por exemplo ", Ola alí, "Eu só pode salvalo agora, e eu só recompila-lo novo. Entón deixe-me facer un make Olá E se eu fai Ola, que vai dicir "Ola". Ten sentido? Algunha pregunta? Audiencia: Ten de incluír o estándar I / O para coordinar o traballo? LUCAS FREITAS: Yeah. O estándar de E / é basicamente a biblioteca que ten un implementación printf. Así que o correcto no superior inclúe stdio. Isto é, incluíndo unha biblioteca basicamente ten unha morea de diferentes ferramentas que pode usar. un? Deles é que printf é unha función que basicamente impresión mensaxes na pantalla. Algunha pregunta? Non? Aceptar. Entón, agora imos falar - Lauren CARBALLO: Nós só ir ao guía de estilo. Quere só atopalo aquí? LUCAS FREITAS: Entón nós imos para falar sobre o estilo. Lauren CARBALLO: Oh, David non terminou. Aceptar. Por que non imos volver estilo ben ao final? Foi realmente actualizada mentres falamos. LUCAS FREITAS: Yeah. Imos camiño para David para completar isto. Lauren CARBALLO: Pode imos cambiar de traxe? Entón, eu espero que todos foi gozar de risco. Por desgraza, é o momento de afastar-se dese - desgraciadamente é hora de se afastar a partir destes bloques de programación fermosa para C. Pero, por sorte, todo o programación constrúe o que tes está a traballar con en scratch son directamente traducibles a C, e estamos comezará a aprender sobre algúns deles agora. Imos primeiro falar sobre as condicións de en expresións booleanas. Este está a ser executado en reserva enerxía da batería. LUCAS FREITAS: Como é que non funciona? Aceptar. Vai alí, eu estou indo a obter o - Lauren CARBALLO: Entón, as condicións son importantes porque nos permiten introducir lóxica nos nosos programas. Aquí está un exemplo dunha condición dentro dun programa C. Imos observar como este - Polo tanto, esta condición bloque aquí, este instrución printf non executará a non ser que a condición dentro do parénteses, n maior que 0, valorada como certa. Agora, as condicións dentro f declaracións son expresións booleanas o que significa que hai son só dúas opcións. Eles nin podería avaliar a realidade, ou poden avaliar como falsa. Entón, aquí, o que ten sentido, non? n maior que 0, significa que é un positivo número, o que significa que imprime out "escolleu un número positivo." Hai moitas expresións booleanas que pode formar o estado dunha declaración de arranque. Temos a menos. Isto é menos que ou igual a. Este é só un divertido [inaudível]. Se queres que o printf a ocorrer de ser o maior que ou igual a 0, entón escolle isto. Así, a igualdade só engade dereita despois do signo maior que. Igual igual, o que é diferente do só un signo igual, igual igual en realidade, significa que todo o que de no á esquerda desta é o mesmo que o que está na parte dereita desta onde un signo igual é o que? Que é só un sinal de igualdade? Cesión. LUCAS FREITAS: Quen dixo iso? Isto é doce? Oh, non. Sentímolo. Sentímolo. Quere chegar doces. Oh, OK! Tres persoas están doces! Lauren CARBALLO: Entón este aquí é o operador estrondo anterior do signo igual, o que é non igual. Entón, se iso foi dentro do meu estado, o corpo da condición sería realizar só se o que está en a esquerda non é o mesmo que o que está no lado dereito. Eu tamén podo ter só o signo de admiración. En realidade, xa veremos en un recurso desprazar como iso sería usado. LUCAS FREITAS: Algunha pregunta? Non? Lauren CARBALLO: Podemos combina-las Expresións booleanas para a construción de máis instrucións condicionais complicados. Entón, aquí, o que está á esquerda lado das barras dobres ou todo o que está no lado dereito da as barras dobres valorada como certa, entón imos imprimir válido. E entón, aquí abaixo, se calquera de na parte esquerda dos dous ampersands e calquera de á dereita lado dos dous e comercial valorada como certa, entón imos imprimir válido. As barras dobres son chamadas de lóxica Operador OU os ampersands dobres son chamado o operador lóxico AND. Si? Audiencia: Son aqueles só minúsculas l's? Lauren CARBALLO: Non Son, en realidade - sabe a reacción, como por riba da súa tecla Return? Ve iso? LUCAS FREITAS: É realmente un bar. Lauren CARBALLO: É, en realidade, só dous bares. Audiencia: Pode usar o igual a igual cordas? LUCAS FREITAS: Non Nós imos aprender máis tarde algo sobre iso. Lauren CARBALLO: Hai unha función que pode usar. Pero non ten que preocúpanse que só aínda. E se eu dar a este programa o número 5? Que imprimirá? Audiencia: [inaudível] válido. Lauren CARBALLO: Válido? É. Eu non sei quen comezou iso. [Risas] Lauren CARBALLO: Isto é medio asustado [inaudível]. Audiencia: Entón a parella e, iso só quere dicir que e? Lauren CARBALLO: Yeah. Así, o número 5 é tanto maior que 0 e menor que 100. Audiencia: Por que sería un? Lauren CARBALLO: un comercial é realmente algo diferente, e é un operador bit a bit, o que vai aprender sobre máis tarde. Pero é algo que realmente funciona cos bits dun determinado número. LUCAS FREITAS: Só creo que non ten que se preocupar con iso de momento. Lauren CARBALLO: Coido que é, probablemente, chegando a próxima semana. LUCAS FREITAS: Algunha pregunta? Non? Lauren CARBALLO: Entón vimos que un el bloquear pode ir só, pero pode tamén combinarse con outra persoa e bloque. Polo tanto, neste caso, se non for maior que 0, imos imprimir "Vostede escolleu un número positivo. "else, ou sexa, de ser 0 ou se é menos que 0, imos imprimir, "Escolleu un número negativo." O interesante aquí é que estes son exclusivas unha da outra. Non vai ser un caso en que esta e esta tanto pode imprimir. Estou seguro que traballou co if / else caixa en perigo, polo que debe ser moi familiar. Si? Audiencia: Será que necesitamos espazo entre Cont n igual GetInt entón no espazo if? Como usan unha liña de [inaudível] Lauren CARBALLO: Ah, o espazo aquí? Audiencia: Como aquel, pero o dobre do espazo. Non, ir cara arriba. Sobe. LUCAS FREITAS: Só a liña? Audiencia: Yeah. LUCAS FREITAS: Só a liña en branco? Audiencia: Yeah. Lauren CARBALLO: Liña en branco? Non Isto é só unha cousa estilística. LUCAS FREITAS: É como ás veces acaba de saltar algunhas liñas así que o código non se parece un enorme bloque de texto. Lauren CARBALLO: Eu creo que o que pasou era que tiñamos un comentario aquí, pero eu levou-o para fora de xeito que vostedes terían para pensar sobre o código, en vez que ler o meu comentario. En xeral, o espazo non vai realmente afectar o xeito no que o programa é executado. É unha cousa estilística. E cando temos a guía de estilo actualizado e preparado para ir ata o final de supersection, imos falar sobre iso máis. Hai algo de malo con este programa, non? Porque 0 non é realmente un número negativo. Entón, imos ver se podemos solucionar isto. Probablemente pode imaxinar con iso, di, non? Se n é maior que 0, nós imprimir ", Vostede escolleu un número positivo. "Entón máis se non é menor que 0 ", escolleu un número negativo. "else:" Vostede colleu 0. " Agora, o interesante é que iso pode durar para sempre. Pode ter un bloque if, else if un bloque, outro bloque else if, else if, else if, else if, else, basicamente sempre que queiras. E cando construído como este, estes son todos os que van ser exclusiva de cada outro. Si? Audiencia: Entón, por que non pode só usar outro, se en vez de [inaudível]? Lauren CARBALLO: Neste caso, si eu podería empregar outro, e sería absolutamente ben, xa que o condicións en si son exclusiva de cada outro. Pero, se as condicións non foron exclusivos uns dos outros, é dicir ía forzalos a nunca tanto avaliar, se iso ten sentido. Audiencia: Neste caso, poderiamos niño a segunda, no primeiro caso? Lauren CARBALLO: Si - o que quere dicir? Audiencia: Se as dúas condicións non son mutuamente excluíntes? Lauren CARBALLO: Se as condicións non son mutuamente excluíntes? Pero quere só un deles para correr? Audiencia: Quere só se en vez de outra persoa. Lauren CARBALLO: Yeah. Sempre hai vai ser lotes de formas que pode facelo. Pode definitivamente niño deles. E vai ver nun futuro foto que pode ter varios IFS, só un despois do outro. Pero esta é unha forma de loxicamente organizar o fluxo de seu programa. LUCAS FREITAS: E hai unha cousa, é que preguntou sobre a colocación de se e, a continuación, outra se. Isto funciona perfectamente, pero é malo proxecto, porque, basicamente, se comprobe primeiro se, e entender que o número é maior que 0, é pode simplemente rematar o programa. Non ten que comprobar se é menor que 0, non? Pero se se, que vai comprobar ambos, mentres que, se fago outra persoa é, vai comprobar se que é maior que 0. Se é, non vai sequera ollar nas outras liñas do código. Entón está basicamente comprobando-lo como dúas veces innecesarios, entón é por iso que facer se else if. Algunha pregunta? Audiencia: Entón a función do outro, se é o mesmo que se fose só se? Lauren CARBALLO: Non Está realmente indo a ver o meu próximo desprazar un exemplo en que pode ser diferente. Neste caso, é case o mesmo. Entón, aquí, temos un exemplo de múltiple if, eo función non é o mesmo como se eu tivese acaba de dicir se máis, máis, se algo máis. Imos pensar sobre o que ía imprimir se eu escribir o número 95 para este programa. Audiencia: [inaudível] Lauren CARBALLO: E entón? Audiencia: [inaudível] Lauren CARBALLO: Yeah. Polo tanto, neste caso, estas condicións son non exclúen mutuamente un do outro. E por que non hai nada que impida esta condición de avaliar se esta un xa ten, son só todo vai imprimir. Entón como eu podería solucionar isto? Audiencia: else IFS? Lauren CARBALLO: Pode usar else IFS. Podería cambiar a orde destes, non? Se eu fixen iso primeiro? Ben, en realidade, non. Isto non funcionaría por 95. LUCAS FREITAS: Non, só os else IFS. Lauren CARBALLO: O else IFS tería fixado iso. Será que aclarar a confusión entre IFS e máis IFS? Audiencia: Eu só quería preguntar si Usou else if, que ía deixar? Lauren CARBALLO: Certo. Entón, só que esta primeira. Se eu escribir o número 95, só que esta tería impreso, e nunca tería progresando ao resto. LUCAS FREITAS: Só tipo de pensar como se isto acontecer, faga iso. O resto é como se non, cheque para iso, e, a continuación, facelo. Entón, como son todos mutuamente exclusivo. Non pode entrar en dous sobre aqueles. Audiencia: Pode usar unha lóxica E para esta situación? Lauren CARBALLO: Yeah. Esta é outra forma que puidésemos ter corrixido este problema. Estamos podería definido varía, non? Entón, eu podería dicir, se non é maior do que 90 e menos que - ben, eu creo que iso non fai moito importa, pero aquí eu podería dicir se n é superior a 80 e inferior a 90. Máis que 70, menos que 80. Isto tamén tería funcionando. [Risas] LUCAS FREITAS: Ela ten medo. Lauren CARBALLO: Non teña medo. LUCAS FREITAS: Non se que estará errada. É que é innecesariamente detallado. Como en ciencia da computación, hai que ser tan sinxelo como sexa posible con tal ten a función. Quere o doce? Audiencia: Non precisa. Lauren CARBALLO: Está asustando todos, Lucas. LUCAS FREITAS: Sentímolo. Lauren CARBALLO: David tamén mencionou estes instrución switch en clase. Basicamente o que está a suceder é a chave declaración leva unha variable. Neste caso, nós estamos levando un número enteiro. O enteiro for 1, imos imprimir ", escolleu unha pequena número. "Se o enteiro é 1," Vostede escolleu un número medio. "O enteiro é 3 ", escolleu un alto número. "E eu tamén tiña un caso estándar aquí en baixo, pero non está mostrando se, o que é moi malo. Basicamente, este é só outra sintaxe. Poderiamos ter implantado este exacto mesmo co caso e else if declaracións. Pero cando hai moitos diferente condicións e os lotes de diferentes variacións sobre o que quere facer para cada entrada, esta é unha opción. Por iso, é só unha boa sintaxe saber. Si? Audiencia: Por que non hai unha barra invertida n no primeiro? Lauren CARBALLO: Para alí enriba? Non hai ningunha barra invertida n alí enriba porque o GetInt - se tentar facelo, que vai darlle esta pregunta. Déame un número enteiro entre 1 e 3. E se eu poñer a reacción n, sería Léveme á seguinte liña, pero eu só quería que escriba o número enteiro logo tras os dous puntos. Podería ter colocado a reacción n. Non é un gran negocio. Si? Audiencia: Para este código, por este caso, é que por mor é o primeiro caso? Porque - Lauren CARBALLO: Non, non, non. Polo tanto, esta é me dar un enteiro entre 1 e 3. Se n é 1, imprimo iso. Se eu tivese preguntado para as cartas, eu podería ter dixo, me dea unha letra entre A e C. Entón, iso sería caso A. Audiencia: [inaudível]. O caso sería só [inaudível] Lauren CARBALLO: Si, certo. Si? Audiencia: E se quería ter máis dunha expresión relacional? Entón, en vez de dicir n igual a 1, [inaudível] n é superior a 1, o primeiro caso? Lauren CARBALLO: En realidade, se eu non fai definir algúns destes casos, este sería ser levar para abaixo. Entón, en realidade, quizais iso non é o que está pedindo. LUCAS FREITAS: Coido que está pregunta se caso n foi maior que 0, no caso menos que 0. Lauren CARBALLO: Quizais a chave declaración non é realmente o que quere para usar neste caso. LUCAS FREITAS: A instrución switch é Só para o valor, entón está comprobando de o valor é como iso ou aquilo. Entón non pode realmente poñer condicións. Audiencia: E se a persoa tipo con [inaudível]? Lauren CARBALLO: Isto sería meu caso estándar, que por desgraza non pode ver. LUCAS FREITAS: [inaudível] facelos ver. Lauren CARBALLO: En realidade, Vostede sabe o que? Nós só estudar 50, e eu vou só ampliar as láminas sobre estudo 50, porque este é só irritante. Entón deixe-me realmente ir a estado. Isto só vai levar un pouco. Todo ben. Entón, eu sinto moito. Polo menos agora nós imos ser capaces de ver todo sen el cortando. Todo ben. Entón, se eles puxeron en un 10, que sería estándar aquí ao meu caso estándar, e eu sería só imprimir válido porque eu pediulles para entrar un enteiro entre 1 e 3. Algunha pregunta? Si? Audiencia: Imos dicir que para o caso dun, no caso de tres, digamos que quería que fose todo o mesmo, entón escolleu un número isto non é un número medio. Neste caso, sería redundante? Será que só cambia o texto en ambos os deles, ou habería algunha redundancia? Existe algunha maneira de combinar [Inaudível]? Lauren CARBALLO: Hai formas de combina-los, pero eu creo que pode só combinar os adxacentes. Entón, se eu non definir nada para o caso de dous, iso sería aplica-se a ambos os casos. Oh, se eu non poñer calquera cousa para o caso un, isto aplícase tanto caso un e dous. Se isto ten sentido. Audiencia: Pode repetir este? LUCAS FREITAS: Aceptar. Se fixo, basicamente, como, ten o mesmo, pero non poñer calquera cousa aquí, sería tanto para caso un ou dous casos, facelo. Non? E esta pausa significa que se chegar neste caso, só tes que saír. Entón é iso que o freo significa. Entón, se eu só fixen iso, mira, é caso un, e que tería só que facelo. Se fose caso dous, que tamén faría só vir aquí e facelo. Audiencia: Pero pode facelo? Se hai algo para caso dous [inaudível] Lauren CARBALLO: Eu non creo pode facelo. Eu non creo que pode saltar arredor. Podes facelo, Rob? Creo que non. Audiencia: Entón, só un número pode ir detrás de un caso, non? Non pode haber un caso, coma, dous? LUCAS FREITAS: Non, non pode. Vostede definitivamente non pode. Lauren CARBALLO: Eu quero dicir, o punto é esta é unha opción, e iso non pode se encaixan no seu caso de uso, polo que entón usaría a condicións. Audiencia: Entón, por que faría iso? O switch? Lauren CARBALLO: Eu usaría ese Se ten moi definido - En realidade, Lucas, é que está bloqueado. LUCAS FREITAS: Oh, desculpe. Lauren CARBALLO: Se ten moito comportamentos definidos que quere para Cada entrada, que pode ser un algo máis conciso que escribir fóra unha instrución if para cada un. Audiencia: O que fai o romper dicir de novo? Lauren CARBALLO: A Fenda significa parar. Teña en conta que, se eu non tivese esa pausa aquí, teriamos acaba de caer abaixo para o caso seguinte. LUCAS FREITAS: Quebra significa para fóra da instrución switch. Porque se é un, quero imprimir este e saír. Eu non quero para comprobar calquera outra cousa. Audiencia: Non quere imprimir máis nada. LUCAS FREITAS: Yeah. Por mutuamente exclusivos. Audiencia: E será que iso só proceder para o caso seguinte, o primeiro caso non é verdade? Ou será que probar todos os casos á vez? LUCAS FREITAS: Non, verifica secuencialmente. Secuencialmente, si. Só unha pregunta, entón temos que seguir adiante, para que poidamos cubrir todo. Si? Audiencia: Así, para o caso, podería feito algo ademais de só un? Podería darlle un alcance? LUCAS FREITAS: Non Lauren CARBALLO: Eu non creo que pode dar un rango. LUCAS FREITAS: Non pode vostede non pode darlle un intervalo. Audiencia: O caso é específico [Inaudível]. LUCAS FREITAS: Cambiar é unha especie de valores. Está facendo cousas diferentes, dependendo nun valor, un valor específico. Non pode facer intervalo, non se pode facer máis nada. É só unha ferramenta para ver. Lauren CARBALLO: A maioría da xente non usan intercambiar declaracións moi de CS50, pero está aí. Todo ben. Polo tanto, a seguinte cousa que imos falar sobre o operador ternário. Este é só un outro tipo de condicional. Basicamente o que está pasando aquí é que eu son pedindo un número enteiro, e, se non é superior a 100, eu estou indo a imprimir "Alto". Se non é, eu vou imprimir "baixo". Entón o que está facendo é a condición é aquí entre parénteses, e pode tipo de pensar a cuestión como eu estou pregunta se iso é verdade ou non. De ser certo, eu vou facelo primeiro cousa, e se iso non é verdade, eu son fará esta segunda cousa. Calquera dúbida sobre o operador ternário? LUCAS FREITAS: Só quero observar desde David é que sempre que ten un condición - Lauren CARBALLO: Eu creo que o David de asistir a través da transmisión en directo. LUCAS FREITAS: Está facendo fluxo de vida agora. Así, sempre que ten unha condición, que é debería poñer chaves, así como nós temos en un interruptor declaración aquí. Temos claves aquí. Para calquera condicións, está debería tamén poñer isto. Lauren CARBALLO: Vai ver iso na guía de estilo. Nós realmente non ten o guía de estilo agora. Eu creo que David aínda funciona. LUCAS FREITAS: El dixo que é só traballar agora. Lauren CARBALLO: Ah, é traballar agora? Aceptar. Entón, ao parecer, este ano, o estilo guiar, mesmo se ten só unha liña, ten que poñer os claves Pol Non precisa necesariamente ao funcionalidade do programa. E quizais devêssemos facer unha pausa despois as condicións e ir directo coa guía de estilo para limpar algunhas destas cousas? LUCAS FREITAS: Yeah. Ten unha pregunta? Audiencia: Non, eu vou esperar ata a guía de estilo. Audiencia: Podería volver ao operador ternário? Lauren CARBALLO: ternário, si. LUCAS FREITAS: Operador ternário é basicamente unha declaración máis, pero en vez de ter que as dúas liñas comprobar se un e despois o outra cousa, só ten unha liña. Entón, basicamente, se eu queira dar unha cadea un valor de alta ou baixa, e I quere facer un alto se non for maior que 100 ou abaixo, se é menor, o que podo facer é este [inaudível] a corda vai ser, e entón eu preguntar o programa é n maior que 100? Entón é por iso que eu teño esa expresión en parénteses e despois o punto de interrogação. Estou pedindo é maior que 100? Se é, que vai ser alto. Se non é, será baixa. Entón, basicamente, o que pensas que preguntar unha pregunta, entón pon entre parénteses a condición. Entón poñer o punto de interrogación porque está pregunta iso. E se isto é verdade, que vai ser o primeiro valor [inaudível] aquí. Se non é, eu vou poñer o valor que é despois dos dous puntos. Será que ten sentido? É tamén algo que é como un ferramenta en C, pero non ten que especialmente usalo. Pero a xente xeralmente quere CS que porque só salva liñas. Lauren CARBALLO: É moi elegante. Fai moi en só unha declaración. Audiencia: Entón o sinal de porcentaxe é só con independencia dos resultados obtidos en a liña anterior? Lauren CARBALLO: Oh, eu sinto moito. Este sinal de porcentaxe é realmente un espazo reservado para este s. Nunha instrución printf, ten esta corda aquí, que é o que vai imprimir, pero non pode simplemente poñer iso é alí dentro. En caso contrario, ía imprimir os s, literalmente. Entón poñemos un por cento aquí para manter este sitio realizada por calquera vén despois da coma. Así, por unha corda, ten cento s. Para un enteiro, por cento i. Para un float, por cento f. Vai ver os coma nós ver máis exemplos. Pero quizais debese falar do guía de estilo para un pouco de tempo, agora que é superior. LUCAS FREITAS: Se vai para cs50.net/style, vai ver a guía de estilo. Para conxuntos de problemas, a súa puntuación para o conxunto de problemas está composto por alcance, o que basicamente significa que se fixo todo as partes do conxunto de problemas ou se intentou algo. A segunda cousa é a corrección, que medios é o seu programa facendo o que debería estar facendo, ou non ten erros, ou é non facer o que que se quere facer. A terceira cousa é o deseño, o que significa Está aplicando esta ben, ou son Está a utilizar declaracións innecesarias? Así, por exemplo, se quere repetir un número 10 veces, está escribindo un loop ou está só facendo 10 veces a mesma declaración, só facendo copiar e pegar. Así proxecto é para iso. E, finalmente, ten estilo. Estilo é como xulgar O seu código é lexible e tipo de bonito. E só significa basicamente é o seu código lexible? Será que alguén que estaba á procura son seu código poder entender o que que está facendo? Será que ela ten comentarios e así por diante? Imos falar sobre o estilo que debería usar. O primeiro é comentarios. Comentarios son moi importantes para a súa código, porque ás veces está facendo o seu programa, e vostede sabe exactamente o que quere facer así que acaba de comezar codificación, escriba unha morea de C. Pero se alguén está mirando son vostede código, eles non van ser capaces de comprende-lo, porque non saben as cousas que están na súa cabeza, como o pesudocode, quizais por iso eles van teñen dificultade de entender o que o código está facendo. Así comentarios son realmente útiles para explicar para alguén que está mirando o seu código o que está facendo, e en realidade, mesmo para ti, son moi útiles. Como vai para a Serie de exercicios máis duras e difíciles, vai ver que o código queda máis longos, e, a continuación, os comentarios son realmente importante para que lembre que cada parte do seu programa fai. Para poñer un comentario, pode só facer unha slash slash e logo escribir un comentario. E toda a liña é parte dun comentario, e todo o que escribir, non vai ser usado para o seu código. É basicamente como o compilador vai ignorar isto. Será que isto ten sentido? Audiencia: O que fai de novo para escribir un comentario? LUCAS FREITAS: Este? A barra barra? Sempre que escribir barra barra, calquera que sexa é nesa liña non vai para ser considerado como C. Si? Audiencia: Así, tras o comentario, vostede só entrar e comezar unha nova liña? LUCAS FREITAS: Si, exactamente. Lauren CARBALLO: A barra barra é a comentarios soa liña. LUCAS FREITAS: Por exemplo, aquí temos - déixeme achegar - por exemplo, aquí estou declarando unha boia, pero quizais se só poñer este no seu código, como non ten idea o que iso está facendo, como de feito alguén que está mirando para este código será, tipo, o que o diaños está a suceder? Se pór un comentario dicindo que "converter Fahrenheit para Celsius, fai moito máis sentido. Vostede é, tipo, OK, está facendo unha conversión. Será que isto ten sentido? Polo tanto, é só algo que axuda a xente preparado o seu código e tamén facer Vostede sería capaz de organizar seu código mellor. A segunda cousa é que podes facer Comentarios de varias liñas, polo que ten un comentar a un grupo de liñas. En vez de ter que poñer barra barra, os comentarios de primeira liña, barra barra, a segunda liña, e así por diante, é pode usar a estrela barra. O xeito que fai iso é que, ao primeira liña do comentario, está vai facer unha estrela estrela barra, así sen máis nin menos. Así como aquí temos o inicio un programa, adoita poñer quen son, o que este programa fai, e cousas así. É como unha especie de cabeceira para o programa. Unha vez máis, non é algo que un compilador vai se preocupan, pero é importante para ti saber o que esta programa fai ou a outras persoas para saber o que o programa está facendo. Entón cortar star star, e entón o última liña que vai facer estrela cortar para poder pechar ese comentario. Entón, basicamente, para todas as outras liñas, pode só escribir o que quere, e iso todo vai ser ignorado. E tamén, así como o estilo, ve que cada unha das liñas ten unha estrela, e todos as estrelas están aliñadas. Estas son cousas importantes para que o código parece ben. Parece bo? Agora, as condicións. Que David estaba dicindo que deberiamos realmente poñer nos diapositivas, é que cando ten todo tipo de if ou calquera tipo de condicións, pode usar claves para demostrar que iso é o que ía acontecer cando ten a condición. Tecnicamente, cando ten unha condición e, a continuación, a seguinte liña é só un liña, non ten tecnicamente para poñer as chaves. Basicamente o compilador entendería de calquera xeito, como implícito. Pero para CS50, pedimos a vostedes para poñer as claves só para que o seu código é máis organizado e máis lexible. Por este código está máis tempo se non teñen claves e tal. Queda realmente confuso. Lauren CARBALLO: Isto é exactamente o que David só destacou nos meus diapositivas anteriores. El sempre funciona sen o crespo tirantes, pero por razóns estilísticas imos pedir que pór aqueles dentro E cando comezar a funcionar style50, que é unha especie de cheque a 50 estilo, ha lembra-lo de facelo. LUCAS FREITAS: E outra cousa é lembre de poñer as claves xunto en cada liña. Entón fai, por exemplo, l 's. Ir á seguinte liña, abra a crespo cinta, despois de ir á seguinte liña. Retirada, que é catro espazos. Entón escribe o que quere, a continuación, outra liña, e pechar a bosquexo. Entón non se esqueza que tanto os cacheados claves están en diferentes liñas. Audiencia: Entón, se este código tiña como 10 else IFS, este debe ser de 10 conxuntos de soportes? LUCAS FREITAS: Si, para cada un deles. É. Así, se, máis se, e así por diante. Audiencia: Pode non prema Tab para recuar? LUCAS FREITAS: Estamos pedindo para ti caras para usar catro espazos. Algúns editores de texto guía traducir como catro espazos automaticamente. gedit non acontecer, entón tes que facer espazo espazo espazo espazo. Isto tamén é algo que algúns programadores só facer guías, algúns programadores só fan catro espazos, e algunhas outras persoas ata facer dous ou tres espazos. É que aquí estamos pedindo vostedes para facer catro espazos. Audiencia: Hai case sempre Ten que ser un camiño para a gedit automaticamente [inaudível]. Como non [inaudível] fai iso. LUCAS FREITAS: Yeah. Eu creo que pode ir a Configuración. Audiencia: Xa fai todo isto. LUCAS FREITAS: Xa fai? Aceptar. Entón, só tes que estar seguro de que vostede ten catro espazos. Audiencia: Temos que poñer o crespo soportes en loops tamén? LUCAS FREITAS: Si Lauren CARBALLO: Sempre que o seu encapsulamento dun bloque de código, só Por favor, use as chaves. E antes que pense que estamos só sendo sticklers sobre este sen unha boa razón, se vós non ir para obter etapas de tecnoloxía en grandes empresas, eles van che dar unha guía de estilo, e eles van che dicir que é o que a súa código debe ser parecida. E aínda que aprendeu a un código como este, quizais no seu estadio vai ter que facer algo completamente diferente. Eles esperan que conformarse ao seu estilo. LUCAS FREITAS: E unha cousa é que entender como eu teño como x, espazo, menos espazo, 0? Sempre que ten un operador - pode ser como máis, menos, veces, menos, maior, calquera que sexa operador - ten que poñer un espazo na parte esquerda e á dereita do operador. Lauren CARBALLO: Estes son chamados operandos binarios. Só asegúrese sempre espazo os operandos binarios. LUCAS FREITAS: Este é non un operando binario. Lauren CARBALLO: Isto é porque hai que dous. LUCAS FREITAS: Ah, si. OK, os switches. En primeiro lugar, ten que ver que, así como nunha instrución, ou entón, ten para poñer a bosquexo na súa propia liña e baixo a bosquexo aquí. Nótese que existe un único espazo tras a conexión, así como en if e else tivemos un único espazo entre iso e os parénteses. Entón, ten que poñer isto. E non hai espazo para a dereita despois de cada dos parénteses ou antes de fin dos parénteses. Entón ve que é todo en conxunto, e tamén me gusta aquí. Si? Lauren CARBALLO: Eu creo que necesitamos seguir adiante. LUCAS FREITAS: Entón, iso forma parte do guía de estilo que ten para CS50. Asegúrese de ir cs50.net/style e dar un ollo niso. Estes son todos moi importantes á súa puntuación estilo. Déixeme voltar o comunicado. Lauren CARBALLO: Prefiro non necesitará empregar style50. Nós só estamos indo a ir directo para lazos. Todo ben. Entón, imos volver ao contido, agora que pasamos ao longo da guía de estilo. Loops, xa viu a eles en risco, e imos falar sobre eles en C. En un loop for, hai tres porcións á declaración deste loop. Ten a súa inicialización en que configurar as variábeis. Ten a súa condición, que son verificación para ver se algo é verdadeiro ou falso e se a loop debe continuar. E ten a súa actualización, o que está a actualizar as súas variables. Imos dar unha rápida ollo a algunhas Código C desta loop for en acción. O que está pasando é aquí no inicialización, estamos definindo i para 0. Na condición estamos comprobando i é inferior a 10. E na actualización estamos incrementando i. Entón, o que pode producir de ese loop? LUCAS Freitas: En realidade, antes de todo, Vostedes saben o que eu + + é? Audiencia: Aumento en 1. LUCAS FREITAS: Aumento de 1, si. Polo tanto, esta é a mesma cousa que facendo i é igual a i + 1. E teña en conta que non temos un espazo entre o eu eo + +. Entón, vostedes saben o que iso vai facer? Alguén me pode dicir? E quizais conseguir algúns doces por causa diso? Audiencia: [inaudível] LUCAS FREITAS: Aceptar. [Inaudível] todo o mundo amosar máis tarde [inaudível]. Si, que vai mostrar "Este CS50 é "10 veces. Lauren CARBALLO: Coido que foi no título do foto. LUCAS FREITAS: Ah, si. [Risas] LUCAS FREITAS: Isto axuda. Lauren CARBALLO: Entón, estas son para loops. Nós imos ver algúns exemplos de loops máis tarde. Pero imos realmente ter un ollar para o segundo tipo de circuíto que vai atopar en C, e chámase o loop while. En un loop while, ten só teño unha condición. A condición é revisada no comezando, e se esa condición valorada como certa, entón o código dentro o corpo do bloque, mentres se levará a cabo. E o código seguirá realizar, mentres que condición permanecer verdadeira. Aquí está un exemplo dun loop while en C. Imos establecer a conta de 10 a comezar. Mentres a conta sexa maior que 0, imos continuar a imprimir este variable aquí. Nós imos diminuír conta e a continuación, comprobar de novo a condición. Imprimir, decremento, cheque a condición de novo. Aquí temos un exemplo que se refire a súa pregunta anterior. Tivemos a porcentaxe s cando estabamos imprimir unha cadea, e agora que estamos imprimindo un int, temos un por cento i como o noso espazo reservado no seu lugar. As cartas deben ser todos bastante intuitivo, é para a corda, eu para int. Polo tanto, se este código é executado, debe conta atrás 10-0, imprimindo cada enteiro. LUCAS FREITAS: E pode pensar no por cento, xa que se sente como un espazo en branco espazo, e, a continuación, está poñendo este aquí variable en que o espazo en branco. Así, por exemplo, aquí vou ter só un espazo en branco, e entón eu estou poñendo o contar alí mesmo, o valor da conta. Será que isto ten sentido? Podería só facer como printf e logo, cita, contan? Será que isto funciona? Audiencia: Non LUCAS FREITAS: Non, porque vai realmente imprimir a palabra "contar" en vez de imprimir o valor. Isto é como fai imprimir os valores á variable no canto de só o nome da variable. Algunha pregunta? Audiencia: Por que usa para como unha oposición ao tempo? Lauren CARBALLO: Eu usaría un para loop se eu sei exactamente cantos iteracións que quero o meu loop para realizar. Neste caso, non importa, porque, É dicir, eu estaba só tentando pensar nun realmente sinxelo exemplo a este foto. Pero imos dicir que quere algo manter-se ir - LUCAS FREITAS: Por exemplo, se está solicitando a entrada ata que a persoa dálle a entrada á dereita. Así como cando a entrada non é OK, sigo a preguntar a el. Ou como cando está pais non dan diñeiro, sigo a preguntar a el. [Risas] Lauren CARBALLO: Non sabe como moitas veces vai ter que facelo. LUCAS FREITAS: Porque non fai sei cantas veces iso é continuará. Lauren CARBALLO: Pero en un loop for, ten que saber cantas veces. Si? Audiencia: Só para aclarar, a porcentaxe di que iso é algo sobre a pasar, nos is ao número enteiro, ea barra invertida n - Lauren CARBALLO: Medios? Quen sabe o que a barra invertida n significa? Nova liña, si. Exactamente. LUCAS FREITAS: Pode pensar de n como nova liña. Lauren CARBALLO: Nice. Audiencia: Que a conta trazo trazo [inaudível]? LUCAS FREITAS: Conta menos negativo é o mesmo que plus plus, pero no canto de aumentar, está diminuíndo en 1. Lauren CARBALLO: Calquera máis mentres cuestións de loop? Non? Oh, nós deberiamos ter ignorado iso. Este é un do loop while. Moi semellante a un loop while, excepto en Neste caso, comproba a condición despois o código no corpo do loop execútase unha vez. Por iso, executar o código primeiro, non importa o que. Entón, comproba o estado, executa de novo se a condición é verdadeira. Vai atopar-se con iso cando está pedindo a entrada do usuario. Porque sempre terá que preguntar unha vez máis, e logo, dependendo do que a entrada do usuario é, pode ter que Reprompt e preguntar de novo e de novo se a entrada non era o que esperaba que fose. Audiencia: Entón, é como unha forma para a xente a cubrir. Lauren CARBALLO: Si, exactamente. Vai atopar, creo eu, na súa primeira Pset, vai ter que usar un loop facer ben para recoller entrada do usuario. Audiencia: En función da situación, seus loops, mentres tenden a executar máis veces que mentres loops, como por unha ou outra cousa? Lauren CARBALLO: Se é o exacto - LUCAS FREITAS: Deben sempre ser executado a cantidade exacta de veces que quero que sexa executado. Como usan facer agora, porque realmente quería ter a entrada de polo menos unha vez. En loops tempo, ás veces non quere para executa-lo en todo, se non é o caso de executar. Por iso, depende do proxecto. Quero dicir, pode facer mentres uso ou mentres que o tempo que o seu código o fai que se quere facer. Lauren CARBALLO: Pero fago creo que a resposta á súa pregunta é probablemente si. Imos dicir que a condición era falsa. Nun caso, sería executado unha vez, e noutro caso sería executado cero veces. Entón, si. Máis algunha pregunta? Si? Audiencia: Pode a condición de ser un lazo loop for en termos de outra variábel que [inaudível]. Lauren CARBALLO: Si, pode ser calquera cousa. Probablemente para as Serie de exercicios comezo, non terá que atopar este caso, pero definitivamente pode ser calquera cousa. LUCAS FREITAS: Eu creo que estamos facendo aquí. Lauren CARBALLO: somos? Non? LUCAS FREITAS: Loops? É. Lauren CARBALLO: Non debemos ser. Oh, estamos a facer con loops. Aceptar. De feito, xa temos falado tan moito, imos de feito todo navegar sobre a study.cs50.net/conditions. E está indo para navegar abaixo aos problemas widgets. Ben, en realidade, mentres que a xente está quedando esta configuración, o Estudo CS50 é vai ser unha ferramenta que os seus TFS vontade utilizar para prepararse para as seccións e que Podedes usar se perder seccións. Vai ter unha morea de diapositivas, algúns consellos e trucos para cada tema, e algúns problemas prácticos con solucións. Por que non todo o mundo pode dar un ollo a este problema aquí. Me desculpe, eu debería lembrar persoas para levar portátiles hoxe. Pero se non ten un portátil, iso é OK. Pode só anotar isto para abaixo nunha anaco de papel ou mirar por riba o ombreiro do seu veciño. Imos tentar escribir un programa que solicita ao usuario para dar un palpite, o número medio de fillos por familia unidade nos Estados Unidos. Ese número é 2, a propósito, como pode ver a partir destes exemplos. Queremos imprimir número medio de fillos por familia en Estados Unidos, entón nós quere o que? Queremos recoller entrada desde o sitio web. E, a continuación, dependendo do que o usuario de entrada, está indo para imprimir ou iso é correcto ou iso é incorrecto. E o primeiro que vai Mira, se fai clic na pequena frecha no a parte inferior da ferramenta é un problema lugar para anotar algúns pseudocódigo. Entón non está programando aínda. Só está a recibir o seu ideas en orde. Alguén quere axudar Lucas veña co dereito pseudocódigo a este problema? LUCAS FREITAS: Cal é o primeiro que probablemente debe facer aquí? O que vostedes pensan? Audiencia: [inaudível] LUCAS FREITAS: Si, OK. Entón, de impresión. Só ten que dicir a impresión que esta media número de persoas? Aceptar. Imprimir pregunta, imos dicir. Despois de imprimir a esta pregunta, o que debo facer? Audiencia: Obter entrada. LUCAS FREITAS: Obter entrada. Algo máis? Audiencia: Condition. LUCAS FREITAS: Condition. Lauren CARBALLO: Que condición será? Audiencia: Número de [inaudível]. Lauren CARBALLO: Certo. LUCAS FREITAS: Entón que é o que eu vou facturar a condición? Audiencia: Se é igual a 2. Lauren CARBALLO: Se é igual a 2. Exactamente. LUCAS FREITAS: Hai algo de outra cousa que eu debería facer? Audiencia: Conta. LUCAS FREITAS: Entón, se é igual a 2, digamos - deixe-me escribir a entrada é igual a a 2, entón o que eu vou facer é imprimir correcta. E despois o resto, eu vou para imprimir incorrecta. Algo máis? Non? Lauren CARBALLO: Entón pode premer no - que todo o mundo ten ese baixo? LUCAS FREITAS: Será que ten sentido? Entón, agora imos tratar este código. Lauren CARBALLO: Se fai clic no pouco frecha, realmente salva seu pseudocódigo, que é realmente emocionante. E pode facer os comentarios en si quere só para lembrar de o que facer. LUCAS FREITAS: Entón, por exemplo, primeiro Vou imprimir a pregunta, entón como é que eu vou facer iso, en realidade? printf. Entón printf, ea cuestión é media número de fillos por familia en Estados Unidos. Entón eu vou ir entrada do usuario. Entón, como podo facelo? Audiencia: Obter Int Lauren CARBALLO: GetInt. LUCAS FREITAS: Aceptar. Entón, primeiro declarar, non? int, imos chamalo n é igual a GetInt. E agora a condición. Entón deixe-me dicir que eu vou para acá resposta cheque. Entón, en primeiro lugar, a entrada, que é N, coincide a - como é que eu vou escribir isto? Audiencia: Igual igual. LUCAS FREITAS: Perfecto. Entón n. E teña en conta que eu fago un espazo, é igual, é igual, o espazo, é verdade. E agora o que debo facer? Algo moi importante para o estilo. As chaves. E entón eu vou imprimir. ¿Como imprimir? printf. Audiencia: Podería ser capitalizados? LUCAS FREITAS: Non É suposto estar en minúsculas. Entón, iso é correcto. Será que isto é suficiente para o printf declaración, ou que estou falta algo? Audiencia: Nova liña. LUCAS FREITAS: Nova liña, si. E agora outra cousa. Audiencia: Hai un espazo tras o printf, ou non? Lauren CARBALLO: Debemos comprobar a guía de estilo. Audiencia: Non debe ser. LUCAS FREITAS: Non debe ser, Aceptar. Entón, o resto, printf, "Iso non é correcto." Lauren CARBALLO: Oops, as súas citas. LUCAS FREITAS: Aceptar. Algo máis? Será que unha boa aparencia? Lauren CARBALLO: Imos tentar? LUCAS FREITAS: Si, imos executalo. Polo tanto, é a compilación, e Parece que funciona. Intentaremos dous fillos. Isto é correcto. E agora imos realizar de novo, pero agora, en vez de poñer dous nenos, imos dicir que eu vou poñer como cinco. Isto é incorrecto. Así, parece que funciona. Lauren CARBALLO: Por que non amosar-lles o que pasa se pór algo raro, como algunhas letras. LUCAS FREITAS: Ah, si. Imos tamén comprobar iso. E se o usuario está intentando desorde co seu programa, e eles só escribir, eu non sei dous. Vai dicir repetición. Lauren CARBALLO: Entón GetInt está pedindo-lles para tentar de novo. Nós non temos que coidar do que nós mesmos. LUCAS FREITAS: Yeah. Entón, a menos que realmente poñer un número, é continuará me pedindo para tentar de novo. Audiencia: Como se executa-lo? LUCAS FREITAS: Só ten que premer este botón estrela. Lauren CARBALLO: Debe subir. Alí vai. LUCAS FREITAS: A estrela botón dereito alí. Si? Audiencia: Será que pedir [inaudível] con números decimais tamén? Lauren CARBALLO: Eu creo que si. LUCAS FREITAS: Se fai o que? Lauren CARBALLO: No caso de que tipo nun número decimal, creo vai pedir. LUCAS FREITAS: Imos ver. Lauren CARBALLO: Por non é un int. LUCAS FREITAS: Yeah. Lauren CARBALLO: Entón, non é un int, Sexa Int ha pedirte para tentar de novo. Audiencia: Entón, onde ese código sería a casa decimal que solicita ao usuario que ten que entrar un enteiro especialmente? Lauren CARBALLO: GetInt é realmente facendo iso para nós. Audiencia: Non, quero dicir, se quixésemos para entrar [inaudível] LUCAS FREITAS: Pode dicir como media número de nenos en Estados Unidos. Eu non sei. Podemos dicir, por exemplo, "Por favor, introducir un número enteiro. " Lauren CARBALLO: Un enteiro igual ao número medio. Quero dicir, é só como vostede palabra, non? LUCAS FREITAS: Yeah. Non forma parte de codificación, en realidade. É máis como todo o que vai querer escribir no seu programa. Audiencia: Como teriamos executa-lo se estaba realmente en gedit [inaudível]. No canto de premer o xogo? LUCAS FREITAS: Imos primeiro compilalo. Podemos facelo, facendo make eo nome do ficheiro. E, a continuación, executa-lo, imos facer corte de punto e nome do programa. Audiencia: Eu creo que o que eu quería dicir foi se queriamos que o programa para responder a seu, entrada inválida incorrecta, non debe poñer en - LUCAS FREITAS: Non poderá facelo porque o código esta di repetir trata Get Int, que é un función que xa é aplicado para nós a través da biblioteca CS50, e desde xa está implantado alí, nós non pode simplemente [inaudível]. Lauren CARBALLO: Se non usar GetInt, entón podes facelo. LUCAS FREITAS: Yeah. Pero se está a usar GetInt, non pode. Algunha pregunta? Audiencia: Vostede podería ir con como GetFloat e, a continuación, ser capaz de poñer lo nun decimal? LUCAS FREITAS: Yeah. Audiencia: Aceptar. Entón só podería entrada flotar A é igual - Lauren CARBALLO: Yeah. Exactamente o mesmo, excepto un flotar no canto dun int. LUCAS FREITAS: Só ten que poñer-lo aquí e logo, GetFloat alí. Audiencia: Como vai ver ou ver - Lauren CARBALLO: temos non chegou alí aínda. Audiencia: - facendo desigualdade flotadores non [inaudível] Audiencia: O que as comas significan? Lauren CARBALLO: O punto e coma só quere dicir que esta declaración sexa completa, e nós estamos indo a ir ao seguinte foto. Audiencia: Entón é necesario todas as veces? Lauren CARBALLO: Yeah. Ben, OK, entón non a estas condicións, porque son encapsulado algo. Entón, basicamente, se algo está causando que cree unha bosquexo bloque, non poña un punto e coma ao final. LUCAS FREITAS: Pero todo outra cousa, si. Cando remata un comunicado, poñer o punto e coma. E se esquecer punto e coma, a compilador vai quedar con rabia de ti, e vai ter para intentar reparalos lo. Lauren CARBALLO: Se eu poñer un punto e coma aquí, que iría parar con iso, e eu nunca ía comezar a realizar o que se no interior, por certo. Polo tanto, é un deses erros comúns. Audiencia: Sempre execución. Lauren CARBALLO: Yeah. Neste caso, teriamos sempre realizar o que está dentro. Audiencia: O seu estilo [inaudível] Adxuntar que para ti, pensei. Lauren CARBALLO: Ah, iso é verdade. Audiencia: [inaudível] único cousa de liña [inaudível] Audiencia: Si? Audiencia: Pode ter varias insumos nunha liña? Entón, como pode pedir que os usuarios para imprimir dúas cousas? Lauren CARBALLO: Non usar - LUCAS FREITAS: Non Imos dicir que eu tamén quero para obter este número enteiro m. Teño que facelo nunha liña distinta. Audiencia: Se fose para executar que, como [inaudível]? Sería imprimir o prompt alí [inaudível] e entón insiras un e - Lauren CARBALLO: Ben, executalo. Quero dicir, non hai nada nos impide só executa-lo e ver o que ía ocorrer. LUCAS FREITAS: Creo que é vai reclama a nós por que non estamos a usar - Lauren CARBALLO: Oops. LUCAS FREITAS: El queixouse a nós para a dereita agora, porque non estamos usando este variable, pero se eu tivese, por exemplo, n é igual é igual a, e m é igual igual a, entón o que será ocorrer neste caso? O que este programa fai? Audiencia: Eu só estou querendo saber como sería - Lauren CARBALLO: Ela só quere saber como queda como, penso eu, non? Por iso, levou un deles, e, a continuación, que levou o segundo. Creo que temos que seguir adiante, porque temos unha Presentación de diapositivas para ir antes - quere puxar arriba de matemáticas? LUCAS FREITAS: Si, de matemáticas. Lauren CARBALLO: Dar me só un segundo. Hai uns numérica diferente variables en datos numéricos en C. C poden ser clasificadas en distintos tipos, e estes son os que vai ver con máis frecuencia. E int é un número enteiro. Non pode ter ningún decimais. O aparello, hai que 32 bits para almacenar un int. Unha flutuación pode decimais. Tamén leva 32 bits para almacenar unha boia no Appliance. O dúo é un número con un decimal punto que ten 64 bits para almacena-lo, o que significa que pode só ter máis preciso, xa que pode ter máis - o que chama iso? LUCAS FREITAS: Si, iso é moito máis. Lauren CARBALLO: Máis lugares despois do punto decimal. E hai moito tempo é un número enteiro que leva 64 bits para ela ferida no Appliance. LUCAS FREITAS: Entón pode ser maior que enteiros poden ser. Lauren CARBALLO: A cousa sobre datos tipos en C é que eles din o que tipo de datos que pode almacenar na súa variábel. Din-lle como pode usar esta variable no seu programa. É moi importante para só seguir de que tipo de datos está a usar, e se cómpre facer para converter un tipo de datos a outro, asegúrese de que vostede sabe exactamente o que pasa cando esta fundición ocorre. E vai ver un exemplo máis tarde sobre nestas láminas de erro que pode ocorrer. Imos dar un ollo a algunhas das matemáticas en C e pensar con moito coidado, eu creo, sobre o que está a suceder cando esta matemáticas se produciron. Na primeira liña, o que é pasando cando declaro x? Audiencia: Vostede está permitindo que x para algo? Lauren CARBALLO: Yeah. Ben, eu estou realmente facendo a operación sistema de 32 bits de memoria, non? En que podo gardar un int, e Vou chamar ao que int x. LUCAS FREITAS: ir Basicamente na memoria e atopar un lugar que ten 32 bits e dito, hey, quero que este espazo, e só pode ser chamado x. Entón é só practicamente descubrimento unha caixa na súa memoria para almacenar valores para x. Lauren CARBALLO: E entón eu arrincar x, o que significa que só almacenar o valor de 2 naquel lugar, que pedazo de memoria, que pedimos operativo sistema a. E aquí o que estamos facendo é en realidade estamos declarando e arrincar y nunha liña, en vez de en dúas liñas, como fixemos ata aquí, que tamén é un perfectamente ben, estamos engadindo 1 para x, e nós estamos almacenando que valor en y. LUCAS FREITAS: Entón, basicamente o que este liña fai, el encontra agora unha caixa para y, e, a continuación, o seu valor, o único que vai poñer dentro da caixa, é será o valor de x máis 1. Por iso, ten a opción para y. Ela recibe o valor de x, parece aquí, e ver que é 2. Poñelas alí, máis 1, entón pon unha 3 alí. Será que isto ten sentido? Entón y sería 2 neste caso. Lauren CARBALLO: Todo ben, legal. Vimos algúns diso, así que imos agora pensar sobre a división en C. Aquí eu son declarar e arrincar un float chamada resposta e dividindo o 1 por 10, e entón eu estou imprimindo a resposta con dúas cifras decimais. E teña en conta aquí, na miña declaración printf, cando eu queira imprimir algo para dous cifras decimais,% .2 f é o que quero usar. Así, o punto 2 é só dicir Eu teño dous lugares tras a decimal impreso. Agora, o que vai ocorrer se eu executar este código? Alguén ten unha idea? Que imprimir? LUCAS FREITAS: Cales son nós esperando para comezar. Lauren CARBALLO: ¿Que facer queremos, en primeiro lugar? LUCAS FREITAS: [inaudível] Lauren CARBALLO: 0,1, si. Pero o que vai imprimir? Audiencia: [inaudível] Lauren CARBALLO: Ben, non, en realidade. Isto é o que eu estaba falando sobre o por que Debe manter o control moi coidadoso de seus tipos de datos. Entón, que tipo de datos é isto? É un int, non? Non hai ningunha casa decimal. 10 tamén é un int. Non hai ningunha casa decimal. Se eu dividir un int por un int, recibín unha int que non é de 0,1, porque Ints non pode ter cifras decimais, pero só 0. Porque un int só trunca fóra das cifras decimais. LUCAS FREITAS: Entón sempre que se fai operacións con enteiros, vai obter un int como resposta. Entón, basicamente, o que o ordenador está facendo, é divídese por 1 10, e queda 0,1. Pero, entón, é coma se, espera, que é debe ser un número enteiro, entón só ignorar a 0,1, polo que é agora só 0. Lauren CARBALLO: Entón, cando imprimir este fóra, eu recibín 0,00 en vez de 0,10. LUCAS FREITAS: Será que ten sentido? Lauren CARBALLO: Isto é medio de pena, non? LUCAS FREITAS: Entón, como podemos solucionar isto? Lauren CARBALLO: Imos tentar corrixir isto. Aquí está un exemplo de onde eu son realmente lanzar a 1 e de 10 a flota. Entón, agora, un non é un int. 1 é un float. By the way, esta é só a sintaxe para cando quere para lanzar a partir dun Tipo de datos a outro. Pode simplemente poñer o tipo de datos en parénteses e ten que preceder o valor que está lanzando. Entón, aquí, eu estou dividindo un coche alegórico por unha boia para obter unha resposta float. E si, esta sería, en feito imprimir 0,10. Será que isto ten sentido? LUCAS FREITAS: Entón tipo casting é só a conversión dun tipo a outro. Así flotar 1 é realmente 1,000. Non é exactamente iso, pero é algo con cifras decimais que é, en realidade, un. Será que isto ten sentido? Si? Audiencia: E se fixo resposta flotador é igual a 1,0 dividido por 10? Lauren CARBALLO: Está realmente a suceder ver que o próximo foto. Isto é realmente o noso moi próximo foto. Esta é realmente unha máis agradable do que escriba casting, eu creo. Así, estes dous son só Carrozas natureza do feito de que teñen cifras decimais. Si? Audiencia: E se fixo [inaudível] dividido por 10? Lauren CARBALLO: En realidade unha boia dividido por un int en realidade, dálle unha flotar, de xeito que ía funcionar ben. Espere, que todo o mundo entende isto? Por que isto será realmente unha gran negocio na Pset1, en realidade. Si? Audiencia: Vostede podería só rápido pasar por riba da parte vermella? Lauren CARBALLO: A parte vermella, si. Lucas, quere? LUCAS FREITAS: Aceptar. Entón recorda que a porcentaxe é un espazo reservado. É como un espazo en branco. Entón, imos tratar de entender todo que está pasando aquí. Porcentaxe significa que é un espazo reservado. Entón tes a f, o que significa que ese espazo reservado é para un float. A última cousa que temos aquí é unha 0,2, o que significa que quero ter dous cifras decimais á boia. Se eu tivese% f, que vai poñer unha morea de cifras decimais. Entón eu só podo poñer 0,2 ou 0,1 ou 0,5, ou o que quere, e vai poñer isto número de cifras decimais. O único é que se pór como .100 Ou .1,000, non é, en realidade, vai poñer todas estas cifras decimais porque non ten memoria suficiente ter esa precisión. Algunha pregunta? Si? Audiencia: Entón flotar só permite ir alén enteiros? LUCAS FREITAS: Si Lauren CARBALLO: Ben, unha boia só permite que teña cifras decimais. LUCAS FREITAS: Significa só que agora pode ter números decimais. Audiencia: Por que usar enteiros? LUCAS FREITAS: Por que usa números enteiros? Quizais se está contando de 0 a 10, quere usar realmente un enteiro. Non precisa utilizar un float. Nalgunhas situacións, non Ten que efectivamente - Lauren CARBALLO: Quizais Non quero decimais. LUCAS FREITAS: Poida que non Quere usar un float. Lauren CARBALLO: A outra cousa é, Teña en conta que, tanto por unha boia e un int ter 32 bits para almacena-los, e quizais non quere desperdiçar bits no cifras decimais. LUCAS FREITAS: Yeah. Así como, basta pensar sobre iso. Ten 32 bits, tanto para un int e un float. Para un int, as 32 bits ir á parte enteira. Se usa un coche alegórico con 32 bits, se ter parte desa memoria que está a ser usado ao número, para o número enteiro, e outro pode empregar para o cifras decimais. Entón iso significa que non pode chegar a números moi grandes con flotadores por o flotador xa está a usar unha morea de memoria para as casas decimais. Si? Audiencia: Esta primeira resposta, exactamente o que está facendo? É a definición do valor do flotador igual ao espazo reservado para que poida recuperan-lo na próxima liña? Di flotar resposta. LUCAS FREITAS: Yeah. Entón, a resposta flotar significa que está a recibir agora un pouco balde na memoria que ten un float, e iso vai para ser chamado resposta. Entón é iso que fai flotar resposta. E entón di que dentro tanto, está indo a poñer o resultado deste. Entón vai facer 1,0 dividido por 10.0, que obtén 0,1, e, a continuación, se pon que dentro de resposta. Lauren CARBALLO: Entón, nunha liña, estamos declarar e arrincar este flotador chamado resposta. LUCAS FREITAS: Curiosamente, aínda que Esta é só unha liña, que está a facer varias operacións. É só unha forma de deixar C usa menos código. É o mesmo que o ternário operador, como pode só facer unha [Inaudível] nunha liña. Está realmente facendo o mesmo que facendo resposta float, punto e coma, e entón resposta é igual a esta, pero en vez de facendo facer dúas liñas para que, é como un atallo. Si? Audiencia: Entón, se executou tanto, sería de 0,10? LUCAS FREITAS: Si Si? Audiencia: É realmente responder código, ou é só o nome? Lauren CARBALLO: Este é, en realidade, o código. Iso é o que imos para nomear a nosa variable. Audiencia: Entón é só un nome [inaudível]. Lauren CARBALLO: Yeah. Eu podería dicir float x é igual a 1.0. LUCAS FREITAS: A cousa é que nome da variable é algo que usa. É importante para vostede. Para o programa actual, a única cousa o que importa é o valor que ten dentro do balde. A razón pola que ten variables e nomes de variables é así que sabe o que está lidando, como que tipo de datos está acceso de cada vez. Pero para o propio código, se chamar el responde ou pregunta ou algo, moi bonito, non importa. Non importa. Sempre que sexa consistente en todo aparición e así que chamalo outra cousa. Si? Audiencia: Fai as variables ir máis alá da función? Como se fose crear un soporte [Inaudível], podería só [Inaudível] responder de novo? Lauren CARBALLO: Non Audiencia: [inaudível] Lauren CARBALLO: Non Iso sería fóra do ámbito desta variable particular. E de feito, este é o tipo de interesante, porque cando temos cousas como loops ou estes se condicións, se declarar unha variable dentro dun outro conxunto de claves, realmente só hai dentro desas chaves. Audiencia: Unha última nota sobre os coches alegóricos [inaudível]. Por que non quere usar Ints? Esta é unha nota lateral que nada, pero o ordenador é significativamente mellor en xestionar Ints do que se flotadores de manipular. É como unha orde de magnitude máis rápido. Entón, se nós só manipulados só Carrozas, as cousas serían moito máis lento. Lauren CARBALLO: En realidade, non parece sendo un problema cos flotadores. LUCAS FREITAS: Kind of a razón para diso, pode pensar, é como en binario podes representar enteiros poñendo 0 e 1 do. Lauren CARBALLO: Isto é a seguinte cousa. LUCAS FREITAS: Aceptar. Incrible. Lauren CARBALLO: Só manteña ese pensamento. LUCAS FREITAS: OK, eu vou dicirlle máis tarde. Lauren CARBALLO: Antes de chegar ao Lucas estaba dicindo, o operador precedencia. Este é o sentido común. Vostedes teñen feito isto bastante. Así, só se algo está entre parénteses, iso vai ocorrer primeiro. É a multiplicación ten precedencia máis aló, resta, cousas dese tipo. Entón, en realidade, só alguén quere me diga o número un, en realidade, avalía? Audiencia: 27. Lauren CARBALLO: 27? É. LUCAS FREITAS: Deixe-me dar doces para as persoas. Lauren CARBALLO: Todo ben. E sobre o número dous? E sobre o número dous? Audiencia: 22. Lauren CARBALLO: 22, si. Eu non sei quen comezou iso. Número tres? Audiencia: 10. Lauren CARBALLO: 10, si. Legal. Así módulo. Lucas, quere explicar modulo? LUCAS FREITAS: Modulo é este operador que é, en realidade, moi útil para unha morea de problemas. Se eu fai 55 módulo 10, o que fai iso imos dicir que quero dividir 55 por 10. O que eu ganancia? Ela se sente como se eu estou realmente só facendo a división, o que é o primeira vez que eu teño o número enteiro? Audiencia: 5. LUCAS FREITAS: 5. E, a continuación, o resto é de 5, non? Entón, é como 5 veces 10 máis 5. Basicamente, o módulo fai, intenta dividir este número por este, e el ve o que é o resto da división. Lauren CARBALLO: Entón é só devolve o resto. Así, o número un é o que? 5. Número dous? Audiencia: 3. Lauren CARBALLO: 3. Número tres? 0. E catro é 1. Exactamente. LUCAS FREITAS: Simple, non é? Lauren CARBALLO: Por que non imos saltar esta só porque nós realmente non teño tempo, e as persoas parecen entender. Entón aquí está o que Lucas era só falar. LUCAS FREITAS: Outra razón pola que eu usaría enteiros en vez de flotadores é flotadores que son moi imprecisas. E por que son imprecisas? David dixo que para representar un enteiro, por exemplo, usan 0 e 1, non? E entón basicamente facer o multiplicación, facer todos os operacións de saber o número decimal tes no canto do binario. Que pasa agora se eu tentar para poñer os puntos decimais? De feito, por exemplo, se eu tivera o número como 3,33333? Parece que máis de 3 10. Como é que eu vou gardar todo o 3 É que eu teño despois diso? É realmente difícil, non? Non pode simplemente dicir ao ordenador, hey, eu teño un 3, e entón facelo para sempre. En realidade, o ordenador non é intelixente o suficiente para iso. Entón, basicamente, todo o seu ordenador fai é que trata de poñer o maior número de díxitos como pode que a memoria que ten. Entón, imos dicir que vai dicir 3.3333, e é iso. Polo tanto, non é capaz de realmente expresar precisamente o que se boia. Lauren CARBALLO: Temos un número finito de bits, o que significa que non cada número decimal será capaz de ser representado con precisión. E así, neste exemplo, se estivermos imprimir 0,1, agora estamos impresión fóra 20 prazas. LUCAS FREITAS: Así como eu estaba dicindo vostedes, pode poñer calquera número. Pero, se acaba de facer os dous lugares, quere obter 0,10, pero se poñer 20 lugares, que vai te amosar unha morea 'S de porque iso é o que pode poñer na memoria, non? Pero aquí, ata o 0, e despois é só poñer-lo un chea de números aleatorios. Este é tipo como algúns - Lauren CARBALLO: Isto é porque somos non é capaz de representar este decimal precisamente co número de bits que teñen. LUCAS FREITAS: E entón o ordenador é basicamente dándolle un número de lixo. Este non é, en realidade, o valor do número. Audiencia: É o máis preto que pode estar [inaudível] usar o [inaudível]. Lauren CARBALLO: Entón, a implicación iso é que imos dicir que en vez de sendo 0.100014, calquera que sexa, e se fose 0,0999 - Ben, OK. Imos finxir que a resposta real para iso foi 0,9999999. Isto é moi próximo a 1, pero non é exactamente 1. É 0,99999. Isto significa que, se eu tomar esta 0,999, e eu o lancei a un int, eu recibín 0. Non entendo 1. LUCAS FREITAS: Por lembre, fundición de float para int, só ignorar todas as casas decimais. Simplemente ignore them. Non hai tal cousa como o arredondamento cara a arriba ou executar para abaixo cando estereotipado. En realidade, non é esta función que fai o redondeo, o que é moi importante, pero só creo que cando fai typecasting, é só vai borrar todo. Así, mesmo se ten 0,99999, vai só para dar 0 se typecast [Inaudível] un número enteiro. Lauren CARBALLO: Entón, só tes que ser realmente consciente punto de flotante en precisión, especialmente cando comeza utilizar flotadores en Pset1. Pero a ruta a través debería avisalo de que tan ben. LUCAS FREITAS: E de feito, é realmente difícil, por exemplo, se eu fixen resposta flotador 1 é igual a 1,0 sobre 10, e despois flotar resposta 2 é igual a 10,0 sobre 100,0. Son o mesmo número, non? 0,1, non? 1 máis de 10 ou 10 máis de 100. Pero agora, se eu tentar ver a igualdade, como se a resposta 1 é igual a responder 2, quizais non está realmente a suceder ser o mesmo. Así Carrozas son do tipo así. Son como facer a igualdade.