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.
main’de kullanılacak değişkenleri ve matrisi tanımlamak.
Fonksiyonları main içerisinde switch kullanarak çağırmak.
Fonksiyonları yazmak.
Herhangi bir satırın eleman indeksinde i
sabitken j
değişir.
Asal köşegenin her 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] …}
Değişkenler ve matrisin tanımlanması.
secenek
6’ya eşit olmadığı sürece:
Seçenek listesi yazdırılır.
secenek
değeri girilir.
secenek
e 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.
Değişkenlerin tanımlanması.
Boyutun girilmesi.
İç içe döngüyle elemanların girilmesi.
Boyutun geri döndürülmesi.
Sayaçların tanımlanması.
İç içe döngüyle elemanların yazdırılması.
Değişkenlerin tanımlanması.
İstenen satırların girilmesi.
Bir döngüyle istenen satırların elemanlarının geçici değişken kullanarak değiştirilmesi.
Değişkenlerin tanımlanması.
Bir döngüyle köşegenlerin elemanlarının geçici değişken kullanarak değiştirilmesi.
Değişkenlerin tanımlanması.
İç içe döngüyle elemanların toplanması.
Toplamın n2ye bölünmesi.
Ortalamanın geri döndürülmesi.
#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 girilmesifor (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 girilmesicout << "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ştirilmesifor (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ştirilmesifor (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ülmesireturn 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 girilmesicin >> 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);}
def gir_mat():# Boyutun girilmesiprint("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 girilmesiprint("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 girilmesiprint("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ştirilmesifor i in range(len(A)):temp = A[satir1 - 1][i]A[satir1 - 1][i] = A[satir2 - 1][i]A[satir2 - 1][i] = tempprint("{}. satir & {}. satir degistirildi.".format(satir1, satir2))# Bir döngüyle köşegenlerin elemanlarının geçici değişken kullanarak değiştirilmesidef 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] = tempprint("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ünmesiort = toplam / (len(A)*len(A))return ortwhile True:# Seçenek listesinin yazdırılmasıprint("""==============================1- Yeni Matris girmek\n2- Matrisi yazdirmak3- 2 satiri degistirmek\n4- Kosegenleri degistirmek5- Elemanlar ortalamasini hesaplamak\n6- ExitYukaridakilerden 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:breakelse:print("Hata!, Girilecek sayi 1,6 arasinda olmalidir!")
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 girilmesisecenek = 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 girilmesiSystem.out.printf("Matrisin boyutunu giriniz: ");n = input.nextInt();// İç içe döngüyle elemanların girilmesifor (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ülmesireturn 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 girilmesiSystem.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ştirilmesifor (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ştirilmesifor (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ünmesiort = (float) toplam / (n * n);// Ortalamanın geri döndürülmesireturn ort;}}
Programın switch case’lerini sırayla yapmaması için her case’in sonunda switch kırılır.