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 :)