Cześć potrzebuje pomocy w zadaniu
Utwórz dynamiczną tablicę dwuwymiarową i wypełnij ją liczbami rzeczywistymi. Napisz w
tym celu funkcję utworz_tab, która utworzy tablicę i zwróci wskaźnik do niej. Następnie
napisz funkcję wypisz, która wypisuje tablicę na ekranie. Następnie napisz funkcję
wstaw_wiersz, która wstawia do tablicy dodatkowy wiersz na zadanej pozycji. Na koniec
napisz funkcję usun_wiersz, która usuwa z tablicy wiersz o podanym indeksie. Funkcje muszą
być tak napisane aby nie można było dodać ani usunąć wiersza poza zakresem tablicy, przy
czym dopuszczalne jest dodawanie i usuwanie wierszy na początku i na końcu tablicy.
Przykładowe deklaracje wymienionych funkcji:
float** utworz_tab(unsigned int n, unsigned int m);
void wypisz(float tab, unsigned int n, unsigned int m);
float wstaw_wiersz(float *tab, unsigned int &n, unsigned int m, float wiersz, unsigned int
pozycja);
float usun_wiersz(float **tab, unsigned int &n, unsigned int m, unsigned int pozycja);
Zwróć uwagę, że parametr n określający liczbę wierszy w tablicy przekazywany jest przez
referencję, ponieważ podczas usuwania/dodawania wierszy zmienia się jego wartość.
Do testowania programu trzeba użyć poniższy kod sprawdzający (należy skopiować go do
bloku main() w swoim programie):
const unsigned int w=2, k=3;
float dane[w][k]={{2.5,3,5} , {3,-2.5,1}};
unsigned int w1=w, k1=k;
float **tab=utworz_tab(w, k);
for (unsigned int i=0; i<w1; i++)
for (unsigned int j=0; j<k1; j++)
tab[i][j]=dane[i][j];
cout<<"Tablica:"<<endl;
wypisz(tab, w1, k1);
float *wiersz=new float[k1];
for (unsigned int j=0; j<k1; j++)
wiersz[j]=0;
unsigned int poz=1;
cout<<"Proba wstawienia wyzerowanego wiersza na pozycji "<<poz<<endl;
tab=wstaw_wiersz(tab, w1, k1, wiersz, poz);
wypisz(tab, w1, k1);
poz=0;
cout<<"Proba wstawienia wyzerowanego wiersza na pozycji "<<poz<<endl;
tab=wstaw_wiersz(tab, w1, k1, wiersz, poz);
wypisz(tab, w1, k1);
poz=w1;
cout<<"Proba wstawienia wyzerowanego wiersza na pozycji "<<poz<<endl;
tab=wstaw_wiersz(tab, w1, k1, wiersz, poz);
wypisz(tab, w1, k1);
poz=20;
cout<<"Proba wstawienia wyzerowanego wiersza na pozycji "<<poz<<endl;
tab=wstaw_wiersz(tab, w1, k1, wiersz, poz);
wypisz(tab, w1, k1);
poz=0;
cout<<"Proba usuniecia wiersza na pozycji "<<poz<<endl;
tab=usun_wiersz(tab, w1, k1, poz);
wypisz(tab, w1, k1);
poz=w1-1;
cout<<"Proba usuniecia wiersza na pozycji "<<poz<<endl;
tab=usun_wiersz(tab, w1, k1, poz);
wypisz(tab, w1, k1);
poz=1;
cout<<"Proba usuniecia wiersza na pozycji "<<poz<<endl;
tab=usun_wiersz(tab, w1, k1, poz);
wypisz(tab, w1, k1);
poz=20;
cout<<"Proba usuniecia wiersza na pozycji "<<poz<<endl;
tab=usun_wiersz(tab, w1, k1, poz);
wypisz(tab, w1, k1);