• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Od kiedy zacząć rozwiązywać zadania na SPOJ?

VPS Starter Arubacloud
+2 głosów
3,266 wizyt
pytanie zadane 24 czerwca 2016 w C i C++ przez ratchet29 Nowicjusz (180 p.)
Witam!

Niedawno rozpocząłem kurs Pana M.Zelenta o podstawach C++.Jestem już na trzecim odcinku i chciałbym już sprawdzić swoją wiedzę z tych tematów rozwiązując jakieś zadania.Słyszałem o platformie SPOJ, ale nie jestem pewien,czy przerobiłem wystarczającą ilość materiału by móc zacząć przygodę z tą stroną,a może powinienem obejrzeć jeszcze kilka odcinków?Czy może znacie jeszcze inne zestawy zadań z programowania w C++ dla kompletnie "zielonych"?

PS:Zastanawiam się nad kupnem książki o programowaniu w C++.Czy w moim przypadku warto?

7 odpowiedzi

+3 głosów
odpowiedź 24 czerwca 2016 przez Grzyboo Nałogowiec (28,860 p.)
A ja się nie zgodzę z resztą. SPOJa warto rozwiązywać gdy się pozna całkiem dobrze język i parę jakiś małych projektów się napisze. Dlaczego? Przy małej znajomości języka i programowania ogółem rozwiązywanie zadań na SPOJu będzie niekończącą się frustracją. Większość zadań tam ma taki problem, że nie podaje trafnych przykładowych liczb. I w nasz program będzie działał dla każdego przykładowego wejścia z zadania, a sędzia wywali błąd bez jakiegokolwiek wytłumaczenia.

Przykład: http://pl.spoj.com/problems/PA05_POT/

Banalne liczby na wejściu, wszystko działa, a sędzia mówi, że błąd. I jak taka osoba, która dopiero się uczy ma to rozwiązać? Najprawdopodobniej nie zdaje sobie nawet sprawy, że potęgując dwie, nawet niewielkie liczby, można wyjść poza zakres inta. A jak zdaje sobie sprawę to użyje long long int czy innego tworu, ale nadal zadanie nie bedzie działać.

SPOJ dla początkującego to źródło frustracji i niepotrzebnego zniechęcenia. Proponuję solidnie ogarnąć język i zrobić kilka małych projektów, a potem się brać za algorytmy.

Inna sprawa to np. fakt, że niektóre zadania są absurdalnie nieproporcjonalne poziomem trudności.
komentarz 24 czerwca 2016 przez p0m0 Obywatel (1,190 p.)
O co chodzi z tym zadaniem "Czy umiesz potęgować", bo ja nie widzę z nim problemu?
komentarz 24 czerwca 2016 przez obl Maniak (51,280 p.)
Dzięki Grzyboo za linka do zadania, rozwiązałem je sobie :)
komentarz 24 czerwca 2016 przez Grzyboo Nałogowiec (28,860 p.)
To, że tutaj wcale nie chodzi o potęgowanie tak jak mogłoby się wydawać
1
komentarz 24 czerwca 2016 przez CzikaCarry Szeryf (75,340 p.)

     Ze SPOJ'em jest tak, że rzeczywiście, jest dużo zadań które wydają się łatwe, a mogą okazać się trudne. Ten przykład z zadaniem "czy umiesz potęgować" jest często dużym problemem nie tylko ze względu na wychodzenie poza zakres typu danych, ale też ze względu na czas wykonania algorytmu. Tak naprawdę to zadanie jest banalnie proste, trzeba tylko znaleźć pewną zależność między wynikami kolejnych potęg (więcej nie powiem, żeby nie popsuć zabawy).

   Jest też wiele zadań które mogą wydawać się bardzo trudne, a są tak naprawdę banalne.

Przykład? :http://pl.spoj.com/problems/ETI06F1/

jestem prostym gimnazjalistą który dziś ukończył pierwszą klasę. na to zadanie natknąłem się jakieś 5 miesięcy temu. Jako iż na matmie mieliśmy tylko pole koła i to był koniec mojej wiedzy o tym okrągłym wynalazku. Zadanie z pozoru wydaje się naprawdę trudne. Ten stosunek obwodu koła do jego średnicy w tym zadaniu przyjęty jako 3.141592654, te dane wejściowe, ten rysunek, wszystko takie zagmatwane. Wtedy zrezygnowałem z robienia tego zadania. 

    2 miesiące temu do niego powróciłem. Wystarczyło, że otworzyłem naszą kochaną wookieepedię, poszperałem trochę, znalazłem odpowiednie zależności, rozrysowałem swoje myślenie na kartce, napisałem algorytm i wysłałem zadanie. 10 minut i je zrobiłem, a parę miesięcy temu myślałem, że mogę sobie o zrobieniu tych zadań tylko pomarzyć.

    SPOJ uczy nas logicznego myślenia, "rozpisywania" algorytmów w swojej głowie, wrodzonej ciekawości, a czasami nawet maniacznego szukania informacji w anglojęzycznym internecie (który jest o wiele bogatszy contentem od np. Polskiego), gdy np. chcemy znaleźć wzór na zadanie pyramids (http://www.spoj.com/problems/PIR/) i nie możemy znaleźć wzoru na objętość czworościanu trójkątnego na podstawie długości jego krawędzi w polskim internecie.

   Rozwiązywanie zadań na SPOJu zacząłem jeszcze przed przerobieniem i zrozumieniem odcinka ze wskaźnikami u P. Zelenta ,i szczerze nie żałuję że tak wcześnie. SPOJ nie jest czymś typu praca domowa za którą dostaje się jedynkę i opierdziel. Nie uda się - trudno, poczekaj jakiś czas, poucz się jeszcze, zastanów się nad tym problemem. SPOJ nie zając - nie ucieknie. 

   Co do zrażania się - Jak już powiedziałem: Na SPOJu jest naprawdę dużo łatwych zadań, trzeba się tylko nad nimi zastanowić.

 

komentarz 24 czerwca 2016 przez p0m0 Obywatel (1,190 p.)
Wydaje mi się, że właśnie na przykładzie tych zadań widać, że na SPOJ-u chodzi głównie o logiczne myślenie i znajomość kilku algorytmów, jak również o praktykę, a nie o znajomość c++.
komentarz 24 czerwca 2016 przez CzikaCarry Szeryf (75,340 p.)
Ale musisz przyznać, że funkcje są dość... przydatną rzeczą. Tak samo jak np. hmm... pętlę, tablice, obsługa stringów. Bez nich nawet największy geniusz z najlepszym pomysłem nie przeleje tego na kod.
komentarz 28 czerwca 2016 przez ratchet29 Nowicjusz (180 p.)
Co masz na myśli pisząc "wookiepedia"?Zakładam,że nie chodzi tutaj o wikipedię nt.Gwiezdnych Wojen.
komentarz 28 czerwca 2016 przez CzikaCarry Szeryf (75,340 p.)
miałem na myśli wikipedię, chociaż nie raz zdarzało mi się wchodzić na wookieepedię :D
+2 głosów
odpowiedź 24 czerwca 2016 przez adas94 Nałogowiec (29,200 p.)
Wejdź na SPOJ -> zakładka łatwe -> zobacz czy potrafisz coś rozwiązać -> amen.
+1 głos
odpowiedź 24 czerwca 2016 przez CzikaCarry Szeryf (75,340 p.)
Co do SPOJa - po przerobieniu pętli, ifów, switchów, tablic i funkcji możesz już zaczynać robić proste zadania na SPOJu. Tak naprawdę jeśli jesteś kumaty to możesz na tym materiale zrobić bardzo dużo zadań ze spoja, ale wszystko przychodzi z czasem.
0 głosów
odpowiedź 24 czerwca 2016 przez kacperdyba Gaduła (3,290 p.)
Pierwsze zadania możesz już rozwiązywać, tylko nie zraź się poziomem :) Dużo z nich wymaga naprawdę abstrakcyjnego myślenia ;). Na początek PTEST, CALC, powinny się nadać.
0 głosów
odpowiedź 24 czerwca 2016 przez p0m0 Obywatel (1,190 p.)

W zadaniach na SPOJ-u, według mnie, nie chodzi o znajomość c++, a o umiejętności algorytmiczne, które gorąco polecam Ci zdobyć (np. programując na SPOJ-u, zadając tu pytania oraz czytając o różnych algorytmach i je samemu pisząc). Algorytmika jest naprawdę ciekawa (przynajmniej dla mnie) i jest to coś innego, niż szukanie w dokumentacji potrzebnej nam struktury.

Jeśli będziesz miał pytania do zadań na SPOJ-u, to ja, jeśli będę umiał, to Ci pomogę.

Ważne!!!

Jeśli zaczniesz robić zadania na SPOJ-u, to uważnie czytaj opis specyfikacji wejścia i wyjścia, bo to jest powodem największej furstracji.

0 głosów
odpowiedź 24 czerwca 2016 przez krunner Bywalec (2,180 p.)
Zacznij od prostych zadan na SPOJ, gdzie wejście jest proste i wyście także niezbyt skomplikowane. Unikaj zadan, gdzie mogą się pojawić mnożenia, potęgowania i duże liczby jako wyniki pośrednie. Rozwiązuj zadania z wysokim wskaźnikiem AKC. Typowe zadanie na początek to np. takie:

http://pl.spoj.com/problems/PP0502B/

A zatem do walki!

PS. W temacie książki: nie, moim zdaniem na tym etapie nie kupuj. Przerób kursy na youtube, rozwiąż trochę zadan na spoj (np. 20-30 zadan). Jak poczujesz, że chciałbyś coś zrobić więcej w programowaniu, to poszukaj dobrej książki do C++
0 głosów
odpowiedź 28 czerwca 2016 przez ratchet29 Nowicjusz (180 p.)
Serdecznie dziękuję za tak wielki odzew na moje pytania oraz przydatne wskazówki!

Podobne pytania

0 głosów
1 odpowiedź 1,907 wizyt
+2 głosów
2 odpowiedzi 398 wizyt
pytanie zadane 19 lipca 2023 w PHP przez Kasaewa Nowicjusz (140 p.)
0 głosów
2 odpowiedzi 239 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...