Mój program analizuje dane według funkcji podanych przez użytkownika przykład:
F0 - Kurs
F1 - Funkcja ( F2 )
F2 - if coś tam > 10
Chodzi o to że F1 aby się wykonało potrzebuje wartości F2 i tu zaczyna się problem jak to dobrze policzyć do tej pory liczyłem to tak ( Przykład )
Czyli dla każdego wykresy ( funkcji ) liczyłem cały zakres danych
KOD cpp: UKRYJ
for(int w = 0; w < Wykresy.size(); ++w) {
wyk = Wykresy[w];
if(wyk.TypFunkcji == tfwKurs) {
for(int t = 0; t < DaneKursow.size(); ++t) {
DanePrzeliczone[t].WartosciTikow[wyk.Adres] = DaneKursow[t].WartosciTikow[wyk.ParametryFunkcji[0].Wartosc];
}
} else if(wyk.TypFunkcji == tfwConst) {
for(int t = 0; t < DaneKursow.size(); ++t) {
DanePrzeliczone[t].WartosciTikow[wyk.Adres] = wyk.ParametryFunkcji[0].Wartosc;
}
}
}
wyk = Wykresy[w];
if(wyk.TypFunkcji == tfwKurs) {
for(int t = 0; t < DaneKursow.size(); ++t) {
DanePrzeliczone[t].WartosciTikow[wyk.Adres] = DaneKursow[t].WartosciTikow[wyk.ParametryFunkcji[0].Wartosc];
}
} else if(wyk.TypFunkcji == tfwConst) {
for(int t = 0; t < DaneKursow.size(); ++t) {
DanePrzeliczone[t].WartosciTikow[wyk.Adres] = wyk.ParametryFunkcji[0].Wartosc;
}
}
}
Jest jednak problem - takie liczenie nie sprawdzi się w przypadku przykładu który podałem:
F0 - Kurs
F1 - Funkcja ( F2 )
F2 - if coś tam > 10
F1 wykona się dobrze dopiero wtedy gdy będzie miała wartośc F2 - czyli muszę to liczyć tak:
KOD cpp: UKRYJ
for(int t = 0; t < DaneKursow.size(); ++t) {
for(int w = 0; w < Wykresy.size(); ++w) {
wyk = Wykresy[w];
if(wyk.TypFunkcji == tfwKurs) {
DanePrzeliczone[t].WartosciTikow[wyk.Adres] = DaneKursow[t].WartosciTikow[wyk.ParametryFunkcji[0].Wartosc];
} else if(wyk.TypFunkcji == tfwConst) {
DanePrzeliczone[t].WartosciTikow[wyk.Adres] = wyk.ParametryFunkcji[0].Wartosc;
}
}
}
for(int w = 0; w < Wykresy.size(); ++w) {
wyk = Wykresy[w];
if(wyk.TypFunkcji == tfwKurs) {
DanePrzeliczone[t].WartosciTikow[wyk.Adres] = DaneKursow[t].WartosciTikow[wyk.ParametryFunkcji[0].Wartosc];
} else if(wyk.TypFunkcji == tfwConst) {
DanePrzeliczone[t].WartosciTikow[wyk.Adres] = wyk.ParametryFunkcji[0].Wartosc;
}
}
}
Dla każdej danej liczyć wartości funkcji ( kod wyżej ) a do tego wpierw przeliczyć wartość dla t = 0 i kolejne wartości t>0 robić jako t-1 ( aby mieć już dane ) :
t = 0;
przeliczenie i ustawienie pierwszej wartości funkcji t = 1
zmieniam na t = 0 t = 2
zmieniam na t = 1t = 3
zmieniam na t = 2itp. Dzięki temu zachowam warunek: F1 - Funkcja ( F2 )
Problem tylko jest taki, że przy takim zapisie czas liczenia wydłuża się razy 10 :/
Jeżeli ktoś rozumie mój problem i może coś doradzić to chętnie poczytam bo wymiękam już z tym problemem






