Aide C++ avant examen

Fermé
soccer mania - 22 janv. 2006 à 16:54
 hicham ritik - 8 avril 2008 à 10:44
Voici quelques questions auxquelles je dois répondre. Quelqu'un pourrait-il m'aider ?
Merci d'avance

Donnez en C++ les déclarations suivantes :
a) Un pointeur sur un tableau de 3 entiers.
b) Le constructeur de copie de la classe Z.
c) Une procédure qui prend en paramètre deux entiers dont un passé par référence.
d) Une fonction virtuelle pure qui prend en paramètre un string et renvoie un pointeur vers une chaîne de caractères.

Question 2:
Ecrire la fonction MinMax qui retourne le minimum et le maximum d’un tableau de float passé en paramètre.

Donnez toutes les déclarations nécessaires ainsi qu’un exemple d’appel dans la fonction main().

Question 3:
L'IBAN (International Bank Account Number) est un format de numéro de compte valable sur le plan international. Un IBAN se compose du code pays dans lequel le compte est tenu, d'une clé de contrôle numérique à deux chiffres et du numéro de compte national (le numéro de compte traditionnel). Un IBAN a un format papier (par bloc de 4 caractères séparé par un blanc et précédé de l'intitulé "IBAN") et un format électronique.

Chaque numéro de compte classique peut-être converti dans le format IBAN.

Par exemple, le numéro de compte 310-1269855–17 a comme équivalents :
- IBAN format papier: IBAN BE61 3101 2698 5517
- IBAN format électronique : BE61310126985517

Pour la Belgique, la clé de contrôle est calculée de la façon suivante :
1) On prend l’ensemble des chiffres du numéro de compte classique (on retire les séparateurs).
Résultat : 310126985517
2) On fait suivre le nombre obtenu de la séquence 111400.
Résultat : 310126985517111400
3) Le code est obtenu en calculant le modulo 97 du nombre obtenu à l’étape 2 et en retranchant le reste de 98.
Le code = 98 – (310126985517111400 modulo 97) = 98 – 37 = 61
Si le résultat comporte un seul chiffre, on insère un zéro devant.

On vous demande d’écrire une classe AccountNumber correspondant à un type de données « numéro de compte belge classiques » et ayant les caractéristiques suivantes :
- un constructeur vide et constructeur prenant en paramètre un numéro de compte au format belge standard.
- un getter et un setter permettant la consultation et l’édition du numéro de compte
- une méthode GetIBAN, prenant en paramètre le format souhaité (papier ou électronique), et qui retourne le numéro de compte au format IBAN. Le format sera précisé via un type énuméré.

La classe devra également disposer d’un constructeur de copie et redéfinir l’opérateur d’affectation.

On vous demande de fournir le code complet des fichiers AccountNumber.h et AccountNumber.cpp pour qu’ils soient intégrables dans n’importe quel projet C++.

Question 4:
Soit la classe suivante :

class Z
{
// le prototype de ma classe
};

Y a-t-il une différence entre les deux séquences d’instructions ci-dessous ? Expliquez.

Séquence A Séquence B
Z z1;
Z z2;
z2 = z1;
Z z1;
Z z2 = z1;

Question 5:
On souhaite modéliser un jeu de labyrinthe qui respectera les hypothèses suivantes :
- On définit un labyrinthe comme un ensemble de salles. Chaque salle connaît ses voisins qui peuvent-être une autre salle, un mur ou une porte donnant dans une autre salle. Une porte peut bien entendu être ouverte ou fermée.
- Chaque salle a quatre côtés définis par l’énumération suivante : Nord, Sud, Ouest et Est. En outre une salle est caractérisée par un numéro qui l’identifie à l’intérieur du labyrinthe.
- Le labyrinthe possède les propriétés « Entrée » et « Sortie » qui retournent respectivement le numéro de la première et de la dernière salle du labyrinthe.
- Le labyrinthe est parcouru par plusieurs joueurs. On connaît la position courante de chaque joueur, c’est-à-dire le numéro de la salle dans laquelle il se trouve. Un joueur peut effectuer une opération de « déplacement » en spécifiant une direction (N, S, O, E).

On vous demande de donner les déclarations C++ précises de tous les éléments nécessaires à la modélisation décrite ci-dessus (classes, constantes, …) ainsi qu’une explication de l’architecture choisie.

On vous demande également d’implémenter la méthode de déplacement du joueur. Les fonctions extérieures qui seraient éventuellement appelées ne doivent pas être implémentées mais uniquement déclarées dans les classes appropriées et commentées.


Sous question bonus :

Donnez un exemple d’utilisation de vos classes dans la fonction main() avec une séquence d’instructions permettant successivement :
- La création d’une instance d’un labyrinthe
- L’ajout d’un joueur et son positionnement sur la salle de départ
- Le déplacement du joueur selon la série suivante :
o Deplacement(nord)
o Deplacement(nord)
o Deplacement(ouest)
o Deplacement(nord)
- La récupération de la position courante du joueur
- La destruction de l’instance du labyrinthe

Donnez en français la signification des déclarations suivantes:
int *i(int);
int (*i) [];
void i(int &);
const int i;

Question 2
Ecrire la fonction SwapVector qui échange physiquement le contenu de deux tableaux d'entiers passés en paramètre.
Donnez toutes les déclarations nécessaires ainsi qu'un exemple d'appel dans la fonction main().

Question 3
Ecrire une classe SmartDate représentant un type date évolué.
Cette classe devra implémenter un constructeur vide et un constructeur prenant en paramètre une date au format chaîne de caractères (exemple : 18/06/2005).
La classe possèdera une méthode toString qui retournera la date sous la forme d'une chaîne de caractères. Elle devra également permettre l'édition et la consultation individuelle du jour, du mois et de l'année.
Enfin, la classe devra disposer d'un constructeur de copie et redéfinir l'opérateur d'affectation.
On vous demande de fournir le code complet des fichiers SmartDate.h et SmartDate.cpp pour qu'ils soient intégrables dans n'importe quel projet C++.

Question 5
Quel mécanisme permet en C++ d'appeler une fonction membre d'une classe sans devoir créer d'instance de cette dernière.
Illustrez par un exemple.

7 réponses

Aghaster Messages postés 26 Date d'inscription dimanche 22 janvier 2006 Statut Membre Dernière intervention 27 janvier 2007 25
22 janv. 2006 à 18:45
Hum,
Si je comprends bien, tu nous demande de faire tes devoirs? On fait pas les devoirs des autres, c'est tout simplement abuser de l'aide des gens. Je suis bien disposé à t'aider si tu as un problème à résoudre un des problèmes mentionnés ci-dessus, mais pas de faire tout le travail à ta place. Reformule en posant une question précise, pas en donnant toutes les questions et en demandant kon les fasse pour toi.

-Aghaster
www.planetcpp.info
0
soccer mania
22 janv. 2006 à 19:14
ok, je sais et je confirme que c'est une demande pas très reluisante. Mais je vais vous avouer que je n'aime pas du tout C, ni C++. je ne compte d'ailleurs jamais en faire.
On est passé à C# qui est beaucoup plus sympathique, ainsi que JAVA et VB.net

une fois cet examen passé, je rangerai dans un placard C++ et ne le ressortirai jamais, donc merci de m'aider.
0
Aghaster Messages postés 26 Date d'inscription dimanche 22 janvier 2006 Statut Membre Dernière intervention 27 janvier 2007 25
22 janv. 2006 à 19:19
Eh, est-ce que c'était sensé m'inciter à faire tes devoirs?
lol, sérieux ça te fera pas de mal de bien faire tes devoirs de C++,
Surtout si tu préfère justement des languages tels que java ou C# qui contrairement au C++ on pour but de te donner des résultats plus rapidement au sacrifice de la performance. Fais bien tes devoirs de C++ car sinon tu ne comprendras jamais ces concepts qui servent bien en programmation. C'est important de savoir jouer un peu plus low-level. Inutile de me dire que tu ne toucheras jamais à l'assembleur de ta vie étant donné le genre de languages que tu aimes. Apprends seulement une chose: si tu veux que l'on t'aide ne donne pas tes devoirs à faire à quelqu'un d'autre, et surtout dire par après que tu ten fou et que de toute manière tu t'en servira jamais. On aide ceux qui veulent bien s'aider d'abord.

-Aghaster
www.planetcpp.info
0
1er bonjour aghaster je te remercie vraiment sur ta facon de repndre les gens jui exploitent la gentilleces de leurs collaborateurs pour effectuer leurs homworks merci infiniment
0
soccer mania
23 janv. 2006 à 07:35
je confirme la chose, cela peut effectivement vous déplaire et je le conçois amplement.
Entendre quelqu'un dire qu'il déteste C++ à des développeurs C++ confirmés n'est pas la meilleure approche.

J'ai voulu jouer la carte de l'honnêteté, car j'aurais très bien pu venir avec une question puis une autre et ainsi de suite.
Je vous aurais berné. Ce n'est pas dans mon caractère, je suis quelqu'un de réglo et compte le resté.

finalement ce que je retire de ce site, c'est qu'il n'est pas prêt à aider ceux qui le demandent et en ont temporairement besoin.

je ne risque donc pas de faire votre publicité.

Qu'en à l'argument sur l'importance du C++ pour faire du C#. J'ai un ami développeur C# depuis une 10aine d'années, il déteste C++ autant que moi et pourtant se débrouille très bien en C#.

Je fais ces études d'analyste programmeur en cours du soir, simplement pour mon plaisir, car je suis indépendant comme expert immobilier judiciaire et n'ai pas vraiment envie de devenir un informaticien pur et dur. Donc je pense pouvoir affirmer que je n'utiliserai plus C++ ensuite, puisque j'aurai la possibilité de développer ce que je veux et comme je le veux (vb.net, C#, asp.net, JAVA).

Voila ce que j'avais HONNETEMENT à dire.
Désolé de vous avoir dérangé
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 1 092
23 janv. 2006 à 12:31
Salut soccer mania,

Vos messages démontrent que tu vous n'avez rien compris à ce qu'est un forum d'entraide.

http://www.catb.org/~esr/faqs/smart-questions.html

J'ai voulu jouer la carte de l'honnêteté, car j'aurais très bien pu venir avec une question puis une autre et ainsi de suite.
Je vous aurais berné. Ce n'est pas dans mon caractère, je suis quelqu'un de réglo et compte le resté.


Mauvaise nouvelle, je ne crois pas que vous auriez berné qui que ce soit. En revanche, si vous aviez travaillé une question donnée et buté sur un problème particulier, vous auriez eu de l'aide.

Sur l'honnêteté, je crois que vous en avez une conception étrange, et je suis inquiet que les Tribunaux puisse vous désigner en tant qu'auxiliaire de justice.

La tricherie ne fait pas partie des activités qui sont habituellement considérées honnêtes (que ce soit moralement ou légalement), que cette tricherie soit admise ou non par son auteur, ou "justifiée" selon lui, ne fait aucune différence.

finalement ce que je retire de ce site, c'est qu'il n'est pas prêt à aider ceux qui le demandent et en ont temporairement besoin.

Personnellement, je crois que le forum vous a aidé à résoudre votre problème. Votre problème était que vous ne vouliez pas faire vos devoirs (et non pas que vous ne saviez pas les faire).

je ne risque donc pas de faire votre publicité

Votre menace est puérile, Monsieur l'Expert, tout comme votre refus de faire vos devoirs.


Dal
0
soccer mania
23 janv. 2006 à 21:37
pour info les questions de l'année passée ont été fournie par le professeur afin de donner des exemples !!!
donc pas de tricherie.
Au vu de la mentalité enfantine je vous laisse
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
23 janv. 2006 à 22:03
Tout de même....

Si tu résumes la discussion tu vois quelqu'un qui demande qu'on lui fasses ses exercices.
On te dit non, on ne fais pas les devoirs des autres par contre on veux bien t'aiguiller sur des problèmes précis.

Et toi tu réponds:
finalement ce que je retire de ce site, c'est qu'il n'est pas prêt à aider ceux qui le demandent et en ont temporairement besoin. 

je ne risque donc pas de faire votre publicité. 


Bof...
Ceux qui passent ici pour répondre à des questions (et accessoirement en poser) viennent pour leur plaisir et n'ont rien à vendre.
J'aime bien aider des gens qui font des trucs en informatique pour le plaisir ou bien qui doivent le faire sans trop de plaisir mais qui font des efforts.

Mais faire le travail des autres...ça non.
0
Bonjour, moi aussi je suis dans sa classe, et je voudrais savoir si vous pouviez m'aiguiller sur le problème du labyrinthe.

Juste un tuto, je n'arrive pas à trouver, en fait je n'arrive pas à modéliser et à écrire les fonctions des sallles.

merci de votre aide
0