­čöą Kare Matrislerin ├ťzerinde ─░┼člemler

ÔŁô Soru

A┼ča─č─▒daki fonksiyonlar─▒ yaz─▒p main i├žerisinde se├ženek listesi olarak ├ža─č─▒r─▒n─▒z. 1. Bir kare matrisi okutan fonksiyon. 2. Bir kare matrisi yazd─▒ran fonksiyon. 3. Bir kare matrisin 2 sat─▒r─▒n─▒ yer de─či┼čtiren fonksiyon. 4. Bir kare matrisin k├Â┼čegenlerini yer de─či┼čtiren fonksiyon. 5. Bir kare matrisin elemanlar─▒n─▒n aritmetik ortalamas─▒n─▒ hesaplayan fonksiyon.

Not: Program 6 girilene kadar s├╝rekli ├žal─▒┼čacakt─▒r.

ÔŤô Program K─▒s─▒mlar─▒

  1. mainÔÇÖde kullan─▒lacak de─či┼čkenleri ve matrisi tan─▒mlamak.

  2. Fonksiyonlar─▒ main i├žerisinde switch kullanarak ├ža─č─▒rmak.

  3. Fonksiyonlar─▒ yazmak.

­čĹô ├ç├Âz├╝m Y├Ântemi

  • Herhangi bir sat─▒r─▒n eleman indeksinde i sabitken j de─či┼čir.

  • Asal k├Â┼čegenin her aija_{ij} eleman─▒, (i=j) ├Âzelli─čine sahiptir.

    • Kod ├Ârne─či: for(i=0; i<n; i++) { A[i][i] ÔÇŽ}

  • Ters k├Â┼čegenin her aij eleman─▒, (j=n-1-i) ├Âzelli─čine sahiptir.

    • Kod ├Ârne─či: for(i=0; i<n; i++) { A[i][n-1-i] ÔÇŽ}

­čĹęÔÇŹ­čöž ├ç├Âz├╝m Ad─▒mlar─▒

  1. De─či┼čkenler ve matrisin tan─▒mlanmas─▒.

  2. secenek 6ÔÇÖya e┼čit olmad─▒─č─▒ s├╝rece:

    • Se├ženek listesi yazd─▒r─▒l─▒r.

    • secenek de─čeri girilir.

    • seceneke g├Âre switch kullanarak fonksiyon ├ža─č─▒r─▒lacak.

      • secenek = 1: Matris okutma fonk. ├ža─čr─▒l─▒r.

      • secenek = 2: Matris yazd─▒rma fonk. ├ža─čr─▒l─▒r.

      • secenek = 3: Sat─▒r yer de─či┼čtirme fonk. ├ža─čr─▒l─▒r.

      • secenek = 4: K├Â┼čegen yer de─či┼čtirme fonk. ├ža─čr─▒l─▒r.

      • secenek = 5: Ortalama hesaplama fonk. ├ža─čr─▒l─▒r.

      • secenek = 6: switchÔÇÖten ├ž─▒k─▒l─▒r.

      • secenek = Di─čer: Hata mesaj─▒ verilir.

1. Matris okutma fonksiyonu

  1. De─či┼čkenlerin tan─▒mlanmas─▒.

  2. Boyutun girilmesi.

  3. ─░├ž i├že d├Âng├╝yle elemanlar─▒n girilmesi.

  4. Boyutun geri d├Ând├╝r├╝lmesi.

2. Matris yazd─▒rma fonksiyonu

  1. Saya├žlar─▒n tan─▒mlanmas─▒.

  2. ─░├ž i├že d├Âng├╝yle elemanlar─▒n yazd─▒r─▒lmas─▒.

3. ─░ki sat─▒r yer de─či┼čtirme fonksiyonu

  1. De─či┼čkenlerin tan─▒mlanmas─▒.

  2. ─░stenen sat─▒rlar─▒n girilmesi.

  3. Bir d├Âng├╝yle istenen sat─▒rlar─▒n elemanlar─▒n─▒n ge├žici de─či┼čken kullanarak de─či┼čtirilmesi.

4. K├Â┼čegen yer de─či┼čtirme fonksiyonu

  1. De─či┼čkenlerin tan─▒mlanmas─▒.

  2. Bir d├Âng├╝yle k├Â┼čegenlerin elemanlar─▒n─▒n ge├žici de─či┼čken kullanarak de─či┼čtirilmesi.

5. Ortalama hesaplama fonksiyonu

  1. De─či┼čkenlerin tan─▒mlanmas─▒.

  2. ─░├ž i├že d├Âng├╝yle elemanlar─▒n toplanmas─▒.

  3. Toplam─▒n n2ye b├Âl├╝nmesi.

  4. Ortalaman─▒n geri d├Ând├╝r├╝lmesi.

­čĄľ Kod

ÔÜÖ C++ Kodu

#include <iostream>
using namespace std;
int gir_mat(int ** & A) {
int i, j, n; // De─či┼čkenlerin tan─▒mlanmas─▒
cout << "Matrisin boyutunu giriniz: ";
cin >> n; // Boyutun girilmesi
// Matrisin olu┼čturulmas─▒
A = new int * [n];
for (i = 0; i < n; i++)
A[i] = new int[n];
// ─░├ž i├že d├Âng├╝yle elemanlar─▒n girilmesi
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
cout << "A[" << i + 1 << "][" << j + 1 << "]=";
cin >> A[i][j];
}
}
return n; // Boyutun geri d├Ând├╝r├╝lmesi
}
ÔÇő
void print_mat(int ** & A, int n) {
int i, j; // Saya├žlar─▒n tan─▒mlanmas─▒
cout << "A Matrisi:\n"; // ─░├ž i├že d├Âng├╝yle elemanlar─▒n yazd─▒r─▒lmas─▒
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
cout << A[i][j] << " ";
cout << endl;
}
}
ÔÇő
void satir_degistir(int ** & A, int n) {
int i, satir1, satir2, temp; // De─či┼čkenlerin tan─▒mlanmas─▒
// ─░stenen sat─▒rlar─▒n girilmesi
cout << "Degistirmek istediginiz satirlari girininz:\n";
cin >> satir1;
cin >> satir2;
// Bir d├Âng├╝yle istenen sat─▒rlar─▒n elemanlar─▒n─▒n ge├žici de─či┼čken kullanarak de─či┼čtirilmesi
for (i = 0; i < n; i++) {
temp = A[satir1 - 1][i];
A[satir1 - 1][i] = A[satir2 - 1][i];
A[satir2 - 1][i] = temp;
}
cout << satir1 << ". satir &" << satir2 << ". satir degistirildi.\n";
}
ÔÇő
void kosegen_degistir(int ** & A, int n) {
int i, temp; // De─či┼čkenlerin tan─▒mlanmas─▒
// Bir d├Âng├╝yle k├Â┼čegenlerin elemanlar─▒n─▒n ge├žici de─či┼čken kullanarak de─či┼čtirilmesi
for (i = 0; i < n; i++) {
temp = A[i][i];
A[i][i] = A[i][n - 1 - i];
A[i][n - 1 - i] = temp;
}
cout << "Kosegenler degistirildi.\n";
}
ÔÇő
float ortalama(int ** & A, int n) {
int toplam = 0, i, j; // De─či┼čkenlerin tan─▒mlanmas─▒
float ort;
// ─░├ž i├že d├Âng├╝yle elemanlar─▒n toplanmas─▒
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
toplam += A[i][j];
ort = (float) toplam / (n * n); // Toplam─▒n ÔÇťn ├╝zeri 2ÔÇŁye b├Âl├╝nmesi
// Ortalaman─▒n geri d├Ând├╝r├╝lmesi
return ort;
}
ÔÇő
int main() {
int n1 = 0, secenek, ** P;
do {
// Se├ženek listesinin yazd─▒r─▒lmas─▒
cout << "============================== \n1- Yeni Matris girmek\n2- Matrisi yazdirmak\n3- 2 satiri degistirmek\n4- Kosegenleri degistirmek\n5- Elemanlar ortalamasini hesaplamak\n6- Exit\nYukaridakilerden bir tane seciniz:";
// Se├žene─čin girilmesi
cin >> secenek;
switch (secenek) {
// Girilen se├žene─če g├Âre istenen fonksiyonun ├ža─čr─▒lmas─▒
case 1:
n1 = gir_mat(P);
break;
case 2:
print_mat(P, n1);
break;
case 3:
satir_degistir(P, n1);
break;
case 4:
kosegen_degistir(P, n1);
break;
case 5:
cout << "Ortalama= " << ortalama(P, n1) << endl;
break;
case 6:
break;
default:
cout << "Hata!, Girilecek sayi 1,6 arasinda olmalidir!\n";
}
} while (secenek != 6);
ÔÇő
}

­čÉŹ Python Kodu

def gir_mat():
# Boyutun girilmesi
print("Matrisin boyutunu giriniz: ")
n = int(input())
A = [[0 for i in range(n)] for i in range(n)]
# ─░├ž i├že d├Âng├╝yle elemanlar─▒n girilmesi
print("A matrisini giriniz:")
for i in range(n):
for j in range(n):
print('A[{}][{}]'.format(i+1, j+1))
A[i][j] = int(input())
return A;
ÔÇő
def print_mat(A):
# ─░├ž i├že d├Âng├╝yle elemanlar─▒n yazd─▒r─▒lmas─▒
print("A Matrisi:")
for i in range(len(A)):
for j in range(len(A[0])):
print(A[i][j], ' ', end="")
print()
ÔÇő
def satir_degistir(A):
# ─░stenen sat─▒rlar─▒n girilmesi
print("Degistirmek istediginiz satirlari girininz:\n");
satir1 = int(input())
satir2 = int(input())
# Bir d├Âng├╝yle istenen sat─▒rlar─▒n elemanlar─▒n─▒n ge├žici de─či┼čken kullanarak de─či┼čtirilmesi
for i in range(len(A)):
temp = A[satir1 - 1][i]
A[satir1 - 1][i] = A[satir2 - 1][i]
A[satir2 - 1][i] = temp
ÔÇő
print("{}. satir & {}. satir degistirildi.".format(satir1, satir2))
ÔÇő
# Bir d├Âng├╝yle k├Â┼čegenlerin elemanlar─▒n─▒n ge├žici de─či┼čken kullanarak de─či┼čtirilmesi
def kosegen_degistir(A):
for i in range(len(A)):
temp = A[i][i]
A[i][i] = A[i][len(A) - 1 - i]
A[i][len(A) - 1 - i] = temp
print("Kosegenler degistirildi.")
ÔÇő
def ortalama(A):
toplam = 0
# ─░├ž i├že d├Âng├╝yle elemanlar─▒n toplanmas─▒
for i in range(len(A)):
for j in range(len(A)):
toplam += A[i][j]
# Toplam─▒n ÔÇťn ├╝zeri 2ÔÇŁye b├Âl├╝nmesi
ort = toplam / (len(A)*len(A))
return ort
ÔÇő
while True:
# Se├ženek listesinin yazd─▒r─▒lmas─▒
print("""==============================
1- Yeni Matris girmek\n2- Matrisi yazdirmak
3- 2 satiri degistirmek\n4- Kosegenleri degistirmek
5- Elemanlar ortalamasini hesaplamak\n6- Exit
Yukaridakilerden bir tane seciniz:""")
secenek = int(input()) # Se├žene─čin girilmesi
# Girilen se├žene─če g├Âre istenen fonksiyonun ├ža─čr─▒lmas─▒
if secenek == 1:
A = gir_mat()
elif secenek == 2:
print_mat(A)
elif secenek == 3:
satir_degistir(A)
elif secenek == 4:
kosegen_degistir(A)
elif secenek == 5:
print('Ortalama= ', ortalama(A))
elif secenek == 6:
break
else:
print("Hata!, Girilecek sayi 1,6 arasinda olmalidir!")

ÔśĽ Java Kodu

import java.util.*;
public class KareMatris {
static final int max = 10;
static Scanner input = new Scanner(System.in);
public static void main(String arg[]) {
int n1 = 0, secenek;
int P[][] = new int[max][max];
do {
// Se├ženek listesinin yazd─▒r─▒lmas─▒
System.out.printf("========================= ===== \n1- Yeni Matris girmek\n2- Matrisi yazdirmak\n3- 2 satiri degistirmek\n4- Kosegenleri degistirmek\n5- Elemanlar ortalamasini hesaplamak\n6- Exit\nYukaridakilerden bir tane seciniz:");
// Se├žene─čin girilmesi
secenek = input.nextInt();
// Girilen se├žene─če g├Âre istenen fonksiyonun ├ža─čr─▒lmas─▒
switch (secenek) {
case 1:
n1 = gir_mat(P);
break;
case 2:
print_mat(P, n1);
break;
case 3:
satir_degistir(P, n1);
break;
case 4:
kosegen_degistir(P, n1);
break;
case 5:
System.out.printf("Ortalama= %f\n", ortalama(P, n1));
break;
case 6:
break;
default:
System.out.printf("Hata!, Girilecek sayi 1,6 arasinda olmalidir!\n");
}
} while (secenek != 6);
}
ÔÇő
static int gir_mat(int a[][]) {
// De─či┼čkenlerin tan─▒mlanmas─▒
int i, j, n;
// Boyutun girilmesi
System.out.printf("Matrisin boyutunu giriniz: ");
n = input.nextInt();
// ─░├ž i├že d├Âng├╝yle elemanlar─▒n girilmesi
for (i = 0; i < n; i++)
for (j = 0; j < n; j++) {
System.out.printf("P[%d][%d]=", i + 1, j + 1);
a[i][j] = input.nextInt();
}
// Boyutun geri d├Ând├╝r├╝lmesi
return n;
}
static void print_mat(int a[][], int n) {
// Saya├žlar─▒n tan─▒mlanmas─▒
int i, j;
// ─░├ž i├že d├Âng├╝yle elemanlar─▒n yazd─▒r─▒lmas─▒
System.out.printf("P Matrisi:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
System.out.printf("%d\t", a[i][j]);
System.out.printf("\n");
}
}
static void satir_degistir(int a[][], int n) {
// De─či┼čkenlerin tan─▒mlanmas─▒
int i, satir1, satir2, temp;
// ─░stenen sat─▒rlar─▒n girilmesi
System.out.printf("Degistirmek istediginiz satirlari girininz:\n");
satir1 = input.nextInt();
satir2 = input.nextInt();
// Bir d├Âng├╝yle istenen sat─▒rlar─▒n elemanlar─▒n─▒n ge├žici de─či┼čken kullanarak de─či┼čtirilmesi
for (i = 0; i < n; i++) {
temp = a[satir1 - 1][i];
a[satir1 - 1][i] = a[satir2 - 1][i];
a[satir2 - 1][i] = temp;
}
System.out.printf("%d. satir & %d. satir degistirildi.\n", satir1, satir2);
}
static void kosegen_degistir(int a[][], int n) {
// De─či┼čkenlerin tan─▒mlanmas─▒
int i, temp;
// Bir d├Âng├╝yle k├Â┼čegenlerin elemanlar─▒n─▒n ge├žici de─či┼čken kullanarak de─či┼čtirilmesi
for (i = 0; i < n; i++) {
temp = a[i][i];
a[i][i] = a[i][n - 1 - i];
a[i][n - 1 - i] = temp;
}
System.out.printf("Kosegenler degistirildi.\n");
}
static float ortalama(int a[][], int n) {
// De─či┼čkenlerin tan─▒mlanmas─▒
int toplam = 0, i, j;
float ort;
// ─░├ž i├že d├Âng├╝yle elemanlar─▒n toplanmas─▒
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
toplam += a[i][j];
// Toplam─▒n ÔÇťn ├╝zeri 2ÔÇŁye b├Âl├╝nmesi
ort = (float) toplam / (n * n);
// Ortalaman─▒n geri d├Ând├╝r├╝lmesi
return ort;
}
}

­čĺí Notlar

  1. Program─▒n switch caseÔÇÖlerini s─▒rayla yapmamas─▒ i├žin her caseÔÇÖin sonunda switch k─▒r─▒l─▒r.