funkcje macierzy

0

Witam

Mam mały problem z funkcji jako ułatwienie w poprawnym działaniu programu. Oto kod:

// Program zaliczeniowy z Podstaw programowana w języku C++ Temat: Kalkulator macierzowy

#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <windows.h>

using namespace std;

void gotoxy(int x, int y) //Funckcja ta zapewnia nam przesunięcie tekstu o wektor x,y
{
COORD c;
c.X = x - 1;
c.Y = y - 1;
SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}

void macierz_linie_left() // funkcja rysujące macierz l
{
int i;
gotoxy(5,35);
cout << char(218)<<endl;
for (i=36; i<=40; i++)
{
gotoxy(5,i);
cout << char(179) << endl;
}
gotoxy(5,41);cout << char(192)<<endl;
}

void macierz_linie_right() // funcka rysuje macierz r
{
gotoxy(15,35);
cout << char(191);
for (int i=36; i<=40; i++)
{
gotoxy(15,i);
cout << char(179) << endl;
}
gotoxy(15,41);cout << char(217)<<endl;

}

void wypisz_macierz_pierwsza()
{
int i, macierz1[3][3];
gotoxy(7,36);
for (i=0;i<3;i++)
{
cout <<macierz1[0][i]<<" ";
}
gotoxy(7,38);
for (i=3;i<6;i++)
{
cout <<macierz1[0][i]<<" ";
}
gotoxy(7,40);
for (i=6;i<9;i++)
{
cout <<macierz1[0][i]<<" ";
}
}

int main()
{
int i,j,suma,a,b;
int macierz1[3][3];
int macierz2[3][3];
int suma1,suma2,suma3;
gotoxy(15,2);
cout << " Program realizuje podstawowe dzialania na macierzy wymiaru 3x3 " << endl << endl << endl;
gotoxy(10,5);
cout << " 1. Dodawanie 2. Odejmowanie 3. Mnozenie 4.Dzielenie " << endl<<endl<<endl;
gotoxy(8,8);
int wybor;
cout << " Wybierz jakich dzialan chcesz dokonywac na podanych macierzach: "; cin >> wybor;
//Wybór opcji działana na macierzy
switch(wybor) // moment wyboru działania
{
case 1:
int licznik1 = 1;
int licznik2 = 1;
cout << "\n\n";
cout << " Wypelij macierz liczbami " <<endl;

                  ////* Wczytujemy liczby do I macierzy */////
                   
                  for (i=0;i<3;i++)
                  {
                   for(j=0;j<3;j++)
                   {
                   cout <<"Podaj liczbe" <<licznik1++ << "\t" ;
                   cin >> macierz1[i][j];
                   }
                   }
                   /*
                   suma= macierz1[0][0] + macierz1[1][1] + macierz1[2][2];
                   cout << suma;
                   */
                   cout << "\n\n";
                   
                   ///////////////////////////////////////////////
                   ////*/ Wczytujemy liczy do II macierzy */////
                    for (i=0;i<3;i++)
                       {
                        for(j=0;j<3;j++)
                        {
                         cout <<"Podaj liczbe" <<licznik2++ << "\t" ;
                         cin >> macierz2[i][j];
                         }
                         } 
                         cout << "\n\n\n\n";
                         /*
                         suma = macierz2[0][1] + macierz2[1][1] + macierz2[2][1];
                         cout << suma;
                         //////* Sumujemy elementy obu tablic *//////
                         /*
                         suma1 = macierz1[0][0] + macierz2[0][0];
                         suma2 = macierz1[0][1] + macierz2[0][1];
                         suma3 = macierz1[0][2] + macierz2[0][2];
                         cout << suma1<<"\t" << suma2 << "\t" << suma3 ;  // wyświetlamy sumę
                         */
                         ///////////////////////////////////////////////
                         ////*/ Wypisujemy pierwszą macierz z wczytanych danych *////
                   
                         macierz_linie_left(); // funkcja wypisuje lewą część macierzy
                         gotoxy(7,36);
                         for (i=0;i<3;i++)
                         {
                             cout <<macierz1[0][i]<<"  ";
                         }
                         gotoxy(7,38);
                         for (i=3;i<6;i++)
                         {
                             cout <<macierz1[0][i]<<"  ";
                         }
                         gotoxy(7,40);
                         for (i=6;i<9;i++)
                         {
                             cout <<macierz1[0][i]<<"  ";
                         }
                         macierz_linie_right(); // funkcja rysuje prawą część macierzy 
                         gotoxy(20,38);cout << " + ";
                         ////* Wypisujemy II macierz*///////
                         gotoxy(27,35);cout << char(218)<<endl;
                         for (i=36; i<=40; i++)
                         {
                             gotoxy(27,i);
                             cout << char(179) << endl;}
                         gotoxy(27,41);
                         cout << char(192)<<endl;
                         
                         
                         gotoxy(29,36);
                         for (i=0;i<3;i++)
                         {
                             cout <<macierz2[0][i]<<"  ";
                         }
                         gotoxy(29,38);
                         for (i=3;i<6;i++)
                         {
                             cout <<macierz2[0][i]<<"  ";
                         }
                         gotoxy(29,40);
                         for (i=6;i<9;i++)
                         {
                             cout <<macierz2[0][i]<<"  ";
                         }
                         break;
                   }

getch();
return 0;

}

Jedna funkcja została, ale i tak nie zostanie wykorzystana. Głównie chodzi mi o napisanie to iż wywołanie funkcji która wypisuje macierz wywala mi same śmieci podczas działania, a druga to napisanie funkcji która wypisywała by lewą lub prawą otoczkę macierzy. Nie wiem może zrobić to metodą przekazywania parametrów i i j przez funkcję czy jakoś inaczej, bo bez sensu pisać to samo w każdym kolejnym działaniu. Czy jest jakiś inny sposób?

Pozdrawiam :)

0
                             for(y=0;y<3;++y)
                                {
                                 gotoxy(7,36+2*y);
                                 for (x=0;x<3;++x) cout<<(" "+!x)<<macierz1[y][x];
                               }
0

Ok, ale ta pętla odnosi się do czego do rysowania tych obramować macierzy czy do drugiej sprawy z którą miałem problem ?

0

Do obu, zamazywałeś sobie ramkę.

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