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

(Dziwne?) Działanie programu

Object Storage Arubacloud
0 głosów
195 wizyt
pytanie zadane 20 stycznia 2018 w C i C++ przez Kurczak Użytkownik (940 p.)

Cześć. Stworzyłem program, który wykonuje różne operacje na N-wymiarowych wektorach (w moim przypadku tylko 2 wymiary). Program tworzy plik z wektorami; [X1][Y1] *nowa linia* [X2][Y2] *nowa linia*... Następnie wektory są wczytywane z pliku oraz zapisywane w nowej tablicy. Mój problem polega na tym, że pierwsza współrzędna pierwszego elementu tablicy praktycznie zawsze jest równa 0. Kilka razy zdarzyło mi się, że program zadziałał poprawnie. Na wyjściu, przed wypisaniem wektorów dodałem coś a la własny debuger, który pokazuje mi w której iteracji ten element zmienia się w 0. Gdy wypisuję ten element od razu po przypisaniu mu wartości, wszystko jest ok. Sytuacja się psuje w którejś iteracji, niestety zawsze innej.
Link do kodu: <Click>

2 odpowiedzi

0 głosów
odpowiedź 20 stycznia 2018 przez Wiciorny Ekspert (269,690 p.)

Może to być kwestia funkcji pow? 

w momencie kiedy jesteśmy głębiej wartości które rosną oddalająć się od granicy 0>  zmierzając do granicy jeden w pewnym momencie będą zaokrąglane nie do 0, ale do wartości większej.  pow 0,51> jeśli np są typu Int. stąd może być całkiem inny wynik  podnoszenia do potęgi ?

Vectors are synchronized- to trzeba miec tez na uwadze 

Przepraszam- jeśli źle zrozumiałem problem.  A jakiej współrzędnej oczekujesz skoro indeksy w wektorach są zawsze od 0 ?  

komentarz 20 stycznia 2018 przez Kurczak Użytkownik (940 p.)

Wyniki z konsoli vs z pliku tekstowego. Jedyna wartość, która się różni to ta pierwsza. Praktycznie za każdym razem, lecz są wyjątki. Funkcja pow jest tutaj nieistotna, chodzi mi jedynie o zapisywanie i wczytywanie.

Wyniki z konsoli vs wyniki z pliku textowego.

Gdy wypisuję zawartość zmiennej zaraz po przypisaniu jej wartości, program działa poprawnie, więc wartość jest przypisana, ale później gdzieś "znika".

komentarz 20 stycznia 2018 przez Wiciorny Ekspert (269,690 p.)
mówisz raz działą raz nie? Wiem jaki błąd jest.,

Zwróć uwagę, że masz w jednym miejscu ODEJMOWANIE.

To jest sytuacja kiedy RANDOMOWO dostaniesz  pierwsza wartość mniejsza od drugiej :)

w konsoli Integer nie może być zapisany jako ujemny stąd pewnie 0 a jak nie to niech szlak mnie trafi, bo ja nie pisze w c ++ :D i czekam na udział innych i rozwiązanie
komentarz 20 stycznia 2018 przez Kurczak Użytkownik (940 p.)
Niepotrzebnie zamieszałem. Te funkcje to tylko dodatek, one nie są wywoływane. Chodzi mi głównie o to co jest w mainie. No nic... Jak widać szalk trafi chyba nas obu :C
Dzięki za chęci ;)
komentarz 20 stycznia 2018 przez Wiciorny Ekspert (269,690 p.)
Stary tylko, że w main dzieje się wszystko. bo w main na początku wykonujesz "inicjacje etc, wszystko po kolei ".

Kaskadowo a vektor jest synchroniczny i stały, więc zmiany których dokonałeś na wektorze są trwałe w całym programie nie tylko wewnątrz metody
0 głosów
odpowiedź 21 stycznia 2018 przez j23 Mędrzec (194,920 p.)

Sprawdź, czy k nie przybiera wartości większych od 2.

 

Ten program jest w C czy C++?

Podobne pytania

0 głosów
2 odpowiedzi 148 wizyt
pytanie zadane 2 kwietnia 2018 w C i C++ przez grubix Nowicjusz (210 p.)
0 głosów
5 odpowiedzi 423 wizyt
pytanie zadane 13 maja 2015 w C i C++ przez Iras Obywatel (1,800 p.)
0 głosów
1 odpowiedź 562 wizyt

92,550 zapytań

141,392 odpowiedzi

319,520 komentarzy

61,935 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...