Macierze i podfunkcje - trudne zadanie.

0

Witam! :)

Mam do zrobienia owo zadanko, problemy które mi stwarza napiszę zaraz, a na razie jego tresc:

Dane są macierz A(mxn) oraz B(mxn) , gdzie m i n są zadawane przez uzytkownika z klawiatury w funkcji głównej.

Napisac funkcje służące do:

a) wczytania macierzy
b) wypisania macierzy
c) obliczania iloczynu skalarnego dwóch wektorów macierzy
d) szukania wartosci maksymalnej w wektorze
e) wypisz wektor

Z wykorzystaniem tych funkcji wczytac i wypisac macierz A i B oraz obliczyc:

a) iloczyn skalarny pierwszego wiersza macierzy A i ostatniego wiersza macierzy B
b) iloczyn skalarny pierwszej kolumny macierzy A i ostatniej kolumny macierzy B
c) sumę ostatniego wiersza macierzy A i pierwsze wiersza macierzy B
d) sumę pierwszej kolumny macierzy A i ostatniej kolumny macierzy B
e) znalezc wartosc maksymalna w pierwszym wierszu oraz ostatniej kolumnie macierzy A
f) utworzyc wektor wartosci maksymalnych z poszczegolnych wierszy macierzy A. Wypisac ten wektor.
g) Utworzyc wektor wartosci maksymalnych z poszczegolnych kolumn macierzy B. Wypisac ten wektor.

Problem pojawia sie juz w stworzeniu funkcji. Udalo mi sie stworzyc funkcje do wczytania i wypisania macierzy A oraz B. Natomiast stworzyc funkcje do obliczania iloczynu skalarnego dwoch wektorow w macierzach czy szukania wartosci maksymalnej w wektorze jest juz bardzo problemowe , poniewaz:

potrafie napisac programik ktory znajduje wartosc minimalna badz maksymalna w wierszu badz w kolumnie macierzy. Ale i dla wierszy i dla macierzy robi sie to troche inaczej. Natomiast podprogram uniwersalny ktory obsluguje te 2 przypadki wydaje mi sie bardzo trudny do zrobienia.

potrafie rowniez napisac programik do iloczynu skalarnego dwoch wektorow. Ale inaczej znowu jest w przypadku dwoch kolumn a inaczej w przypadku dwoch wierszy. A program uniwersalny? No nic nie moge wymyslec.

Jezeli ktos ma jakis pomysl, chcialby pomoc, prosze pisac. Mam tydzien na wykonanie tego programu. Do tej pory robilem programy od reki, teraz ciezszy temat sie zaczal i sie gubie.

na razie udalo mi sie stworzyc funkcje do wczytywania i wypisywania macierzy i odniesienia sie do nich w funkcji glownej. I to tyle.

Jezeli ktos pokazalby mi podfunkcje np. do iloczynu to analogicznie bede potrafil zrobic podfunkcje do sumy. A byc moze i do wartosci min i max.

Prosze o pomoc i z gory dziekuje.

Pozdrawiam! :)

#include <iostream>
using namespace std;
 
void wczytaj_macierz (int m, int n, float macierz[][100], char nazwa)
{
        cout << "Macierz " << nazwa << endl;
        int i,j;
        for(i=0;i<m;i++)
        for(j=0;j<n;j++)
        {
                cout << "Podaj element [" <<i+1 <<"]["<<j+1<<"]:" << endl;
                cin >> macierz[i][j];
        }
 		cout << endl << endl;
}
 
void wypisz_macierz (int m,int n, float macierz[][100],char nazwa)
{
        int i,j;
        cout << "Macierz " << nazwa << " ma postac:" << endl;
        for(i=0;i<m;i++)
        {for(j=0;j<n;j++)
                cout << macierz[i][j] << "   ";
                cout << endl;
        }
 
        cout << endl << endl;
}
 
int main()
{
        int m,n;
        const int mmax = 100; const int nmax = 100;
        float A[mmax][nmax]; float B[mmax][nmax];
 
        cout << "Witaj w programie!" << endl << endl;
 
        cout << "Podaj ilosc wierszy macierzy A oraz macierzy B (m<="<<mmax<<"):"<<endl;
        cin >> m;
 
        cout << "Podaj ilosc kolumn macierzy A oraz macierzy B (n<="<<nmax<<"):"<<endl;
        cin >> n;
 
        if(m>0 && n>0 && m<=mmax && n<=nmax)
        {
 
                wczytaj_macierz (m,n,A,'A');
                wczytaj_macierz (m,n,B,'B');
                wypisz_macierz (m,n,A,'A');
                wypisz_macierz (m,n,B,'B');
        }
 
        else
        cout << "Podano zly rozmiar macierzy" << endl;
 
        return 0;
}
 
0

funkcja WierszKolumna(float macierz[][100],int y,int x,bool wiersz) { return wiersz?macierz[y][x]:macierz[x][y]; }

for(int i=0;i<m;++i) cout<<WierszKolumna(macierz,0,i,true)<<' '; // zerowy wiersz
cout<<endl;
for(int i=0;i<n;++i) cout<<WierszKolumna(macierz,0,i,false)<<' '; // zerowa kolumna
cout<<endl;

0

super :)

tylko tak, po liscie parametrow co jest w nawiasie {} - bo nie rozumiem :(
2. ktora to jest z tych funkcji co potrzebuje, w sensie co robi? Bo nie jest to chyba ani iloczyn ani suma

0

Ad1. Zwraca
Ad2. Podałem tylko jedną funkcje.

0

kurcze, jakbys mogl mi jeszcze prosciej wytlumaczyc dzialanie tego co napisales, bo serio nie lapie :(

0

Wlasnie nie oczekuje gotowca, tylko ze jestem laikiem. I to naprawde nie wydaje sie proste. Wam tak bo ogarniacie temat, ja sie dopiero ucze. Prosze mnie tylko naprowadzic :) dragon napisales mi kawalek programu , natomiast ja patrzac na niego, niewiem nawet co ma byc do czego w nim.

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