Witam wszystkich, to mój pierwszy post więc od razu chciałbym przeprosić jeśli złamię jakiś regulamin forum i prosze o wyrozumialość.Dopiero od 2 tygodni zacząłem wogóle programować więc jestem na poziomie BAAARRDZO średnim. A więc mój problem wygląda nasępująco.Napisalem program za pomocą funkcji w dev-c++, który operuje na macierzach , a mianowicie dodaje je i odejmuje, pracuje na 4 funkcjach:
-wypelnij_tablice wpisuje dane
-wydruk wypisuje komórki macierzy na ekran
-dodaje
-odejmuje
#include <iostream.h>
#include <stdlib.h>
int wypelnij_tablice(int tab[100][100],unsigned lw,unsigned lk)
{
unsigned i,j;
for(i=0;i<lw;i++)
{
for(j=0;j<lk;j++)
{
cout<<"["<<i<<"]["<<j<<"] = ";
cin>>tab[j];
}
}
return(tab[j]);
}
int wydruk(int tab[100][100],unsigned lw,unsigned lk)
{
unsigned i,j;
for(i=0;i<lw;i++)
{
for(j=0;j<lk;j++)
{
cout<<" "<<tab[j];
}
cout<<"\n";
}
return(tab[j]);
}
int dodaje(int t[100][100],int t2[100][100],int t3[100][100],unsigned lw1,unsigned lw2,unsigned lk1,unsigned lk2)
{
unsigned i,j;
if(lw1==lw2 && lk1==lk2)
{
for(i=0;i<lw1;i++)
{
for(j=0;j<lk1;j++)
{
t3[j]=t[j]+t2[j];
}
}
}
else
{
cout<<"Podaj inne dane"<<endl;
}
return(t3[j]);
}
int odejmuje(int t[100][100],int t2[100][100],int t3[100][100],unsigned lw1,unsigned lw2,unsigned lk1,unsigned lk2)
{
unsigned i,j;
if(lw1==lw2 && lk1==lk2)
{
for(i=0;i<lw1;i++)
{
for(j=0;j<lk1;j++)
{
t3[j]=t[j]-t2[j];
}
}
}
else
{
cout<<"Podaj inne dane"<<endl;
}
return(t3[j]);
}
int main()
{ int A[100][100],B[100][100],C[100][100];
unsigned i,j,a,b,rozmiar1A,rozmiar2A,rozmiar1B,rozmiar2B;
cout<<" WYPELNIANIE PIERWSZEJ MACIERZY"<<endl;
cout<<"Podaj ilosc wierszy pierwszej macierzy"<<endl;
cin>>rozmiar1A;
cout<<"Podaj ilosc kolumn pierwszej macierzy"<<endl;
cin>>rozmiar2A;
wypelnij_tablice(A,rozmiar1A,rozmiar2A);
wydruk(A,rozmiar1A,rozmiar2A);
cout<<""<<endl;
cout<<" WYPELNIANIE DRUGIEJ MACIERZY"<<endl;
cout<<"Podaj ilosc wierszy drugiej macierzy"<<endl;
cin>>rozmiar1B;
cout<<"Podaj ilosc kolumn drugiej macierzy"<<endl;
cin>>rozmiar2B;
wypelnij_tablice(B,rozmiar1B,rozmiar2B);
wydruk(B,rozmiar1B,rozmiar2B);
cout<<" SUMOWANIE"<<endl;
dodaje(A,B,C,rozmiar1A,rozmiar1B,rozmiar2A,rozmiar2B);
wydruk(C,rozmiar1A,rozmiar2B);
cout<<" ODEJMOWANIE"<<endl;
odejmuje(A,B,C,rozmiar1A,rozmiar1B,rozmiar2A,rozmiar2B);
wydruk(C,rozmiar1A,rozmiar2B);
system("PAUSE");
return 0;
}
Czytałem jednak że jest optymalniejsza 'wersja' przekazywania tablic funkcjom, a mianowice za pomocą WSKAŹNIKÓW. Przeszukiwalem różne kursy internetowe w poszukiwaniu wiadomości o wskaźnikach ale jest to zwykle tylko jakaś pusta(jak dla mnie) teoria, dlatego prosiłbym o jakiś konstruktywne wskazówki dotyczące na przykład 'przetłumaczenia' funkcji WYPEŁNIJ_ TABLICE na funkcje wskaźnikową.
Najlepiej jeśli to oczywiście możliwe prosiłbym o napisanie tej funkcji za pomocą wskaźników. Aha, i mam jeszcze jedno pytania:czy ten kod napisany przeze mnie (mimo tego że nie jest na wskaźnikach) będzie się kompilowac na innych kompilatorach?
Z góry dziekuje za pomoc i...wyrozumialość.
Pozdrawiam wszystkich
Kuba
PS
Prosze o uwagi dotyczące posta(konstruktywnie krytyczne mile widziane), wiem że jest za długi i mój język też malo tachniczny, ale pracuje nad tym...