[C++] Operowanie na tablicy

msvatoo
Użytkownik
Użytkownik
Posty: 17
Rejestracja: 2 lut 2015, o 19:52
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 12 razy

[C++] Operowanie na tablicy

Post autor: msvatoo »

nadal występuje błąd
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[C++] Operowanie na tablicy

Post autor: jarzabek89 »

Brak biblioteki
#include <iostream>
msvatoo
Użytkownik
Użytkownik
Posty: 17
Rejestracja: 2 lut 2015, o 19:52
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 12 razy

[C++] Operowanie na tablicy

Post autor: msvatoo »

Ale ja babole wale ... niech cie krew ...-- 3 lut 2015, o 19:09 --
Ukryta treść:    
Dobrze kombinuje ??? Mam problem ze zdefiniowaniem "ile"...
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[C++] Operowanie na tablicy

Post autor: jarzabek89 »

Jest dość słabo.
Przede wszystkim proponuję zrobić tak. Nie pisz od raz 3 funkcji, tylko małymi kroczkami, jedną napisz, sprawdź, czy działa, wtedy zabieraj się do następnej.

Kod: Zaznacz cały

void operacja(int * tab, int k, int &ile)
{
   for (int i=0;i<k;i++)
   {
   ile=0;
   ile+=tab[i];
   ile++;
   }
   return ile/k;
}
Pierwszy błąd:

Kod: Zaznacz cały

void operacja(int * tab, int k, int &ile)
void nam mówi, że funkcja nie będzie nam nic zwracać, Ty jednak zwracasz ile/k.

Kod: Zaznacz cały

 return ile/k;

Kod: Zaznacz cały

   ile=0;
   ile+=tab[i];
   ile++;
To ogólnie nie ma najmniejszego sensu.
Z każdym obiegiem pętli zerujesz zmienna ile
Więc to co się wykona tutaj:

Kod: Zaznacz cały

  ile+=tab[i];
   ile++;
Ma sens tylko w ostatnim obiegu pętli.
Co jednak nie ma najmniejszego związku z tym co ta funkcja ma robić.

2. Funkcja "operacja" znajduje wartość średnią elementów tablicy nie większych od k
Proponuje abyś na samym początku napisał funkcję, która obliczy średnią wszystkich elementów, nie zwracamy uwagi na nie większych od k
msvatoo
Użytkownik
Użytkownik
Posty: 17
Rejestracja: 2 lut 2015, o 19:52
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 12 razy

[C++] Operowanie na tablicy

Post autor: msvatoo »

Kod: Zaznacz cały

float operacja(float * tab, int s)
{
float ile=0;
int x;
for(x=0;x<=s-1;x++)
{
ile+=tab[x];
}
return ile/s;
}

Coś takiego ?
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[C++] Operowanie na tablicy

Post autor: jarzabek89 »

Już lepiej:

Kod: Zaznacz cały

float operacja(float * tab, int s)
dlaczego

Kod: Zaznacz cały

 float * tab
?
msvatoo
Użytkownik
Użytkownik
Posty: 17
Rejestracja: 2 lut 2015, o 19:52
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 12 razy

[C++] Operowanie na tablicy

Post autor: msvatoo »

wstawić int ?-- 4 lut 2015, o 18:34 --wstawiłem int
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[C++] Operowanie na tablicy

Post autor: jarzabek89 »

Jeśli mamy trzymać się tego, to tak:

Kod: Zaznacz cały

int tab[20];
Takie drobne poprawki:

Kod: Zaznacz cały

float ile=0;
skoro w tablicy mamy same liczby całkowite, to suma też ich jest całkowitą, ładniej będzie wyglądać moim zdaniem:

Kod: Zaznacz cały

int ile=0;
Ten zapis też jest dość brzydki:

Kod: Zaznacz cały

int x;
for(x=0;x<=s-1;x++)
lepiej będzie tak:

Kod: Zaznacz cały

for(int x=0;x<=s-1;x++)
a najładniej:

Kod: Zaznacz cały

 for(int x=0;x<s;x++)
msvatoo
Użytkownik
Użytkownik
Posty: 17
Rejestracja: 2 lut 2015, o 19:52
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 12 razy

[C++] Operowanie na tablicy

Post autor: msvatoo »

Ukryta treść:    
jak wprowadzić ten warunek nie większych od k ? zamienić s na k ?
Awatar użytkownika
Kacperdev
Użytkownik
Użytkownik
Posty: 3260
Rejestracja: 23 mar 2010, o 19:19
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 17 razy
Pomógł: 686 razy

[C++] Operowanie na tablicy

Post autor: Kacperdev »

Kod: Zaznacz cały

float operacja(int * tab, int s, int k)
{
int ile=0;
for(int x=0;x<s;x++)
{
if(tab[x]<=k) ile+=tab[x];
}
return ile/s;
}
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[C++] Operowanie na tablicy

Post autor: jarzabek89 »

Kacperdev, nie wiem czy celowo, czy nie ale zapomniałeś o jednej rzeczy. Trzeba jeszcze policzyć ile tych liczb jest.
Awatar użytkownika
Kacperdev
Użytkownik
Użytkownik
Posty: 3260
Rejestracja: 23 mar 2010, o 19:19
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 17 razy
Pomógł: 686 razy

[C++] Operowanie na tablicy

Post autor: Kacperdev »

Kod: Zaznacz cały

float operacja(int * tab, int s, int k)
{
int t=0, ile=0;
for(int x=0;x<s;x++)
{
if(tab[x]<=k)
{
   ile+=tab[x];
   ++t;
}
return ile/t;
}
zapomniałem
msvatoo
Użytkownik
Użytkownik
Posty: 17
Rejestracja: 2 lut 2015, o 19:52
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 12 razy

[C++] Operowanie na tablicy

Post autor: msvatoo »

jak mam w main określić tą stałą ? obojętnie jaką liczbą ?
Awatar użytkownika
Kacperdev
Użytkownik
Użytkownik
Posty: 3260
Rejestracja: 23 mar 2010, o 19:19
Płeć: Mężczyzna
Lokalizacja: Bydgoszcz
Podziękował: 17 razy
Pomógł: 686 razy

[C++] Operowanie na tablicy

Post autor: Kacperdev »

Nie jest podane w poleceniu, więc możesz np. prosić użytkownika aby sam podał wartość \(\displaystyle{ k}\).
msvatoo
Użytkownik
Użytkownik
Posty: 17
Rejestracja: 2 lut 2015, o 19:52
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 12 razy

[C++] Operowanie na tablicy

Post autor: msvatoo »

a jakbym chciał z tego zrobić tablice dwuwymiarową ? albo [5][4] ?
ODPOWIEDZ