Logo referatele carte



Patrat magic



Constructia unui patrat magic impar

Problema:

            Sa se construiasca un patrat magic de dimensiune n ( cu n impar), adica o matrice cu n linii si n coloane avand ca elemente numerele naturale 1, 2, , n^2 astfel incat sumele elementelor pe linii, pe coloane si pe cele doua diagonale sa fie identice.

Introducere:

            Un patrat magic consta dintr-un tablou de numere aranjate in forma unui patrat, astfel incat sumele elementelor din fiecare linie, coloana si din cele doua diagonale sa fie identice; valoarea sumei se numeste numar magic. Un patrat magic este de ordin n daca pe o latura a sa sunt asezate n numere, iar in componenta sa intra numerele 1, 2, 3…, n2; atunci numarul magic poate fi calculat cu formula: numar magic = n(n2+1)/2.

        

            Exista un singur patrat magic de ordinul 3 (cu toate ca prin rotatii si simetrii pot fi obtinute 8 astfel de patrate):

4

3

8

9

5

1

2

7

6

            Patratele magice de ordin 4 sunt in numar de 880 (7040 daca sunt considerate si rotatiile si simetriile), iar numarul patratelor magice de ordin 5 este de circa 13.000.000.

            Sunt cunoscute mai multe metode de obtinere a patratelor magice, ele diferind pentru patratele de ordin par, respectiv impar.

Metoda:

            O metoda foarte simpla consta in urmatoarele actiuni:

Ø     Se plaseaza 1 in centrul ultimei coloane;

Ø     Se merge in linie oblica, dreapta-jos, cu numarul urmator; daca se iese din patrat prin partea dreapta, se merge in partea opusa, in stanga liniei unde trebuia depus numarul, iar daca se iese prin partea de jos a patratului, se merge in partea de sus a coloanei unde trebuia depus numarul;

Ø     Dupa ce se completeaza un grup de n numere, se merge cu o casuta spre stanga, pe aceeasi linie, pentru a se repeta apoi pasul 2 si a genera urmatorul grup de n numere.

Se obtine in final urmatorul patrat magic:

11

10

4

23

17

18

12

6

5

24

25

19

13

7

1

2

21

20

14

8

9

3

22

16

15

Despre program:

         Programul permite 2 tipuri de afisare a patratului magic:

1.     Direct

-       programul afiseaza patratul chiar daca nu o sa incapa pe ecran

2.     Pas cu pas

-       dupa fiecare numar afisat trebuie apasata o tasta

-       se vor afisa numai patratele cu n<15. Pentru n>15 afisarea se va face numai in mod ‘Direct


Sursa programului:

#include <stdio.h>#include <conio.h>unsigned char m[200][200];int n;

void af()void mod_1()

         else

   m[i][j]=(unsigned char)nr;

  }

 af();

}

void mod_2()

 int poz=wherey()-1;

 int i=n/2+1,j=1;

 for (int nr=1;nr<=n*n;nr++)

 

         else

   gotoxy(j*4,poz+i);

   printf('%3d ',nr);

   getch();

  }

 gotoxy(1,poz+n);

}

void main(void)

      else printf('Ati introdus un numar par');

 printf('nContinuati? (d/n) ');c=getch();

 }while (c!='n');

}

Copyright © Contact | Trimite referat



Ultimele referate adaugate
Mihai Beniuc
   - Mihai beniuc - „poezii"
Mihai Eminescu Mihai Eminescu
   - Mihai eminescu - student la berlin
Mircea Eliade Mircea Eliade
   - Mircea Eliade - Mioara Nazdravana (mioriţa)
Vasile Alecsandri Vasile Alecsandri
   - Chirita in provintie de Vasile Alecsandri -expunerea subiectului
Emil Girlenu Emil Girlenu
   - Dragoste de viata de Jack London
Ion Luca Caragiale Ion Luca Caragiale
   - Triumful talentului… (reproducere) de Ion Luca Caragiale
Mircea Eliade Mircea Eliade
   - Fantasticul in proza lui Mircea Eliade - La tiganci
Mihai Eminescu Mihai Eminescu
   - „Personalitate creatoare” si „figura a spiritului creator” eminescian
George Calinescu George Calinescu
   - Enigma Otiliei de George Calinescu - geneza, subiectul si tema romanului
Liviu Rebreanu Liviu Rebreanu
   - Arta literara in romanul Ion, - Liviu Rebreanu

Cauta referat
Scriitori romani