41 / 75
Mar 2019

W jaki sposob pobrac dane w jezyku Python ? Wywala mi blad NZEC:
def Dodawanie(stos,liczba):
if len(stos)<10:
stos.append(liczba)
print(":)")
return stos
elif len(stos)>=10:
print(":(")
return stos
def Odejmowanie(stos):
if len(stos)>0:
print(stos.pop())
return stos
else:
print(":(")
return stos

stos=[]
flaga=0
while True:
a=input()
if flaga==1:
stos=Dodawanie(stos,a)
flaga=0
elif a=="+":
flaga=1
elif a=="-":
stos=Odejmowanie(stos)

1 month later

Mam problem. Nie zalicza, a na testach wychodzi wszystko pięknie, ładnie… nie wiem na czym polega problem ?!?

Ponadto:

  1. Po co używasz zmienne globalne?
  2. Masz bardzo długi kod, spróbuj nad nim popracować. Dla przykładu mój kod liczył 37 linii, z całą pewnością mogę go jeszcze skrócić. Jestem pewien, że wielu ma znacznie krótsze kody. Oczywiście mam na myśli kody w C++, w innych językach może to być różnie.
  3. Masz za wiele zmiennych, naliczyłem ich 8. Ja mam tylko dwie zmienne.

No właśnie, widzisz że wynik nie jest poprawny.
Jak uzyskasz AC to, jeśli będziesz zainteresowany, mogę Ci przesłać moje rozwiązanie. Z pewnością jest tu wiele lepszych rozwiązań niż moje, ale może Ci pozwolić spojrzeć na problem z innego punktu widzenia.

Może inaczej… Być może nie rozumiem zadania.
Czy ma robić coś tam czyli dodawać, odejmować, że się tak wyrażę w trybie rzeczywistym, czy pobrać ileś tam danych i po skończeniu pobierania robić… Czy ma znaczenie kiedy będzie odejmował i dodawał czy może ma najpierw pododawać i na końcu odejmować…

  1. Masz zaimplementować stos: https://eduinf.waw.pl/inf/alg/001_search/0100.php;4
  2. Ja to zrobiłem pisząc klasę stos, jeśli wiesz jak tworzyć klasy to możesz tak zrobić, dodać metody push i pop, jeśli nie to albo tak nie rób albo dowiedz się jak pisze się klasy, co to pola klasy, metody klasy, modyfikatory public i private;
  3. znak ‘-’ oznacza zdjęcie liczby ze stosu i wypisanie ale jeśli stos jest pusty to nie da rady nic zdjąć i powinna wyświetlić się morda :(.

Można to robić na obydwa sposoby, to zależy od Ciebie. Ważne jest by zgadzało się to co jest wyświetlane, bo to jest sprawdzane. Metod implementacji pewnie można wymyślić wiele. Można stworzyć klasę stos jak to sugeruje czaffik z odpowiednimi funkcjami składowymi lub jak kto woli metodami.
Ja nie tworzyłem klasy ponieważ problem, jak się go już ogarnie jest naprawdę prościutki. Trzeba tylko zdecydować czy korzystać z tablic czy z klasy vector. Ja korzystam z klasy vector, ale myślę, że jest to kwestia gustu.

18 days later

Hejka! Mam problem z zadankiem. Nie zalicza mi, bo “Przekroczono limit czasu”. Domyślam się, że jest to wynik braku końca programu, ale nie wiem jak zinterpretować “Pewna nieokreślona liczba zestawu danych”. Proszę o pomoc.

Kod:
https://pastebin.com/M6UbUu3M6

Gdybym nie wpisywał tego w google, to bym nie prosił o pomoc… Tworze petle:

while(cin>>znak || liczba) - ale program wtedy nie działa w ogóle. Dlatego potrzebuje pomocy.

w tym wątku już kilka razy tłumaczono, jak to zrobić - więc może przeczytaj ten wątek

wskazane jest przekazywanie kodu poprzez ideone.com1

w kodzie, który dołączyłeś w poprzednim poście nie ma takiej pętli

nie wiem też, co znaczy ale program wtedy nie działa w ogóle ? (jeżeli się kompiluje to działa, oczywiście może działać niezgodnie z twoimi oczekiwaniami, ale to zupełnie inny problem, prawdopodobnie wynikający z tego, że nie rozumiesz, jak ta pętla działa)

24 days later

Popatrzyłem na Twój kod i od razu wszystkiego mi się odechciało. Masz bardzo niedobre formatowanie (przynajmniej według tych standardów według, których ja się uczyłem).

  1. Po co masz tu zmienne globalne? Oczywiście one nic nie szkodzą, ale jest to zły nawyk.
  2. Jedna instrukcja w jednej linii (to nie jest jakaś sztywna reguła, ale bardzo ułatwia znalezienie linii, w której jest błąd kompilacji czy podczas debugowania).
  3. Odpowiednie wcięcia.
    Może znajdziesz innych, bardziej wyrozumiałych, chętnych do czytania Twojego kodu, ale ja się nie piszę na to gdy jest on w takiej postaci. Niby nie jest to trudne bo zadanie jest proste i kod krótki, ale dlaczego mam się wysilać gdy Tobie na tym nie zależy?

Dzięki za posta.
Poprawione formatowanie (domyślne z CodeBlocksa): https://ideone.com/chdsR310
Kto powiedział, że mi nie zależy? Na moim małym ekranie tamten kod wyglądał na czytelny :wink:

Teraz czyta się zdecydowanie lepiej :slight_smile:
Mam dla Ciebie informację, którą pewnie cię zdziwi. Ten kod nie daje na ideone poprawnych wyników dla danych testowych :frowning: . Jak Tobie się to udało?
Zauważ, że w treści zadania jest podane, że liczba operacji jest nieokreślona. Ty gdy testowałaś podawałaś to jako parametr, ale to jest niezgodne z warunkami zadania.
Jak wczytać niekreśloną ilość zmiennych? To było na SPOJ-u wielokrotnie opisywane, np. tak:
while(cin >>zmienna)