![]() CATEGORIES: BiologyChemistryConstructionCultureEcologyEconomyElectronicsFinanceGeographyHistoryInformaticsLawMathematicsMechanicsMedicineOtherPedagogyPhilosophyPhysicsPolicyPsychologySociologySportTourism |
TRAVAIL PRATIQUE N14Thème :programmation avec l`utilisation de la surcharge des opérateurs. But du travail :réception de l`expérience de la programmation avec l`utilisation de la surcharge des opérateurs.
Devoir Il faut élaborer un organigramme et composer un programme pour l`exécution des actions indiquées dans le tableau 5.12 en appliquant des classes ( au choix de l`utilisateur ). Lors de l`entreée et la sortie des données, il est nécessaire d`utiliser la surcharge des fonctions. Il faut prendre sous forme fractionnée à valeur arbitraire les éléments des matrices, parties réelles et celles imaginaires des nombres complexes . La vérification du fonctionnement correct du programme doit être fait au moins, par trois variantes. Ces variantes doivent être choisies de telle manière qui on puisse obtenir des différentes résultats et éstimer leurs corrections. Il faut prévoir l`affichage du résultat du calcul sous forme suivante :
PROGRAMMATION AVEC L`UTILISATION DE LA SURCHARGE DES OPÉRATEURS Données de départ . . . . . . . . . . . . . . . . Les exemples du calcul . . . . . . . . . . . . . . . .
Òàbleau 5.12
5.14.2 Généralités et recommandations pour l`exécution du travail Il est souvant nécessaire de changer la destination traditionnelle de certaines opérations par les autres . Par exemple, l`opération d`addition ( + ) est destinée à faire l`addition des nombres. Elle ne peut pas être appliquée pour l`addition des variables composées telles que les objets. Le compilateur ne « sait » pas comment faire cela. Pour réaliser cette opération il faut « l`apprendre » à cette action. Elle est appelée la surcharge d`un opérateur. Autrement dit, il faut « montrer » au compilateur comment faire telle surcharge. Le langage C++ permet de surcharger les opérateurs. Mais c`est possible seulement pour les cas quand les opérandes des opérations sont les variables du type d`objet pas plus. La surcharge des opérateurs est possible lors de l`exécution des limitations suivantes : 1. il ne faut pas changer les désignations traditionnelles des opérations, 2. il est interdit de surcharger les opérations suivantes : .* ?: :: # ## sizeof La surcharge des opérateurs est éffectuée à l`aide des opérateur-fonctions spéciales et doit suivre les règles suivantes : - il faut garder le nombre des arguments, la priorité des opérations et succession des leurs exécutions (de gauche à droite ou inversement) - on ne recommande pas de changer le sens établi des opérations de variables du type standard, - les opérateur-fonctions ne peuvent pas avoir d`arguments pris selon accord, - les opérateur-fonctions peuvent être héritées par l`autre classe sauf l`opération d`afféctation.
L`opérateur-fonction peut avoir le status de la fonction ordinaire ou de la fonction-membre de classe. Dans le travail présent, il faut complémentairement établir les opérations arithmétiques et la relation avec les variables du type de tableau ainsi que les opérations de relation avec les nombres complexes. Ces opérations doivent être « établies » pour les objets ( les variables du type de classe ) qui sont créées par le programmeur. L`un des membres de classe doit être la matrice de départ ou le nombre complexe. Dans ce cas la structure de la classe peut avoir la forme siuvante
class matrice { . . . . . . . . . . . . . float A[M][N] // matrice ou nombre complexe . . . . . . . . . . . . . public : matrice opérateur + ( matrice obj ) { . . . . . . // détermination de l`opérateur surchargé } } ; Il est à noter que dans le langage C++ l`opération d`addition pour les variables du type de tableau n`est pas prévue . En même temps, cette opération est prévue pour les variables ( objet ) du type de classe. Lors de la réalisation de l`entrée des données de départ ( par exemple, une matrice de nombres ), il faut utiliser un constructeur surchargé. Dans ce cas, l`entrée des données s`éffectuera d`un fichier externe ou par clavier en fonction de la liste des arguments indiqués au cours de l`initialisation de l`objet.
5.14.3 Questios de contrôle et devoirs 1. Dans quels cas il est rationnel d`utiliser le surcharge des opérateutrs ? 2. Quelles limitations sont mis pour la surcharge des opérateurs ? 3. Quelles règles la surcharge des opérateurs doit-elle suivre ? 4. Donnez la syntaxe de la surcharge de l`opérateur unique et celui binaire.
Date: 2015-12-24; view: 1172
|