341 | | Za izpis 1. elementa bomo zapisali: |
342 | | |
343 | | {{{ |
344 | | #!c |
345 | | printf("Vrednost 1. elementa znaša %f\n", M[0]); |
346 | | }}} |
347 | | |
| 341 | Za izpis 1. elementa bomo torej zapisali: |
| 342 | |
| 343 | {{{ |
| 344 | #!c |
| 345 | printf("Vrednost 1. elementa znaša %f", M[0]); |
| 346 | }}} |
| 347 | |
| 348 | V pomnilniku je to polje zloženo tako, kot kaže slika 1, kjer vsak element polja zavzame 4 byte pomnilnika. |
| 349 | |
| 350 | [[Image(Pomnilnik.PNG)]] |
| 351 | |
| 352 | Slika 1: Stanje pomnilnika |
| 353 | |
| 354 | [[BR]] |
| 355 | |
| 356 | Pri tem nas verjetno zmoti to, da lahko matriko definiramo kot vektor. Takšen način definiranja matrike je dokaj pogost, pri tem pa z elementi operiramo na sledeči način (gre za enodimenzionalno polje): |
| 357 | |
| 358 | Za primer imamo matriko ''N'' velikosti 2×3 z elementi: |
| 359 | |
| 360 | {{{ |
| 361 | 1.0 2.0 3.0 |
| 362 | 4.0 5.0 6.0 |
| 363 | }}} |
| 364 | |
| 365 | Sledi: |
| 366 | |
| 367 | {{{ |
| 368 | #!c |
| 369 | float N[2*3]={1.0, 2.0, 3.0, 4.0, 5.0, 6.0}; //Matriko zapišemo kot vektor v eni vrstici. Pišemo lahko tudi N[6]=... |
| 370 | |
| 371 | //Primer izpisa elementa, ki se nahaja v drugi vrstici prvega stolpca. V tem primeru gre za četrti element matrike oziroma vektorja N |
| 372 | |
| 373 | printf("Element v drugi vrstici prvega stolpca je %f", N[1*3+0]); |
| 374 | |
| 375 | |
| 376 | //Primer izpisa elementa, ki se nahaja v prvi vrstici tretjega stolpca. |
| 377 | |
| 378 | printf("Element v prvi vrstici tretjega stolpca je %f", N[0*3+2]); |
| 379 | |
| 380 | }}} |
| 381 | |
| 382 | Poljubni element matrike zapišemo v splošni obliki kot: |
| 383 | |
| 384 | {{{ |
| 385 | N[indeks vrstice * število stolpcev + indeks stolpca] |
| 386 | }}} |
| 387 | |
| 388 | S tem, ko pomnožimo indeks vrstice s številom stolpcev, si lahko predstavljamo, da preskočimo vse elemente v prejšnih vrsticah. Če temu produktu prištejemo še indeks stolpca, pridemo ravno do tistega elementa, ki ga želimo. |
| 389 | |
| 390 | Enostaven primer generiranja elementov matrike nam kaže primer, ki smo ga spoznali pri kombiniranju kontrolnih stavkov. |
| 391 | |
| 392 | [[BR]] |
| 393 | |
| 394 | Poleg omenjenega načina definiranja matrik obstaja še drug način, pri katerem uporabimo večdimenzionalna polja. |
| 395 | |
| 396 | Primer definiranja matrike: |
| 397 | |
| 398 | {{{ |
| 399 | #!c |
| 400 | float N[2][3]={{1.0, 2.0, 3.0}, |
| 401 | {4.0, 5.0, 6.0}}; |
| 402 | |
| 403 | //Primer izpisa elementa, ki se nahaja v prvi vrstici tretjega stolpca. |
| 404 | |
| 405 | printf("Element v prvi vrstici tretjega stolpca je %f", N[0][2]); |
| 406 | }}} |
| 407 | |
| 408 | Pri tem ne smemo pozabiti, da se indeksi vrstic in stolpcev vedno začnejo z 0. |
| 409 | |
| 410 | [[BR]] |