Jalad on tugevad, küllalt peeneluulised, vahel ka püstised. Sõrad on normaalse kujuga, sageli heleda sarvainega, harva esineb kõrvalekaldeid sõrakujus. Lehmad on rahuliku iseloomuga ja väga hea isuga. Hea põhisööda kasutus ongi eesti holsteini tõu eeliseks teiste tõugude ees. Eesti holsteini tõu lehmade piimatoodang, piimarasva- ja piimavalgutoodang on suurim Eestis. Piima rasvasisaldus on hea, aga valgusisaldus on vaid rahuldav. Eesti Punane 1951. aastal anti punaste veiste massiivile eesti punase tõu nimetus. Piimatoodang jäi vaid kolmesaja kilogrammiga alla eesti mustakirjule tõule, aga piima rasvasisaldus oli kõrgem (+0,07%). Värvus oli tüüpiline punane. 1972. aastast alustati üle aastakümnete angli veiste importi Saksamaalt. Anglite mõjul suurenes piima rasva- ja valgusisaldus, kuid piimatoodangus polnud erilist edu. Ka kehamass vähenes. Seetõttu pöörduti 1984. aastal tagasi taani punase tõu kasutamise juurde
} fclose(fp2); fclose(fp3); } /** Peaprogrammi algus **/ int main(void) { int m; n=sisendfaili_kontroll(); printf("Failist %s loeti %d isiku andmed.n",f1,n); fp1=fopen(f1,"r"); // Faili avamine lugemiseks m=sizeof(struct isik); // Mälueralduseks vajalik arv baite ühe isiku kohta palgaandmed=malloc(m*n); // Mälu eraldamine struktuurimassiivile if (DEBUG) printf("Struktuurimassiivi madalaima baidi aadress %p, ühe kirje andmeteks eraldati mälu %d baiti, mälu eraldati massiivile kokku %d baiti.n",palgaandmed,m,m*n); while (!feof(fp1)) // Failist andmete lugemine struktuurimassiivi { fscanf(fp1,"%s ",(palgaandmed+i)->nimi); // Nime lugemine fscanf(fp1,"%d",&(palgaandmed+i)->vanus); // Vanuse lugemine sum_vanus+=(palgaandmed+i)->vanus; // Vanuste summa leidmine fscanf(fp1,"%lfn",&(palgaandmed+i)->palk); // Palga lugemine sum_palk+=(palgaandmed+i)->palk; // Palkade summa leidmine i++; } keskm_vanus=sum_vanus/n; printf("Isikute keskmine vanus %.2lfn",keskm_vanus);
1 1 0 10 10 3.3 100 100 6.6 1000 1000 10 1000 10000 13.3 0 Tabelist näeme kui oluline on osata algoritme hinnata ja valida. NB: Arvestada tuleb ka fakti, et kahendotsingut saame rakendada järjestatud massiivile, aga lineaarset otsingut suvalisele massiivile. Tegelikult on olemas üldisem meetod rekurentse algoritmi täitmiseks kuluva aja leidmiseks. Teoreem: Olgu a>=1 ja b>1 konstandid, f(n) funktsioon ning T(n) defineeritud mittenegatiivsete n väärtuste korral valemiga: T ( n) = aT ( n / b) + f ( n) (nurksulud tähendavad täisosa) Siis: 1. T(n) on O( n logb a ) juhul kui f(n) on O (n logb a -e ) , mingi positiivse konstandi e korral 2
Sobivad on mesila läheduses ka ebaühtlase reljeefiga maakohad, kus esineb künkaid, orge ja nõlvu. Sellistes kohtades õitsevad sama liigi meetaimed eri aegadel, mille tõttu pikeneb meetaimede õitsemise aeg ka mõne päeva edasi. [1] Mida lähemal mesila meetaimedele asub, seda rohkem ja väiksema lennuaja kuluga koguvad mesilased mett. Seda tuleb meeles pidada mesila ja selle osakondade rajamisel ja eriti mesilasperede transportimisel meetaimede massiivile. [1] Meeles tuleb pidada ka seda, et mesilad ei asuks üksteisele liiga lähedal. Nad peaksid asuma üksteisest vähemalt 3 kilomeetri kaugusel, et vältida korjemaa mesilastega üleküllastumist ning meesaagi langust. Mesilate üksteisele liiga lähedale paigutamisel võivad edasi kanduda ka mesilaste nakkushaigused, kui neid esineb. [1] Mesila asukohaks tuleb valida tuulest varjatud lõuna- või edelapoolse kallakuga tasane maa- ala
Ühemõõtmeline massiiv on nummerdatud elementide jada, elemendi asukoha jadas saab määrata ühe indeksi abil. Sellist massiivi nimetatakse sageli ka vektoriks või jadaks. Tema analoogiks Excelis on töölehe rida või veerg. Kahemõõtmelises massiivis, mida nimetatakse ka maatriksiks, moodustavad elemendid korrapärase tabeli. Elemendi asukoht on üheselt määratav kähe indeksi abil: rea- ja veerunumbriga. Excelis vastab kahemõõtmelisele massiivile tööleht või ristkülikukujuline lahtriplokk. Võib käsutada ka kolme ja enama dimensiooniga massiive, maksimaalne dimen- sioonide arv VBAs võib olla 60(1). Indeksite rajad näitavad iga dimensiooni jaoks indeksi minimaalse ja maksimaalse väärtuse. Indeksi minimaalseks väärtuseks võib põhimõtteliselt olla suvaline arv, kuid enamasti on selleks O või l. Indeksi maksimaalne väärtus ei ole piiratud. Elementide tüüp määrab nende esitusviisi ehk vormingu
Massiivi element on näide L-väärtusest, s.t.
massiivi elemendile saab omistada väärtust.
Massiivi elementide arvu Javas (massiivi pikkust) väljendab Javas avaldis
"massiivi_nimi .length" (massiiv on objekt, mille avalik read-only
isendimuutuja nimega length sisaldab massiivi pikkust).
Näide.
int [] m; // massiivi
kirjeldamine
m = new int [10]; // mälu
reserveerimine massiivile
System.out.println (m.length); // massiivi
pikkuse väljastamine
m[0] = 3; // omistamine
elemendile indeksiga 0
m[1] = -8;
// massiivi väljastamine for-tsükli abil
for (int i=0; i
teksti hoidmiseks. Massiiv on jadast üldisem mõiste, kuid olemuselt sama - hulk samatüübilisi muutujaid, kõigile on pandud üks nimi ja igal muutujal on oma indeks. Kui jada on alati ühemõõtmeline, siis massiivi mõõtmelisuse ehk dimensiooni piirid on piiratud vaid konkreetse keele võimalustega. Selleks, et massiivi mõõtmetest paremini aru saada, võtame kasutusele väikese analoogia geomeetriaga: Ühele muutujale vastab geomeetrias punkt, ühemõõtmelisele massiivile (jadale) vastab sirglõik, kahemõõtmelisele massiivile (maatriksile) vastab ristkülik ja kolmemõõtmelisele massiivile risttahukas. Ja nii edasi, kui keegi teab vastavaid nimetusi. Massiivi deklareerimine Massiiv kui muutujate komplekt vajab vastavalt oma suurusele mälu. Selle jaoks tuleb massiiv alati deklareerida. Keeltes, kus on lubatud massiivide kasutamine esialgselt deklareerimata, on kasutusel vaikimisi massiivisuurus, mis ei pruugi Teid kui programmeerijat rahuldada.
muutujaid, kõigile on pandud üks nimi ja igal muutujal on oma indeks. Kui jada on alati ühemõõtmeline, siis massiivi mõõtmelisuse ehk dimensiooni piirid on piiratud vaid konkreetse keele võimalustega. 54 / 115 Selleks, et massiivi mõõtmetest paremini aru saada, võtame kasutusele väikese analoogia geomeetriaga: Ühele muutujale vastab geomeetrias punkt, ühemõõtmelisele massiivile (jadale) vastab sirglõik, kahemõõtmelisele massiivile (maatriksile) vastab ristkülik ja kolmemõõtmelisele massiivile risttahukas. Ja nii edasi, kui keegi teab vastavaid nimetusi. Massiivi deklareerimine Massiiv kui muutujate komplekt vajab vastavalt oma suurusele mälu. Selle jaoks tuleb massiiv alati deklareerida. Keeltes, kus on lubatud massiivide kasutamine esialgselt deklareerimata, on kasutusel vaikimisi massiivisuurus, mis ei pruugi Teid kui programmeerijat rahuldada.
Algselt on massiivi m ja m2 elemendid 40, 48, 33. Pärast massiivi m elemendi number 1 muutmist 32ks, on ka massiivi m2 elemendid muutunud - väärtusteks 40, 32, 33. Nõnda on suurte andmemassiivide juures teise muutuja tegemine andmete juurde pääsemiseks arvuti jaoks kerge ülesanne. Samas aga peab vaatama, et vajalikke andmeid kogemata ettevaatamatult ei muudaks. int[] m=new int[3]{40, 48, 33}; int[] m2=m; //Viide samale massiivile Tryki(m2); m[1]=32; Tryki(m2); Kui soovida, et kaks algsetest andmetest pärit massiivi on üksteisest sõltumatud, siis tuleb teha algsest massiivist koopia (kloon). int[] m3=(int[])m.Clone(); //Andmete koopia m[1]=20; Tryki(m3); Pärast kloonimist muutused massiiviga m enam massiivi m3 väärtusi ei mõjuta. Soovides massiivi tühjendada, aitab klassi Array käsklus Clear, mis täisarvude puhul kirjutab
Algselt on massiivi m ja m2 elemendid 40, 48, 33. Pärast massiivi m elemendi number 1 muutmist 32ks, on ka massiivi m2 elemendid muutunud - väärtusteks 40, 32, 33. Nõnda on suurte andmemassiivide juures teise muutuja tegemine andmete juurde pääsemiseks arvuti jaoks kerge ülesanne. Samas aga peab vaatama, et vajalikke andmeid kogemata ettevaatamatult ei muudaks. int[] m=new int[3]{40, 48, 33}; int[] m2=m; //Viide samale massiivile Tryki(m2); m[1]=32; Tryki(m2); Kui soovida, et kaks algsetest andmetest pärit massiivi on üksteisest sõltumatud, siis tuleb teha algsest massiivist koopia (kloon). int[] m3=(int[])m.Clone(); //Andmete koopia m[1]=20; Tryki(m3); Pärast kloonimist muutused massiiviga m enam massiivi m3 väärtusi ei mõjuta. Soovides massiivi tühjendada, aitab klassi Array käsklus Clear, mis täisarvude puhul kirjutab
Näiteks $nimi2,$nimi3 jne. Mis siis kui neid muutujaid oleks vaja sada ja rohkem? Siinkohal tulebki meile appi programmeerimise üks olulisemaid andmestruktuure massiivid. Vaatame selles peatükis, mis see on, kuidas massiivi väärtusi väljastada, lisada juurde ning kas on olemas mugavad funktsioonid paremaks tulemuseks. Mis on massiiv (array) Massiiv on muutuja, mis hoiab endas hulka samatüüblisi väärtusi. Väärtusteks võivad olla nii tekstid, arvud kui ka teine massiiv. Viisakas on massiivile anda nimi mitmuses. Loome näiteks nimede massiivi ja vanuste massiivi. ? 1 $nimed = array('mari', 'kati', 'juhan', 'miku', 'uku'); 2 $vanused = array(15, 23, 32, 28, 18); Masiivi sisu kuvamiseks on kasutada täpne funktsioon var_dump() või vähemtäpneprint_r(). Vaatame näiteks var_dump() funktsiooni ning me näeme, et see kuvab meile massiivi elementide koguarvu, nende tüübid ja pikkused. ? 1
väljatrüki juures paistab. Algselt on massiivi m ja m2 elemendid 40, 48, 33. Pärast massiivi m elemendi number 1 muutmist 32ks, on ka massiivi m2 elemendid muutunud - väärtusteks 40, 32, 33. Nõnda on suurte andmemassiivide juures teise muutuja tegemine andmete juurde pääsemiseks arvuti jaoks kerge ülesanne. Samas aga peab vaatama, et vajalikke andmeid kogemata ettevaatamatult ei muudaks. int[] m=new int[3]{40, 48, 33}; int[] m2=m; //Viide samale massiivile Tryki(m2); m[1]=32; Tryki(m2); Kui soovida, et kaks algsetest andmetest pärit massiivi on üksteisest sõltumatud, siis tuleb teha algsest massiivist koopia (kloon). int[] m3=(int[])m.Clone(); //Andmete koopia m[1]=20; Tryki(m3); Pärast kloonimist muutused massiiviga m enam massiivi m3 väärtusi ei mõjuta. Soovides massiivi tühjendada, aitab klassi Array käsklus Clear, mis täisarvude puhul kirjutab