Şimdi Ara

C++ 2 Matriksin toplanması, çarpılması ve şifrelenmesi

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
3
Cevap
0
Favori
567
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Birinci matrix girdi şeklinde ikincisi ise rastgele olacak şekilde yazdırılıp, seçime göre çarpma veya toplama işlemi yapılması gerek. Seçim yapma kısmına kadar sorun yok fakat ondan sonrası çalışmıyor. Yardımcı olur musunuz?

    C++ 2 Matriksin toplanması, çarpılması ve şifrelenmesi

    [CODE]ISE 105-Programlaya Giriş

    2. Ödev

    Adımlar:

    1- 5 x 5 boyutunda iki adet matris A ve B matrislerini oluşturunuz.

    2- A matrisinin elemanları 0-10 arasında olmak üzere kullanıcıdan istenecektir. 

    3- B matrisinin elemanları ise 0-10 arasında rastgele oluşan sayılardan oluşturulacaktır.

    4- A ve B matrisleri ekrana yazdırılarak 5. adımdaki işlem menüsü gösterilecektir. 

    5- İşlemler: 1-Toplama 2-Çarpma

    6- Seçilen işleme göre A ve B matrisleri üzerinde işlem yapılarak C Sonuç matrisi oluşturulacak

    ve ekranda gösterilecektir.

    7- Kullanıcıdan şifrelemek istediği bir satır ve sütun numarası istenecektir. 

    8- C sonuç matrisinin şifrelenmek istenen satır ve sütunu “*” karakteri ile şifrelenerek şifreli 

    matris ekranda gösterilecektir.

    9- Kullanıcıya devam etmek isteyip istemediği sorularak kullanıcı seçimine göre program tekrar 

    A matrisini isteyecek veya “Hoşçakalın” mesajı görüntüleyerek çıkış yapacaktır.

    Kaynak dosyanızın baş kısmında öğrenci bilgilerinizi ( Ad,soyad, öğrenci no), ödev no ve programın 

    açıklamasını içeren aşağıdaki gibi yorum satırları bulunmalıdır.





    ///////////////////////////////





    #include <iostream>

    #include <conio.h>

    #include <stdlib.h>

    #include <locale.h>

    using namespace std;

    int main()

    {

    setlocale(LC_ALL, "Turkish");


    int matrisA[5][5];

    int matrisB[5][5];


    cout << "A matrisinin elemanlarini giriniz:([0-10] arasi)" << endl;


    int i, j;

    for (i = 0; i < 5; i++) {

    for (j = 0; j < 5; j++) {

    cout << i + 1 << ".satir " << j + 1 << ".sutun ";

    cin >> matrisA[i][j];

    }

    }


    cout << "Girilen matrisA:" << endl;

    for (int i = 0; i < 5; i++)

    {

    for (int j = 0; j < 5; j++) {

    cout << matrisA[i][j] << " ";

    }

    cout << endl;

    }

    cout << endl;


    cout << "Rastgele matrisB:" << endl;

    for (int i = 0; i < 5; i++)

    {

    for (int j = 0; j < 5; j++) {

    matrisB[5][5] = rand() % 10;

    cout << matrisB[5][5] << " ";


    }

    cout << endl;

    }

    cout << endl;




    int sonuc[5][5];

    char secim;

    cout << "Yapmak istediginiz islemi seciniz(Toplama icin'+', Carpma icin'*'" << endl;

    cin >> secim;


    switch (secim)

    {

    case '+':

    for (int k = 0; k < 5; k++) {

    for (int t = 0; t < 5; t++) {

    sonuc[k][t] = 0;

    sonuc[k][t] = matrisA[k][t] + matrisB[k][t];

    }

    }

    break;


    case'*':

    for (int k = 0; k < 5; k++) {

    for (int t = 0; t < 5; t++) {

    sonuc[k][t] = 0;

    for (int p = 0; k < 5; k++) {

    sonuc[k][t] = matrisA[k][p] * matrisB[p][t];

    }

    }

    }

    break;

    default:

    cout << "Hatali islem sectiniz";

    break;


    }


    for (int k = 0; k < 5; k++) {

    for (int t = 0; t < 5; t++) {

    cout << sonuc[k][t] << " ";

    }

    }

    return 0;

    }



    [/CODE]








  • cin >> matrisA[j]; 'de 2 boyutlu matrisA tek boyutlu olmuş :)

    Ayrıca kodun test edilebilirliği kötü. Her denemede 5x5 kullanıcıdan veri almak yerine, önceden elemanları tanımlan bir matriks kullan, o matriksle + / * işlemlerini doğru yaptıktan sonra kullanıcı verisini alma rutinini ekle.Bunları yaparak denedim, yanlış sonuç verdi ondan sonra "matrisB[5][5]" gözüme çarptı onu da matrisB[j] olarak değiştir. Bir de matrisB[sira][sutun] şeklinde kesin açıklayıcı degisken adları kullanıyorum, öneririm.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.