[Powered by Google Translate] LEXI ROSS: Tudo bem, oi, todos.
Bem-vindo ao supersection CS50 primeiro.
Esta será a semana de apenas supersections.
Após isso, você estará indo para a seção regular com o seu
atribuído TF.
Mas esta semana, estamos fazendo isso em um pouco de diferente
formato, embora o formato atual, como está indo para ir
para a próxima hora e meia mais ou menos, vai ser muito
semelhante ao que você vai estar vendo para
o resto do semestre.
>> Então, o que nós vamos fazer é começar por ultrapassar o
parte seção de seu conjunto de problemas.
Então, se você já leu sobre o conjunto de p, o que espero que você tem,
você verá que há uma parte chamada "secção A do
Perguntas ", e estes são feitos para serem ido
mais em suas seções.
Então, você tem uma vantagem por estar aqui em que você começa a
passar por cima dessas questões mais conceituais baseados.
E depois de fazer isso, nós vamos passar por cima dos dois últimos
questões de seção, que são mais mergulho
em questões do tipo de codificação.
Então, nós estamos realmente vai ter que vocês levar alguns
minutos para cada questão, tentar resolvê-los por conta própria, e
então vamos nos unir usando o novo CS50
Espaços de ferramentas e vão sobre as respostas de modo que todos tenham a
código correto para revisão.
>> Assim, um par de anúncios.
Não se esqueça de que há o horário de expediente, todas as noites esta
semana em Annenberg 8-11, para fazer exame
vantagem desses.
E também, não comece a p demasiado tarde na semana.
Comece hoje à noite ou amanhã à noite, o mais tardar.
Você vai se arrepender se você esperar muito tempo para começar
e executar em problemas.
Então, ter o nosso conselho e, definitivamente, começar cedo.
Esta vai ser uma boa maneira de começar com
essas perguntas seção.
Então, eu estou Lexi, por sinal.
Eu sou um TF.
E este é o Dan, que também é um TF.
Dan Bradley: Ei, pessoal.
LEXI ROSS: E ele vai ficar
começou com as perguntas.
>> Dan Bradley: Tudo bem.
Então, eu estou indo apenas para introduzir um compilador pequeno casal
questões que vamos falar e apenas passam por
algum tipo de idéias conceituais que precisamos para realmente executar
código, seja em um aparelho ou com o nosso tipo de falso
aparelhos, Executar CS50 e Spaces.
Então vamos ver se alguém na platéia tem alguma idéia
sobre o que estamos falando.
>> Então, o que é uma biblioteca no contexto do código?
Alguém tem alguma idéia?
Okay.
Sweet.
AUDIÊNCIA: Como um estoque de funções que alguém
já programado que podemos construir?
Dan Bradley: Exatamente.
Assim, uma biblioteca é um estoque de funções que alguém
já programados que não temos a
re-implementar a nós mesmos.
Portanto, temos coisas como o padrão biblioteca I / O, o
cs50.h biblioteca, que são coisas que o mundo, a
Internet, os funcionários fizeram o que torna nosso
vive mais fácil como codificadores.
Assim como você imprimir coisas para uma tela?
Eu não tenho idéia, printf faz isso por mim.
É algo que alguém já fez que é
impressionante e funciona muito bem.
>> Okay.
Assim, o uso de bibliotecas, por outro lado, no entanto, tiver
para realmente fazer algumas coisas extras com o seu código.
Então, você tem que usar coisas como esta # include.
O que isso faz?
Qual é o papel que o jogo quando você tem isso em um programa?
AUDIÊNCIA: Ele permite que você faça uso de todas as funções que são
[Inaudível]
biblioteca simplesmente usando as definições que já têm
[Inaudível]
biblioteca.
Dan Bradley: Okay.
Ele permite que você puxa funções de biblioteca no seu código, mas
ele faz isso de uma maneira que não é exatamente a mesma como
-Lcs50, que nós vamos chegar a um minuto.
Ele apenas permite que o compilador saber que hey, há estes
funções que vão surgir em seu código.
Estar ciente de que, se não forem completamente descrito no código
que está diante de você, há alguma função de biblioteca
que vai cuidar dele.
>> Assim, no caso de printf, que nós vamos passar por cima de um casal
tempos de hoje, é a biblioteca de I / O padrão.
Então, enquanto eu não definir printf em qualquer lugar no meu código nunca, o
E / S padrão cuida dela para mim, e eu vou fazer # include
stdio.h, e ele vai puxar nessas funções que eu
não já definido.
Então, qual é a diferença, então, entre esse # include
e-lcs50?
O que faz-lcs50 fazer quando eu passar para o
compilador, como Clang?
Alguém tem alguma idéia?
Okay.
Sim?
AUDIÊNCIA: Ele permite que você acessar a biblioteca CS50?
Dan Bradley: Ele permite que você acesse a biblioteca na CS50
que diz o compilador Clang, que hey, este é o lugar onde
você realmente ir para obter estas funções.
Assim, o # include diz que há
estas funções em algum lugar.
O lcs50-diz, vá a este ponto em seu computador -
que é a biblioteca CS50 -
e puxar para cima o código real para essas funções.
Isso faz com que todos sentido,?
>> Então, essas são todas as coisas que são para ajudar o seu compilador
juntamente com a fatura o código realmente executado.
Pergunta rápida.
As pessoas sabem que é um compilador?
Bom senso?
É basicamente tendo o código escrito que você tem,
convertendo-a em binário, convertendo em código de máquina,
para que o seu computador pode realmente entender.
E, sem mais delongas, vamos entrar em mais
exercícios reais de codificação que vocês vão se divertir
afundando seus dentes, e Lexi vai passar por cima disso.
>> LEXI ROSS: Ok.
Impressionante.
Então, nós estamos indo ir sobre duas questões aqui.
Assim, o primeiro é, na verdade, você pode ver, é um pouco
pequena aqui, mas essencialmente está pedindo para você
escrever um programa para tomar alguma entrada do usuário.
Eu não sei por que há um quadrado negro.
É misterioso.
Ele deve ser bom, no entanto.
Então, ele quer que você dê uma entrada do usuário em Celsius, converter esse
para Fahrenheit, e depois dizer ao usuário que a temperatura da
Seria em graus Fahrenheit.
Assim, você pode ver uma amostra seqüência de entrada / saída aqui.
As entradas do usuário - depois Celsius, o negrito refere-se a
entrada do usuário.
Assim, o utilizador entradas 100, e as saídas do programa
Fahrenheit, 212,0.
E uma distinção importante neste programa é que estamos
vai ter apenas uma casa decimal, por isso vamos ver como fazer
isso também.
E então outra coisa a notar é que estamos usando a.out
porque Clang, compilador, nomeia automaticamente o seu binário
arquivos a.out menos que você especifique o com uma bandeira para dar certo
que seu próprio nome, mas por enquanto estamos apenas indo para usar o
a.out padrão.
>> Então, vamos realmente tomar alguns minutos e tentar escrever
algum código para esta-se.
Então, é 4:15.
Então, às 4:20, vamos voltar e - oh, certo.
Espaços.
Cool.
Este é um tipo de código que chamamos de esqueleto em que
é um esqueleto, mas você tem que preencher a carne do
programa para realmente fazê-lo funcionar.
Assim você pode ver o # include directivas até lá para incluir
CS50 e stdio.
Notei em um comentário a fórmula real para converter
Celsius a Fahrenheit, no caso de você não se lembra de alta
ciência da escola ou outros enfeites.
E então este é apenas um esqueleto para
a verdadeira função principal.
Então, tudo que você escreve está a ir aqui.
E para realmente chegar a este espaço -
assim CS50 Espaços podem ser acedidas através desta URL, que Dan é
vai escrever no quadro, e eu vou ditar também.
Dan Bradley: cs50.net/spaces--
LEXI ROSS: / qWLc -
Sinto muito, y.
Dan Bradley: Y?.
LEXI ROSS: Não, não, não, não.
Isso é bom.
qYLcYWfg.
Então, eu deveria ver o tipo de todos os nomes de aparecer aqui.
>> Impressionante.
Isso parece ótimo.
Isso significa que as pessoas estão a aderir ao espaço.
Então, se você ainda não deu a chance de jogar em torno de
Espaços ainda, este é realmente o que você está indo estar usando
com seus TFs na seção de todo o semestre.
Como funciona é tipo de toda a gente escreve sua própria
código, e ninguém pode vê-la até que você pressione o Save
botão, o que eu estou apontando para a direita agora.
Então, eu estou indo para pressionar Save, e se você ir todos para o meu nome,
que você deve ser capaz de vê-lo em pessoas neste
Espaço, que é Lexis Beryl Ross.
Então, como ele vai olhar é você clicar no meu nome, e
você vai ver Revisão 5, que
é a mais recente revisão.
Copie apenas 5 edições em seu espaço, clicando sobre ela.
>> Tudo bem.
Então vamos passar por este problema em conjunto, e eu sou
realmente vai escrever o código aqui na tela.
Você pode ampliar um pouco.
E então, uma vez que eu sou feito, você pode copiar a minha última revisão
em seu espaço, se você quiser ver a solução final.
Agora, os espaços tem capacidade para eu entrar e ver qualquer um dos
o código que vocês têm escrito, mas apenas porque é
uma parcela tão significativa e nós realmente não temos o mesmo
tipo de capacidades de discussão como uma menor
seção, nós apenas estamos indo para passar e eu só vou
para escrever o código.
Mas definitivamente parar-me com perguntas em qualquer ponto.
Nós vamos passar por isso tipo de passo a passo para fazer
certeza de que entendemos cada parte do que está acontecendo aqui.
Qualquer pessoa pode ver este texto aqui?
Alguém quer maior?
>> Então, qual é a primeira coisa que vamos fazer aqui?
Bem, essencialmente, uma vez que queremos obter dados do
usuário e nós queremos que seja um tipo de experiência boa para o
usuário, que, na verdade, quero dizer-lhes que estamos procurando.
Então, vamos imprimir exatamente o que queremos formar o usuário.
Então, só não se incomodam levantar sua mão, apenas sacudir-lo.
Qual é o comando para imprimir algo para a tela?
AUDIÊNCIA: printf.
LEXI ROSS: Awesome.
Ok, então printf.
>> AUDIÊNCIA: Ei, Lexi?
[Inaudível]?
LEXI ROSS: Claro.
Então printf, como temos visto com freqüência em aula, é o
comando para imprimir algo para o fluxo de saída padrão.
Então, queremos pedir ao usuário a entrada de um
temperatura em graus Celsius.
E agora, que realmente quer tomar a entrada que eles dão
nós e armazená-lo em uma variável.
Então, nós aprendemos um pouco sobre os tipos.
Alguém pode lembrar o tipo que gostaria de uma variável
com uma casa decimal nele?
AUDIÊNCIA: Float.
LEXI ROSS: Float.
Sim, incrível.
É uma bóia.
Assim.
E como é que vamos - grande dica - obter a
flutuar do usuário?
AUDIÊNCIA: GetFloat.
LEXI ROSS: Yeah.
Cool.
E o usuário pode potencialmente ser dizer e tentar dar-nos uma
número negativo, mas não vamos preocupar com isso para este
problema agora.
Você vai se preocupar com isso um pouco mais sobre o seu
lição de casa sobre o conjunto de problemas.
>> Então vamos supor que eles nos dão um bom número, e agora nós
realmente tem que converter essa bóia de Celsius para
Fahrenheit.
Então, vamos consultar a nossa fórmula até aqui, e vamos criar uma
nova variável e chamá-lo de Fahrenheit.
Eu estudei a ortografia.
É uma espécie de loucura, eu sei.
E vamos contar com a ordem de operações do tipo de fazer
seu trabalho aqui, mas vamos usar parênteses apenas para ser
completamente detalhado e claro.
Então Celsius vezes 9 dividido por 5.
Eu estou indo para afastar um pouco assim que este pode caber em
uma linha, mas vou aumentar o zoom novamente para aqueles que não podem ver,
mais na parte de trás.
Desculpe por isso.
Estranhos problemas de cursor.
Plus 32.
Ok, alguém tem alguma dúvida sobre como eu coloquei
a fórmula, ou quaisquer problemas com isso?
Sim.
>> AUDIÊNCIA: Não é preciso colocar printf antes do flutuador
celsius, fahrenheit flutuar linhas de script?
Que importa que ordem eles estão?
LEXI ROSS: Então, a pergunta era, precisamos printf
antes de realmente pedir a bóia?
A resposta é que nós fazemos.
Dessa forma, que o cursor que o usuário recebe a sua entrada
flutuador irá ocorrer após o c impressa, certo?
E isso faz sentido se você pensar logicamente, como
você está pedindo ao usuário uma pergunta, e então você está
receber uma resposta.
Então ele imprime c, e então há um cursor, em seguida, o
usuário pode digitar o valor, como veremos
mais tarde, quando o DEMO.
Sim?
>> AUDIÊNCIA: Por que usamos um flutuador e não um casal?
LEXI ROSS: Então dupla a, essencialmente, como o nome
implica, nos dá o dobro da quantidade de
precisão como uma bóia.
Mas geralmente em C, em curso, de uma série de
razões, nós vamos usar carros alegóricos.
E isso é realmente toda a precisão que precisamos apenas para
tipo de conversão de temperatura de base.
Normalmente, duplos são mais utilizados na linguagem Java,
flutuadores são mais comuns em C. Tudo bem, impressionante.
>> Dan Bradley: Mais um.
LEXI ROSS: Mais um.
Sim?
AUDIÊNCIA: Onde você coloca a barra de espaço?
Como, [inaudível] a barra de espaço [inaudível]?
Será que isso importa?
LEXI ROSS: Oh, não.
Por isso, não importa.
Na verdade, eu deveria ter colocado outro espaço aqui.
Mas o que importa é que você é consistente
todo o seu código.
Então, se você decidir usar um estilo de espaçamento, certifique-se de
mantê-la em todo o seu código inteiro, ou você pode obter o estilo
pontos deduzidos.
Assim, a consistência é a chave.
Dan Bradley: Eu acho que ele estava falando sobre esse espaço.
LEXI ROSS: Ah, você está falando sobre esse espaço?
Pelo C real?
AUDIÊNCIA: É.
LEXI ROSS: Ah, então isso é só para a aparência, certo?
Assim maneira que quando executar o código, se não tem essa
espaço aqui, se parecia que isso, o usuário teria início
digitando o número e seria esmagado até certo
contra o cólon após o C, e seria um pouco
melhor se houvesse um espaço.
E você pode ver que um pouco melhor, uma vez que, na verdade,
executar esse código, quando terminá-lo.
Impressionante.
Sim, mais uma pergunta.
>> AUDIÊNCIA: Eu tenho que colocar um ponto decimal após um dos
[Inaudível]?
LEXI ROSS: Então você não, por causa da ordem de
operações.
Então porque Fahrenheit já é um flutuador, como é
Celsius, você não precisa converter explicitamente qualquer um destes
outros números como carros alegóricos, embora em outro
circunstâncias, quando você está lidando com ints, você pode
tem que colocar um ponto explicitamente lançá-lo como um carro alegórico.
Sim?
AUDIÊNCIA: Eu só queria saber se os assuntos de capitalização em
estes comandos como GetFloat?
LEXI ROSS: Sim, boa pergunta.
Portanto, a questão era, não importa em capitalização
comandos como GetFloat?
A resposta é sim, ele faz.
Assim GetFloat é, como Dan descreveu anteriormente, uma biblioteca
função na biblioteca CS50, e foi escrito como capital
G, capital F. Portanto, se você não escrever com esses capitais
lá, o compilador não vai entender o que
função que você está se referindo.
Okay.
Sim?
>> AUDIÊNCIA: é o argumento para sempre vazio principal?
LEXI ROSS: Sim, essa é outra grande questão.
Assim, o código que você copiou do meu espaço engano teve
argumentos um pouco mais.
Portanto, a questão era, é o argumento para a função principal
sempre vazio, o que essencialmente significa nada?
A resposta é não.
Você pode notar que o código copiado do meu anterior
revisão teve o que pode parecer nada que realmente faz
sentido agora, * alguns char, argv, argc.
Não se preocupe com isso agora, mas você vai descobrir mais tarde
em que eles fazem a diferença.
Mas se você não está usando esse tipo de funcionalidade adicionada
que você vai aprender mais tarde, nula
é completamente bem.
>> Tudo bem.
E temos mais um passo, o que é que nós queremos
realmente mostrar ao usuário o que a temperatura é convertido.
Então, novamente, nós vamos usar printf, e vamos dizer que f, apenas
Por razões de coerência.
E agora vamos fazer algo um pouco complicado.
Então, nós estamos indo para usar uma bandeira, ou um tipo especial de notação,
para dizer printf para imprimir apenas uma casa decimal.
E alguém por acaso sabe o que isso vai parecer
gosto, antes que eu escreva isso?
Sim?
AUDIÊNCIA: f 0,2%?
LEXI ROSS: Sim, sim.
Então, na verdade, é realmente muito próximos.
0.01F para f 0,01%, e então nós temos que lembrar de incluir
o outro argumento para printf, que é a própria variável,
que é n.
>> Um último passo.
Alguém pode lembrar o que está em nossa função principal?
Sim, lá em cima.
AUDIÊNCIA: Retorno?
LEXI ROSS: Exatamente.
Então, já que este é retornos principais int, queremos
também retornar em int.
DAN BRADLEY: Percentagem precisa estar no outro lado.
LEXI ROSS: Ok.
Desculpe, pessoal.
Isso foi um erro.
Assim, a percentagem vem antes 0,01.
Então é 0,01% f.
Esses são meio difícil de lembrar.
Muitas pessoas, como eu, só procurá-los
sempre que usá-los.
Sim, lá em cima.
AUDIÊNCIA: Por que é 0,01 e não 0,2 ou 0,1?
LEXI ROSS: Eu não sei, na verdade.
Você sabe?
Dan Bradley: A razão é 0,01 em vez de 0,02, ou
0.2, ou 0.1, é bastante arbitrária para a forma que o
programador originalmente projetado.
AUDIÊNCIA: Não foi isso que eu quis dizer.
Eu não estou pedindo a razão.
Razão [inaudível] por quê.
Eu tê-lo escrito como 0.2, e oferece dois -
Dan Bradley: Yeah.
Então nós estávamos apenas querendo um.
AUDIÊNCIA: Ah, ok.
Então, você poderia 0,01 então.
Dan Bradley: 0,1 provavelmente também funcionam.
0,01 funciona tão bem.
LEXI ROSS: Ah, o 0 pode ser o de mostrar zero, se
é menor que um.
Dan Bradley: Sim, eu acho que é certo.
Portanto, a 0,01 mostraria um zero se ele não tem nada
que iria para lá naturalmente.
Então, se você fosse, digamos, colocar em 100 para Celsius, seria
sair a 212 normalmente em Fahrenheit, como 212 exatamente.
Se você tiver a 0,01, ele vai mostrar 212,0, como
oposição a apenas 212.
LEXI ROSS: Isso mesmo.
Assim, a leitura que basicamente diz printf, imprimir um ponto decimal,
e imprimir um 0, se necessário.
Se não, imprimir a primeira posição decimal.
Dan Bradley: E nós vamos explorar algumas dessas quando estamos
na verdade, a execução do código.
LEXI ROSS: Yeah.
AUDIÊNCIA: Então eu coloquei 0,1.
Ele ainda mostra sua zero.
Dan Bradley: Ele ainda mostra sua zero?
AUDIÊNCIA: É.
Dan Bradley: Hm, ok.
LEXI ROSS: Cool.
>> Tudo bem.
Mais perguntas sobre este código antes de compilar e executar?
Alguém ver um erro aqui, em primeiro lugar?
Qualquer pessoa ver algo que deveria estar aqui?
Se este fosse o seu conjunto de problemas, o que seria aqui que não é
lá agora?
Sim, ótimo.
Então, eu não incluir comentários, porque eu estou entregando-os
por via oral, mas se eu estivesse escrevendo isso em um conjunto de problemas, eu o faria
definitivamente quero colocar comentários para indicar o que eu sou
fazer, no essencial, no programa.
E você vai tipo de começar uma sensação para ela, como você se move através
No semestre, a quantidade certa de comentar.
Você não quer ser muito detalhado e linhas de venda e
linhas de comentários para cada uma de suas linhas de código, mas você
também não quero para não ser detalhado o suficiente e deixar o
leitor a tentar descobrir o que diabos
seu código está fazendo.
>> Ok, legal.
Vamos tentar executar este código.
Ok, eu vou reduzir um pouco.
Cool.
Então, você vai perceber que há um botão Play aqui.
Vamos clicar Play.
Então, você vai notar aqui, assim como na especificação do problema
definido, há o. / a.out.
a.out é o nome do binário executável, o qual é um
palavra longa para apenas um arquivo consistindo de código binário que
o seu computador está executando.
Assim como nós esperávamos, temos C aqui.
Assim, chamar um número.
AUDIÊNCIA: 23.
LEXI ROSS: 23.
Dan Bradley: O programa levou muito tempo para ser executado.
Basta executá-lo novamente.
LEXI ROSS: Oh, meu mau.
Okay.
Espaços é exigente, às vezes.
Ele quer que você pense em seus pés.
Ok, 23.
Impressionante.
Será que todo mundo acredita nisso?
Legal, porque ele funciona.
>> Okay.
Vamos tentar mais um par.
Vamos tentar um caso extremo aqui.
Em ciência da computação, quando falamos sobre casos de ponta, queremos dizer
casos para o seu programa para executar que são uma espécie de sobre o muito
arestas de entradas razoáveis ​​ou que determinados cantos dos testes de
a lógica em seu programa, e isso faz mais sentido quando
fazer programas mais complicados.
Vamos tentar 0.
Impressionante.
Nós todos sabemos isso.
Cool.
Mais perguntas sobre isso antes de eu passar
para o programa a seguir?
Tudo bem, impressionante.
Então, agora, nós vamos -
quer apenas usar meu computador?
Dan Bradley: Sim, isso é muito fácil.
>> Tudo bem, então indo para ir e falar sobre fazer porcentagens.
Então estamos essencialmente, neste próximo exercício pouco, vai
tomar duas entradas inteiras do usuário, esperando por um
não negativo numerador e denominador positivo, e
basicamente dividindo-os e produzir o que sai como um
percentagem.
Então, nós queremos que ele só aceita não-negativos e numeradores
aceitar apenas denominadores positivos, e continuo a perguntar
para os novos, se não tiver conseguido o que quer.
Tudo bem?
Então, dar um que vá.
LEXI ROSS: Ah, sim, você quer fazer o -
oh, talvez as pessoas devem copiar o meu código.
Dan Bradley: Yeah.
LEXI ROSS: [inaudível]
Espaços.
>> AUDIÊNCIA: Eu tenho uma pergunta.
Se eu estou usando os espaços e quero salvar [inaudível] a
Fahrenheit conversão, posso salvá-lo e depois fazer uma nova -
LEXI ROSS: Nós só poderia fazer um novo espaço, ou você pode apenas
deseja copiar e colá-lo em um arquivo de texto ou
algo que você tem.
Dan Bradley: Eu vou mudar meu nome.
LEXI ROSS: Então, eu só salvou a última revisão do
tofahrenheit.c, por isso, se você entrar em AAAA Lexis Beryl
Ross, você pode entrar e copiar o código mais recente, e depois
começar neste novo, que eu acho que Dan vai dar
algum código esqueleto para bem.
Okay.
Dan Bradley: A última revisão que eu tenho no meu, então
é no topo, desta vez, é Revisão 4, e
ele vai ter o que você precisa para começar.
LEXI ROSS: Tudo bem, e eu vou copiar isso em minha também.
>> Dan Bradley: Tudo bem.
Acho que estamos indo apenas para começar a ir por causa disso, se
alguém estiver interessado.
LEXI ROSS: Estamos todos interessados.
Dan Bradley: Vamos começar apenas declarando
algumas variáveis. Assim, temos um numerador, e por uma questão de
agora, eu vou apenas começar com o valor -1,
e então eu vou criar um laço do-while. Embora -
Então, quando eu quero que ele loop?
Quando é que eu quero que ele continue perguntando -
sim?
AUDIÊNCIA: Quando é menor ou igual a zero.
Dan Bradley: Por que não pode ser igual a zero?
AUDIÊNCIA: [inaudível].
Dan Bradley: Yeah.
Assim, para o numerador, é só enquanto o numerador
é menor do que zero.
Isso faz sentido para as pessoas?
Mantemos looping enquanto o numerador é menor que zero,
continuamos pedindo para entrada de novo, e continuar exigindo que eles
input coisas novas.
Então, eu vou ter um pouco printf aqui, não negativo
num -.
E, então, fazer a mesma coisa de antes, exceto que fazer um
GetInt, só porque queria fazê-lo como
percentagens de ints.
Então numerador = GetInt.
>> Ok, agora algumas coisas.
Que eu preciso disso -1 aqui?
AUDIÊNCIA: [inaudível].
Dan Bradley: Não.
Por que não?
AUDIÊNCIA: Porque você está recebendo um valor aleatório do usuário.
Dan Bradley: Exatamente.
Mas eu gostaria de ter a declaração aqui?
Sim.
Por quê?
AUDIÊNCIA: Você tem que encontrar o lado de fora do loop.
Caso contrário, você não vai ter a variável para o resto
do programa.
Dan Bradley: Exatamente.
Escopo.
Sweet.
Isso faz sentido para todos?
AUDIÊNCIA: Você pode dizer que mais uma vez?
Dan Bradley: Okay.
Então, se eu fosse para declarar este numerador dentro do loop, se
Eu tinha isso em vez de numerador sendo numerador int,
e me livrei dessa inteiramente,
numerador desapareceria.
Não existiria fora desse circuito, pois tudo
É no âmbito dessas chaves.
Faz sentido?
Okay.
>> Assim, para denominador, fazemos algo bastante semelhante, int
denominador = -
e eu não preciso de igual -
fazer, e por enquanto, neste caso, o que eu quero?
Que condição é que eu quero que ele ainda laço em?
PÚBLICO: Menos do que ou igual a 0.
DAN BRADLEY: Menos do que ou igual a 0.
Denominador <= 0.
Não se esqueça, vírgulas crianças.
Então nós fazemos a mesma coisa que antes, printf positivo
denominador, e temos int daqui.
Lá vamos nós.
GetInt.
Okay.
E então, no final, queremos imprimir alguma porcentagem.
Então, para fazer isso, o que deveria ser a nossa corda parece?
printf.
Quaisquer outras ideias do que eu posso fazer aqui?
Sim?
AUDIÊNCIA: Talvez 0,2% [inaudível].
Dan Bradley: Yep.
Okay.
Vou começar com o primeiro bit,%% 0,02%,
citações vírgula.
E eu vou jogar uma nova linha aqui, só porque eu
como novas linhas quando eu estou fazendo as coisas.
Que tipo de expressão matemática que eu deveria ter aqui?
AUDIÊNCIA: Parênteses e float.
Dan Bradley: Ótimo.
Por que eu quero tê-lo em float?
AUDIÊNCIA: [inaudível].
Dan Bradley: Bom, bom.
Flutuar.
AUDIÊNCIA: Numerador.
Dan Bradley: Numerador?
Ok, então eu faço numerador float.
AUDIÊNCIA: Dividido por -
Dan Bradley: Dividido por?
AUDIÊNCIA: Denominador.
Dan Bradley: Eu faço apenas denominador, ou eu faço flutuador
denominador?
AUDIÊNCIA: Apenas denominador.
Dan Bradley: Okay.
AUDIÊNCIA: E você pode multiplicar por 100.
Dan Bradley: E eu que multiplicar por 100.
AUDIÊNCIA: E então parênteses a expressão inteira.
Dan Bradley: Yep.
>> Okay.
Boa aparência?
Vamos tentar.
-50.
Bom, 50.
0 e 100, 50%.
Trabalhou apenas como queríamos.
Será que esse código faz sentido para as pessoas?
Vou guardá-lo de modo que você pode obter uma cópia do mesmo.
Sim?
AUDIÊNCIA: Por que você não precisa colocar [inaudível]?
Dan Bradley: Onde?
AUDIÊNCIA: Como, quando você diz que é igual denominador
[Inaudível].
Dan Bradley: Quando eu tenho aqui?
Por que eu teria int antes?
AUDIÊNCIA: Porque o outro tem int antes.
Dan Bradley: Bem, de modo que não estava em um loop, certo?
Então, eu declaro este denominador int acima do loop,
e eu não tê-lo no circuito, porque eu seria
declará-lo um monte de vezes, e não seria realmente levar
até em qualquer outra parte do programa.
LEXI ROSS: Sim, a coisa importante a lembrar é que
variáveis ​​só precisa ser declarada uma vez.
Então, imagine como é a introdução de uma nova variável
para o mundo, chamando-int ou float ou outros enfeites, e
uma vez que é declarado, tudo o que você precisa fazer para mudá-lo é
basta chamá-lo por seu nome: denominador, ou x, ou y.
Você só precisa realmente chamá-lo de um int apenas uma vez.
>> Dan Bradley: Yeah.
AUDIÊNCIA: Você pode explicar a diferença entre o% d
e f% e se você declarar uma
variável como um decimal?
Dan Bradley: d% e% f Então aqui?
LEXI ROSS: Então d verdade se refere a apenas um dígito, não
decimal, que é uma espécie de confusão.
Não há nenhum tipo de dados real chamado decimal, e quando você
pretende imprimir um int, você se refere a ele como d%, ou
% O que quer-d. F é para float, que você acha que
seria eu, mas na verdade é d para int.
>> Dan Bradley: Sim?
AUDIÊNCIA: Então, no outro programa, por que não acabamos de fazer
a mesma coisa quando você está dizendo Fahrenheit?
Por que não colocar, como -?
Dan Bradley: Na parte inferior aqui?
Você poderia ter.
Ele teria sido completamente legítimo.
Eu gosto de fazê-lo desta forma, outras pessoas gostam separando
-lo em diferentes linhas de código.
De qualquer maneira funciona bem.
O que há?
>> AUDIÊNCIA: Você pode explicar o que o%%
[Inaudível]?
Dan Bradley: Ok, então por cento, por cento.
Bem, eu estava indo para ir sobre isso.
O primeiro é chamado por cento um caractere de escape, e isso só
diz que a coisa por trás disso não é realmente código.
Portanto, este primeiro por cento, à direita, a 0,02% f, todos aqueles f .02%
significar algo para printf como uma função.
%%, Eu só queria que, na verdade, apenas imprimir um
por cento sinal.
Então eu não estou dizendo que não há nada de importante por trás disso.
Eu só estou dizendo que há um sinal de porcentagem por trás dele.
Por favor, imprima um sinal de porcentagem.
Assim, por cento, em seguida, uma outra por cento.
AUDIÊNCIA: Você pode mostrar o que seria se você tem
flutuar com base em outra linha?
Dan Bradley: Ah sim, com certeza.
Então, eu estou sendo convidado a mostrar o que seria se eu
tinha esse numerador float, toda a matemática isso, em outra linha.
Assim por cento flutuador = -
e gostaria de se livrar disso e só colocar em porcentagem.
E está fazendo exatamente a mesma coisa, eu só
tem outra variável.
>> AUDIÊNCIA: [inaudível].
Dan Bradley: Desça até o quê?
AUDIÊNCIA: Para que eu possa ver [inaudível].
Dan Bradley: O que você não pode ver?
AUDIÊNCIA: Desculpe, eu estava [inaudível].
Dan Bradley: Yeah.
AUDIÊNCIA: Então, se estamos substituindo o caractere de escape,
suponha que queria ter um sinal de dólar em vez disso, apenas para
exemplo, um sinal de dólar por trás por cento?
Dan Bradley: Nope.
É apenas um dólar, apenas um sinal de dólar, porque um dólar
sinal não significa nada para printf.
A questão era, que eu preciso para ter um caractere de escape para
símbolos como cifrões?
AUDIÊNCIA: Então tipo de relacionados, existem outros casos que
devemos saber de quando algo como o percentual
sinal pode significar algo [inaudível]?
LEXI ROSS: Sim.
Não necessariamente o sinal de porcentagem, mas a barra invertida, consulte
como temos folga final aqui?
Vamos dizer que, na verdade, queria imprimir uma reação, teríamos
escapar que -
e isso vai soar confuso -
com outra barra invertida.
Então, se nós quiséssemos imprimir \ \, estaríamos
só precisa digitar isso, ou para obter informações adicionais
barra invertida, outra fuga.
E outra, se queremos imprimir uma citação - de modo
basicamente qualquer coisa, esse tipo de denota algo especial
dentro de uma cadeia, queremos escapar.
Então, vamos dizer que nós realmente queremos ter um orçamento aqui, nós o faríamos
quero fazer \ ".
AUDIÊNCIA: Então, é geralmente uma barra invertida?
Dan Bradley: Geralmente é uma barra invertida.
LEXI ROSS: Yeah.
Por alguma razão, aqui, é um sinal de porcentagem.
>> AUDIÊNCIA: [inaudível]?
Dan Bradley: Esse cara?
Isto é só para dizer, a coisa que está sendo dividido aqui é
vai ser tratado como um flutuador para a causa da divisão.
Assim, no caso de 50 dividido por 100, se eu não tinha o
flutuar lá, que seria apenas 0.
Isso é tudo o que iria sair, porque 50 dividido por
100, se você não está incluindo todos os decimais, é 0. -
e tudo após o decimal é apenas truncada fora.
AUDIÊNCIA: Hum,
por que não colocá-lo antes denominador também?
Dan Bradley: Então, a razão por que não colocá-lo na frente de
denominador é porque quando você está dividindo algo por
um número inteiro, ele funciona muito bem.
Tendo um número maior no fundo
não muda nada.
Você pode dividir por números inteiros muito bem.
Ele só não importa realmente.
Você pode, isso não mudaria nada.
AUDIÊNCIA: Então, se você queria três casas decimais, faria
você colocar por cento 0,03?
Dan Bradley: Yep.
Você colocaria% 0,03, se você queria
três casas decimais.
>> Público: e fazer comandos, o que é a diferença entre
isso e apenas fazendo enquanto no topo?
Dan Bradley: Então, um do-while contra um loop while são dois
comandos bastante semelhantes.
A única diferença é que você execute o código uma vez, você corre o
código dentro do tempo de ciclo anterior
de fazer qualquer verificação real.
Por isso, é também a razão que eu posso dizer, sem dar denominador
que o número um.
Então, se eu disse denominador int, e em seguida, enquanto (denominador <=
0), ele nunca poderia mesmo
executar o código dentro.
Ela vai fazer essa verificação antes -
por isso aqui.
Então se eu tivesse este laço enquanto aqui, eu teria que ter
denominador é igual, por exemplo, -2 ou um número menor
que ou igual a 0 até que seria realmente tentar executar o código
dentro primeiro.
Assim, de modo geral, você quer usar um loop do-while
em vez de um loop while quando você está pedindo a entrada do usuário
porque a execução do código uma vez, pedindo algo que o usuário
vai lhe dar é geralmente a melhor solução, em oposição
apenas confiando que você colocar para começar.
AUDIÊNCIA: E fazer é sempre seguido por um tempo.
Dan Bradley: Faça é seguido por algum pedaço de código que você
deseja executar, e depois, enquanto alguns condição.
LEXI ROSS: Pense nisso como uma espécie de comando quebrado
em duas partes.
É um tempo-do, não como aqui é um fazer, e então eu sou
indo para adicionar um tempo, é só um tempo-do.
>> AUDIÊNCIA: Eu entendo a razão pela qual você está usando o
dois sinais de porcentagem, mas você pode me explicar por que nós temos que
tem o [inaudível]?
Dan Bradley: Ok, então o sinal de porcentagem se está apenas dizendo
printf, aqui é um comando que eu quero que você
encher com um número.
Então, eu quero que você preencha-o com duas casas decimais e um
flutuar, e você vai encontrar a bóia no final do
comando, é esta por cento.
Isso faz sentido?
AUDIÊNCIA: Yep.
Dan Bradley: Okay.
>> AUDIÊNCIA: Existe algo sobre o laço do-while que
se a condição não for cumprida, se você receber um
número negativo para o numerador, vai apenas manter
pedindo e vai continuar fazendo o usuário?
Dan Bradley: Yeah.
Portanto, se a condição de quando não for cumprida, no final de
o não-tempo, ele vai correr de volta para o início.
É apenas um loop.
Então, é como um loop while que a condição não tem sido
cumprida em.
Ele só é executado mais uma vez.
Sim.
AUDIÊNCIA: Então, se você estiver fazendo isso, você pode, para o seu tempo,
colocou duas condições?
Dan Bradley: Você pode.
Depende do que você está pedindo.
Então você pode colocar duas condições em um loop while se tiver
todos dentro de algum tipo de operador booleano, o que soa
feio, mas é basicamente esse denominador é menor ou
igual a zero, ou retorna verdadeiro ou falso, certo?
Ou é menor do que ou igual a zero ou não.
Assim você pode fazer outros operadores booleanos que vai dizer enquanto
isso também é verdadeiro, ou enquanto este também é falso.
Por isso é coisas como numerador e é maior do que
zero, certo?
Isso é pedir, isso só vai loop while denominador é menor
que zero e você tem um numerador positivo.
AUDIÊNCIA: E você faz os dois ANDs, certo?
Dan Bradley: Dois ANDs.
LEXI ROSS: Nós vamos cobrir que mais tarde.
>> AUDIÊNCIA: E se alguém não colocar em um positivo
denominador?
Se colocar em um numerador negativo, você pode levá-los
para, digamos, colocar em um numerador não-negativo e tem
um comando para isso?
Dan Bradley: Você poderia.
AUDIÊNCIA: Agora ele só diz não negativo numerador.
O que seria usado para isso?
Dan Bradley: Então você tem uma condição IF, assim como se
numerador é menor do que zero.
LEXI ROSS: Você provavelmente só quer dividi-lo em mais
passos, certo?
Assim, a primeira vez que eles colocaram na entrada, que tinha acabado de dizer dar
nos numerador um ou outros enfeites.
E então, se eles fazem a coisa errada, isso pode ser o caso
para um loop while, em vez de um do-tempo, porque temos
a primeira vez que temos a GetInt, e em seguida, enquanto que a entrada
é ruim, continuamos pedindo-lhes para a entrada ainda mais com um
tipo diferente de texto, como o que não deu certo ou dar-nos um
não negativo numerador em vez disso, esse tipo de coisa.
>> Dan Bradley: Sim?
AUDIÊNCIA: Como você limpar o material que [inaudível]
o terminal?
LEXI ROSS: Limpar.
Dan Bradley: Sim, você não pode digitar nele.
LEXI ROSS: Na verdade, este não é um terminal real.
A questão era como você limpar essas coisas aí embaixo?
A resposta é que não é um terminal de verdade, mas vamos dizer que você
estão em um terminal real.
Limpar.
Ah, é um gato.
Dan Bradley: [inaudível]?
É que uma, certo?
LEXI ROSS: Não, isso é tudo meu.
Dan Bradley: [inaudível].
LEXI ROSS: Lá vamos nós.
Dan Bradley: Sim?
>> AUDIÊNCIA: O trabalho claro se você tem -
como, por exemplo executar um programa [inaudível] e ele está pedindo
você para alguma coisa, e você não quer.
Como você -
Dan Bradley: Control + C?
LEXI ROSS: Yeah.
Então, se você estiver executando um programa e algo não está indo a
maneira que você quer e você só quer sair do todo
programa, Control + C. Mesmo se você estiver em um Mac, não Apple + C,
Control + C.
AUDIÊNCIA: Será que você tem a versão correta no
revisão em seu perfil?
Dan Bradley: Eu acho que ele está salvo, não é?
Sim.
LEXI ROSS: Este é o espaço.
Sim.
Eu acho que é Revisão 11.
>> Dan Bradley: Sim?
Platéia: C fazer suposições sobre o que um
variável é se você definir uma variável, mas não atribua
nada para ele imediatamente?
Dan Bradley: Então, ele só vai aceitar ints em que local.
Então, se você declará-lo -
AUDIÊNCIA: Se eu apenas fiz int denominador ponto e vírgula, não é
supor que é igual a zero ou um número qualquer -?
Dan Bradley: Nope.
Então, se você não atribuir, por exemplo, int denominador para qualquer valor,
pode ser qualquer coisa.
É a memória antiga que estava no local.
Assim, poderia ser negativa 2000000000, pode ser positiva
2 bilhões, e que poderia ser em qualquer lugar.
Então, se você está realmente dirigir as coisas, certifique-se de que você
atribuir um valor às variáveis.
Isso, não importa, porque estamos imediatamente
atribuindo o valor, mas de um modo geral, sim.
Alguma outra pergunta?
>> LEXI ROSS: Nós também podemos apenas tirar dúvidas gerais neste
ponto no material de aula, material de p set, qualquer coisa que você
se perguntando sobre, este é um bom momento para pedir aqueles.
AUDIÊNCIA: Então, em orientações, Zamyla
mencionado a função round.
Você se importaria de elaborar sobre como implementar isso?
LEXI ROSS: Claro, como implementar isso?
AUDIÊNCIA: Ela disse que era redondo.
LEXI ROSS: Ah, sim.
Então, só assim todos nós temos o mesmo vocabulário e outras coisas,
implementar geralmente significa realmente a escrever a partir do zero.
E então eu não acho que ela estava falando sobre uma espécie de escrever
a função round.
Ela provavelmente significava apenas como usá-lo.
Implementar significa uma espécie de como criar.
Então, geralmente, um momento em que nós queremos usar a função round é que eu
Quer dizer, de alguma forma, por exemplo,
se você deseja arredondar.
Você pode me dar contexto um pouco mais sobre o que o
problema era?
PÚBLICO: Para evitar as imprecisões de casas decimais
, tornando-os um carro alegórico.
LEXI ROSS: Yeah.
Assim, a questão com flutuadores que nós tipo de alusão é
que, devido à forma como eles são armazenados na máquina,
eles não são 100% precisos no modo que você pode pensar
sua calculadora seria armazená-los.
É difícil para eu mostrar um exemplo sem saber o que
o contexto era.
Eu não sei, você pode pensar em algo, Dan?
>> Dan Bradley: Então, se você está pedindo, por exemplo, os números de
superior a 10 e que você está usando carros alegóricos, e você está adicionando um
a uma bóia de cada vez, ele vai esperar até que às vezes você tem
chegado a 12 antes de ele vai dizer que este é realmente um número
superior a 10.
Flutua ter alguns problemas graves, entre o 32
e casa decimal 33, que vai, por isso pode 9,9999999, ou
pode ser 10.0000001, certo?
Realmente não distinguir entre os dois, por isso, se você está
esperando que as coisas maiores ou iguais a 10, você pode
não chegar lá com o que você acha que é a iteração 10.
Você pode chegar lá no dia 11.
LEXI ROSS: Essencialmente, sim.
Quando você está looping sobre um monte de carros alegóricos, que é quando o
imprecisões acontecer.
AUDIÊNCIA: Eu acho que, então, basicamente, é como no p
definido, ele quer que você arredondar o valor float, e se você colocar em
4,24 para a quantidade de mudança que você precisa para trás, se você acabou de fazer
100 vezes, ele vai realmente mudar em 423 -
Dan Bradley: Às vezes, sim.
AUDIÊNCIA: Então eu acho que é como, como você usa a rodada
função no código real para fazê-lo para que ele não faz isso?
Dan Bradley: Então, se você é o arredondamento 424, multiplicando-se
por 100 e fazê-la em um número inteiro, ele será por vezes
torná-lo por causa do que 423 imprecisão.
E assim as coisas que você pode fazer é apenas adicionar 0,0000003.
AUDIÊNCIA: Mas eu acho que, na verdade, eles querem
-nos a usar a rodada.
Dan Bradley: A função rodada?
Há provavelmente uma função matemática, algo no
biblioteca de matemática.
AUDIÊNCIA: # include matemática.
Dan Bradley: # include , e não há
provavelmente uma função rodada.
AUDIÊNCIA: Assim como round () -?
LEXI ROSS: Essencialmente, porque você quer arredondar para
o cêntimo.
Dan Bradley: Vamos arrancar as páginas do manual.
Assim, uma ferramenta útil, se você não sabe -
você puxa o terminal -
é se você vai para a matemática homem.
LEXI ROSS: Cool.
>> Assim você pode ver, o homem é curto para o manual, não o homem, e
ele permite que você procure mais informações sobre qualquer dado
função ou biblioteca que você pode estar lidando.
Então eu digitei em matemática homem.
Deixe-me fazer zoom in
Dan Bradley: Podemos tentar rodada homem, também.
LEXI ROSS: Claro.
Dan Bradley: E isso vai listar -
matemática homem vai listar tudo o que está na biblioteca de matemática,
que vamos incluir.
Sim, nós também temos rodada.
LEXI ROSS: Então eu fiz durante todo homem.
Você pode ver aqui na sinopse, ele diz # include
, de modo que é tipo como cs50.h, stdio.h.
E parece que ele realmente está sobrecarregado, o que significa
leva diferentes tipos de argumentos, para que você possa arredondar
duplos ou carros alegóricos.
Dan Bradley: Round contra roundf.
LEXI ROSS: Roundf.
Será que Zamyla mencionar roundf contra redonda?
AUDIÊNCIA: No passo a passo, que era apenas uma rodada ().
Dan Bradley: Ok, então provavelmente ela estava usando o dobro,
em seguida, em oposição a uma bóia.
Ok, então você pode multiplicar por 100 e depois volta, e
que você deseja obter o número mais próximo a ele, eu acho.
>> LEXI ROSS: Então, a função round retorna a integral
valor mais próximo a arredondamento x meias casos de distância de 0,
independentemente do sentido de arredondamento correntes.
Então, basicamente, você iria querer só volta quando estiver no
um valor inteiro, de modo que você multiplicar por
100 e depois volta.
Isso faz mais sentido?
PÚBLICO: Para usar essa função em um arquivo de C, que você precisa
colocar bóia redonda, como se a sua variável é chamado de q, você
colocar round (float) q, e então um parênteses, ou pode
você acabou de colocar rodada, e depois q entre parênteses?
Dan Bradley: Então, se você estava tentando usar esta função
na verdade, você terá que q, q é uma bóia,
ou como é que é declarada?
AUDIÊNCIA: Q é um float.
Dan Bradley: Então, se q é declarada como uma bóia, você faria
apenas tomar rodada, e depois dar-lhe q.
Você pode ter que declará-lo como um casal neste caso.
LEXI ROSS: Sim, a menos que você quiser usar roundf.
AUDIÊNCIA: eu poderia usar apenas roundf, e depois q entre aspas?
Dan Bradley: Não, não, entre aspas, apenas q.
AUDIÊNCIA: Desculpe, mas não entre aspas, entre parênteses.
Dan Bradley: Em parênteses, sim.
LEXI ROSS: Pena que foi um pouco confuso.
Mais alguma pergunta?
>> Dan Bradley: Sim?
AUDIÊNCIA: Então redondas rodadas apenas para inteiros?
LEXI ROSS: Sim.
Dan Bradley: Sim, redondas rodadas apenas para números inteiros.
AUDIÊNCIA: Então se você quer ter algo exato que
necessária para ser [inaudível] multiplicado por 100 e depois
dividido por 100 novamente se você quisesse -?
LEXI ROSS: Então, se você quiser colocá-lo em uma forma decimal?
AUDIÊNCIA: Bem, a exemplo, por exemplo, [inaudível] você
tem 1,25, e depois [inaudível]
1,24, se você queria manter isso como 1,25, você faria
que multiplicar por 100, em volta dela, e depois dividir por 100
novamente para obter 1,25?
LEXI ROSS: Yeah.
Então a questão é, uma vez que o arredondamento, como a página de homem
diz, é arredondado para o valor inteiro mais próximo, isso significa que
que alguém iria querer multiplicar por 100, faça o
arredondamento, e dividir por 100 novamente para, digamos, obter a correta
dólares e centavos de valor?
E a resposta é -?
Dan Bradley: Não.
Quer dizer, se você está apenas começando um valor flutuante, se você começar
com um valor flutuante de 1,25, é assim que vai ser
interpretado.
Então, se você multiplicar por 100 e depois dividir por 100,
ela ainda vai ser interpretados como 1,25, ou
possivelmente 1,249 ...
.. 999.
LEXI ROSS: Eu acho que a pergunta era como, faria
multiplicam-se, em seguida, usar rodada, em seguida, dividir, então é como -
Dan Bradley: Yeah.
Eu ainda acho que não muda nada, porém.
Eu acho que ainda é.
LEXI ROSS: Porque rodada faz - ele usa números inteiros.
Então, se você tentar arredondar 1,25, você começa apenas 1.
Então eu acho que, a fim de obter como a precisão adicional,
se é isso que você está falando.
>> AUDIÊNCIA: Então, em que casos você usa redonda, então?
Dan Bradley: Então, nesse caso, se você quiser, por exemplo, o número
de centavos de US $ 1,25, você multiplicar por 100, rodada, começa
125, e deixá-lo como que, como centavos, em vez de tentar
convertê-lo em dólares e centavos.
LEXI ROSS: Ah, sim, sim, com certeza.
AUDIÊNCIA: Por que você precisa para completar que [inaudível]?
Dan Bradley: Então, se você multiplicar isso por 100 e, em seguida,
imediatamente convertê-lo para um número inteiro, o que é o mais
forma útil, que é quando você lidar com isso
imprecisão, certo?
Assim, pode ser 124.999999, e por isso, se você então convertê-lo em
um número inteiro, só cai tudo fora que está abaixo
o decimal.
AUDIÊNCIA: Então vou te dar [inaudível].
Dan Bradley: Exatamente, em vez de 125, o que é
por que você deseja arredondar.
>> AUDIÊNCIA: Desculpe, poderia repetir o que você disse
deve fazer ao contrário do que você não deve fazer?
Dan Bradley: Okay.
Então, o que você deve fazer é se você começar com 1,25, multiplique
lo por 100, e depois volta que número inteiro, que 125 ou
124.9999, e conseguir que o inteiro mais próximo.
AUDIÊNCIA: Então, se você volta, que coloca
para o número inteiro mais próximo?
Dan Bradley: Yeah.
AUDIÊNCIA: Existe uma maneira de limitar, se você perguntar para um flutuador
a ser introduzido, há uma maneira de limitar o número de casas decimais
lugares que você pode introduzir uma bóia para?
LEXI ROSS: Não utilizar a implementação do CS50.
Quero dizer, você pode contar como grande entrada é dada por
o usuário, mas isso exigiria uma nova implementação
de GetFloat, e assim você não precisa se preocupar com isso.
Dan Bradley: Então, se eles, por exemplo, a entrada de 1,256, você poderia apenas
usar 1,25, ou você poderia fazer 1,26.
De qualquer forma, eu acho que a implementação diz que você pode -
AUDIÊNCIA: Você pode apenas ter que arredondar para -
Dan Bradley: Seja o que quer, sim, desde que você faz
algum tipo de arredondamento.
Mais alguma coisa?
Não tem que ser sobre arredondamento.
LEXI ROSS: Sim?
>> AUDIÊNCIA: Se quiser verificar para ver se o estilo do nosso
código é adequado ou o melhor estilo
que pode ser, é que o tipo de coisa que traria em
seção, ou em horário de expediente, ou isso é o tipo de coisa
podemos postar privada sobre a coisa, em discussão, e depois
pedir conselhos sobre?
LEXI ROSS: Então nós não, no horário de expediente ou em CS50
Discutir, nós realmente não vai conjunto p grau o seu com antecedência
para o estilo, mas eu acho que provavelmente a mais útil
coisa que você poderia fazer seria olhar para exemplos, e você
deve ser capaz de descobrir que, em código de secção, a qual deve ser
linha distribuída, bem como as lâminas de aula, há
devem ser exemplos de código.
Mas se você tiver dúvidas individuais sobre um certo
questão de estilo, definitivamente, não hesite em pedir que a CS50
Discutir, e as horas de expediente, ou no seu próprio tempo.
Mas se é mais uma olhada geral no meu código, é melhor
tipo de exemplos de uso e tentar encaixar o seu código para isso.
E eu acredito que há um guia de estilo em -
Dan Bradley: Há o guia de estilo.
O guia de estilo é incrível.
Ela ensina-lhe tudo o que precisa, e cobre muito
muito cada exemplo que o homem conhece, ou pelo menos conhecido para mim.
>> Mais alguma coisa?
Tudo bem.
Cool, rapazes.
LEXI ROSS: Tenha um ótimo dia.
Dan Bradley: Obrigado por ter vindo.