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.

6 mátrix feldolgozás pascal

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.

6 mátrix feldolgozás pascal

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 mátrix feldolgozás pascal

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¿;

6 mátrix feldolgozás pascal

• 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)

6 mátrix feldolgozás pascal

Á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.

6 mátrix feldolgozás pascal

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

6 mátrix feldolgozás pascal

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

6 mátrix feldolgozás pascal

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