Cześć, mam taki problem, program kompiluje się ale po chwili przestaje odpowiadać, wydaje mi się że jest przeciążony bo po "wykomentowaniu" jednej funkcji (niestety niezbędnej do prawidłowego działania) kompilacja przebiega bez problemu. Macie może jakieś sugestie co powinnam zrobić?
Program przestaje odpowiadać
- Rejestracja: dni
- Ostatnio: dni
- Rejestracja: dni
- Ostatnio: dni
kompiluję devc++ poniżej wkleję kod
#include <iostream>
#include <cmath>
using namespace std;
unsigned char kod_MAP(unsigned char **tabR, int wys, int szer)
{
int i, j;
//==================deklaracja tablicy robR========
unsigned char **robR= new unsigned char*[wys];
for (i=0; i<wys;i++)
{
robR[i]= new unsigned char[szer];
}
//=============================================
for (i=0; i<szer; i++)
{
for (j=0; j<wys; j++)
{
if((i<1 && j<1)||(i>szer-1&&j>wys-1))
{
robR[i][j] = tabR[i][j];
}// wartość jest przepisywana
else {
if(max(tabR[i-1][j],tabR[i][j-1])<=tabR[i-1][i-1])
{
robR[i][j]=min(tabR[i-1][j],tabR[i][j-1]);
}
else if(min(tabR[i-1][j],tabR[i][j-1])<=tabR[i-1][i-1])
{
robR[i][j]=max(tabR[i-1][j],tabR[i][j-1]);
}
else
{
robR[i][j]=tabR[i-1][j]+tabR[i][j-1]-tabR[i-1][j-1];
}
}
}
}
for (i=0; i<szer; i++) //reszty predykcyjne
{
for (j=0; j<wys; j++)
{
robR[i][j] = tabR[i][j]-robR[i][j];
}
}
return **robR;
}
unsigned char kod_GAP(unsigned char **tabR, int wys, int szer)
{
int i, j;
//==================deklaracja tablicy robR========
unsigned char **robR= new unsigned char*[wys];
for (i=0; i<wys;i++)
{
robR[i]= new unsigned char[szer];
}
//=============================================
for (i=0; i<szer; i++)
{
for (j=0; j<wys; j++)
{
if((i<2 && j<2)||(i>szer-2&&j>wys-2))
{
robR[i][j] = tabR[i][j];
}
else {
int dn, dv, dgap;
dn=abs(tabR[i-1][j]-tabR[i-2][j])+abs(tabR[i][j-1]-tabR[i-1][j-1])+abs(tabR[i+1][j-1]-tabR[i][j-1]);
dv=abs(tabR[i-1][j]-tabR[i-1][j-1])+abs(tabR[i][j-1]-tabR[i][j-2])+abs(tabR[i+1][j-1]-tabR[i+1][j-2]);
dgap=dn-dv;
if (dgap>80)
{
robR[i][j]=tabR[i][j-1];
}
else if (dgap<(-80))
{
robR[i][j]=tabR[i-1][j];
}
else{
robR[i][j]=(1/2)*tabR[i-1][j]+(1/2)*tabR[i][j-1]+(-1/4)*tabR[i-1][j-1]+(1/4)*tabR[i+1][j-1];
if (dgap>32)
{
robR[i][j]=(1/4)*tabR[i-1][j]+(3/4)*tabR[i][j-1]+(-1/8)*tabR[i-1][j-1]+(1/8)*tabR[i+1][j-1];
}
else if (dgap>8)
{
robR[i][j]=(3/8)*tabR[i-1][j]+(5/8)*tabR[i][j-1]+(-3/16)*tabR[i-1][j-1]+(3/16)*tabR[i+1][j-1];
}
else if (dgap<(-32))
{
robR[i][j]=(3/4)*tabR[i-1][j]+(1/4)*tabR[i][j-1]+(-1/8)*tabR[i-1][j-1]+(1/8)*tabR[i+1][j-1];
}
else if (dgap<(-8))
{
robR[i][j]=(5/8)*tabR[i-1][j]+(3/8)*tabR[i][j-1]+(-3/16)*tabR[i-1][j-1]+(3/16)*tabR[i+1][j-1];
}
}
}
}
}
for (i=0; i<szer; i++) //odejmowanie macierzy predykcyjnej od oryginalnej-------> reszty predykcyjne
{
for (j=0; j<wys; j++)
{
robR[i][j] = tabR[i][j]-robR[i][j];
}
}
return **robR;
}
unsigned char kod_GBSW(unsigned char **tabR, int wys, int szer)
{
int i, j;
//==================deklaracja tablicy robR========
unsigned char **robR= new unsigned char*[wys];
for (i=0; i<wys;i++)
{
robR[i]= new unsigned char[szer];
}
//=============================================
for (i=0; i<szer; i++)
{
for (j=0; j<wys; j++)
{
if((i<2 && j<2)||(i>szer-2&&j>wys-2))
{
robR[i][j] = tabR[i][j];
}// wartość jest przepisywana
else {
int dw, dn, dnw, dne;
dw= (2*abs(tabR[i-1][j]-tabR[i-2][j])+2*abs(tabR[i][j-1]-tabR[i-1][j-1])+ 2*abs(tabR[i-1][j-1]-tabR[i-2][j-1])+2*abs(tabR[i][j-1]-tabR[i+1][j-1])+abs(tabR[i][j-2]-tabR[i-1][j-2])+abs(tabR[i][j-2]-tabR[i+1][j-2]))/10;
dn= (2*abs(tabR[i][j-2]-tabR[i][j-1])+2*abs(tabR[i-1][j]-tabR[i-1][j-1])+2*abs(tabR[i-1][j-1]-tabR[i-1][j-2])+2*abs(tabR[i+1][j-1]-tabR[i+1][j-2])+abs(tabR[i-2][j]-tabR[i-2][j-1])+abs(tabR[i-2][j-1]-tabR[i-2][j-2]))/10;
dnw= (2*abs(tabR[i-1][j]-tabR[i-2][j-1])+2*abs(tabR[i][j-1]-tabR[i-1][j-2])+abs(tabR[i-1][j-1]-tabR[i-2][j-2])+abs(tabR[i+1][j-1]-tabR[i][j-2]))/6;
dne= (2*abs(tabR[i-2][j]-tabR[i-1][j-1])+2*abs(tabR[i][j-1]-tabR[i+1][j-2])+abs(tabR[i-1][j]-tabR[i][j-1])+abs(tabR[i-1][j-1]-tabR[i][j-2]))/6;
int tab[]={dw,dn,dnw,dne};
//dwa najmniejsze gradienty
if (dw<=dn && dw<=dnw && dw<=dne)
{
if (dn<=dnw && dn<=dne)
{robR[i][j]=(dn*tabR[i-1][j]+dw*tabR[i][j-1])/(dn+dw);}
else if (dnw<=dn && dnw<=dne)
{robR[i][j]=(dnw*tabR[i+1][j-1]+dw*tabR[i][j-1])/(dnw+dw);}
else
{robR[i][j]=(dne*tabR[i-1][j-1]+dw*tabR[i][j-1])/(dne+dw);}
}
else if (dn<=dw && dn<=dnw && dn<=dne)
{
if (dw<=dnw && dw<=dne)
{robR[i][j]=(dn*tabR[i-1][j]+dw*tabR[i][j-1])/(dn+dw);}
else if (dnw<=dn && dnw<=dne)
{robR[i][j]=(dnw*tabR[i+1][j-1]+dn*tabR[i-1][j])/(dnw+dn);}
else
{robR[i][j]=(dne*tabR[i-1][j-1]+dn*tabR[i-1][j])/(dne+dn);}
}
else if (dnw<=dn && dnw<=dw && dnw<=dne)
{
if (dw<=dn && dw<=dne)
{robR[i][j]=(dw*tabR[i][j-1]+dnw*tabR[i+1][j-1])/(dw+dnw);}
else if (dn<=dw && dn<=dne)
{robR[i][j]=(dn*tabR[i-1][j]+dnw*tabR[i+1][j-1])/(dn+dnw);}
else
{robR[i][j]=(dne*tabR[i-1][j-1]+dnw*tabR[i+1][j-1])/(dne+dnw);}
}
else if (dne<=dn && dne<=dw && dne<=dnw)
{
if (dw<=dn && dw<=dnw)
{robR[i][j]=(dw*tabR[i][j-1]+dne*tabR[i-1][j-1])/(dw+dne);}
else if (dn<=dw && dn<=dnw)
{robR[i][j]=(dn*tabR[i-1][j]+dne*tabR[i-1][j-1])/(dn+dne);}
else
{robR[i][j]=(dnw*tabR[i+1][j-1]+dne*tabR[i-1][j-1])/(dnw+dne);}
}
}
}
}
for (i=0; i<szer; i++) //odejmowanie macierzy predykcyjnej od oryginalnej-------> reszty predykcyjne
{
for (j=0; j<wys; j++)
{
robR[i][j] = tabR[i][j]-robR[i][j];
}
}
return **robR;
}
unsigned char kod_FLBP(unsigned char **tabR, int wys, int szer)
{
int i, j;
//==================deklaracja tablicy robR========
unsigned char **robR= new unsigned char*[wys];
for (i=0; i<wys;i++)
{
robR[i]= new unsigned char[szer];
}
//=============================================
for (i=0; i<szer; i++)
{
for (j=0; j<wys; j++)
{
if((i<2 && j<2)||(i>szer-2&&j>wys-2))
{
robR[i][j] = tabR[i][j];
}// wartość jest przepisywana
else {
int d90, d0, d45, d135, p0, p90, p45, p135;
d90=abs((tabR[i-2][j]+tabR[i-2][j-1]+tabR[i-2][j-2]-tabR[i-1][j]-tabR[i-1][j-1]-tabR[i-1][j-2])/3)+abs((tabR[i-1][j]+tabR[i-1][j-1]+tabR[i-1][j-2])/3-(tabR[i][j-1]+tabR[i][j-2])/2);
d0=abs((tabR[i][j-2]+tabR[i-1][j-2]+tabR[i-2][j-2]-tabR[i][j-1]-tabR[i-1][j-1]-tabR[i-2][j-1])/3)+abs((tabR[i][j-1]+tabR[i-1][j-1]+tabR[i-2][j-1])/3-(tabR[i-1][j]+tabR[i][j-1])/2);
d45=abs((tabR[i-2][j-1]+tabR[i-1][j-2])/2-(tabR[i-1][j-1]+tabR[i-2][j]+tabR[i][j-2])/3)+abs((tabR[i-1][j-1]+tabR[i-2][j]+tabR[i][j-2])/3-(tabR[i-1][j]+tabR[i][j-1])/2);
d135=abs((tabR[i][j-1]+tabR[i-1][j-2]-tabR[i-1][j-1]-tabR[i-2][j-2])/2)+abs((tabR[i-1][j-1]+tabR[i-2][j-2]-tabR[i-1][j]-tabR[i-2][j-1])/2);
p0=(145/100)*tabR[i-1][j]-(45/100)*tabR[i-2][j];
p90=(145/100)*tabR[i][j-1]+(45/100)*tabR[i][j-2];
p45=(11/10)*tabR[i+1][j-1]+(1/10)*tabR[i+2][j-2];
p135=(11/10)*tabR[i-1][j-1]+(1/10)*tabR[i-2][j-2];
robR[i][j]=(d0*d0*d0*d0*p0+d90*d90*d90*d90*p90+d45*d45*d45*d45*p45+d135*d135*d135*d135*p135)/(d0*d0*d0*d0+d90*d90*d90*d90+d45*d45*d45*d45+d135*d135*d135*d135);
}
}
}
for (i=0; i<szer; i++) //odejmowanie macierzy predykcyjnej od oryginalnej-------> reszty predykcyjne
{
for (j=0; j<wys; j++)
{
robR[i][j] = tabR[i][j]-robR[i][j];
}
}
return **robR;
}
unsigned char znak(unsigned char **tabR, int wys, int szer)
{
int i, j;
//==================deklaracja tablicyB========
unsigned char **R= new unsigned char*[wys];
for (i=0; i<wys;i++)
{
R[i]= new unsigned char[szer];
}
//=============================================
for (i=0; i<szer; i++)
{
for (j=0; j<wys; j++)
{
if (tabR[i][j]>0)
R[i][j] = 1;
else
R[i][j] = 0;//=========================================pomysl
}
}
return **R;
}
unsigned char roznica_bezwzgledna(unsigned char **tabR, int wys, int szer)
{
int i, j;
//==================deklaracja tablicyB========
unsigned char **R= new unsigned char*[wys];
for (i=0; i<wys;i++)
{
R[i]= new unsigned char[szer];
}
//=============================================
for (i=0; i<szer; i++)
{
for (j=0; j<wys; j++)
{
R[i][j] = abs(tabR[i][j]);
}
}
return **R;
}
float entropia( unsigned char **tabR, int wys, int szer)
{
int i,j,M,N;
float entropia;
float r[256];
unsigned char wartosc;
M=szer;
N=wys;
entropia=0;
for (i=0; i<256; i++)//liczniki wystapien
{
r[i] = 0;
}
for (j=0; j<M; j++)
{
for (i=0; i<N; i++)
{
wartosc = tabR[i][j];
r[wartosc]++;
}
}
for (i=0; i<256; i++)// pstwo
{
r[i]=(r[i]/(M*N));
}
for (i=0; i<256; i++)//OBLICZNIE ENTROPI
{
if (r[i]>0)
entropia+= r[i]*( log10(r[i])/log10(2) );
if (r[i]==0)
entropia+=0;
}
return (entropia*(-1));
}
main(){
int szerokosc, wysokosc;
FILE * plik;
long lSize;
//----------------OBRAZEK-------------------------
plik = fopen ( "a.bmp" , "rb" );
if (plik==NULL) {fputs ("File error",stderr); exit (1);}
fseek (plik , 18 , SEEK_SET);
fread (&szerokosc, sizeof (szerokosc),1 , plik);
cout<<"Szerokosc: "<<szerokosc<< endl;
fseek (plik , 22 , SEEK_SET);
fread (&wysokosc, sizeof (wysokosc),1 , plik);
cout<<"Wysokosc: "<<wysokosc<< endl;
//========================================
unsigned char **tabR= new unsigned char*[wysokosc];
unsigned char **tabG= new unsigned char*[wysokosc];
unsigned char **tabB= new unsigned char*[wysokosc];
for (int i=0;i<wysokosc;i++)
{
tabR[i]=new unsigned char[szerokosc];
tabG[i]=new unsigned char[szerokosc];
tabB[i]=new unsigned char[szerokosc];
}
//==================================
unsigned char naglowek [54];
lSize = ftell (plik);
rewind (plik);
fread(naglowek,1,54,plik);
fseek (plik, 54, SEEK_SET);
int i, j;
for (i=0; i < szerokosc; i++)
{
for (j=0; j < wysokosc; j++)
{
fread (&tabB[i][j],1,1,plik);
fread (&tabG[i][j],1,1,plik);
fread (&tabR[i][j],1,1,plik);
}
}
fclose(plik);
//----------------KONIEC CZYTANIA Z OBRAZKA--------------------------
kod_MAP(tabR, wysokosc, szerokosc);
cout<<"policzono entropie: "<<entropia(tabR, wysokosc, szerokosc)<<endl;
cout<<"policzono entropie: "<<entropia(tabG, wysokosc, szerokosc)<<endl;
cout<<"policzono entropie: "<<entropia(tabB, wysokosc, szerokosc)<<endl;
system("PAUSE");
}
problem jest z funkcją kod_MAP
- Rejestracja: dni
- Ostatnio: dni
- Postów: 4883
musiałem to napisać
POWODZENIA! :D
robR[i][j]=(d0*d0*d0*d0*p0+d90*d90*d90*d90*p90+d45*d45*d45*d45*p45+d135*d135*d135*d135*p135)/(d0*d0*d0*d0+d90*d90*d90*d90+d45*d45*d45*d45+d135*d135*d135*d135);
}
sama ta linijka mowi za siebie.
Użyj debuggera, bo zapewne nikt nie będzie wiedział co się tam dzieje (tylko autor tego może to zrozumieć, i to przez kilka dni)
jeżeli chcesz od nas pomocy. Napisz to dla człowieka, tak by się dało to czytać.
- Rejestracja: dni
- Ostatnio: dni
Nie jestem pewna czy dobrze Cie zrozumiałam fasadin, napiszę co dokładnie funkcja ma robić może to coś ułatwi (wklejony przez Ciebie fragment jest z innej funcji, to nie z nią mam problem... jeszcze:P fakt jest dość hmm złożony i nieładnie napisany że tak to ujmę, ale proszę o wyrozumiaość- jestem początkującym programistą, baaardzo początkującym i nie nazwałabym się programistą;)). Cały program ma wczytywać składowe RGB z obrazu do tablic dwuwymiarowych, następnie dla każdego elementu obliczana ma być wartość na podstawie elementów sąsiadujących (są to metody predykcyjne ale to w sumie nie jest w tym momencie istotne). Raz jeszcze kod funkcji z dodanymi komentarzami.
unsigned char kod_MAP(unsigned char **tabR, int wys, int szer)
{
int i, j;
//==================deklaracja tablicy robR========
unsigned char **robR= new unsigned char*[wys];
for (i=0; i<wys;i++)
{
robR[i]= new unsigned char[szer];
}
//=============================================
for (i=0; i<szer; i++) //szerokość obrazka
{
for (j=0; j<wys; j++) //wysokość obrazka
{
if((i<1 && j<1)||(i>szer-1&&j>wys-1))
{
robR[i][j] = tabR[i][j];
}// wartość jest przepisywana
else {
if(max(tabR[i-1][j],tabR[i][j-1])<=tabR[i-1][i-1])//obliczanie oczekiwanej wartości elementu
{
robR[i][j]=min(tabR[i-1][j],tabR[i][j-1]);
}
else if(min(tabR[i-1][j],tabR[i][j-1])<=tabR[i-1][i-1])
{
robR[i][j]=max(tabR[i-1][j],tabR[i][j-1]);
}
else
{
robR[i][j]=tabR[i-1][j]+tabR[i][j-1]-tabR[i-1][j-1];
}
}
}
}
for (i=0; i<szer; i++) //obliczane reszty predykcyjne: od rzeczywistej wartości odejmowana jest wartość oczekiwana
{
for (j=0; j<wys; j++)
{
robR[i][j] = tabR[i][j]-robR[i][j];
}
}
return **robR;
}
- Rejestracja: dni
- Ostatnio: dni
- Postów: 4883
kod wygląda strasznie i nie da się go czytać. Komentarze nic nie wnoszą. Kod trzeba rozdzielać. Są w nim magiczne liczby typu -1 -2. Uwierz mi że za 2 tygodnie będziesz się głowić sama co tutaj napisałaś, bo nie będziesz mieć o tym pojęcia.
debugger to jest narzędzie gdzie możesz sprawdzić co się dzieje w Twoim programie linijka po linijce
program się wywala tutaj
if(max(tabR[i-1][j],tabR[i][j-1])<=tabR[i-1][i-1]);
dlaczego w ogole **char?
zamiast z tablicy skorzystaj z vectorów
to tak na prawdę wypada przepisać jeszcze raz. Od nowa. Zachowując estetyke kodu
- Rejestracja: dni
- Ostatnio: dni
Zostałaś ukarana za stosowanie nic nie znaczących zmiennych i,j we wszystkich twoich funkcjach masz pomieszaną wysokość i szerokość.
Wytropienie wszystkich tych miejsc dla ciebie będzie niemalże niemożliwe dopóki nie pozmieniasz nazwy na sensowne.
Zamień nazwy na:
wys -> Y
szer -> X
i -> y
j -> x
Zastosuj też zasadę DRY
fragmenty:
unsigned char **robR= new unsigned char*[wys];
for (i=0; i<wys;i++) robR[i]= new unsigned char[szer];
oraz:
for (i=0; i<szer; i++) for (j=0; j<wys; j++) robR[i][j] = tabR[i][j]-robR[i][j];
Jak najbardziej nadają się na osobne funkcje.
Tak a propos, zawiesza się nie kompilator tylko twój program.
- Rejestracja: dni
- Ostatnio: dni
Dziękuję bardzo za pomoc :) To przez błąd segmentacji program się wieszał, czas najwyższy nauczyć się korzystać z debugera:P Jeszcze raz wielkie dzięki
- Rejestracja: dni
- Ostatnio: dni
Mam jeszcze jedno pytanie, problem jest podobny: program przestaje odpowiadać, debuger wskazał na linię:
{robR[y][x]=(dn*tabR[y-1][x]+dw*tabR[y][x-1])/(dn+dw);}
udało mi się ustalić, że pętla wykonuje się parę razy (48) i przestaje działać, co może być tego przyczyną? Zamieszczę kod nieco zmodyfikowanej funkcji z mojego pierwszego posta, mam nadzieję, że tym razem będzie łatwiej rozczytać o co chodzi ;)
test::fun(unsigned char **tabR, unsigned char **robR) // argumenty funcji: dwie tablice dwuwymiarowe
{
int y, x;
//program jest napisany obiektowo, X i Y są składowymi typu int
//reprezentują odpowiednio szerokosc i wysokosc
for (y=2; y<(Y-1); y++) // tablica przeglądana od tabR[2][2] wzwyż
{
for (x=2; x<(X-1); x++)
{
if((y<2 && x<2)||(y>Y-2&&x>X-2))
{
robR[y][x] = tabR[y][x];
}
else
{
int dw, dn, dnw, dne; // zmienne reprezentujące gradienty
//poniżej obliczanie gradientów na podstawie elementów tablicy
dw= (2*abs(tabR[y-1][x]-tabR[y-2][x])+2*abs(tabR[y][x-1]
-tabR[y-1][x-1])+ 2*abs(tabR[y-1][x-1]-tabR[y-2][x-1])
+2*abs(tabR[y][x-1]-tabR[y+1][x-1])+abs(tabR[y][x-2]
-tabR[y-1][x-2])+abs(tabR[y][x-2]-tabR[y+1][x-2]))/10;
dn= (2*abs(tabR[y][x-2]-tabR[y][x-1])+2*abs(tabR[y-1][x]
-tabR[y-1][x-1])+2*abs(tabR[y-1][x-1]-tabR[y-1][x-2])
+2*abs(tabR[y+1][x-1]-tabR[y+1][x-2])+abs(tabR[y-2][x]
-tabR[y-2][x-1])+abs(tabR[y-2][x-1]-tabR[y-2][x-2]))/10;
dnw= (2*abs(tabR[y-1][x]-tabR[y-2][x-1])
+2*abs(tabR[y][x-1]-tabR[y-1][x-2])
+abs(tabR[y-1][x-1]-tabR[y-2][x-2])+abs(tabR[y+1][x-1]
-tabR[y][x-2]))/6;
dne= (2*abs(tabR[y-2][x]-tabR[y-1][x-1])
+2*abs(tabR[y][x-1]-tabR[y+1][x-2])+abs(tabR[y-1][x]
-tabR[y][x-1])+abs(tabR[y-1][x-1]-tabR[y][x-2]))/6;
//wyznaczenie dwoch najmniejszych gradientow, na ich podstawie wyznaczane sa wartosci tablicy robR
if (dw<=dn && dw<=dnw && dw<=dne)
{
if (dn<=dnw && dn<=dne)
{robR[y][x]=(dn*tabR[y-1][x]+dw*tabR[y][x-1])/(dn+dw);}// PROBLEM WYSTĘPUJE W TYM MIEJSCU
else if (dnw<=dn && dnw<=dne)
{robR[y][x]=(dnw*tabR[y+1][x-1]+dw*tabR[y][x-1])/(dnw+dw);}
else
{robR[y][x]=(dne*tabR[y-1][x-1]+dw*tabR[y][x-1])/(dne+dw);}
}
else if (dn<=dw && dn<=dnw && dn<=dne)
{
if (dw<=dnw && dw<=dne)
{robR[y][x]=(dn*tabR[y-1][x]+dw*tabR[y][x-1])/(dn+dw);}
else if (dnw<=dn && dnw<=dne)
{robR[y][x]=(dnw*tabR[y+1][x-1]+dn*tabR[y-1][x])/(dnw+dn);}
else
{robR[y][x]=(dne*tabR[y-1][x-1]+dn*tabR[y-1][x])/(dne+dn);}
}
else if (dnw<=dn && dnw<=dw && dnw<=dne)
{
if (dw<=dn && dw<=dne)
{robR[y][x]=(dw*tabR[y][x-1]+dnw*tabR[y+1][x-1])/(dw+dnw);}
else if (dn<=dw && dn<=dne)
{robR[y][x]=(dn*tabR[y-1][x]+dnw*tabR[y+1][x-1])/(dn+dnw);}
else
{robR[y][x]=(dne*tabR[y-1][x-1]+dnw*tabR[y+1][x-1])/(dne+dnw);}
}
else if (dne<=dn && dne<=dw && dne<=dnw)
{
if (dw<=dn && dw<=dnw)
{robR[y][x]=(dw*tabR[y][x-1]+dne*tabR[y-1][x-1])/(dw+dne);}
else if (dn<=dw && dn<=dnw)
{robR[y][x]=(dn*tabR[y-1][x]+dne*tabR[y-1][x-1])/(dn+dne);}
else
{robR[y][x]=(dnw*tabR[y+1][x-1]+dne*tabR[y-1][x-1])/(dnw+dne);}
}
}
}
}
return **robR;
}
- Rejestracja: dni
- Ostatnio: dni
Problem jest tu: if((y<2 && x<2)||(y>Y-2&&x>X-2))