Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Normalizacja liczb

Ostatnio zmodyfikowano 2012-11-03 19:33
Autor Wiadomość
SeaMonster131
» 2012-11-03 16:18:44
P-68347
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
C/C++
#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;
}
P-68348
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?
P-68359
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 ) ?
P-68372
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
P-68374
blogther
Temat założony przez niniejszego użytkownika
» 2012-11-03 19:16:48
jak zmieniłem kod i napisałem tak
C/C++
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]
P-68375
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)
P-68377
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]
P-68378
1 « 2 » 3
Poprzednia strona Strona 2 z 3 Następna strona