Eliminarea elementelor de matrice prin offset, blogul lui Delphi programmer

În acest articol, aș dori să vorbesc despre modul în care puteți șterge elemente de matrice prin compensarea acestora. Mulți oameni utilizează tehnologia de eliminare - prin înlocuirea, ștergerea elementelor, de exemplu, cu zerouri sau altceva, și atunci când ieșesc elemente ale matricei, acestea nu se transmit. Mulți scris doar într-o gamă diferită de elementele pe care doriți și apoi imprimați-l, nu este corect, că este, de fapt, avem, de asemenea, o matrice, astfel încât în ​​el trebuie să eliminați elemente, nu să se mute la alta, iar în cazul în care elementele nu apar, ele ei stau de fapt acolo și iau un loc în memorie, care nu este bun. Algoritmul prin schimbarea foarte simplu, doar cu elementele care urmează să fie eliminate, de exemplu, toate „zero“ începe înainte de sfârșitul deplasării elementelor de matrice, iar apoi ciclul începe peste tot din nou și, atâta timp cât nu există nici un element în matrice pe care doriți să-l ștergeți. Pe formularul am următoarele componente, vom face toate acestea nu în modul consola, ci în grafic

În TStringGrid, proprietatea Options -goEditing este setată la True. în FixedCols. FixedRows setat la 0, setați proprietatea RowCount la 1 (deoarece vom lucra cu o matrice unidimensională).

Apoi, în evenimentul Buton OnClick, am scris următorul cod

Apropo, cu privire la tema de programare - există multe medii de dezvoltare, limbi de programare, compilatoare, una dintre limbile de programare populare este în prezent Java. Dacă doriți să învățați cum să programați, trebuie doar să descărcați cartea Java Philosophy. care vă va ajuta să aflați mai multe tehnici noi și metode de programare în această limbă.

în cazul în care este ușor de făcut coarda
pentru x: = stringgrid1.row la stringgrid1.rowcount-1 nu
începe
stringgrid1.rows [x] .comatext: = stringgrid1.rows [x + 1]. comatext;
se încheie;
stringgrid1.rowcount: = stringgrid1.rowcount-1;

Adevărul este ștergerea șirului selectat într-un șir

ajută la a face două cicluri unul merge adaugă date și a doua, în cazul în care valoarea este zero, apoi șterge șirul în timp ce acestea nu trebuie să interfereze unii cu alții, am ceva de genul asta se dovedește în mod necinstit

Ajutați-vă să înțelegeți. Este necesar ca în combobox să fie numele tuturor discurilor, cu excepția celor care există deja în lista de ...

procedura TForm1.FormCreate (expeditor: TObject);
var
i, j, i_name, j_name: integer;

i_name: = 0;
j_name: = 0;

pentru j: = j_name la ListBox1.Items.Count-1 face
începe
pentru i: = i_name la 25 nu
începe
dacă drv_name [i] ListBox1.Items.Strings [j] atunci

ComboBox1.Items.Add (drv_name [i]);
i_name: = i_name + 1;
se încheie;
se încheie;
ListBox1.Refresh;
ComboBox1.Refresh;