Accueil > Forum > > > > besoin d'un tuto svp
besoin d'un tuto svp
vendredi 3 juillet 2009 à 21:21:19 |
besoin d'un tuto svp

mana
|
j'ai besoin d'un tuto sur les structures mais expliqué le plus simplement possible.
j'ai quelques livres et j'ai fait des recherches sur internet mais j'y comprend
toujours rien.
j'utilise des tableaux actuellement et je voudrais les remplacer par une structure
---------------------------------------------
pointeur[99];
donnee[99];
int ajout_donnee(int val){
for (i=0;i<99;i++){
if (pointeur(i)==0){
pointeur(i)=1;
donnee(i)=val;
return i;
}
}
return 0;
}
int lire_donnee(int val){
if (poiteur(val)==0)return 0;
return donnee(val);
}
void delete_donnee(val){
pointeur(val)=0;
}
---------------------------------------------
struct structure{
int donnee;
};
int ajout_donnee(int val){
//struct structure{
//donnee=val; //ici comment fait on pour que 'donnee'=val ?
//val= ;//et comment faire pour que 'val' pointe sur 'donnee'
//};
return val;
}
int lire_donnee(val){
//struct structure{
//val=donnee;
//};
return val;
}
void delete_donnee(val){
//?????
}
---------------------------------------------
merci.
|
|
samedi 4 juillet 2009 à 00:10:02 |
Re : besoin d'un tuto svp

CptPingu
|
Tu es sur d'avoir aussi compris les tableaux ? Tu les utilises mal. if (pointeur(i)==0) devrait être if (pointeur[i]==0)
De plus, énormément d'erreur sont présentes dans ton code. Par exemple, dans ta première fonction, tu mets un return dans ta boucle for mais celui-ci étant débranchant, tu ne feras qu'un seul tour.
Tu sembles avoir des lacunes sur des choses bien plus basique que les tableaux ou les structures. Néanmoins, voici une explication simplifiée de ce qu'est une structure:
Pour vulgariser, un tableau permet de ranger plusieurs données au sein d'une même variable. Chaque donnée est récupérable grâce à un numéro (de 0 à la taille - 1). Exemple: int tab[3] = {14, 454, 90};
tab[0] contiendra 14 tab[1] contiendra 454 tab[2] contiendra 90
On ne peut pas mélanger les types de donnés. C'est à dire que pour chaque case, si on a un tableau d'entier, seul des entiers seront présents dans le tableau.
Maintenant, une structure est un type personnalisé, crée à partir de types existants. Tout comme le tableau, on peut stocker à l'intérieur plusieurs donnés au sein d'une variable. La petite différence vient du fait que l'on récupère les donnés, non pas par un numéro, mais par un nom d'étiquette. De plus, il est possible de mélanger différent type de données.
Exemple:
// Crééons un nouveau type, que l'on appelera Personne. struct Personne { int age; float taille; int poids; };
// Ce nouveau type peux maintenant être utilisé. int main(void) { // On déclare une variable p, de type Personne struct Personne p;
p.age = 18; p.taille = 13.9; p.poids= 34.4;
// Vu que Personne est un type, rien ne nous empêche d'en déclarer plusieurs: struct Personne p2;
p2.age = 13; p2.taille = 4.1; p2.poids= 83.5;
if (p == p2) printf("Identique !"); }
Si on veut s'affranchir du "struct", on peut déclarer la structure comme ceci:
typedef struct { int age; float taille; int poids; } Personne;
|
|
samedi 4 juillet 2009 à 09:08:01 |
Re : besoin d'un tuto svp

mana
|
se n'était pas un code fonctionnelle mais explicative
le code ci-dessous est fonctionnel mais je voudrais remplacer
le tableau par une structure
#include <cstdlib>
#include <iostream>
using namespace std;
int donnee[99];
void ajout_personne(int nom,int age){
donnee[nom]=age;
}
int info_personne(int nom){
return donnee[nom];
}
void supprime_personne(int nom){
donnee[nom]=0;
}
int main(int argc, char *argv[]){
ajout_personne(1,10);
ajout_personne(2,20);
ajout_personne(6,35);
cout << info_personne(2)<< '\n';
cout << info_personne(6)<< '\n';
cout << info_personne(2)<< '\n';
cout << info_personne(1)<< '\n';
system("PAUSE");
return EXIT_SUCCESS;
}
|
|
samedi 4 juillet 2009 à 10:27:54 |
Re : besoin d'un tuto svp

CptPingu
|
Si tu es en C++, et non en C, alors j'ai quelques remarques.
cstdlib, n'est pas nécessaire. Utilise new et delete, et non malloc et free. Evite les using namespace std; N'utilise pas de variable globale. Pour tes tableaux, tu peux te servir de la STL, qui est une bibliothèque inclue dans C++, et qui fournit des conteneurs (dont des tableaux, des listes, etc...). Enfin, pour le nom, utilise une chaîne de caractère, plutôt qu'un entier.
#include <vector> #include <iostream>
// Struct et Class, c'est pareil a part // le niveau de visibilite par defaut qui differe struct Personne { std::string nom; int age; };
// On fait un alias du type, pour en ecrire moins typedef std::vector<Personne>::iterator iterator;
void ajout_personne(std::vector<Personne>& tab, const std::string& nom, int age) { Personne p; p.nom = nom; p.age = age; tab.push_back(p); }
iterator recherche(std::vector<Personne>& tab, const std::string& nom) { for (iterator it = tab.begin(); it != tab.end(); ++it) if (it->nom == nom) return it;
return tab.end(); }
int info_personne(std::vector<Personne>& tab, const std::string& nom) { iterator it = recherche(tab, nom);
if (it != tab.end()) return it->age;
return -1; }
void supprime_personne(std::vector<Personne>& tab, const std::string& nom) { iterator it = recherche(tab, nom); if (it != tab.end()) tab.erase(it); }
int main() { std::vector<Personne> donnee;
ajout_personne(donnee, "Pierre", 10); ajout_personne(donnee, "Paul", 20); ajout_personne(donnee, "Jacque", 35); std::cout << info_personne(donnee, "Paul") << std::endl; std::cout << info_personne(donnee, "Jacque") << std::endl; std::cout << info_personne(donnee, "Paul") << std::endl; std::cout << info_personne(donnee, "Pierre") << std::endl; supprime_personne(donnee, "Pierre"); supprime_personne(donnee, "xx"); std::cout << std::endl; std::cout << info_personne(donnee, "Paul") << std::endl; std::cout << info_personne(donnee, "Jacque") << std::endl; std::cout << info_personne(donnee, "Paul") << std::endl; std::cout << info_personne(donnee, "Pierre") << std::endl; //system("PAUSE"); return 0; }
|
|
samedi 4 juillet 2009 à 17:57:18 |
Re : besoin d'un tuto svp

magicienap
|
Si tu as besoin d'un tutoriel qui récapitule toutes ces notions (structures, tableaux, etc.), je te recommande de visiter le Site du Zér0. Les tutoriels ici et là t'expliqueront (ou te ré-expliqueront) tout cela de la base, respectivement le C, puis le C++. Ça vaut le détour !
|
|
samedi 4 juillet 2009 à 18:29:17 |
Re : besoin d'un tuto svp

CptPingu
|
Le site du zéro est un très bon site. Le seul défaut, est qu'ils "mentent" temporairement (dixit l'auteur du site) sur certaines choses afin de ne pas assommer le lecteur de trop d'information. C'est une très bonne chose, mais le lecteur qui ne va pas jusqu'au bout prendra malheureusement de mauvaise habitude. Le meilleur exemple est sans doute la mauvaise utilisation des : using namespace std;, qui pullulent d'ailleurs sur le net.
Donc il est important de lire l'ensemble des tutoriaux dans leur intégralité, afin de suivre une certaine cohérence, et d'éviter, dans ce cas, d'en piocher à droite et à gauche.
|
|
dimanche 5 juillet 2009 à 14:12:00 |
Re : besoin d'un tuto svp

gael12
|
> Le site du zéro est un très bon site.
C'est une blague sans doute ?
Mélanger C, C++, QT, SDL, etc, il faut le faire !
Pour les moins de 12 ans, et encore.
J'ai reçu des candidats qui m'ont sorti qu'ils "maitrisaient" le C .
En insistant , ils m'ont dit qu'il l'avaient appris sur le sdz et d'autres "tutoriaux", écrits par des ados.
Je leur ai soumis un test : le meilleur a eu... 2 /20 !!!!
Pour apprendre le C, la seule référence valable est de lire le K&R.
|
|
dimanche 5 juillet 2009 à 20:31:52 |
Re : besoin d'un tuto svp

CptPingu
|
>> Le site du zéro est un très bon site. > C'est une blague sans doute ?
Non, mais ton post doit en être un !
Le tutoriaux ne sont pas écrit pas des gamins de 12 ans, mais par un ingénieur de l'EFFREI (je ne cherche pas à faire de la pub, je vient d'une école concurrente). Ses travaux seront d'ailleurs prochainement édités. De plus, les tutoriaux sont relus par la communauté et sont très bien fait. Ce n'est pas parce que tu es tombé sur des gens mauvais, qui ont été une fois dans leur vie sur le sdz, que le sdz est un mauvais site. C'est un excellent tremplin pour qui veut débuter dans ces technologies. Reste ensuite à ceux-ci, de faire la démarche d'aller plus loin. (Modern C++, lire du andrei alexandrescu, etc...). Tes candidats n'ont visiblement pas fait cette démarche, ta déduction est bien trop hâtive et injustifiée, ce qui n'est pas respectueux pour le travail effectué par l'auteur du sdz.
> Pour apprendre le C, la seule référence valable est de lire le K&R. Paie ton extrêmisme ! Je n'ai pas lu le K&R, ce qui ne m'empêche pas d'avoir un "bon" niveau (cf mes sources).
|
|
dimanche 5 juillet 2009 à 22:32:35 |
Re : besoin d'un tuto svp

Chouchou182
|
Bonjour, Je ne suis jamais allé sur le SdZ, alors je ne donnerai pas mon opinion à ce sujet. Quant au K&R, je l'ai lu alors que je croyais avoir un « bon » niveau en C, et j'y ai appris plein de choses ; je vous le conseille vivement ! Pour en revenir au sujet, je trouve ta façon de faire, mana, assez élégante. Et rassure-toi, il n'y a pas tant d'erreurs que cela dans ton code. La seule remarque que je pourrais faire (mis à part les crochets pour les index des tableaux), c'est que l'on ne peut pas savoir, lorsque la fonction ajout_donnee renvoie 0, si la valeur a été insérée à l'emplacement zéro ou s'il n'y a plus de place. Peut-être pourrais-tu renvoyer -1 en cas d'erreur... (Pour CptPingu: le nombre d'itérations dans la boucle for est judicieusement calculé...) Si je comprends ce que tu veux faire, tu as des valeurs qui identifient des données, et tu souhaites ranger ces données dans un grand sac et les retrouver en utilisant leur identité. Au lieu d'identité, on parle plutôt de clef. Si j'ai bien compris, ce qu'il te faut est un cours sur les structures de données (pas sur les struct du C). Selon ce que tu vas faire de ces données, certaines structures vont être plus adaptées que d'autres. Il y a évidemment la solution triviale de la liste, mais un arbre binaire équilibré peut être bien plus efficace ! Après, tu peux vouloir programmer toi-même la structure de donnée. Dans ce cas chercher « arbre » sur ce site (ou ailleurs) devrait te fournir d'intéressants exemples. Sinon tu peux utiliser des bibliothèques déjà existantes, comme la STL, et aller voir cet exemple de Map ou encore la référence. Bonne prog, -- Chouchou.
|
|
dimanche 5 juillet 2009 à 22:49:07 |
Re : besoin d'un tuto svp

Chouchou182
|
Re, pour donner un lien. Un site plein d' algorithmes ; la rubrique « Binary Search Tree » a une mise en œuvre simple, en C, des arbres binaires de recherche ; la rubrique « AVL Tree » montre du C++ plus compliqué (pour les arbres AVL). Bonne prog, -- Chouchou.
|
|
Cette discussion est classée dans : int, donnee, return, structure, val
Répondre à ce message
Sujets en rapport avec ce message
scanf() [ par clb ]
bonjour à tous,j'ecris par exemple :int fonction(){ if(true) return 0; else return -1}dans main, si cette fonction retourne 0,alors j'appli
récursivité et factorielle!!! [ par cabarrus ]
salut je veux écrire un programme qui calcule et renvoie le résultat factorielle en utilisant la récursivité de n'importe qu'elle nombre entier voici
2 return d'une fonction [ par Silver360 ]
Hello tout le monde!Je voulais savoir s'il est possible qu'une fonction retourne 2 paramètres ( dans le genre int int mafonction() ) ou si je dois fai
conversion decimal en binaire sans connaitre la taille du nombre [ par kobee12 ]
Est ce que quelqu'un pourrait m'aider. Voici un algo qui convertit un nombre biaire en decimal : bin_digits est defini avec une taille de 10. Or j'aim
Tableau de structure [ par tomsawyerbelgique ]
Bonjour suriez-vous me dire comment fait-on pour passer un tableau de structure dans une fonction:struct student { char nom[10]; int nbcot
AIDEZ MOI scp problème de texture bmp avec glaux [ par progundeath ]
aidez moi svp g un big problème que j'arrive pas à résoudre mais bon je ne suis qu'un newbie d'autres le résoluront en 10 secondes enfin j'espère donc
cosinus [ par anek971 ]
Bonjour ,ben avt de demander de l'aide j'ai chercher sur le forum mais ya pas le programme en c.Et en faite c juste pr une verification car mon progra
Problem avec des pointeur mais je c'est pourquoi ! [ par WaFFel ]
bha et bien jai fait un petit code qui sert a rien c'etais juste pour utiliser des pointeur mais jai un problem et ne ne sais pas pourquoi sa bogueCOD
tableau dynamique de structure en C ? [ par axl79 ]
salutje voudrai faire un tableau dynamique de structures. voici ma structure: struct struct_arete { int sommet1; int sommet2; int quantite;} arete;com
que des boucles. [ par pratix ]
Salut à tous.Je post mon prg cherchenbr modifié (voir sujet précédent ''int main" ).Programme compilé avec visual C++ 06. ( zéro erreur )j'ai essay
Livres en rapport
|
Derniers Blogs
SQL SERVER : QUERY NOTIFICATION OU COMMENT êTRE NOTIFIé DE MODIFICATIONS DE DONNéES CôTé APPLICATIONSQL SERVER : QUERY NOTIFICATION OU COMMENT êTRE NOTIFIé DE MODIFICATIONS DE DONNéES CôTé APPLICATION par christian
Cette fonctionnalité à vue le jour dans Ado.Net 2.0 et s'appuie sur SQL Server 2005 (et plus) même si elle fonctionne avec SQL Server 2000. Le principe de fonctionnement côté applicatif est assez simple, on fournit une requête et lorsque le résultat d...
Cliquez pour lire la suite de l'article par christian [WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL?[WF4] UN BINDING ACTIVITY/ACTIVITYDESIGNER QUI PASSE MAL? par JeremyJeanson
Certain d'entre vous on peut être vécu cette situation embarrassante après quelques temps passer avec WF4 : Au début avec mon " ActivityDesigner" , tout allait bien. Et puis un jour j'ai au des problèmes de " Binding" . Alors nous sommes allé sur le site ...
Cliquez pour lire la suite de l'article par JeremyJeanson MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ?MYTIC - SHAREPOINT 2010 : DéJà UN MYTHE MICROSOFT ? par junarnoalg
La prochaine session de MyTIC aura lieu à Namur, le 23 mars prochain. Pendant presque une heure, nous parlerons de SharePoint 2010. Voici un aperçu du programme.
Accueil : 17h30 Début de la session : 18h00 - Les nouvelles int...
Cliquez pour lire la suite de l'article par junarnoalg [MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|