12 / 39
Jul 2018

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:

Z tego co się zdążyłem zorientować to zadania na spoju bazują głównie na wyjątkach :wink: Tzn sędzie nie sprawdza “normalnych” przypadków tylko zawsze jakieś skrajności o których normalny człowiek by nie pomyślał nawet :wink: Trzeba brać pod uwagę wszelkie możliwe przypadki.

P.S czy Twój nick jest zaszyfrowany jakimś kodem Cezara? Bo mam trudności z jego odczytaniem nie mówiąc o zapamiętaniu :wink:

Z tego co zdążyłem zauważyć sprawdza najczęściej i to i to w celu potwierdzenia, że program działa. Spróbuj przejść jakiekolwiek zadanie obsługując tylko skrajne przypadki, a nie obsługując normalnych. W danym teście może być i milion przypadków testowych, a w nich te “normalne” i te “o których normalny człowiek by nie pomyślał”.

Zgadza się, nie tylko na spoju.

Ja już tyle razy łamałem sobie na nim język, że już znam na pamięć. Teraz to mógłbym zmienić hasło na poczcie na jego nick gdyż piszę go bez zastanowienia :slight_smile:
//test:
@tarpauwatratar @tarpauwatratar @tarpauwatratar
//ok bez problemów.