Wątek przeniesiony 2018-03-01 12:34 z C/C++ przez kq.

Pytanie do zadania tablice

0

Cześć mam pytanie :)

chciałbym zrobić program właściwie mam już sporą część...
Mianowicie program w którym "zdefiniowane są 2 dynamiczne tablice dwuwymiarowe i wykonać działanie dodawania macierzy które są zapisane w tych tablicach"
mam, funkcje do tworzenia tabeli, generowania wartości i wypisania wartości.
zrobiłem osobną funkcję z dodawaniem ale coś mi nie wyszło więc teraz pytanie do was...
jak to powinno wyglądać...powinienem zrobić nowa funkcje i w niej zrobić nowa dynamiczna tablice która przypisuje wynik dodawania dla miejsc w swojej pamięci? nie bardzo rozumiem jak się do tego zabrac, niestety jadę pociągiem i nie mam jak pokazać kodu :(

0

nie mam kodu na telefonie*

0

Przede wszystkim: jaki język?

Z dodawania macierzy oczekiwałbym jako wyniku nowej macierzy.

0

c++

0
Szalony Szczur napisał(a):

c++

#include <iostream>
#include<ctime>
using namespace std;
void pobierz_rozmiary(int&n, int &m) {
	cout << "\podaj liczbe wierszy: "; cin >> n;
	cout << "\npodaj liczbe kolumn: "; cin >> m;
}
float ** tworz_tablice(int n, int m) { // tablcia o rozmiarze n elem sa wsakzanikami

	float ** t = new float*[n]; // utworsenie n tablic kazda ma rozmiar m
	for (int i = 0; i < n; i++) // zawierana te dane
		t[i] = new float[m];
	return t;
}


void generuj_wartosci(float**t, int n, int m) {
	srand(unsigned(time(0)));
	for (int i = 0; i < n; i++)
		for (int j = 0; j < m; j++)
			t[i][j] = 0;

}

void dodawanie(float**t, int&n, int&m) {
	int i, j;
	for (i = 0; i < n; ++i)
		for (j = 0; j < m; ++j)
			t[i][j] + t[i][j];
	cout << endl << "suma " << endl;
	for (i = 0; i < n; ++i)
		for (j = 0; j < m; ++j)
		{
			cout << (t[i][j] + t[i][j]) << "  ";

			cout << endl;
		}


}
int main() {

	int lb_wier, lb_kol;
	pobierz_rozmiary(lb_wier, lb_kol);
	float** tab = tworz_tablice(lb_wier, lb_kol);

	generuj_wartosci(tab, lb_wier, lb_kol);

	dodawanie(tab, lb_wier, lb_kol);




	system("pause");
}
0

Co ci początkujący mają z tym odczasownikowym nazywaniem funkcji? Jak masz tworz i pobierz, to zamiast dodawanie zrób dodaj.

Przydatna lektura:
https://dsp.krzaq.cc/post/176/ucze-sie-cxx-kiedy-uzywac-new-i-delete/
https://dsp.krzaq.cc/post/98/prosty-widok-na-macierz-2d-w-cpp/
https://dsp.krzaq.cc/post/180/nie-uzywaj-rand-cxx-ma-random/

W funkcji dodawanie dodajesz macierz samą do siebie, a potem wyświetlasz jej sumę samą ze sobą (czyli czterokrotność oryginału). Żeby sumować macierze (liczba mnoga), musisz podać do funkcji więcej niż jedną macierz. I tak jak napisałem, czytelniej by było, gdybyś zwracał nową macierz, zamiast modyfikować istniejącą.

Przy okazji, funkcja dodająca nie powinna nic wypisywać na ekran, nie takie jej zadanie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1