ENCEINTE 1: Parlons de l'eau. Dans ce problème, nous demandons à l'utilisateur de dire nous combien de temps en minutes de leur douche était puis on calcule l'équivalent nombre de bouteilles d'eau que leur douche utilisée. Alors, quelles sont nos choses à faire pour ce problème? Tout d'abord, nous allons vouloir pour inviter et puis validez l'entrée que l'utilisateur nous donne. Une fois que nous nous assurons que nous ont l'entrée d'utilisateur valide, nous allons calculer la nombre équivalent de bouteilles d'eau que l'utilisateur avait lors leur douche, puis nous sommes allez leur dire par l'impression de ce numéro. Donc, nous allons aborder notre premier tâche, ce qui incite et valider l'entrée d'utilisateur. Pour cela, nous avons écrit un fonction pour que vous avez appelé get_int situé dans la Bibliothèque CS50. get_int garantit que les entrées de l'utilisateur un nombre entier, de sorte que toute les nombres positifs, les nombres négatifs, ou zéro sont acceptées. Mais si l'utilisateur entre autre chose, de sorte que toute combinaison de lettres ou de chiffres ou des nombres décimaux, le utilisateur sera invité à réessayer et la fonction ne sera pas accepter quoi que ce soit jusqu'à ce que l'utilisateur leur donne un entier. Alors, comment nous utilisons get_int? Si vous ouvrez votre espace de travail et créer un fichier nommé entier.c nous allons tapez la commande suivante. Hashtag comprennent cs50.h. Ceci est nécessaire parce que get_int est une fonction de bibliothèque CS50, nous devons donc inclure hashtag sa déclaration pour d'utiliser la fonction. Et puis, dans mon principal Fonction Je vais juste simplement appeler la fonction get_int. Donc, nous allons exécuter cela et voir comment cela fonctionne. Je l'ai déjà compilé, afin de laisser juste aller de l'avant et exécuter ce programme, ./entier. Ici, j'ai une invite et voici où je saisir la valeur. Disons que je mets dans juste un entier, 50, les excepts et quitte programme et c'est ça. Mais dis que je le lance à nouveau et Je entrée autre chose. Peut-être, bonjour monde. Ce n'est pas un nombre entier de sorte que le programme me demandera de réessayer. Essayons à nouveau avec peut-être un nombre décimal cette fois. 0,5, encore une fois, pas un entier afin le programme ne sera pas l'accepter et il va me dire de réessayer. Donc, nous allons lui donner un autre numéro. Le programme accepte, quittes, et nous avons terminé. Alors maintenant, nous avons une fonction qui nous permet et assure que l'utilisateur saisit un entier, mais comment pouvons-nous effectivement garder une trace de la entier entré par l'utilisateur? Eh bien, tout ce que nous ferons est un magasin cette valeur dans une variable, disons n. Donc, si je déclare un entier n, et je mets cette valeur à get_int, alors n sera ensuite stocker quelque la valeur de l'utilisateur entré. Très bien, alors maintenant nous avons veillé à ce que l'utilisateur va nous donner un nombre entier et nous savons comment garder une trace de l'entier, mais rappelez-vous, entiers sont à la fois positif et négatif. Donc, il n'a pas vraiment de sens dans le contexte de ce problème que l'utilisateur prend une douche de dire négatifs 12 minutes. Nous devons donc faire en sorte que l'utilisateur nous donne effectivement un nombre entier positif. Maintenant, nous ne disposons pas juste un fonction unique pour cela, de sorte que nous allons avoir pour créer ce que nous-mêmes. Donc, nous voulons continuellement invite l'utilisateur jusqu'à ce qu'ils nous donnent un nombre entier positif. Si je fais quelque chose en continu alors qui est semblable à une boucle, une répétition. Donc, l'une des constructions que nous utilisons à c pour mettre en œuvre la répétition et boucles est une boucle while. Donc, une boucle while, comme montré ici, exécutera tout ce qui est dans le corps de la boucle que tant que la condition évalue donné à true. Dès que cette condition évalue à faux, le programme se déroulera à tout vient après que le corps de la boucle. Ainsi, alors que les boucles vont être vraiment utile dans CS50. Mais dans ce cas particulier cas, nous savons que nous sommes va demander à l'utilisateur au moins une fois, puis seulement en boucle si nécessaire. Donc, ici nous arrivons à un construction spéciale et c'est très similaire au temps boucle appelée une boucle do-while. Donc, une boucle do-while exécute la corps de la boucle au moins une fois puis il vérifie si elle doit exécuter, par opposition à une boucle while, qui va vérifier l'état puis exécuter le corps. Donc, dans une boucle do-tout ce que nous pourrions faire est inviter l'utilisateur à un nombre entier, puis vérifier si elle est valide ou non. Si elle est valide, nous allons répéter le processus demandant à l'utilisateur pour nous donner un autre entier, puis seulement quand cet entier est valide, nous allons continuer à tout ce qui vient après. Maintenant, vous remarquerez que la déclaration de l'entier n est légèrement différent de ce que nous fait avant dans l'exemple précédent et cela est à cause de la portée. Si nous avions déclaré l'entier n intérieur du corps de la boucle do-temps, alors nous ne serions pas en mesure d'accéder que la valeur de n en dehors de ceux bouclés croisillons indiquant le corps de la boucle. Mais nous ne voulons en fait d'accéder à la valeur de n plus tard dans notre programme. OK, donc maintenant nous allons parler ce que cette condition devrait être. Nous voulons seulement le reprompt l'utilisateur aussi longtemps que n est invalide. Alors, pensez à vous-même ce qui invalide un valeur entière ressemblerait et puis créer un booléen expression pour exprimer cela. Nous avons presque terminé avec notre sous-tâche d'inciter et de valider l'entrée utilisateur. Donc, nous allons faire cela un peu peu plus convivial et donner un peu de l'utilisateur peu plus d'informations de ce que nous sommes les incitant pour. Donc, nous allons demander à l'utilisateur, par le spec, avec les minutes de chaîne. Donc, en utilisant vos instructions printf, faire vous que vous correspondez exactement cela. D'accord. Nous avons donc maintenant un utilisateur valide entrée, un nombre entier positif la valeur pour le nombre de minutes ils ont passé dans la douche. Alors, quelle est la prochaine étape consiste à calculer le nombre équivalent de bouteilles. Ce que nous allons faire ici pourrait être très évident pour vous au premier abord, et c'est OK. Ce que nous voulons faire est de nous veulent commencer à pratiquer l'idée de détecter des motifs et développer des formules pour le problème. Donc, nous dit par la spécification qu'une minute dans la douche est équivalente à environ 12 bouteilles d'eau. Alors deux minutes serait équivalent à 24, et cinq minutes serait équivalent à 60. Alors maintenant, si vous pensez vous avez, puis nous allons voir si vous pouvez venir avec un motif ou de formule pour exprimer si nous avons dit, n minutes, combien de bouteilles d'eau cela serait-il exprimé en termes de n? Encore une fois, même si cela pourrait être simple au premier abord, plus tard, quand nous arrivons à des problèmes les plus compliqués nous allons vouloir entrer dans la pratique consistant à identifier les modèles et les formules en développement pour comprendre ces choses. En c vous avez accès à des opérations arithmétiques standard, addition, soustraction, multiplication et division. Donc, je vais laisser à vous maintenant à comprendre comment exprimer la nombre équivalent de bouteilles que l'utilisateur a consommé pendant leur douche. Très bien, nous avons presque terminé. Nous avons incité les utilisateurs pour leur entrée, nous avons veillé à ce que c'est entrée valide, puis nous avons compris comment pour calculer l'équivalent nombre de bouteilles qu'ils consommaient. Donc la dernière chose à faire est de sortie le nombre équivalent de bouteilles et nous espérons encourager qu'ils conservent un peu d'eau. Restitution la valeur sera une instruction printf. Si je voulais vous dire que je avoir trois animaux de compagnie, par exemple, Je pourrais utiliser une instruction printf qui ressemble à quelque chose comme ça. J'ai trois animaux de compagnie, et un nouveau ligne pour belle mise en forme. Maintenant, nous ne voulons pas simplement les choses de code dur. Dites le numéro de ma animaux de compagnie change au fil du temps. Ensuite, je vais faire usage de placeholders dans ma déclaration de printf. Alors, voici mon numéro est un entier. Donc, je vais faire un espace réservé pour un entier en utilisant% i. Je vais écrire la chaîne, puis après la chaîne Je vous écris une virgule, puis le variables que je veux imprimer. Alors que la valeur sera imprimée en lieu et place de cet espace réservé,% i. Vous pouvez utiliser des espaces réservés, comme ainsi, pour les flotteurs avec un% f. Vous pouvez également avoir plusieurs placeholders dans une chaîne. Par exemple, si je dois un certain nombre des chiens et un certain nombre de chats, Je mets deux espaces réservés ici, puis mes deux variables dans l'ordre respectif. Alors, maintenant que nous savons comment imprimer les valeurs mémorisées dans des variables, la dernière chose à faire est de veiller à ce que nous imprimer la valeur dans le format exact indiqué dans la description. Avec cela, nous avons incité les utilisateur et validé leur entrée. Nous avons ensuite calculé l'équivalent nombre de bouteilles d'eau qu'ils consomment pendant leur douche, et nous avons fourni en sortie que la valeur pour eux. Et donc, nous avons terminé l'eau. Mon nom est [? Zamila,?] et cela est CS50.