10 / 39
Jul 2018

Na razie rada nr. 1 - przeczytaj uważnie treść zadania :slight_smile:
a potem pomyśl jakie inne błędy mogą wystąpić poza tymi, które przewidziałeś

A jaka jest rada nr. 2? Czytałem to zadanie już bardzo dużo razy i jeśli to jest nawet coś oczywistego to mogłem tego nie zauważyć i wątpię, aby mi się to udało. Czy mógłbyś mi przynajmniej powiedzieć, która część kodu kuleje?

Dodatkowo, robiąc parę testów zauważyłem, że dla przykładów:

Imie: Marcin; Nazwisko: Kowal; Data ur.: 1900-0+-01 oraz
Imie: Marcin; Nazwisko: Kowal; Data ur.: 1900-01-01 w obu przypadkach dostaję wartość 1, kiedy w pierwszym powinienem dostać 2, a w drugim 3. Sugeruje to jakiś problem z weryfikacją nazwiska, ale nie mogę ogarnąć jaki.

Czy chodzi Ci o ten fragment:
"poprawne nazwiska zaczynają się od wielkiej litery, po której następują małe litery;"
W komentarzu pod zadaniem jest takie coś:
W opisie jest błąd dotyczący opisu poprawności nazwiska, aby dostać AC należy założyć, że poprawne nazwisko to takie, które zaczyna się z dużej litery, po której MOGĄ wystąpić małe litery.

No i tym się zasugerowałem.

zakładając, że komentarz jest prawdziwy, to co należy sprawdzić ?

ale również pomyśl o innych możliwych błedach

Nie widzę, więc póki co zajmę się jakimś innym zadankiem, a potem wrócę.

10 months later

Cześć. Próbuję rozwiązać zadanie Formularz, stosowałem rady innych na forum, ale nadal nie zalicza mi zadania. Czy mógłby ktoś pomóc. Kod w c++:

Nie wiem czy dobrze rozumiem - tekst wczytywany przez sędziego jest analogiczny do tego co w przykładzie(Imie: Roman; Nazwisko: Kowalski6; Data ur.: 1900-01-30), czyli ważne są średniki, i myślniki, czy mam to sprawdzać? Albo coś przeoczyłem w kodzie. Proszę o pomoc :slight_smile:

test:
Imie: Z; Nazwisko: Za; Data ur.: 1900-1–30

A mi u matfila wyświetla 3-kę (tam są dwa myślniki po 1ce, przy kopiowaniu czemuś je skleja).

Ok, teraz dobrze chociaż nie wiem czy są takie testy.
Natomiast @matfil z pewnością skasuj to system("pause");. Nie wiem czy może zaburzyć wynik, ale z pewnością nie powinno tego być (jak Twój kurs c++ twierdzi inaczej to zmień kurs :P)

Edit…
ale z pewnością taki może być:
Imie: Z; Nazwisko: Za; Data ur.: 1900-1a-30
(zmiana myślnika na dowolny inny znak też Ci daje 3 co już raczej nie powinno się zdarzyć)

@yula
Trzeba wklejać jako kod, one (dwa myślniki) się sklejają także w wordzie więc pewnie to domyślne formatowanie.

Będę wiedzieć na przyszłość, a przynajmniej zwracać na to uwagę :slight_smile: I tak, poprawienie tego błędu dało mi AC kodem @matfil

Super :slight_smile: dziękuję bardzo postaram się poprawić błędy, teraz już nie wypisuje 3 w przykładzie Imie: Z; Nazwisko: Za; Data ur.: 1900-1a-30 , czy Imie: Z; Nazwisko: Za; Data ur.: 1900-1–30 , ale sędzia nadal nie przyjmuje

a co zrobiłeś? Zastanowiłeś sie dlaczego to wypisywało ?

@yula
Teraz sprawdza czy MM i DD jest liczbą za pomocą kodu ascii, chyba to mieliście na myśli podając przykład Imie: Z; Nazwisko: Za; Data ur.: 1900-1a-30

a rok to nie ma cyferek :wink:

Tak, dokładnie o to chodziło, tyle że nie tylko MM i DD składa sie z cyferek :smiley:

Ja należę do ludzi leniwych i stwierdziłem, że jak sprawdzę czy rok jest między 1900 a 2000 to nie muszę już sprawdzać, czy są to tylko cyferki :smile:
Niestety nadal nie działa :C

sprawdz dokładnie, dodałam tylko sprawdzenie cyfr przy roku i jest AC. Przed chwilą sprawdziłam jeszcze raz

Dziwna sytuacja, ten sam kod wysłałem do sędziego z innym kompilatorem i działa :slight_smile: c++ gcc 6.3 <- działa, a c++ g++ 4.3.2 już nie. Dziękuję za pomoc, ważne że zaliczone :smiley:

23 days later

Serio wystarczy sprawdzać ciny? A co jeśli ktoś się nazywa Róża Maria Barbara Fürstin von Thun und Hohenstein z domu Woźniakowska

To nazywa się na ponad 10 znaków:

PS
Nim skrytykujesz konstrukcje typu while(cin>>bzdeta>>II>>bzdeta>>NN>>bzdeta>>bzdeta>>RRRRMMDD) i inne kwiatki promowane tym zadaniem:

  1. na starym forum był temat o zaletach i wadach SPOJa. Na tym może go nie być więc… nie ma 1) :wink:
  2. są trudniejsze zadania na sprawdzanie treści cinów, np. https://pl.spoj.com/problems/HANG/2 albo https://pl.spoj.com/problems/EIE4/4
  3. to są zadania łatwe
  4. SPOJ jest dla samego rozwiązywania zadań a nie po to by sobie zadanko po zadanku tworzyć własne oprogramowanie komercyjne (czy jakiekolwiek inne)
  5. w realu tego rodzaju przypadki i ich obsługa to prawdziwa magia i nie ma na to doskonałego sposobu. Cytując klasyka:

Źródło znajdziesz sam :wink: