× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Autres langages
 Débuts en programmation...
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Guillaume89
  Posté le 21/11/2011 @ 09:21 
Aller en bas de la page 
Petit astucien

Bonjour,

Je fais mes débuts dans la programmation C++, forcément, j'ai des petites bases théoriques et très peu de pratique...

Seulement, on m'a lâché sur un projet où je dois travailler seul...

Voici le test à créer:

Ce test crée 3 symboles a, b et c. Ces symboles sont comparés deux à deux grâce à la fonction egaux.


Sachant que l'on doit définir le type symbole qui représente l'alphabet des symboles et la fonction symbole* nouveau_symbole(void) crée et retourne un nouveau symbole. Chaque fois qu’elle est exécutée, cette fonction retourne un symbole différent de tous les autres symboles existants. La fonction bool egaux(symbole const*, symbole const*) retourne true si les deux paramètres sont un même symbole, false sinon.

// J'ai d'abord défini la structure symbole:

struct symbole { char symb; };


// mais la fonction symbole* nouveau_symbole(void) me pose problème... Je ne vois pas pourquoi on m'impose que la fonction nouveau_symbole(void) soit un

// pointeur. Pour pouvoir réutiliser la valeur donner par la fonction?

// Je souhaieterai faire une sorte de boucle qui me permette de retourner la valeur a puis b puis c à chaque excécution de la fonction.

symbole* nouveau_symbole(void){ for ( i = 0, i = 2, ++i)
{
if (i = 0) { return symb = "a"; }
else if ( i = 1) { return symb = "b"; }
else if (i = 2) { return symb = "c"; }
}
return symb;
}


// Seulement, avec mon système, la boucle s'excécute, et m'affiche les 3 valeurs à la suite, et encore, s'il n'y a pas d'autres erreurs... N'est-ce-pas?!


Merci de votre aide.

Guillaume.

Publicité
breizhbugs
 Posté le 26/11/2011 à 20:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
M// J'ai d'abord défini la structure symbole:

struct symbole { char symb; };


// mais la fonction symbole*nouveau_symbole(void) me pose problème... Je ne vois pas pourquoi on m'impose que la fonction nouveau_symbole(void) soit un

// pointeur. Pour pouvoir réutiliser la valeur donner par la fonction?

Parce que nouveau symbole va allouer dynamiquament le mémoire et renvoyer un pointeur vers cette zone. (voir 'malloc' en C ou 'new' en c++)

// Je souhaieterai faire une sorte de boucle qui me permette de retourner la valeur a puis b puis c à chaque excécution de la fonction.

symbole* nouveau_symbole(void){ for ( i = 0, i = 2, ++i)
{
if (i = 0) { return symb = "a"; }
else if ( i = 1) { return symb = "b"; }
else if (i = 2) { return symb = "c"; }
}
return symb;
}

// Seulement, avec mon système, la boucle s'excécute, et m'affiche les 3 valeurs à la suite, et encore, s'il n'y a pas d'autres erreurs... N'est-ce-pas?!

mot cle static : une variable locale garde la valeur d'un appel a l'autre. Pas besoin de boucle. ensuite ton return (symb="a") c'est du n'importe quoi... cela ne renvoie pas de structure mais juste un char qui est initialisé a partir d'ue chaine de caractère.

Je pense que tu devrais écrire l'énoncer complet car j'ai l'impression que tu comprends tout de travers.

tu dois créeer 3 symboles:

symbole *a, *b, *c

a=nouveausymbole();

b=nouveausymbole();

c=nouveausymbole();

ensuite tu dois tester ces symboles pour savoir si ils sont égaux 2 a 2

if (egaux(a, b)==true) ...

if (egaux(a, c)==true) ...

if (egaux(b, c)==true) ...

Mais c'est quoi un symbole? (en fonction de ton énoncer: servira a écrire correctement ta structure) et comment on compare deux symboles? (servira a écrire correctement ta fonction egaux).



Modifié par breizhbugs le 26/11/2011 20:30
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
14,90 €Windows 10 Pro 32/64 bits OEM à 14,90 €
Valable jusqu'au 17 Août

Le vendeur sérieux LicenSE-ONLine propose sur Amazon  la clé d'activation pour Windows 10 professionnel en français 32 bits / 64 bits à 14,90 €. Cette clé livrée par email fonctionne avec l'outil d'installation et de création de support de Microsoft que vous pouvez télécharger ici ou directement avec l'ISO de Windows 10 Pro. De quoi installer légalement Windows 10 Pro sur un PC. Pour en savoir plus sur l'achat et l'installation d'une clé OEM de Windows 10, suivez les indications de notre dossier pratique.


> Voir l'offre
253,88 €Mini PC Intel NUC NUC8I3BEH à 253,88 €
Valable jusqu'au 13 Août

Amazon propose actuellement le Mini PC Intel NUC NUC8I3BEH à 253,88 € livré gratuitement. On le trouve ailleurs à partir de 330 € Cet ordinateur qui tient dans la main est équipé d'un processeur Intel Core i3-8109U à 2 coeurs avec chipset graphique Intel Iris Plus 655 intégré et possède 4 ports USB 3, un lecteur de cartes mémoire et 1 sortie HDMI . Ajoutez simplement un câble d'alimentation, un SSD SATA ou NVME, de la mémoire DDR4 So-Dimm et vous aurez un ordinateur complet efficace, discret et économe. Pratique par exemple pour en faire un média center branché sur la TV.


> Voir l'offre
12,29 €Clé USB 3.0 SanDisk Ultra Flair 64 Go à 12,29 €
Valable jusqu'au 13 Août

Amazon fait une promotion sur la clé USB 3.0 SanDisk Ultra Flair 64 Go qui passe à 12,29 €.


> Voir l'offre

Sujets relatifs
Aide port serie et à la programmation
jeux programmation
[info] Swift: Pourquoi Apple a créé un nouveau langage de programmation
programmation simple
Programmation mobile en C#
programmation vb.net
programmation
programmation d'un petit jeu
Intel et la programmation parallèle !
petite question C++ (Programmation )
Plus de sujets relatifs à Débuts en programmation...
 > Tous les forums > Forum Autres langages