Bir kare matrisin olup olmadığını bulan program
- a)simetrik
- b)skew-simetrik
- c)ikisinden hiçbiri
Şartlar
Bir kare matrisin devriği kendisine eşitse simetrik olduğu söylenir:A=A’
Veya tüm öğeler ilişkiyi onaylar:
A[ij] = A[ji]
Bir kare matrisin devriği negatifine eşitse simetrik olduğu söylenir:
AT = -AVeya tüm öğeler şu ilişkiyi karşılar:
A[ij] = -A[ji]
Bir çarpık simetrik matrisin tüm köşegen elemanları sıfırdır ve simetrik matris için herhangi bir değer alabilirler.
a b c b e d c d f simetrik bir matrisin genel şeklidir.
0 -b -c b 0 -d c d 0 bir çarpık simetrik matrisin genel şeklidir.
Şimdi verilen soruda girdi olarak bir matris alan ve simetrik mi yoksa eğri simetrik mi yoksa hiçbirinin olmadığını kontrol eden bir program yapıyoruz.
Soruna yaklaşım:
Matrisin her bir elemanını (i,j) kontrol etmeli ve (j,i) ile karşılaştırmalı ve birbirlerine eşit mi yoksa negatif mi olduklarını kontrol etmeliyiz.
Her öğeye erişmek için, tıpkı 2 boyutlu bir diziyi girmesi veya yazdırması gerektiğinde yaptığımız gibi iç içe iki for döngüsü kullanacağız ve ardından simetrik ve çarpık simetrik matrisleri kontrol etmek için koşullarımızı belirleyebiliriz.
Bir if-else kullanırdık ve if koşulunda simetrik olup olmadığını kontrol edeceğiz ve else içinde eğrinin simetrik olup olmadığını veya yukarıdakilerden hiçbirinin olmadığını kontrol edeceğiz.
Algoritma
Kullanıcıdan kontrol etmek istediğimiz matrisin n boyutunu girin
Yuvalanmış for döngülerinin yardımıyla kullanıcıdan nxn boyutunda bir matris girin ve bunu nxn boyutunda 2 boyutlu bir dizide saklayın.
Ctr değişkenini 1 olarak ayarlayın.
Yuvalanmış bir for döngüsü kullanarak a[i][j]’nin a[j][i]’ye eşit olup olmadığını kontrol edin. Değilse, ctr’yi sıfıra ayarlayın ve döngülerden çıkın.
Döngü dışında, ctr’nin hala 1 olup olmadığını, ardından simetrik matrisini kontrol edin.
Else koşulunda, ctr’yi tekrar 1’e ayarlayın ve iç içe geçmiş bir for döngüsü kullanarak a[i][j]’nin -a[j][i]’ye eşit olup olmadığını kontrol edin. Değilse, ctr’yi sıfıra ayarlayın ve döngülerden çıkın .
Döngü dışında, ctr’nin hala 1 olup olmadığını kontrol edin, o zaman bu bir çarpık simetrik matristir ve değilse, ne simetrik ne de çarpık simetriktir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
//algoritmaornekleri.com #include <iostream> using namespace std; int main() { int n; cout << "Matris boyutunu girin\n"; //matrisin giriş boyutu cin >> n; int a[n][n]; cout << "Matrisi satır bazında girin\n"; //inputting the matrix row wise for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { cin >> a[i][j]; } } int ctr = 1; for (int i = 0; i < n; ++i) //simetrik matrisi kontrol etme { for (int j = 0; j < n; ++j) { if (a[i][j] != -a[j][i]) { ctr = 0; break; } } if (ctr == 0) break; } if (ctr) //matris simetrik ise yazdırma cout << "Matris çarpık simetriktir\n"; else //simetrik matrisin çarpık olup olmadığını kontrol etme { ctr = 1; for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (a[i][j] != (-a[j][i])) { ctr = 0; break; } } if (ctr == 0) break; } if (ctr) //matris çarpık simetrik matris ise yazdırma cout << "Matris çarpık simetriktir\n"; else //değilse ikisi de değil cout << "Matris ne simetrik ne de çarpık simetrik\n"; } return 0; } |
Add Comment