[Powered by Google Translate] LEXI ROSS: Bueno, hola a todos.
Bienvenidos a la primera CS50 supersección.
Esta será la única semana de supersections.
Después de esto, se le va a regular con su sección
asignado TF.
Pero esta semana, lo estamos haciendo en un poco de una diferente
formato, aunque el formato actual, cómo se va a ir
durante la siguiente hora y media más o menos, va a ser bastante
similar a lo que se le viera por
el resto del semestre.
>> Entonces, ¿qué vamos a hacer es empezar por ir a través de la
sección parte de su conjunto de problemas.
Así que si usted ha leído sobre el conjunto p, que esperamos que pueda tener,
verás que hay una parte que se llama "A la Sección de
Preguntas ", y estos están destinados a estar fuera
otra vez en sus secciones.
Así que tienes una ventaja por estar aquí, en que se llega a
repasar estas cuestiones más conceptuales basados.
Y después de eso, vamos a ir en los dos últimos
preguntas sección, que son más buceo
a preguntas de codificación de tipo.
Así que estamos realmente van a tener ustedes tomar unos pocos
minutos para cada pregunta, trate de resolverlos por su cuenta, y
entonces vamos a reunirse con el nuevo CS50
Espacios de herramientas y repasar las respuestas para que todos tengan la
código correcto para su revisión.
>> Así que un par de anuncios.
No se olvide que hay horario de oficina cada noche de esta
semana en Annenberg 8 a 11, por lo que toman
ventaja de aquellos.
Y también, no arranque el p demasiado tarde en la semana.
Comience esta noche o mañana por la noche a más tardar.
Usted se arrepentirá si usted espera demasiado tiempo para empezar
y que tenga problemas.
Así que nuestro consejo y definitivamente comenzar temprano.
Esto va a ser una buena manera de empezar a trabajar con
estas preguntas de sección.
Así que estoy Lexi, por cierto.
Soy un TF.
Y este es Dan, que también es un TF.
Dan Bradley: Hey, chicos.
LEXI ROSS: Y él va a conseguir
comenzó con las preguntas.
>> Dan Bradley: Muy bien.
Así que voy a introducir un poco compilador pareja
cuestiones que vamos a hablar y sólo tiene que ir a través de
algún tipo de ideas conceptuales que tenemos que ejecutar realmente
código, ya sea en un aparato o con nuestra especie de falso
electrodomésticos, Ejecutar CS50 y Spaces.
Así que vamos a ver si alguien en la audiencia tiene alguna idea
acerca de lo que estamos hablando.
>> Entonces, ¿qué es una biblioteca en el contexto del código?
Alguien tiene alguna idea?
Bien.
Sweet.
PÚBLICO: Al igual que un balance de las funciones que otra persona
ya está programado que podemos construir?
Dan Bradley: Exactamente.
Así que una biblioteca es un stock de funciones que otra persona
ha programado ya que no tiene que
nos vuelve a poner en práctica.
Así que tenemos cosas como el estándar de E / S de la biblioteca, el
cs50.h biblioteca, que son cosas que el mundo, la
Internet, el personal ha hecho que hace que nuestra
vida más fácil como codificadores.
Entonces, ¿cómo imprimir las cosas a una pantalla?
No tengo ni idea, printf lo hace por mí.
Es algo que alguien más ya ha hecho que sea
impresionante y funciona bastante bien.
>> Bien.
Así que para usar las bibliotecas, por otro lado, sin embargo, tiene
para hacer realidad algunas cosas extra con su código.
Así que hay que usar cosas como esta # include.
¿Qué significa eso?
¿Qué papel tiene que jugar cuando lo tienes en un programa?
AUDIENCIA: Te permite hacer uso de todas las funciones que son
[Inaudible]
biblioteca por el simple uso de las definiciones que ya tienen
[Inaudible]
biblioteca.
Dan Bradley: Muy bien.
Te permite tirar las funciones de biblioteca en el código, pero
lo hace de una manera que no es exactamente el mismo que como
-Lcs50, que vamos a llegar en un minuto.
Simplemente deja que el compilador sabe que hey, no son éstos
funciones que van a surgir en su código.
Tenga en cuenta que si no están completamente descritos en el código
que está delante de ti, hay algo de función de biblioteca
que se va a hacer cargo de ella.
>> Así, en el caso de printf, que vamos a repasar un par
los tiempos de hoy, es el estándar de E / S de la biblioteca.
Así que aunque no se define printf cualquier parte de mi código embargo, la
estándar de E / S se encarga de ello para mí, y voy a hacer # include
stdio.h, y que se tire en estas funciones que
no siempre han definido.
Entonces, ¿cuál es la diferencia, entonces, entre el # include
y-lcs50?
¿Qué hace-lcs50 hago cuando lo pasan a la
compilador, como Clang?
Alguien tiene alguna idea?
Bien.
¿Sí?
AUDIENCIA: Le permite acceder a la biblioteca CS50?
DAN BRADLEY: Le permite acceder a la biblioteca CS50 en
que le dice al compilador, Clang, que bueno, aquí es donde
que seguir para conseguir estas funciones.
Así que el # include dice que hay
estas funciones en alguna parte.
El lcs50-dice, voy a este lugar en el equipo -
esa es la biblioteca CS50 -
y tire hacia arriba el código real para estas funciones.
¿Eso tiene sentido, todo el mundo?
>> Así que estas son todas las cosas que van a ayudar a su compilador
junto con hacer que el código ejecuta realmente.
Una pregunta rápida.
¿La gente sabe lo que es un compilador?
Buen sentido?
Se trata básicamente de tomar el código escrito que usted tiene,
convertir a binario, la conversión en código de máquina,
por lo que su computadora puede entender.
Y sin más preámbulos, vamos a entrar en la más
actuales ejercicios de codificación que ustedes van a pasar un buen rato
hundiendo sus dientes en, y Lexi a ir sobre eso.
>> LEXI ROSS: De acuerdo.
Awesome.
Así que vamos a ir más de dos preguntas aquí.
Así que la primera es en realidad, se puede ver, es un poco
pequeño aquí, pero esencialmente le está pidiendo que
escribir un programa para tomar un poco de entrada del usuario.
No estoy seguro de por qué hay un cuadrado negro allí.
Es misterioso.
Debe estar bien, sin embargo.
Por lo tanto, quiere que usted tome una entrada de usuario en grados Celsius, convertir ese
a Fahrenheit, y luego indicar al usuario cuál es la temperatura
estaría en Fahrenheit.
Así se puede ver una muestra de entrada / salida de secuencia aquí.
Las entradas de usuario - después de Celsius, la negrita se refiere a
de entrada del usuario.
Así el usuario introduce 100, y las salidas de programa
Fahrenheit, 212,0.
Y una distinción importante en este programa es que estamos
va a tener un solo decimal, así que vamos a ver cómo se hace
que también.
Y otra cosa a tener en cuenta es que estamos usando a.out
porque Clang, el compilador automáticamente los nombres de su binario
archivos a.out a menos que se especifique con una bandera determinada para dar
que su propio nombre, pero por ahora sólo vamos a utilizar el
defecto, a.out.
>> Así que realmente tome unos minutos y trate de escribir
algo de código para estos mismos.
Así que es 4:15.
Así que a las 4:20, vamos a volver y - oh bien.
Espacios.
Cool.
Esto es algo así como lo que llamamos código esqueleto en que
es un esqueleto, pero hay que rellenar la carne de la
programa para hacer realidad lo ejecute.
Así que usted puede ver las directivas # include para incluir hasta allí
CS50 y stdio.
Señalé en un comentario de la fórmula actual para la conversión de
Celsius a Fahrenheit, en caso de que no me acuerdo de alto
ciencias de la escuela o lo que sea.
Y esto es sólo un esqueleto para
la función principal real.
Así que todo lo que escriba se va a ir aquí.
Y con el fin de conseguir realmente a este espacio -
Espacios para CS50 se puede acceder usando esta URL, que Dan es
va a escribir en la pizarra, y voy a dictar también.
DAN BRADLEY: cs50.net/spaces--
LEXI ROSS: / qWLc -
Lo siento, y.
DAN BRADLEY: Y?.
LEXI ROSS: No, no, no, no.
Eso está bien.
qYLcYWfg.
Por lo tanto, debería ver tipo de todos los nombres de aparecer aquí.
>> Awesome.
Esto se ve muy bien.
Esto significa que las personas se están uniendo al espacio.
Así que si usted no ha tenido la oportunidad de jugar en
Espacios sin embargo, esto es realmente lo que va a utilizar
con tus TFS en la sección durante todo el semestre.
¿Cómo funciona es clase de todo el mundo escribe su propio
código, y nadie lo puede ver hasta que se pulsa el botón Guardar
botón, lo que estoy señalando en este momento.
Así que voy a presionar Guardar, y si van todos a mi nombre,
que debe ser capaz de ver en personas de este
Espacio, que es Lexis Beryl Ross.
Entonces, ¿cómo se va a ver se hace clic en mi nombre, y
vas a ver Revision 5, que
es la última revisión.
Copiar sólo Revisión 5 en su espacio haciendo clic sobre ella.
>> Está bien.
Así que vamos a ir a través de este problema juntos, y estoy
en realidad va a escribir el código aquí arriba en la pantalla.
Puedes ampliar un poco.
Y luego, una vez que haya terminado, usted puede copiar mi última revisión
en su espacio, si quieres ver la solución final.
Ahora, Spaces tiene la capacidad de que me vaya y vea cualquiera de
el código que ustedes han escrito, pero sólo porque es
una sección grande y en realidad no tienen la misma
tipo de capacidades de discusión como una menor
sección, sólo vamos a ir a través y me voy solo
para escribir el código.
Pero definitivamente me detiene con preguntas en cualquier momento.
Vamos a ir a través de él especie de paso a paso para hacer
asegurarnos de que entendemos cada parte de lo que está pasando aquí.
¿Todo mundo puede ver este texto en esta lista?
¿Alguien quiere más grande?
>> Entonces, ¿qué es lo primero que vamos a hacer aquí?
Bueno, en esencia, ya que queremos obtener el aporte de la
usuario y queremos que sea una especie de buena experiencia para el
usuario, que en realidad quiero decirles lo que estamos buscando.
Así que vamos a imprimir exactamente lo que queremos formar parte del usuario.
Así que no te molestes en levantar la mano, sólo tiene que recitar de un tirón.
¿Cuál es el comando para imprimir algo en la pantalla?
AUDIENCIA: printf.
LEXI ROSS: Awesome.
Bueno, por lo printf.
>> AUDIENCIA: Hey, Lexi?
[Inaudible]?
LEXI ROSS: Claro.
Así printf, como hemos visto con frecuencia en la conferencia, es el
mandar a imprimir algo en la secuencia de salida estándar.
Por eso queremos pedir al usuario que introduzca un
temperatura en grados Celsius.
Y ahora, en realidad quiere tomar la entrada que dan
nosotros y almacenarlo en una variable.
Así que hemos aprendido un poco acerca de los tipos.
¿Puede alguien recordar el tipo que quiere para una variable
con una cifra decimal en ella?
AUDIENCIA: Float.
LEXI ROSS: Float.
Sí, impresionante.
Es un flotador.
Así que.
¿Y cómo vamos a - gran pista - obtener el
flotar por parte del usuario?
AUDIENCIA: GetFloat.
LEXI ROSS: Eso es.
Cool.
Y el usuario se podrían decir y trataremos de dar una
número negativo, ¡pero no se preocupe por eso para este
problema ahora.
Usted va a preocuparse de que un poco más en su
tarea en el conjunto de problemas.
>> Así que vamos a suponer que nos dan un buen número, y ahora nos
en realidad tienen que convertir ese flotador de Celsius a
Fahrenheit.
Así que vamos a consultar nuestra fórmula hasta aquí, y vamos a crear un
nueva variable y lo llaman Fahrenheit.
Estudié la ortografía.
Es un poco loco, lo sé.
Y vamos a contar con el orden de las operaciones a tipo de hacer
su trabajo aquí, pero vamos a utilizar paréntesis para estar
completamente detallado y claro.
Así Celsius 9 veces dividido por 5.
Me voy a alejar un poco lo que esta puede encajar en
una línea, pero voy a acercar de nuevo para aquellos que no pueden ver,
más lejos en la parte posterior.
Lo siento.
Extrañas cuestiones cursor.
Plus 32.
Bueno, ¿alguien tiene alguna pregunta acerca de cómo poner en
la fórmula, o algún problema con eso?
Si.
>> PÚBLICO: ¿Tenemos que poner printf antes de la flotación
Celsius, Fahrenheit flotar líneas de guión?
¿Importa el orden en que estamos?
LEXI ROSS: Entonces la pregunta era, ¿qué tenemos que printf
antes de que realmente pedir el flotador?
La respuesta es que lo hacemos.
De esa manera, que el cursor que el usuario llegue a su entrada
flotador se producirá después de que el impreso c, ¿verdad?
Y tiene sentido si lo piensas lógicamente, como
le estamos pidiendo al usuario una pregunta, y entonces estás
recibir una respuesta.
Por lo tanto, imprime c, y luego hay un cursor, entonces el
usuario puede introducir el valor, como veremos
más adelante, cuando nos demo.
¿Sí?
>> AUDIENCIA: ¿Por qué utilizar un flotador y no una doble?
LEXI ROSS: Entonces, un doble, esencialmente, como su nombre
indica, nos da el doble de la cantidad de
precisión como un flotador.
Pero por lo general en C, en este supuesto, para un número de
razones, vamos a usar flotadores.
Y esto es realmente toda la precisión que necesitamos sólo para
tipo de conversiones de temperatura básicos.
Por lo general, los dobles son más utilizados en el lenguaje Java,
flotadores son más comunes en C. Todos impresionante derecha.
>> DAN BRADLEY: Una más.
LEXI ROSS: Una más.
¿Sí?
PÚBLICO: ¿Dónde poner la barra espaciadora?
Al igual, [inaudible] la barra espaciadora [inaudible]?
¿Importa?
LEXI ROSS: Oh, no.
Así que no importa.
En realidad debería haber puesto otro espacio aquí.
Pero lo que importa es que usted es consistente
todo el código.
Así que si usted decide usar un estilo de espacio, asegúrese de
mantener todo el código completo, para no sufrir estilo
puntos deducidos.
Así que la consistencia es la clave.
Dan Bradley: Creo que él estaba hablando de ese espacio.
LEXI ROSS: Oh, estás hablando de ese espacio?
Por la C actual?
AUDIENCIA: Si.
LEXI ROSS: Oh, así que eso es sólo para las miradas, ¿verdad?
Así que de esa manera cuando ejecuta el código, si no tuviéramos este
espacio aquí, si era así, el usuario inicia
escribiendo el número y sería aplastado por la derecha
en contra de los dos puntos después de la C, y se vería un poco
mejor si había un espacio.
Y se puede ver que un poco mejor una vez que en realidad
ejecutar este código, cuando nos terminado.
Awesome.
Sí, una pregunta más.
>> PÚBLICO: ¿Tengo que poner un punto decimal después de uno de los
[Inaudible]?
LEXI ROSS: ¿Así que no lo hacen, debido a la orden de
operaciones.
Así pues Fahrenheit ya es un flotador, al igual que
Celsius, no es necesario convertir explícitamente ninguna de estas
otros números como flotadores, aunque en otro
circunstancias, cuando usted está tratando con enteros, es posible que
tiene que poner un punto de echarlo explícitamente como un flotador.
¿Sí?
AUDIENCIA: Me preguntaba si los asuntos de capitalización en
estos comandos como GetFloat?
LEXI ROSS: Sí, buena pregunta.
Así que la pregunta era, ¿qué importa capitalización en
comandos como GetFloat?
La respuesta es sí, así es.
Así GetFloat es, como Dan describía anteriormente, una biblioteca
función en la biblioteca CS50, y fue escrito como capital
G, capital F. Así que si no lo escribo con esos capitales
allí, el compilador no va a entender lo que
función que te refieres.
Bien.
¿Sí?
>> AUDIENCIA: Es el principal argumento para siempre vacío?
LEXI ROSS: Sí, esa es otra gran pregunta.
Así que el código que copió de mi espacio erróneamente tenido
argumentos un poco más.
Así que la pregunta era, es el argumento de la función principal
siempre vacío, que esencialmente significa nada?
La respuesta es no.
Usted puede notar que el código que copió de mi anterior
revisión tenía lo que puede verse como nada de lo que realmente hace
sentido en este momento, algunos char * argv, argc.
No te preocupes por eso ahora, pero vas a encontrar más adelante
en que hacen la diferencia.
Pero si usted no está usando ese tipo de funcionalidad
que aprenderás más adelante, nula
está completamente bien.
>> Está bien.
Y tenemos un paso más, y es que queremos
realmente mostrar al usuario lo que la temperatura se convierte.
Así que de nuevo, vamos a usar printf, y digamos f, sólo
para mantener la coherencia.
Y ahora vamos a hacer algo un poco complicado.
Así que vamos a usar una marca o un tipo especial de notación,
contar printf para imprimir sólo un decimal.
¿Y alguien enterado de lo que va a ver
gusta, antes de que me escriba a cabo?
¿Sí?
AUDIENCIA: 0,2% f?
LEXI ROSS: Sí, sí.
Así que en realidad, es muy estrecha.
0.01f de .01% f, y entonces tenemos que recordar incluir
el otro argumento de printf, que es la propia variable,
que es n.
>> Un último paso.
¿Puede alguien recordar lo que está en nuestra función principal?
Sí, allá arriba.
AUDIENCIA: Return?
LEXI ROSS: Exactamente.
Así que ya que se trata de retornos principales int, queremos
también devuelven en int.
DAN BRADLEY: Porcentaje necesita estar en el otro lado.
LEXI ROSS: De acuerdo.
Lo siento, chicos.
Eso fue un error.
Así el porcentaje viene antes de 0,01.
Así que es% .01 f.
Los que son un poco difíciles de recordar.
Muchas personas, como yo, sólo tiene que mirar hacia arriba
cada vez que los usamos.
Sí, allá arriba.
PÚBLICO: ¿Por qué es 0,01 y no 0,2 o 0,1?
LEXI ROSS: No lo sé, la verdad.
¿Sabe usted?
Dan Bradley: La razón es 0,01 frente a 0,02, o
0,2, o 0,1, es bastante arbitraria a la forma en que el
programador originalmente diseñado.
AUDIENCIA: Eso no es lo que quise decir.
No estoy pidiendo la razón.
Razón [inaudible] por qué.
Lo tengo escrito como 0,2, y ofrece dos -
Dan Bradley: Si.
Así que sólo nos íbamos a querer uno.
AUDIENCIA: Oh, está bien.
Así que usted podría 0,01 entonces.
Dan Bradley: 0,1 probablemente también funcionan.
0,01 funciona tan bien.
LEXI ROSS: Oh, el 0 podría ser la de mostrar cero, si
que es menor que uno.
DAN BRADLEY: Sí, creo que tiene razón.
Así el 0,01 mostraría un valor cero si no tiene nada
que volvería a ir allí de forma natural.
Así que si usted fuera, por ejemplo, poner en el 100 para C, que sería
salen a 212 normalmente en grados Fahrenheit, al igual que 212 exactamente.
Si usted tiene el 0,01, se mostrará 212,0, como
frente a sólo 212.
LEXI ROSS: Eso es correcto.
Así que, básicamente, le dice a la lectura printf, imprima un punto decimal,
e imprimir un 0 si es necesario.
Si no es así, imprima la posición decimal.
DAN BRADLEY: Y vamos a explorar algunos de esto cuando estamos
que realmente ejecuta el código.
LEXI ROSS: Eso es.
AUDIENCIA: Así que puse 0,1.
Todavía imprime su cero.
Dan Bradley: Todavía imprime su cero?
AUDIENCIA: Si.
Dan Bradley: Hm, está bien.
LEXI ROSS: Cool.
>> Está bien.
Más preguntas sobre el código antes de compilar y ejecutar?
¿Alguien ve algún error aquí, en primer lugar?
Alguien vio algo que debería estar aquí?
Si este fuera el conjunto de problemas, lo que sería aquí que no es
hay en este momento?
Sí, muy bien.
Así que no incluyó comentarios porque los estoy entregando
por vía oral, pero si yo estuviera escribiendo esto en un conjunto de problemas, lo haría
Definitivamente quiero poner comentarios para indicar lo que soy
haciendo, esencialmente, en el programa.
Y te tipo de conseguir una sensación para ella, mientras se mueve a través de
el semestre, la cantidad de comentarios.
No quiero ser demasiado verboso y las líneas puestas y
líneas de comentarios para cada una de sus líneas de código, pero
Tampoco quiero no ser lo suficientemente detallado y dejar el
lector a tratar de averiguar qué diablos
el código está haciendo.
>> De acuerdo, genial.
Vamos a tratar de ejecutar este código.
Bueno, me voy a alejar un poco.
Cool.
Así te darás cuenta de que hay un botón Reproducir aquí.
Vamos, haga clic en Reproducir.
Así te darás cuenta de aquí, igual que en la especificación del problema
establecido, está el. / a.out.
a.out es el nombre del ejecutable binario, que es una
palabra larga para un archivo que contiene el código binario que
el equipo se está ejecutando.
Así como lo esperábamos, tenemos C aquí.
Así que llame a un número.
AUDIENCIA: 23.
LEXI ROSS: 23.
DAN BRADLEY: El programa tuvo mucho tiempo para ejecutarse.
Sólo tienes que correr de nuevo.
LEXI ROSS: Oh, my bad.
Bien.
Spaces es exigente a veces.
Se quiere que pienses en tus pies.
Bueno, 23.
Awesome.
¿Todo el mundo cree esto?
Cool, porque funciona.
>> Bien.
Vamos a intentar un par más.
Vamos a probar un caso extremo aquí.
En informática, cuando hablamos de casos extremos, nos referimos a
casos para el programa a ejecutar que son una especie de en el muy
bordes de entradas razonables o que las esquinas de prueba determinados
la lógica de su programa, y ​​esto tiene más sentido cuando
hacer programas más complicados.
Vamos a tratar de 0.
Awesome.
Todos sabemos esto.
Cool.
¿Alguna pregunta más sobre esto antes de que se mueven
en al siguiente programa?
Muy bien, genial.
Así que ahora, vamos a -
¿quieres usar sólo mi ordenador?
DAN BRADLEY: Sí, eso es bastante fácil.
>> Muy bien, así que voy a ir a hablar sobre la fabricación de porcentajes.
Así que somos en esencia, en este pequeño ejercicio siguiente, va a
tomar dos entradas enteras por parte del usuario, con la esperanza de un
no negativo numerador y un denominador positivo, y
básicamente, dividiéndolas y la salida de lo que sale como una
porcentaje.
Por eso queremos que acepte solamente no negativos numeradores y
aceptar sólo denominadores positivos, y siga preguntando
por otros nuevos si no ha conseguido lo que quiere.
¿De acuerdo?
Así que darle una oportunidad.
LEXI ROSS: Ah, sí, ¿quieres hacer el -
oh, tal vez la gente debería copiar el código.
Dan Bradley: Si.
LEXI ROSS: [inaudible]
Espacios.
>> AUDIENCIA: Tengo una pregunta.
Si estoy usando espacios y quiero salvar [inaudible] el
Fahrenheit conversión, puedo guardarlo y luego hacer una nueva -
LEXI ROSS: Podríamos hacer un nuevo espacio, o simplemente puede
desea copiar y pegarlo en un archivo de texto o
algo por lo que lo tengamos.
DAN BRADLEY: Voy a cambiar mi nombre.
LEXI ROSS: Por lo que acaba de guardar la última revisión de
tofahrenheit.c, así que si vas a AAAA Lexis Beryl
Ross, usted puede entrar y copiar ese último código, a continuación,
comenzar en este nuevo, que creo que Dan va a proporcionar
un código esqueleto para también.
Bien.
Dan Bradley: La revisión más reciente que tengo en la mía, así
que es en lo más alto esta vez, es la Revisión 4, y
que va a tener lo que necesita para empezar.
LEXI ROSS: Todo correcto, y voy a copiar que en la mía también.
>> Dan Bradley: Muy bien.
Creo que vamos a empezar a ir justo por esto, si
a alguien le interesa.
LEXI ROSS: Todos estamos interesados.
DAN BRADLEY: Vamos a empezar con sólo declarar
algunas variables. Así que tenemos un numerador, y en aras de la
Ahora, voy a empezar simplemente con el valor -1,
y luego voy a crear un bucle do-while. Mientras que -
así que cuando lo quiero para bucle?
¿Cuándo quiere que siga preguntando -
¿si?
AUDIENCIA: Cuando es menor que o igual a cero.
DAN BRADLEY: ¿Por qué no puede ser igual a cero?
AUDIENCIA: [inaudible].
Dan Bradley: Si.
Así que para el numerador, es sólo mientras el numerador
es menor que cero.
¿Tiene sentido para la gente?
Mantenemos un bucle mientras que el numerador es menor que cero,
seguimos preguntando por datos nuevos, y seguir exigiendo que
entrada de nuevas cosas.
Así que voy a tener un poco printf aquí, no negativo
num -.
Y luego hacer lo mismo que antes, excepto que hacemos un
GetInt, sólo porque queríamos hacerlo lo más
porcentaje de intercepciones.
Así numerador = getInt.
>> Bien, ahora un par de cosas.
¿Necesito esta -1 aquí?
AUDIENCIA: [inaudible].
Dan Bradley: No.
¿Por qué no?
AUDIENCIA: Debido a que usted está recibiendo un valor aleatorio por parte del usuario.
Dan Bradley: Exactamente.
Pero quiero tener la declaración por aquí?
Sí.
¿Por qué?
AUDIENCIA: Usted tiene que encontrar la parte exterior del bucle.
De lo contrario, no vamos a tener la variable para el resto
del programa.
Dan Bradley: Exactamente.
Ámbito de aplicación.
Sweet.
¿Tiene sentido para todo el mundo?
PÚBLICO: ¿Se puede decir que una vez más?
Dan Bradley: Muy bien.
Así que si yo fuera a declarar este numerador dentro del bucle, si
Tenía esto en vez de ser numerador numerador int,
y me deshice de esto por completo,
numerador desaparecería.
No existiría fuera de este bucle, porque todo
Está dentro del alcance de estas llaves.
Tiene sentido?
Bien.
>> Así que por denominador, hacemos algo bastante similar, int
denominador = -
y no necesito los iguales -
hacer, y para el tiempo en este caso, ¿qué es lo que quiero?
¿En qué condiciones lo quiero todavía a lazo en?
AUDIENCIA: Menos que o igual a 0.
DAN BRADLEY: Menos que o igual a 0.
Denominador <= 0.
No se olvide de sus puntos y comas, niños.
Así que hacemos lo mismo que antes, un positivo printf
denominador, y obtenemos int desde aquí.
Ahí vamos.
GetInt.
Bien.
Y luego, al final, queremos imprimir un porcentaje.
Así que para hacer esto, lo que debe ser nuestra cadena parece?
printf.
¿Alguna otra idea de lo que puedo hacer aquí?
¿Sí?
AUDIENCIA: A lo mejor el 0,2% [inaudible].
Dan Bradley: Yep.
Bien.
Voy a empezar con el primer bit,%% .02%,
comillas, coma.
Y voy a lanzar una nueva línea de aquí, sólo porque
como nuevas líneas cuando estoy haciendo las cosas.
¿Qué tipo de expresión matemática puedo tener aquí?
PÚBLICO: Los paréntesis y el flotador.
Dan Bradley: Good.
¿Por qué quiero tenerlo en carroza?
AUDIENCIA: [inaudible].
DAN BRADLEY: Bueno, bueno.
Float.
AUDIENCIA: Numerador.
Dan Bradley: Numerador?
Bueno, por lo que hago numerador flotador.
AUDIENCIA: Dividido por -
Dan Bradley: Dividido por?
AUDIENCIA: Denominador.
DAN BRADLEY: ¿Hago sólo denominador, o hago flotador
denominador?
AUDIENCIA: Just denominador.
Dan Bradley: Muy bien.
AUDIENCIA: Y se puede multiplicar por 100.
Dan Bradley: Y yo que se multiplican por 100.
AUDIENCIA: ¿Y entonces paréntesis alrededor de la expresión completa.
Dan Bradley: Yep.
>> Bien.
Lucir bien?
Vamos a intentarlo.
-50.
Bueno, 50.
0, y 100, 50%.
Todo salió como queríamos.
¿Tiene sentido este código a las personas?
Yo lo voy a guardar para que pueda obtener una copia del mismo.
¿Sí?
PÚBLICO: ¿Por qué no hay que poner [inaudible]?
DAN BRADLEY: ¿Dónde?
AUDIENCIA: Como, cuando dices denominador es igual a
[Inaudible].
Dan Bradley: Cuando tengo aquí?
¿Por qué tendría yo int antes?
AUDIENCIA: Debido a que el otro tiene int antes de ella.
Dan Bradley: Bueno, por lo que no estaba en un bucle, ¿verdad?
Así lo declaro int denominador por encima del bucle,
y yo no lo tengo en el circuito porque sería
declarándolo un montón de veces, y no sería en realidad llevar a
a cualquier otra parte del programa.
LEXI ROSS: Sí, lo importante es recordar que
variables sólo es necesario declarar una vez.
Así que imagino que es como introducir una nueva variable
en el mundo llamándolo int o float o lo que sea, y
una vez que ha declarado, todo lo que necesita hacer para cambiarlo es
sólo lo llaman por su nombre: denominador, o x o y.
Sólo tiene que llamar en realidad un int sola vez.
>> Dan Bradley: Si.
AUDIENCIA: ¿Puedes explicar la diferencia entre% d
y f% y si alguna vez se declare un
variable como un decimal?
Dan Bradley:% d y% f Entonces aquí?
LEXI ROSS: Entonces d refiere realmente a sólo un dígito, no
decimal, que es un poco confuso.
No hay ningún tipo de datos real llamado decimal, y cuando
desea imprimir un int, que se refieren a ella como d%, o
%-Lo que sea-d. F es para flotador, que te lo pensaría
¿Sería yo, pero en realidad es d para int.
>> DAN BRADLEY: Sí?
AUDIENCIA: Así que en el otro programa, ¿por qué no acabamos de hacer
lo mismo cuando usted está diciendo Fahrenheit?
¿Por qué no ponemos, como -?
Dan Bradley: En el fondo aquí?
Usted podría tener.
Hubiera sido completamente legítimo.
Me gusta hacerlo de esta manera, otras personas como separar
a cabo en diversas líneas de código.
De cualquier manera funciona bien.
¿Qué hay de nuevo?
>> AUDIENCIA: ¿Puede usted explicar lo que el%%
[Inaudible]?
Dan Bradley: Bueno, por lo que el por ciento, por ciento.
Bueno, me iba a pasar esto.
El porcentaje primera se llama carácter de escape, y sólo lo
dice que la cosa detrás de esto no es en realidad código.
Así que este porcentaje en primer lugar, a la derecha, el% .02 f, todas esas% .02 f
significan algo para printf como una función.
%%, Yo sólo quería que en realidad sólo imprimir una
signo de porcentaje.
Así que no estoy diciendo que haya nada importante detrás de él.
Sólo estoy diciendo que hay un signo de porcentaje detrás de él.
Por favor imprima un signo de porcentaje.
Así por ciento, y luego otro por ciento.
AUDIENCIA: ¿Puede demostrar lo que sería si usted tiene
flotar sobre la base de otra línea?
Dan Bradley: Oh sí, claro.
Así que estoy pidiendo para mostrar lo que se vería como si yo
tenido este numerador flotador, todo esto matemáticas, en otra línea.
Así flotador por ciento = -
y me gustaría deshacerme de esto y sólo hay que poner en porcentaje.
Y está haciendo exactamente lo mismo, sólo
tienen otra variable.
>> AUDIENCIA: [inaudible].
DAN BRADLEY: Desplácese hacia abajo para qué?
PÚBLICO: Para que yo pueda ver [inaudible].
DAN BRADLEY: ¿Qué no te das cuenta?
AUDIENCIA: Lo siento, yo estaba [inaudible].
Dan Bradley: Si.
AUDIENCIA: Entonces, si estamos reemplazando el carácter de escape,
Supongo que quería tener un signo de dólar en vez, sólo por
ejemplo, detrás de un signo de dólar por ciento?
Dan Bradley: Nope.
Es sólo un dólar, un solo signo de dólar, debido a que un dólar
signo no significa nada para printf.
La pregunta era, ¿tengo que tener un carácter de escape para
símbolos como signos de dólar?
AUDIENCIA: especie de modo relacionado, ¿existen otros casos que
debemos saber cuándo algo así como el porcentaje
signo puede significar algo [inaudible]?
LEXI ROSS: Sí.
No es necesariamente el signo de porcentaje, pero la barra invertida ver,
como tenemos aquí reacción final?
Digamos que en realidad quería imprimir un contragolpe, tendríamos
para escapar de eso -
y esto va a sonar confuso -
con otra barra invertida.
Así que si queremos imprimir \ \, lo haríamos
Sólo tienes que escribir aquello, o para obtener información adicional
barra invertida, otro escape.
Y otra, si queremos imprimir una cotización - así
Básicamente, cualquier cosa que denota algo de tipo especial
dentro de una cadena, queremos escapar.
Así que digamos que realmente quiero tener una cita aquí, lo haríamos
quiero hacer \ ".
AUDIENCIA: Así que es generalmente una barra invertida?
DAN BRADLEY: Es generalmente una barra invertida.
LEXI ROSS: Eso es.
Por alguna razón, aquí, es un signo de porcentaje.
>> AUDIENCIA: [inaudible]?
Dan Bradley: Este chico?
Esto es sólo para decir, lo que está siendo dividido aquí es
va a ser tratado como un flotador para el bien de la división.
Así en el caso de 50 dividido por 100, si no tienen la
flotar allí, que sólo sería 0.
Eso es todo lo que saldría, porque 50 dividido por
100, si usted no está incluyendo los decimales, es 0. -
y todo después de la coma decimal se trunca justo fuera.
AUDIENCIA: Um,
¿Por qué no lo ponemos antes denominador también?
DAN BRADLEY: ¿Entonces la razón por la que no lo ponga delante de
denominador es porque cuando estás dividiendo por algo
un número entero, funciona muy bien.
Tener un mayor número en la parte inferior
no cambia nada.
Se puede dividir por números enteros muy bien.
Simplemente no importa realmente.
Podría, eso no cambiaría nada.
AUDIENCIA: Así que si quería tres decimales, lo haría
pones 0.03 por ciento?
Dan Bradley: Yep.
Usted pondría a 0,03% si querías
tres decimales.
>> PÚBLICO: ¿Y mandamientos, ¿cuál es la diferencia entre
y que acaba de hacer, mientras que en la parte superior?
DAN BRADLEY: Así que un do-while frente a un bucle while son dos
comandos bastante similares.
La única diferencia es que ejecute el código una vez, se corre el
código dentro del bucle una vez antes
hacer cualquier comprobación real.
Así que es también la razón por la que podemos decir sin dar denominador
un número.
Así que si te dijera int denominador, a continuación, mientras que (denominador <=
0), nunca podría incluso
ejecutar el código en el interior.
Se va a hacer el registro de entrada antes -
tan aquí.
Así que si yo tuviera este bucle mientras que aquí, yo tendría que tener
denominador es igual, por ejemplo, -2 o un número menor
que o igual a 0 por lo que en realidad se trate de ejecutar el código
interior primero.
Así que en términos generales, usted desea utilizar un bucle do-while
en lugar de un bucle while cuando usted está pidiendo la entrada del usuario
porque una vez que se ejecuta el código, pidiendo algo que el usuario
le dará a usted es en general la mejor solución, en lugar de
a sólo confiar en lo que pones para empezar.
PÚBLICO: ¿Y siempre es seguido por un tiempo.
DAN BRADLEY: Do es seguido por algún trozo de código que
desea ejecutar y, a continuación, mientras que algunas condición.
LEXI ROSS: Piense en ello como una especie de comando roto
en dos partes.
Es un do-while, no como aquí hay un hacer, y luego soy yo
va a agregar un tiempo, es sólo un do-while.
>> AUDIENCIA: Entiendo la razón por la que está utilizando el
dos signos de porcentaje, pero ¿puedes explicarme por qué tenemos que
tiene el [inaudible]?
Dan Bradley: Bueno, por lo que el signo de porcentaje se está diciendo
printf, aquí es un comando que quiero que
rellenar con algún número.
Así que quiero que usted lo llene con dos decimales y un
flotar, y encontrará el flotador al final de la
comando, es este porcentaje.
¿Eso tiene sentido?
AUDIENCIA: Yep.
Dan Bradley: Muy bien.
>> AUDIENCIA: ¿Hay algo sobre el bucle do-while que
si la condición no se cumple, si se obtiene un
número negativo para el numerador, lo voy a seguir
preguntar y se sigue preguntando el usuario?
Dan Bradley: Si.
Entonces, si la condición de tiempo no se cumple en el extremo de
el do-while, que va a funcionar de nuevo al comienzo.
Es sólo un bucle.
Así que es como un bucle while que la enfermedad no ha sido
cumplido sucesivamente.
Sólo se ejecuta una vez más.
Si.
AUDIENCIA: Así que si usted está haciendo esto, ¿verdad, por tu tiempo,
puso dos condiciones?
DAN BRADLEY: Puedes.
Depende de lo que estás pidiendo.
Así que usted puede poner dos condiciones en un bucle while si lo tiene
todo dentro de una especie de operador booleano, que suena
feo, pero es básicamente este denominador es menor o
igual a cero, o bien devuelve verdadero o falso, ¿no?
O es menor que o igual a cero o no.
Así que usted puede hacer otros operadores booleanos que voy a decir, mientras
esto también es verdad o mientras que este también es falso.
Así que cosas como el y el numerador es mayor que
cero, ¿no?
Eso es pedir, esto va solo bucle while denominador es menor
de cero y tiene un numerador positivo.
AUDIENCIA: ¿Y que haces las dos AND, ¿verdad?
Dan Bradley: Dos AND.
LEXI ROSS: Vamos a cubrir que más tarde.
>> PÚBLICO: ¿Qué pasa si alguien no pone de manera positiva
denominador?
Si ponen en un numerador negativo, ¿puede solicitar
a, por ejemplo, poner en un numerador no negativo y tienen
un comando para eso?
Dan Bradley: Podrías.
AUDIENCIA: En este momento sólo dice no negativo numerador.
Lo que se utiliza para que?
DAN BRADLEY: ¿Entonces usted tendría si una condición, por lo que si desea
numerador es menor que cero.
LEXI ROSS: Usted probablemente sólo quiero dividirlo en más
pasos, ¿no?
Así que la primera vez que se pone en la entrada, que acababa de decir dar
nosotros un numerador o lo que sea.
Y si lo hacen mal las cosas, este podría ser el caso
para un bucle mientras que, en lugar de un do-while, porque tenemos
la primera vez que tenemos la getInt, a continuación, mientras que la entrada
es malo, seguimos pidiéndoles entrada adicional con un
tipo diferente de texto, como que no funcionó o hacernos una
no negativo numerador por el contrario, ese tipo de cosas.
>> DAN BRADLEY: ¿Sí?
PÚBLICO: ¿Cómo se resuelven las cosas que [inaudible]
el terminal?
LEXI ROSS: Bueno.
DAN BRADLEY: Sí, no se puede escribir en él.
LEXI ROSS: En realidad, no se trata de un terminal real.
La pregunta era ¿cómo borrar esas cosas ahí abajo?
La respuesta es que no es un terminal real, pero vamos a decir que
están en un terminal real.
Clear.
Oh, es un gato.
Dan Bradley: [inaudible]?
Es así, ¿verdad?
LEXI ROSS: No, eso es todo mis cosas.
Dan Bradley: [inaudible].
LEXI ROSS: Eso es.
DAN BRADLEY: ¿Sí?
>> PÚBLICO: ¿Funciona claro si usted tiene -
como, por ejemplo se ejecuta un programa [inaudible] y se está pidiendo
por algo, y no quiero hacerlo.
La forma de hacerlo -
Dan Bradley: Control + C?
LEXI ROSS: Eso es.
Así que si usted está funcionando un programa y hay algo que no va por el
manera que usted lo quiere y lo que desea para salir del conjunto
programa, Control + C. Incluso si estás en un Mac, no Apple + C,
Control + C.
AUDIENCIA: ¿Usted tiene la versión correcta de la
revisión en su perfil?
Dan Bradley: Creo que ha salvado, ¿no?
Si.
LEXI ROSS: Este es el espacio.
Si.
Creo que es revisión 11.
>> DAN BRADLEY: ¿Sí?
Audiencia: ¿C hacer ninguna suposición acerca de lo que es un
variable es si se define una variable pero no asigna
algo que de inmediato?
DAN BRADLEY: ¿Así que sólo voy a aceptar enteros en ese lugar.
Así que si se declara -
AUDIENCIA: Si yo acabo de hacer int denominador punto y coma, lo hace
asume que es igual a cero o cualquier número -?
Dan Bradley: Nope.
Así que si no se asigna, por ejemplo, int denominador en cualquier valor,
podría ser cualquier cosa.
Es la memoria de edad que se encontraba en ese lugar.
Por lo tanto, podría ser negativo 2 mil millones, podría ser positivo
2 mil millones, y podría estar en cualquier lugar en el medio.
Así que si usted está realmente manejando las cosas, asegúrese de que usted
asignar un valor a las variables.
Esto, no importa porque somos inmediatamente
asignando el valor, pero en términos generales, sí.
¿Alguna otra pregunta?
>> LEXI ROSS: También se puede simplemente tomar preguntas en general en este
punto en el material de lectura, material p set, todo lo que tengo
estado preguntando, este es un buen momento para hacer eso.
AUDIENCIA: Así que en los tutoriales, Zamyla
mencionó la función de redondeo.
¿Le importaría elaborar sobre cómo implementar eso?
LEXI ROSS: Claro, cómo implementar eso?
AUDIENCIA: Me dijo que era redonda.
LEXI ROSS: Oh yeah.
Así que, así que todos tenemos el mismo vocabulario y esas cosas,
implementar generalmente significa realmente escribir desde cero.
Así que no creo que ella estaba hablando de una especie de escritura
la función de redondeo.
Probablemente sólo quería decir cómo usarlo.
Implementar significa algo así como crear.
Así que en general, un tiempo en el que desea utilizar la función de redondeo que se
Es decir, una especie de, por ejemplo,
si usted desea redondear.
¿Me puede dar un contexto un poco más sobre lo que el
problema era?
AUDIENCIA: Para evitar las imprecisiones de decimales
por lo que un flotador.
LEXI ROSS: Eso es.
Así que el problema con los flotadores que hemos aludido tipo de es
que, debido a la forma en que está almacenado en la máquina,
no es 100% preciso en la forma en que se podría pensar
la calculadora se almacenarlos.
Es difícil para mí para mostrar un ejemplo sin saber lo que
el contexto era.
No sé, ¿puedes pensar en algo, Dan?
>> Dan Bradley: Así que si usted está pidiendo, por ejemplo, los números de
mayor de 10 y que está utilizando flotadores, y va a añadir un
a un flotador cada vez, a veces va a esperar hasta que haya
llegado al 12 antes de que va a decir que esto es realmente un número
mayor que 10.
Flotadores tener algunos problemas serios sólo entre el 32 º
y el lugar 33 decimal que va a ir, por lo que podría 9,9999999, o
podría ser 10.0000001, ¿verdad?
En realidad no distinguir entre los dos, así que si eres
esperando que las cosas superiores o iguales a 10, es posible que
no llegar a lo que crees que es la iteración 10.
Es posible llegar en el 11.
LEXI ROSS: En esencia, sí.
Cuando estás recorrer una gran cantidad de carrozas, que es cuando el
imprecisiones suceder.
AUDIENCIA: Me parece, por lo que, básicamente, es como en el p
establecido, quiere que redondear el valor float, y si se pone en
4,24 para la cantidad de cambio que necesita de nuevo, si usted acaba de hacer
por 100, lo que realmente va a cambiar en 423 -
Dan Bradley: A veces, sí.
AUDIENCIA: Así que creo que es igual, ¿cómo usar la ronda
función en el código real para que así no se hace eso?
DAN BRADLEY: Así que si estás redondeando 424 multiplicándolo
por 100 y lo que lo convierte en un número entero, algunas veces será
hace 423 debido a que la imprecisión.
Y así las cosas que usted puede hacer es simplemente añadir 0.0000003.
AUDIENCIA: Pero creo que, en realidad, quieren
que usemos la ronda.
Dan Bradley: La función de ronda?
Probablemente hay una función matemática, algo en el
matemáticas de la biblioteca.
AUDIENCIA: # include matemáticas.
Dan Bradley: # include , y hay
probablemente una función de redondeo.
AUDIENCIA: Al igual round () -?
LEXI ROSS: Básicamente, porque se va a redondear a
centavo más cercano.
Dan Bradley: Vamos a arrancar las páginas de manual.
Así que una herramienta muy útil, si usted no sabe -
que tire hacia arriba el terminal -
es que si vas a las matemáticas hombre.
LEXI ROSS: Cool.
>> Así que usted puede ver, el hombre es la abreviatura de manual no, hombre, y
que le permite buscar más información sobre un determinado
función o biblioteca que usted puede estar tratando.
Así que me acaba de escribir en matemáticas hombre.
Permítanme zoom in
DAN BRADLEY: Podemos intentar ronda hombre, también.
LEXI ROSS: Claro.
DAN BRADLEY: ¿Y esto mostrará a cabo -
matemáticas hombre a enumerar todo lo que hay en la biblioteca de matemáticas,
que vamos a incluir.
Sí, también tenemos todo el año.
LEXI ROSS: ¿Así que acabo de hacer todo el hombre.
Se puede ver aquí en la sinopsis, que dice # include
, así que es algo así como cs50.h, stdio.h.
Y parece que en realidad está sobrecargado, lo que significa
que toma diferentes tipos de argumentos, por lo que se puede redondear
dobles o flotadores.
Dan Bradley: Round frente roundf.
LEXI ROSS: Roundf.
¿Sabía Zamyla mencionar roundf o redonda?
PÚBLICO: En el tutorial, que era sólo round ().
Dan Bradley: Está bien, así que probablemente estaba usando el doble,
a continuación, en contraposición a un flotador.
Bien, así que tendría que multiplicar por 100 y luego se redondea, y
se obtendría el número más cercano a él, creo.
>> LEXI ROSS: Entonces la función round devuelve la integral
valor más cercano a x redondeo de reinserción de los casos fuera de 0,
independientemente de la dirección actual de redondeo.
Así que, esencialmente, que se va a redondear sólo una vez que estás en
un valor entero, por lo que se multiplica por
100 y luego todo el año.
¿Eso tiene más sentido?
AUDIENCIA: Para usar esta función en un archivo de C, lo que necesita para
poner flotador redondo, como si la variable se denomina q, qué
poner round (float) q, y luego de un paréntesis, o puede
simplemente hay que poner todo el año, y luego q entre paréntesis?
Dan Bradley: Así que si estás tratando de utilizar esta función
en realidad, tendría que tomar q, q es un flotador,
o ¿cómo se declara?
AUDIENCIA: Q es un flotador.
Dan Bradley: Entonces si q se declara como un flotador, lo haría
acaba de tomar todo el año, y luego darle q.
Usted podría tener que declarar como un doble en este caso.
LEXI ROSS: Sí, a menos que desee utilizar roundf.
AUDIENCIA: tan sólo pudiera utilizar roundf, y entonces q entre comillas?
Dan Bradley: No, no, entre comillas, sólo q.
AUDIENCIA: Lo sentimos, no entre comillas, paréntesis.
Dan Bradley: En los paréntesis, sí.
LEXI ROSS: Lo siento que fue un poco confuso.
Algo más preguntas?
>> DAN BRADLEY: ¿Sí?
AUDIENCIA: sólo redondos Así ida y vuelta a los números enteros?
LEXI ROSS: Sí.
Dan Bradley: Sí, redondas rondas sólo a números enteros.
AUDIENCIA: Así que si quería tener algo exacto que
necesitaba ser [inaudible] multiplicado por 100 y luego
dividido por 100 de nuevo si quería -
LEXI Ross: Así que si quería entrar en una forma decimal?
AUDIENCIA: Bueno, el ejemplo, por ejemplo, [inaudible] que
tienen 1,25, y luego [inaudible]
1,24, si se quería mantener eso como 1,25, lo haría
multiplicar por 100, se redondea, y luego se divide por 100
de nuevo para obtener 1,25?
LEXI ROSS: Eso es.
Así que la pregunta es, ya que el redondeo, ya que la página de manual
dice, se redondea al valor entero más cercano, ¿significa
que uno quiere multiplicar por 100, lo
redondeo, y se dividen en 100 de nuevo para, por ejemplo, obtener la correcta
dólares y centavos de valor?
Y la respuesta es -
Dan Bradley: No.
Quiero decir, si usted está recibiendo un valor en coma flotante, si se inicia
con un valor flotante de 1,25, eso es lo que va a ser
interpretado.
Así que si lo multiplicamos por 100 y luego dividir por 100,
todavía va a ser interpretado como 1,25, o
posiblemente 1,249 ...
.. 999.
LEXI ROSS: Creo que la pregunta era, ¿verdad
se multiplican, a continuación, utilizar todo el año, y se divide, por lo que es -
Dan Bradley: Si.
Yo todavía no creo que cambie nada, sin embargo.
Creo que es todavía.
LEXI ROSS: Porque ronda hace - que utiliza números enteros.
Así que si usted trata de alrededor de 1,25, que acaba de obtener 1.
Así que creo que con el fin de obtener como la precisión adicional,
si eso es lo que estás hablando.
>> AUDIENCIA: ¿Entonces en qué casos se utiliza todo el año, entonces?
DAN BRADLEY: Así que en este caso, si desea, por ejemplo, el número
de centavos de $ 1,25, que te multiplique por 100, ronda, obtener
125, y dejarlo como que, como centavos, en lugar de tratar a los
convierten a dólares y centavos.
LEXI ROSS: Oh sí, sí, seguro.
PÚBLICO: ¿Por qué necesita para redondear que [inaudible]?
DAN BRADLEY: Así que si lo multiplicamos por 100 y luego
inmediatamente convertirlo en un entero, que es el más
forma útil, es cuando usted se ocupa de que
imprecisión, ¿verdad?
Así que podría ser 124.999999, y si es así, a continuación, convertir a ese
un entero, se deja caer todo lo que fuera que está por debajo de
el decimal.
AUDIENCIA: ¿Así que te doy [inaudible].
DAN BRADLEY: Exactamente, en lugar de 125, que es
razón por la que desea redondear.
>> AUDIENCIA: Lo siento, ¿podría repetir lo que ha dicho usted
debe hacer frente a lo que no debes hacer?
Dan Bradley: Muy bien.
Así que lo que debe hacer es si usted comienza con 1,25, multiplicar
por 100, y después de que la vuelta de número entero, que 125 o
124.9999, y conseguir que al entero más cercano.
AUDIENCIA: Así que si usted alrededor, que pone
al entero más cercano?
Dan Bradley: Si.
PÚBLICO: ¿Hay una manera de limitar, si usted pide un flotador
lo que quieras hacer, ¿hay una manera de limitar la cantidad de decimales
lugares que se pueden ingresar un flotador?
LEXI ROSS: No se utiliza la implementación del CS50.
Quiero decir, usted puede contar con el tamaño de la entrada viene dada por
el usuario, pero que requeriría una nueva implementación
de GetFloat, y por lo que no tiene que preocuparse por eso.
DAN BRADLEY: Así que si, por ejemplo, la entrada de 1,256, sólo podría
utilizar 1,25, o usted podría hacer 1,26.
De cualquier manera, creo que la aplicación dice que puede -
AUDIENCIA: Usted sólo puede haber vuelta a -
DAN BRADLEY: Sea lo que quiere, sí, siempre y cuando lo hace
algún tipo de redondeo.
¿Algo más?
No tiene que ser de redondeo.
LEXI ROSS: ¿Sí?
>> AUDIENCIA: Si queremos comprobar si el estilo de nuestra
código es adecuado o el mejor estilo
que puede ser, es que el tipo de cosas que había que aparezca en
sección, o en horas de oficina, o es que el tipo de cosas
podemos publicar en privado en la cosa, en la discusión, a continuación,
pedir consejo sobre?
LEXI ROSS: Entonces no lo hacemos, en horas de oficina o en CS50
Discutir, nosotros en realidad no calificar su conjunto p de antemano
por el estilo, pero creo que probablemente lo más útil
cosa que podía hacer era mirar ejemplos, y
debe ser capaz de encontrar que en el código de la sección, que debe ser
distribuido en línea, así como las transparencias de clase, hay
deben ser ejemplos de código.
Pero si usted tiene preguntas individuales sobre un determinado
cuestión de estilo, sin duda no dude en hacer que el CS50
Discutir, y las horas de oficina, o en su propio tiempo.
Pero si es más una mirada general a mi código, lo mejor es
tipo de ejemplos de uso y tratar de adaptarse a su código para eso.
Y creo que es una guía de estilo en -
DAN BRADLEY: Ahí está la guía de estilo.
La guía de estilo es impresionante.
Se le enseña todo lo que necesita, y cubre bastante
mucho todos los ejemplos conocidos por el hombre, o al menos que yo conozca.
>> ¿Algo más?
Está bien.
Cool Guys,.
LEXI ROSS: Que tengas un día genial.
DAN BRADLEY: Gracias por venir.