DAVID J. Malan: Implémentons maintenant une fonction qui n'a pas seulement un côté effet, mais au lieu des rendements une valeur de retour. Plus précisément, nous allons mettre en œuvre une fonction appelé obtenir int positif dont but dans la vie est de faire exactement cela. Plus précisément, je voudrais utiliser cette fonction comme suit: - int N obtient obtenir int positif. Et puis imprimez f, grâce pour le i pour cent en espace réservé, virgule, fin. Maintenant, bien sûr, obtenir positif n'existe pas encore int. Donc, nous allons promettent de mettre en œuvre par ajoutant au début de mon dossier une ligne comme signifiant que cette fonction int sera de retour dans int - obtenir int positif. Et nous allons préciser explicitement que cette fonction ne prendra aucune entrée, et si ses arguments sont nuls. Allons maintenant au fond de mon dossier, tout simplement pour que je puisse garder principale en haut, effectivement mise en œuvre ou de définir cette fonction. D'abord, nous commençons avec le même signature, pour ainsi dire - int obtenir positif int vide. Et maintenant, nous allons mettre en oeuvre obtenir int positif comme suit. Déclarons un int, également appelé N, mais nous pourrions l'appeler presque tout nous aimerions, procédez comme suit tandis que d'autres condition est vraie, et nous allons revenir à cette condition dans un moment. Imprimer f, donnez-moi s'il vous plaît un int positif, et maintenant nous allons utiliser Get int de la bibliothèque de CS50 à fait obtenir que int. Mais dans mon état, nous allons le faire boucle tant que N est inférieur à 1. En d'autres termes, tant que l'utilisateur ne coopère pas en me fournissant avec un int positif, permettez-moi de re-rapide lui encore, et encore, et encore jusqu'à ce qu'il ou elle fait. Mais je n'ai pas encore fini, car à l' fin de cette fonction, je dois faire quelque chose avec cette entrée. Et donc je vais aller sur le retour avec une ligne comme fin de retour point-virgule, ce qui ramène une réelle int pour principal qui a appelé cette fonction. Maintenant, il est intéressant de noter que, même si obtenir des rendements positifs dans int int, c'est certainement très bien pour elle pour revenir un int positif spécifiquement. Il n'est pas un type de données spécial pour entier positif spécifiquement, nous il suffit d'utiliser le construit en "int". Maintenant de retour à la ligne neuf, remarque que je suis imprimer N. Mais le N dans cette ligne appartient à la N qui est déclaré en ligne huit. Ainsi, il s'avère que vous ne pouvez absolument avoir les variables portant le même nom si tant qu'ils existent à l'intérieur des portées différentes. Et de rappeler que la portée est définie par les accolades que plus étroitement entourer la variable que vous avez défini. Maintenant, nous allons compiler et exécuter ce programme. Faire fonctions 1, point réduire fonctions 1. Donnons-lui un positif int comme 50, et il dit merci pour le 50. Pendant ce temps, si nous ne coopérons pas, Exécutez de nouveau le programme, ce qui lui donne 0, je suis invité à nouveau, ou de le donner 1 négative, je suis invité à nouveau. Mais si je ne coopèrent lui fournissant, dire, 50 ans, je suis remercié pour le 50.