profil

Obliczanie wyznacznikow macierzy C/C++

poleca 85% 2678 głosów

Treść
Grafika
Filmy
Komentarze

Program oblicza wyznacznik macierzy 2x2 oraz 3x3. Temat moze malo odkrywczy ale moze komus sie przyda to, jak i co tu zastosowalem :) Oto program :

#include
#include
#include
void wczytaj2x2 ( float macierz[][2]);
void wczytaj3x3 ( float macierz[][3]);
float oblicz2x2 ( float macierz[][2]);
float oblicz3x3 ( float macierz[][3] );

main ()
{
// deklaracja zmiennych
float m2x2[2][2], m3x3[3][3];
char a=0,b;

// petla glowna programu
do
{ //petla menu
do
{
clrscr();
b=0;
puts(\"Program wylicza wyznacznik podanej macierzy:\\n\\n\");
puts(\"\\tF1 - obliczanie wyznacznika macierzy 2x2\");
puts(\"\\tF2 - obliczanie wyznacznika macierzy 3x3\\n\");
puts(\"\\tESC - wyjscie z programu\\n\");
// pobieranie znaku
a=getch();
if (a==0) b=getch();
}
while ( (a!=0 && b!=59) && (a!=0 && b!=60) && (a!=27) );
// wykonywanie wyboru F1 lub F2:
if (a!=27) switch (b)
{
case 59 : wczytaj2x2(m2x2);
printf (\"\\nWyznacznik podanej macierzy 2x2 = %f\\n\", oblicz2x2(m2x2));
printf (\"Nacisnij dowolny klawisz ... \");
getch();
break;
case 60 : wczytaj3x3(m3x3);
printf (\"\\nWyznacznik podanej macierzy 3x3 = %f\\n\", oblicz3x3(m3x3));
printf (\"Nacisnij dowolny klawisz ... \");
getch();
break;
}
} // koniec petli glownej programu
while ( a!=27 );

return 0;
}

void wczytaj2x2 ( float macierz[][2])
{
char x,y;
clrscr();
puts (\"Prosze uzupelnic macierz zaindeksowana w nastepujacy sposob:\\n\");
puts (\"\\t\\t\\t11 12 \");
puts (\"\\t\\t\\t21 22 \\n\");
for (x=0; x<2 ; x++)
for (y=0; y<2; y++)
{
printf (\"Podaj liczbe o indeksie %d%d : \",x+1,y+1);
scanf (\"%f\",&macierz[x][y]);
}
}

void wczytaj3x3 ( float macierz[][3])
{
clrscr();
char x,y;
puts (\"Prosze uzupelnic macierz zaindeksowana w nastepujacy sposob:\\n\");
puts (\"\\t\\t\\t11 12 13\");
puts (\"\\t\\t\\t21 22 23\");
puts (\"\\t\\t\\t31 32 33\\n\");

for (x=0; x<3 ; x++)
for (y=0; y<3; y++)
{
printf (\"Podaj liczbe o indeksie %d%d : \",x+1,y+1);
scanf (\"%f\",&macierz[x][y]);
}
}
float oblicz2x2 ( float macierz[][2])
{
return ( macierz[0][0]*macierz[1][1] - macierz[0][1]*macierz[1][0] );
}

float oblicz3x3 ( float macierz[][3] )
{
return ( macierz[0][0]*macierz[1][1]*macierz[2][2]
+macierz[1][0]*macierz[2][1]*macierz[0][2]
+macierz[2][0]*macierz[0][1]*macierz[1][2]
-macierz[2][0]*macierz[1][1]*macierz[0][2]
-macierz[0][0]*macierz[2][1]*macierz[1][2]
-macierz[1][0]*macierz[0][1]*macierz[2][2] );
}

Załączniki:
Czy tekst był przydatny? Tak Nie

Czas czytania: 2 minuty