Matricea inversă, rezolvarea problemelor de programare

Explicarea problemei și a algoritmului de soluție

primul element devine ultimul și ultima primul la reversul șirului; în al doilea rând - penultima și penultima - a doua; al treilea element ia locul al treilea de la sfârșitul anului, și că, în locul celui de al treilea, și așa mai departe. d. Astfel de permutări de perechi trebuie să fie făcut în două ori mai mică decât lungimea de matrice, care este de a rearanja elementele atât timp cât elementele de schimbare nu se întâlnesc în centrul de matrice.

Desigur, puteți să rearanjați, începând de la mijlocul matricei și mutându-vă la început și sfârșit. Cu toate acestea, metoda de mai sus este ușor mai simplă.

Dacă există un număr impar de elemente în matrice, atunci în mijlocul matricei există un element care nu are o pereche și care nu trebuie schimbat. Dacă există un număr par de elemente în matrice, atunci în mijloc există o pereche, care trebuie de asemenea schimbată. În orice caz, numărul de schimburi va fi egal cu numărul elementelor matrice împărțite la 2.

Astfel, matricea are loc în ciclul invers, numărul de iterații (trece) este egală cu nu mai mult de jumătate din numărul de elemente. În corpul ciclului există un schimb de elemente. Dacă indexare este (i) o matrice începe la unul și numărul de elemente N, indicele elementului care trebuie schimbate vor fi în conformitate cu formula N-i + 1. Dacă indexarea merge de la zero, atunci elementul opus i este găsit ca N-i-1.

Codul sursă în limbajul de programare Pascal

const N = 10;
var
a. mulțime # 91; 1. N # 93; de intreg;
i. octet;
b. întreg;
începe
pentru i. = 1 la N face
citit # 40; o # 91; eu # 93; # 41; ;

pentru i. = 1 la N div 2 nu începe
b. = a # 91; eu # 93; ;
o # 91; eu # 93;. = a # 91; N - i + 1 # 93; ;
o # 91; N - i + 1 # 93;. = b;
se încheie;

pentru i. = 1 la N face
scrie # 40; o # 91; eu # 93;. „“ # 41; ;

Exemplu (exemple) de executare a programului în Pascal

Articole similare