Решена задача за двумерен масив - определяне място на елемент спрямо диагонал

Двумерен масив често се нарича таблица или матрица. Ако броят на редовете е равен на броя колони то тази матрица се нарича квадратна. Структурата от данни, позволяваща ни да работим с матрица е двумерен масив. Дали елемент от матрица принадлежи на главния диагонал се определя от равенството на индексите му за ред и колона. Нека разгледаме следната решена задача за диагонал в двумерен масив:

     Имате естествено число N от интервала [3..9], както и двумерен масив с размери N*N. Числата в този масив са естествени от интервала [11..99].
    Да се състави програма, чрез която се въвеждат стойности в този масив и след това се обработват по следния начин:
    а) всички елементи над главния диагонал да станат четни, ако е необходимо се изважда 1;
    б) всички елементи под главния диагонал да станат нечетни, ако е необходимо се изважда 1;
    в) при всяка промяна на тези числа, елементът от главния диагонал в същия ред нараства с 1.

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

#include <iostream>

using namespace std;

const int broi=5;//N broj redowe=broj koloni


int main ()


 { int mas[broi][broi];//dwumeren masiw 

 int i,j;

   cout<<"Imate estestweno chislo N ot interwala [3..9], kakto i kwadratna\n";

   cout<<"matrica s razmeri N*N. Tablicata sydyrva estestweni chsila ot\n";

   cout<<"interwala [11..99]. Da se systawi programa, chrez koqto se wywevdat\n";


   cout<<"stojnosti w kwadratnata matrica. Nezawisimo kakwi chisla sa wywedeni\n";

   cout<<"programata da promeni chislata nad glawniq diagonal na chetni, a pod\n";

   cout<<"glawniq diagonal na nechetni kato wadi ot tqh 1. Pri wsqka promqna na\n";

   cout<<"tezi chisla, elementyt ot glawniq diagonal w syshiq red da narastwa s 1.\n";



 //Nachalna inicializaciq na masiw 

   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 masiw \n";


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

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

     cout<<endl;

  }//for i


   

  cout<<"Wsichki elementi nad glawniq diagonal stawat chetni:\n";

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

  {for (j=i+1;j<broi;j++) 

    {if (mas[i][j]%2) {mas[i][j]--;mas[i][i]++;}}// glawniq diagonal mas[i][i]++ for j


  }//for i

 

  cout<<"Wsichki elementi pod glawniq diagonal stawat nechetni:\n";

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

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


    {if (mas[i][j]%2==0) {mas[i][j]--;mas[i][i]++;}}//glawniq diagonal mas[i][i]++ for j

  }//for i

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

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

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


     cout<<endl;

 }//for i

 

 system("pause");

 return 0;

}//kraj na programa dwumeren masiw 


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

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

 
Размер на шрифта
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
Търсене в сайта: