Bonjour et bienvenue. Dans cette démonstration, je souhaite apporter une solution
à notre dernier défi. Je veux donc
fournir une solution à notre programme c qui prend un
certain nombre de minutes et la convertit en ce qu'est cette représentation en
jours et en combien d'années.
Ce programme n'est pas nécessairement
pratique, mais il démontrera quelques concepts clés
que vous pouvez apprendre principalement en utilisant des opérateurs arithmétiques,
en obtenant des entrées au clavier.
Et vous devez également utiliser l'opérateur de distribution pour cela, ce que je n'ai peut-être pas
mentionné dans le défi, mais j'espère que vous avez
compris cela parce que lorsque vous faites le - vous n'avez pas besoin d'utiliser
l'opérateur de distribution, vous ne devriez pas avoir besoin
au départ, je pensais qu'une solution nécessitait un opérateur de module. Mais si vous faites un
module, cela ne prend que 2 entiers
je pense.
Alors de toute façon, commençons. Lançons des blocs froids et créons un
projet, passons en revue les éléments de base dans lesquels nous sommes assez bons à ce stade.
Je ne vais donc pas entrer dans les détails, vous pouvez simplement regarder.
Mais je vais créer un nouveau projet et ce sera un projet de console et ce
sera certainement c et ce que je vais nommer
celui-ci, c'est encore une fois que vous voulez toujours obtenir de bons noms significatifs.
Je vais dire la conversion des minutes.
C'est donc comme une application de conversion de minutes.
Et maintenant je vais juste modifier notre main. c fichier.
Alors débarrassons-nous de ça. Et nous allons conserver les déclarations d'inclusion.
Et comme toujours, vous voudrez ajouter des commentaires, assurez-vous d'ajouter les commentaires, ce n'est pas
parce que je ne le fais pas que vous ne devriez pas le faire.
C'est une pratique courante. C'est juste pour des raisons d'efficacité et de temps, je laisse cela de côté.
Ce que j'aime faire tout en haut
du programme, c'est d'effacer les variables que j'ai besoin d'utiliser, puis de les initialiser.
Alors commençons de cette façon. Je vais créer une variable entière pour
les minutes, l'utilisateur va entrer. Et je vais juste appeler que les minutes sont entrées. Je vais l'initialiser à 0.
Je vais créer un double pendant des années. Cela pourrait également être long
en fonction de la quantité de calcul que vous souhaitez faire, car vous pourriez en
fait entrer dans un nombre décimal assez grand.
Si longtemps pourrait même être une meilleure option. Mais je vais juste utiliser
un double pour l'instant, initialiser ce 0. 0 et jours égaux à
ce 0. 0.
Et maintenant, je veux obtenir des commentaires de l'utilisateur.
Afin d'obtenir une entrée de l'utilisateur, la première chose que vous faites est de dire à l'utilisateur de saisir l'entrée.
Je vais donc afficher une sortie disant s'il
vous plaît entrez le nombre de minutes.
Et il va y mettre un deux-points et un espace
et le terminer par un point-virgule.
Ensuite, je vais réellement obtenir les commentaires.
Voici où vous diriez probablement obtenir les commentaires de l'utilisateur en tant que commentaire.
Comment obtenons-nous les commentaires de l'utilisateur? Nous utilisons la fonction scanf.
Alors souvenez-vous de cela il y a quelque temps, dites simplement scanf, similaire à printf.
Et le premier paramètre est le type
de données que vous souhaitez lire pour convertir.
N'oubliez pas que tout est lu sous forme de chaîne ou de texte.
Vous devez donc le convertir en la manière dont vous allez le stocker.
Donc, vous le mettez entre guillemets, tout comme printf. Vous utilisez un spécificateur de format.
Ici. Je vais simplement dire que je veux le stocker sous forme décimale.
Je vais donc dire d un
entier, pas un entier décimal, désolé.
Et puis l'argument suivant est la variable que vous allez stocker.
Dans je vais le stocker en minutes entré.
Maintenant, rappelez-vous que scan f et
je viens de scanner là-bas, scanf pour chaque
type de données sauf une chaîne, vous
devez fournir l'esperluette. Le sous-opérateur d'adresse.
Nous devons donc fournir cela. Nous lisons un nombre donc nous devons faire l'esperluette.
Rappelez-vous cela de la conférence. Ensuite, je veux ajouter cela avec un point-virgule.
Et à ce stade, vous devriez probablement tester.
Assurez-vous que vous pouvez obtenir des commentaires de l'utilisateur. Et vous avez probablement juste un printf pour afficher ce que vous avez entré.
Mais puisque je sais que c'est correct, je vais passer à autre chose.
Je vais devoir faire un calcul à la ligne 15.
Principalement, je veux stocker les minutes en années.
Donc ce que je vais faire est de créer une autre variable
que j'ai oublié et qui stockera les minutes dans l'année.
Parce que cela va faciliter les choses. Alors ici, je vais juste dire minutes et année.
Vous remarquerez que la convention que j'utilise ici pour nommer les variables est camelCase.
C'est là que vous avez des minuscules pour
la première paroisse, puis chaque mot après cela, vous mettez en majuscule le premier caractère.
Je ne l'ai pas expliqué plus tôt, alors j'ai pensé le mentionner.
Donc, le premier calcul, je veux définir mes minutes et mon année
parce que c'est ainsi
que je vais calculer mes années. Donc, les minutes et les années seront en fait
égaux à - et j'aime utiliser les parenthèses juste pour organiser, donc tout est clair. Cela le rend plus lisible.
Ce sera 60, car 60, c'est le
nombre de minutes dans une heure. Et je vais multiplier par cela par le nombre d'heures dans une journée qui est de 24.
Je vais multiplier cela par le nombre de jours dans
une année, soit 365.
Et donc ce calcul va me donner le nombre de minutes dans une seule année.
Et je peux maintenant l'utiliser pour calculer mes années.
Donc, ici sur la ligne suivante, je peux dire que les années sont égales - nous utilisons donc
ici des opérateurs d'affectation, les égaux.
Et puis ce que nous faisons entre ces parenthèses à la ligne 16, c'est
que nous utilisons l'astérisque qui est une multiplication. Tellement joli.
Les années vont juste être égales à - et encore une fois, je veux utiliser des parenthèses.
Les minutes entrées qui ont été faites par l'utilisateur divisées
par les minutes de l'année.
Donc, si vous avez entré 5000 minutes et qu'il y a 20000 minutes dans une année, 5000
divisé par 20000 vous donnera combien d'années il y a ce qui
équivaudrait à 0 point quelque chose.
Pour calculer
les jours, je vais
simplement dire ici les minutes entrées
divisées par 60 et 60. 0 parce qu'il
y a ce qu'il y a
60 minutes dans une heure.
Et une fois que j'ai les heures, je peux les diviser par le nombre de
jours qui est de 24. 0.
Et j'aurais pu mettre cela dans un autre calcul si je le voulais.
Mais encore une fois, je veux m'assurer que nous faisons cela dans le bon ordre.
Je vais donc d'abord diviser les minutes d'entrée divisées par 60.
Vous n'avez pas à vous en soucier en
fait parce que nous faisons la division ici, donc l'associativité sera de gauche à droite
et je n'aurais en fait pas besoin de ces parenthèses. Mais j'aime toujours ajouter des parenthèses car cela rend les choses plus lisibles.
Alors ajoutons ce dernier.
C'est un peu redondant. Je n'en ai même pas besoin ici. Alors laissez-le
de côté, seulement les premiers. Et cela devrait afficher nos jours.
Maintenant que j'ai fait mes calculs et utilisé certains des opérateurs.
Je veux faire un printf pour simplement imprimer mes données.
Ici, je vais dire imprimer les minutes en premier,
le pourcentage
d minutes représente environ le pourcentage f années et le pourcentage f jours.
Et puis je vais ajouter un saut de ligne.
Donc, ce que cela fait, c'est que nous utilisons printf pour afficher la sortie des variables
et les symboles de pourcentage se souviennent de nos spécificateurs de balisage.
La première chose que je veux imprimer, ce sont les minutes, donc je dois mettre quelques minutes après ma première virgule quand elle est entrée.
Le second est l'année, donc je veux dire les années parce que c'est un pourcentage f années.
Et le troisième, ce sont des jours quelque chose
comme ça.
Je devrais maintenant compiler et exécuter, et ils devraient faire ma conversion pour moi.
Alors allons-y et construisons. Je n'ai pas de matins, pas d'erreurs.
Courons et je ne sais même pas combien de minutes il y
a dans une année. Je ne sais donc pas
comment tester cela, mais mettons juste 5000 minutes pour commencer.
Quand je lance le programme, il me demande de saisir le nombre de minutes, je vais mettre 5000.
Et si vous n'avez pas entré de nombre, vous pourriez avoir un
plantage parce que vous le convertissez en nombre dans votre fonction scanf.
Je frappe retour, cela dit que 5000 minutes sont
environ 0. 009513
ans et 3. 47222 jours,
ce qui semble logique parce que 60 minutes dans une heure
fois 24, ça va être environ 2400 ou
plus pour un jour donc 2400
et 2400, pas 60 fois. Je suis désolé
60 fois 24 ça va être environ 1200.
Donc 1200 va dans 5000 combien de fois par jour
probablement environ 3. 4 là-bas.
Donc, grosso modo, cela semble être correct.
Vous pouvez donc l'exécuter plusieurs fois, mettre en gros ce que vous allez remarquer.
Nous ne stockons que des doubles ici. Donc, si vous l'exécutez et que vous essayez de
mettre un nombre trop grand, disons 600 milliards ou quelque chose du
genre, vous risquez de vous
tromper - vous pouvez donc avoir des incorrections ici. Donc, cela vous montre les problèmes de types de données.
Donc je stocke dans un int. Int ne fait que 8 octets. J'ai entré ce nombre énorme.
Cela ne peut pas y être stocké. Donc, quand je vais
l'imprimer, il imprime sur un numéro complètement différent, 184298154.
C'est parce que ce que j'entre est plus grand qu'un int.
Vous voudrez peut-être vous demander si vous voulez que ce programme
soit encore plus précis et que vous voulez entrer des nombres plus grands pour changer certains
types de données, changer les entiers en doubles ou même les doubles en longs.
Donc, cela veut dire 350 ans et 127 000 jours environ.
Donc, une belle petite application de conversion qui, encore une fois, essaie de
vous fournir une certaine compréhension des
types de données ainsi que des opérateurs.
Nous pourrions avoir de nombreuses applications de conversion différentes. Une autre application intéressante
que vous souhaitez écrire pour plus de pratique serait l'application Fahrenheit
to Celsius.
Écrivez une application qui permet à l'utilisateur d'entrer Fahrenheit, puis de la convertir en Celsius.
Je veux dire que vous vous présentez de très nombreux scénarios différents. Mais cela vous obligera à utiliser les opérateurs.
Et nous pourrions même faire un casting
ici si nous le voulions. Si nous n'aimions pas cela, les jours
étaient trop précis et peut-être que nous voulons changer le double en un int.
Et nous voulons le rendre un peu moins précis. Nous pourrions en fait dire "cast this
to an it" en fournissant simplement les parenthèses puis
en faisant int.
Et cela prendrait en fait ce nombre pendant des jours.
Et si c'est décimal 3. 549 ou quelque chose du genre, il le convertirait en 3.
Peut-être que ce serait mieux pour l'utilisateur, à vous.
Mais gardons-le pour l'instant en double.
Mais c'est comme ça que vous apprenez. Vous jouez avec le programme, essayez différents
scénarios, essayez différentes entrées, assurez-vous que tout est correct. Merci.