Jason Hirschhorn: Benvido. Así, só algúns anuncios antes de comezar. Entón seccións, todos deben xa seccionado. Seccións funcionan normalmente de domingo a martes. Entón vostedes deben comezar as súas atribucións. E entón eu creo que a próxima semana estará co seu real TFS. Entón, se ten algunha dúbida, ou problema, ou se esqueceu de sección. Algunhas persoas fan iso. Só imos ver. Tire nos un correo a cabezas. Entón o horario de expediente. Comezamos o horario de expediente a semana pasada. Horario de atención a cada semana. Luns é en Leverett 8: 00-11: 00. Martes no quad, así Cabot 8: 00-11: 00. Mércores, Mather 8: 30-11: 30. E o xoves Annenberg 8: 00-11: 00. Entón, cero, unha chea de xente Non é necesario o horario de expediente axuda a cero, o que é totalmente ben. Se o fai, iso é absolutamente ben así. Pero no futuro, o problema conxuntos, quedan moito máis difíciles. Entón iso vai ser o seu amigo. Definitivamente ir ao horario de oficina. Pensando en ir ao horario de oficina. Cando chegar ao problema definir catro, cinco, seis, sete, ten que ir para o horario de expediente. É aí que moita da axuda eo traballo está feito. Creo que o ano pasado, só para exemplo o xoves noite-- entón eu creo que o problema conxuntos foron debido o venres. Entón, na noite de xoves, teriamos 200, 250 alumnos en horario de oficina. Entón, en definitiva facer uso delas. Estes son os seus mellores amigos. Como este é o lugar onde se está preso nun conxunto de problemas, este é o lugar onde probablemente vai obter axuda. Así, o horario de expediente. OK, entón eses son os anuncios. Anuncios son feitas, entón imos comezar. OK, o aparello. Será que todo o mundo descargar o aparello aínda? Non. Como en tan. Eu medio que baixei o aparello. Dereito de xeito que o aparello é novo este ano, polo que estamos probablemente terá algúns erros nel. Entón faga a descarga o máis cedo posíbel. Entón conxunto de problemas un vai dicir exactamente como baixa-lo. Introdución instalar aquí. El vai dicir-lle como para descargar o aparello. Entón, en definitiva facer a descarga do aparello, máis cedo ou máis tarde. As instrucións están na especificación conxunto P. Entón, se esperar ata o mércores noite, e entón tes problemas, e enviarnos un correo electrónico a medianoite de mércores que non pode facer a descarga o aparello, que é non un motivo lexítimo para unha extensión. Debe facelo agora, e terá problemas. Tente baixalo onte á noite. Corre para un pouco de dificultade. Se executar en problemas instalar, en definitiva bater repetición, porque eu só bater repetir unha parella equipos, e, finalmente, el traballou, que non fai calquera sentido, pero fai. Entón, en definitiva tentar de novo, pero se atopámonos cunha parede de ladrillos, tirar-nos un correo-e cabezas, e nós imos ser máis que feliz en axudar vostedes. O que está pasando? ALUMNO: Só unha pregunta rápida. Se o check-estilo, hai unha parte que di que non inclúen esta. Jason Hirschhorn: Aínda non. ALUMNO: Di executalo. Como executar que a asegúrese de que está no seu sistema? Jason Hirschhorn: Es indo para executar un comando bash. Vou pasar por riba diso máis tarde. Legal. Así, o dispositivo pode ser un pouco intimidante, porque está acostumado a especie de funcionando en interface gráfica de usuario. Entón era un risco gráfica de usuario interface, entón o que quero dicir con isto? O que quero dicir é que cando está programando, basicamente está a usar bloques de código. Podes ver o código e cousas así. O aparello, que vai estar facendo cousas nun ambiente de liña de comandos. E así para o resto da súas vidas de programación, vai estar facendo cousas no ámbito de liña de comandos. Por iso é bo para ir ao principio e obter algunha experiencia. Entón, imos facelo. Entón, iso é Rob. OK, entón imos saltar en liña de comandos material. Polo tanto, este é o aparello. Alguén me pode dicir por que usan un dispositivo? Cal é o aparello? Alguén sabe? O que está pasando? ALUMNO: É só unha máquina virtual que executa a súa máquina para que Pode obter sobre o OS desentendimentos entre Mac e PC. Jason Hirschhorn: Perfecto. ALUMNO: É un modelo universal. Jason Hirschhorn: Si, é como un modelo universal. Perfecto. Entón, si, é unha máquina virtual. Entón, é basicamente un ordenador. Este é un sistema operativo. Isto é equivalente a súa Mac, PC ou vostede, ou o seu Linux. Este é o mesmo. E así que pode facer cousas similares. Se quixese, podería ir en liña, por exemplo. Non pode realmente velo, pero aquí, Google Chrome. Pode ir en liña se quere. Este é un sistema operativo. E a razón pola que facemos iso é porque é moito máis doado cando estamos distribuíndo instrucións e todo. Se é só un ambiente uniforme, é moito máis fácil para nós, e é moito máis doado para ti. Non está indo para executar en el executar en calquera idiosincrasia cando está programando. Sabemos o que vai se atopou. Así, o dispositivo está aquí. Entón, cando está comezando programación, está indo a ir para abaixo para o canto esquerdo. Hai unha pequena caixa. Vai facer clic sobre el. Esta é a súa fiestra de terminal. Polo tanto, este é o lugar onde está indo sendo moito do semestre. Entón déixeme ampliar un pouco. OK, para desplazarse dunha terminal xanela é un pouco diferente. En primeiro lugar, non hai iconas. Non podo facer clic en nada. Non hai nada para premer. Entón tes que descubrir un xeito de descubrir onde está, o que está aquí, e como desprazarse. Así, os dous comandos máis útiles, probablemente, son ls-- entón o que pensas ls fai? ALUMNO: List. Jason Hirschhorn: Listas, si. El só lista algoritmos dentro do directorio. E, a continuación, cd. Entón, digamos que eu quería cd CS50, o que iso fai? Si? ESTUDANTE: Cambia o seu directorio. Jason Hirschhorn: Perfecto, si. El só cambia o directorio. Entón, imos volver. Entón, como fago para volver? Entón, digamos que eu quería ir ao seu directorio anterior. Si, con certeza. ESTUDANTE: Creo que escribe cd só que sen nada. Jason Hirschhorn: Pode facelo. Tan perfecto. Entón, se eu escribir cd, este é realmente me vai pop backup para o directorio home. Entón ve esta til, que me vai pop camiño de volta ata onde a til é. Entón, el me vai aparecer volver ao directorio home. Pero digamos que eu fixen algo parecido con iso. Digamos cd CS50. ls novo. Teño outras cousas. cd sección super. arquivo cd, entón eu vou fondo. E entón imos dicir que quero só pop de volta ata o cumio. cd. Imos dicir que eu non quero facer iso. Imos dicir que eu só quero aparecer de volta ata o directorio que se ben por riba de min. Como podo facer iso? Entón, digamos que cd CS50. cd supersection. Entón, imos estou aquí. Imos dicir que eu só quero aparecer unha vez. Como podo facer iso? Si, o que hai? ALUMNO: Vostede escribe cd supersection novo. Jason Hirschhorn: Podería facelo. Ben, eu estou en supersection. ALUMNO: Oh, o que antes. Jason Hirschhorn: Si, así que podería facelo. Fai cd ~ CS50. Entón, se ollar aquí, este é o seu camiño aquí. Ese é o seu camiño. Entón, vostede podería serio só tes que ir cd ~ / CS50. Boom, está alí. ¿Que é un xeito máis doado de facelo aínda? Iso foi perfectamente correcto, pero o que é un xeito un pouco máis fácil para facelo, porque unha morea de veces que vai estar pulando en directorios, ir de directorios. Entón, imos volver. cd supersection. Entón, digamos que quero volver rapidamente. Pode facer algo como cd dot dot. Isto aparecerá faga backup rápido real. Así cd supersection. arquivos de CD. Imos dicir que eu estou aquí. By the way, claro é bo, porque a miña fiestra estaba quedando un pouco confuso. Entón, ls, entón eu non quero máis estar aquí. cd dot dot. Leve-me unha. Cd dot dot lévame un. Cd dot dot e voltar á miña casa. OK, entón cd, ls. Probablemente a máis importante cousas, porque é Vai ter saber onde está. ls vai dicirlle onde está, e cd É así que vai saltar. Tamén pode facer algunhas outras cousas legais. Así, por exemplo ls. ls é só vai amosar-lle os directorios no seu arquivo. Tamén vai amosar os arquivos. Pero el só vai para mostrar o que está aí. Se quería algo un pouco máis fresco, e vai realmente facer isto nun par de semanas. ls trazo l. Que imprime un pouco máis de información. Alguén pode adiviñar na man esquerda lado a drwx, rwx e cousas así. Alguén ten unha idea que iso pode significar? ALUMNO: Permisos. Jason Hirschhorn: Si, perfecto. Permisos. Entón, vai ten que tratar con isto cando fai a programación web máis tarde. Se xa pasou en liña, e premeu nunha imaxe ou premeu nun campo, e el dixo permission-- como permiso non permitidos, ou como permiso non concedida ou calquera outra cousa, Isto porque cando están programando, eles non definir os permisos para deixar facer iso. Entón, de onde que vén. OK, entón iso é legal. Entón nós saltamos arredor. Podemos ollar para o material no noso directorio. Pero como podemos facer cousas? Teño directorios aquí. Isto é incrible. Como podo facer un novo directorio? Digamos que eu queira facer unha nova directorio para agora. Pode facer algo como iso, mkdir. Entón faga directorio. Entón o que quere chamar este directorio? ESTUDANTE: Awesome. Jason Hirschhorn: Awesome. Eu amo iso. Fai directorio incrible. E alí vai vostede. Por iso, necesitamos unha lista. Ten un novo directorio. E pode dicir que é un directorio no seu dispositivo porque ten esa cor, non? Entón, é como un azulado vermello ou o que sexa. Entón, imos cambiar. Imos cambiar de directorio. Imos entrar directory-- si, cal é? Estudante: Existe unha lista de todo isto [inaudível] online? Jason Hirschhorn: Si, eu vou poñer los on-- teremos diapositivas. Será un PDF. Imos poñer-los para todos. Si, desculpe, é unha morea de comandos. se quere me a abrandar, ou volver, ou algo así, definitivamente déixeme saber. É moita cousa para absorber de inmediato. O que está pasando? ALUMNO: Podo facer unha cuestión potencialmente estúpido? Jason Hirschhorn: Non hai hai preguntas estúpidas. ALUMNO: Hai. Un directorio é para só mirando a información onde almacena-lo. Jason Hirschhorn: Yeah. ALUMNO: É que, esencialmente, o que está facendo? Entón, cando facemos algo, Ola mundo ou o que quere, é almacenado no directorio, non é? Jason Hirschhorn: Yeah. ESTUDANTE: Isto é certo para todo. Todo é almacenado no directorio. Jason Hirschhorn: Yeah. Sempre que se fai iso, calquera directorio que está, vai basicamente almacena-lo no directorio. Estudante: E cando estamos chamando-o, estamos chamando-o do directorio. Jason Hirschhorn: Si, por iso o directorio é onde es. Entón, é tipo como se ten un novo cartafol no teu escritorio e entón escribe un texto ficheiro, coloque o no cartafol, o ficheiro é no cartafol. Será que isto ten sentido? Estudante: Si. Jason Hirschhorn: Si, o que hai? ALUMNO: Podo só pedir para ti facelo un pouco máis grande? Jason Hirschhorn: Ah, si. Sentímolo. O proxector é tan malo. Tivemos tantos problemas con iso máis cedo. Está mellor? Isto é moi grande? Estudante: Non, non, non é. Jason Hirschhorn: Non, non é. É moi pequeno? O que está pasando? ALUMNO: Eu sinto moito, o que é a orde para limpar? Jason Hirschhorn: Oh, claro. Se desexa borrar, só escriba clara. claro entrar. No último aparello, o que basicamente fai, non limpar a súa información, que só unha especie de cambiar todo unha pantalla para abaixo. Entón, se inseriu clear-- para exemplo, digamos que eu estou rodando cara arriba. Podo ir cara arriba. Isto é todo o que eu fixen. Pero se eu escribir claro, e despois Eu vaia para arriba, aquí está o meu material. Polo tanto, non é de apaga-los, é só basicamente, dándolle un novo cadro. ESTUDANTE: Como [Inaudível] un directorio? Jason Hirschhorn: Nós imos chegar alí. [Risas] Retardar seu rolo. Todo correcto. OK, entón por iso estamos nun directorio agora. Entón David, creo que en charla fixo algunhas cousas interesantes. Entón imos escribir un programa. Así, pode facelo unha número de xeitos diferentes. Podes empregar calquera tipo de editor de texto. Pode utilizar o Nano, vostede pode usar Vin, Emacs. Aqueles son un pouco máis complicadas. Ou pode usar algo en aquí que se chama gedit. Sentímolo. gedit non é feliz. Entón gedit é basicamente só un editor de texto. Así como eu editar texto palabra procesador ou algo parecido. Entón, el ten un bo Interface só como este. Entón fai algo parecido. Entón, en realidade, deixe-me dar-lle nome, porque eu nunca fixen iso. Entón o que quere nome do noso primeiro programa? Ela só vai dicir ola. Estudante: [inaudível]. Jason Hirschhorn: Non ten imaxinación. OK, gedit. Ola. Vou facer .txt. OK, entón aquí está. Entón imos escribir un programa. Entón eu creo que viu iso na charla. Precisa dunha función principal. Boop. Polo tanto, esta é só unha función principal. Maior? Si, desculpe. OK, entón tes que de unha función principal. Eu creo que eu estou saltando o arma un pouco, pero nunca está mal para chegar usado para este tipo de cousas. Así, unha función principal, todo programa en C que é vai escribir para o resto da curso terá unha función principal. Alguén sabe por que? O que está pasando? ALUMNO: Inicio. Jason Hirschhorn: Exactamente, polo que di o seu programa por onde comezar. Entón, se non ten unha función principal, e compilar este e material, non vai saber eran para comezar. Principal é sempre onde comeza. Entón tes unha función principal, e logo Alguén recorda como imprimir? ALUMNO: printf. Jason Hirschhorn: Si, printf. printf ola. OK, agora eu teño proposto vostedes up a fallar, pero iso vai compilar. Estudante: Non. Jason Hirschhorn: Por que? Hai varias razóns. Claro. Estudante: Non ten o estándar [inaudível]. Jason Hirschhorn: Perfecto. Entón, o que se chama iso aquí? Estudante: [inaudível] Jason Hirschhorn: É un ficheiro de cabeceira, non? É un arquivo de cabeceira. E está absolutamente certo. Ambos están correctos. Entón, para incluír que, eu só fago libra incluír .h saída entrada estándar. Estou preparado para ir agora? Será que esta compilación? Estudante: Non. Jason Hirschhorn: Por que non? ALUMNO: É un [inaudível] texto. Jason Hirschhorn: Si, incrible. Entón, eu só fixen iso. Entón eu salvei pero gedit hi.txt. Entón agora se eu fai ls, aquí está. Ben aquí. Oh, non está incrible. Debo saír. Oh, perfecto. Como é que imos poñer isto en impresionante? Entón, eu non quero iso aquí na miña casa directorio con todo o resto. Quero poñelo no cartafol. Como podo facer iso? Non é moi difícil. Mover. Entón, nós xa aprendemos ls, lista. cd para cambiar de directorio. cd dot dot a bater fóra de directorios. E agora nós estamos indo comezar a moverse arquivos. Así, para mover só mover hi.txt, e Vou poñelas incrible. Só ten que ter coidado. Sempre que está escribindo no liña de comandos, todo importa. Así, cuestións maiúsculas. Se eu fixese unha minúsculas, é non vai saber o que está pasando. Entón, todo cuestións ser moi específico. Entón execute o LS. El xa non está aquí. Imos cambiar o directorio en incrible. ls. Boom, está alí. E por que alguén mencionou iso non sería compilar. Por que non vai compilar de novo? Si? Estudante: Non se nun .c. Jason Hirschhorn: Perfecto. Non é un .c, está tan como eu son vai cambiar o nome a un .c? ¿Que é un xeito doado de facelo? Imos usar o comando que acabamos de facer. Entón, nós só estamos indo a mover hi.txt para hi.c. ls hi.c. E entón, só por diversión, imos só ir a esta rapidamente. hi.c. Vai entender que é bo e colorido. Entón, estas son só unha especie de utilidade cores cando está programando. Así, o int e baleiro, estes son os tipos de datos. Nós imos pasar por riba de quen nun segundo. Ola é unha cadea. Pero as cores útiles. Entón, se algunha vez accidentalmente seleccione a extensión incorrecta, ten que ter estas cores. O que está pasando? ESTUDANTE: Como podo copiar a unha ficheiro [inaudível] noutro ficheiro? Jason Hirschhorn: Ah, eu son vou lle amosar iso tamén. Así copia eliminar están no banco dos acusados. Imos facelo. Asegúrese de que funciona. Fai ola. Obras, executalo. Entón ./hi incrible. Ese é o seu primeiro programa. Déixeme facelo máis grande. Entón realmente boa-- Si, o que hai? ALUMNO: Por que sería que cando tomar gedit, non me dá outra liña para gedit hi.txt? E só pon o cursor unha liña. Estudante: Si. O [inaudível]. Jason Hirschhorn: Agarde, así dicir iso de novo. ALUMNO: Cando eu tecleo gedit, o primeira vez, o primeiro linha-- Jason Hirschhorn: Up alí no alto? Estudante: Non ten J Harvard aparello, eo cursor é só todo o camiño á esquerda. Jason Hirschhorn: Todos o camiño á esquerda? Estudante: Si. Alguén ten iso? Jason Hirschhorn: Oh, así J Harvard é como o nome de usuario. Entón, iso é só o nome de usuario por defecto. ALUMNO: el deixa de responder. Jason Hirschhorn: Oh, el deixa de responder. OK, entón o que tes que facer é ten que pechar fóra do gedit. Tan preto de gedit, e debe retornar. Entón é gedit aberto no seu aparello agora? Se saír fóra dela, que debería volver e ten que ser bo para ir. Será que isto funciona? Estudante: Entón usou a orde gedit para open-- Jason Hirschhorn: Non, o primeiro mando gedit foi un erro. O primeiro comando gedit, I facer gedit hi.txt. Entón, eu darlle un nome, hi.txt así gedit. hi.txt é o nome do ficheiro. O primeiro foi só un erro, e logo Eu rapidamente pechada fóra do programa. Polo tanto, a cuestión foi se eu fai gedit, eu non son será realmente capaz de facer calquera outra cousa na miña liña de comandos ata eu pechar esta gedit, entón eu creo que iso é o que eles correron para. Entón pecha gedit. El vai volver para fóra do que programa, e entón vai poder realmente escribir na liña de comandos de novo. Isto é bo? Dope. Así, só asegúrese de pechar iso, se ten problemas. OK, entón unha pregunta moi boa un segundo atrás estaba copiando. Entón agora eu teño hi.c. Pero digamos que quero cambiar iso. Quero que sexa un pouco mellor. Quero dicir ola clase. Pero quero manter ese modelo. Non teño que reescribir todo o programa de novo. Quero manter o modelo. ¿Como copiar? Fácil. Entón cp hi.c newhi.c. Agora eu teño dous. E entón podo abrir newhi.c, e, no canto de só dicir ola, Vou dicir ola clase! Entón, eu vou volver. Saia para fóra. Voltar á miña liña de comandos. ls facer newhi. Executalo. Alí. É mellor, moito mellor. Entón, se quere copiar algo, sinxelo coma iso. cp é copia. Entón, nós temos ido máis conmovedora, facendo directorios, copiar. Imos ver o que máis eu debería pasar por riba? Oh, si. Imos pasar por riba diso. Entón, iso foi incrible. Digamos que eu quería a-- oh wait. Vou volver incrible. Imos dicir que eu non quero estes ficheiros aquí mesmo. Imos dicir que quero que eles nun novo directorio como no directorio incrible. Eu quero comezar a organizar, entón agora eu vou ter un novo directorio chamado ola. Ten todos os programas Escribo chamado ola. Entón, como imos facelo? ALUMNO: Cambia o directorio. Jason Hirschhorn: Yeah. ola. Boop. mkdir hi_dir. El reclamou porque eu xa unha ola aquí. Entón agora eu teño un directorio ola. Entón, agora eu quero pasar todo, todos os programas que eu escribín, Quero mover los ao directorio ola. Só cousas limpeza. Como podo facer iso? Estudante: [inaudível]. Jason Hirschhorn: Mover-lo, non? Polo tanto, imos pasar. Si? Estudante: Cal é a diferenza entre ola e hi.c que xa temos. Jason Hirschhorn: Oh, hi.c é o real. Entón ese é o arquivo que enviou. Entón, se estaba indo a abrilo no gedit ou Nano, iso é o que está escribindo no. Cando compila-lo, a continuación, recibe un arquivo executable. Isto é ola. Entón, se abriu ola, o que está pasando ser unha chea de rabiscos para ti. É basicamente vai ser banda de instrucións do equipo. O que está pasando? ESTUDANTE: Que todas as cores significan? O azul é probablemente directorio. Que é amarelo? Jason Hirschhorn: Aqueles son os arquivos executable. Entón, cando eu facía hi.c, el me-- deu para que eu poida facelo. Saltando a arma. Entón eliminar ola si. Entón imos facer ls. Non teño ola máis. Entón, cando fai, que é cando levar o programa que escribiu e fai un arquivo executable. Entón faga hi.c-- ben, facer ola. Creo que foi ao longo deste na charla. Estes son banda de instruccións do compilador. Entón, en vez de ter que realmente escribir bumbum con todo isto. Estes son bandeiras. Acaba de escribir facer. Entón, iso fai que os arquivos executable. Entón, cando fai ls, agora tes ola. Entón é iso que está vai realmente executar. E así que realizar que, ao facer ./hi, e funciona o seu programa. Pero se eu tentar facelo con hi.c, non, non é indo para o traballo. Si, iso ten sentido? ALUMNO: Mm-hm. Jason Hirschhorn: Cool. Espera, eu quería dicir outra cousa. Só rapidamente, no caso alguén está interesado, cando ir dun directorio, é o punto a punto. Alguén ten unha idea do que quizais só o medio de puntos singulares? Estudante: [inaudível]. Jason Hirschhorn: É en realidade, o directorio actual. Así é o seu directorio actual. Entón, eu estou aquí. Estou en incrible. Se eu fai cd punto, el non fai nada. Leva-me para o meu directorio actual. Entón, un pouco redundante, pero tes para facelo, entón ./ seu nome do programa, a fin de realizar o seu programa, ten que facelo. Está ben. ALUMNO: Se fai cd dot dot dot, con todo moitos puntos será que só levalo ata que moitos directorios? Jason Hirschhorn: Quere dicir como cd dot dot dot dot? Estudante: Si. Jason Hirschhorn: Non. Entón, en realidade Lembre que fixen ls -l? Se eu facer outra cousa, podo ls -a. Entón, o que isto di é -a mostra-lle todo. Por iso, mostra-lle as cousas que son ocultos e cousas que non están ocultos. Entón, se entender que cando eu fixen só ls, eu só vin ese material, as cousas que eu fixen. Se eu fai -a, que vai para me amosar todo. E así directorio actual, directorio enriba dela. Será que isto ten sentido? Si? ALUMNO: Pero estes non son realmente no directorio. O directorio actual non é, en si, Entón, por que amosar aqueles con puntos dentro? Jason Hirschhorn: Quere dicir que é como non é o directorio. ESTUDANTE: Certo. Polo tanto, temos unha lista de cousas que están no directorio. Jason Hirschhorn: Eu creo que está no directorio. Como -a mostra todo, aínda se el está oculto dentro do directorio. Entón, eu creo que é só unha ruta para o directorio actual se iso ten sentido. É un pouco recursiva. É como Inception. O que está pasando? Estudante: Entón dixo mostra -a [inaudível]? Jason Hirschhorn: -a, si. Estudante: Que fai que sexa [inaudível]? Jason Hirschhorn: Ben, por exemplo, imos voltar ata o cumio. É xeralmente cousas que non debe xogar con e non se preocupe. Polo tanto, este é o tipo de casa. Se eu fai -a, eu recibín toneladas de material. Todas esas cousas. E non precisa xogar con nada diso. Definitivamente non comezar a ir aquí e simplemente eliminar o material. [Risas] Si, iso foi algo máis material cómodo, pero é bo saber. Creo que é bo saber. Pero se non quere escribir -a na totalidade do curso, simplemente esquece. O que está pasando? Estudante: Cal é o ls -l? Jason Hirschhorn: Isto mostra permisos. Basicamente usa que para os permisos, de xeito -l. Amosa un pouco pouco máis de información, pero, de novo, iso é un pouco mordeu cousas máis cómodo. Estes son só permisos. Así, os permisos das carpetas. Entón, só por exemplo, imos dicir que eu fixen un cartafol, á d representa o directorio. Polo tanto, estas son directorios. E, a continuación, ler, escribir, executar. Polo tanto, estas son os permisos para Creo usuario, grupo mundial. Totalmente indo lonxe demais. Está indo a ir neste como semanas a partir de agora, pero só para ti saber, esas son os permisos. O que está pasando? ALUMNO: Pode claro, no canto de pule para a próxima cousa, pode você-- Jason Hirschhorn: Vostede significa realmente eliminar? Non sei. Nunca fago iso. Por que ía querer facelo? Por que faría iso? Eu gusto diso. Vive no límite. Vostede é como eu non quero nada diso. Isto é intensa. Estudante: [inaudível]. Jason Hirschhorn: Si, podemos facelo. Sentímolo, xogar co tamaño é totalmente me asustando agora. Imos subir. Si, entón agora eu non podo subir máis. Entón todo o que eu ensinei se foi para sempre. Grazas. Fixemos os nosos directorios. Fixemos os nosos arquivos e cousas do tipo que, por iso, aínda temos todas esas cousas. OK, eu vou ir máis rápido. Tan real rápido. Entón, digamos que eu estou en incrible. Digamos que eu quería cambiar todo para o novo directorio porque eu só quero para organiza-lo, non? Entón, como eu faría iso. Mover. Nós imos utilizar o movemento de novo. Entón move hi.c. E o que podes facer é comezar a enumerar cousas, ea última cousa que lista é onde está indo a mover. Entón move hi.c, oi newhi newhi.c, hi_dir. E así pasou a ser todo en o último que mencionar. Entón, cambie o directorio, hi_dir ls. Todo está alí. Entón é legal e máis organizado. OK, digamos que eu odio ola meu programa orixinal. Eu quero me librar del. ¿Como me librar del? O que está pasando? Estudante: [inaudível]. Jason Hirschhorn: Imos dicir que eu só quere eliminar o programa, entón só ola. Non, está certo. Entón é rm, pero rm ola. El lle vai dar un pequeno aviso. Vai dicir que está seguro que quere eliminar esta, e si, eu fago. Se non queres ser solicitada así porque non ten tempo para avisos, elimina -f. Esta é outra bandeira. É coma se o -l. É coma se o -a. Estes son só bandeiras que está dando a estes comandos. Entón eliminar -f. f f significa forza. Así forzalo. Non quero ser solicitado. Entón eliminar -f. Imos facer hi.c. Só se librou del. Non me dixo. Pero imos dicir que ao contrario diso eu son feito con este directorio. Eu quero me librar de directorio. Entón eu eliminar hi_dir. Non, iso non funciona. Non, polo que non vai deixar me eliminar un directorio. Alguén ten unha idea? ALUMNO: É eliminar dir? Jason Hirschhorn: Entón elimine como este? Estudante: Non. Só o [inaudível]. Jason Hirschhorn: Non, agora non hai ningún ola. Hai só hi_dir. Polo tanto, este é o directorio. Entón, en realidade o que quere facer é-- Oh, vostede ten unha idea? Vexo como unha media man. Estudante: [inaudível]. Jason Hirschhorn: Aceptar. Estudante: [inaudível]. Jason Hirschhorn: Aceptar. Entón, se eu queira eliminar un directorio, eliminar -r. Isto é recursiva. Así que eliminar recursiva do directorio. Entón, quero que vaia para o directorio, eliminar todo o directorio, e, a continuación, se librar do directorio. E entón eu vou f tamén, porque eu Non quero que me pedir con avisos despois el elimina todos os arquivos. Entón eliminar hi_dir -rf. Boom, el marchou. Só teña coidado onde usalo. Vou usalo tamén aquí. -rf incrible. El se foi. Teña coidado onde usalo. Se usar isto aquí e escribir algo así, nunca máis faga iso. Isto vai borrar todo no seu aparello sen nunca avisando. E eu fixen iso. Problema de clasificación fixa en 04h00, eu estaba tentando eliminar conxunto de problemas directorios, e eu fixen iso. E eu era como oh meu deus. Non fazer-- Tente cancelar. Pode cancelar. Comando C só cancela todo, pero eu xa eliminada como 75%. Entón eu arruinou. E a xente fan isto. Todo o mundo fai iso. Non faga iso, aínda que este semestre. É unha merda. Estou nervioso telo aquí. Eu estou indo a excluílo. [Risas] Podes imaxinar? OK, preguntas. Si? Estudante: Entón, se facemos todo está facendo aquí, que é o mesmo como só indo para realmente Gardar ficheiro como [inaudível]. Jason Hirschhorn: Oh, quere dicir a través gedit. Estudante: Si. Jason Hirschhorn: Si, é. gedit é útil. Entón gedit é moi útil. Nesta clase, pode facer unha chea de cousas a través gedit. Pode gardar. Pode cambiar o nome. Pode mover arquivos e cousas así, pero só a verdade cando vai para 50-- así está 50-- 51, se ir en 61, esta será a súa vida. Esta é a liña de comandos. Este é o lugar onde vai programar para o resto da súa vida, entón definitivamente usar gedit, se queres. Sen dúbida unha boa forma de comezar. Para o primeiro problema ponse, en definitiva usar, pero de cando en vez tentar obter máis usado máis cómodo con argumentos de liña de ordes. Pero pode, en definitiva. O que está pasando? Estudante: Entón, cando queremos eliminar un dos arquivos que fixemos, hai dous xeitos. [Inaudível]. Existe un xeito cando está exclusión dun directorio pedir ao poder para que non acabar borrar-lo? Jason Hirschhorn: rm -r. Polo tanto, non forza-lo. Entón rm -r. Vai pasar por recursiva, borrar todo, pedirlle Despois de todo, o que vai deixar lo tolo. Cómo case exclusivamente facer rm rf -f e rm, só constantemente. Eu son como eu non teño tempo. Eu son un home moi ocupado. Todo ben, o que hai? Si. Estudante: Existe un desfacer, ou un lata de lixo, ou algo así? Jason Hirschhorn: Non. [Risas] Podería volver e incorporarse o meu aparello que eu acaba de eliminar, non. Non, non, non. Se fai rm, debe ir aínda. O que está pasando? Estudante: Entón pode [Inaudível] xuntos. Jason Hirschhorn: Si, só como aquel. Así, por exemplo, viu o rm -rf. Imos dicir que quero facer ls -la, el me mostra todo, aínda escondido cousas con seus permisos. Estudante: Entón r, o -r bandeira, si non temos que, non podemos eliminar un directorio, non? Jason Hirschhorn: Certo. Estudante: Entón, que di que queremos facer algo co directorio? É iso o que significa isto? Jason Hirschhorn: -r significa de forma recursiva. Entón, un directorio vai ten ficheiros nel, non? Entón o que quere facer é vostede quere ir ao directorio, borrar todo, todo o ficheiros no directorio, a continuación, saír e borrar polo directorio actual. Así, o -r significa recursivo, facelo todo de forma recursiva, se iso ten sentido. Si. Estudante: Entón directorios teñen [Inaudível] e simplemente excluílo. Ou still-- Jason Hirschhorn: Imos probar. Entón mkdir baleiro. Eliminar baleiro. Non. Estudante: Non, entón aínda que as-- Jason Hirschhorn: Si, sempre. Entón, -r, rf, baleiro. Impresionante. Máis preguntas? Creo que é o seu accidente Claro que na liña de comandos material. Calquera dúbida, porque nós imos saltar para tipos de datos e loops, e todas estas cousas? O que está pasando? ALUMNO: eu non teño CS50 mostrando como un dos meus directorios. Isto é normal? Jason Hirschhorn: Ah, si. Isto é o meu. Si, é aí que o meu solucións para o seu material é. [Risas] Entón, si, iso é absolutamente normal. Eu creo que, probablemente, só ten estes catro. Creo que pode ser normal. Si. OK, máis algunha pregunta? Sei que foi super rápido. O que está pasando? ALUMNO: Vin a cor do verde azul. ¿Que é iso? Jason Hirschhorn: Isto significa directorio. Estudante: E ese azul? Jason Hirschhorn: Oh, quere dicir este verde azul? Estudante: Non. Jason Hirschhorn: Este verde azul? Estudante: Non. Cando listed-- Jason Hirschhorn: Oh. Así? Estudante: Si, as iconas. Jason Hirschhorn: Ah, iso. Non sei. O que significa isto? Por iso, parece ser apuntando a un directorio. ALUMNO: Parece case como un alias. Jason Hirschhorn: Pode ser. Non precisa saber diso. Máis preguntas? Impresionante. Se ten algunha dúbida, Sei que foi moito. Moita desta información será en liña. Vou poñelas en liña para vós. Sección B será en liña tamén. Ou se ten dúbidas, só chegar e me preguntar. Aquí vai. Entón, agora Sharon e Hannah vai pasar por riba de algúns da lóxica detrás problema definido. SHARON: Oh meu deus. Problemas. HANNAH: Mentres tanto, eu estou Hanna. Esta é Sharon. Nós dous estamos CS50 TFS, e imos darlle un pouco de introdución nun par importante cousas para definir un problema. Todo a partir de tipos de datos condicionais á loops. Loops en xeral. SHARON: E ao final, nós vai dar un ollo en I definir un, eo que precisa saber para el. Entón, imos comezar con tipo de datos. Vostedes deben estar familiarizados co aqueles que están destacadas en azul. Así, podemos comezar con ints. ints son enteiros, entón un, dous, tres, catro. Carrozas, flotando puntos. Como enteiros con cifras decimais, de xeito 5.2 ou incluso 5.0. Chars son personaxes como A, B, C. E unha corda, vostedes todos saben. Como CS50 ou Ola e mundo. Bool é un booleano, polo que temos verdadeiro e falso como o noso booleana. Entón, se calcula a algo truth-- 5 é igual a 5, que calcula a verdade, e se temos 5 é igual a 4, que é falsa, de xeito que calcula a falsa. E aquí temos o asociado tamaño de todos estes tipos de datos. E terá que saber isto para os seus cuestionarios, entón isto pode ser útil para Teña en conta que, aínda que imos publicar estes. De feito xa están publicados. Entón, ten que estar familiarizado con os destacados en azul. Jason Hirschhorn: Real rápida, só no caso de que quero saber a diferenza entre un char e unha corda. Entón, cando está escribindo cousas, sempre que ten algo así como "ola", que vai ser unha cadea. Así, se hai dous citas, é unha cadea. Pero se eu fose un "h" así, esta é unha cadea. Pero se eu tivera só un cita, que é un char. E entón cal é o diferenza que se pode preguntar. Ben, a diferenza é este é un byte de memoria. Isto é de 4 bytes de memoria. SHARON: flotar? Describilos-lo de novo? OK, é como unha especie de número que ten un punto decimal con el, de xeito 5.2 ou incluso 5.0 é un float contra só 5 é un int. Estudante: [inaudível]. SHARON: Oh, pode ter moitos puntos decimais, polo 5,675-3,1415. Si? ALUMNO: Será que necesitamos saber todos os tamaños para iso? SHARON: Si. Estudante: [inaudível]. SHARON: Non se preocupe os brancos aínda. HANNAH: As notas son afixado no CS50.net/sections. ALUMNO: Só por curiosidade, existe unha utilidade para saber o tamaño dos ficheiros que está chamando así que temos que saber? SHARON: Entón, estas son tipo de datos, pero si. Polo tanto, neste caso, cal sería ocupan máis memoria ou máis espazo? Jason Hirschhorn: Entón para un exemplo concreto, Creo que no conxunto de problemas catro ou cinco, somos vai darlle unha morea de datos, e basicamente ten que atravesar eses datos. Por iso, é útil saber que se ten tantos números enteiros, que será o que. Entón, digamos que eu che dei dez enteiros, cal é o tamaño dese? Estudante: 40. Jason Hirschhorn: 40 bytes, seguro. Entón pode ter saber que OK, eu teño ir de 40 bytes. Entón, digamos que ao contrario diso é 40 caracteres, entăo-- digamos que eu che dei 10 caracteres, entón vostede sabe, OK, eu só Debe saltar 10 bytes. Polo tanto, é moi útil saber o tamaño dos tipos de datos reais, porque unha morea veces vai estar pulando en torno dos datos, entón tes que saber o quão lonxe saltar. Estudante: Cal é a diferencia entre as aspas e unha cita? Jason Hirschhorn: OK, dúas citas é unha cadea. Unha cita é un char. ESTUDANTE: Como operativo, cal é a diferenza? Ambos dicir ola. Jason Hirschhorn: Oh, desculpe. Este é só h. Desafortunadamente, este non é clara. Estudante: Entón arriba um-- Jason Hirschhorn: Este é unha cadea, si. Entón é dous personaxes, non? Cadea, ola. Pero imos dicir que eu só tivo un único personaxe, se eu poñer dúas aspas só h, que é unha cadea. Esta é unha cadea h. Será que isto ten sentido? Polo tanto, este é de catro bytes. Pero imos dicir que me livrei de que unha só poñer un. Unha cita. Este é agora un char, un char h. Entón, exactamente o mesmo, diferente tipo de datos. Este é só un byte, mentres a corda era de catro bytes. Si. Estudante: Entón, se estaba tratando para almacenar unha palabra como David, desexa usar unha corda, porque independentemente de canto tempo a corda é, levará só catro bytes a menos que sexa un longo ou unha parella, en que case-- así se esténdese máis aló de catro personaxes, a continuación, quere facelo en cadea. É que a lóxica xeral atrás. Jason Hirschhorn: Se se estende ademais dun personaxe, é unha cadea. Estudante: Entón non hai [inaudível] para o almacenamento de unha carta de catro palabra como catro individuo ou de tres letras palabra como tres personaxes individuais porque será que só tres bytes, ao contrario da secuencia de tres partes. Jason Hirschhorn: Podería facelo. Podería facelo, pero eu non creo que é realmente paga a pena, porque está salvando só un byte. Vostede sabe o que eu estou dicindo? No gran esquema das cousas, que non importa realmente. Pero, por exemplo, printf, se está imprimindo f e ten tres carácteres que poden ser impresos que out-- digamos que C-A-T, pode imprimir gato só por facendo un char un char un char, ou pode imprimir secuencia de gato. É exactamente o mesmo. Entón, vostede podería facelo así, mas- Estudante: Non vai para garda-lo moito. Jason Hirschhorn: Yeah. A dor de cabeza que ía inducir non paga a pena. Si? ALUMNO: Por exemplo, tivo a h cunha contra dous, as comiñas simples ou dobres. Por que quere gardar unha única letra como unha cadea. O obxectivo é que iso xa serve? Jason Hirschhorn: Non o sei. É dicir, é realmente depende do programa. Por exemplo, eu creo que, máis tarde, vai entrar en liña de comandos material. Así, por exemplo, no canto de me pedíndolle unha pena integer--, Eu podo falar con vostede? HANNAH: Si. Jason Hirschhorn: Entón por exemplo, no canto de me pedir algo con final get, que Eu creo que pode ver unha charla, pode haber unha liña de comandos. Vostede só escriba-o na liña de comandos. Sería como - / hello4 ou algo, ou helloh h, o que sexa. Vostede fai iso na liña de comandos no canto de ser solicitado, liña de comandos que sempre é unha corda, se é un catro ou un h, que sempre é unha cadea. Entón ese é un exemplo de cando se pode ten unha letra física ou unha singular número representado como unha cadea. SHARON: Todo ben. E entón, aquí están algúns operadores básicos. Espero que estea familiarizado con o primeiro de catro só en xeral. Polo tanto, non hai suma, resta, multiplicación e división, e asegúrese de utilizar as teclas correctas. E despois hai tamén da Módulo, que algúns de que pode non estar moi familiarizado con. E o modulo fai é que se tomamos ese exemplo 4% 2, que leva o resto o que provocará na división. Entón, 4 dividido por 2 é 2, e non hai ningún resto. 4 divida por 3 a 1 e 1/3, e así restante 1. Así, el calcula a un. E, a continuación, o 4% 5 é a fracción 05/04, eo resto é 4. Será que isto ten sentido? OK, legal. E seguimos PEMDAS aquí tamén. Por iso, algunhas expresións booleanas. Entón vostedes viron é igual a de igual comparar, por exemplo, dous números. Entón, se é igual a 5 é igual a 5, que calcula a verdade. Asegúrese de que ten só un sinal de igual. Para non iguais, é bater ou exclamación. HANNAH: Dous sinais de igual cando fai a igualdade. SHARON: Ah, si. Asegúrese de non facer ter un signo igual. E, a continuación, para non iguais, é estrondo igual. E entón podes ollar a través de a menos que, maior que. E despois temos lóxico e e lóxico ou aquí mesmo. E o que iso fai é, se Vostede recorda no scratch cando tivo este bloque que dixo e, a continuación, vostede podería caber dúas pezas diferentes alí, que é o que esta eo que fai. E asegúrese de facer dúas ampersands. E esta clave que pode atopar ao dereito, ben debaixo do seu botón Eliminar. Pregunta? Estudante: Cal foi o [inaudível]? SHARON: OK, entón se só fai un, está comparando anacos. Entón, se lembrar do que anacos son, son 0 e 1., e así por que está comparando outra cousa. Entón imos centrar iso de momento. Jason Hirschhorn: Entón un é igual a é como asignación, non? Así como int x é igual a 4. Está dicindo que variable x é igual a 4. Entón, un é igual a cesión, pero os ands e os tubos ou as barras, así como Sharon dixo, son operadores bit a bit. Non se preocupe con iso. ALUMNO: Cando usa lóxica e e lóxico ou novo? Eu só esquecín cando fai isto. HANNAH: Claro, por iso, se quere para comprobar se dúas cousas son certas, por exemplo, digamos que eu queira dar un ollo que é un número entre 5 e 15, Eu diría que asegurarse de que o número é maior que 5. Entón, digamos que se x é maior de 5 e menos de 15. Polo tanto, a fin de que todo declaración para avaliar a realidade, precisa tanto do tipo de sub demostracións para avaliar a verdadeira. Con ou só precisa un dos dous ou ambos. ESTUDANTE: Gran, moitas grazas. SHARON: E tamén en perigo, eu son Asegúrese de en unha morea de proxectos tiña se tocar no bordo ou se tocar outra Sprite logo ir ou algo así. HANNAH: Todo ben, entón por que nós se preocupan todos estes booleanos? Temos estas estruturas que visto en raspadinhas chamado condicionais. E condicionais son nada do formar se algunha condición ou algún booleana é verdade, entón faga o código entre esas claves. Así, pode ver á dereita aquí é o bloque de borrador. Ten esa entón, e nada que vai para aquela pequena forma que parece isto-- i non sei que sería de chamar isso-- que vai ser o booleano ou condición. Entón, de novo, un booleano ou condición é nada que quere avaliar a verdadeira ou falsa. E unha vez máis, pode combinar booleanos. Pode ter, unha vez máis, x é maior a 5 e x é inferior a 15. Ou pode só ter un destes x é inferior a 5. OK, entón en C É do lado esquerdo. É só a palabra chave se. En parénteses, o condición ou a booleana. E, a continuación, o código entre estas dúas claves só pode executar, só será executado se esta condición é que booleana é certa. Será que isto ten sentido? Impresionante. Está ben. E entón, como pode vimos no scratch, nós tamén pode engadir nun outra, que é basicamente algo entre o claves baixo outra só será executado se a condición é falsa. Ten sentido? Calquera dúbida sobre estes dous? Impresionante. Legal. Entón, aquí está un exemplo rápido. Digamos que queremos determinar, con base no tempo, se hai que dicir bo día ou boa noite. Eu vou dicir se é antes de 12:00 horas, imos dicir bo día, se non, imos para dicir boa noite. E cando digo que, se non, que equivale en C para esta persoa. Entón, nós estamos indo a comprobar se o tempo militar é inferior a 0:00, dicir bo día. Se non, dicir boa noite. Estudante: Entón, nós realmente obter esta entrada para tempo militar coa secuencia de get. HANNAH: Certo. Será que algún outro lugar que tiñamos realmente Ten que proporcionar esta información. Aquí non ten ningún valor. Nunca chegou a declarar isto. Supoño que nalgún lugar por riba este programa eu declarei tempo, ou pediu tempo, ou- calquera outra cousa con ese exemplo? Impresionante. OK, agora temos ademais para que simple se o formato máis, temos dúas outras estruturas diferentes. Entón, primeiro temos a chave declaración, e é aquí a forma xeral dunha instrución switch. Ten a palabra chave cambiar o Igualmente, ten a palabra chave se. E, a continuación, unha entrada, neste caso n. Entón, iso só pode traballar con números enteiros. Así que a entrada n ten para ser un enteiro, OK? E nós estamos indo siga un destes casos dependendo do que ese valor n é. Polo tanto, neste caso, primeiro comparar n é igual a unha constante, se é, facer todo tipo de recuado aquí. Podo ligar a el, porque eu estou moi curto. Se non é igual a unha constante e no seu lugar é igual a dous constante, imos seguir este segundo bloque, e podemos facelo por tantas veces como queremos, e despois de que a inadimplência é se que non corresponde a ningún dos casos anteriores, executar este código. Todas as preguntas aquí? Este é un pouco máis complicado. Si? ESTUDANTE: Ruptura significa o que? HANNAH: Claro, entón cando entramos ese bloque, se atopamos, imos dicir, nosa n é, de feito, igual a unha constante, entramos nese bloque tras os dous puntos. Nós facemos o que está esta liña de comentar, e despois partimos, o que significa que saír desta instrución switch enteiramente. ALUMNO: Aceptar. HANNAH: Mm-hm? ALUMNO: É a retirada necesario, ou necesitas [inaudível]? HANNAH: Claro. Entón, como sempre, a retirada non é estrictamente necesario. O ordenador non fai importa se recuar. Nós, como persoas que son ler o seu código, facer atención. Por iso, é moito máis fácil de ollar para a pantalla e ver, oh, eu sei o que pasa cando n é igual a unha constante. Se eu tivese guións aleatorios, eu Non sería capaz de dicir tan facilmente. Si? Estudante: Entón, se quería que un usuario escoller unha das opcións que temos na lista, sería usan, creo, [inaudível] pero obter un número enteiro de eles e poñer isto en n? HANNAH: Exactamente. Entón, digamos que queriamos para comprobar o que enteiro. Nós dixo oh, escriba un número enteiro entre 0 e 5, digamos. Poderiamos preguntar por que n, para pedir que o valor, e, entón, cada un destes casos. E, de novo, iso é algo que podería moi facilmente facer que as demostracións, non? Poderiamos ter igual ao caso un, igual ao caso dous, se é o mesmo que o caso de tres, así por diante e así por diante. Este é un pouco máis rápido e un pouco máis limpo. É unha especie de só unha estrutura agradable agora. ESTUDANTE: Máis rápido como na escrita? Ou será que el corre o ordenador un pouco máis rápido? HANNAH: É executado un pouco máis rápido. Si? Estudante: Entón, o dúo trazo é só un comentario ou- HANNAH: Oh, eu sinto moito. Non apuntar isto. OK, se ten que //, é un comentario. Só // é un comentario. Así, calquera xa que o ordenador ve que, vai dicir OK, todo o que se segue iso, eu só vou ignorar. Vou finxir que nunca escribiu isto. Estudante: Entón, iso [inaudível]. HANNAH: Este non fai absolutamente nada. Pero se eu escribín algo como na primeiro comentario que escribín no canto printf dicir parabéns ingresados unha constante, que sería algo. Si? Estudante: Entón, na vida real, o caso sería simplemente ser un número e logo, [inaudível] sería outro enteiro. HANNAH: Exactamente. Estudante: E ten que as elipses? HANNAH: Sentímolo? ALUMNO: Precisa que? HANNAH: Oh, non. Sinto moito. Isto foi só para indicar que se pode ir ao maior número de casos, como quere. Imos facer un exemplo concreto de que pode facer as cousas un pouco máis claras. OK, entón imos dicir que eu digo, OK, dáme un enteiro n que representa un número de clases, especialmente unha clase de ciencia da computación número. Entón, se me der 50, Eu vou dicir óptimo. CS50 é unha introdución ao ordenador ciencia, e entón eu vou romper. Entón isto significa que eu ir de esta declaración toda rede, entón agora eu son feito de realizar o código, OK? Se me deu, no canto de 51, eu imprimir a segunda instrución. E entón se me deu un pouco de número que non era 50 ou 51, Eu vou dicir moito, eu son non familiarizados con esta clase. Si? ALUMNO: Non ten pausa. HANNAH: Me desculpe, eu non teño tempo? ESTUDANTE: E se. HANNAH: Oh, o que se non ten tempo? Excelente pregunta. Entón, o que acontecería se entrar, e ía comprobar que eu son igual a 50? E digamos que, si, era igual a 50, que ía imprimir o comunicado. E entón ía continuar a execución, entón diría que eu son igual a 51? E ía pasar e ir en cada caso como este? Si? ALUMNO: É a liña estándar análogo a dicir máis? HANNAH: Exactamente. Moi bo. É como o tipo de captura todo. Estudante: Entón, se non ten descanso e logo, unha das declaracións de caso era certo, e entón el referido aumento de n por 1, entón sería automaticamente facer a próxima. Ía comprobar caso 51, e logo amosar iso tamén? HANNAH: Si, eu creo que ía funcionar. Así, pode tipo de ficar confuso, entón unha ruptura é bo ter. Si? ALUMNO: Sen pausa el faría o estándar? HANNAH: Esta é unha boa pregunta. Jason Hirschhorn: Coido que só corre. Entón, se non ten break-- así digamos que eu fixen 50 e comprobado 50, e que iría imprimir iso. Imprimir CS50 como introdución a ciencia da computación. Non ten pausa, debe ir e siga indo ata que chega un descanso. Entón, se non hai ningunha ruptura, vai continuar. Vai para imprimir o resto para fóra. HANNAH: Entón eu creo que sería estar incluídos o estándar. Jason Hirschhorn: Yeah. HANNAH: Boa pregunta. Si? ALUMNO: É caso considerado unha función? HANNAH: Eu sinto moito? ALUMNO: É caso considerado unha función? HANNAH: É caso considerado unha función. Eu dubidaría en dicir que si. Jason Hirschhorn: Entón normalmente cando ve funcións estarán en claves. Así, por exemplo, cando mira no seu código, por exemplo, de inicio. Foi principais paréntese aberta, entón baleiro, paren preto. Funcións no pasado: son, basicamente, sempre verás parénteses. Así, no caso de se caso non ten parénteses, esta é a súa pista de que iso non é unha función. Pero non é. Si? Estudante: Entón fai iso facer cambiar unha función? HANNAH: O que fai cambiar unha función. ALUMNO: No sentido que poñer algo dentro, dálle un dos casos. Jason Hirschhorn: I non chamaría tanto dunha función. Non todo con parénteses é unha función. Quero dicir que é unha pista que é unha función. Eu non diría que é unha chave función porque non é realmente retornando nada. Vai entrar niso máis. HANNAH: Si, só penso niso como unha estrutura if. ALUMNO: Vostede pode facer niño iso nunha estrutura if? HANNAH: Si, niño practicamente calquera cousa. ALUMNO: Barry dixo que as citas son máis ou menos como o mesmo. Así, pode substituír as citas con máis? HANNAH: Non, neste particular, estrutura, porque a chave declaración está esperando a palabra estándar. O ordenador sabe que o defecto significa algo especial, que significa a captura todo. Algo sobre iso. Temos máis un para pasar. Si? Estudante: [inaudível]. HANNAH: Diferenza entre mediante un punto e coma e dous puntos. Así, un punto e coma sempre a dicir a ordenador que estou feito con esta liña. Pode ir adiante e executalo. Esta é unha liña completa. Un colonos vai, neste caso, trae-lo para un determinado bloque. Entón, punto e coma son usar sempre para rematar liñas. Colón utilízanse para unha variedade de outros casos. ALUMNO: Este é o equivalente a só dicindo que se n é igual a 50, entón bla bla bla. HANNAH: Mm-hm. ALUMNO: É o mesmo [inaudível]. HANNAH: Exactamente. E nós dixemos que corre un pouco máis rápido. Se non tivésemos o intervalo, sería como se si, si. Se temos a ruptura, é como se else if else if else if. Legal? Jason Hirschhorn: Entón, cando codificación, pode simplemente usar máis, pero creo que o ano pasado sobre a nós cuestionario tivo-los a escribir unha declaración switch, así só no caso. HANNAH: Pero definitivamente nada de malo. Non estamos esperando que se preocupe sobre rendemento cousas malucas. Así, se o resto é totalmente ben. Estes son só bo cousas para estar en conta. E aquí está o noso último que tipo de se enmarcan nesta categoría condicional. Temos algo do condición xeral ?, e, a continuación, un pequeno anaco de código que pasa se a condición é verdadeira. E, a continuación, do colon, algo peza de código que executa a condición é falso, punto e coma. Estamos a facer que a liña. Entón sintaticamente é algo feo. Nós imos pasar por un exemplo, eu creo que é máis clara. Por iso, queremos asignar o profesor cadea a un destes dous valores, tanto David Malan ou non David Malan, OK? Entón, ten que estar familiarizado coa corda, profesor =. Nós imos asignar unha cadea co profesor variable chamada. Agora queremos comprobar un especial condición. Neste caso, a nosa condición é class_num = = 50. E agora pode ser un bo momento para ligar cando temos profesor de corda =, Isto é un sinal de igual. Isto é atribución. Considerando que, class_num = = 50, que son dous signos de igual. Esta é unha comprobación da calidade. Entón, imos dicir que é o número de clase igual a 50? De ser así, asignar Profesor David Malan. Se non, asignar o profesor para non David Malan. Calquera dúbida alí? De novo, iso é só algo que é bo saber. Podes facelo con outra persoa se. Un problema boas prácticas podería ser a de cando vai a casa, non exactamente o mesmo condicional en outra forma se, porque pode facelo. Todas as preguntas aquí? Todo ben, eu creo que somos pasará a loops. Impresionante. SHARON: OK, imos falar sobre mentres circula. Entón, primeiro á esquerda ve aquí- Aceptar que di, mentres, ao mesmo tempo (condición). E entón facer isso- podemos cambiar isto? Jason Hirschhorn: É cortado. SHARON: OK, e despois hai son tamén claves. Entón, finxir que rizado claves están alí enriba e baixo a facelo de novo e de novo. Polo tanto, se a condición naqueles parénteses é valorada como certa, entón ten que seguir facendo o que está no loop while. Así, por exemplo, poderiamos facer un problema de práctica. Está a usar dous brincos agora, entón imos dicir que se está a usar polo menos un audición, bata palmas. Entón, se nós estamos indo a ir por iso, estamos going-- [Aplauso] Non? E eu estou a levar posto un, e- Aceptar. Si. Non está a usar brincos máis, polo tanto, non máis. OK, entón, logo que é cando ía parar. E iso pode dicir é equivalente a uns variables. Digamos que ten un número variable de xogar. Así, mentres que o número de brincos é maior ou igual a 1, bater palmas. E, despois de bater palmas mans, xogar decrecemento. Fai como xogar, menos un. Así, diminuír o número de xogar, e logo, vostede pode percorrer o loop while dúas veces. E se a condición é sempre true-- por iso, se, por exemplo, 2 = = 2, e 2 é sempre igual a 2, non? Entón sempre facer algo alí dentro, e iso é equivalente a case a sempre loop que tivemos no scratch. Si? Estudante: son os dous lados só diferentes formas de escribir un loop while? SHARON: Entón estamos enfocados sobre este primeiro. E, a continuación, entón imos comparar lo con un loop Do While. Entón, eles están un pouco diferente. OK, entón imos dicir que a condición é aínda mentres está a usar polo menos un xogar, e non está a usar calquera pendentes agora. E digamos que facer e aínda aplaudir mentres Está a usar polo menos un brinco. O que debe ocorrer? [Claps] Uh oh, xente. OK, entón debería aplaudir xa porque basicamente pasar por primeira parte do código. Vostede fai iso, non importa o que, e entón ve a condición, mentres, e volver a este ciclo se é verdade. Será que isto ten sentido? ALUMNO: Sempre facelo por primeira vez. SHARON: Sempre facelo de primeira vez con independencia de ou non esa condición é certa ou non. Jason Hirschhorn: cando facer Pensas que podería usar isto? Cando ten sentido usar isto? HANNAH: Si? Estudante: [inaudível]. Jason Hirschhorn: Certo. HANNAH: Moi bo. Jason Hirschhorn: Entón cando solicitar un usuario, vai querer sempre para solicitar un usuario dunha vez. Sempre vai querer para solicitar ao usuario unha vez. Entón, en vez de poñer en un loop while, ten poñer en facer mentres loop, porque é sempre vai facelo unha vez. Se eles dan-lle o resposta correcta, está feito. Se non o fan, entón re-leva-los. SHARON: Todo ben, para loops. Entón o Scratch tivemos bloques de repetición. Entón, nós queriamos repetir algo, digamos, sete veces. Entón, nós só dixo repita sete, e dicir que eu estou aquí para axudar a Brancaneves! En C, temos a loops se quero pasar por algo un número específico de veces. Digamos que se inicializar os ananos variables e facer sure-- así o primeiro bloque alí mesmo antes da primeira punto e coma, inicializamos nosa variable a, e nós configuralo para 0. E a nosa variable existe é un número enteiro, int. E o nome da variable é ananos, ananos e montar a 0. E a segunda parte entre o dous puntos e comas é a nosa condición. E por iso, mentres os ananos é menor que sete, imos seguir pasando por iso para loop. E, a continuación, a última parte é o que facer o que facemos ao final deste loop? ananos ++, e iso significa que incrementar ananos por un de cada vez. Entón, o que vai pasar aquí? Entón, primeiro imos pasar. Temos ananos como 0, e despois imos para imprimir Estou aquí para axudar a Brancaneves! E entón ananos vai aumentar porque dixemos ananos ++. Ananos será 1. E entón nós compare-- ananos é 1. Nós comparalos-lo cos ananos é menos que 7? Si. Vou pasar por iso de novo. Estou aquí para axudar a Brancaneves! E entón se fai ananos 2, e entón comparalos-lo. É de 2 a menos que 7? Si. Nós imos seguir pasando. E nós estamos indo a ir por esas sete. Entón, ao final, imos ter ananos = 0 impresión que son aquí para axudar a Brancaneves! ananos é igual a 1, 2, 3, 4, 5, e 6. Lembre que o índice 0. Entón, imos comezar con 0. Si? Estudante: Entón, iso é diferente do que o do porque esta non imprime fóra inicialmente en primeiro lugar. Así, é posible seguir o mesmo. Podería facelo tamén co loop tarefas? Como o mesmo proceso. A condición é ananos menos de 7 ou calquera outra cousa. Resposta é inferior a 7. SHARON: Entón vostede podería tecnicamente. Entón, se nós volver a-- súa fala sobre o loop while, non? Así, o ciclo Do While é lixeiramente diferente porque nós garante polo menos xa que nós imos pasar por iso, entón esa é a diferenza. Pero, co loop while que puidemos ananos é dicir mentres que menos do 7, facelo, e despois incrementar ananos por un. E entón temos que arrincar ananos antes desta declaración enteiro que é igual a 0. Entón, si, poderiamos facelo con iso. Mm-hm? ALUMNO: Pode voltar [inaudível]? SHARON: Para loop? Estudante: Si, así cos ananos ++, Parece que iso é o que fai despois xa correu outros medios. SHARON: Correcto. ALUMNO: Podería só non ten iso e poñer ele-- SHARON: Vostede podía. Estudante: Entón é [inaudível] logo imprimir na seguinte liña de código. SHARON: Si, pode poñer-lo alí. Pero entón faría simplemente deixe que baleiro. Jason Hirschhorn: Vd Debe de colonos semi aínda. SHARON: Parece un pouco raro, pero pode facelo tecnicamente. Tecnicamente. Por favor, non. Si? Estudante: Existe un alternativas para ++? Hai máis [inaudível] algo? SHARON: Tecnicamente É ananos. Un sinal de xeito que imos configuralo para ananos e 1. Entón, tecnicamente iso é o que ananos ++ medios. Será que isto ten sentido? Estudante: Si, pero son Existen alternativas? Como se ever SHARON: Si, pode facer ananos - -. Estudante: [inaudível]. SHARON: Si, podería facer unha serie de cousas. HANNAH: E podería incrementar por 2. Pode incrementar por 3. O que vai estar cambiando, acabará por facer a condición. Estudante: Entón, se quería incrementar por 2, como escribiría isto? HANNAH: Podería escribir dwarves-- podería escribir esa cousa toda para fóra. ananos ananos = + 2. Ou un pouco de taquigrafia. Eu só vou escribir + é igual a 2. ALUMNO: OK, e ía escribir que dereito onde ananos ++ está aí. HANNAH: Exactamente. SHARON: Correcto. Houbo outra pregunta? Si? Estudante: [inaudível] ananos ++? SHARON: Entón don't-- Jason Hirschhorn: Si, non ten el alí. [Inaudível] fin. Entón fai [inaudível] queridos, porque está tipo de dividir o arranque, condición, e o cambio. Ao final, non del. SHARON: Teña en conta que Non é necesario o punto e coma despois de todo o enteiro para loop. ESTUDANTE: Como comezar con un número inicial de negativo, por exemplo? SHARON: Pode arrincar ananos igual a 2 negativo. ALUMNO: Simplemente non Dash 2? SHARON: Si, así que o sinal negativo, trazo 2. ALUMNO: É [inaudível] para arrincar como ananos [inaudível]? SHARON: Si. Entón, se tivésemos ananos só inicializar anteriormente, pode facer punto e coma ananos int, e entón non podemos facer ananos definir que igual a 0. ESTUDANTE: Poderiamos facelo ao principio o programa dicindo int ananos = 0, e, a continuación, apenas-- SHARON: Só non have-- así habería un espazo de novo, pero aínda que de un punto e coma. Si. Mm-hm? ALUMNO: Será que este código dicir o que o valor de enanos é despois. Se preguntar a ela despois de todo isto é feito para imprimir o valor de ananos. SHARON: Podería pedir para el facelo. ALUMNO: Aceptar. SHARON: Pero faría Ten que preguntar isto para facelo. Non fai isto por ti. Estou con medo de poñer os meus pendentes de volta. Facelo ao final para os aplausos. Só xogar. Jason Hirschhorn: Entón, iso é o mesmo. Entón arrincar na parte superior. Condición, impresión, cambio. Polo tanto, este é exactamente o mesmo que que, se calquera pode ver iso. ALUMNO: Por que non ten o punto e coma na primeira liña? SHARON: Onde? ALUMNO: Despois da primeira liña. SHARON: Tras a 4 nos parénteses? Porque queremos ir A través neste loop. E se der un ollo a lazos xeral, non teñen punto e coma. Non é práctico. Será que somos bos? Só unha pregunta, máis dous. Si? ESTUDANTE: Isto pode ser algo avanzado, pero facer ananos teñen unha diferente [inaudível] desde unha variable [inaudível]. SHARON: Moi bo. Estudante: [inaudível]. SHARON: Si, é. O que? Jason Hirschhorn: Si, por iso que fai. Así, normalmente, o ámbito de aplicación do algo está nas chaves. Entón alcance sempre vai estar nas chaves, pero que non faría moito sentido para o loop porque inicializar ananos en que chaveta. Entón, normalmente o ámbito de ananos, que variable non se estendería alén diso. Este é un caso especial aínda. Entón arrinque-lo dentro destes parénteses, e entón tes o alcance máis tarde. Se tan especial. Eles non deberían ter iso, e que foi-- Isto ten sentido? Estudante: Non. Jason Hirschhorn: Podo pasar por iso. Entón, o que aínda está confuso sobre? ESTUDANTE: Como en que pode usar dwarves-- ti pode, obviamente, usar ananos [inaudível] no exterior da fórmula demasiado? Jason Hirschhorn: Non, non. Así, o marco do que é só dentro do claves para o loop for, si. SHARON: Pero se inicializar ananos fóra do loop for, a continuación, podes usalo en outro lugar Hai unha pregunta? Non? Está ben. Entón nós falamos un pouco sobre nidificación loops ou condicionais de nidificación, se declaracións. Entón aquí está un exemplo de onde puidésemos niño dun lazo for. Imos dicir que estabamos a imprimir esta táboa de x é aquí mesmo. Podemos querer a-- primeiro se nós simplemente non mirar o código e nós só pensar niso, nós quero pasar por cada liña e imprimir cada columna, non? Será que isto ten sentido? Está ben. Entón, aquí estamos atravesando cada liña para cada liña, basicamente, e hai tres liñas. E, a continuación, dentro de cada liña para cada columna, e hai catro columnas, imprimir un x. por iso. Cando liña é 0 e columna é 0, imos imprimir este x. E, entón, seguir a través do lazo columna. Cola aínda é 0, pero é unha columna. E, a continuación, é columna 2, e, a continuación, é columna 3. E, entón, saír do que lacete porque entón en columna xa non é inferior a 4. E, entón, imprimir unha nova liña, e imos para a nova liña. E entón pasamos á seguinte liña e liña increméntase, e pasar por iso de novo. Será que isto ten sentido? Si? Estudante: Entón, para niño [inaudível] é só poñelas dentro do loop? SHARON: medios de asentamento Así que nós ten un loop dentro dun loop for, como Inception. ALUMNO: Non precisa de un rotación especial ou algo? Vostede se ater só á dereita para dentro del? SHARON: Correcto. Si? Estudante: Pode ser [inaudível], pero parece que hai un espazo extra entre todo x. Non sei se that's-- Se isto eran para realmente facer o programa, que faría algo así? SHARON: Entón non. Que estaba presionando Enter. Iso era malo da nosa parte. Desculparse. HANNAH: Como cambiaría esta programa, se fixo unha liña extra? Estudante: [inaudível]. SHARON: Bo traballo. ALUMNO: Tamén pode imprimir o mesmo cousa, alternando en torno da columna, non? SHARON: Hm? Estudante: Entón, para imprimir o seu pequeno xxx, a primeira liña pode dicir de impresión, e en vez de dicir liña, di columna. SHARON: Entón pode cambiar os nomes das variables para facelo. É iso que está dicindo? Estudante: Non, eu son só dicindo isso-- así que é liñas de impresión primeira e logo a impresión de columnas. Tamén pode imprimir columnas primeira e logo as liñas para obter o mesmo esquema? SHARON: Podería, pero entón tería que ter coidado de onde pór a nova liña. E como ir cara atrás? Jason Hirschhorn: Si só cambie e os valores eran diferentes, en vez de ter four-- o que é? Tres por catro. Eu Vostede tería catro liñas e tres columnas. Será que isto ten sentido? Estudante: Si. Jason Hirschhorn: Entón si, podería facelo. Si, definitivamente. SHARON: Pero iso sería literalmente só interrupción, os nomes das variables. Boa? Está ben. Todo ben, P definido. OK, entón a primeira parte dela vai estar facendo iso, Mario. Só xogar. É máis como este. E así, cando nós só mirou para o aniñados para loops, facendo que a táboa, pense sobre como pode ser capaz de imprimir estas hashtags deste xeito. E entón aquí como imprimir esta aquí mesmo, neste espazo aberto. Estudante: [inaudível]. SHARON: Si, só imprimir un espazo. OK, entón, simplemente pensar niso. HANNAH: E entón o mesmo parte do conxunto de problemas é un programa chamado greedy.c, para que estea Vai querer pensar sobre condicionais e asegurarse de que pode facer o cambio adecuada. E un pequeno aviso que temos para ti é ter coidado con valores de punto flotante. Se iso non significa absolutamente nada para ti, que vai ser cuberto en charla esta semana e tamén en [inaudível] percorrer, que vostedes van aprender a amor nos conxuntos de problemas. Unha cousa que eu realmente suxerir, especialmente con Mario.c, cando está facendo o problema definido, se queda preso, comezar por facelo no papel. Gravala-lo para fóra, e, de feito, sentir-se alí e finxir ser o ordenador, e dirán through-- Eu fose o ordenador, como é que eu sigo este lazo for través? Como diría o meu variables no cambio para o lazo? Facelo, en papel fai 10 veces máis fácil cando vai para sentar fronte ao ordenador. Entón, só o meu pequeno plug. SHARON: E tampouco creo que ten que codificar todo dunha vez. Asegúrese de tomar un proceso iterativo. Fai un pouco, impresión a fóra, ver o que acontece. Ás veces é un pouco de intento e erro. E vir para o horario de expediente. Super divertido. Jason Hirschhorn: Entón, algunha dúbida? Todos os mozos certos, que foi a súa primeira sección. HANNAH: Grazas por teren benvida. Jason Hirschhorn: Grazas por vir. SHARON: Grazas. [Aplausos]