Помогни ни да направим Uroci.net по - богат! Добави урок

Програма за проверка на магически квадрат

C++ » C++
smurf4eto   трудност:    видян: 18021

 
В този урок ще ви покажа как да напишете програма, която да проверява дали въведена квадратна таблица е магически квадрат или не.
 
Това е сорс кода на програмата:
 

#include
int check()
{
int a[20][20],n;
cout << "Molia vavedete n.";
cin >> n;
for (int i=0; i
{
for (int j=0; j
{
cin >> a[i][j];
}
}
int sum1=0, sum2=0;
for (i=0; i
{
sum1+=a[i][i];
sum2+=a[i][n-1-i];
}
if (sum1!=sum2) return 0;
for (i=0; i
{
sum2=0;
for (int j=0; j
{
sum2+=a[i][j];
}
if (sum1!=sum2) return 0;
}
for (int j=0; j
{
sum2=0;
for (i=0; i
{
sum2+=a[i][j];
}
if (sum1!=sum2) return 0;
}
return 1;
}

int main()
{
if (check())
{
cout << "Tova e magicheski kvadrat.";
}
else cout << "Tova ne e magicheski kvadrat.";
return 0;
}


Използваме функции, за да напишем програмата. Фонкцията "check" извършва всички действия. Първоначално в нея декларираме двумерен масив с максимални размери 20 на 20. След това потребителя, който използва програмата трябва да въведе страните на квадратната мрежа - това става само с едно число. След въвеждането на големината на мрежата, потребителят въвежда всички числа (желателно е след края на всеки ред да натиска Enter, за да си личи точната мрежа). След като се въведат всички числа от мрежата, програмата започва проверки на сумите по всички редове, колони и диагонали.

Първоначално се проверяват и сверяват двата диагонала, като техните суми се запазват в променливите "sum1" и "sum2". Ако двете суми НЕ съвпадат, функцията приключва работа и преминава към функцията "main", където се извежда съобщение, че мрежата не е магически квадрат. Но ако сумите по двата диагонала съвпадат, започва проверка по редовете и колоните. При първото несъвпадение, функцията прекъсва работа. Ако всички сравнения на сумите по всички редове, колони и диагонали са верни, функцията "main" ще изведе съобщение, че въведената мрежа от числа е магически квадрат.

Автор: Ivan

 



Коментари (1)

VirtualWolf на 16.12 2007 в 00:23ч.
Това се нарича МНОГОМЕРЕН МАСИВ !!!! В случая ДВУМЕРЕН МАСИВ !!!

Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com