2 / 11
May 2020

W dosyć sporej części zadań ,które chciałem przerobić na SPOJu w treści zadania pojawia się ,że na wejściu programu podana zostanie pewna nieokreślona liczba zestawów danych. Chciałbym się dowiedzieć co powinienem zrobić ,żeby ten warunek został spełniony. Myślałem ,że chodzi o to ,żeby wprowadzić zmienną i stworzyć odpowiednią pętle ,ale każde zadanie które w ten sposób oddam jest odrzucane przez SPOJa. Programuje w C++.
Chciałbym poprosić o pomoc abym mógł robić zadania tego typu.

  • created

    May '20
  • last reply

    Jul '22
  • 10

    replies

  • 1.5k

    views

  • 4

    users

  • 3

    likes

  • 8

    links

A jeżeli w moim kodzie nie ma funkcji wczytującej dane albo znajduję się ona później w kodzie?

Nie całkiem rozumiem.
Program może przed wczytywanie danych coś sobie przygotowywać, przeliczać (np. sito Erastotenesa dla jakiegos zakresu liczb)
Zadania na Spoj prawie zawsze wczytują dane z wejścia standardowego.
Poniższy link prowadzi do zadania Kalkulator w specjalnej części Spoj pozwalającej podglądać wysłane przez innych kody. Zadanie kalkulator ma nieokreśloną liczbę testów. Podgladnij jak inni to robią. Wczytywanie nieokreślonej liczby testów nie jest bardzo trudne.

Po analizie kodów innych rozumiem już co robię źle.
Bardzo dziękuje za pomoc :slight_smile:

2 years later

W wielu zadaniach jest mowa o wprowadzaniu na wejście programu pewnej nieokreślonej, ale niewielkiej ilość liczb lub testów (np. zadanie łatwe SPOJ nr 968 SUMA)
Niestety nadal nie wiem jak to prawidłowo wykonać, będę wdzięczny za wyjaśnienia ewentualnie jakieś przykłady

W jakim języku programujesz?

Przykład rozwiązania zadania CALC z nieokreśloną liczbą testów dla C++
https://pl.spoj.com/PDSTPROG/files/src/21422765/50

Przykład dla rozwiązania zadania CALC dla JAVA
https://pl.spoj.com/PDSTPROG/files/src/24887336/13

powyższe linki są w specjalnej części SPOJ
w której dozwolone jest podglądanie rozwiązań innych użytkowników

Warto też przeszukać forum.

Uczę się programować w C++.
Dzięki za szybką odpowiedź i bardzo pouczający dla mnie przykład.
Interesuje mnie jednak nico inny przypadek gdy wprowadzamy na wejście wcześniej nieokreśloną liczbę danych (które musimy zapisać w pamięci dla późniejszej “obróbki”) i w pewnym momencie chcemy przerwać wprowadzanie tych danych i rozpocząć działanie właściwego programu - np. SPOJ zadanie łatwe nr 968 SUMA.

Pozdrawiam
ba_sta

Jesli cin nie uda sie wykonac przetwarzania pętla while sie zakończy.
Chyba że piszesz o testowaniu w konsoli? (dla windows ctrl+z, ale osczywiscie lepiej testowac na ideone.com2)
Chyba że piszesz o gromaszeniu danych w tablicy dynamicznej, statycznej lub vector -ze ? (warto to wszystko znać,naucsić się)

Ok. ale jak spowodować aby instrukcja cin nie wykonała się w pętli while? Jak przerwać wprowadzanie danych z klawiatury ( i zapisywania ich w pamięci) w dowolnym momencie wybranym przez programistę np. po wprowadzeniu 6-ciu lub 73-ch liczb ?
Jako początkujacy piszę i uruchamiam najprostsze programy tylko na CodeBloks.
Interesuje mnie konkretne rozwiązanie jak poprawnie wprowadzać dane do zadania SPOJ łatwe nr 968 SUMA.
Pozdrawiam

Czyli program piszesz w codeblocs.
kompilujesz
uruchamiasz
pojawia sie czarne okienko
wprowadzasz po kolei liczby zatwierdzajac [Enter]
i tu chcesz przerwac z klawiatury, ale nie zamknac caly program.
Jesli Ctrl+Z nie dziala to moze sprobuj przekierowanie na pliki.

Suggested Topics

Want to read more? Browse other topics in System SPOJ or view latest topics.