Drage takmičarke i dragi takmičari,
Na dananjem času priprema za takmičenje smo objanjavali matrice (uvodni deo), odnosno dodatno pojasnili sadraj mejla od 24.12, koji ponovo prosleđujem u nastavku.
Takođe, razjasnisili smo da program FlowGorithm ne moemo koristiti za reavanje zadataka u kojima se koriste matrice, sem moda u specijalnim slučajavima kada je broj redova ili kolona relativno mali, pa da u tom slučaju koristimo nekoliko promenljivih tipa niz. Inače, matrica se u svim programskim jezicima tretira i kao niz nizova, odnosno 2D niz i zahteva 2 ugnjedena brojačka ciklusa (i 2 brojača) za učitavanje i prikazivanje vrednosti svih elemenata matrice.
U prilogu se nalazi osnovni primer (za učitavanje i prikazivanje vrednosti elemenata matrice) koji smo danas detaljnije objanjavali.
Pomenuli smo i kvadratne matrice (kada je broj redova i broj kolona isti), kao i glavnu i sporednu dijagonalu kvadratne matrice.
Na kraju, prvi put smo obratili panju na brzinu izvravanja brojačkih ciklusa i napravili grubu računicu (pod pretpostavkom da se jedan algoritamski korak izvrava za 1 milijarditi deo sekunde) za matrice dimenzija 1000x1000, 10,000x10,000, 100,000x100,000 i milion x milion.
Preporuka je da svako od vas pregleda i sledeće uvodne materijale o matricama:
Kao i uvodne materijale na portalu nasaskola.edu.rs, ali sa napomenom da su u tim materijalima za predstavljanje matrice korićene vizuelne komponente u grafičkom okruenju, te se naredbe za ulaze i izlaze znatno razlikuju u odnosu na konzolne aplikacije:
9.3. Вишедимензионални низови (матрице) |
Dogovor je da sutra, u petak 19.januara, nakon 6.časa se okupite u gornjem kabinetu, kako bi nastavili sa pripremama.
Pozdrav,
Dragan Ilić
Dragan Ilić
----- Original Message -----
From: Dragan Ilic
Sent: Sunday, December 24, 2017 12:25 AM
Subject: Takmicenje iz programiranja 2017 - 1. krug kvalifikacija - 2. zadatak - Pripreme - Matrica
Dragi takmičari,
Za reavanje 2. zadatka neopodno je da se najpre upoznamo sa najlakim uvodnim zadatkom iz kvadratnih matrica, koji bi glasio ovako:
Dati su elementi kvadratne matrice A dimenzija NxN. Napisati program koji će omogućiti unos svih elementa matrice, a zatim će prikazati sve elemente te matrice.
Za rad sa matricama najbolje je da koristimo brojačke ciklse (FOR), a neophodno je da:
- Deklariemo matricu kao promenljivu
Var A: Array [1..10, 1..10 ] Of Integer;
to značo da imamo maksimalno po 10 redova i po 10 kolona, odnosno 100 elemenata matrice.
Svi elementi matrice A moraju biti istog tipa (u ovom slučaju integer). - Na početku programa moramo najpre da unesemo koliko imamo redova (odnosno kolona) tj broj N koji mora biti manji od maksimalnog broja redova (10).
- Kroz elemente matrice prolazimo koristeći dva brojačka ciklusa i dva brojača i i j. Svaki od njih ide od 1 do N.
- Radi se o dve ugnjedene petlje, prva sporija po redovima (brojač i) i druga bra po kolonama (brojač j).
- Obratite panju na naredbu učitavanja elemenata (uvek je Read, nije ReadLn).
- Kada učitamo sve elemente matrice, odnosno izađemo iz obe petlje, moemo da radimo neto drugo sa elementima matrice, ali ponovo ćemo koristiti for petlje i to obe, da bi proli kroz sve elemente matrice, ipak, ukoliko je iz nekog razloga potrebno, moemo da pristupimo i pojedinačnom elementu matrice, ali moramo da navedemo oba indeksa, kao na primer: Max := A [4, 6];
- tampanje elemenata matrice je skoro potpuno isto kao i učitavanje, samo to umesto Read koristimo Write, ali zbog preglednosti uvodimo jo jednu naredbui (WriteLn) nakon tampanja elementa u poslednjoj koloni, kako bi prebacili kursor u novi red. Takođe, kako vrednosti elemenata ne bi bili slepljeni jedni uz druge, koristimo formatiranje u naredbi Write tako to navodimo broj pozicija za prikaziovanje cifara iza dve tačke.
Razmislite sada kako bi reili sledeće zadatke:
- Data je matrica A od NxN elemenata. Izračunati zbir svih elemenata matrice A.
- Data je matrica A od NxN elemenata. Izračunati aritmetički sredinu elemenata matrice A.
- Data je matrica A od NxN elemenata. Izračunati (pronaći) najveći element matrice A.
- Data je matrica A od NxN elemenata. Izračunati (pronaći) indeks (u kom redu i kojoj koloni je) najvećeg elementa matrice A.
- Data je matrica A od NxN elemenata. Prebrojati koliko elemenata matrice A je veći od 5.
- Data je matrica A od NxN elemenata. Izračunati zbir svih elemenata na glavnoj dijagonali matrice (glavna dijagonala je od gornjeg levo do donjeg desnog ugla).
Pozdrav,
Dragan Ilić
Dragan Ilić
Нема коментара:
Постави коментар