Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

c++ bład a algorytmu

#1
c++ bład a algorytmu
Kod:
void spadanie(int tablica[12][24]){
                                    for(int pe=288; pe>0;pe--){  
                                    if (tablica[0][pe]==1)
                                    {
                                    if (tablica[0][pe-12]==0){
                                    int pomoc=pe-13;                      
                                    tablica[0][pomoc]=1;
                                    tablica[0][pe]=1;}                  
                                    }
                                    }
Funkcja ta powoduje błąd, dlaczego?
 System operacyjny: windows_xp_2003 Przeglądarka: ie
#2
RE: c++ bład a algorytmu
A w czym jest błąd? Kompilator zwraca uwagę, że brakuje klamry zamykającej funkcję (naprawdę użyteczną rzeczą jest stosowanie odpowiednich wcięć).
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#3
RE: c++ bład a algorytmu
sorki, że żle przekopiowałem
Kod:
void spadanie(int tablica[12][24]){
             for(int i=288; i>0;i--){  
                                            if (tablica[0][i]==1)
                                            {
                                            if (tablica[0][i-12]==0){
                                                    
                                                     tablica[0][i-12]=1;
                                                     tablica[0][i]=0;
                                                     }                  
                                                     }
                                                    
                                   }
                                   }
Błąd wyskakuje jak włącze program wywołujący tą funkcje-w załączniku fotka
 System operacyjny: windows_xp_2003 Przeglądarka: ie
#4
RE: c++ bład a algorytmu
W pętli zmienna i ma na początku wartość 288, i robisz coś takiego:
tab[0][288], a wiesz (z definicji) że tablica ma tylko 24 elementy. Prawie zawsze gdy pojawia się takie okienko oznacza to wynik pracy z tablicą lub wskaźnikiem.
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#5
RE: c++ bład a algorytmu
1. ostatni element tablicy ma numer tablica[0][287], a nie [0][288], bo tablice są numerowane od zera. pierwszy element tablicy to [0][0], a nie [0][-12]. tzn. pętla powinna powinna być skonstruowana inaczej:
Kod:
for(i=287; i>=12;i--){
(...)
}

2. nie stosuj tego typu haków [12][24] -> [0][288]... kompilator może wyrzucić błąd o przekroczeniu zakresu tablic. a poza tym w przypadku złożonych struktur to nie zadziała - wyrabiasz sobie złe nawyki.
 System operacyjny: linux_ubuntu Przeglądarka: firefox
#6
RE: c++ bład a algorytmu
Dodam tylko taka uwage:
Tablice wielowymiarowe stosuje sie zeby ulatwic sobie prace, a ty uzyles tego chyba zeby sobie cos utrudnic? Wow Skoro uzyles tablicy dwuwymiarowej to po co sie odwolujesz do niej tak jak do jednowymiarowej? Czyli zamiast np. wyliczac calkowita liczbe elementow, robic skomplikowane rzeczy z indeksami typu [i-12] i jak widac na zalaczonym przez ciebie obrazku popelniac bledy przez tego typu przekombinowania mozna przeciez zastosowac cos takiego:
Kod:
for(int i=23;i>=0;i--)
{
  for(int j=11;j>=0;j--)
  {
    if (tablica[i][j]==1)
    {
      ...
    }
  }
}

Skoro uparles sie przy takim dziwnym zapisie czemu poprostu nie zrobisz tablicy jednowymiarowej - int tablica[288] ?

Jesli chodzi o slowa klajoka:
"2. nie stosuj tego typu haków [12][24] -> [0][288]... kompilator może wyrzucić błąd o   przekroczeniu zakresu tablic"

Taki kompilator to skarb ja takiego nie mam i jesli faktycznie gdzies przez pomylke wyjdzie sie poza obszar zadeklarowanej przez siebie pamieci na np. tablice to wychodzi to dopiero podczas wykonywania sie programu a nie kompilacji. Wtedy dostajesz error, ze obiekt o takim a takim adresie nie boze byc read i zwieche programu, czesto w najmniej oczekiwanym i specyficznym momencie.
 System operacyjny: windows_2000 Przeglądarka: ie
Programy: Polecane / Nowe / Inne




Podobne wątki (c++ bład a algorytmu)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Bład wysyłania email'a Może został podany zły adres e-mail php by przemo Paubl 0 6763 06.11.2015, 19:56
Ostatni post: Paubl
  Wyznaczyć ilość przypisań dla algorytmu wyznaczającego maksymalną wartość w tablicy Trojan3000 11 10593 17.12.2014, 19:27
Ostatni post: broda99
  Bład JAVA Mc.Memorek 7 2917 30.04.2014, 01:37
Ostatni post: koneton

Skocz do:


Wybrane wątki (c++ bład a algorytmu)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
Big Grin Czy dostane sie technikum informatycznego klaudiusz20046 6 12597 21.03.2019 01:28
Ostatni post: UnableToSee
  [C#] Program do moderacji czatów gier wiktrom12 0 9466 07.03.2019 15:33
Ostatni post: wiktrom12
  Mój pierwszy projekt - Pomoc rafal12999 1 9889 07.02.2019 22:01
Ostatni post: Szachista
  pomoc projekt scilab piesel18 2 11347 04.02.2019 09:03
Ostatni post: piesel18
  Szkoła Informatyczna Zikinan 1 10191 02.02.2019 17:59
Ostatni post: wojownikhaha
  [Java] Strona z zadaniami do rozwiązania i odpowiedziami rafal12999 2 10988 27.01.2019 13:44
Ostatni post: rafal12999
  kompilacja biblioteki Agui - cmake jurek2 0 10210 10.01.2019 13:12
Ostatni post: jurek2
  Zamiana całego zestawu znaków wg przyporządkowania BarHorab 5 10914 19.12.2018 16:45
Ostatni post: Szachista
  Sumowanie licz excel - problem OxyGenE 2 13561 19.12.2018 16:29
Ostatni post: Szachista
  Jaki kod pod pewne zdarzenia visualbasic 2010 aktywny27 4 11385 07.11.2018 13:41
Ostatni post: Ajgor
Scared Ipad Pro programowanie? NissmoOne 4 12609 06.10.2018 12:22
Ostatni post: NissmoOne
  C# pierwsza pusta komórka Excel DonCorleone 0 11146 21.09.2018 16:58
Ostatni post: DonCorleone
  .bat nie kompresuje plików GIENTY 3 11652 06.09.2018 07:20
Ostatni post: broda99
  problem z programem .bat wiktrom12 4 12477 30.08.2018 08:25
Ostatni post: wiktrom12
  Silnik do gier ZigglerGames 1 11104 23.08.2018 09:03
Ostatni post: Szachista