Mnożenie i dzielenie tablicy przez siebie.
Ostatnio zmodyfikowano 2014-09-01 22:24
SquBany Temat założony przez niniejszego użytkownika |
Mnożenie i dzielenie tablicy przez siebie. » 2014-09-01 16:03:21 Próbuje ulepszyć swój kalkulator o możliwość wybrania ilości liczb do policzenia. Sprawe dodawania i odejmowania załatawiłem. Teraz tylko mnożenie i dzielenie. Do dzielenia nie podchodziłem ale mnożenie sprawia mi problemy. Jak to zrobić by komputer wykonał obliczenie: 10*5*5 czy 10*5*3*7 itd. Jeśli chodzi o funkcje podawania liczb, dodawania i odejmowania to wygląda to tak: #include <iostream> using namespace std;
void podawanie( float t[], int ile ) { t[ ile ]; for( int i = 0; i < ile; i++ ) { cout << endl << "Podaj " << i + 1 << " liczbe: "; cin >> t[ i ]; } }
double dodawanie() { cout << "Ile liczb chcesz podac: "; int ile; cin >> ile; float tablica[ ile ]; podawanie( tablica, ile ); double wynik = 0; for( int i = 0; i <= ile; i++ ) wynik = wynik + tablica[ i ]; cout << "Wynik dodawania to: " << wynik; }
double odejmowanie() { cout << "Ile liczb chcesz podac: "; int ile; cin >> ile; float tablica[ ile ]; podawanie( tablica, ile ); double wynik = tablica[ 0 ]; for( int i = 1; i <= ile; i++ ) wynik = wynik - tablica[ i ]; cout << "Wynik odejmowania to: " << wynik; }
Wszystko to działa bez zarzutów. Teraz jak to wykonać ale pod mnożenie i dzielenie ? Robiłem double wynik = 0; for( int i = 0; i <= ile; i++ ) wynik = tablica[ i ] * wynik[ i + 1 ];
double wynik = 0; for( int i = 0; i <= ile; i++ ) { int a = 1; wynik = tablica[ i ] * wynik[ i + 1 ]; a++; }
double wynik = 0; int i = 0; int a = i + 1 for( i <= ile; i++; a++ ) wynik = tablica[ i ] * wynik[ a ];
To albo nie chciało kompilować albo wynik wynosił przy 2*2 1.0089-043. |
|
pekfos |
» 2014-09-01 16:18:08 Teraz jak to wykonać ale pod mnożenie i dzielenie ? |
Tak samo jak wcześniej..? Nie możesz tak zrobić. Ani tak. |
|
SquBany Temat założony przez niniejszego użytkownika |
» 2014-09-01 16:28:30 Nie rozumiem. Wytłumacz mi swoją myśl ;) |
|
pekfos |
» 2014-09-01 16:40:52 Każdy z podanych kodów jest niepoprawny. Wychodzisz poza tablice, niepoprawnie je tworzysz, a ostatni kod to tak niewyobrażalne bzdury, że nie ma sensu tego bardziej komentować. |
|
michal11 |
» 2014-09-01 16:41:22 double dodawanie( double tab[], int size );
int main() { double tablica[ 5 ]; int ile = 5; cout << dodawanie( tablica, 3 ); }
Tak tak to powinno wyglądać. Znowu robisz ten sam błąd, w funkcjach robisz za dużo rzeczy. Jeżeli funkcja nazywa się dodawanie to ma tylko dodawać. Analogicznie z każdym innym działaniem. Jeżeli nie wiesz ile elementów tablicy chcesz wczytać to musisz skorzystać z dynamicznej alokacji. |
|
SquBany Temat założony przez niniejszego użytkownika |
» 2014-09-01 21:58:21 Niestety... Nie wiem co to dynamiczna alokacja. Pisałem już że dopiero zaczynam ? Moje umiejętności nie sięgają tak daleko. |
|
pekfos |
» 2014-09-01 22:02:49 Tablica musi mieć rozmiar stały, znany w czasie kompilacji. Prawidłowe zrobienie tego, co próbowałeś zrobić faktycznie wykracza poza twoje umiejętności, więc powinieneś się na razie ograniczyć do jednego, odpowiednio dużego rozmiaru (tysiąc? dwa?) i wyrzucić błąd, jeśli użytkownik zechce podać więcej liczb. for( int i = 0; i <= ile; i++ ) wynik = wynik + tablica[ i ];
|
Wychodzisz poza tablicę, powinno być <. A do mnożenia, wystarczy zmienić operator. |
|
SquBany Temat założony przez niniejszego użytkownika |
» 2014-09-01 22:14:40 Tylko jak to zrobić. Mam zmienić operator co dużo mi nie podpowiada. Mi trzeba dosadnie. Podać rozwiązanie a potem tylko wytłumaczyć czemu tak i co źle (to już napisałeś) robiłem. Potem tylko utrwalić sobie muszę to. |
|
« 1 » 2 |