6 mátrix feldolgozás pascal
Ebben az esetben, a mátrixokat a és b van 10 sorok és 30 oszlopok, valamint a mátrix,
ahol van 16 sor és 14 oszlop.
Ahhoz, hogy a mátrixelem meg kell adnia a nevét szögletes zárójelben, vesszővel elválasztva sor és oszlop száma:
Név [linenumber. oszlop_száma]
Név [linenumber] [oszlop_száma]
Például, h [2,4] 1 mátrixelem h. Ez összhangban van a szám
Két és oszlop száma négy.
Kezelni az összes mátrix elemeinek két ciklust kell használni. Ha a mátrix feldolgozása soronként, a külső ciklus végigmegy vonalon az elsőtől az utolsóig, majd az összes belső (első, második, harmadik és így tovább. D.) A elemei az aktuális sor. Amikor feldolgozó elem a mátrix által oszlopok külső hurok ezzel végiglépteti az oszlopok, a belső karakterlánc. Ábra. 6.1 ábra egy folyamatábra a feldolgozás sorok a mátrix ábrán. 6.2 oszlopokat. Itt, a számot i sor, J oszlop index, N a sorok száma, M az oszlopok száma a mátrix A.
Algoritmus progresszív kimenet mátrix elemeinek ábrán látható. 6.4.
A leírás mátrixokat Pascal-t a 5.2 fejezetben leírtakkal 5. fejezet fellebbezést elem A i, j a mátrix lehet elérni a szerkezet c
Tekintsük a végrehajtása input-output mátrixok konzolos alkalmazások. A szervezet a progresszív bemenet mátrix egy kétkörös sorok
és oszlopok, akkor az üzemeltető olvasni.
i: = 1-N tenni J: = 1-től m olvassák (A [i j.]);
Ebben az esetben a mátrix elemei minden egyes sor úgy, szóközzel elválasztva vagy tab karaktert, és csak a sor végére, hogy nyomja meg az Entert.
CÉL 6.1. Írj egy konzolos alkalmazás bemeneti mátrix valós számok és kimeneti azt a képernyőn.
Az alábbiakban egy példát input-output konzol alkalmazás mátrixban.
Írja be a mátrix is szervezhető segítségével a következő ciklusban.
i: = 1-N tenni J: = 1-től m do kezdeni
levelet ( 'A (' i j ') =' .. '' ..); readln (A [i. j])
Az input-output mátrixok alkatrészeket használhat típusú TStringGrid,
akikkel találkoztunk az 5. fejezetben.
Tekintsük az alábbi problémát példaként.
CÉL 6.2. Készítsen 2 program átültetés mátrix
Folyamatábra mátrix átültetés ábrán látható. 6.6. Amikor átültetés mátrix A (n, M) egy B mátrix (M, N).
Ábra. 6.6. Folyamatábra transzponált mátrixszal A
Tekintsük a konkrét esetben a rögzített méretű mátrix átültetés A (4,3).
A forma, és helyezzük egy címkét Label1 Label2 Caption tulajdonságait egy adott A mátrix és a transzponált mátrixszal B, TStringGrid két alkatrész. változó azok tulajdonságait táblázatban látható. 6.1. gombot, és átültették
Ablak alkalmazás ábrán bemutatott formában. 6.7.
2 ültették mátrixa előállított mátrix eredeti mátrix A (n, m) cseréje sorokat oszlopok.
6.1. Tulajdonságok StringGrid1 alkatrészeket. StringGrid2.
// címe mátrix elemeinek zajlik oszlopok.
StringGrid2. C e l l s [i. j]: = IntToStr (B [j i].); végén;
A program eredményeit mutatjuk látható. 6.8.
Ábra. 6.8. Az eredmények a munkaprogram átültetését mátrix (3,4)
Annak igazolására, a bemeneti-kimeneti mátrix keresztül alkatrész TStringGrid megvizsgáltuk munka fix méretű tömbök Egy (4,3) és a B (3,4). Most tekintsük a általános esetben a probléma megoldásának az átültetés mátrix (n, m).
Helyezzük a következő alkatrészeket a formában:
• címke Label1 jelzett ¾Vvedite dimenzió matritsy¿;
• címke Label2 jelzett ¾ N = ¿;
• címke Label3 jelzett ¾ M = ¿;
• címke Label4 jelzett ¾Iskhodnaya mátrix ¿;
• címke Label5 jelzett ¾Preobrazovannaya B mátrix ¿;
• Edit1 beviteli mező a szám megadásával N;
• Edit2 beviteli mező beviteléhez M száma;
• StringGrid1 komponens bemenetére a kezdeti mátrix;
• StringGrid2 komponens tárolására az átültetett B mátrix;
• A ¾Vvod¿ jelzett Button1 gombot a méretei a mátrix;
• Button2 feliratú gombra ¾Ochistit¿ tisztázni a lé-
• Button3 feliratú gomb ¾ ¿átültetése a probléma megoldásának az átültetés A mátrix;
• 4-es gombot gomb felirata ¾Vyhod programmy¿ befejezéséhez
Akkor az alkatrészeket egy forma ábrán látható. 6.9.
Ábra. 6.9. Az ablak alakja döntési probléma transzponált mátrixszal Egy (N, M)
Ábra. 6.10. Start képernyő programot átültetését mátrix A (n, m)
Tulajdonságainak beállítása jelenik meg (Visible) False a komponensek Label4 címkék
Label5. StringGrid1. StringGrid2. Button2 és Button3 gombot. Aztán, amikor
A program elindítása csak akkor lesz látható, felelős komponensek a bemeneti mátrix mérete, és egy gombot Out programot (lásd. ábra. 6.10) 3. A mátrixok A és B. N. M méreteik nyilvánítja világszerte.
TForm1 = c L a s s (TForm)
Button1. TButton; Button2. TButton;
4-es gombot. TButton; Edit1. tSzerkesztés;
Caption tulajdonság 3 van beállítva, így a mátrix ültetni.
StringGrid2. TStringGrid; magán
A, B: array [1 2 5. május 1 2] A integer;
N, M: integer; Form1. TForm1;
Kilépés gomb kezelő szoftver a szokásos és az alábbiakban mutatjuk be.
eljárás TForm1. Button4Click (Sender TObject.); kezdődik
Most írjuk felvezető üzemmódválasztó gombok amelyet be kell juttatni, és ellenőrizze a helyességét a mátrix méretét módjától, és állítsa tulajdonságok StringGrid1 StringGrid2 összetevőit (a sorok és oszlopok) láthatóvá tenni StringGrid1 komponenst. Át kell ültetni gombot, láthatatlan komponensek felelősek a bejegyzést a mátrix mérete (címke Label1. Címke2. Label3. Edit1 beviteli mezők és Edit2. Enter gomb).
eljárás TForm1. Button1Click (Sender TObject.); var i. byte; kod_n, kod_m, kod. integer;
// Írja be a mátrix dimenzióját.
// A karakter információ átalakul egy számot, és tárolja //
Val (Edit1 szöveg, N, kod_m.); // változó M Val (Edit2 szöveg, M, kod_n.); // és változó N.
// Ha a konverzió sikeres volt, és az impozáns méretű // egyezik a leírás
I f (kod_n = 0) és (kod_m = 0) és az (N> 0) és az (N<26) and (M>0) és (M<26)
// teszi az első mátrix,
// címe mátrix elemeinek zajlik oszlopok.
StringGrid2. C e l l s [i. j]: = IntToStr (B [j i].); Buuton1. V i S i b L E: = False;
Továbbra is írni az eseménykezelő, ha rákattint a Törlés gombra. Ha erre a gombra kattint, a következő meg kell történnie:
• Tisztítás tartalom StringGrid1 alkatrészeket. StringGrid2;
• StringGrid1 alkatrészeket. StringGrid2 és a hozzájuk tartozó címkék labe4 és Label5. és transzponálás gomb törlése nevi-
• Enter gomb láthatóvá válik;
• a beviteli mezők vannak írva kiindulási értékeit mátrix mérete (N = 4,
eljárás TForm1. Button3Click (Sender TObject.); var i. j. integer;
// Tiszta StringGrid1 komponenst. A StringGrid1 do
i: = 1 ROWCOUNT - 1 do
j: = 1 ColCount - 1 do
// Tiszta StringGrid2 komponenst. A StringGrid2 do
i: = 1 ROWCOUNT - 1 do j: = 1 ColCount - 1 do
// Hogy a láthatatlan elemek StringGrid1, StringGrid2, // labe4, Label5.
StringGrid1. V i S i b L E: = False;
StringGrid2. V i S i b L E: = False; L a b e l 4. V i S i b L E: = False;
L a b e l 5. V i S i b L E: = False;
// Hogy a láthatatlan gombok és ¾Transponirovat¿ ¾Ochistit¿.
Button2. V i S i b L E: = False;
Button3. V i S i b L E: = False;
// Mindenképpen gomb látható ¾Vvod¿.
Button1. V i S i b L E: = True;
// rögzíti a kezdeti mérete a mátrix // (N = 4 M = 3).
Edit2. Text: = '3'; végén;
Kaptunk egy működő program átültetése a mátrixban. Ábra. 6.11 eredményeit mutatja átültetés mátrix (2,4).
Figyeljük meg a kapcsolat a szolgáltató összetevő neve do utasítás;
amely megkönnyíti a hozzáférést a komponens tulajdonságait. A szolgáltató neve belül
komponens hozzáférni az ingatlan, akkor nem tudja használni. Például, a tisztító elemek A mátrix helyett üzemeltetők