[Powered by Google Translate] [Sección 3] [menos cómodo]
>> [Nate Hardison] [Harvard University]
>> [Esta é CS50.] [CS50.TV]
>> Todo ben, imos comezar.
Benvido á Semana 4 de CS50.
Se vostedes abrir un navegador e abrir pset 3,
Scramble con CS50, imos comezar a ir
a través da sección de preguntas alí.
Así como a semana pasada, nós estaremos traballando no CS50 Spaces,
se tamén vai tirar que ata ben,
e se vai adiante e visita este enlace que eu teño aquí enriba na parte superior.
É hora de comezar.
Temos o noso programa ola pouco aquí. Nada tolo.
Unha das primeiras cousas que quero facer con vós hoxe é pasar por riba de algunhas solucións
ao conxunto de problemas 1, especie de exemplos de solucións,
só así pode ter unha idea de que tipo de equipo código está escrito,
que tipo de estudantes de código outros están escribindo,
e ter que dar un ollo niso, porque sei que é raro
Cando envíe unha solución para un conxunto de problemas e obter comentarios
na súa propia versión, pero ás veces é útil para ver como as outras persoas o fixo,
especialmente aqueles que son agradable.
Para a maior parte, eu quedei realmente impresionado coas solucións que vostedes produciron.
Eu aínda non empecei a mirar para os seus 2s conxunto de problemas, pero se é calquera cousa como o primeiro,
iso non significa outra cousa que cousas boas.
>> Se ollar para as miñas opinións, imos comezar todo o camiño de Revisión 1,
e imos dar un ollo rápida en unha solución Mario.
Se puxar isto, estes programas que imos presentar son correctas.
Non houbo problemas de regularidade con estes problemas, pero si,
queremos falar un pouco sobre as cuestións de deseño diferentes
que estaban a ser usados ​​aquí.
Unha das cousas que era interesante sobre a solución
é que usou este novo concepto chamado de libre definir,
por veces tamén referido como un hash definir.
Deixe-me ampliar-lo aquí.
A # establecer permite dar nomes a eses números no seu programa.
Neste caso, a altura máxima dunha pirámide en Mario
foi de 23 e en vez de poñer 23 no meu código
que se refiren a iso como codificación dura 23 -
vez que dá o nome max_height a ese número,
de xeito que aquí no meu loop do-while
realmente pode referirse a max_height
en vez de poñer o número 23 polgadas
[Estudante] Cal é a vantaxe de facer iso?
Esta é unha gran cuestión.
Unha delas é a lexibilidade.
Unha vantaxe de usar esta # define é a lexibilidade.
Cando eu estou lendo este código, podo ver o que está a suceder.
>> Podo ver nesa condición aquí que estamos probando
a altura de ser <0, o que poderiamos ter definido tamén
para unha altura mínima ou unha altura min.
A outra vantaxe é que podo entón ler o resto da liña para ver
que está tamén a verificación para asegurarse de que a altura non é maior que a altura máxima,
porque imos continuar mentres que a altura é maior que a altura máxima.
A outra vantaxe é, se eu reducir un pouco aquí-
se eu executar este programa e executa-lo, digamos, con 23, agora,
ha imprimir os 23 liñas só como aquel.
Pero dicir que eu quería cambiar a altura máxima,
e agora quero limitar a altura máxima das pirámides
para ser só dicir-home, que foi descolados.
# Incluír # define max_height,
e imos dicir que quería define-lo igual a 10.
Agora, neste momento, todo o que eu tiña que facer era cambiar isto neste lugar un.
Eu podo recompilar o código, e agora eu tentar escribir 12,
el me vai preguntar de novo.
Neste caso, estamos só usando max_height unha vez.
Non é que de un gran problema para ir
e cambia-lo no loop while se precisa.
Pero en programas onde está referenciando o mesmo número máxico
unha e outra vez, este # define mecanismo é realmente útil
porque simplemente muda-lo unha vez no cume do ficheiro que é xeralmente onde poñer-los-
é o cambio se infiltra a través do resto do ficheiro.
>> Outras cousas que eu quería observar nesta tarefa que eu pensaba que parecía moi bo,
un era o nome das variables.
Vostede ve aquí que temos variables enteiras chamadas de liña e chamada altura.
Espazos, hashes, que axuda a facer o código un pouco máis lexible,
fai un pouco máis comprensible o que está realmente a suceder.
Isto está en contraste co uso, por exemplo, letras aleatorias
ou só gobbledygook completamente.
A última cousa que eu vou apuntar é que, en loops,
moitas veces estas variables iterador, estes contadores que usa no seu loops,
é estándar e convencionais para comezar con calquera I e J a continuación, e, a continuación, k
e ir de alí, se precisa máis variables,
e iso é só unha convención.
Hai moitas convencións.
El depende da linguaxe de programación que está a usar.
Pero en C, que normalmente comezan con i.
Non ten sentido usar, por exemplo, A ou B
, Dependendo da situación.
Isto é todo para este.
Se agora puxar arriba Revisión 2, podes ver un outro Mario,
e este é semellante a outra que acabamos de ver,
pero fai algo do tipo legal.
Se olharmos para esta sección aquí no interior do interior para o lazo,
eles están usando algunha sintaxe tolo buscando aquí ben nesta liña.
Isto é chamado un operador ternário.
É unha declaración máis condensada nunha liña.
A condición é esa parte entre parénteses.
É equivalente a dicir se j altura <- i - 1.
E, a continuación, o que o contido do bloque que se serían son o espazo
e, a continuación, o contido que a outra cousa sería se este #.
É, esencialmente, a asignación dun espazo para esa variable.
E colocar un espazo no contido do bloque variable,
Se esta condición se responde, e se a condición non se responde,
entón a variable bloque recibe este #.
E despois, claro, en vez de construír unha cadea enteira
e impresión de todo ao final esa solución imprime o personaxe de cada vez.
Moi legal.
>> Outro par de cousas para ollar. Nós imos pasar ganancioso.
Agora, se olharmos para ganancioso, solución esta primeira
usa eses # define un pouco.
Temos unha constante definida para cada un dos diferentes números neste programa.
Temos unha de centavos por dólar, unha para cuartos, moedas, moedas e centavos,
e agora, se desprace para abaixo e ler o código,
podemos ver un patrón mentres todo impresión loop out.
Tipo de cerne do problema foi entender que
vostede necesario para converter a boia que le na do usuario para un número enteiro
con precisión facer a matemática, e iso é porque
con números de punto flotante, como falamos na clase brevemente,
non é posíbel representar con precisión cada valor único na liña de número
porque hai valores infinitos entre 3 e, digamos, 3,1 mesmo.
Pode ter 3,01 e 3,001 e 3,0001, e pode continuar.
Acontece cando se está a traballar co diñeiro, moitas veces quere convertela-lo
en formato completo, de xeito que non está perdendo uns centavos e ese tipo de cousas.
Facelo e redondeo foi fundamental.
Esta solución utilizada perfectamente simple algoritmo, gran,
que diminúa o número de centavos restantes, primeiro por trimestres,
a continuación, por moedas, a continuación, por recreo, a continuación, por tostões,
e aumentando o número de moedas de cada vez.
>> Outra solución que nós imos ver, como eu diminuír o zoom e vaia para a revisión 4,
tivo un inicio moi semellante, pero en vez utilizado div e mod
ben aquí para calcular o número de centavos.
Iso, o número de aloxamentos é igual ao número de centavos divididos por 25,
ea razón que isto funciona é porque estamos facendo unha división enteira,
por iso é descartar calquera resto.
[Estudante] Temos que comentar a investigación?
Ela realmente depende.
[Estudante] Está comentando máis que o código aquí.
Si, e por iso hai unha morea de diferentes filosofías sobre iso.
A miña filosofía persoal é que o seu código é realmente a verdade,
como o seu código é o que está realmente en execución no ordenador,
e para que o seu código debe ser lexible posible para non ter que moitos comentarios.
Dito isto, cando está facendo cousas que son medio complicado matematicamente
ou a través de algoritmos, é bo para comentar os para que poida
engadir unha dimensión extra, unha capa extra para quen está lendo o código.
Nesas solucións, moitas veces son comentados máis fortemente só porque
queremos ser capaces de distribuír los e ter persoas busca-las
e le-los moi facilmente.
Pero, en definitiva, eu concordaría que este é abondo.
[Estudante] Pero, cando en dúbida, vaia máis pesado?
Cando en dúbida, vaia máis pesado.
Algunhas persoas ás veces din 0 retorno ou algo así.
Eu creo que é un comentario ridículo.
Claramente que é o que está a suceder.
Eu non teño de Inglés para me dicir iso.
Ás veces as persoas escriben cousas como "kthxbai!"
Este é un tipo de ben, pero tampouco-
que non está facendo a diferenza entre os puntos comentando ou non.
Estes tipos de comentarios son só ha, ha.
Cool.
>> Neste punto, imos comezar a traballar no conxunto de problemas 3 sección de preguntas.
Se vostedes tirar iso de novo,
como a semana pasada, non estamos indo a asistir os curtas nesta sección.
Nós imos deixar vostedes facelo no seu propio tempo e falar sobre as preguntas.
Pero agora nesta sección imos gastar un pouco máis
falando menos o básico de codificación
como fixemos a semana pasada, e en vez diso, imos centrar máis en
un pouco máis da teoría, polo tanto, falar sobre a busca binaria e de clasificación.
Desde aqueles de vostedes que teñen benvida a seguir, xunto coa charla,
alguén me pode dar un resumo do que a diferenza é
entre busca binaria e de procura lineal?
O que está a suceder? Claro.
Lineais investigacións a través de cada elemento da lista ordenada
un por un por un por un por un,
e busca binaria divide a lista en dous grupos,
Comproba que o valor teclas que está a buscar é maior ou menor que o valor do punto medio
que acaba de atopar, e se é menor, que vai coa lista inferior
e despois divide de novo, fai a mesma función
todo o camiño ata atopar o punto medio para ser igual ao valor propiamente dito.
Dereito.
>> Por que nos importan?
Por que falamos de busca binaria contra investigación lineal?
Si
Binario é moito máis rápido, entón se dobrar o tamaño do problema
dá un paso máis no canto de o dobre.
Exactamente.
Iso é unha gran resposta.
Busca lineal é moi comprobando un elemento de cada vez,
e, como vimos no primeiro día de clase
David pasou polo seu exemplo libro de teléfono
e arrincou unha páxina do libro de teléfono de cada vez
e continúe a facer isto máis e máis e outra vez,
que vai leva-lo moito tempo para atopar alguén no libro de teléfono,
a menos, claro, que estaba buscando alguén no comezo do alfabeto.
Con busca binaria, pode ir moito máis rápido,
e non é só dúas veces máis rápido ou 3 veces máis rápido ou 4 veces máis rápido.
Pero o problema convértese en menor e menor e menor moito máis rápido.
Para ilustrar isto, imos comezar a falar sobre o que está a suceder
cando escribimos busca binaria.
O problema en cuestión é que se eu tivera unha matriz de números,
por exemplo, 1, 2, 3, 5, 7, 23, 45, 78, 12,323,
e 9 cunha tonelada de 0s despois,
queremos ser capaces de descubrir moi rapidamente o que está en
ese conxunto de números.
Sei que isto parece un pouco parvo e un pouco artificial,
porque agora é.
Temos unha matriz que non ten elementos moi diversos en que,
e se eu pedir un de vós para descubrir se ou non
23 e na matriz, pode facelo moi rapidamente
só mirando para iso e me dicir si ou non.
O análogo a considerar é imaxinar se iso fose, por exemplo,
unha folla de cálculo Excel con 10.000 liñas, 20.000 liñas.
Por suposto, pode facer o comando F ou o F e control de buscar algo.
Tamén pode usar os filtros e as cousas de procura,
pero se tiña que ollar a través dese arquivo liña por liña por liña,
que levaría moito tempo para atopalo.
É tipo como no exemplo do libro de teléfono, tamén, onde
ninguén mira a través dunha páxina dun libro de teléfono de cada vez.
Normalmente, eles non abri-lo ao medio,
ou, no caso dunha serie de libros de teléfono e dicionarios onde
realmente telo introducido na primeira letra,
Xire a primeira carta, abrir e comezar a pasar por alí.
>> Me lembrar do seu nome novo. >> Sam.
Sam.
Como dixo Sam, que o proceso de procura lineal vai ser moi lento,
e, en vez de busca binaria, a forma na que isto funciona é que
cada vez que pasar por unha iteração do noso algoritmo de procura,
imos dividir a lista ao medio, esencialmente,
en dúas listas menores.
E, a continuación, a próxima iteração do loop, imos división lo novo
noutras listas menores.
Como podes ver, o problema segue quedando menor e menor
porque gardamos descartando metade da lista de cada vez.
Como funciona este descarte?
Só como recordatorio, o que imos facer, se fose un ordenador
e nós foron, digamos, buscando o número 5 na lista
que escoller un número no medio.
No medio da lista, porque non son 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 números,
Nós escoller o número, na posición de cuarto ou na posición 5,
e diría que o medio da nosa lista.
Escolla número no medio.
Entón, así como Sam dixo, imos probar a ver se ese número é igual
para o número que queremos chegar ou o noso número desexado.
Se é igual, entón atopamos iso. Nós gañamos.
Se non é igual, entón hai un par de casos.
Os dous casos son ou o número ten que ser maior que o número que estamos mirando,
ou é menor que.
Se é maior, imos pasar á dereita.
E se é menos, nós nos movemos cara á esquerda.
E, entón, repetir todo o proceso de novo
en cada metade da dereita ou da metade esquerda da lista.
>> O primeiro problema na sección de hoxe é descubrir
como podemos realmente comezar a expresar isto no código C.
Temos o pseudocódigo aquí.
O que nós imos comezar a facer é que eu vou tirar-se un novo espazo,
Gardar esta revisión para que teñamos esas notas para máis tarde,
imos borrar todo iso, e en seguida, copiar e pegar a partir do conxunto de problemas
Esta información nos nosos espazos, e espero que iso non rompe.
Perfecto.
Se vostedes todos fan isto, copia e pega este código no seu novo espazo,
nun baleiro.
Imos tentar Daniel. Se compilar e executar este programa, é que funciona?
>> Non O que está dicindo?
El di que o control atinxe final de non-void función.
Si, entón deixe-me tentar executa-lo.
Vós xa viron que antes? Vostede sabe o que significa isto?
Ok, imos dissecar iso un pouco.
Está dicindo, file.c na liña 9, columna 1, temos un erro, como dixen,
e el di que é derivada do aviso de erro eo aviso tipo de retorno.
Parece que algo está a suceder co tipo de retorno, o que ten sentido.
Temos unha función non nula, o que significa que temos unha función
que non volve baleira.
Unha función de baleiro é un que se parece con esta:
void foo (), e é nula, xa que o tipo de retorno é nulo,
o que significa que se nós tivésemos algo aquí
como un retorno, teriamos un erro do compilador para iso.
Con todo, temos unha función non nula.
A nosa función non nula neste caso é a nosa función de busca
porque ten un tipo de retorno de bool.
Cando é dicindo que o control atinxe o fin dunha función non nula,
é porque a investigación non ten unha instrución de retorno.
Non está retornando nada do tipo bool.
>> Podemos fixar iso, eo que é o que vostedes pensan
investigación deberá retornar por defecto?
Cal debe ser o valor de retorno patrón de busca?
Porque é o que podemos poñer na final.
Charlotte, ten algunha-?
Verdadeiro ou falso? >> Verdadeiro ou falso.
Cal?
Falso. Eu non sei.
Falso? Imos tentar.
Por que di return false? Isto é gran intuición.
[Charlotte] Eu non sei.
Nós imos voltar false neste caso, porque este será o noso estándar
Se por algún motivo a lista está baleira ou a agulla
que está a buscar non existe.
Entón, ao final, se non voltar certo anteriormente nesta función,
sempre sabemos que esta función vai dicir non, non é na matriz.
Non é o palheiro.
Agora, se compilar e executar, deixe-me gardar este para que poidamos tirar cara arriba.
Agora, se compilar e executar o noso programa, que constrúe.
Nós temos o noso poder pouco.
Se acertar 4-uh-oh.
Non imprimir nada. Parece que todo rematou ben.
Temos que encher este polgadas
Nós conversas sobre o algoritmo en pseudocódigo un pouco atrás.
Deixe-me ver, senón este,
e eu vou tirar o algoritmo de volta de novo.
Imos bater este cara. Nope.
Non é.
Como podemos facer iso?
O que sería unha boa estratexia para a posta en marcha este código?
Ten que escoller un número no medio.
Como é que imos escoller un número no medio dunha matriz?
Algunha suxestión?
[Estudante] strlen dividido por 2.
Strlen dividido por 2. Isto é un gran.
Strlen traballa con tipos especiais de matrices.
Que tipos de matrices?
Matrices cadea, arrays de caracteres.
É que mesmo tipo de concepto que queremos aplicar,
pero non podemos usar strlen porque non temos unha matriz de caracteres.
Nós temos unha matriz de enteiros.
Pero o que strlen comezar por nós?
Vostede sabe o que está para nós?
[Estudante] strlen queda-nos o longo.
Exactamente, queda-nos o longo.
Strlen recibe a lonxitude da matriz para nós.
>> Como é que imos conseguir isto no noso programa de busca binaria?
Como obter a lonxitude dunha matriz?
[Estudante] strlen?
Pode obter a lonxitude dunha matriz formatada correctamente secuencia C con strlen.
O problema, porén, é que non temos unha matriz de cadea.
Se miramos cara atrás, neste código, temos esa matriz enteiro.
Como sabemos canto tempo é?
[Estudante] Existe un equivalente a un punto final, como int l ou algo así?
Acontece que hai, en realidade, non é, e iso de certa forma, iso é
unha desas cousas que é bo saber sobre C,
que non hai ningunha forma de obter a lonxitude dunha matriz
todo o que eu che dar é a matriz.
A razón traballa con cordas, a razón strlen obras,
é porque se unha cadea está formatado correctamente,
terá que especial caracter \ 0 no final.
>> Tamén pode imaxinar se ten unha cadea formatada incorrectamente
e non hai ningún caracter \ 0 alí, entón a cousa toda non funciona.
[Estudante] Podes engadir o \ 0?
Poderiamos neste caso.
Poderiamos engadir algún tipo de \ 0
ou algún tipo de significar personaxe e entón usar isto.
Pero iso non é moi de ir traballar
porque o 0 \ é un tipo char,
e aquí temos ints.
A outra cousa é que, se fose para usar un valor especial
como -1 a marcar o final dunha matriz
entón nunca podería almacenar un -1 nas nosas matrices enteiros.
Nós estariamos presos.
Acontece que a única forma de obter a lonxitude
dunha matriz en C é, en realidade, lembre que
cando configure-lo e pasalo ao redor coa matriz
de xeito que sempre que eu teño unha función que vai facer algún traballo
nun array de enteiros ou flota ou duplica ou o que ten,
Eu tamén preciso dar a función lonxitude da matriz,
e iso é o que fixemos aquí en función de procura.
Se ollar, o que fixemos cando pasamos na nosa matriz aquí,
que tamén pasan na lonxitude, o tamaño.
Acontece que chamamos esta variable aquí,
este parámetro ou argumento.
Iso é chamado de lista de argumentos da función ou lista de parámetros,
e estes son tamén chamados de argumentos ou parámetros.
As persoas usan termos distintos en momentos diferentes.
Eu ás veces cambiar-los persoalmente.
O que pasa é que esta variable aquí é un nome semellante
a esta # defínese aquí.
Pero eles non son a mesma cousa.
A capitalización non importa.
>> Se ollar para o que ocorre aquí, nós declaramos
nosa matriz int, o que chamamos números.
Nós demos o noso tamaño, o que corresponde ao noso # define-se na parte superior.
Vai ser 8.
E entón, cando entón chamar a nosa función de investigación, debaixo,
pasamos o número que desexa buscar, o que temos solicitado,
obtido a partir do usuario.
Pasamos na matriz, este número,
e, despois, tamén teñen que pasar no tamaño da matriz,
e, a continuación, o valor de tamaño 8 queda almacenado
ou pasados ​​a esta variable tamaño completo chamado.
Temos o tamaño da matriz.
Agora, se volver para o que estabamos falando antes,
Eu creo que Missy trouxo o punto de que o que necesitabamos facer é obter a lonxitude da matriz
e dividir por dous, e que vai dar o punto medio.
Imos ver.
Podo ter alguén escribir este e garda-lo no seu espazo?
Como preto de Leila?
Podo ter escribir isto?
Escribir a primeira liña onde se toma a lonxitude da matriz e obter o punto medio
e almacena-lo nunha nova variable.
Vou che dar algúns segundos. Está preparado?
[Estudante inaudível]
Por suposto, eu podería ter a calcular o punto medio
da matriz palheiro dentro da función de busca
utilizando a lonxitude da matriz palheiro, que é a variable de tamaño?
Nada complicado aquí.
[Leila] tamaño Just / 2 e just-
E garda-lo, e presione o botón Gardar-se aquí enriba,
e imos arrincala.
Perfecto.
Alí imos nós. Impresionante.
>> Como é, este vai compilar?
[Leila] Non, el ten que ser maior.
[Nate] Si, entón o que necesitamos facer?
[Leila] Como punto medio int ou algo así.
Impresionante. Si, imos facelo, int size = punto medio.
Será que isto vai compilar?
Imos borrar este comentario e tiralo do camiño.
O que non se compilado sobre iso?
Nós non estamos facendo nada enteiro,
por iso necesitamos imprimir lo ou algo así.
Si, exactamente.
Nós imos ter unha variable non utilizada.
O que máis non vai traballar sobre iso?
Eu creo que dixo algo, Sam. Punto e coma.
Si, eu estou perdendo os puntos e comas.
Vai ser unha constante ao longo de todo o período.
A última cousa que vou facer é que eu vou poñer algún espazo en branco en ambos os dous lados
deste operador aquí, xa que é normalmente como facemos
de acordo co noso guía de estilo.
Temos o punto medio da nosa matriz.
Agora, nos lembrar de volta ao noso algoritmo,
cal foi o segundo paso que tivemos que facer unha vez que temos o punto medio?
[Estudante] Se é maior [inaudível].
Si, por iso temos que facer algún tipo de comparación, eo que estamos comparando aquí?
Vostede dixo que se el é maior que. O que hai en que a sentenza se refire?
O número que aparece, se é maior que o punto medio, entón a carón da matriz?
Exactamente, por iso o número que aparece cando-
A agulla, polo que estamos comparando coa agulla,
eo que estamos comparando contra a agulla?
Porque a agulla é o que estamos a buscar.
Estamos comparándoo a chegar ao punto medio.
>> Pero será que ten sentido para comprobar
punto medio = agulla?
Isto ten sentido?
Alguén discorda?
Imos tentar, se (punto medio agulla ==).
[Estudante] Non printf vostede o atopou.
[Nate] printf ("Nós descubrimos que \ n");
Se non! Vou comezar a facer algo diferente aquí.
Vou comezar a poñer cintas ao redor de se as declaracións en todo
só porque se nós engadimos máis cousas, entón
Nós non temos os compiladores.
Si, Sam. Ten un punto.
O problema é que o punto central representa unha posición na matriz,
pero pode obtelo para representar o valor en que a posición da matriz.
Isto é un gran punto.
Será que todo o mundo escoitar o que Sam dixo?
El dixo que como é punto medio
representa só unha posición na matriz, pero non é o elemento real na matriz.
Se pensar sobre o código como escrita agora,
se miramos para esta matriz aquí abaixo, que ten 8 elementos que,
o que é o valor do punto medio será nesta función?
[Estudante] 4.
[Nate] 4.
Se olharmos para o número 4 -
e podemos só facer este código e poñer un rostro pouco triste aquí
porque non pensou-se executar este código
como é agora, cargando-o, construción, deixe-me rolar para abaixo,
e miramos para o número 4,
que atopamos, pero non chegar a este printf si.
Unha razón é que nós non volver true,
pero nós realmente atopar o número 4?
E Sam é dicir non.
O que atopamos?
Nós realmente atopamos o punto medio, que se olharmos para a matriz para acá,
vai ser o elemento no índice 4 que estamos mirando,
que é 23.
>> Como é que imos realmente ter ese elemento no punto medio
e non só o punto medio en si?
[Estudante] Nós entraría char ou algo así?
O que tería que facer, só por curiosidade?
Podes elaborar un pouco máis?
Tes de transformar a posición para o número,
así que ten que facer algunha conexión, eu creo que é char, pero pode non ser.
Si, iso é un bo punto.
Estamos facendo unha morea de postos esta convertendo caracteres, eses personaxes,
durante os dous primeiros conxuntos de problemas.
Acontece que aquí, iso é case semellante ao
accedendo o carácter om dentro dunha cadea, se iso ten sentido.
Aquí queremos acceder ao elemento punto medio.
Como podemos facer iso?
Kevin, tes algunha suxestión de como podemos facer iso?
Vostede podería facer palheiro, soporte aberto, medio, pechou soporte.
Podes escribir isto por nós?
Garda-lo aquí, e nós imos tirar isto.
Estamos mirando para esa liña 9,
e nós estamos entendendo que nós non queremos comparar a agulla para o punto medio,
pero en vez diso, queremos comparar a agulla
para o elemento no punto medio posición dentro da nosa matriz palheiro.
Cool.
Alí imos nós.
Si, iso parece moi bo, si (== agulla palheiro [punto medio]).
Atopamos.
Agora, se executar o código de volta we'll-se un pouco bits
el compila, é executado, e agora miramos para 4,
non atopamos, porque agora estamos realmente empezando a número 23.
Estamos recibindo o valor de 23, e iso é o que estamos comparando a nosa agulla.
Pero iso é bo. Este é un paso na dirección certa.
>> Isto é o que estamos intentando facer.
Non estamos tentando comparar a agulla contra posicións na matriz
senón contra os elementos reais da matriz.
Se miramos para atrás de novo, agora a próxima etapa no noso algoritmo,
cal é o seguinte paso?
Leila xa mencionado brevemente.
[Estudante] Asegúrese de que é maior ou menor que e, a continuación, decidir que o camiño a se mover.
[Nate] Si, entón como é que imos facelo?
Podes poñer algún eu vou-gardar esta revisión,
e, a continuación, se pór en algunhas liñas que vai facer iso.
Si, Charlotte. >> Eu teño unha pregunta.
Se non é punto medio - 1, porque o primeiro é
é 0 indexados, polo que se poñemos 4, que non é realmente o personaxe que está buscando?
Si, e outro problema que se
iso é unha gran captura, porque o que vai acabar acontecendo, posiblemente,
manter en movemento e nós nunca axustar inicialmente?
Eu creo que o que pode acabar facendo é tentar acceder
o elemento na posición 8 da matriz,
que neste caso non existe.
Imos querer facer algún tipo de contabilidade para o feito de
que temos unha indexación cero.
[Charlotte] Sentímolo, eu quería dicir punto medio - 1 entre corchetes.
Podemos facelo.
Volveremos a esta cuestión un pouco.
Unha vez que comezan a chegar ao looping real,
que é cando nós imos realmente ver iso entrar en xogo.
De momento, non podemos facelo, pero está totalmente certo.
Que a indexación cero terá un efecto que é preciso explicar.
Imos ver.
>> Como é a maior e menor que-?
[Estudante] chegar a facer o maior e menor do que a parte.
Eu só non tiña seguro de que imprimir, se cre que é menos que o punto medio palheiro ou superior.
Aquí podo gardar o que I've-
[Nate] Si, si gardar o que ten, e nós imos puxa-lo cara arriba.
Alí imos nós.
[Estudante] E eu poñer puntos de interrogación para o que eu non sabía.
[Nate] que parece gran.
Aquí temos puntos de interrogación, porque aínda non sei
o que imos facer moito aínda.
O que queremos facer oops, temos algunhas claves todo funky en nós.
Imos corrixir esas chaves.
Alí imos nós.
E entón o que queremos facer, de acordo co noso algoritmo,
se non atopa a agulla?
Dicir no caso de que a agulla é menor que o que estamos mirando. Kevin.
Só ollar para a media esquerda.
Certo, entón imos poñer un comentario aquí que di "mire para media esquerda."
E se a agulla é maior que o palheiro no punto medio, o que queremos facer?
[Estudante] Entón mira para o lado dereito.
Olle para o lado dereito, "ollar para a metade dereita."
Nada mal.
Ok, entón, neste momento, as cousas están moi ben.
O problema co código como está escrito é o que?
[Estudante] Non ten parámetros para as metades.
Certo, que non teñen puntos de extrema para as dúas metades.
Tamén vai só para pasar por iso unha vez.
Só imos ollar para un punto medio.
Ou o elemento está aí, ou non é.
A fin de completar isto, imos ter que facer algún tipo de repetición.
Necesitamos manter repetindo ata descubrimos que
ou o elemento está aí porque reducimos e, finalmente, atopou,
ou non está aí porque nós miramos a través de todas as cousas
nas metades correspondentes da matriz e descubriu que nada está aí.
>> Sempre que teño esa repetición suceder, que é o que imos usar?
[Estudante] Un loop.
Algún tipo de lazo. Si
[Estudante] Podemos facer un loop do-while e telo facer, e, mentres
a agulla non non é igual-Estou seguro de onde eu estaba indo con iso.
Pero tipo como facelo, sempre que non valora o igual que a entrada do usuario.
Si, entón imos ver como iso pode escribir-se?
Vostede dixo que imos usar un lazo do-while.
Onde é que o facer de inicio?
[Estudante] Logo tras o tamaño / 2.
[Nate] Ok, eo que é o que imos facer?
Imos encher o tempo despois.
O que imos facer?
[Estudante] Non queremos facer todo o que temos na parte de?
[Nate] facer todo isto, xenial.
Copiar e pegar.
Oh, cara.
Imos ver se isto funciona, se pudermos guía sobre iso.
Bonito.
Ok, e gardar este para que vostedes teñen.
Todo ben, e nós imos facelo mentres-
Cal era a condición, mentres estaba despois?
[Estudante] Mentres a agulla non é igual, entón como o punto de exclamación.
Pero eu non sei exactamente o que é aínda.
[Nate] Si, esta é unha forma de facelo.
Sam, ten un comentario?
[Sam] Esquecín cando eu olhei para os vídeos,
Eu tomei unha imaxe dun dos o-como cando fixemos o pseudocódigo para el,
había algunha relación entre Max e min.
Creo que foi algo así como o máximo é sempre menos de min.
Entendín.
[Sam] ou como se Max non sexa inferior a min ou algo así,
porque iso significa que investigou todo.
>> Si, entón que é o que soa como máximo e mínimo estaban referíndose?
[Sam] valores que enteiros que van cambiar
en relación a onde imos colocar o punto medio.
Exactamente.
[Sam] Nese punto, el vai [inaudível] calcular o máximo e mínimo.
Punto medio é esta idea de Max e min.
Isto ten sentido para as persoas?
Se tivésemos que comezar a ollar para como imos facer esa iteração,
está totalmente seguro que queremos usar algún tipo de do-while.
Pero eu creo que, se lembrar o que está pasando no lugar desa matriz
eo que está realmente a suceder! Vou escribir aquí-
na primeira iteração de investigación binaria, temos-
Vou usar B e e para denotar o principio.
E entón, o fin da nosa matriz.
Sabemos que o comezo é a 4 ben aquí,
e sabemos que o fin está en 108.
Dicir que estamos a buscar o número 15.
A primeira vez que facemos isto, como vimos anteriormente,
o punto medio é ou vai ser 16 ou 23
dependendo de como calcular as cousas.
Dende uniformemente dividindo o medio nos daría este espazo
entre 16 e 23, non é posible división lo uniformemente
ou división lo e chegar a un punto medio certo.
Nós imos ollar para 16.
Nós imos realizar "Ei, 16> 15, que estamos a buscar."
Para, a continuación, ollar para a metade esquerda da matriz
o que vai acabar facendo está descartando
Esta porción superior enteira
e dicindo: "Ok, agora o noso punto final vai ser aquí."
A próxima iteração do noso circuíto, agora estamos mirando para esa matriz,
eliminar eficazmente esta porción, porque agora
se está a tomar o punto medio como a diferenza entre o inicio e fin,
atopamos o noso punto medio para ser 8,
que pode entón comprobar 8 para ver onde está en relación ao número que estamos a buscar,
15, creo que 15 é maior,
por iso temos que pasar a parte dereita da lista,
que sabemos porque somos seres humanos, e podemos ver iso.
Sabemos que a parte dereita vai ser onde atopalo,
pero o ordenador non sabe que, así que imos facer é que vai realmente
ter este ir para arriba, e agora o comezo eo fin
son o mesmo punto, de xeito que o punto central convértese no único número da lista, nese punto,
que é de 15, e atopou-o.
Será que publicar algunha luz sobre onde este máximo toda e notación min vai,
manter o control dos puntos finais da matriz, a fin de descubrir
como estreitar as cousas?
>> O que sucedería se non fose igual a 15 agora?
O que se estivésemos mirando para 15 e, en vez diso, este número tamén foron 16?
Nós diriamos, "Oh, é maior.
Queremos volver para a esquerda. "
E nós mover a nosa e para a dereita,
en que punto temos un terminal que sería conflitante.
Non sería capaz de buscar calquera máis elementos
porque agora temos o noso punto final eo noso punto de partida,
o noso máximo eo noso min, están agora viradas.
Buscamos a través de toda a matriz. Non podo atopar nada.
Ese é o momento en que queremos dicir: "Ok, imos deixar este algoritmo.
Non atopamos nada. Nós sabemos que non está aquí. "
Como é que isto vai?
[Estudante] Como exactamente o ordenador cambiar o final?
Como o final acabar antes do inicio?
O final acaba antes do inicio
por mor da matemática que imos facer cada vez que facemos isto.
A nosa forma de intercambiar é que se ollar para a primeira vez que facemos este intercambio
en que ten inicio a 4 e un extremo
todo o camiño ata a 108 eo noso punto medio, digamos, en 16 -
Eu estou indo a recuperar iso de volta para 15 se nós estamos mirando para o 15,
sabiamos que o que fixemos cando fixo a 16 e viu que era maior
e quería descartar toda a parte dereita da lista,
vimos que o que nós queriamos facer é mover este aquí.
Efectivamente, o e foi movido para un antes do punto medio.
Do mesmo xeito, cando fixemos esta iteração do algoritmo
É o punto medio era de 8,
verificouse que 8 <15, entón nós queriamos para mover o b
un pasado do punto medio.
Agora, no inicio e no fin son os dous xuntos no 15.
>> Se tivésemos sido suceder para buscar algún outro valor, e non 15,
ou se o 15 fora unha vez 16,
teriamos atopado o e queremos pasar unha antes do punto medio.
Agora o e estaría alí capotou menos que o b.
Imos examinar como podemos realmente acabar este algoritmo de codificación.
Sabemos que queremos ter ese cálculo punto medio.
Sabemos tamén que pretende controlar o inicio e fin da matriz
da nosa matriz actual, para que poidamos descubrir
onde esta metade esquerda da lista é e onde a metade dereita da lista está.
Nós facemos iso cun inicio e fin,
ou podemos chamalos de mínimo e máximo.
Vou usar comezar e rematar este tempo.
Cando comezamos, se olharmos para o noso exemplo aquí,
noso comezo foi definida para o inicio da matriz, como natural.
O índice foi iso? O que debe ser a nosa comezar?
Daniel.
[Daniel] Haystack [0].
[Nate] Si, entón nós poderíamos define-lo igual ao palheiro [0].
O problema, con todo, é que esta non nos dá a posición do primeiro elemento.
Isto dá-nos o índice do primeiro elemento ou o valor real en que a primeira posición.
[Estudante] Isto converter a 0,20?
[Nate] O que isto vai facer é, así, el non vai facer calquera conversión.
O que vai facer é que vai almacenar un 4 en comezar,
e despois será difícil facer comparacións contra comezar
porque begin vai realizar o valor de 4,
que é o inicio da nosa matriz,
pero queremos seguir os índices na matriz
ao contrario dos valores.
Nós imos realmente usar a 0, así.
Cara ao final da matriz-Charlotte trouxo esta un pouco máis cedo.
Este é o lugar onde nós imos ter en conta a indexación cero.
>> Charlotte, que é o final da matriz?
O que é o índice da extremidade?
[Charlotte] Tamaño - 1.
Si, e que o tamaño que debemos usar?
Debemos usar o tamaño de capital ou tamaño minúsculo?
Tamaño Capital.
Neste caso, poderiamos usar o tamaño de capital.
Se quixésemos esta función para portátil
e use esta función noutros programas,
podemos realmente usar o tamaño minúsculo.
É bo tamén.
Pero Charlotte é totalmente certo que queremos ter tamaño - 1.
Neste punto
[Estudante] Como é que pode usar o tamaño maiúscula?
Como é que nós poderíamos usar tamaño maiúscula?
Acontece que estes # define son realmente,
baixo o capo, un texto como localizar e substituír, se iso ten sentido.
Cando compilar o código, a fase de pre-procesamento
do compilador pasa o arquivo
e mira para todas as partes que escribiu tamaño capital,
e substitúe o texto, literalmente, con un 8, só como aquel.
Nese sentido, iso é moi diferente dunha variable.
Non ocupa espazo na memoria.
É un truco sinxelo substitución de texto.
Neste caso, imos empregar o tamaño.
A partir de aquí, quero facer algún tipo de repetición,
e que estamos no camiño correcto co noso lazo do-while.
Queremos facer algo ata que unha condición non máis se,
e como vimos anteriormente, vimos que esa condición
era de feito que nós non queremos o fin
ser menor que a comezar.
>> Esta é a nosa condición de parada.
Se isto ocorrer, queremos parar e declarar como "Ei, pero non atopamos nada."
Para expresar iso, queremos usar algún tipo de lazo.
Neste caso, sería un loop do-while, un loop, loop de un tempo?
Temos un lazo do-while aquí.
Vostede caras como esa visión?
Pensas que debemos tentar unha visión diferente?
Kevin, todos os pensamentos?
Nós poderiamos ter un loop while porque sabemos máximo
sería maior que a de calquera maneira min iniciais.
Si, por iso non hai inicio que debe acontecer.
Os lazos facer mentres-son grandes cando ten algo para arrincar
antes despois probar, mentres aquí
sabemos que non imos manter reinitializing tanto comezar e rematar
Cada volta do loop.
Sabemos que queremos para arrincar-los, a continuación, comprobar a nosa condición.
Neste caso, realmente ir con un loop while simple.
Acontece que facer mentres loops son usados ​​moi raro.
Unha morea de lugares tan sequera ensinan que mentres loops.
Son bos para xestionar a entrada do usuario, de xeito que vimos moitos deles ata agora.
Pero normal para e mentres lazos son moito máis comúns.
Acontece que esta condición como escrito
non vai realmente facer-nos moi ben, e por que isto?
Sinto moito, eu non sei o seu nome.
Estou Jerry. >> Desculpa?
B-O-R-L-I.
Ah, ok.
Eu non vexo que na miña lista.
Ah, é porque, oh, iso ten sentido.
Vostede ten unha idea de por que isto loop while pode non funcionar como desexado,
como escrito coa condición?
[Jerry] É dicir, como quere todo o material despois de no-?
Si, entón esta é unha.
Quizais teñamos que poñer todas esas cousas para o loop while, o que é totalmente certo.
A outra cousa que é un pouco máis problemático, pero é que esta condición non funciona.
[Estudante] Debe lanzalo.
Certo, entón esta condición non será sempre certo, inicialmente a forma que nós conversas sobre iso.
Queremos facer algo ata <final comezar,
pero queremos facer algo mentres
comezar a finais ≤.
>> Hai que a inversión da lóxica de alí.
Eu son culpable de cometer estes erros o tempo.
[Student] Por que ten que ser menor ou igual a?
Porque se lembra do caso que temos que
onde había só un elemento, e fomos cara a abaixo,
e nós estabamos mirando só o 15 na nosa matriz?
E o noso principio eo noso fin fose o mesmo elemento.
Queremos estar seguro de que lidamos con ese caso.
Se fixésemos unha recta menor que,
que só sería capaz de descender a unha matriz de dous elementos.
Así que descendeu a último elemento que, se fose ese o noso elemento, nós nunca atopalo.
Agora, aquí, podemos facer exactamente o que estaba dicindo.
Podemos comezar plopping cousas ben no medio do noso loop while.
Podemos plop no noso punto medio.
Podemos tomar todas estas declaracións que,
retirala los deste lazo do-while,
plop-los,
limpar as cousas un pouco,
e eu vou adiante e salvar esta revisión.
E, neste punto, estamos quedando moi preto.
Sam.
Eu creo que tamén ten que ter punto medio int = tamaño - 1/2.
Peguei tamaño - 1/2.
Hai algo que necesitamos cambiar sobre esa liña?
Iso foi unha boa captura.
>> O que o tamaño fai? Estamos sempre cambiando de tamaño?
Co fin de manter a liña como este, hai que cambiar o tamaño.
Temos que cambiar o tamaño cada vez que volta para o lazo.
Pero lembre, cando estabamos pasando por noso exemplo un pouco máis cedo,
e tivemos o inicio a 4
e ao final todo o camiño en 108?
Como calculamos o punto medio?
Estabamos a usar o tamaño?
Ou estaban usando comezan e terminan en vez diso?
É a diferenza entre o extremo é o inicio.
Exactamente, e exactamente como eu debería escribir que, Charlotte?
Basta finalizar - comezar.
Non é preciso facer a - 1
porque a - 1, foi incluída no final e comezar xa.
[Nate] Gran, está totalmente certo.
Nós non temos que facer o - un porque - unha foi incluído
e contabilizados cando inicializar a variable final.
>> Hai algo que eu teño que facer para ter sintaticamente esta liña ten sentido?
[Estudante] Ademais comezar. >> Ademais comezar?
[Estudante] Ao final.
Porque é calculado só a metade da lonxitude.
Debe engadir a comezar.
[Nate] O que este cálculo para nós?
Se pensamos sobre o fin desta primeira iteração do loop,
final vai ser o índice de posición 7.
Comezar está na posición 0.
Lembre, nós estamos mirando para calquera
posición 3 ou da posición 4.
Se miramos para esta matemáticas, só para facelo un pouco máis tanxible,
poñer algúns números aquí, temos 7, 0,
para 7-0, e despois / 2
é 3 na división enteira, o que é.
Entón necesitamos entón engadir de volta o noso comezar?
Non facer neste caso.
Na primeira iteração, só pode ir ben, porque comezar é 0.
Pero a medida que avanzamos, nós realmente só precisa de todos
final - Comezar / 2.
Hai outro truco aquí, e que é un saber de precedencia.
[Estudante] Necesitamos parénteses?
[Nate] Exactamente, e iso é porque non poñer eses parénteses,
a continuación esta liña será interpretado en vez
como (final) - (inicio / 2), que en definitiva non quere.
Coidado coas normas de precedencia.
[Estudante] Por que non é acabar + comezar?
Por que non é acabar + comezar?
[Estudante] Por que non é isto?
Por que sería +?
Eu creo que está certo.
[Estudante] Porque é a media?
[Nate] + End comezar, está totalmente certo.
Guau, eu totalmente gozado. Está certo.
Se estivésemos facendo o menos, queremos engadir a comezar cara atrás dentro
Neste caso, é moi certo que queremos tomar a media dos dous,
así que nós queremos para engadila los, en vez de restar-los.
[Estudante] Isto tamén funciona se fixo final - Comezar / 2 + comezar.
Sería se non facemos-Creo que si.
>> Por exemplo, se estivésemos mirando para comezar,
e cambiamos iso aquí
ao 15.
Agora é comezar na posición 2.
Final é na posición 7.
Subtrair-los, temos 5.
Débeda iso por dous, temos 2.
E, entón, engadir 2 de volta,
e que nos leva á posición 4,
que está aquí, que é o punto medio.
[Estudante] Necesitamos coidar de embrulho?
En que sentido é que necesitamos coidar de embrulho?
Se a suma ou a diferenza entre
dependendo da forma como o facemos non é un número par.
A continuación, o ordenador está confuso cando é 2,5;
se se mover á esquerda ou á dereita para determinar cal é o punto medio?
Entendín.
Acontece que coa división enteira,
nunca obter estes números de punto flotante.
Nós nunca obter o decimal.
É totalmente descartada.
Se vostede ten un ordenador dividir dúas variables int
e unha é 7, e outro é 2,
non vai ter como resultado 3,5.
El vai estar 3.
O resto será descartado, por iso é efectivamente redondeo
Nin un, pero si un chan, se vostedes están familiarizados co que, en matemáticas,
onde descartar completamente a decimal,
e por iso está esencialmente truncando-lo para o máis próximo
posicións, para o número enteiro máis próximo.
[Estudante] Pero entón iso é problemático porque se ten un conxunto de sete elementos
a continuación, que asume automaticamente o elemento 3 para fóra do punto central, en vez do 4.
Como tratar con isto?
É problemático porque se tivésemos unha matriz de 7,
ía incorporarse o terceiro lugar do cuarto.
Podería explicar un pouco máis?
[Estudante] Porque se ten 7 elementos, entón o elemento 4
sería o punto medio, non?
Teña en conta que o seu comentario sobre ser cero indexados, no entanto.
[Estudante] Si, entón en posición 3. Ese sería o punto medio.
Si
Ah, ok. Eu vexo o que quere dicir.
É medio raro, como se acostumar con esta noción de
librar-se de cifras decimais.
Isto é un gran punto.
Imos acabar con iso.
Nós calculamos o punto medio.
>> Estamos probando a ver se a nosa agulla é igual ao valor medio.
Estamos imprimindo que atopamos, pero realmente, o que queremos facer nesta situación?
Descubrimos que, por iso queremos que o chamador información que atopamos.
Temos unha función que é unha función booleana ingresaran.
A nosa forma de sinalizar para o chamador da nosa función de que estamos preparados para ir
que dicimos: "Ei, iso é certo."
Como poderiamos facelo, Kevin?
Vostede está acenando coa cabeza. >> [Kevin] regreso Engadir verdade.
[Nate] Exactamente, voltar true.
Agora, se non é igual, como é que miramos cara á esquerda?
Algunha idea?
Stella, algunha idea?
Debe establecer unha nova posición para o final.
Si
Entón, nós temos que facer a posición de punto medio - o fin.
Grande.
Necesitamos definir unha nova posición para o final
ollar para a metade esquerda.
Iso foi o que falamos antes, onde
Eu sigo volvendo para este exemplo.
Teño a comezar, e entón eu teño o fin de todo ata aquí.
>> Unha vez máis, se nós estamos mirando para 15, eo noso punto medio é de 16 anos,
e entender, "Oops, 16 é maior.
Queremos pasar á media esquerda. "
Nós, entón, pasar o fin do 15,
e facemos isto tomando un lonxe do punto medio
e da definición que o noso novo fin.
Do mesmo xeito, se queremos mirar cara a metade dereita, como é que imos facelo?
Tes unha idea?
[Estudante] Vostede acaba de comezar a definir o punto medio + 1.
[Nate] Grande.
E agora no caso de que non atopar nada,
non que estar resolto por nós?
Daniel, iso tidos en conta, de para nós?
[Daniel] Non
[Nate] Se facemos isto a través da matriz enteira e non atopar nada,
onde tería que ser coidado, ou debemos coidar dela?
[Daniel] A condición momento.
[Nate] Si, a condición de tempo, exactamente.
El vai coidar de pasar por toda a matriz se non atopa nada.
Este loop while vai acabar.
Nós nunca encontrou esta condición,
e podemos voltar falso.
Tamén pode deixar que aquí como esta
porque se esta afirmación é certa se,
ea nosa función vai volver,
e así imos esencialmente abortar esta función neste momento
cando retornar true.
Pero o que acontece con esta estrutura aquí?
Será que isto vai funcionar totalmente ou se hai algunha falla lóxica aí?
>> Hai algunha falla lóxica alí, coa forma como é creado.
O que pode ser?
[Estudante] Por que precisa - e + 1s?
Que define a nosa matriz para ser o noso novo media esquerda e media dereita.
[Estudante] Pero por que non podería facelo sen o - 1s e 1s +?
[Nate] Podemos define-lo igual ao punto medio?
O que pode ser problemático niso?
[Estudante] Coido que é ineficiente porque está comprobando un valor que xa foi comprobado.
[Nate] Exactamente, por iso Sam é totalmente certo.
Se definir o fin eo inicio igual ao punto medio
en vez de - 1 e + 1 reflexivamente,
nalgún momento no futuro, vai acabar comprobar o punto medio de novo.
[Estudante] eu comece a pset, e entón eu tiven algo parecido
onde eu esquezo o 1 +, e el ficou preso nun loop infinito.
Certo, porque nalgún momento nunca vai comezar e rematar
que realmente se sobrepoñen.
Cool.
Hai unha falla lóxica, e iso é que este debe ser definitivamente
unha persoa.
Por que podería ser?
>> A razón é que non é unha persoa se viu iso, Kevin?
[Kevin] Si, porque está cambiando o punto final.
[Nate] Exactamente.
Estamos cambiando o punto final,
e se é escrito así we'll-crear espazos entre-
ha comprobar este problema.
Neste caso, se é exitoso, vai abortar fóra da función.
A continuación, el ha comprobar este caso seguinte,
e esta é acertada, ha axustar o punto final,
e despois continuará e comproba neste caso.
Pero neste momento, non quere que siga a comprobar.
Afortunadamente, non temos axustar o punto central aquí,
e sabemos que este caso non terá éxito.
Pero nós sempre queremos poñer o outro alí
a pesar de que podería en caso de que esta
unha vez que non está axustando o punto medio, tería que facer a diferenza?
Non, porque todos estes casos son exclusivas.
Unha vez máis, foi mal.
Non, eu creo, que diso máis se.
Podemos darlle un intento e executa-lo e ver o que acontece.
Edificio, un erro.
Probablemente é porque eu deixei estes de b e e, en aquí.
Eu teño máis daqueles arriba?
Non se parece con el.
Nós zoom out, construír,
alí vai, agora buscar 15,
Si
Deixe-me facer zoom in
15, si. Podemos executa-lo de novo.
Carga de código fonte, a construción, en execución.
Podemos buscar algo como 13,
e nós non temos nada de imprimir, por iso non está descubrindo que para nós.
Isto é óptimo, porque non está na nosa lista.
>> Estamos agora fóra do tempo.
Isto vai ser el para esta semana.
Grazas por unirse, e ve-lo máis tarde.
>> [CS50.TV]