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

Mnożenie i dzielenie tablicy przez siebie.

Ostatnio zmodyfikowano 2014-09-01 22:24
Autor Wiadomość
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:
C/C++
#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
C/C++
double wynik = 0;
for( int i = 0; i <= ile; i++ )
     wynik = tablica[ i ] * wynik[ i + 1 ];

C/C++
double wynik = 0;
for( int i = 0; i <= ile; i++ )
{
    int a = 1;
    wynik = tablica[ i ] * wynik[ i + 1 ];
    a++;
}
C/C++
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.
P-116495
pekfos
» 2014-09-01 16:18:08
Teraz jak to wykonać ale pod mnożenie i dzielenie ?
Tak samo jak wcześniej..?

C/C++
t[ ile ];
Nie możesz tak zrobić.

C/C++
float tablica[ ile ];
Ani tak.
P-116496
SquBany
Temat założony przez niniejszego użytkownika
» 2014-09-01 16:28:30
Nie rozumiem. Wytłumacz mi swoją myśl ;)
P-116499
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ć.
P-116500
michal11
» 2014-09-01 16:41:22
C/C++
double dodawanie( double tab[], int size );

int main()
{
    double tablica[ 5 ];
    int ile = 5;
   
    cout << dodawanie( tablica, 3 ); //doda do siebie 3 liczby z tablicy
}

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.
P-116501
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.
P-116532
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.

C/C++
for( int i = 0; i <= ile; i++ )
     wynik = wynik + tablica[ i ];

Wychodzisz poza tablicę, powinno być <. A do mnożenia, wystarczy zmienić operator.
P-116534
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.
P-116537
« 1 » 2
  Strona 1 z 2 Następna strona