Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

PESEL klasy

Ostatnio zmodyfikowano 2017-03-09 05:44
Autor Wiadomość
Bielan
» 2017-03-08 21:34:57
Jest wiele podejść, ja ci proponuję te, które są według mnie najprostsze i w miarę eleganckie, choć w obliczu takich ograniczeń jest to... zabawne.

Możesz połączyć te dwie funkcje i za każdym razem wykonywać obliczenia albo od razu za pomocą stałych wartości pobrać dane z PESELu, tak jak sugeruje @carlosmay.

Prowadzący ustosunkował się do numerów PESEL po 2000 roku? Wczytywanie ich jako liczby będzie problematyczne używając standardowych funkcji wczytujących, ponieważ wiele PESELi zaczyna się od zera. Wtedy trzeba będzie wczytywać dane od użytkownika znak po znaku a następnie te znaki (char) konwertować na int (co z ograniczeniem o nieużywaniu tablic robi naprawdę śmieszne konstrukcje...).
P-158717
Mashnar
Temat założony przez niniejszego użytkownika
» 2017-03-08 21:37:58
Powiedział nam , ze mamy załozyc do 2000.. Ok , rok juz ogarnałem własnie tak jak kolega pokazał , teraz bede myslał z dniem i reszta..Dziękuje , bede rozkminiał.
P-158718
1aam2am1
» 2017-03-08 22:39:31
Nie przykro mi ale ta pętla z PESEL nie zadziała jak myślisz:)
Liczba = 123;

1 obieg pętli
X = liczba / 10: //x = 12

2 obieg pętli
X = liczba / 10: //x = 12

Z każdym następnym obiegiem pętli nic nie zmieniasz. Wartość pesel pozostaje nie zmieniona. Więc dzieląc ta samo wartość przez 10 otrzymujesz ciągle to samo.
Nie chciałeś czasem napisać
X = x / 10; ?
P-158731
Mashnar
Temat założony przez niniejszego użytkownika
» 2017-03-08 23:12:47
Zapomnijmy o tamtej pętli , jestem juz na koncówce w liczeniu sumy kontrolnej , ale jako że nie chce tworzyc 10 zmiennych , postanowiłem stworzyc tablice.
C/C++
void Pesel::CzyPoprawny( long long int w )
{ int x = 0;
    long long int y;
    int tab[ 9 ];
    w = PESEL;
   
   
    for( int i = 0; i <= 9; i++ )
    {
        x++;
        y = 0;
        y = pow( 10, x );
        tab[ i ] = w / y;
        tab[ i ] = tab[ i ] % 10;
       
    }
    for( int i = 0; i <= 9; i++ )
    {
        cout << "," << tab[ i ];
    }
}

wypisuje mi tylko polowe dobrych wartosci , lecz reszta jakies sa dziwne.. poczatkowe sa inne (dokladnie 0,1,2) a reszte ok odczytuje... Ktoś ma pomysł co ja tutaj złe napisałem?
W peselu jest 96021307699 i wypisuje mi 960213 a juz 0769 jakies inne...
P-158736
carlosmay
» 2017-03-09 05:44:43
Wychodzisz poza zakres tablicy
tab
.
Tablica dziewięcioelementowa ma indeksy od
0
 do
8
.

Opisz w komentarzach o co chodzi i co sprawdzasz w każdej linii tej metody.
P-158741
1 « 2 »
Poprzednia strona Strona 2 z 2