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.