[C++] Normalizacja liczb
Ostatnio zmodyfikowano 2012-11-03 19:33
SeaMonster131 |
» 2012-11-03 16:18:44 |
|
blogther Temat założony przez niniejszego użytkownika |
» 2012-11-03 16:22:07 okey teraz program uruchamia sie i moge wprowadzic liczby oraz podaje mi wartosc max i min ale nie wykonuje tej normalizaci co jest nie tak
#include <cstdlib> #include <iostream> #include <math.h>
using namespace std;
int main( int argc, char * argv[] ) { int i, n; int tab[ 1000 ], max, min; cout << "Podaj ilosc liczb ciagu, a nastepnie program dokona normalizacji wprowadzonych \nliczb do przedzialu [0;1]." << endl; cout << "Podaj ilosc liczb ciagu: "; cin >> n; for( int i = 0; i < n; i++ ) { cout << "Liczba nr " << i + 1 << ": "; cin >> tab[ i ]; } max = tab[ 0 ]; min = tab[ 0 ]; for( int i = 0; i < n; i++ ) { if( tab[ i ] > max ) { max = tab[ i ]; } if( tab[ i ] < min ) { min = tab[ i ]; } } cout << "Maksymalna wartosc ciagu wynosi: " << max << endl; cout << "Minimalna wartosc ciagu wynosi: " << min << endl; cout << "\nProgram dokonuje normalizacji podanych liczb do przedzialu [0;1]." << endl; cout << "Liczby po normalizaji:" << endl; for( int j = 0; j < n; j++ ) { cout << "Liczba nr " << j + 1 << ": " << tab[ j ] - min /( max - min ) << endl; } system( "PAUSE" ); return EXIT_SUCCESS; }
|
|
blogther Temat założony przez niniejszego użytkownika |
» 2012-11-03 17:57:32 jakis bład jest w tej ostatniej petli ale ja nie umiem go wyeliminowac czy ktos moze mi pomoc? |
|
crash |
» 2012-11-03 19:01:04 Dzielisz int przez int, nie dostaniesz więc float czy double. Druga sprawa, a właściwie pierwsza: obczaj new i delete bo tak czy owak kiedyś będziesz musiał, jeśli oczywiście chcesz pisać w C++.
Jesteś pewny co do algorytmu normalizacji: tab[ j ] - min /( max-min ) ? |
|
blogther Temat założony przez niniejszego użytkownika |
» 2012-11-03 19:11:37 ale mozna to zadanie zrobic bez tego new i delete?
czy mozesz jakos mi pomoc bo juz od dłuzszego czasu sie nad tym zastanawam i nic nie umiem wymyslic jak to zadanie skonczyc |
|
blogther Temat założony przez niniejszego użytkownika |
» 2012-11-03 19:16:48 jak zmieniłem kod i napisałem tak
float i, n; float tab[ 1000 ], max, min;
to po normalizacji otrzymałem liczby dziesietne ale nie nalezały one do przedziału [0,1] |
|
blogther Temat założony przez niniejszego użytkownika |
» 2012-11-03 19:24:04 chyba tak
mam w w zadaniu napisany taki wzor xi = xi - min/ (max - min) |
|
blogther Temat założony przez niniejszego użytkownika |
» 2012-11-03 19:25:48 ale po wprowadzeniu zmian czyli
int roznica;
roznica = max - min
(tab-min)/(roznica)
wszystkie wyniki naleza do przedziału [0,1] |
|
1 « 2 » 3 |