ALLISON BUCHHOLTZ-AU: Ei, todo o mundo.
Benvido á sección.
Hoxe é só vai ser todo o cuestionario revisión para a súa proba o mércores.
Espero que todo o mundo se lembra que eles teñen un quiz o mércores.
E se non o fixo, así, agora que foi lembrado.
Entón, mércores, asegúrese de mostrar-se para a clase ou outras aloxamentos como
necesario.
Vostedes están indo a ser incrible.
Será xenial.
E eu vou facer todo o que eu poida para axudar a se preparar hoxe ao seu cuestionario
agora.
E tamén no caso de que non o sei, existe un campo de sesión de revisión ampla
hoxe, ás 07:00, en Laboratorios Noroeste B103 cuarto.
Que me pode ver de novo a un encore como Vou levar parte desa sesión de revisión
tamén.
Entón, se non pode obter o suficiente de min Agora, pode vir de novo esta noite.
>> Todos, entón primeiro cousas certas primeiro.
Só algúns consellos do quiz antes realmente mergullo comentarios.
Así como ocorre con calquera exame, a práctica vai certamente axudar.
Existen probas do pasado seis ou sete anos alí,
de xeito que é unha morea de práctica material para que vostedes teñen.
E, de feito, hoxe é realmente só estar indo sobre calquera temas
que vostedes teñen preguntas sobre como ben como traballar a través de problemas prácticos
do cuestionario cero.
Entón, eu vou vomitar cuestionario de cero desde o ano pasado aquí,
e podemos traballar con todos os problemas que vostedes lles gustaría.
>> Así practicando.
Vai comezar a facelo hoxe.
Código no papel.
Entón, si, se todos realmente pode saír
papel, que vai ser gran, porque non é
terá o seu ordenador na exame e escribindo código manualmente
moitas veces é moito máis difícil do que podería esperar.
Está afeito só velo e escriba-lo,
e ten o seu compilador para axudar cando ten erros,
pero non pode iso no exame.
Entón, é realmente importante para realmente ser capaz de escribir o código,
e que a memoria muscular de facer todo na man realmente pode axudar.
>> Entón, nós estamos quedando un pouco preto.
É luns.
Seu exame é o mércores.
Pero se ten tempo, asumir definitivamente unha
dos exames do ano pasado ou o ano antes baixo a restrición de tempo
dunha hora e media.
Só bater a fóra unha hora e unha metade do tempo,
e sentir-se para abaixo, e só traballar cos problemas
como se fose verdade toma-lo, porque un
das maiores cousas que escoitamos sobre as probas é que son moi longo.
É unha gran cantidade de material.
Hai unha morea de preguntas, ea maioría das persoas pode non rematar.
Sei que eu totalmente non rematou meus probas cando tirei a clase.
>> Na mesma nota, como unha menor sección cómodo,
entender que este curso se pretende para atender a persoas de todos os niveis.
Toda a razón que temos que dividir menos cómodo, nalgún lugar entre,
e é máis cómodo para tipo de facelo máis xusto.
E se é menos cómodo, é non é necesario por si para obter todo.
Como se está a recibir todo, probablemente
estar na sección máis cómodo.
Entón, obviamente, non bater-vos moi difícil se non pode rematar o exame.
Tire iso de min, eu non fixen iso.
Eu aínda son un concentrador.
Eu aínda estou axudando impartición do curso.
Vai estar ben.
Todo correcto.
E, finalmente, durmir un pouco.
Obviamente, con calquera exame sempre dicimos iso.
Conxestión na noite anterior e non pode durmir
fai não-- quizais que funciona para ti, vai a el.
Pero, para a gran maioría de persoas, quedando un pouco de sono,
deixar o seu descanso do cerebro e recuperar antes de ir para o exame
realmente vai axudar.
Tamén haberá case certamente doces no exame,
entón ten que mirar para adiante.
Vostedes van facer grande.
El vai estar ben.
E agora a próxima hora e media eu vai prepara-lo da mellor maneira que eu poida.
>> Entón, eu teño diapositivas basicamente todas as seccións ata agora.
Non vou pasar por todos eles, porque iso non é
viable nunha hora e media, así como traballar a través de problemas prácticos.
Entón, en vez Eu teño unha lista de temas.
Estas son todas as cousas que puidésemos interrogar sobre si.
Se hai unha cousa que realmente salta para fóra
que pretende pasar por riba, que quere que eu vaia máis conceptualmente,
Podo tentar dar unha visión xeral alí.
Ou se quere ir á dereita para facendo práctica problemas xuntos,
podemos facelo.
Correspóndelle a vós.
Non hai que moitos de vós.
Entón, é todo o que vostedes quere facer.
Quero ser o máis útil para vós.
Entón eu vou deixar só ollar.
>> Audiencia: Unha cousa é a gráfica que mantemos
dicindo sobre a pila eo heap.
Só a idea detrás que e que iso significa.
ALLISON BUCHHOLTZ-AU: Si, Aceptar.
Este é todo o camiño no final, entón déixeme percorrer.
>> Audiencia: Non temos a facelo agora, pero o que quere.
>> ALLISON BUCHHOLTZ-AU: Houbo anything-- este.
É este tipo de fuzzy para a xente?
Audiencia: Si, eu estou de acordo.
E podemos tamén facer buffer overflow?
ALLISON BUCHHOLTZ-AU: Buffer overflow?
Está ben.
Entón estourido de buffer está moi fácil só para falar.
É basicamente buffers pensa sobre algunha memoria matriz que ten, non?
Nós normalmente falamos de buffer overflow cando
non está comprobando o como o usuario está poñendo en, non?
E a idea de con estourido de buffer está
están poñendo en moi moitos datos para o espazo
que teña asignado para eles, non?
>> Entón, se di, dar me algunha mensaxe, estamos
asumindo que van dar nos unha mensaxe lonxitude razoable.
Quizais liñas dunha parella, outros enfeites.
Entón, nós non comprobar.
Pola contra, alimentarnos nun todo libro que é unha mensaxe,
e reborda a cantidade de espazo que temos asignado para iso.
E o que pasa é que podería substituír lugares que non se quere.
>> Entón eu sei que o profesor dixo Malan algo sobre ataques de estourido de buffer.
Entón é aí que a entrada de vontade do usuario algúns enorme cantidade de datos na esperanza
que substitúe pasado o final do seu buffer
e substitúe something-- pregúntome Eu temos esas láminas aquí.
Non creo que temos estes diapositivas en aquí.
Pero, basicamente, el substitúe algunha porción de memoria
que permítelle o acceso ás partes do seu ordenador
que non faría normalmente ten acceso.
>> Cousa maior con buffer overflow é só
a entender que pasa cando non está
comprobar o que o seu usuario está poñendo en.
Cando non son o tipo de salvagarda contra iso.
E na súa forma máis simple cousa, é só o usuario
introducindo unha enorme cantidade de datos no intento
para substituír algunha seguridade parte da súa memoria.
Isto é todo o que é.
>> Polo tanto, este aquí, pila e heap.
Basicamente todo isto é só unha representación de memoria
e onde as cousas son gardadas.
Isto é realmente unha especie de todo o que precisa saber.
As maiores cousas que ten que saber son
isso-- déixeme ver se hai unha melhor-- aquí.
Polo tanto, esta é a pila aquí.
>> Entón pila ten que ver coa todas as súas funcións
que está chamando a calquera momento.
E o que é importante lembrar saíndo da semana pasada con malloc
é que realmente non ten control necesario sobre el.
Todo depende de cando certa funcións están sendo executados.
E cando eles están executando, eles ten o que son chamados de cadros de pila
que ir ata aquí.
>> Por iso, todo tipo de pasa sen participación real desde ti.
Vostede escribe o seu programa, e deixalo correr,
e tipo de pila leva coidar de si mesmo como necesita.
Entón, se o principal que está chamando cubo, que será pasado para acá.
Vai crear un cadro.
Pero non hai nada que explicitamente facer para crear ese marco de pila diferente
escribir a función, para comezar, OK?
>> ¿Que é unha especie de baixo o control é a pila con malloc.
Así, sempre que malloc algo, está tomando a memoria da pila.
E esa é a memoria que teñen, por falta dunha palabra mellor,
control explícito sobre, pois lembre-se con malloc
é basicamente alí ata que diga o contrario.
Para aqueles de vostedes que sección asistiu a semana pasada,
está alí ata que diga a el para ir.
El vai estar alí, a menos se non, non dixen.
Así, a pila é só algo pode pensar en como a memoria
que ten control sobre.
E estes son só o dúas grandes cousas distintas.
>> Fóra iso, non debe ter preocuparse moito sobre pila e heap
preguntas ou tipicamente máis xusto se ten parámetros locais
ou unha función sería na pila ou heap.
Obviamente, neste caso sería a pila.
Se está mallocing algo, onde é que vén?
O heap.
Se ollar para probas prácticos, aqueles son xeralmente do tipo de preguntas
que teñen.
>> Non se preocupe moito sobre iso.
Entrar en máis explicitamente sobre pila e heap
máis tarde ou noutras clases de CS.
Entón, só tes que ter unha especie de idea xeral do que iso é
vai ser bo, que eu só unha especie de pasou.
Outros temas?
Si?
>> Audiencia: Pode pasar por riba de punteiros de novo moi rápido?
ALLISON BUCHHOLTZ-AU: Punteiros?
Queres conceptual Resumo dos punteiros
ou practica con punteiros?
Audiencia: Así como a sintaxe.
ALLISON BUCHHOLTZ-AU: A sintaxe?
Si.
OK, estamos chegando alí.
Si, por iso esta é só unha especie de algo cando ten unha función recursiva,
cada vez que a función recursiva é chamado, el só engade outro cadro de pila.
Practicamente un exemplo de como realmente non
ten control sobre o cadros na súa stack.
>> OK, punteiros.
Todo ben, entón a creación de punteiros.
Lembre, é só escribir estrela.
Así, calquera tipo de datos que vai estar apuntando.
Polo tanto, este sería un punteiro para un int.
Este sería un punteiro para un char.
Este sería un punteiro dun flotador.
Por iso é basicamente o que quere queres que sexa apuntando,
estrela é como declarar o punteiro, OK?
>> Pero, entón, obviamente, está un pouco complicado cando tes pointer
ou o que quere que ten estrela.
Así, a gran diferenza é cando está declaring--
polo que temos some-- así iso leva algún int estrela.
Polo tanto, este é un punteiro chama de x para un int, non?
Entón recorda que provocará É esta chama o sistema x.
E iso vai ten algún enderezo, non?
Entón imos só dicir que este é o noso enderezo.
Punteiros soster enderezos.
Entón, o que iso di é que, neste localización, estamos almacenando un int.
>> Así, outra forma, podemos pensar en dicir que este é un int.
Nós realmente non temos asignado a nada aínda, pero é só un int.
Entón o que podemos facer é se nós protagonizar x é igual a 5, tanto se fai un 5, OK?
Isto di para ir a calquera x é apuntando, entón vai a esta dirección
e facelo igual a 5.
Entón imos asignar 5 a esta dirección, non?
>> E entón, se o fas, iso dános a dirección de.
Este é o enderezo do operador.
Entón, cal é a dirección de x?
Non sabemos.
Non lle é asignado un enderezo.
Poderiamos dicir que é some-- agora demos que un enderezo, de xeito que a dirección é 4.
E, de feito, se pasar por algo así, o tipo do que fixemos.
Entón, traballar a través de aquí- eu atopar axuda se aproveitar os punteiros.
Se está no seu exame, eu Recomendo caixas de deseño.
>> Polo tanto, este primeiro, int x é igual a 5.
Isto só significa que temos algunha poñer na memoria que é 5, non?
E a nosa mesa aquí nos di que é o enderezo 0x04.
E entón creamos algúns punteiro.
Entón, imos decompô-lo un de cada vez.
Entón iso crea uns caixa para un int, non?
Vai soster algún enderezo dunha lo.
Polo tanto, este é un punteiro.
E este giz é realmente pequena.
Polo tanto, temos algúns punteiro aquí.
E a nosa mesa dinos que é a dirección é 0x08.
Legal.
E estamos atribuíndo Lo ao enderezo de x.
>> Lembre, os punteiros soster enderezos, OK?
Polo tanto, se queremos manter x, temos usar o operador de enderezo, que
é o comercial, para obter o enderezo de x, que neste caso, 0x04.
E entón, se temos algunha copia int, iso só
crea algunha outra caixa que ten unha copia int chamado.
E se nós atribuílo la a isto-- polo que este é referencia a el.
Entón el di que quere ir punteiro enderezo detén.
Punteiro ocupa este enderezo, entón nós iríamos ata aquí,
e dicimos: OK, o que está nel?
É 5.
Así, torna-se copia 5.
Ten sentido?
>> E se eu intentase asignar iso só punteiro.
O que fai punteiro realmente iguais?
Sería só o que punteiro contén, non?
E entón o que se eu fixese iso?
Que copia ser agora?
>> Audiencia: 0x08.
ALLISON BUCHHOLTZ-AU: Si, o dirección do noso punteiro.
Calquera parte que que ten que ser re-explica?
Legal.
Hai sempre un moi problema diversión nun cuestionario
que podemos sobre esta dálle máis práctica.
Os mozos da semana pasada pode dicirlle que non era tan malo así.
Temos a través dun todo gráfico, e todos fixeron grande.
>> OK, entón iso é vista xeral de sintaxe de punteiros.
Maior cousa é entender como para crealos, facéndoo referenciamento,
e enderezo, OK?
Legal.
Outros temas antes mergullamos en práctica.
Ademais, se estamos pasando por os problemas de práctica
e hai algo que quere un reciclaxe, podemos facelo tamén.
Ten algo?
>> Audiencia: Estruturas e listas ligadas.
ALLISON BUCHHOLTZ-AU: structs e listas ligadas, Aceptar.
Entón estruturas.
Nós, en realidade, están indo sobre iso esta noite tamén.
OK, entón estruturas.
Estruturas son, basicamente, só un xeito para que manteña
varios valores de diferentes tipos.
Así, cunha matriz estamos contraeu a un tipo de datos.
A nosa matriz ou ten que ser só números, ou ser só caracteres, ou ser só Carrozas.
>> Pero quizais ten que conter máis do que iso.
Quizais ten que hold-- se está falando dun alumno,
terá a súa casa, a súa Número de identificación, a súa idade, onde moran,
non?
E todos os que son diferentes tipos de tipos.
Entón non pode almacenar todos aqueles nunha matriz.
>> Entón, o que podes facer é vostede pode crear un struct, que
pode pensar que o seu propio tipo de datos persoais.
Entón, en vez de só ter ints e no canto de só ter Carrozas,
pode ter un alumno tipo que ten todos eses campos na mesma.
Entón, a nosa forma de arrincar nosas estruturas é-- realmente
desde a miña escrita é terrible, nós van facer a transición á dixitación.
Woo.
>> OK, por iso, se queremos crear un struct-- Eu estou indo só para el aquí.
Desconsidere o principal en todo o que que usaremos máis tarde.
Así, a forma que quere facer é con typedef struct.
E imos chamar este alumno porque iso é o que eu estaba a usar.
OK, entón typedef significa que está a definición dun novo tipo, OK?
Hai matices en cando fai só un struct contra un struct typedef.
Para todas as intencións e propósitos, vostedes son só
vai asumir que están aproximadamente o mesmo e só
usar typedef struct para agora.
El vai facer moito máis aparente na súa próxima P definir o que esas diferenzas son,
pero eu non creo que precisa se preocupar con iso agora.
Prefiro moito máis sabe como crear un,
acceder a ela, e asignar [? valor. ?]
>> Un novo tipo de estrutura, e estamos chamando-o de estudante.
Entón, despois de que rematar de crear este, para todos os efectos,
vai ter un tipo chamado alumno.
E pode pensar nel só como un tipo como un int ou un float, ou un char.
É só un outro tipo, OK?
>> Así, no presente, o que temos?
Temos quizais un nome.
Entón quizais queiramos un nome de cadea.
E nós temos quizais un int que é un ID.
E nós temos un outro en que é o número de teléfono.
E nós temos some-- veremos.
Que máis podemos ter?
Nós imos ter algunha corda na súa casa.
Todas as cousas que un estudante ten.
>> Entón, iso crea un struct agora.
Entón, como podemos crear un estudante?
Se temos algunha variable que está vai falar Walker aquí,
entón nós estamos só have-- vai chamar este andador.
El que de un tipo.
Cal é o seu tipo?
Audiencia: Estudante.
ALLISON BUCHHOLTZ-AU: Estudante.
Entón, iso só crea un obxecto que pode pensar que ten todas estas cousas.
Acaba de crear un estudante Walker.
Entón, agora necesitamos ser capaces para asignar todo isto, certo?
Entón, alguén se lembra como temos acceso dentro dun struct?
Audiencia: Período.
ALLISON BUCHHOLTZ-AU: Período Exactamente.
Entón, se quixésemos atribuír lle un nome, poderíamos facelo.
Obviamente, isto faría ser-- esta parte aquí sería
estar dentro principal, de xeito en realidade, deixe-me facelo.
Declare esta enriba principal, para que podemos usalo dentro de inicio.
Entón agora eu quero que faga ID, e imos facer algunha alí,
e despois imos asignar unha casa.
Bam.
Legal.
>> Polo tanto, agora temos que sempre precisan de acceso nada máis tarde on-- quizais nós--
se algunha vez precisa acceder calquera cousa, imos facer un ID int copia.
E quero copiar ID para este Walker.
Cómo podería facelo?
Debe acceder dentro do Walker struct de [? ir que?] [? E?].
E, do mesmo xeito que nós atribuíu-se aquí, como
poderemos acceder a ela cando queremos dar ese valor a algo máis?
Audiencia: Walker.id.
ALLISON BUCHHOLTZ-AU: Si, exactamente.
Entón, iso é todo moi bonito que precisa saber para estruturas.
Só ten pensar en Los como outra variable.
Basicamente a crear a súa propio tipo de variable, OK?
Usalo para declarar variables en calquera forma.
Aquí Walker aínda é unha variable.
El só ten un alumno tipo agora, no canto dun int tipo, ou un tipo cadea,
ou un tipo char.
Se houbese un xeito doado de falar sobre estruturas, é literalmente só un
crear o seu propio tipo de datos que permite que agrupe
todas estas diferentes tipo de datos en conxunto.
Será que isto ten sentido?
Está ben.
Isto e acceder con puntos.
Practicamente todo o que necesitas.
>> OK, onde foi o meu PowerPoint ir?
Aquí está.
Ben, iso é raro.
Aha.
OK, legal.
Calquera outras cousas ou nós quere ir á práctica?
Práctica?
Está ben.
Impresionante.
Vou saír desta.
Se en calquera momento durante cuestións prácticas,
Estou feliz por renovar e pasar por cousas.
Entón, eu teño cuestionario zerar ata aquí.
Se vostedes queren tirar lo no seu computador,
así como levar de cinco minutos para percorrer.
Quizais escoller algúns arriba preguntas que quere pasar por riba.
Se vostedes non poden decidir, nós imos lentamente comezar a traballar con eles,
pero eu estou seguro que vai ser un pouco preguntas que son particularmente
ansioso para falar e ter me traballar con todos vós.
Entón, só tes que ir adiante e tomar cinco minutos.
Desprácese.
E este é a proba desde 2013.
>> Audiencia: Cero?
>> ALLISON BUCHHOLTZ-AU: Si, quiz cero.
Non estamos facendo unha proba de material.
Faremos isto nalgunhas semanas.
Tamén para aqueles de vostedes que veu ao final, temos doces,
por iso que vostedes queren doce?
>> Audiencia: Claro.
>> ALLISON BUCHHOLTZ-AU: Eu son só vai pasar ao redor.
Ei, se vostedes cheguen aquí cedo, ten máis doces.
Iso é bo.
Ben, quere doces?
Quere algún destes?
Hai tamén Snickers se alguén quere Snickers.
Vou deixar los aquí e aquí.
Sinto-se libre.
Queres máis?
Audiencia: todo listo.
Grazas.
>> ALLISON BUCHHOLTZ-AU: E eu tiña un bo pequena pila alí no inicio.
Vostedes comezar a facer a proba e Eu comezo a ter unha festa de cuestionario clasificación.
É o caos.
900 exames.
Vai ser moi divertido.
Será xenial.
Estou seguro de que esta é unha da maior conexión persoal
noites do ano.
Alguén xa fixo proba de cero a partir de aínda que o ano pasado, por curiosidade?
>> Audiencia: As partes del.
>> ALLISON BUCHHOLTZ-AU: Partes del, Aceptar.
Ten preguntas sobre calquera deles?
Audiencia: Eu xa foi para o horario de expediente.
Grazas aínda.
ALLISON BUCHHOLTZ-AU: Ben, espero que aínda é tipo de útil.
Cando vai para o horario de expediente para iso?
Audiencia: O meu TF tiña-lles esta tarde.
ALLISON BUCHHOLTZ-AU: Oh.
Quen é o seu TF?
Audiencia: Fred [? Wujaya?].
ALLISON BUCHHOLTZ-AU: Hai tantas TFS.
Tantos.
Todo correcto.
Alguén ten algunha para comezar o que podo anotar que queremos traballar?
Eu supoño que os punteiros un coa táboa.
Dalle.
>> Audiencia: Quizais a clave dun.
ALLISON BUCHHOLTZ-AU: Entón o número 12?
Presumo número 8 e 9 son probablemente aqueles que a xente quere pasar por riba.
>> Audiencia: E 10 e 11.
>> ZAMYLA Chan: E vós sabedes recibe unha páxina de notas, non?
>> Audiencia: Si, entón o que son estamos autorizados a poñer sobre iso.
>> ALLISON BUCHHOLTZ-AU: Está autorizado para poñer o que queiras.
E pode ser ingresaran.
Polo que me lembro, os nosos foron escritas.
>> Audiencia: Pode facer costas e ambos os dous lados?
>> ALLISON BUCHHOLTZ-AU: Si, ambos os lados.
Polo tanto, algo así como a pila e [? back-end?] chea, a súa carreira
veces.
Útil.
Quizais pequenas cousas sobre punteiros para lembra-lo.
Sintaxe para as cousas.
Tendo como un esqueleto programa pode ser super útil.
Sei que eu sempre esquecía o que Era para eu escribir para int main,
porque sempre pode copiar colar da miña set anterior P
ou que xa está aí, entón Realmente nunca escribiu,
así que ter que se pode super útil.
>> OK, entón por que non nós comezar co número 8, entón?
Todo correcto.
Está ben.
Por iso, considero o programa a continuación.
Entón, obviamente, cando vemos punteiros, é probablemente
unha boa idea para comezar a debuxar, non?
Eu quero saber onde todo o meu grandes anacos de giz foi.
Este é tipo de chat.
>> Polo tanto, temos aquí algunhas función de intercambio que vai levar en dous punteiros.
Polo tanto, neste caso, realmente debe ser o cambio
cousas contra a nosa intercambio de orixinais función que só tivo en copias.
Entón, o que vai facer é-- imos comezar con principal,
porque é onde 1 é.
>> Polo tanto, temos algúns int x 1.
Temos algúns y que é igual a 2.
E entón temos algún troco que vai levar os.
E imos ver o que temos aquí.
E no noso mesa-- oh boy.
Como é que eu vou facer iso?
Vou debuxar a miña mesa aquí.
Facendo mal alí.
Facendo mal.
1, 2, 3, 4, 5, 6, 7.
E eles nos dan de que un é un, e 1 2.
Legal.
Impresionante.
Entón 3.
E non hai [? 1. unha?]
>> Todo correcto.
E entón a dirección de x é 0x123.
E y é Ox127.
Legal.
Todo correcto.
Eu quero que vostedes traballar neste para o traballo só como-- nel
coas persoas ao seu redor.
Gustaríame ter dito que mentres eu estaba montando.
Traballar nel.
Proba e traballar nel por vos por uns minutos,
e despois vou traballar niso con vostede.
Porque o único xeito que é realmente Vai aprender é facendo iso só.
Non se preocupe.
Boa sorte.
>> OK, por que non nós lentamente comezar a traballar por iso.
Entón, todo o mundo queda tras a liña un, x é 1.
Despois liña dous, X e y son 1 e 2, non?
Legal.
Entón liña de tres é onde as cousas estar interesante, claro.
>> Entón, o que fixemos aquí é que temos agora trocados.
Dicimos que x e y teñen estes puntos, ou teñen a dirección de x e y,
non?
Polo tanto, neste caso, tres, o que é o valor dun?
un fora transmitido, foi dada o valor do enderezo de x, non?
>> Audiencia: 1?
>> ALLISON BUCHHOLTZ-AU: Entón, nós engadilo á x?
Cal é o enderezo de x?
>> Audiencia: 0x123.
>> ALLISON BUCHHOLTZ-AU: Exactamente.
Pero o que é unha realidade, apuntando?
Se fósemos para eliminar a referencia a, cal o valor que nos daría.
Audiencia: 1.
ALLISON BUCHHOLTZ-AU: Sería ofrécenos un, xa que o que
estamos dicindo é ir a este enderezo, di-nos que é o valor.
Entón, o que sería b?
>> Audiencia: 0x127.
ALLISON BUCHHOLTZ-AU: Exactamente.
Por iso, é a dirección do y.
E entón o que [? desreferenciava? ?]
Audiencia: 2.
ALLISON BUCHHOLTZ-AU: OK, entón agora catro.
Dixemos un é equal-- ben agora temos feito int temperatura é igual a estrela dun.
Entón, o que cambia?
Só hai unha cousa que cambia aquí.
¿Que é iso?
>> Audiencia: Temp.
ALLISON BUCHHOLTZ-AU: O temporal.
Así, podemos reescribir todo isto.
Unha boa estratexia para estes é só descubrir
cales os cambios, porque a maioría das veces só hai unha cousa que é
cambiará nun determinado punto, OK?
Entón, nós temos asignado temporal.
>> Agora noso seguinte punto, cinco, nós ter feito unha estrela igual para protagonizar b.
Entón, o que cambia agora?
>> Audiencia: estrela a.
>> ALLISON BUCHHOLTZ-AU: estrela un, de xeito o resto permanece o mesmo.
E o que protagonizar un xeito?
>> Audiencia: 2.
ALLISON BUCHHOLTZ-AU: 2.
Encantador.
Impresionante.
OK, e entón agora temos iniciar b é igual a temperatura.
Entón, o único que o cambio é a estrela b.
Todo o resto permanece o mesmo.
E o que é estrela b igual a agora?
E xa completou a mesa.
Por agora, ao final, se dicimos x e y, sabemos que neste ponto--
sabemos que cando nós cambiou protagonizar un a dous,
o que fixo é que dixo OK, en abordar 0x123 aquí, cambia-lo.
Agora, este foi 2.
E, a continuación, neste punto, dixemos OK, vaia protagonizar b.
Entón, vai para o enderezo no 0x127 e facelo un 1.
Entón, agora, ao final, cando nós realmente volver ao inicio,
nós realmente temos que x é igual a 2 e y é igual a 1.
Todo o mundo ben con iso?
OK, legal.
Número 9.
Vostedes traballan con iso.
Vou crear un consello para que poidamos chamar por ela.
Vai ser unha explosión.
As grandes mesas poden ser realmente asustado, eu sei.
Pero se simplemente levalos unha liña de un tempo, eles están moito menos asustado.
Todo correcto.
>> Entón vostede sabe que iso terá atravesado principal en primeiro lugar, non?
Arrinque x e y e entón intenta trocalos.
Así, mesmo intercambio é anterior, forma real que vai é que estamos pasando principal,
e el está chamando ata trocar, todo ben?
Entón, todo o mundo sabe diso.
>> Entón, cal deles caras queren comezar?
Alguén está realmente seguro sobre un destes?
Ou mesmo parcialmente certo?
Por que non comezar con x?
Que pensamos x é?
>> Audiencia: 1.
ALLISON BUCHHOLTZ-AU: 1.
Entón por que é 2.
E iso porque o gran distinción aquí
é que só son pasando copias, non?
Non estamos pasando por referencia.
Así, mesmo ao final do este programa xe y
permanecer o mesmo, porque son só copias en función de intercambio.
Eles realmente non cambiar, non?
>> Entón, o que pasa con a, b, e temperatura?
>> Audiencia: a é b.
>> ALLISON BUCHHOLTZ-AU: a é b.
Polo tanto, neste caso, unha era x, que é un, non?
Entón, aquí, imos atravesalo-la.
Así, en principio, unha e b son 1 e 2 e indefinido.
Entón, orixinalmente temperatura queda atribuído a un, de xeito temporal é 1.
un é igual a B, polo tanto, obter 2, eb é igual a temperatura.
Agora temos un.
>> Audiencia: O anterior, que trocados ampersand x e y comercial.
O que exactamente significa isto?
ALLISON BUCHHOLTZ-AU: Entón isto significa que está pasando por referencia.
Entón iso significa que está realmente pasando os enderezos de onde
x e y son almacenados.
Audiencia: Pero non é intercambiar a dirección.
ALLISON BUCHHOLTZ-AU: Non é cambiando os enderezos.
Está cambiando o que está dentro deles.
Como o que é ese enderezo, e é por iso que funciona.
Versus aquí este programa que está facendo é que está creando copias.
Entón tes x e y que existen como as súas propias variables aquí fóra.
Pero, entón, cando pasa los a cambio, é
como se está creando todo este outro conxunto.
Entón, vostede non está realmente x conmovedor e y.
>> Audiencia: Se comercial x é o que está a dirección de x, o que ía protagonizar x ser?
>> ALLISON BUCHHOLTZ-AU: Ampersand x é o que está a dirección de x, entón star-- ben,
neste caso, x non é un punteiro.
Audiencia: Oh, Aceptar.
Entón só faino porque non é un punteiro.
ALLISON BUCHHOLTZ-AU: Certo.
Só pode facer de estrela algo que é un punteiro.
Quizais podería facelo para cousas que non son, pero a compilación que
facer cousas malucas que ía ocorrer.
E eu non son exactamente certo o que ía ocorrer.
Sempre pode ter o enderezo de algo,
pero non pode eliminar a referencia algo que non é un punteiro.
Se isto ten sentido, isto é unha boa distinción de ter.
>> Entón non é tan malo, non?
As mesas están espero quedando un pouco menos asustado.
Todo correcto.
Ah, os divertidos.
Entón, agora, escribir o seu propio código.
Entón, eu vou deixar vostedes traballan sobre iso por preto de catro minutos,
e despois podemos falar sobre as formas de abordalo-lo.
Sinto-se libre para falar coa xente ao seu redor.
Tamén iso é interesante.
É como unha todas as nenas sección agora.
Moi emocionante.
Excepto para Chang.
Pero Chang non é realmente parte da sección.
Impresionante.
Perfecto.
Entón eu vou dar-lle un par de suxestións.
No caso en que ten máis dun personaxe, onde
ten algo máis como 123 ou 1000 algo,
ten que ser capaz de lazo a través de e converter cada un deles.
Polo tanto, hai unha parella formas que podería facelo,
pero definitivamente vai ter un loop for nalgún lugar alí para facer un loop
a través deles, o que é como o tipo de oferta
con mesmo se chamar strlen, que é tipo de gusto oh
pode utilizar usar a lonxitude da secuencia de algunha maneira.
>> Todo correcto.
Entón, o que vostedes pensan que se pode unha das primeiras cousas que queremos facer?
Hai algúns casos en aquí necesitamos explicar, non?
Ou temos algo que é nulo.
O que temos?
Casos.
Null.
Temos o caso de que ten algo diferente de 09, non?
Entón, imos dicir que ten cartas.
Ou temos o caso de que é válido.
Tres casos de pensar.
Entón, cal deles pensas que se pode a máis fácil de coidar en primeiro lugar?
Audiencia: Null.
ALLISON BUCHHOLTZ-AU: O caso é nula.
Entón o que facemos alí?
Audiencia: [inaudível].
ALLISON BUCHHOLTZ-AU: Yeah.
E o que quero facer?
>> Audiencia: Return 0.
>> ALLISON BUCHHOLTZ-AU: Exactamente.
Impresionante.
Está ben.
Entón, agora se haxa cartas e o caso en que é válida.
Podemos realmente coidar iso dentro dun loop, OK?
Así, un xeito de facer ele-- o que podería ser un xeito sinxelo de comprobar se é válido.
Nós teriamos que pasar por cada letra e facer o que?
>> Audiencia: Asegúrese de que é em--
>> ALLISON BUCHHOLTZ-AU: Correcto, pode comprobar se é entre 0 e 9, non?
E, a continuación, no caso que é válido, somos
vai acabar iterado nosa cadea de calquera xeito, non?
Entón, por que non tentar combina-los nun só.
Nós imos facer unha iteración a través de fóra da corda, e como nós
facelo, imos primeiro facer unha comprobación para ver se esta letra
ou se este personaxe é válido.
De ser, nós estamos indo a executar o operación que necesitamos convertelo lo.
Se non, que vai voltar 0, non?
>> Entón, antes de facelo, nós Probablemente vai querer algunha variable
que podemos volver ao final que será o seu valor real.
Entón, nós estamos indo a iniciar algún valor a ser 0.
E é así que comezamos.
Entón, eu estou indo para se librar desa.
Entón, como é que imos iterado esta cadea.
Audiencia: Para loop.
ALLISON BUCHHOLTZ-AU: Un lazo for.
Entón, cal é o noso para?
>> Audiencia: i é 0.
ALLISON BUCHHOLTZ-AU: Mm-hm.
E o que estamos repetindo ata?
>> Audiencia: lonxitude de str s.
>> ALLISON BUCHHOLTZ-AU: OK, agora recordo hai un xeito mellor. [Inaudível].
>> Audiencia: Si, podemos facer n é igual.
ALLISON BUCHHOLTZ-AU: Exactamente.
>> Audiencia: i é menor que n.
ALLISON BUCHHOLTZ-AU: E por iríamos querer facelo?
Vostede recorda do motivo?
Audiencia: Temos que recalcular-lo.
ALLISON BUCHHOLTZ-AU: becasue deste xeito só ten que calcular strlen unha vez.
Se fai i é menor que strlen s, isto é dicir que recalcula
a lonxitude de cada vez realizar o loop,
que non é un custo enorme de enerxía, pero é
mellor práctica para tentar facer cousas como que unha vez.
A non ser que quizais teña unha cadea tolo que está cambiando a cada iteración.
Pero se só pode ir o mesmo, salvalo.
Todo correcto.
E entón eu plus plus.
Impresionante.
Estamos no noso camiño.
Audiencia: Realmente rapidamente.
En primeiro lugar, entón imos dicir que nós só Será que eu menos strlen de s,
están nos clasificar no proxecto en todos ou só de corrección?
Eles non son.
Estamos clasificación na corrección para probas, tanto como sei.
Non podo facer un en cheo garantía, pero para a maior parte,
gran maioría é correcto, porque está baixo unha morea de restrición de tempo.
Deseño significa tipicamente ten tempo para pensar
sobre a elegancia da súa situación.
>> OK, entón nós estamos interactuar a través.
Por iso, necesitamos facer un check para ver se ese personaxe é válido
ou se podemos realizar o noso normal de [? un para i?] función.
Podemos preocupar co que é dicir, en un segundo.
Entón, por que nós non take-- se alguén pode pensar
sobre un xeito de comprobar a ver se isto é válido.
Sabemos que vai ser algúns se condición, non?
E recorda se este é en ASCII, entón como pode
vemos se non é 0,1, 2, 3, 4, 5, 6, 7, 8 ou 9.
Audiencia: Se alfa.
>> ALLISON BUCHHOLTZ-AU: Entón, se alfa faría só deixe-nos saber se é unha carta.
E se eles nos dan un símbolo, é aínda non completamente indo para comprobar.
Entón, se tirar o seu ASCII táboa, sabemos que de 0 a 9
están nun segmento.
Dime os números que corresponden a, se é posible.
Audiencia: 40.
>> ALLISON BUCHHOLTZ-AU: Entón, o intervalo é como 40--
Audiencia: Quizais.
48-57.
Eu non estou seguro.
>> ALLISON BUCHHOLTZ-AU: 40-57?
>> Audiencia: 48, eu creo.
ALLISON BUCHHOLTZ-AU: 48-57.
Entón, nós sabemos que os ASCII symbols-- o valor ASCII non está
entre 48 e 57 anos, non é válido, non?
Así, poderiamos usar isto para nosa vantaxe posiblemente?
Como é que imos chegar Nesta carta, o primeiro fóra?
Como estamos accedendo este este personaxe?
>> Audiencia: s soporte i.
>> ALLISON BUCHHOLTZ-AU: Mm-hm.
Porque podemos pensar en cordas como matrices, lembre-se.
Entón, o que queremos dicir?
Queremos dicir que este é-- eu vou che dar unha información.
É un menos que.
¿Que pensas que debe ser inferior a?
Audiencia: 57?
>> ALLISON BUCHHOLTZ-AU: 47, non?
Pero representa tamén que a medida que a 0 en single [? raios?], porque iso é
o personaxe 0.
Tamén pode poñer 47.
Tendo táboa ASCII, como ve, é só algo
ten que ter na súa folla de quiz.
>> Así, se este é o caso, se é un inferior a 0-- e non necesariamente.
É só ou será inferior ou igual a 9.
Así, pode cubrir esta última para min?
Entón, é s de i é o que, Rhea?
>> Audiencia: Maior de 9.
>> ALLISON BUCHHOLTZ-AU: Non.
Isto ten sentido para todos, como chegamos alí?
Estes problemas, son como unha vez que ver as solucións, é como oh, Aceptar.
E é por iso que a práctica pode axudar.
OK, entón nós voltar 0.
Encantador.
Todo correcto.
Se non, o que queremos facer?
Esta é a parte interesante onde é un pouco máis
como a matemática contra CS na miña opinión.
Alguén ten unha idea de como podemos facelo?
Entón, a cousa importante a entender é o primeiro carácter
estamos levando será o díxito máis alto fin, non?
Entón, se nós estamos mirando para a conversión 123, a primeira vez que unha iteración
será un, pero necesitamos que, para ser 100 ata o final, non?
Entón, unha cousa que pode facer é que con cada díxito posterior
se toma, vostede multiplica o seu valor por 10, para que polo tempo que chegar ao final,
todo foi desprazada cara arriba, non?
>> Así, a primeira vez que executa el, ten 1 como o seu valor.
É a segunda vez que executa-lo, multiplicar o valor por 10.
Ha actualiza-lo para que sexa agora 10, e engadir o seu próximo valor.
E entón multiplicar isto por 10 e engadir o seu próximo valor.
E é por iso que din que este é moito máis parecido a proba
un algoritmo matemático contra CS, pero eu desacordo.
Non escribo os quizzes.
>> Entón, unha cousa que podemos facer é nós dicir veces de valor igual a 10.
Entón, iso vai cambiar o díxito unha vez cada hora.
E entón nós só queremos engadir.
Queremos engadir o que nós só temos, non?
Entón, como é que imos realmente converter o noso Caracteres ASCII ao número
que representa?
>> Entón, nós sabemos que 0 é igual a 47, non?
Entón, se 0 é 47, o que que temos que facer a el
para realmente facelo ser un int de 0?
>> Audiencia: É 48.
ALLISON BUCHHOLTZ-AU: 48?
Sentímolo.
Queremos restar 48, non?
Teña en conta que de matemáticas ASCII?
Podemos tratalos como números normais.
Se tratalos como números, eles se fan números de forma eficaz.
Entón, se temos s de i, que imos dicir, neste caso é igual a 0.
Así, s de i neste caso sería a ASCII--
o int ASCII pois sería 47.
Así, poderiamos subtract-- ou 48.
Podería facelo, é un camiño.
Alguén sabe unha mellor xeito que poderiamos facer 48?
Nós só dixo 0 é-- entrar o ASCII que podería facer cotización de 0.
Entón fai tipo de facer sentido como funciona isto?
>> Audiencia: Neste punto, é o valor 0 porque mesmo se multiplicar por 10,
está empezando cero, por iso, debe ser conectado?
>> ALLISON BUCHHOLTZ-AU: Entón, nese caso, ten quere multiplicala lo antes de engadir,
porque, neste caso, si, sería aínda ser-- meu punteiro falta.
O valor neste caso, o primeiro xa que executa-lo será cero.
Entón está só engadindo en que o primeiro díxito.
O que é importante é a próxima vez ti interactuar, quere transferir-lo para arriba
antes de engadir o seguinte díxito.
Será que aclarar para ti?
Está ben.
>> Ás veces vai máis cousas estrañas Mathy.
Se tivese máis de iso, aínda vai
para get-- vai facer moi ben.
Crédito parcial é moi gran cousa sobre quizzes CS50.
Entón escriba o que sabe.
Se ten todo excepto por aquí, é
aínda vai facer moi ben o problema.
Porque está mostrando, OK, eu case sei.
Sei que eu teño para percorrer.
Eu sei que eu teño para comprobar.
Eu só non moi obter como convertelo lo.
Vai estar ben.
Si, vai perder algúns puntos,
pero aínda está indo a obter un bo número de puntos para algo
así, se está falta estas dúas liñas.
Eu sería como OK, esa persoa sabe o que está facendo.
Matemáticas é difícil.
Entón, eu diría que estaría ben.
>> OK, entón vostedes preparado para tente strlen con punteiros agora
que vostedes son mestres punteiro?
Entón, eu vou deixar vostedes traballan en que, por un pouco.
Se alguén precisa de unha reciclaxe.
Entón quere usar punteiro aritmética, e, a continuación, se s é nulo,
súa implementación debe volver 0.
Cousas como esta que fan moi feliz de só chamar strlen
ao final do día.
Creo que este pode ser un pouco máis fácil do que a última, que
é bo.
Vou dar a vostedes máis dun minuto, e despois nós imos traballar con el.
E entón nós comezamos a ir switches.
>> OK, rapaces preparados?
Quizais un pouco.
Entón, eu dei-lle o seu dúas opcións, non?
Ou comprobar null e voltar 0 se el é, en realidade, é calcular a lonxitude.
Entón, quen queira escribir comprobar null?
Dalle.
>> Audiencia: Se parénteses s é igual é igual a nulo retorno 0.
ALLISON BUCHHOLTZ-AU: Lovely.
Eu amo cando a metade do seu problema é só a comprobación de nulo.
Sei convosco última semana eu era como verificación para nulo
literalmente o tempo.
OK, assim--
>> Audiencia: O retorno 0 é só unha liña, que aínda precisamos do soporte rizado?
>> ALLISON BUCHHOLTZ-AU: Non tecnicamente Debe los, sempre que é consistente.
É unha boa práctica só para adquirir o hábito
do uso de claves, pero técnicamente non.
Non precisa deles para unha liña.
Nós só adoitan recomendar para persoas a partir de programa.
>> Entón agora o que podemos querer facer aquí?
Polo tanto, agora sabemos que a nosa cadea é válido.
Queremos manter Compute a lonxitude.
Que é probablemente a primeira cousa que queremos facer?
>> Audiencia: Crear un int que é a lonxitude.
ALLISON BUCHHOLTZ-AU: Exactamente.
Audiencia: E queremos configuralo para?
ALLISON BUCHHOLTZ-AU: 0.
Perfecto.
Todo correcto.
Agora, o que quere facer?
Esta é realmente a maior parte del.
Dalle.
>> Audiencia: Entón probablemente facer un loop.
E, a continuación, xa que cando chamar s está obter a dirección da primeiro,
podería comezar con i é igual a 0.
E entón, mentres x máis eu non é barra invertida 0.
ALLISON BUCHHOLTZ-AU: O terminador nulo.
Audiencia: O terminador nulo.
Logo engadir un para longo.
>> ALLISON BUCHHOLTZ-AU: Yeah.
OK, entón imos transformar esa en código moi concreto.
Pero esa é a idea perfecta.
Isto é o que estamos facendo.
Nós imos ser a iteración mediante co punteiro.
Entón, o que queremos facer é, en vez de un int
aquí, porque somos non referíndose a unha lo.
Estamos referíndose ao inicio dunha corda, que comezan a ser algún enderezo,
non?
>> Entón, nós queremos un punteiro.
Entón, nós imos ter algunha estrela char, porque corresponde aos nosos s, non?
Polo tanto, este é un punto que está inicializar para o inicio da cadea, OK?
Entón imos chamalo i.
Se é o inicio da cadea, que é o que vai ser asignado a?
Non 0.
Queremos que sexa o inicio da nosa cadea.
Que representa o inicio do nosa cadea que se nos deu?
>> Audiencia: Just s.
>> ALLISON BUCHHOLTZ-AU: s.
Entón iso crea uns punteiro novo que representa o inicio da nosa cadea, OK?
Outro xeito de pensar niso é como aquí é a nosa matriz.
Esa é a nosa corda, s.
Entón, digamos que este é o primeiro lugar, e este é 0x4.
04.
Esta é a nosa s, que ten ese enderezo.
E nós acabamos de crear outro chamado i que só refírese á mesma cousa.
Entón, eles están ambos só apuntando para o inicio da nosa cadea.
Esta é só unha representación gráfica.
>> Entón agora o que queremos facer é que queremos facer unha iteración
nosa condición de iteración a través da nosa cadea.
Agora compra.
Teño que facer a compra, persoal.
É que queremos manter a actualización ata alcanzamos o terminador nulo, non?
Entón, o que podería parecer?
Queremos i, ou queremos estrela i é a pregunta?
É o terminador nulo un enderezo ou algo situado nun enderezo?
Situado en un enderezo, non?
>> Por iso, necesitamos desreferenciava todo o que é aquí, porque este é só un enderezo.
Para realmente chegar ao inicio necesitamos desreferenciava este
para que poidamos realmente comezar o que está neste primeiro lugar.
Entón, se facemos protagonizar i, o que Non queremos que igual?
Audiencia: Back barra?
>> ALLISON BUCHHOLTZ-AU: Non.
Isto ten sentido para todos?
Necesitamos entrar na nosa cadea e asegúrese de que non é o final.
E entón podemos só actualizar como este.
Actualización normal.
Así, mentres estes son Met, o que necesitamos facer?
>> Audiencia: Lonxitude plus plus.
>> ALLISON BUCHHOLTZ-AU: Mm-hm.
E, despois do loop remata, o que imos querer volver?
Audiencia: Lonxitude?
ALLISON BUCHHOLTZ-AU: Lonxitude.
Alí vai.
Obviamente, a carne dun presente é entender iso por loop.
Será que todo o mundo comeza como iso funcionou?
Estou feliz de pasar por iso de novo.
>> Audiencia: A segunda parte, de xeito que a estrela i alí,
que é a dirección do first--
ALLISON BUCHHOLTZ-AU: Non é a dirección.
É o que está.
Audiencia: Isto é realmente alí.
ALLISON BUCHHOLTZ-AU: Isto é o que é realmente alí.
Polo tanto, esta é dizendo-- deixar me facelo mellor.
Polo tanto, esta é 0x04, e eu só vou para dicir que eu vou facer o meu nome.
Está ben.
Si, sei que teño revisión cuestionario esta noite.
Lotes de revisión cuestionario.
Entón, digamos que esta cadea é o meu nome, Allison.
Pouco confuso, pero está aí.
E s representa o lugar de onde a cadea comeza,
entón eu vou facelo real-- este é o enderezo de un,
onde a cadea empeza, non?
>> Entón, o que facemos aquí é que queremos usar punteiros para percorrer.
Entón creamos algúns punteiro, i, que tamén é igual ao do inicio da cadea.
E en cada punto, queremos seguir atravesar a matriz
aquí ata acadar o terminador nulo.
Entón, nós queremos sempre comprobar o que está en cada un destes enderezos.
>> Entón, nós desreferenciava i, de xeito que a primeira vez que o facemos nós
dicir, OK, o que é o enderezo 0x04?
É unha unha.
OK, estamos ben.
Lonxitude de incremento.
Pasar á seguinte.
Entón lembre-se i-- punteiros aumento pola tamaño de todo o que está a apuntar.
Polo tanto, neste caso, xa que é un char, que vai actualizar por un.
Entón, agora imos ollar para 5, o que significa que está pasando por aquí.
Por iso, di OK, vaia 0x05.
O que hai alí dentro?
É un l.
E seguirá a facer iso ata acadar este.
E di OK, o que está en calquera enderezo que é isto?
O terminador nulo, Aceptar.
Saída.
E só volver lonxitude.
Porque ten que o que é, en realidade, a ese enderezo, non o propio enderezo.
>> Hai moi poucos lugares onde realmente precisa do enderezo.
A maior parte do tempo cando está a usar o e é
cando está en primeiro lugar asignación dun punteiro ou cando
está pasando a noutra función.
OK, todo o mundo ben alí?
Máis ou menos?
Está ben.
>> Polo tanto, parece que temos ten preto de 12 minutos para a esquerda,
entón imos pasar a quizais o noso último problema,
e despois hai ningunha conceptos que veñen-se
mentres podemos ir rapidamente sobre iso.
>> Así Cambiando de tema é a última problema aquí, cambiar declaracións.
Polo tanto, o seu traballo é reescribir esta de xeito que se comporta da mesma
pero non usa switches.
Mans gessados.
Entón, calquera dúbida sobre esta fóra do pau?
Ningún?
Está ben.
Será que todo o mundo entende que, se o caso non ten nada despois dela,
isto significa que debe siga o seguinte paso?
Así, no caso 1 e 2, neste caso facer exactamente o mesmo.
Ás veces, un punto de confusión.
>> Todo correcto.
Alguén ten algunha idea?
Si?
>> Audiencia: Entón pode só facer se declaracións.
>> ALLISON BUCHHOLTZ-AU: Mm-hm.
Entón, cal é o noso primeiro?
>> Audiencia: Si n é igual a igual a 1, e as dúas liñas ou para n igual
é igual a 2, a continuación, imprimir pequenas.
E entón pode facer outra cousa se?
Ou pode simplemente facer un caso?
>> ALLISON BUCHHOLTZ-AU: Pode facer outra cousa se?
>> Audiencia: Será que importa se faría se?
ALLISON BUCHHOLTZ-AU: Entón fai.
Será que anyone-- así, obterá o mesmo resultado
se usa só IFS contra se usa outra persoa IFS.
Podedes pensar na razón por que pode querer usar outro
se contra unha morea de IFS?
Ten que con eficiencia.
Si?
>> Audiencia: Sería comprobe todo IFS á vez.
>> ALLISON BUCHHOLTZ-AU: Así, mesmo se bateu este primeiro,
ía en cheque todo outro.
Entón quere usar if else IFS en casos en que un deles vai aplicar sempre.
Así, a exclusión mutua é o que temos a tendencia de dicir.
Se tes unha morea de IFS, isto significa que quizais máis dun deles
asuntos, e quizais máis do que un deles pode ser verdade.
E quere que os dous para realizar, se son certas.
Se só quere un deles para traballar nestes casos mutuamente exclusivos,
quere usar outra cousa, porque todo isto ten que ver con eficiencia.
O seu código é só mellor deseñado se adhire a esta práctica.
Polo tanto, neste caso teremos outra persoa se.
E iso sería?
>> Audiencia: n é igual é igual a 3.
ALLISON BUCHHOLTZ-AU: Perfecto.
Medio de impresión.
E entón, no noso último caso, o que temos?
Persoa ou cousa se?
Audiencia: Else.
>> ALLISON BUCHHOLTZ-AU: Do que want-- Quere else if porque temos casos concretos.
Non é unha especie de captura todo.
Se tivese un patrón nunha switch-- Teña en conta que de opcións que pode ter caso,
e entón tes defecto.
Se tivese un estándar, ese é o tipo da súa declaración máis alá.
Pero se ten só os casos, que significa que precisa
comprobar a ver se é cada un deles.
Polo tanto, neste caso, sería o 4 ou 5.
Queremos unha impresión off.
É grande.
E alí vai vostede.
E iso sería o seu programa.
>> Polo tanto, neste caso, se tiña un defecto de algo,
teriamos outra cousa en todo o que quería que fixésemos.
Entón, esa é unha boa distinción coñecer, entender.
Será que isto axuda con interruptores para ti?
Perfecto.
Todo correcto.
>> Temos preto de oito minutos do final.
Vostedes teñen ningunha outros conceptos de alto nivel?
Preguntas en xeral?
Si?
>> Audiencia: Eu tiña un pregunta sobre un deles
que era sobre o chou xerador de números no cuestionario cero.
ALLISON BUCHHOLTZ-AU: Ah, aquel.
Aquel é outro onde é máis matemática than-- si.
A solución para isso-- eu mesmo cando Eu vexo iso, eu son como o que é iso.
>> Audiencia: Foi o número 7.
>> ALLISON BUCHHOLTZ-AU: É estraño, na miña opinión.
Entón, basicamente, quere para usar drand48, que
lle vai dar algún número entre 0 e 1.
E quere usalo de xeito que dalgún xeito obter a--
e é moito máis un problema de matemáticas para min do que eu creo que un problema CS.
>> O xeito que fai ele-- e ás veces que vai ser así.
Unha vez máis, estes son os casos en que é tipo
de como escribir o que pode e crédito parcial.
Polo tanto, se queremos un retorno, sabemos que estamos
estará usando drand48 dalgún xeito, non?
Entón, por que nós non só anotar que abaixo.
Estamos a usar iso de algunha maneira.
O xeito que teñen vós usalo é
como este, que eu vou tentar explicar.
>> Entón, basicamente o que pasa aquí é porque é entre 0 e 1,
o que está facendo é que está multiplicando por-- iso é moito máis unha cuestión de matemáticas.
Só disclaimer completo, este é completamente unha cuestión de matemáticas.
O que está facendo é porque de 0 e 1 e
quere que sexa dentro desa franxa, o que realmente
descubrir como gran a franxa é, axiña
basicamente escala-lo para arriba, que é o que este está facendo.
>> b menos un dálle esa franxa, o diferenza entre estes números.
Pode multiplicar entre 0 e 1, e, a continuación, engadindo só un
significa que o seu deseño-lo de xeito que sexa entre un e b,
que realmente non me gusta deste problema.
Como dixen, este quiz pretende englobar
persoas que son menos cómodos, nalgún lugar no medio,
e máis cómodo.
Entón, se eles fixeron iso de xeito que era algo
que todos no menor lugar cómodo ía estar,
teriamos lonxe demais persoas marcando perfecciona,
eo máis cómodo sería aburrido.
>> Entón, eles sempre teñen estes tipo de cerebro preguntas provocación
que está destinado a ser un pouco máis difícil que levar moito pensamento creativo.
Cando ve-los, non ser moi perplexo.
Eu definitivamente dicir aleta a través do seu exame primeiro.
Afrontar os problemas que sabe que pode,
porque non adianta queda preso nun problema cando existen tres
ou catro ou cinco na páxina despois de que pode facilmente facer.
>> Audiencia: Por que exactamente multiplicala lo pola pista?
>> ALLISON BUCHHOLTZ-AU: Vostede multiplicar o alcance que vostede sabe-- é como o que tras un
quere?
Entón pode pensar, porque retorna un número entre 0 e 1,
Pode pensar niso como unha porcentaxe.
Entón está dicindo basicamente, se temos nosa liña número aquí, un está aquí,
eb é aquí.
Vostede é como o que un pasado que é?
É todo o que estamos facendo.
Entón está só pedindo para o porcentaxe desa franxa, que
é o que está lle dando.
E entón basicamente só aumenta-lo engadindo un.
É un teaser de matemáticas cerebro.
>> Se houbo algún consello último minuto, eu diría follas as preguntas,
descubrir que ten sei que como, oh Eu teño ese.
Case certamente van ser preguntas que non coñece
ou que vai ter tempo para, co fin de acadar os seus puntos fortes, OK?
Vostedes están indo ben.
Hai unha gran cantidade de cuestións por unha razón,
para que teña tempo para especie de ter a oportunidade
para demostrar que vostede é realmente bo.
Por iso é OK se está non é bo en todo.
Xoga con seus puntos fortes.
Si?
>> Audiencia: Así é que isto vai voltar algo que está truncado?
Si, é certo, porque drand retorno entre 0 e 1.
Vai voltar un int, porque vai truncar
cando engadimos un ou multiplicar por el.
Legal.
Calquera dúbida de última hora?
>> Vostedes van facer grande.
Está indo a ser fabuloso.
E mesmo se non for, haberá ser doces aquí a próxima semana.
E eu vou te amar.
Vou amar vostedes independente.
Todo ben, todo, boa sorte.
Ten un gran tempo.
Vai estar ben.
E vostede sabe o que?
En dous días que vai para ser máis, mentres eu
ten dúas midterms o xoves, polo que polo menos vós será feito.
Todo ben, eu vou ver vostedes a próxima semana.