<?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[[Débutant] Numéro de sécurité social]]></title><description><![CDATA[<p dir="auto"><strong>Numéro de sécurité social</strong></p>
<p dir="auto"><strong>Exercice Java</strong></p>
<p dir="auto">Dans cet exercice nous tenterons de restituer les informations d'une personne à partir de son numéro de sécurité social. Si vous souhaitez une correction personnalisé, veuillez me joindre votre fichier .java par mail à l'adresse suivante : <a href="mailto:soulalex@melinyel.net" rel="nofollow ugc">soulalex@melinyel.net</a></p>
<p dir="auto"><strong>Langage :</strong> Java</p>
<p dir="auto"><strong>Niveau :</strong> Débutant (DUT-INFO-S1)</p>
<p dir="auto"><strong>Durée :</strong> 10-15 minutes</p>
<p dir="auto"><strong>Contexte :</strong></p>
<hr />
<p dir="auto"><strong>Un numéro de sécurité sociale est constitué de 13 chiffres de données :</strong></p>
<ul>
<li>Le premier chiffre représente le <strong>sexe</strong> (1 = homme, 2 = femme),</li>
<li>Les deux chiffres suivants représentent l'<strong>année de naissance</strong>,</li>
<li>Les deux chiffres suivants représentent le <strong>mois de naissance</strong>,</li>
<li>Les deux chiffres suivants représentent le <strong>département de naisssance</strong>,</li>
<li>Les trois chiffres suivants représentent le <strong>numéro de commune de naissance</strong>,</li>
<li>Les trois derniers chiffres représentent le <strong>numéro d'odre de la naissance dans le mois et la commune.</strong></li>
</ul>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p dir="auto">S'ajoute à cela une <strong>clef de contrôle</strong> sur 2 chiffres qui est égale à : <strong>97 – le reste de la division du numéro sur 13 chiffres par 97</strong></p>
<p dir="auto"><strong>Sujet :</strong></p>
<hr />
<p dir="auto">Dans un premier temps, vous deverez, à partir d'un <strong>numéro de sécurité social à 13 chiffres</strong> saisi par l'utilisateur, retrouver le sexe, l'année de naissance, le mois de naissance et le département de naissance de l'utilisateur.</p>
<p dir="auto">Dans un second temps, vous calculerez la clef de sécurité en fonction du numéro de sécurité social.</p>
<p dir="auto"><strong>Correction :</strong></p>
<hr />
<p dir="auto">C'est l'heure de la correction !</p>
<p dir="auto">Voici donc un correction de ce qui était attendu :</p>
<blockquote>
<pre><code>import java.util.Scanner;

/** SecuriteSocial
  * Détermination des informations sur l'utilisateur 
  * à partir du numéro de sécurité social
  *
  * @author Soulalex
  * @version 1 du 06/11/2015
  */

public class SecuriteSocial
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        
        long numSecu;
        int numSexe, anneeNaissance, moisNaissance, deptNaissance; // Variables pour la décomposition du numéro de sécurité social
        int clef;
        String sexe;

        // On lit le numéro de sécurité social
        System.out.print("Veuillez saisir un numéro de sécurité social à 13 chiffres : ");
        numSecu = sc.nextLong();

        // On décompose notre numéro de sécurité social
        numSexe             = (int)(numSecu / 1000000000000L);
        anneeNaissance  = (int)(numSecu / 10000000000L % 100L);
        moisNaissance   = (int)(numSecu / 100000000L % 100L);
        deptNaissance   = (int)(numSecu / 1000000L % 100L);
        
        // Détermination du sexe
        if (numSexe == 1)
            sexe = "Homme";
        else 
            sexe = "Femme";
        
        // Affichage des informations sur l'utilisateur
        System.out.println("Sexe : "                        + sexe);
        System.out.println("Année de naissance : "          + anneeNaissance);
        System.out.println("Mois de naissance : "           + moisNaissance);
        System.out.println("Département de naissance : "    + deptNaissance);

        // Calcul et affichage de la clef de sécurité
        clef = (int)(97 - (numSecu % 97));
        System.out.println("Votre clef de sécurité : " + clef);
    }
}
</code></pre>
</blockquote>
<p dir="auto"><strong>On peut néanmois apporter certaines modifications :</strong></p>
<ul>
<li>Vérification de la validité de la saisie.</li>
</ul>
]]></description><link>http://new.melinyel.net/topic/1811/débutant-numéro-de-sécurité-social</link><generator>RSS for Node</generator><lastBuildDate>Thu, 21 May 2026 19:16:42 GMT</lastBuildDate><atom:link href="http://new.melinyel.net/topic/1811.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 Nov 2015 17:52:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Débutant] Numéro de sécurité social on Sat, 07 Nov 2015 11:55:17 GMT]]></title><description><![CDATA[<p dir="auto">D'accord c'est toujours bon à savoir parce qu'on nous apprend pas les normes à l'IUT <img src="http://new.melinyel.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f615.png?v=aa95655114f" class="not-responsive emoji emoji-android emoji--confused" style="height:23px;width:auto;vertical-align:middle" title=":/" alt="😕" /></p>
]]></description><link>http://new.melinyel.net/post/17547</link><guid isPermaLink="true">http://new.melinyel.net/post/17547</guid><dc:creator><![CDATA[Soulalex]]></dc:creator><pubDate>Sat, 07 Nov 2015 11:55:17 GMT</pubDate></item><item><title><![CDATA[Reply to [Débutant] Numéro de sécurité social on Sat, 07 Nov 2015 08:58:45 GMT]]></title><description><![CDATA[<p dir="auto">Intéressent comme exo, mais pas mal d'erreurs (principalement de norme Oracle) dans ton code, quelques moyens de le rendre plus lisible aussi ^^.</p>
<blockquote>
<pre><code>import java.util.Scanner;

/** SecuriteSocial
  * Détermination des informations sur l'utilisateur 
  * à partir du numéro de sécurité social
  *
  * @author Soulalex
  * @version 1 du 06/11/2015
  */

public class SecuriteSocial
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        
        long numSecu;
        int numSexe, anneeNaissance, moisNaissance, deptNaissance; // Variables pour la décomposition du numéro de sécurité social
        String sexe;

        // On lit le numéro de sécurité social
        System.out.print("Veuillez saisir un numéro de sécurité social à 13 chiffres : ");
        numSecu = sc.nextLong();

        // On décompose notre numéro de sécurité social
        numSexe         = (int)(numSecu / 1000000000000L);
        anneeNaissance  = (int)(numSecu / 10000000000L % 100L);
        moisNaissance   = (int)(numSecu / 100000000L % 100L);
        deptNaissance   = (int)(numSecu / 1000000L % 100L);
        
        // Détermination du sexe
        // Alors, d'une, la norme Oracle spécifie que les brackets
        // ({}) sont obligatoires dans ce genre de contexte.
        // (à titre informatif, voici la norme de java: http://www.oracle.com/technetwork/articles/javase/codeconvtoc-136057.html )
        // Ensuite, un ternaire est quand même plus appréciable, au vue du contexte
        // et de la simplicité de ton if.
        sexe = (numSexe == 1 ? "Homme" : "Femme");

        // Affichage des informations sur l'utilisateur
        System.out.println("Sexe : "                        + sexe);
        System.out.println("Année de naissance : "          + anneeNaissance);
        System.out.println("Mois de naissance : "           + moisNaissance);
        System.out.println("Département de naissance : "    + deptNaissance);

        // Calcul et affichage de la clef de sécurité
        // la variable était inutile, ça ne sert à rien de surcharger la stack
        // (même si elle est virtuelle) pour rien.
        System.out.println("Votre clef de sécurité : " + ((int)(97 - (numSecu % 97))));
    }
}
</code></pre>
<p dir="auto">Et hop, un code un peu plus propre :).</p>
</blockquote>
<p dir="auto">Cdt,</p>
<p dir="auto">Mog</p>
]]></description><link>http://new.melinyel.net/post/17546</link><guid isPermaLink="true">http://new.melinyel.net/post/17546</guid><dc:creator><![CDATA[AlexMog]]></dc:creator><pubDate>Sat, 07 Nov 2015 08:58:45 GMT</pubDate></item></channel></rss>