<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Exercice sur les structures.]]></title><description><![CDATA[<p dir="auto">Exercice 1</p>
<p dir="auto">Réaliser un algorithme qui permet d'afficher une structure qui contient l'âge, le nom, le prénom, et la ville.</p>
<p dir="auto">![50hl.png](&lt;<em><strong>base_url</strong></em>&gt;/applications/sslimageproxy/interface/image.php?url=<a href="http://zupimages.net/up/14/15/50hl.png" rel="nofollow ugc">http://zupimages.net/up/14/15/50hl.png</a>)</p>
<p dir="auto">Exercice 2: Il sera un peu plus poussé</p>
<p dir="auto">Nous allons améliorer le précédent programme.</p>
<p dir="auto">Eux lieu de donner des valeurs prédéfinie pour le prénom, nom age, ville, nous allons laisser l'utilisateur  l'ai saisir <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=b824361be89" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /></p>
<p dir="auto">Une image devrait vous éclaircir la chose <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=b824361be89" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /></p>
<p dir="auto">![5fh2.png](&lt;<em><strong>base_url</strong></em>&gt;/applications/sslimageproxy/interface/image.php?url=<a href="http://zupimages.net/up/14/15/5fh2.png" rel="nofollow ugc">http://zupimages.net/up/14/15/5fh2.png</a>)</p>
<p dir="auto">ps: Vous pouvez résoudre cette exercice en passant par un autres chemin, mais le but et de s'exercer au maniement des structures</p>
<p dir="auto">Vous pouvez poster vos codes sources et des images, pour que l'on puisse en discuter et peux être apprendre de nouvelles choses  <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=b824361be89" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /></p>
<p dir="auto">Mettez tout ça dans une balise spoil <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=b824361be89" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /></p>
]]></description><link>http://new.melinyel.net/topic/478/exercice-sur-les-structures</link><generator>RSS for Node</generator><lastBuildDate>Fri, 22 May 2026 16:53:34 GMT</lastBuildDate><atom:link href="http://new.melinyel.net/topic/478.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Apr 2014 09:03:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Exercice sur les structures. on Thu, 17 Apr 2014 08:31:19 GMT]]></title><description><![CDATA[<p dir="auto">Pas d'autres participants ?</p>
<p dir="auto">Merci Alemort d'avoir proposé un exercice comme ça, sympa comme idée (et à refaire si possible !). <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=b824361be89" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /></p>
]]></description><link>http://new.melinyel.net/post/5672</link><guid isPermaLink="true">http://new.melinyel.net/post/5672</guid><dc:creator><![CDATA[Azad]]></dc:creator><pubDate>Thu, 17 Apr 2014 08:31:19 GMT</pubDate></item><item><title><![CDATA[Reply to Exercice sur les structures. on Fri, 11 Apr 2014 01:18:42 GMT]]></title><description><![CDATA[<p dir="auto">Meh, je fais du C++ à l'habitude, je me souvenais pas de toute les petites règles <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f61b.png?v=b824361be89" class="not-responsive emoji emoji-android emoji--stuck_out_tongue" style="height:23px;width:auto;vertical-align:middle" title=":P" alt="😛" /></p>
<blockquote>
<p dir="auto">par contre, c'est pas du tout sécu ton truc, y'a un risque de segfault énorme! ne faites JAMAIS confiance en ce qu'entre vos utilisateurs</p>
</blockquote>
<p dir="auto">Personne a demandé à ce qu'il le soit. <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=b824361be89" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
]]></description><link>http://new.melinyel.net/post/5282</link><guid isPermaLink="true">http://new.melinyel.net/post/5282</guid><dc:creator><![CDATA[Cyrion]]></dc:creator><pubDate>Fri, 11 Apr 2014 01:18:42 GMT</pubDate></item><item><title><![CDATA[Reply to Exercice sur les structures. on Wed, 09 Apr 2014 18:17:44 GMT]]></title><description><![CDATA[<p dir="auto">Ma petite version:</p>
<pre><code>#include &lt;unistd.h&gt;
#include &lt;stdio.h&gt;

typedef struct		s_user
{
	char			*name;
	char			*last_name;
	unsigned int	*age;
	char			*city;
}					t_user;

int	read_data(t_user *user)
{
	unsigned int 	readed;
	char			buffer[100];
	char			*questions[] = {"Your name?", "Your last name?", "Your age?", "Your city?"};
	int				types[] = {0, 0, 1, 0};
	int				i;
	void			*first_addr;
	
	first_addr = &amp;user-&gt;name;
	i = 0;
	readed = 0;
	while (i &lt; 4)
	{
		printf("%s\n", questions[i]);
		if ((readed = read(0, buffer, 15)) &lt; 0)
			return (1);
		buffer[readed] = 0;
		printf("%c", '\n');
		if (!types[i])
		{
			if (((char*)(*first_addr) = malloc(strlen(buffer) * sizeof(char))) == NULL)
				return (1);
			memcpy((char*)(*fist_addr), buffer, strlen(buffer) * sizeof(char));
			first_addr += sizeof(void*);
		}
		else
		{
			(unsigned int)(*first_addr) = atoi(buffer);
			first_addr += sizeof(int);
		}
		++i;
	}
	return (0);
}

// Pointeur constant car non modifié
void		show_data(const t_user *user)
{
	printf("First Name: %s\nName: %s\nAge: %d\nCity: %s\n",
			user-&gt;name, user-&gt;last_name, user-&gt;age, user-&gt;city);
}

int			main(void)
{
	t_user	userdata;
	
	if (read_data(userdata))
	{
		fprintf(stderr, "Error on reading.");
		return (1);
	}
	// J'envois un pointeur car je ne vais pas copier toute une structure dans la stack... Pouah!
	show_data(&amp;userdata);
	return (0);
}
</code></pre>
]]></description><link>http://new.melinyel.net/post/5233</link><guid isPermaLink="true">http://new.melinyel.net/post/5233</guid><dc:creator><![CDATA[AlexMog]]></dc:creator><pubDate>Wed, 09 Apr 2014 18:17:44 GMT</pubDate></item><item><title><![CDATA[Reply to Exercice sur les structures. on Wed, 09 Apr 2014 17:43:44 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto">Vite fait en classe &gt;.&lt;</p>
<blockquote>
<pre><code>#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;

struct Info
{
	char Prenom[10];
	char Nom[15];
	int Age;
	char Ville[15];
};

void DemandeInfo(Info &amp;P)
{
	printf("-----Saisi des donnees-----\n\n\n");

	printf("Entrer votre prenom:");
	scanf("%s",P.Prenom);

	printf("Entrer votre nom:");
	scanf("%s",P.Nom);

	printf("Entrer votre age:");
	scanf("%i",&amp;P.Age);

	printf("Entrer votre ville actuelle:");
	scanf("%s",P.Ville);
}

void AfficherInfo(Info &amp;P)
{
	printf("\n\n\n-----Affichage des donnees-----\n\n\n");
	printf("Prenom: %s\n",P.Prenom);
	printf("Nom: %s\n",P.Nom);
	printf("Age: %i\n",P.Age);
	printf("Ville: %s\n",P.Ville);
}

int main()
{
	Info Personne;

	DemandeInfo(Personne);
	AfficherInfo(Personne);

	getch();
	return 0;
}
 
</code></pre>
</blockquote>
</blockquote>
<p dir="auto">Normalement, ça ne devrais pas compiler <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=b824361be89" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /></p>
<p dir="auto">Voici la correction:</p>
<p dir="auto">(par contre, c'est pas du tout sécu ton truc, y'a un risque de segfault énorme! ne faites JAMAIS confiance en ce qu'entre vos utilisateurs <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=b824361be89" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /> )</p>
<pre><code>#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;

struct Info
{
	char Prenom[10];
	char Nom[15];
	int Age;
	char Ville[15];
};
// Le typpage "Info" n'existe pas. Le véritable typpage est "struct Info", puisque tu n'as absolument pas utilisé de typedef . On peut régler le problème en rajoutant un typedef, comme ici:
// typedef s_ma_structure type_name;

// Ici, tu utilise "struct Info &amp;P", donc tu demande une référence de P, les références existent uniquement en C++ . Il faut donc envoyer un pointeur. Et ne surtout pas oublier de changer les "." par des "-&gt;" (car pointeurs)
void DemandeInfo(struct Info *P)
{
	printf("-----Saisi des donnees-----\n\n\n");

        // ATTENTION!
	printf("Entrer votre prenom:");
	scanf("%s",P-&gt;Prenom);

	printf("Entrer votre nom:");
	scanf("%s",P-&gt;Nom);

	printf("Entrer votre age:");
	scanf("%i",&amp;P-&gt;Age);

	printf("Entrer votre ville actuelle:");
	scanf("%s",P-&gt;Ville);
}

void AfficherInfo(struct Info *P)
{
	printf("\n\n\n-----Affichage des donnees-----\n\n\n");
	printf("Prenom: %s\n",P-&gt;Prenom);
	printf("Nom: %s\n",P-&gt;Nom);
	printf("Age: %i\n",P-&gt;Age);
	printf("Ville: %s\n",P-&gt;Ville);
}

int main()
{
	struct Info Personne;

        // Ici, tu demande l'adresse de "Personne" et non pas le contenu 
	DemandeInfo(&amp;Personne);
	AfficherInfo(&amp;Personne);

	getch();
	return 0;
}
</code></pre>
<p dir="auto">Ensuite, la norme UNI de C stipule ne pas utiliser les majuscules, SAUF au niveau des macros <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f609.png?v=b824361be89" class="not-responsive emoji emoji-android emoji--wink" style="height:23px;width:auto;vertical-align:middle" title=";)" alt="😉" /> . C'est en C++ qu'on définit des majuscules UNIQUEMENT au début des objets (et non pas des attributs) et au niveau des nom des methodes (for exemple: getGetter())</p>
]]></description><link>http://new.melinyel.net/post/5223</link><guid isPermaLink="true">http://new.melinyel.net/post/5223</guid><dc:creator><![CDATA[AlexMog]]></dc:creator><pubDate>Wed, 09 Apr 2014 17:43:44 GMT</pubDate></item><item><title><![CDATA[Reply to Exercice sur les structures. on Wed, 09 Apr 2014 14:13:34 GMT]]></title><description><![CDATA[<p dir="auto">Vite fait en classe &gt;.&lt;</p>
<blockquote>
<pre><code>#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;

struct Info
{
	char Prenom[10];
	char Nom[15];
	int Age;
	char Ville[15];
};

void DemandeInfo(Info &amp;P)
{
	printf("-----Saisi des donnees-----\n\n\n");

	printf("Entrer votre prenom:");
	scanf("%s",P.Prenom);

	printf("Entrer votre nom:");
	scanf("%s",P.Nom);

	printf("Entrer votre age:");
	scanf("%i",&amp;P.Age);

	printf("Entrer votre ville actuelle:");
	scanf("%s",P.Ville);
}

void AfficherInfo(Info &amp;P)
{
	printf("\n\n\n-----Affichage des donnees-----\n\n\n");
	printf("Prenom: %s\n",P.Prenom);
	printf("Nom: %s\n",P.Nom);
	printf("Age: %i\n",P.Age);
	printf("Ville: %s\n",P.Ville);
}

int main()
{
	Info Personne;

	DemandeInfo(Personne);
	AfficherInfo(Personne);

	getch();
	return 0;
}
 
</code></pre>
</blockquote>
]]></description><link>http://new.melinyel.net/post/5200</link><guid isPermaLink="true">http://new.melinyel.net/post/5200</guid><dc:creator><![CDATA[Cyrion]]></dc:creator><pubDate>Wed, 09 Apr 2014 14:13:34 GMT</pubDate></item></channel></rss>