Am fost foarte surprins când am primit o solicitare pentru a vorbi despre matrice și sortarea acestora în Delphi. Dar timpul a fost solicitat, iar site-ul nostru este conceput pentru a ajuta la dezvoltarea Delphi, te-am decis să scriu acest articol, care vă va spune despre posibilele acțiuni cu matrice din Delphi. În acest caz, vom scrie unele caracteristici personalizate, care ne va ajuta în viitor, atunci când se ocupă cu matrice.
matrice de intrare
Pentru a lucra cu o matrice, acesta trebuie să fie de la început pentru a primi de la utilizator. Să încercăm să facem o matrice de intrare unidimensională o singură cutie de editare. Fiecare element al șirului va fi separat de separatorul precedent. După apăsarea butonului se va aloca un șir care conține o matrice, un prim subșir apoi aloca un al doilea subșir etc.
Să ne acum că sunt de gând să facă. Pune pe butonul formularul de buton, iar câmpul de editare.
Titlul funcțiilor noastre vor fi:
st - un șir care conține o matrice de expl - string delimitator n - numărul de subșir
Pentru n-lea substring (element de matrice) de primit ca o funcție șir argument înlătură mai întâi s anterior n-1 substringul (Ciclul de), apoi gaseste delimitatorul care denotă sfârșitul subșiruri dorite alocă substring și returnează ca valoarea funcției ( prin numele lui).
Nu uitați să adăugați un titlu la secțiunea funcție modul de program public nostru.
Acum, pentru a testa performanța funcțiilor noastre scrie handler evenimentului OnClick pentru butonul nostru. La început ne folosim funcția noastră pentru a obține o serie de edit1, și apoi să deducă:
minimă de căutare (maxim) al elementului de matrice
Vom căuta elementul minim într-un tablou întreg. Pentru a face acest lucru, o mică schimbare OnClick handler eveniment pentru buton:
În acest exemplu, o [min] elementul minim de matrice, și min - numărul minim de element. Algoritmul este foarte simplu: compara fiecare element succesiv cu minime, în cazul în care aceasta este mai mică decât valoarea minimă, apoi depozitați-l într-un număr variabil min. și vom continua să avem să compare cu el.
Pentru a găsi elementul maxim, trebuie să modificați doar o singură linie:
Ar trebui să fie înlocuit cu:
Numai acum [min] - element de maximă și min - numărul maxim de elemente.
Căutarea unui element specific în matrice
Vom proceda prin simpla enumerare. Pentru a face acest lucru, vom trece prin toate elementele de matrice până când se întâlnesc elementul necesar, sau până când vom ajunge la sfârșitul șirului.
Element coincidență cu care avem nevoie pentru a găsi vor fi stocate în caseta de text Edit2. OnClick handler eveniment al butonului va avea următoarea formă:
Sortarea unei matrice
Aici am ajuns la cele mai interesante - pentru a sorta matrice. Luați în considerare algoritmul pentru așa-numitul selecție directă. Sensul său este după cum urmează:
Vizualizarea matrice din primul element, vom găsi elementul minim și puneți-l în locul primului element, iar primul element - în locul minim.
Apoi, vom vedea o matrice, începând cu al doilea element, apoi continua, așa cum am făcut înainte de acest pas.
Algoritmul este clar acum începe scrierea de cod. Tot același eveniment handler OnClick ia acum forma următoare:
Bună seara, te rog spune-mi,
Valori surf min
Așa că am copiat întregul program de
Acesta oferă o eroare astfel de Delfi
undeclaret idintifier 'GetSubSrt'
GetSubSrt ce este și în cazul în care să-l adăuga la Delfi sa citit ??
te rog spune-mi (
și dacă pot mâine pentru a rezolva problema a ramas 2 examen
sau în matrice nu sunt vrublyus (
Numărul 5.3. Având în vedere o serie de numere reale. Găsiți suma pătratelor
elementele de matrice.
și
№5.8. Având în vedere o serie de numere reale. Găsiți cel mai mic de
elementele de matrice cu numere chiar.
Multumesc in avans, cel puțin aproximativ GetSubStr prompt (
te rog spune-mi cum să facă acest lucru în matrice poate fi în măsură să înregistreze diferite tipuri de date! și astfel de litere și cifre! Multumesc anticipat!
pozhalusta ajuta la rezolvarea problemei
Având în vedere o serie de N.Preobrazovat el adăugând chiar și numere de elemente element.pervy prima și ultima din matrice nu se schimba
Vă rugăm să ajute scrie programku o matrice unidimensională. Iată problema: Având în vedere o serie de N. Măriți toate numerele chiar conținute în matrice, valoarea inițială a primului număr chiar. În cazul în care un număr chiar și într-o matrice sunt lipsesc, lăsați matrice neschimbat. Vă mulțumim anticipat.
în codul de mai jos, în loc de
Cu simplu dinamic
var myarr: array de string;
Procedura de adăugare;
începe
Setlength (myarr, Lemgth (myarr) +1);
myarr [Lungime (myarr) -1]: = 'Hello';
se încheie;
Procedura de spectacol (a: integer);
începe
dacă (a
se încheie;
Da, m-am bucurat să se răcească. Atunci nu am găsit matrice dinamice.
Ei bine, site-ul în sine, dar prostinky relevante de amuzant ma găsit informații interesante.
Totul a fost dat seama singur :)
Ceva ce am încercat să-mi placă cum să scrie, dar nu am putut.
Erori sunt -
[Eroare] Unit1.pas (46): Declarația de așteptat, dar 'PROCEDURĂ' găsite
[Warning] Unit1.pas (57): 'END' Text după finală - ignorate de compilator
[Eroare fatală] Project1.dpr (5): Nu s-a putut compila unitatea utilizată 'Unit1.pas'
și scoate în evidență linia roșie -
Procedura TForm1.Button1Click (Expeditor: TObject);
Explică-mi ce fac greșit.
P.S. Delfi a lucrat doar cu baze de date, iar universitatea a cerut un termen - „Dezvoltarea de aplicații Windows în matrice Delphi Căutare minimă ..“
în cazul în care o astfel de matrice de slobtsov sotoyal spun 10X10. și a fost necesară pentru a adăuga numerele sub forma unei piramide: a scrie.
-----* -----
----** ----
---*** ----
și așa mai departe **********
și FIHM versa descendent
-******** -
--****** -
------ ****
În principiu, totul este interesant masivi, bine gdezhe dinamic.