COLUNA 1: Vamos falar sobre a água.
Neste problema, pedimos ao usuário informar -nos quanto tempo em minutos o seu chuveiro era
e então nós o cálculo do equivalente número de garrafas de água
que seu chuveiro usado.
>> Então, quais são nossos afazeres para este problema?
Primeiro, vamos querer para solicitar e, em seguida, validar
a entrada que o usuário nos dá.
Uma vez que temos o cuidado de ter a entrada de usuário válido,
vamos calcular o número equivalente de garrafas de água
que o usuário teve durante seu chuveiro, e então nós estamos
vai dizer a eles por imprimindo a esse número.
>> Então, vamos enfrentar o nosso primeiro tarefa, o que levou e validando
a entrada do usuário.
Para isso, você escreveu um função para você chamado
get_int localizado na Biblioteca CS50.
get_int garante que as entradas de usuários um inteiro, então todos os números positivos,
números negativos, ou zero são todos aceitos.
Mas se o usuário insere qualquer outra coisa, portanto, qualquer combinação de letras ou números
ou números decimais, em seguida, o usuário será solicitado para repetir
ea função não irá aceitar qualquer coisa até que o usuário dá-lhes um número inteiro.
>> Então, como vamos usar get_int?
Se você abrir o seu espaço de trabalho e criar um arquivo chamado integer.c vamos
digite o seguinte.
Hashtag incluem cs50.h.
Isto é necessário porque get_int é uma função de biblioteca CS50,
por isso devemos hashtag incluem sua declaração, a fim
utilizar a função.
E então, em minha principal funcionar Eu só vou
simplesmente chamar a função get_int.
>> Então, vamos rodar e ver como ele funciona.
Eu já compilado-lo, então vamos vá em frente e executar este programa,
./integer.
Aqui eu tenho um prompt e aqui é onde eu inserir o valor.
Digamos que eu coloquei em apenas algum inteiro, 50, a excepts programa e sai
e que é isso.
>> Mas digamos que eu executá-lo novamente e I entrada de outra coisa.
Talvez, Olá mundo.
Isso não é um número inteiro de modo que o programa irá pedir-me para tentar novamente.
Vamos tentar de novo com talvez um decimal este tempo.
0,5, de novo, um número inteiro não tão o programa não irá aceitá-la
e ele vai dizer-me para tentar novamente.
Então, vamos dar-lhe outro número.
O programa aceita, sai, e estamos a fazer.
>> Portanto, agora temos uma função que nos permite e garante
que o usuário insere um inteiro, mas como podemos
realmente manter o controle do integer introduzidos pelo utilizador?
Bem, todos nós vamos fazer é loja este valor em uma variável, digamos, n.
Então, se eu declarar um inteiro n, e eu definir esse valor para get_int,
então n, então, armazenar qualquer valor que o usuário inserido.
>> Tudo bem, então agora temos assegurado que o usuário vai nos dar um número inteiro
e nós sabemos como manter o controle do inteiro, mas lembre-se,
inteiros são tanto positivas como negativas.
Portanto, não faz muito sentido no contexto deste problema
que o usuário toma um banho de dizer negativo de 12 minutos.
Por isso, precisamos ter certeza de que o usuário realmente nos dá um número inteiro positivo.
Agora não temos apenas um função única para isso,
por isso vamos ter para criar esse nós mesmos.
>> Por isso, queremos continuamente solicitar ao usuário
até que eles nos dão um inteiro positivo.
Se eu estou fazendo algo de forma contínua, em seguida, que é semelhante a um loop, uma repetição.
Portanto, uma das construções que usamos no c para implementar repetição e voltas
é um loop while.
Assim, um loop while, como mostrado aqui, executará
o que está no corpo do laço como desde que os dados avalia a condição
para true.
Assim que essa condição avalia a falsa, então
o programa irá prosseguir para o que quer que vem depois do corpo do ciclo.
>> Assim, enquanto laços vão ser realmente útil em CS50.
Mas, neste particular, caso, sabemos que estamos
indo para solicitar ao usuário, pelo menos, uma vez e só então circuito, se necessário.
Então, aqui chegamos a um construção especial e isso é
muito semelhante ao enquanto circuito chamado um loop do-while.
>> Então um loop do-while executa o corpo do laço, pelo menos, uma vez
e, em seguida, ele verifica para ver se ele deve executar,
em oposição a uma ansa de tempo, que irá verificar a condição
e, em seguida, executar o corpo.
Assim, em um loop do-while que poderíamos fazer é pedir ao utilizador para um número inteiro,
e depois verificar se é válido ou não.
Se for inválido, então nós vamos repita o processo pedindo ao usuário
para nos dar outro inteiro, e em seguida somente quando esse inteiro é válido,
vamos continuar a o que vem depois.
>> Agora você notará que a declaração do inteiro n
é ligeiramente diferente do que fez antes no exemplo anterior
e isso é por causa do escopo.
Se tivéssemos declarado o inteiro n dentro do corpo do laço do-tempo,
então não seria capaz de acessar que o valor de n do lado de fora dos encaracolado
cintas que indica o corpo do laço.
Mas nós de fato quiser acessar o valor de n, mais tarde, no nosso programa.
>> OK, então agora vamos falar sobre o que esta condição deve ser.
Queremos Reprompt apenas o utilizador, desde que n é inválido.
Então, pensar a si mesmo que um inválido valor inteiro seria semelhante
e depois criar um booleano expressão para expressar isso.
>> Estamos quase a acabar com a nossa subtask de solicitar e validar a entrada do usuário.
Então, vamos fazer isso um pouco pouco mais amigável
e dar ao usuário um pouco pouco mais de informações
do que estamos levando-os para.
Portanto, vamos pedir ao utilizador, por o spec, com os minutos de cordas.
Então, usando suas declarações printf, fazer Certifique-se de que você combinar isso exatamente.
>> Tudo certo.
Portanto, agora temos um usuário válido de entrada, um número inteiro positivo
valor para quantos minutos eles passaram no chuveiro.
Então, o que vem a seguir é calcular o número equivalente de garrafas.
O que vamos fazer aqui pode ser muito óbvio para você em primeiro lugar,
e isso é OK.
O que queremos fazer é que quer começar a praticar
a ideia de detecção de padrões e desenvolvimento de fórmulas para o problema.
>> Então, nós estamos disse por a especificação que um minuto no banho
é equivalente a cerca de 12 garrafas de água.
Então, em seguida, dois minutos faria ser equivalente a 24,
e cinco minutos seria ser equivalente a 60.
Portanto, agora se você pensa você tem isso, então vamos
veja se você pode vir para cima com um padrão ou fórmula
para expressar se tivermos dizer, n minutos, quantas garrafas de água
teria que ser expressa em termos de n?
>> Mais uma vez, embora esta pode ser simples na primeira,
mais tarde, quando nós começamos a problemas mais complicados
vamos querer entrar em a prática de identificar
padrões e fórmulas desenvolvimento para descobrir isso.
>> Em c você tem acesso a operações aritméticas padrão,
adição, subtração, multiplicação e divisão.
Então eu vou deixar para agora você descobrir
como expressar o número equivalente de garrafas
que o utilizador consumiu durante o seu chuveiro.
>> Tudo bem, estamos quase terminando.
Temos solicitado ao utilizador para a sua entrada, temos assegurado que é uma entrada válida,
e, depois, descobri como para calcular o equivalente
número de garrafas que consumidos.
Assim, a última coisa a fazer é para a saída o número equivalente de garrafas
e esperamos encorajar -los para conservar um pouco de água.
>> Produzir o valor será ser uma instrução printf.
Se eu queria te dizer que eu ter três animais de estimação, por exemplo,
Eu poderia usar uma instrução printf que é algo como isto.
Eu tenho três animais de estimação, e uma nova linha para formatação agradável.
>> Agora nós não queremos simplesmente coisas de código rígido.
Dizem que o número do meu animais de estimação muda ao longo do tempo.
Então eu vou fazer uso de espaços reservados em minha declaração printf.
Então aqui o meu número é um inteiro.
Então, eu vou fazer um espaço reservado para um inteiro usando% i.
Eu estou indo para escrever a seqüência, e, em seguida, após a string
Eu escrevo uma vírgula e, em seguida, o variável que deseja imprimir.
Assim que o valor será impresso em vez desse espaço reservado,% i.
>> Você pode usar espaços reservados, como Bem, para flutuadores com um% f.
Você também pode ter múltiplos espaços reservados em uma string.
Por exemplo, se eu tiver algum número de cães e um certo número de gatos,
Coloquei dois espaços reservados aqui e, em seguida, minhas duas variáveis ​​na respectiva ordem.
>> Portanto, agora que sabemos como imprimir os valores armazenados em variáveis,
a última coisa a fazer é garantir que
imprimir o valor no formato exato indicado na especificação.
Com isso, temos levou o usuário e validada a sua entrada.
Temos então calculado o equivalente número de garrafas de água
que eles consomem durante o seu chuveiro, e temos emitido esse valor para eles.
E assim, nós completamos água.
>> Meu nome é [? Zamila,?] e este é o CS50.