Avatar billede svinehund Nybegynder
13. marts 2001 - 13:38 Der er 28 kommentarer og
1 løsning

gyldigt CPR nummer

Er der nogen som kan lave en boolean metode som kaldes fra main og skal tjekke om et CPR nummer er gyldigt og om det tilhører en mand eller en kvinde.
Avatar billede netsrac Praktikant
13. marts 2001 - 13:39 #1
Skole opgave ? :-)
Avatar billede netsrac Praktikant
13. marts 2001 - 13:41 #2
Boolean ? Hvordan skal den så kunne returnere om det er en mand eller kvinde ?
Avatar billede svinehund Nybegynder
13. marts 2001 - 13:43 #3
Den skal tage et heltal som argument og returnere om tallet er et gyldigt cpr??
Avatar billede svinehund Nybegynder
13. marts 2001 - 13:44 #4
Altså hvis tallet er lige er det en kvinde og er tallet ulige er det en mand.
Avatar billede cstern Nybegynder
13. marts 2001 - 13:47 #5
se på http://www.cpr.dk/pnr_i_cprsys.htm hvordan algoritmen skal være
Avatar billede cstern Nybegynder
13. marts 2001 - 13:47 #6
det er ikke helt simpelt - der er bl.a. en serie tal der ikke kan bruges. Men det er meget let at kontrollere checksummen (se linket).
Avatar billede netsrac Praktikant
13. marts 2001 - 13:48 #7
Ja men skal det være 2 metoder eller ? Den kan jo ikke returnere om det er en mand / kvinde i en boolean værdi.
Avatar billede svinehund Nybegynder
13. marts 2001 - 13:49 #8
Det skal være en enkelt metode
\"static boolean gyldigtCPR(long nummer)\"
Avatar billede cstern Nybegynder
13. marts 2001 - 13:49 #9
det vil sikkert være smartere at lave en funktion som returnerer 0,1,2, hvor 0 betyder ugyldig, 1 mand, 2 kvinde eller så\'n.
Avatar billede cstern Nybegynder
13. marts 2001 - 13:51 #10
svinehund - som netsrac kan du ikke på den måde få oplyst om det er en mand eller kvinde. Problemet er dog ikke større end at du skal chekke om løbenummeret er lige (kvinde) eller ulige (mand), det er mao sidste ciffer du skal se på for at finde ud af dét.
Avatar billede svinehund Nybegynder
13. marts 2001 - 13:51 #11
Kan man ikke, hvis nu tallet er et lige tal så er det true, ellers false??
Avatar billede svinehund Nybegynder
13. marts 2001 - 13:52 #12
Ja man skal tjekke på sidste ciffer????
Avatar billede netsrac Praktikant
13. marts 2001 - 13:54 #13
public boolean tjek(long cpr)
{
if (cpr % 11 == 0)
    return true;
else
        return false;   
}
Avatar billede netsrac Praktikant
13. marts 2001 - 13:54 #14
Den tjekker om et cpr nummer er gyldigt.
Avatar billede netsrac Praktikant
13. marts 2001 - 13:55 #15
Gu gør den da ej.
Avatar billede svinehund Nybegynder
13. marts 2001 - 13:55 #16
Ja og om det er en mand eller en kvinde??
Sidste ciffer skal fungere som kontrolciffer og det skal være en Long??
Avatar billede netsrac Praktikant
13. marts 2001 - 13:59 #17
Tror lige vi skal have en ting på det rene, skal det være en funktion som tjekker om det er en mand / kvinde eller skal den tjekke om det er et gyldigt cpr ?
Avatar billede svinehund Nybegynder
13. marts 2001 - 14:00 #18
Den skal tjekke om det er en mand eller kvinde og sidste ciffer skal være kontrolciffer.
Avatar billede svinehund Nybegynder
13. marts 2001 - 14:03 #19
Man skal indtaste et CPR nummer og metoden skal undersøge om det er en mand eller en kvinde.
Avatar billede cstern Nybegynder
13. marts 2001 - 14:04 #20
netsrac: husk lige på at der skal klodses et kontrolciffer på hvert enkelt ciffer i cpr-nummeret inden du chekker om det er deleligt med 11. Se: http://www.cpr.dk/modulus11_beregn.htm (glemte at henvise til denne i første omgang, sorry!
Avatar billede netsrac Praktikant
13. marts 2001 - 14:06 #21
cstern >> Ja er klar over det, det var også derfor jeg skrev Gu gør den ej. Jeg har en funktion til det i javascript, men det er jo ikke sådan en funktion der skal bruges.
Avatar billede wisen Nybegynder
13. marts 2001 - 14:07 #22
Jeg har en rutine fra C++, som validerer et CPR-nummer, den returnerer godt nok ikke hvilket køn cpr-nummeret har, men det kan du kontrollere ved at se om sidste ciffer er lige (kvinde) eller ulige (mand).

Er du interesseret i koden ? (Du skal selv \"oversætte\" til Java)
Avatar billede svinehund Nybegynder
13. marts 2001 - 14:09 #23
wisen<< jeg kender slet ikke til c++.
Avatar billede wisen Nybegynder
13. marts 2001 - 14:17 #24
Ok...
Avatar billede wisen Nybegynder
13. marts 2001 - 14:18 #25
Her er en beskrivelse af valideringsreglen : http://www.cpr.dk/modulus11_beregn.htm
Avatar billede erikjacobsen Ekspert
13. marts 2001 - 14:19 #26
class  Cpr
{

  static boolean tjek(long cpr) {
  long t = 4327654321L;
  int c=0,d1,d2,i;

  for (i=0;i<10;i++) {
    d1 = (int)(cpr % 10);  cpr = cpr / 10;
    d2 = (int)(t % 10);    t = t / 10;
    c+=d1*d2;
  }
  return c%11==0;
  }

    public static void main(String[] args)
    {
        System.out.println(\"Hello World!\");
  if (tjek(1112900123L)) {
    System.out.println(\"Dit CPR-nummer er korrekt\");
  } else {
    System.out.println(\"Dit CPR-nummer er ikke korrekt\");
  }
    }
}
Avatar billede wisen Nybegynder
13. marts 2001 - 14:19 #27
Doh.. det havde cstern jo svaret... sorry ...
Avatar billede svinehund Nybegynder
13. marts 2001 - 14:26 #28
erikjacobsen << kan jeg bytte om på main og metoden??
Avatar billede erikjacobsen Ekspert
13. marts 2001 - 14:27 #29
Prøv :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester