Inserarea și ștergerea elementelor unei matrice bidimensionale

Am considerat deja astfel de acțiuni pentru rețelele unidimensionale. Generalizați pentru două-dimensionale.

Introduceți un șir de la zero după linia cu numărul k.

Pentru a rezolva această problemă este necesar:







  1. Primele linii k rămân neschimbate.
  2. Toate liniile de la k-th se mută înapoi, este mai bine să începeți cu ultima linie și să mergeți la (k + 1) -th.
  3. Elemente ale șirului k + 1 atribuie o valoare dată.

În plus, trebuie să modificați dimensiunea matricei. Deoarece inserăm un rând, numărul de rânduri va fi unul:

Acum, descrieți procedura de inserare:

Deoarece numărul de rânduri se modifică, procedura de tipărire trebuie modificată, trebuie să emită un număr dat de linii, începând cu primul:

O parte din programul principal va fi:

  1. Dacă trebuie să inserați după un șir care îndeplinește o anumită condiție, trebuie doar să-i găsiți numărul și sarcina este redusă la rezolvarea primului exemplu.
  2. Dacă trebuie să inserați după toate rândurile cu condiția specificată, atunci trebuie să măriți dimensiunea după rânduri și, dacă șirul satisface condiția, atunci introduceți-o. Trebuie remarcat că este mai bine să priviți liniile din ultima și să introduceți contorul rândurilor introduse.
  3. Inserția înaintea liniei cu acest număr se va schimba numai prin faptul că nu este necesară trecerea din linia (k + 1), dar din linia k.
  4. Dacă trebuie să introduceți coloane, atunci dimensiunea crește pentru coloane și tot ceea ce nu se schimbă: trebuie să mutați coloanele înapoi și să scrieți o coloană nouă în acest loc.






Ștergeți linia cu numărul k.

Pentru a șterge o linie cu numărul k, trebuie să:

Treceți toate liniile începând de la una până la alta.

Ultima linie este "zero", adică atribuie valoarea 0 tuturor elementelor din ultimul rând.

Descrierea matricelor rămâne aceeași (pentru dimensiunea n * m). De asemenea, în program vom folosi procedura de ieșire Print1 din paragraful anterior. Vom afișa mai întâi toate liniile, iar al doilea, după eliminare, unul mai puțin. Acum, descrieți procedura de ștergere a unei linii cu acest număr:

Procedură Ștergere (k1: Integer; Var x: dmyarray);
Var i, j. integer;
începe
Pentru i: = k1 Pentru n-1
Pentru j: = 1 Pentru a face
x [i, j]: = x [i + 1, j];
Pentru j: = 1 Pentru m Do x [n, j]: = 0
End;

  1. Problema ștergerii unui rând cu o anumită condiție poate fi rezolvată în același mod, este necesar doar să-i găsiți numărul și, în lipsa unei astfel de linii, puteți să informați despre aceasta și să terminați programul.
  2. O altă problemă poate fi rezolvată prin utilizarea acestei proceduri - eliminarea tuturor rândurilor care îndeplinesc anumite proprietăți - imagine din ultimul rând la primul, în cazul în care șirul îndeplinește cerințele, atunci îl eliminăm și trece la următorul, în caz contrar doar du-te. Pentru producția eficientă trebuie să intre contorul, care ia în considerare numărul de rânduri șterse și derivarea matrice modificate peredaom valoarea Print1 Procedura n-k. unde k este contorul.






Trimiteți-le prietenilor: