Apprendre par l'exemple
L'un des meilleurs moyens d'apprendre à programmer dans une nouvelle langue de nombreux exemples de programmes. La meilleure chose à faire est de copier et coller chaque programme ci-dessous dans un fichier texte et le compiler. Ensuite, effectuez des tests. En développant ces exemples de programmes, vous vous familiariserez avec différents aspects de C++, et vous vous sentirez plus à l'aise lorsqu'il s'agira d'écrire des programmes à partir à partir de zéro.
Exemple 1: Faites fonctionner votre compilateur
Si vous ne l'avez pas déjà fait, copiez et collez le programme classique suivant : en un fichier texte et de le compiler. Des instructions de compilation sont disponibles cliquez ici.
Il est probable que vous ayez parcouru les détails de ce programme dans le tutoriel, Nous ne fournirons donc pas de description ligne par ligne ici. Il y a plusieurs choses vous devez remarquer, en ce qui concerne la lisibilité. Il s'agit de commentaires et le formatage qui rendent les programmes faciles à lire, à comprendre et à gérer.
- Chaque programme que nous écrivons commence par un commentaire d'en-tête, qui indique le nom de l'auteur, ses coordonnées, une brève description et son utilisation (le cas échéant). Chaque fonction commence par un commentaire sur le fonctionnement et l'utilisation.
- Nous ajoutons des commentaires explicatifs en utilisant des phrases complètes chaque fois que le code le fait. ne se documentent pas, par exemple, si le traitement est complexe ou peu évident intéressantes ou importantes.
- Utilisez toujours des noms descriptifs: les variables sont séparées par des mots en minuscules par _, comme dans ma_variable. Les noms de fonction utilisent des lettres majuscules pour marquer des mots, comme dans MyExcitingFunction(). Les constantes commencent par un "k" et utilisez majuscules pour marquer des mots, comme dans kDaysInWeek.
- Le retrait est un multiple de deux. Le premier niveau comprend deux espaces ; si vous souhaitez une indentation est nécessaire, nous utilisons quatre espaces, six espaces, etc.
// hello.cpp: Maggie Johnson // Description: a program that prints the immortal saying "hello world" #include <iostream> using namespace std; int main() { cout << "Hello World!" << endl; return 0; }
Quelques tests à essayer:
- Le plus important est de vous assurer que vous pouvez compiler et exécuter ce programme.
- Modifiez le programme ci-dessus pour afficher "Hello World!". 4 fois sur un ligne de 6 lignes, chacune étant imprimée dans un champ de 17 espaces. Utiliser pour les boucles pour ce faire. Cliquez ici pour en savoir plus sur le formatage de la sortie avec cout. Cliquez ici pour voir la solution.
- À l'aide du programme que vous venez de terminer, découvrez comment imprimer "Hello Monde !" aligné à gauche dans les champs de 17 espaces (par défaut, aligné à droite). Cliquez ici pour consulter la solution.
Exemple 2: Obtenir des données d'entrée
Il est facile d’obtenir une saisie à partir du clavier en C++ à l’aide de cin. Voici un exemple :
// get_input.cpp: Maggie Johnson // Description: Illustrate the use of cin to get input. #include <iostream> using namespace std; int main() { int input_var = 0; // Enter the do while loop and stay there until either // a non-numeric is entered, or -1 is entered. Note that // cin will accept any integer, 4, 40, 400, etc. do { cout << "Enter a number (-1 = quit): "; // The following line accepts input from the keyboard into // variable input_var. // cin returns false if an input operation fails, that is, if // something other than an int (the type of input_var) is entered. if (!(cin >> input_var)) { cout << "You entered a non-numeric. Exiting..." << endl; break; // exit the do while loop } if (input_var != -1) { cout << "You entered " << input_var << endl; } } while (input_var != -1); cout << "All done." << endl; return 0; }
Un test:
- En cas d'erreur de saisie, le flux "s'interrompt" CIN renvoie
false et le programme s'arrête. Il est très important de
se prémunir contre de telles erreurs
comme nous l'avons fait
dans le programme ci-dessus. Mais que se passe-t-il si nous
voulons récupérer de l'erreur,
plutôt que de faire cesser le programme ? Il y a deux étapes
pour récupérer d’un
une erreur:
<ph type="x-smartling-placeholder">
- </ph>
- Supprimez l'erreur avec cin.clear().
- Supprimez les caractères incorrects du flux. Une façon de le faire est d'utiliser cin.ignore().
Suivez ces deux étapes pour écrire un programme qui corrige une entrée incorrecte. Utilisez Google pour comprendre comment fonctionnent ces méthodes. Découvrez notre solution sur cette page.
Exemple 3: Que génère ce programme ?
#include <iostream> using namespace std; int main() { cout << " 1\t2\t3\t4\t5\t6\t7\t8\t9" << endl << "" << endl; for (int c = 1; c < 10; c++) { cout << c << "| "; for (int i = 1; i < 10; i++) { cout << i * c << '\t'; } cout << endl; } return 0; }
Exemple 4: La décomposition simplifie tout...
Il est temps de commencer à écrire des jeux vidéo ! Celle-ci sera un peu simple, mais c'est un début. Notre tâche consiste à écrire un programme qui met en œuvre jeu. Notre programme génère un nombre aléatoire compris entre 0 et 100. Le joueur doit deviner le nombre secret. Le programme fournit des indices tels que "C'est trop élevé". ou « c'est trop basse" jusqu'à ce que le joueur devienne enfin le nombre secret.
Nous allons travailler sur ce jeu en trois étapes.
- Apprendre à générer un nombre aléatoire dans une plage de valeurs donnée.
- Créez une fonction principale qui traite une proposition du joueur et fournit ou d'astuces.
- Ajoutez tout ce dont nous avons besoin pour permettre plusieurs devins jusqu'à ce que le joueur devine le numéro.
Ce processus de développement s'appelle la décomposition : il s'agit de décomposer une tâche en sous-tâches, chacune facile à faire.
En commençant par l'étape 1, effectuez une recherche sur Google pour savoir comment générer un nombre aléatoire. à l'aide de C++. Essayez de rechercher "rand C++". Voici notre solution.
Pour l'étape 2, nous devons recevoir un nombre entier saisi par le lecteur (avec un nombre vérification des erreurs sur cin), et le comparer au numéro secret. Essayer d'écrire cette partie du jeu avant de consulter notre solution.
Enfin, nous devons ajouter une boucle qui continue à collecter les suppositions du joueur. jusqu'à ce qu'ils devinent enfin le nombre secret. Une fois cette partie terminée vous pouvez consulter notre solution.
La décomposition est l'une des compétences les plus importantes pour un programmeur. Être capable de décomposer une tâche en éléments gérables, puis d'en terminer une à un moment donné est essentiel, quelle que soit la taille du projet. Voici quelques exemples d'autres occasions de pratiquer la décomposition.
- De nombreuses tâches quotidiennes offrent l'occasion d'acquérir des compétences en décomposition.
Vous serez peut-être surpris de découvrir que votre esprit fonctionne de cette façon !
Par exemple, si je dois nettoyer une cuisine en désordre des petites filles viennent de faire un gâteau), je décompose les tâches pour fournir un plan, et pour m'assurer que je n'aurai pas à refaire le travail plus tard. Je ne veux pas laver le s'il y a toutes sortes de choses à nettoyer sur les comptoirs. probablement à refaire la parole plus tard. Je mets donc tous les ingrédients d'abord, déplacer toutes les vaisselle dans l'évier ; nettoyer les compteurs ; laver les plats ; Enfin, nettoyez le sol. Il existe d'autres façons d'effectuer cette tâche, mais en y réfléchissant d'abord, cela m'aide à définir un plan qui ne nécessitent pas de travail supplémentaire.
Utilisez les tâches quotidiennes comme exemples pour développer vos compétences en décomposition. Qui sait, cela pourrait même vous rendre plus efficace dans la maison !
- Le plus grand diviseur commun de deux entiers est le plus grand nombre qui
les répartit de manière égale. Exemple : gcd(12, 18) = 6, gcd(−4, 14) = 2.
Le moyen le plus efficace de calculer gcd est d'utiliser l'algorithme euclidien. Écriture
un programme avec une fonction pour calculer gcd pour deux entiers. Essayez de faire le
sans récursion. Cela vous aidera
à comprendre comment l'algorithme
fonctionne.
Définissez explicitement vos sous-tâches, par exemple, trouvez le code pour le algorithme ; créer une fonction non récursive pour l'algorithme ; Voici notre solution.
Exemple 5: Exercices mathématiques
L'une des puissances de l'informatique est de pouvoir effectuer une recherche par force brute une solution à un problème. Les essais et les erreurs fonctionnent très bien pour certains problèmes. En fait, les ordinateurs peuvent être particulièrement doués pour de tels problèmes. Réfléchissez aux points suivants:
Les chevaux coûtent 10 $, les cochons 3 $et les lapins ne coûtent que 0, 50 $. Un agriculteur en achète 100 animaux pour 100 $. Combien de chaque animal a-t-il acheté ?
Il existe une solution incroyablement simple à ce problème. Essayez de trouver avant de passer en revue les principes de formation.
En voici un autre à essayer:
De combien de façons pouvez-vous disposer sur une étagère six livres différents, de gauche à droite ?
Cette fois, nous vous donnerons simplement la solution et vous laisserons écrire le programme: 720.
Exemple 6: Chaînes à prendre en considération
Que renvoie le programme suivant ?
#include <iostream> using namespace std; int main() { string str1 = "To be or not to be, that is the question"; string str2 = "only "; string str3 = str1.substr(6, 12); str1.insert(32, str2); str1.replace(str1.find("to be", 0), 5, "to jump"); str1.erase(9, 4); cout << str1 << endl; for (int i = 0; i < str3.length(); i++) cout << str3[i]; cout << endl; }
Cliquez sur cliquez ici pour obtenir de l'aide.
Exemple 7: Étapes suivantes avec décomposition – Votre premier jour au travail
Vous venez d'obtenir un poste de vendeur pour l'entreprise ExerShoe, spécialiste pour des chaussures de sport haut de gamme qui coûtent environ 225 $la paire. Votre patron vous a donné trois options de compensation, que vous devez choisir avant d'entamer votre jour:
- Salaire direct de 600 $par semaine ;
- un salaire de 7 $par heure plus une commission de 10% sur les ventes ;
- Pas de salaire, mais 20% de commissions et 20 $pour chaque paire de chaussures vendue
En tant que programmeur C++ expert, vous savez que vous pouvez écrire un programme décider du meilleur choix de rémunération.
Une approche courante lors de la décomposition d'un programme plus important consiste à créer une fonction principale qui se lit comme un aperçu pour résoudre le problème. Ensuite, nous écrivons les fonctions pour effectuer chaque tâche.
Voici un premier pass pour le programme principal:
GetInput(WeeklySales); CalcMethod1(WeeklySales); CalcMethod2(WeeklySales); CalcMethod3(WeeklySales);
Voyez si vous pouvez mettre en œuvre chacune de ces fonctions avant de consulter solution.
Exemple 8: Quelles sont les ressources disponibles dans les pays où elles sont disponibles ?
Quel est le résultat du programme suivant ?
// scope.cpp, Maggie Johnson // Description: A program to illustrate different scopes #include <iostream> using namespace std; int a = 18; int b = 6; int function1(int a, int b) { return a - b; } int function2() { int c; c = a + b; return c; } int main() { int b = 12; int c = 0; a = function1(b, a); c = function2(); cout << "a: " << a << " b: " << b << " c: " << c << endl; }
Une fois que vous avez trouvé la réponse, consultez notre version commentée du code sur cette page.
Exemple 9: Traiter les fichiers
Le traitement des fichiers en C++ est effectué à l'aide de fstream. Pour enregistrer dans un fichier, nous déclarez un flux, puis ouvrez-le à l'aide de la commande "out". . Vérifier dans l'exemple suivant.
// file.cpp, Maggie Johnson // Description: An illustration of file processing #include <fstream> #include <iostream> using namespace std; int main() { char first_name[30], last_name[30]; int age; char file_name[20]; // Collect the data. cout << "Enter First Name: "; cin >> first_name; cout << "Enter Last Name: "; cin >> last_name; cout << "Enter Age: "; cin >> age; cout << endl << "Enter the name of the file: "; cin >> file_name; // Create an ofstream called People, open the stream for output. ofstream People(file_name, ios::out); // Write the output to the stream. People << first_name << endl << last_name << endl << age << endl; return 0; }
- Voyez si vous pouvez comprendre comment ouvrir le fichier que vous venez de créer et l'afficher les données.Pour en savoir plus, consultez cette page.
- Voyons maintenant si vous pouvez modifier ce programme pour permettre à l'utilisateur d'entrer de nombreuses des enregistrements de données à l'aide d'une boucle. Nous voulons aussi relire toutes les données, un enregistrer à la fois.Pour en savoir plus, consultez cette page.
Vous êtes maintenant prêt à essayer quelques exercices et projets par vous-même.
Ce que c'est que d'être ingénieur logiciel chez Google
Découvrez ce que c'est que de travailler chez Google sur cette page site Web.
Exercices et projets
Les exercices suivants vous permettront de vous entraîner davantage avec les bases de C++. Nous ne fournissons pas de solutions à ces exercices et projets, car nous aimerions que vous travailliez avec d'autres étudiants dans ce de ce cours.
- Le grillon commun bifurque proportionnellement à la température actuelle.
Ajouter 40 au nombre de bips d'un grillon en une minute, puis diviser
cette valeur par 4 nous donne la température. Écrire un programme qui reçoit en entrée
le nombre de bips par minute et affiche la température actuelle. Pour
exemple :
Number of chirps: 120 The temperature is: 40.0 degrees.
- Rédiger un programme qui calculera votre note finale pour un cours de programmation
que vous suivez. Voici le système de notation:
Final grades will be based on the following: 40% Assignments 15% Midterm Examination 35% Final Examination 10% Class Participation Grade
Votre programme doit demander à l'utilisateur les quatre notes des devoirs : les notes finales et par section. Ensuite, le score final est calculé et imprimé. Pour effectuer les calculs, vous faites la moyenne des quatre notes des devoirs puis multipliez le résultat par 0,4 (40%). Vous multipliez ensuite le score de milieu de trimestre par 0,15, la finale par 0,35 et la note de participation de 0,1. Ensuite, additionner tous les résultats de ces multiplications ensemble.
Utilisez des fonctions partout où vous le pouvez dans ce programme. Vous pouvez créer une fonction pour obtenir l'entrée en transmettant comme paramètre la chaîne à afficher d'un ton explicatif. Voici un exemple d'exécution:
Enter the score for the first assignment. 75 Enter the score for the second assignment. 85 Enter the score for the third assignment. 82 Enter the score for the fourth assignment. 94 Enter the score for the midterm. 81 Enter the score for the final. 89 Enter the score for the section grade. 100 The final grade is: 86.9
- Étant donné que les chronomètres électroniques deviennent moins chers et plus précis,
sans être submergé de mesures de temps extrêmement précises. Écrire un programme
qui prend en entrée une période donnée en secondes et génère le nombre
d'heures, de minutes
et de secondes qu'elle représente. Par exemple,
Number of seconds: 3662 Hours: 1 Minutes: 1 Seconds: 2
- Supposons que nous voulions imprimer une bannière pour ce qui suit:
"LA BREZE gelée fait geler 3 arbres glacés"
Nous voulons que les lettres soient assez grandes, car il s'agit d'une bannière:
etc.FFFFF F FFF F F EEEEE E EEE E EEEEE
En tant que décomposeur de problèmes, vous avez probablement remarqué qu'au lieu si vous placiez tous les identifiants dans la fonction principale, pour les intégrer dans des fonctions. Nous pourrions donc avoir un « printE » fonction et un « printZ » fonction, etc.
Écrivez un programme avec des fonctions qui créent une bannière d'un mot ou d'une expression avec beaucoup de lettres répétées. Quelques possibilités:
FREEZY BREEZE MAKES FLEAS SNEEZE TWEETLE BEETLE PADDLE BATTLE SIX SICK CHICKS KICK SUE SEWS SUE'S SOCKS BEN BENDS BIM'S BROOM
- Voici un "nombre magique" Problème: demandez à un utilisateur de saisir un code
nombre dont le premier chiffre est supérieur au dernier. Le programme sera inversé
le nombre et soustraire l'inverse du nombre d'origine. Enfin,
inverse le nombre obtenu et l’ajoute sous sa forme non inversée. Affichez la
résultat final. Le nombre saisi initialement par l'utilisateur doit être un nombre entier
(pas trois caractères). Réfléchissez à la façon d'écrire une fonction
en entrée et renvoie l'inverse de ce nombre. Exemple :
input number: 901 reverse it: 109 subtract: 901 - 109 = 792 reverse it: 297 add: 297 + 792 = 1089
- La loi exige que les fabricants de produits alimentaires mettent en place des dates d'expiration
sur leurs produits, mais il existe une faille légale: elle n'exige pas
la date d'expiration doit
être dans une forme particulière. Il peut donc être écrit en
en swahili, tout en restant légal.
Troisième cousine de Ralph Nader, Nadine est une espionne de la qualité des plats. Elle a appris que de nombreux fabricants de produits alimentaires ont commencé à encoder la date d'expiration du produit afin d'empêcher les clients de connaître l'âge du des choses.
Mais le codage permet aux épiceries de déterminer les dates d'expiration si, pour une raison quelconque, il le souhaite.
Une méthode d'encodage populaire:
- encoder les mois de janvier à décembre sous la forme d'un "A" à "L"
- encoder chaque chiffre de la date sous la forme "Q" à "Z"
- coder l'année sous la forme "A" à "Z" c'est-à-dire 1 à 26, qui est ensuite depuis 1995.
Nadine a trouvé une miche de pain particulièrement douteuse à cette date: ARZM. Écrivez un programme pour déterminer la date.
- Il s'agit d'une analogie numérique avec un célèbre tour de carte. Demandez à l'utilisateur d'entrer un nombre à trois chiffres. Considérez le nombre comme ABC (A, B et C sont les trois chiffres). Maintenant, trouvez les restes des nombres formés par ABC, BCA et CAB lorsqu'ils sont divisés par 11. Nous appellerons ces restes X, Y, Z. Ajoutez-les comme suit : X+Y, Y+Z, Z+X. Si l'une des sommes est impaire, augmenter ou diminuez-le de 11 (si l'opération aboutit à un nombre positif inférieur de 20 ; Notez que si la somme est égale à 9, signalez-le et arrêtez le processus. Enfin, diviser chacune des sommes en deux. Les chiffres obtenus sont A, B et C. Écriture un programme qui implémente cet algorithme.
Dans l'exemple suivant, effectuez une décomposition avant d'écrire votre programme. Utilisez des fonctions autant que possible pour créer des programmes bien structurés.
Application: visualisation de musique avec des animations
Les ingénieurs logiciels créent une grande variété d'applications, souvent intéressantes et innovantes. Dans chaque module de ce cours, nous présentons une application différente que les ingénieurs conçues et mises en œuvre, pour vous aider à comprendre les différents domaines les ingénieurs travaillent.
Voici une question intéressante conçue pour visualiser de la musique.