Диагонал на матрица, място на елемент - номер на ред и колона

В езиците за програмиране матрица, таблица се реализират чрез двумерен масив. Говорим за диагонал на матрица най-често при квадратна матрица. В една матрица можем да въведем понятието диагонал. Разглеждаме квадратна матрица, за която е валидно равенството брой редове = брой колони. Всеки елемент в една матрица има собствен, уникален индекс определящ еднозначно мястото му в матрица - номер на ред и номер на колона. В приложения пример се ползва 2-цифрено число за индекс - лявата цифра означава номер на ред, дясната цифра е номер на колона.

    Основен диагонал на матрица: всички елементи чийто индекси за номер на ред и номер на колона са равни а11, а22...аnn.
    Неосновен диагонал на матрица: всички елементи чийто индекси за номер на ред, номер на колона имат сума n+1, където n е броя редове, колони: a1n, a2n-1......an1
    С цел по-добра илюстрация в следващата примерна програма стойността на всеки елемент е точно неговия индекс. Поотделно се извеждат елементите стоящи на основния диагонал, над и под основния диагонал в същата матрица.

    Следващата примерна програма дава решена задача за място на елемент спрямо диагонал на матрица:

#include <iostream>

using namespace std;

  const int broi=5;//broi redowe, koloni

int main ()

 { int mas[broi][broi];


   int i,j;

   cout<<"Da se systawi programa, chrez koqto se wywevdat stojnosti w kwadratna\n";

   cout<<"tablica. Programata da izwede pootdelno: a) sydyrvanieto na tablicata\n";

   cout<<"b) elementite formirashi glawniq diagonal; c) elementite pod i nad\n";

   cout<<"glawniq diagonal.\n";



  //Nachalna inicializaciq na matrica

   for (i=0;i<broi;i++)

   {for (j=0;j<broi;j++) { mas[i][j]=(i+1)*10+j+1;}//for j

  } //for i

 
    cout<<"Izwevdam sydyrvanieto na matrica \n";

   for (i=0;i<broi;i++)
 

   {for (j=0;j<broi;j++)  {cout<<mas[i][j]<<"; "; }//for j

       cout<<endl;

   }//for i

 

     cout<<"Izwevdam sydyrvanieto na glawniq diagonal \n";


   for (i=0;i<broi;i++)

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

    {if (i==j) cout<<mas[i][j]<<"; "; else cout<<"  ; ";}//for j

       cout<<endl;

   }//for i


 

   cout<<"Izwevdam sydyrvanieto nad glawniq diagonal \n";

   for (i=0;i<broi;i++)
 
   {for (j=0;j<broi;j++) 
 
     {if (j>i)cout<<mas[i][j]<<"; "; else cout<<"  ; ";


     }//for j

       cout<<endl;

   }//for i

    cout<<"Izwevdam sydyrvanieto pod glawniq diagonal \n";

    for (i=0;i<broi;i++)

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


      {if (j<i)cout<<mas[i][j]<<"; "; else cout<<"  ; ";

     }//for j

       cout<<endl;

   }//for i

 


 system("pause");

 return 0;

}//kraj na programa diagonal w matrica

Обяснени и решени задачи с подобни алгоритми, функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени задачи, примери.

Начало на страницата

 
Размер на шрифта
Increase Font Size Option 3 Reset Font Size Option 3 Decrease Font Size Option 3
Bulgarian Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Търсене в сайта: