Konspektai

Free Pascal. Masyvai

10   (1 atsiliepimai)
Free Pascal. Masyvai 1 puslapis
Free Pascal. Masyvai 2 puslapis
Free Pascal. Masyvai 3 puslapis
Free Pascal. Masyvai 4 puslapis
Free Pascal. Masyvai 5 puslapis
Free Pascal. Masyvai 6 puslapis
Free Pascal. Masyvai 7 puslapis
Free Pascal. Masyvai 8 puslapis
Free Pascal. Masyvai 9 puslapis
Free Pascal. Masyvai 10 puslapis
Free Pascal. Masyvai 11 puslapis
Free Pascal. Masyvai 12 puslapis
Free Pascal. Masyvai 13 puslapis
Free Pascal. Masyvai 14 puslapis
Free Pascal. Masyvai 15 puslapis
Free Pascal. Masyvai 16 puslapis
Free Pascal. Masyvai 17 puslapis
Free Pascal. Masyvai 18 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

7. Masyvai 7.1. Masyvo sąvoka arba paprasti ir indeksuoti kintamieji Anksčiau mes nagrinėjime paprastus kintamuosius standartinio tipo (Real, Integer, Boolean, Char). Jų talpinimui į atminti kompiuteris išskiria vieną ląstelę. Tačiau uždaviniuose dažnai būna didelės vienodo tipo duomenų rinkinys, kuriuos efektyviai patogu saugoti kartų ir programose juos vadinti vienu vardu. Matematikoje jau buvo duomenys, kuriuose elementai išdėstyti tam tikra tvarka. Pvz., tai skaičių seka A=(1, -4, 2, 6, -8, 2, 9) arba taškas su koordinatėmis A=(3, 2) plokštumoje. Bendru atveju galima parašyti: A=(a1, a2, a3,…,an). Tokius duomenis programavime patogu jungti į duomenų struktūrą, kuri vadinasi masyvas. Masyvo apibrėžimas Masyvas – tai duomenų struktūra, kuri sudaro daugelis vienodo tipo reikšmių ir turinti vieną vardą. Masyvą paprasčiausiu atveju galima įsivaizduoti, kaip paeiliui sunumeruotą elementų seka. Tie numeriai vadinami indeksais. Matematikoje indeksai rašomi prie simbolio apačioje. Programavimo kalbose taip rašyti negalima, todėl indeksai rašomi šalia vardo laužtiniuose skliaustose. Masyvas Užrašymas Paskalyje A[1] A[2] A[3] A[4] A[5] A[6] A[7] Užrašymas matematikoje A1 A2 A3 A4 A5 A6 A7 Elementų indeksai 1 2 3 4 5 6 7 Masyvo reikšmės 15 -3 20 5 -4 20 15 Indeksuoti kintamieji Masyvų elementai vadinami indeksuotaisiais kintamaisiais, kadangi masyvo elementų išdėstymas nurodamas sekoje indeksais. Masyvai saugo kompiuterio atmintyje daug vienodo tipo reikšmių tuo pačiu vardu. Tarkime, kad programoje reikalinga duomenų struktūrą, nurodančią kiekvieną savaitės dieną kaip masyvą Y, kurioje kiekvienas struktūros narys, turi savo indeksą 1, 2, 3, 6, 7, o masyvo reikšmės yra : pirm, antr, treč, ketv, penkt, šešt, sekm. Masyvas Masyvas Y Y[1] Y[2] Y[3] Y[4] Y[5] Y[6] Y[7] Elementų indeksai 1 2 3 4 5 6 7 Masyvo reikšmės pirm antr treč ketv penkt šešt sekm 7.2. Masyvo aprašymas Masyvo duomenų tipo Paskalyje nėra. Programuotojas turi pats sukurti reikiamą duomenų tipą - masyvą. Tai daroma programos pradžioje. Čia kiekvienas masyvas aprašomas, kaip naujas duomenų tipas savo vardu, nurodomas elementų kiekis (indekso kitimo ribą) ir masyvo elementų tipas. Masyvo tipo aprašymas type =array[] of ; Čia: • – sukurto masyvo tipo vardas; • [] diskretinių reikšmių intervalas laužtiniuose skliaustose, pvz., [5..10], [1..100], [-5..15]; • – masyve saugomų elementų tipas. Masyvo aprašyme yra vartojami du rezervuotai (baziniai) Paskalio kalbos žodžiai: • array – angl. masyvas; • of – angl. iš (iš kokio tipo elementų sudarytas masyvas). Po masyvo aprašymo galima aprašyti sukurto masyvo tipo kintamuosius – tai reiškia, kad mes nurodome kiek atminties vietos reikia masyvui, kur bus saugomas masyvas. Masyvo aprašymo pavyzdys type ManoMasyvas=array[', X[1]); Išveda reikšmę 5 elemento X[1]. X[1]:=5; Priskiria elementui X[1] reikšmę 5. Suma:=X[3]+X[4]; Kintamajam Suma priskiria X[1] ir X[2] sumos reikšmę – Suma=X[3]+X[4]=8+2=10. Kintamojo reikšmė Suma lygi 10. X[2]:=Suma; Priskiria elementui X[2] kintamojo Suma reikšmę – 10. Nauja reikšmė X[2] lygi 10. X[3]:=Suma+5; Priskiria elementui X[3] sumos reikšmę – Suma+5=10+5=15. Nauja reikšmė X[3] lygi 15. X[4]:=X[5]+8; Priskiria elementui X[4] reiškinio X[5]+8 reikšmę – X[5]+8=12+8=20. Nauja elemento reikšmė X[4] lygi 20. X[5]:=X[6]+X[7]; Priskiria elementui X[5] sumos X[6]+X[7] reikšmę – X[6]+X[7]=10+15=25. Nauja elemento reikšmė X[4] lygi 25. X[6]:=2*X[7]; Priskiria elementui X[6] daugybos 2*X[7] reikšmę 2*X[7]=2*15=30. Nauja elemento reikšmė X[6] lygi 30. X[7]:=4*X[1]+X[3]; Priskiria elementui X[7] reiškinio 4*X[1]+ X[3] reikšmę 4*X[1]+X[3] =4*5+15=35. Nauja elemento reikšmė X[7 ] lygi 35. Operatoriai pateiktoje lentelėje manipuliuoja su masyvo X elementais. Naujos masyvo X reikšmės yra: Naujos masyvo X reikšmės X[1] X[2] X[3] X[4] X[5] X[6] X[7] 5 10 15 20 25 30 35 7.2. Programa program Veiksmai_su_masyvo_elementais; type Mas=array[1..7] of Integer; {Masyvo tipo Mas aprašymas iš 7 elementų} var X: Mas; {Masyvas X aprašytas Mas tipu } Suma: Integer; begin {------Masyvo elementams suteikiami reikšmės------} X[1]:=7; X[2]:= 3; X[3]:=8; X[4]:= 2; X[5]:=12; X[6]:=10; X[7]:=15; WriteLn('Masyvo reikšmės prieš keitimą'); WriteLn ('X[1]=',X[1]); WriteLn('X[2]=',X[2]); WriteLn('X[3]=',X[3]); WriteLn('X[4]=',X[4]); WriteLn('X[5]=',X[5]); WriteLn('X[6]=',X[6]); WriteLn('X[7]=',X[7]); WriteLn; {Tuščia eilutė} X[1]:=5; Suma:=X[3]+X[4]; X[2]:=Suma; X[3]:=Suma+5; X[4]:=X[5]+8; X[5]:=X[6]+X[7]; X[6]:=2*X[7]; X[7]:=4*X[1]+ X[3]; WriteLn('Masyvo reikšmės po keitimo'); WriteLn ('X[1]=',X[1]); WriteLn('X[2]=',X[2]); WriteLn('X[3]=',X[3]); WriteLn('X[4]=',X[4]); WriteLn('X[5]=',X[5]); WriteLn('X[6]=',X[6]); WriteLn('X[7]=',X[7]); WriteLn('Suma=', Suma); ReadLn; end. 7.5. Veiksmai su masyvo indeksais Tarkime, kad programoje aprašytas masyvo kintamasis X iš 6 elementų, kurio reikšmės yra surašytos lentelėje: Masyvo X reikšmės X[1] X[2] X[3] X[4] X[5] X[6] 8 12 25 30 7 35 Tarkime, kad programoje aprašytas indekso kintamasis i Integer tipo. Tada galima atlikti veiksmus su masyvo X elementais, vartojant indeksus: Veiksmai su masyvo X elementais, vartojant indeksus Operatorius Veiksmas WriteLn(8,X[3]); Išveda 8 ir 25. Čia X[3]=25. i :=3 Indekso kintamasis i įgyja reikmę 3. WriteLn(i ,X[i ]); Išveda 3 ir 25.Čia indeksas N=3, X[3]=25. WriteLn(X[i ]+1); Išveda 26. Čia indeksas N=3, X[3]+1=25+1=26. WriteLn(X[i ]+i ); Išveda 28. Čia X[3]+3=25+3=28. WriteLn(X[i +3]); Išveda 30. Čia X[3+3]=X[6]=35. WriteLn(X[3*i +2]); Čia klaida: neteisingas bandymas išvesti reikšmę elemento X[3*3+2])=X[11], kurio masyve nėra. Indeksas 11 nepataiko į aprašyto masyvo intervalo ribas - [1..6]. WriteLn(X[3*i –7]); Išveda 10. Čia X[3*3–7]=X[9–7]=X[2]=12. X[i +2]:=X[i +1]; WriteLn(X[i +2); Priskiria elementui X[3+2]=X[4] reikšmę X[3+1]=X[4]=30. X[i -2]:=X[i ]; WriteLn(X[i –2]); Priskiria elementui X[3-2]=X[1] reikšmę X[3]=25. X[i ]-1:=X[i –1]; WriteLn(X[i ]–1); Čia klaida: neteisingas priskyrimo operatorius. Jo kairėje pusėje yra reiškinys X[N]-1, o ne kintamasis. X[i -1]:=2*X[i -1]+8; WriteLn(X[i -1]); Priskiria elementui X[3-1]=X[2] reikšmę 2*X[3-1]+8=2*X[2]+8=2*12+8=24+8=32. X[i +3]:= X[2*i -1]; WriteLn(X[i -2]); Priskiria elementui X[3+3]=X[4] reikšmę X[2*3-1]=X[6-1]=X[5]=25. Svarbu suprati, kad masyvo elemento indeksas gali būti: • kintamaisiais, pvz., i; • reiškiniai, pvz., i-1, 2*i–1. 7.3. Programa program Veiksmai_su_masyvo_indeksais; type Mas=array[1..6] of Integer; {Masyvo tipo Mas aprašymas iš 6 elementų} var X: Mas; {Masyvas X aprašytas tipu Mas} i : Integer; {Masyvo indeksas} begin {------Masyvo elementams suteikiami reikšmės------} X[1]:=8; X[2]:=12; X[3]:=25; X[4]:=30; X[5]:=7; X[6]:=35; WriteLn('Masyvo reikšmės prieš keitimus'); WriteLn('X[1]':5, 'X[2]':5, 'X[3]':5, 'X[4]':5, 'X[4]':5, 'X[6]':5); WriteLn(X[1]:5, X[2]:5, X[3]:5, X[4]:5, X[5]:5, X[6]:5); WriteLn; {------Masyvo reikšmių išvestis į ekraną------} WriteLn(8,' ', X[3]); i :=3; WriteLn(i ,' ', X[i ]); WriteLn(X[i ]+1); WriteLn(X[i ]+i ); WriteLn(X[i +3]); {WriteLn(X[4*i ]);} {Klaida: indeksas 12 nepataiko į masyvo intervalo ribas - [1..6]} WriteLn(X[3*i –7]); X[i +2]:=X[i +1]; WriteLn(X[i +2]); X[i -2]:=X[i ]; WriteLn(X[i –2]); {X[i ]-1:=X[i –1]; WriteLn(X[i ]–1]);} {Klaida: neteisingas priskyrimo operatorius} X[i -1]:=2*X[i -1]+8; WriteLn(X[i -1]); X[i +3]:= X[2*i -1]; WriteLn(X[i -2]); WriteLn; WriteLn('Masyvo reikšmės po keitimų'); WriteLn('X[1]':5, 'X[2]':5, 'X[3]':5, 'X[4]':5, 'X[4]':5, 'X[6]':5); WriteLn(X[1]:5, X[2]:5, X[3]:5, X[4]:5, X[5]:5, X[6]:5); ReadLn; end. Tarkime, kad šitoje programoje indekso kintamasis i reikšmė lygi 3, tada X[i+i] yra 12-asis masyvo elementas, kuris neegzistuoja masyve. Vadinasi, masyvo indekso reikšmė nepataiko į aprašyto intervalo ribas. Mūsų atveju intervalas yra [1..6] ir indeksas turi būti nuo 1 iki 6. Todėl programoje labai svarbu stebėti, kad indekso reikšmė visuomet būtų aprašyto masyvo intervalo viduje. 7.6. Masyvo duomenų įvedimas ir išvedimas ciklu for…to..do Su masyvo elementais galima atlikti įvairius veiksmus, tokius kaip su paprastaisiais kintamaisiais. Bet dažniausiai reikalingas nuoseklus priėjimas prie masyvo elementų, pradedant nuo pirmo. Pvz. dažnai reikia užpildyti masyvą pradinėmis reikšmėmis. Paskalyje nėra priemonių visą masyvą iš karto įvesti bei išvesti. Pradžioje reikia aprašyti masyvo tipą: Masyvo Mas tipo aprašymas const N =100; type Mas = array [1..N] of Real; var X: Mas; {Vardinė konstanta N – maksimalus masyvo ilgis} {Masyvo Mas tipo aprašymas} {Kintamojo X aprašymas masyvo Mas tipu } Pastaba. Čia masyvo ilgis aprašomas vardinė konstanta (maksimalus masyvo ilgis) vardu N: const N =100; Sudarant programą, reikia numatyti, koks gali būti didžiausias masyvo elementų kiekis ir tokį nurodyti masyvo apraše. Tada masyvo ilgis bus nepriklausomas ir jį galima pakeisti programoje tik vienoje programos vietoje (skyriuje const) ir pakeičiau, turėsime kitokį masyvo dydį. Tarkime aprašome masyvą Mas tipu iš 4 sveikojo tipo elementų naudojant vardinė konstanta N: const N =4; {vardinė konstanta} type Mas= array [1.. N] of Integer; Po tipo aprašymą galima aprašyti kintamąjį X masyvo Mas tipu: var X: Mas; Duomenų įvedimas į masyvą, tai reiškia, kad jo visiems elementams priskiriamos reikšmės. Masyvą galima užpildyti paprasčiausiu būdu: Duomenų įvedimas į masyvą (paprasčiausias būdas) WriteLn('Įveskite masyvo 1 narį'); ReadLn(X[1]); WriteLn('Įveskite masyvo 2 narį'); ReadLn(X[2]); WriteLn('Įveskite masyvo 3 narį'); ReadLn(X[3]); WriteLn('Įveskite masyvo 4 narį'); ReadLn(X[4]); Įvedame masyvo reikšmę lygiai taip pat, kaip ir bet kokio kito kintamojo. Skirtumas tik tas, kad masyvo indeksuotas kintamasis turi dar laužtinius skliaustus, kuriame užrašomas elemento indekso numeris. Bet taip pildyti masyvą labai nepatogu, nes reikia žinoti kokio ilgio bus masyvas ir jei jį sudaro koks 1000 narių, tai vien jo įvedimo užrašymas gali užimti pusė dienos. Kad viso to nereikėtų daryti, mes į pagalbą pakviečiam ciklą for…to..do. Su jo pagalba mes galime tą pačią problemą išspręsti, daug greičiau. Tačiau pradžioje prieš ciklo for…to..do veikimą galima patikslinti masyvo ilgį: Write('Masyvo ilgis=>'); ReadLn(ilg); Kad ne išeiti iš masyvo ribų, kintamojo ilg reikšmė (masyvo ilgis) turi būti mažiau vardinės konstantos N – maksimalaus masyvo ilgio. Duomenų įvedimas į masyvą ciklu for…to..do Write('Masyvo ilgis=>'); ReadLn(ilg); {Masyvo ilgio patikslinimas} for i: =1 to ilg do begin WriteLn('Įveskite elementą X[',i,']=>'); ReadLn (X[i]); end; Duomenų išvedimą iš masyvo irgi galima atlikti ciklu for…to..do ir procedūra WriteLn arba Write. Duomenų išvedimas iš masyvo ciklu for…to..do Duomenų išvedimas iš masyvo į ekraną • stulpeliu for i: =1 to ilg do WriteLn(X[i]); • eilute (naudojamas tarpas) for i: =1 to ilg do Write(X[i], ' '); • formatuotu, pvz., kiekvienam elementui skiriamos 4 pozicijos ekrane: for i: =1 to ilg do Write(X[i]:4); Uždavinys Įveskite į masyvą kubus pirmųjų natūraliųjų skaičių ir išveskite juos ciklu for. Tarkime, kad masyvas vardu Kubas turi saugoti kubus 5 pirmųjų natūraliųjų skaičių. Tada turime: Kubas[1] = 1, Kubas[2] = 8, Kubas[3] = 27, Kubas[4] = 64, Kubas[5] =125. 7.4. Programa program Kubai; const N=200; {Maksimalus masyvo ilgis} type Mas=array [1..N] of Integer; {Masyvo tipo aprašymas} var Kubas: Mas; {Kintamojo Kubas aprašymas} i, {Masyvo indeksas ir ciklo for skaitiklis} ilg :Integer; {Masyvo ilgis} begin Write('Masyvo ilgis=>'); ReadLn(ilg); for i:=1 to ilg do Kubas[i]:=i*i*i; for i:=1 to ilg do WriteLn ('Kubas skaičiaus ', i, '=>', Kubas[i]); ReadLn; end. Kaip veikia ši programa Programoje aprašyta vardinė konstanta vardu N ir jai suteikta reikšmė 200: const N=200; Toliau aprašytas masyvo tipas: type {Masyvo tipo aprašymas} Mas=array [1..N] of Integer; Aprašyme [1..N] yra indekso intervalas nuo 1 iki N (N – vardinės konstantos reikšmė). Paskui aprašyti reikalingi kintamieji programos vykdymui: var Kubas: Mas; i, ilg :Integer; Čia: • kintamasis Kubas yra aprašytas masyvo Mas tipu, kuriame mes saugosim skaičių kubus; • kintamasis i – masyvo indeksas ir ciklo for skaitiklis; • kintamasis ilg – masyvo ilgis Kodėl mes aprašome kintamąjį ilg? Iš masyvo aprašymo matome, kad į masyvą galima patalpinti iki 200 elementų, bet gal mums ir nereikės tiek elementu įvedinėti, todėl mes apribojame įvedimą iki kintamojo ilg reikšmės – masyvo ilgio. Ši reikšmė turi įvesti vartotojas programos vykdymo metu: Write('Masyvo ilgis=>'); ReadLn(ilg); Duomenų įvedimui į masyvą Kubas atliktas ciklu for..to..do: for i:=1 to ilg do Kubas[i]:=i*i*i; Duomenų išvedimas iš masyvo Kubas atliktas ciklu for…to…do ir procedūra WriteLn. for i:=1 to ilg do WriteLn ('Kubas skaičiaus ', i, '=>', Kubas[i]); Uždavinys Įveskite elementus į masyvą ir išveskite juos ciklu for…to…do. 7.5. Programa program Masyvo_pildymas_elementais; const N=100; {Maksimalus masyvo ilgis} type Mas=array [1..N] of Integer; var X: Mas; i, {Masyvo indeksas ir ciklo for skaitiklis} ilg :Integer; {Masyvo ilgis} begin Write('Masyvo ilgis=>'); ReadLn(ilg); for i:=1 to ilg do begin Write('Įveskite elementą X[',i,']=>'); ReadLn(X[i]); end; {for} WriteLn; {Tuščia eilutė} WriteLn('Masyvo išvedimas stulpeliu'); for i:=1 to ilg do WriteLn(X[i]); WriteLn('Masyvo išvedimas eilute'); for i:=1 to ilg do Write(X[i], ' '); WriteLn; WriteLn('Masyvo išvedimas formatu'); for i:=1 to ilg do Write(X[i]:4); ReadLn; end. Kaip veikia ši programa Viskas analogiškai, kaip ir programoje viršuje. Tik duomenis į masyvą įvedinėja vartotojas sudėtiniu ciklu for..to..do: for i:=1 to ilg do begin Write('Įveskite elementą X[',i,']'=); ReadLn(A[i]); end; {for} Priminsime, kad sudėtinio ciklo for..to..do kūnas turi būti įterptas tarp bazinių žodžių begin ir end. Atkreipkime dėmesį, kad duomenų išvedimai iš masyvo atlikti trys būdais. Programos “Masyvo_pildymas_elementais” blok-schema Uždavinys Įveskite į masyvą elementus ciklu for ir: 1) išveskite masyvą be pirmojo elemento. 2) išveskite masyvą be paskutinio elemento. 3) išveskite masyvo pirmąją pusę. 4) išveskite tik lyginius elementus. 5) išveskite masyvo elementus atvirkštine tvarka. Pieš įvedimą kiekvieno elemento turi būti pranešimas kokį elementą įvesti. Pvz.: A[1]=>12, A[2]=>3. 7.6. Programa program Masyvo_išvedimas; const N=100; {Maksimalus masyvo ilgis} type Mas=array [1..N] of Integer; var X: Mas; i, {Masyvo indeksas ir ciklo for skaitiklis} ilg :Integer; {Masyvo ilgis} begin Write('Masyvo ilgis=>'); ReadLn(ilg); for i:=1 to ilg do begin Write('X[',i,']=>'); ReadLn(X[i]); end; {for} WriteLn; WriteLn('Masyvo išvedimas be pirmojo elemento'); for i:=2 to ilg do Write(X[i]:3); WriteLn; WriteLn('Masyvo išvedimas be paskutinio elemento'); for i:=1 to ilg-1 do Write(X[i]:3); WriteLn; WriteLn('Pirmosios pusės elementų masyvo išvedimas'); for i:=1 to ilg div 2 do Write(X[i]:3); WriteLn; WriteLn('Masyvo elementų išvedimas atvirkštine tvarka'); for i:=1 to ilg do Write(X[ilg-i+1]:3); WriteLn; WriteLn('Masyvo elementų išvedimas su lyginiais indeksais'); for i:=1 to ilg div 2 do Write(X[2*i]:3); ReadLn; end. Kaip veikia ši programa Svarbu suprati, kad masyvo elemento indeksas yra kintamasis, kuris nurodo masyvo elemento vietą masyve. Vadinasi, indeksą galima panaudoti masyvo elementų išvedimui. Reikia tik tai paaiškinti programoje išvedimą dalį. • Masyvo išvedimui be pirmojo elemento reikia ciklą for sukti ne nuo 1 (vieneto), o nuo 2 (dvejeto); • Masyvo išvedimui be paskutinio elemento reikia ciklą for kartoti vienetui mažiau – • ilg - 1, negu yra masyvo ilgis; • Pirmosios pusės masyvo elementų išvedimui reikia ciklą for kartoti dvigubai mažiau –ilg div 2, negu yra masyvo ilgis; • Masyvo elementų išvedimui atvirkštine tvarka reikia elementus išvedinėti nuo galo: Write(X[ilg-i+1]:3); Iš tikrųjų, ◦ kai i=1 turime X[ilg-1+1])=X[ilg]; ◦ kai i=2 turime X[ilg-2+1])=X[ilg-1]; … ◦ kai i= ilg turime X[ilg-ilg+1])=X[1]. • Masyvo elementų išvedimui su lyginiais indeksais reikia ciklą for kartoti dvigubai mažiau – ilg div 2, negu yra masyvo ilgis ir išvedinėti elementus su lyginiais indeksais 2*i: Write(X[2*i]:3); 7.7. Duomenų įvedimas į masyvą atsitiktinių skaičių generatoriumi Paskatoje 2 mes nagrinėjame atsitiktinių skaičių generavimą. Atsitiktinius skaičius generuoja funkcija Random intervale (0, 1). Ji gali būti su parametrais arba be jų. Jos panaudojimo pavyzdžiai: 1) Atsitiktinio skaičiaus generavimas intervale (0, 1): var A: Real; ... A:=Random; Kintamajam A bus priskirta atsitiktinė reikšmė iš intervalo (0, 1). 2) Sveikojo atsitiktinio skaičiaus intervale [0, L) generavimas: const L=100; var K: integer; ... K:=Random(L); Kintamajam K bus priskirta atsitiktinė reikšmė iš intervalo [0;100). 3) Atsitiktinio skaičiaus generavimas norimame intervale: const interv_prad=-10; interv_pab = 50; var A: Real; {Atsitiktinis skaičius realiojo tipo } K: Integer; {Atsitiktinis skaičius sveikojo tipo } ... A:=interv_prad+(interv_pab-interv_prad)*Random; K:=interv_prad+Random(interv_pab-interv_prad); Realiajam kintamajam A Bus priskirta atsitiktinė reikšmė iš intervalo (interv_prad; interv_pab); Sveikajam kintamajam K bus priskirta atsitiktinė reikšmė iš intervalo [interv_prad; interv_pab), 4) Sveikojo atsitiktinio skaičiaus generavimas simetriniame intervale: interv_prad = - interv_pab const interv_pab = 20; var S: Integer; {Atsitiktinis skaičius realiojo tipo } ... S:= - interv_pab +(Random(2*interv_pab+1); Sveikajam kintamajam S bus priskirta atsitiktinė reikšmė iš simetrinio intervalo [- interv_pab; interv_pab]. Kartais programoje, kurioje yra krepinis į procedūrą Random yra programos pradžioje krepinis į procedūrą Randomize. Ši procedūrą inicijuoja atsitiktinių skaičių generatorių. Jeigu programoje šios procedūros nebus, tai vėl paleidus programą, atsitiktinių skaičių generatorius pateiks tą pačią atsitiktinių skaičių seką. Procedūra Randomize iškviečia atsitiktinių skaičių generatorių, kuris kiekviena kartą paleidus programą, generuoja kitas atsitiktinių skaičių sekas. Todėl norint, kad programa visada generuotų tą pačią atsitiktinių skaičių seką, nereikia naudoti procedūrą Randomize. Uždavinys Užpildykite masyvą atsitiktiniais sveikaisiais skaičiais iš intervalo [0;100) (vadinasi, nuo 1 iki 99) ciklu for ir išveskite juos į ekraną ciklu for. 7.7. Programa program Masyvo_pildymas_atsitiktinių_skaičių; const N=100; {Maksimalus masyvo ilgis} type Mas=array [1..N] of Integer; var X: Mas; i, {Masyvo indeksas ir ciklo for skaitiklis} ilg :Integer; {Masyvo ilgis} begin Randomize; {Atsitiktinių skaičių generatorių inicijavimas} Write('Masyvo ilgis=>'); ReadLn(ilg); for i:=1 to ilg do X[i]:= Random(100); for i:=1 to ilg do WriteLn('Masyvo elementas X[',i,']=>', X[i]); ReadLn; end. Programos “Masyvo_pildymas_atsitiktinių_skaičių” blok-schema Uždavinys Užpildykite masyvą sveikaisiais atsitiktiniais skaičiais iš simetrinio intervalo [-100;100] ciklu for ir išveskite juos į ekraną ciklu for atvirkštine tvarka. 7.8. Programa program Masyvo_pildymas_atsitiktinių_skaičių; const N=1000; {Maksimalus masyvo ilgis} type Mas=array [1..N] of Integer; var X: Mas; i, {Masyvo indeksas ir ciklo for skaitiklis} ilg :Integer; {Masyvo ilgis} begin Randomize; {Atsitiktinių skaičių generatorių inicijavimas} Write('Masyvo ilgis=>'); ReadLn(ilg); for i:=1 to ilg do X[i]:= -100+Random(201); for i:= ilg downto 1 do WriteLn('Masyvo elementas X[',i,']=>', X[i]); ReadLn; end. Kaip veikia ši programa Programoje panaudotas atsitiktinių sveikųjų skaičių generavimas simetriniame intervale pagal formulę S:= - interv_pab +(Random(2*interv_pab+1); Tada sveikajam kintamajam i bus priskirta atsitiktinė reikšmė iš intervalo [- interv_pab; interv_pab], Mūsų atveju interv_pab=100. Vadinasi, jeigu parašysime X[i]:= -100+Random(201); tai visi masyvo elementai X[i] bus sveikieji atsitiktiniai skaičiai iš simetrinio intervalo [-100;100]. Atkreipkime dėmesį, kad masyvo elementų išvedimui atvirkštine tvarka yra panaudota kita ciklo for forma, kurioje vietoj bazinio to žodžio įdėtas žodis downto. Ciklo for ... downto … do užrašymo forma tokia: Ciklo for ... downto … do struktūra for

Daugiau informacijos...

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

Turinys
  •  7. Paskaita
  • 7. Masyvai 2
  • 7.1. Masyvo sąvoka arba paprasti ir indeksuoti kintamieji 2
  • Indeksuoti kintamieji 2
  • 7.2. Masyvo aprašymas 3
  • Aprašymo klaidas 4
  • 7.3. Masyvo indeksai (numeriai) 4
  • 7.1. Programa 5
  • 7.4. Veiksmai su masyvo elementais 5
  • 7.2. Programa 6
  • 7.5. Veiksmai su masyvo indeksais 6
  • 7.3. Programa 7
  • 7.6. Masyvo duomenų įvedimas ir išvedimas ciklu forto..do 8
  • Uždavinys 10
  • 7.4. Programa 10
  • Kaip veikia ši programa 10
  • Uždavinys 11
  • 7.5. Programa 11
  • Kaip veikia ši programa 11
  • Uždavinys 12
  • 7.6. Programa 12
  • Kaip veikia ši programa 13
  • 7.7. Duomenų įvedimas į masyvą atsitiktinių skaičių generatoriumi 13
  • Uždavinys 14
  • 7.7. Programa 14
  • Uždavinys 15
  • 7.8. Programa 15
  • Kaip veikia ši programa 16
  • 7.8. Masyvo kopijavimas 16
  • Uždavinys 16
  • 7.9. Programa 16
  • Kaip veikia ši programa 17
  • 7.9. Masyvo sumos, sandaugos , kiekio ir vidurkio apsikačiavimas 17

★ 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
18 psl., (3715 ž.)
Darbo duomenys
  • Programų konspektas
  • 18 psl., (3715 ž.)
  • Word failas 226 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