Konspektai

Free Pascal. Dvimačiai masyvai arba matricos

9.6   (2 atsiliepimai)
Free Pascal. Dvimačiai masyvai arba matricos 1 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 2 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 3 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 4 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 5 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 6 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 7 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 8 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 9 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 10 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 11 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 12 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 13 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 14 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 15 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 16 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 17 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 18 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 19 puslapis
Free Pascal. Dvimačiai masyvai arba matricos 20 puslapis
www.nemoku.lt
www.nemoku.lt
Aukščiau pateiktos peržiūros nuotraukos yra sumažintos kokybės. Norėdami matyti visą darbą, spustelkite peržiūrėti darbą.
Ištrauka

10. Dvimačiai masyvai arba matricos. Masyvų rikiavimas 10.1. Matrica (dvimatis masyvas) ir jos elementai Daugiamačiais masyvais (matricomis) vadinami duomenų rinkiniai, kurių elementai nurodami dviem indeksais. Populiariausia forma vaizduoti daugiamačius masyvus yra lentelė. Matematikoje jau buvo duomenys, kuriuose elementai išdėstyti lentelės pavidalu – matrica. Matematikoje matrica žymima didžiąją raidė, o elementais – atitinkama mažąja raidė su dviem indeksais. Matrica A= a11, a12, a13,…, a1m Matricos antros eilutės trečio stulpelio elementas a21, a22, a23,…, a2m Matricos vardas ……………………………… an1, a22, a23,…, anm Paskalyje matrica žymima identifikatoriumi – vardu, pvz., matricos viršuje vardas – A. Pirmasis elemento indeksas nurodo jo lentelės vietos eilutėje antrasis – stulpelyje. Čia panašu kaip plokštumoje tašką galima nurodyti jo abscise ir ordinate – koordinatėmis (x, y), taip matricos elementai nurodomos eilutės ir stulpelio numeriais. Paskalio kalboje duomenų tipo dvimačio masyvo kaip ir vienmačio masyvo nėra. Programuotojas turi pats sukurti dvimačio masyvo duomenų tipą. Tai daroma programos pradžioje. Paskalyje yra aprašas dvimačio masyvą, kai iškarto aprašomi abu indeksai ir elementų tipas: Dvimačio masyvo tipo aprašymas type =array[,] of ; Čia: • – sukurto dvimačio masyvo tipo vardas; • ir tai diskretinių reikšmių intervalas laužtiniuose skliaustose, pvz., [1..10, 1..20]; • – dvimačio masyve saugomų elementų tipas. Tarkime, kad turime tokius aprašus: type Matr=array[1..5, 1..5] of Real; var A: Matr Tada tokia duomenų struktūra gali saugoti, pvz., dvimatį masyvą – matricą iš penkių eilučių ir šešių stulpelių: Matrica    11, 2, 3, 4, 54     1, 7, 8, 9, 11 A =  11, 2, 5, 6, 1  2, 1, 5, 6, 3  21, 1, 5, 6, 14 Programoje užrašas A[2, 3] nurodo antros eilutės trečio stulpelio elementą, kurio reikšmė yra 8. Vadinasi, programoje matricos elementai yra nusakomi matricos vardu, po kurio laužtiniuose skliaustose užrašomi eilutės ir stulpelio indeksai. Kartais reikia vienos matricos elementus pakeisti kitos matricos elementais. Toks veiksmas vadinasi matricų kopijavimu. Jeigu kopijuojamos matricos A, B yra to paties tipo, tuomet galime vartoti priskyrimą A: =B; kuris pakeičia matricos A elementus į matricos B. Pastaba. Priskyrimas yra vienintelis veiksmas, kurį galima atlikti su masyvais. 10.2. Duomenų įvedimas ir išvedimas į matricą procedūromis Duomenų įvedimas į matricą, tai reiškia, kad jo visiems jos elementams priskiriamos reikšmės. Paskalyje kaip ir vienmačiam masyvui nėra priemonių iš karto įvesti duomenis į matricą bei išvesti. Sudarant programą, pageidautina numatyti, koks gali būti didžiausias matricos eilučių kiekis ir didžiausias stulpelių kiekis ir juos nurodyti matricos apraše. Jeigu tą atlikti, matricos dydis bus nepriklausomas ir jį galima pakeisti programoje tik vienoje programos vietoje (pvz., sekcijoje const) ir pakeičiau, turėsime kitokį matricos dydį. Tarkime, kad aprašome matricą Matr iš 100 eilučių, 200 stulpelių naudojant dvi vardinės konstantos MaxEil ir MaxSt: const MaxEil =100; MaxSt=200 {vardinės konstantos} type Matr = array[1..MaxEil, 1..MaxSt]] of Integer; Po tipo aprašymą galima aprašyti kintamąjį X matricos Matr tipu: var X: Matr; Uždavinys Įveskite į matricą (dvimatį masyvą) duomenis ir išveskite juos ciklu for. Programoje panaudokite procedūras matricos pildymui ir išvedimui. 10.1. Programa program Matricos_pildymas_duomenimis; const MaxEil=100; MaxSt=200; {Maksimalus masyvo ilgis} type Matr=array[1.. MaxEil, 1.. MaxSt] of Integer; {Dvimačio masyvo tipo aprašymas} var A: Matr; {Kintamojo A matricos tipu aprašymas} eilut, stulp: Integer; {Eilutės ir stulpelio ilgis} procedure MatricosPildymas(var X: Matr; n, m: Integer); var i, j: Integer; {Lokalieji kintamieji - matricos indeksai} begin for i:=1 to n do for j:=1 to m do begin Write('A[', i , ',' ,j,']=>'); ReadLn(X[i,j]); end; {for} end; procedure MatricosIsvedimas(X: Matr; n, m: Integer); var i, j: Integer; {Masyvo indeksas ir ciklo for skaitiklis} begin WriteLn('Matricos išvedimas lentele:'); for i:=1 to n do begin for j:=1 to m do Write(X[i,j]:3); WriteLn; end; end; begin Write('Matricos eilučių kiekis=>'); ReadLn(eilut); Write('Matricos stulpelių kiekis=>'); ReadLn(stulp); WriteLn; {Tuščia eilutė} MatricosPildymas(A, eilut, stulp); WriteLn; {Tuščia eilutė} MatricosIsvedimas(A, eilut, stulp); ReadLn; end. Kaip veikia ši programa Procedūroje MatricosPildymas yra įterptiniai ciklai: for i:=1 to n do for j:=1 to m do begin Write('A[', i , ',' ,j,']=>'); ReadLn(X[i,j]); end; {for Vidiniame cikle kinta ciklo skaitiklis j nuo 1 iki m (stulpelių kiekio) ir kas karta užpildoma viena matricos eilutė. Po to, didinamas išorinio ciklo i skaitiklis vienetu ir vėl vykdomas vidinis ciklas nuo 1 iki m. Išorinio ciklo i skaitiklis keičias nuo 1 reikšmės iki n – eilutės kiekio. Taigi, matricos eilutės užpildomos eilutėmis. Analogiškai veikia įterptiniai ciklai procedūroje MatricosIsvedimas: for i:=1 to n do begin for j:=1 to m do Write(X[i,j]:3); WriteLn; end; Skirtumas tame, kad čia išorinio ciklo gale yra operatorius WriteLn, kuris pradeda išvedima matricos eilutės ekrane naujoje eilutėje. Mūsų tikslams, geriau mokėti pildyti matricos atliktiniais skaičiais. Uždavinys Užpildykite matricą atsitiktiniais sveikaisiais skaičiais iš intervalo [0;100) (vadinasi, nuo 1 iki 99) ir išveskite juos į ekraną ciklu for. Programoje panaudokite procedūras matricos pildymui ir išvedimui. 10.2. Programa program Mtricos_pildymas_atsitiktinių_skaičių; const MaxEil=200; MaxSt=200; {Maksimalus masyvo ilgis} type {Dvimačio masyvo tipo aprašymas} Matr=array[1..MaxEil, 1..MaxSt] of Integer; var A: Matr; {Kintamojo A matricos tipu aprašymas} eilut, stulp: Integer; {Eilutės ir stulpelio ilgis} procedure MatricosPildymas(var X: Matr; n, m: Integer); var i, j: Integer; {Lokalieji kintamieji - matricos indeksai} begin for i:=1 to n do for j:=1 to m do X[i,j]:=Random(100); end; procedure MatricosIsvedimas(X: Matr; n, m: Integer); var i, j: Integer; {Lokalieji kintamieji - matricos indeksai} begin WriteLn('Matricos išvedimas lentele:'); for i:=1 to n do begin for j:=1 to m do Write(X[i,j]:3); WriteLn; end; end; begin Randomize; {Atsitiktinių skaičių generatorių inicijavimas} Write('Matricos eilučių kiekis=>'); ReadLn(eilut); Write('Matricos stulpelių kiekis=>'); ReadLn(stulp); WriteLn; {Tuščia eilutė} MatricosPildymas(A, eilut, stulp); MatricosIsvedimas(A, eilut, stulp); ReadLn; end. 10.3. Matricų formavimas Matricos elementų formavimas gali būti atliekami programos veiksmų pagalba. Tai reiškia, kad matricos elementai apskaičiuojami ir priskiriami programos vykdymo metu. Matricos formavimui yra organizuojami įterptiniai ciklai. Tik reikia žinoti kiek bus elementu ir stulpelių. Jų kiekius gali nurodyti vartotojas. Uždavinys Sudarykite stačiakampę matricą n eilučių ir m stulpelių, kurios elementai a[i,j]=i2+j2 Programoje panaudokite procedūras. 10.3. Programa program Matricos_formavimas; const MaxEil=200; MaxSt=200; {Maksimalus masyvo ilgis} type {Dvimačio masyvo tipo aprašymas} Matr=array[1..MaxEil, 1..MaxSt] of Integer; var A: Matr; {Kintamojo A matricos tipu aprašymas} eilut, stulp: Integer; {Eilutės ir stulpelio ilgis} procedure MatricosPildymas(var X: Matr; n, m: Integer); var i, j: Integer; {Lokalieji kintamieji - matricos indeksai} begin for i:=1 to n do for j:=1 to m do X[i,j]:= i * i+j * j; end; procedure MatricosIsvedimas(X: Matr; n, m: Integer); var i, j: Integer; {Lokalieji kintamieji - matricos indeksai} begin WriteLn('Matricos išvedimas lentele:'); for i:=1 to n do begin for j:=1 to m do Write(X[i,j]:3); WriteLn; end; end; begin Write('Matricos eilučių kiekis=>'); ReadLn(eilut); Write('Matricos stulpelių kiekis=>'); ReadLn(stulp); WriteLn; {Tuščia eilutė} MatricosPildymas(A, eilut, stulp); MatricosIsvedimas(A, eilut, stulp); ReadLn; end. 10.4. Uždaviniai su veiksmai atskiroje matricos eilutėje( stulpelyje) Tarkime, kad turime matricą A[i, j], kurioje yra n eilučių ir m stulpelių. Fiksuosim stulpelio numerį, pvz., j=5. Tada 5 eilutė yra vienmatis masyvas: A[1, 5], A[2, 5], A[3, 5], ..., A[n, 5]. Todėl veiksmai 5-joje eilutėje galima traktuoti kaip veiksmai vienmačiame masyve A[i, 5]. Vadinasi, kad visos apdagojimų veiksmai, kurie anksčiau buvo naudojami masyvams, galima taikyti matricų eilutėms apdoroti, pvz., ciklą for. Toki būdu galima užfiksuoti eilutes numerį pvz., i=5. Tada 5 stulpelis yra vienmatis masyvas: A[5, 1], A[5, 2], A[5, 3], ..., A[5, m]. Veiksmams su visais vienos eilutės (arba stulpelio) elementais atlikti visada turi būti sukurtas ciklas. Prieš ciklą atliekami reikalingi paruošiamieji veiksmai (pradinių reikšmių suteikimas ir t.t), o rezultatai gaunami įvykdžius ciklo veiksmus. Pvz.. fiksuosim eilutes numerį –k, tuomet k-ojo eilutes elementų suma apskaičiuojama taip: Suma:=0; for j:=1 to m do Suma:= Suma+A[k, j]; WriteLn(Suma); To paties eilutes mažiausio elemento reikšmę Min randama taip: Min:= A[k, j]; for j:=2 to m do if A[k, j]

Daugiau informacijos...

Šį darbą sudaro 4166 žodžiai, tikrai rasi tai, ko ieškai!

Turinys
  •  10. Paskaita
  • 10. Dvimačiai masyvai arba matricos 2
  • 10.1. Matrica (dvimatis masyvas) ir jos elementai 2
  • 10.2. Duomenų įvedimas ir išvedimas į matricą procedūromis 3
  • Uždavinys 3
  • 10.1. Programa 3
  • Kaip veikia ši programa 4
  • Uždavinys 5
  • 10.2. Programa 5
  • 10.3. Matricų formavimas 5
  • Uždavinys 6
  • 10.3. Programa 6
  • 10.4. Uždaviniai su veiksmai atskiroje matricos eilutėje( stulpelyje) 6
  • Uždavinys 7
  • 10.4. Programa 7
  • Kaip veikia ši programa 8
  • 10.5. Uždaviniai su matricos dalimis 8
  • Uždavinys 9
  • 10.5. Programa 9
  • Kaip veikia ši programa 10
  • Uždavinys 11
  • 10.6. Programa 11
  • Kaip veikia ši programa 12
  • 10.6. Uždaviniai su visais matricos elementais 13
  • Uždavinys 13
  • 10.7. Programa 13
  • Kaip veikia ši programa 14
  • 10.8. Programa 14
  • Nagrinėsime pagrindinį operaciją, kuri atliekama tiesinėje algebroje: sudauginti dvi matricos. Uždavinys 14
  • 10.9. Programa 14
  • 10.7. Matricų pertvarkymas 15
  • Uždavinys 15
  • 10.10. Programa 15
  • Kaip veikia ši programa 17
  • 10.8. Masyvų rikiavimas 17
  • Masyvo rikiavimo algoritmas išrinkimu 17
  • Uždavinys 18
  • 10.11. Programa 18

★ Klientai rekomenduoja


Šį rašto darbą rekomenduoja mūsų klientai. Ką tai reiškia?

Mūsų svetainėje pateikiama dešimtys tūkstančių skirtingų rašto darbų, kuriuos įkėlė daugybė moksleivių ir studentų su skirtingais gabumais. Būtent šis rašto darbas yra patikrintas specialistų ir rekomenduojamas kitų klientų, kurie po atsisiuntimo įvertino šį mokslo darbą teigiamai. Todėl galite būti tikri, kad šis pasirinkimas geriausias!

Detali informacija
Darbo tipas
Lygis
Universitetinis
Failo tipas
Word failas (.doc)
Apimtis
20 psl., (4166 ž.)
Darbo duomenys
  • Programų konspektas
  • 20 psl., (4166 ž.)
  • Word failas 249 KB
  • Lygis: Universitetinis
www.nemoku.lt Atsisiųsti šį konspektą
Privalumai
Pakeitimo garantija Darbo pakeitimo garantija

Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.

Sutaupyk 25% pirkdamas daugiau Gauk 25% nuolaidą

Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.

Greitas aptarnavimas Greitas aptarnavimas

Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!

Atsiliepimai
www.nemoku.lt
Dainius Studentas
Naudojuosi nuo pirmo kurso ir visad randu tai, ko reikia. O ypač smagu, kad įdėjęs darbą gaunu bet kurį nemokamai. Geras puslapis.
www.nemoku.lt
Aurimas Studentas
Puiki svetainė, refleksija pilnai pateisino visus lūkesčius.
www.nemoku.lt
Greta Moksleivė
Pirkau rašto darbą, viskas gerai.
www.nemoku.lt
Skaistė Studentė
Užmačiau šią svetainę kursiokės kompiuteryje. :D Ką galiu pasakyti, iš kitur ir nebesisiunčiu, kai čia yra viskas ko reikia.
Palaukite! Šį darbą galite atsisiųsti visiškai NEMOKAMAI! Įkelkite bet kokį savo turimą mokslo darbą ir už kiekvieną įkeltą darbą būsite apdovanoti - gausite dovanų kodus, skirtus nemokamai parsisiųsti jums reikalingus rašto darbus.
Vilkti dokumentus čia:

.doc, .docx, .pdf, .ppt, .pptx, .odt