37
Rješeni zadaci iz Informatike II (principi programiranja) 1. Napisati program kojim se formira matrica MxN elemenata. Vrijednost elemenata matrice u neparnim redovima poredane red po red cine niz uzastopnih neparnih brojeva počev od broja 1. Vrijednost elemenata matrice u parnim redovima poredane red po red cine niz uzastopnih parnih brojeva od broja 2. Za ucitane vrijednosti M i N ispisati matricu red po red u izlaznu datoteku. Ispis prilagoditi sljedecem obliku: Matrica A (4x5): 1.00 3.00 5.00 7.00 9.00 2.00 4.00 6.00 8.00 10.00 11.00 13.00 15.00 17.00 19.00 12.00 14.00 16.00 18.00 20.00 RJEŠENJE : dim A (50,50) open "D:\ispit\matrica.txt" for append as #1 input "unesite broj redova matrice";M input "unesite broj kolona matrice";N nepar=1 par=2 for i=1 to M if i mod 2=1 then for j=1 to N A(i,j)=nepar nepar=nepar+2 next else for j=1 to N A(i,j)=par par=par+2 next end if next print #1, "matrica A (";M;"x";N;"):" for i=1 to M for j=1 to N print #1, using("####.##",A(i,j)); next print #1, ""

Programiranje -zbirka zadataka.2

Embed Size (px)

Citation preview

Page 1: Programiranje -zbirka zadataka.2

Rješeni zadaci iz Informatike II (principi programiranja)

1. Napisati program kojim se formira matrica MxN elemenata. Vrijednost elemenata matrice u neparnim redovima poredane red po red cine niz uzastopnih neparnih brojeva počev od broja 1. Vrijednost elemenata matrice u parnim redovima poredane red po red cine niz uzastopnih parnih brojeva od broja 2. Za ucitane vrijednosti M i N ispisati matricu red po red u izlaznu datoteku.

Ispis prilagoditi sljedecem obliku:

Matrica A (4x5):

1.00 3.00 5.00 7.00 9.00 2.00 4.00 6.00 8.00 10.00 11.00 13.00 15.00 17.00 19.00 12.00 14.00 16.00 18.00 20.00

RJEŠENJE:

dim A (50,50)open "D:\ispit\matrica.txt" for append as #1input "unesite broj redova matrice";Minput "unesite broj kolona matrice";Nnepar=1par=2for i=1 to Mif i mod 2=1 thenfor j=1 to NA(i,j)=neparnepar=nepar+2nextelsefor j=1 to NA(i,j)=parpar=par+2nextend ifnext

print #1, "matrica A (";M;"x";N;"):"for i=1 to Mfor j=1 to Nprint #1, using("####.##",A(i,j));nextprint #1, ""nextclose #1

Page 2: Programiranje -zbirka zadataka.2

Isti zadatak ali riješen na malo drugačiji način:

dim A (50,50)open "D:\ispit\matrica.txt" for append as #1input "unesite broj redova matrice";Minput "unesite broj kolona matrice";Nfor i=1 to Nfor j=1 to Minput "Unesite elemente matrice A (";i;",";j;")";A(i,j)nextnextprintnepar=1par=2for i=1 to Mif i mod 2=1 thenfor j=1 to NA(i,j)=neparnepar=nepar+2nextelsefor j=1 to NA(i,j)=parpar=par+2nextend ifnext

print #1, "matrica A (";M;"x";N;"):"for i=1 to Mfor j=1 to Nprint #1, using("####.##",A(i,j));nextprint #1, ""nextclose #1

Page 3: Programiranje -zbirka zadataka.2

2. Dat je cijeli broj N i dvije kvadratne matrice A(NxN) i B(NxN). Napisati program kojim ce se formirati matrica : C=AT-B (AT- transponovana matrica matrice A). Program testirati i rezultate ispisati na ekran usljedecem obliku:

Matrice A(2x2) ima oblik 9.00 8.00 7.00 6.00Matrice B(2x2) ima oblik 5.00 4.00 3.00 2.00Matrica A transponovana(2x2): 9.00 7.00 8.00 6.00Nova matrica nakon sto se transponovana oduzme od matrice B 4.00 3.00 5.00 4.00Rješenje: (bez upisa u datoteku)

input "Unesi dimenziju matrice A: ";Nfor i=1 to Nfor j=1 to Ninput "Unesite elemente matrice A(";i;",";j;"):";A(i,j)next jnext iprintprint "Matrice A(";N;"x";N;") ima oblik" (ispis na ekran)for i=1 to Nfor j=1 to Nprint using("####.##",A(i,j));next jprintnext iinput "Unesi dimenziju matrice B: ";Nfor i=1 to Nfor j=1 to Ninput "Unesite elemente matrice B(";i;",";j;"):";B(i,j)next jnext iprintprint "Matrice B(";N;"x";N;") ima oblik" (ispis na ekran)for i=1 to Nfor j=1 to Nprint using("####.##",B(i,j));next jprintnext i

for i=1 to Nfor j=1 to NAtr(j,i)=A(i,j)next jnext iprint' Ispis matrice Atr u obliku red po red

Page 4: Programiranje -zbirka zadataka.2

print "Matrica A transponovana(";N;"x";N;"): " (ispis na ekran)for i=1 to N for j=1 to N print using("####.##",Atr(i,j)); next j printnext iprint

for i=1 to N for j=1 to NC(i,j)=Atr(i,j)-B(i,j)next jnext iprint

print"Nova matrica nakon sto se trnsponovana oduzme od matrice b" (ispis na ekran)for i=1 to N for j=1 to N print using("####.##",C(i,j)); next j print next i end

Rješenje: (sa upisom u datoteku)dim A(20,20),B(20,20),C(20,20)open "D:\ispit\matrica.txt" for append as #1 (Upis u datoteku sa opcijom upisa append)input "Unesi dimenziju matrice A: ";Nfor i=1 to Nfor j=1 to Ninput "Unesite elemente matrice A(";i;",";j;"):";A(i,j)next jnext iprintprint #1,"Matrice A(";N;"x";N;") ima oblik" (upis u datoteku9for i=1 to Nfor j=1 to Nprint #1,using("####.##",A(i,j));nextprint #1, ""next

input "Unesi dimenziju matrice B: ";Nfor i=1 to Nfor j=1 to Ninput "Unesite elemente matrice B(";i;",";j;"):";B(i,j)next jnext iprintprint #1, "Matrice B(";N;"x";N;") ima oblik" (upis u datoteku)for i=1 to Nfor j=1 to Nprint #1, using("####.##",B(i,j));nextprint #1, ""next

Page 5: Programiranje -zbirka zadataka.2

for i=1 to N ' Kreiranje transponovane matricefor j=1 to NAtr(j,i)=A(i,j)next jnext iprint

' Ispis matrice Atr u obliku red po redprint #1,"Matrica A transponovana(";N;"x";N;"): " (upis u datoteku)for i=1 to N for j=1 to N print #1, using("####.##",Atr(i,j)); next print #1, ""nextprint

for i=1 to N ' Kreiranje nove matrice for j=1 to NC(i,j)=Atr(i,j)-B(i,j)next jnext iprint

print #1,"Nova matrica nakon sto se transponovana oduzme od matrice B"for i=1 to N for j=1 to N print #1,using("####.##",C(i,j)); next print #1, "" next close #1

Page 6: Programiranje -zbirka zadataka.2

3. Napisati program koji učitava red kvadratne matrice A,kao i elemente te matrice.a) Na osnovu matrice A formirati matricu B rotacijom elemenata matrice A oko sporedne dijagonale.b) Za svaki red matrice B odrediti srednju vrijednost tog reda.c) U datoteku štampati matricu B i srednje vrijednosti elemenata svakog reda na kraju odgovarajuceg

reda matrice B.d) Ispis prilagoditi sljedecem:

Matrice A(3x3) ima oblik 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00Matrica B(3x3)nakon rotacije oko sporedne ose: 9.00 6.00 3.00 8.00 5.00 2.00 7.00 4.00 1.00Matrica B i srednja vrijednost svakoga reda: 9.00 6.00 3.00 6.00 8.00 5.00 2.00 5.00 7.00 4.00 1.00 4.00

Rješenje:

dim A(20,20),B(20,20),C(20)

open "D:\ispit\matrica.txt" for append as #1input "Unesi dimenziju matrice A: ";Nfor i=1 to Nfor j=1 to Ninput "Unesite elemente matrice A(";i;",";j;"):";A(i,j)next jnext iprintprint #1,"Matrice A(";N;"x";N;") ima oblik"for i=1 to Nfor j=1 to Nprint #1,using("####.##",A(i,j));nextprint #1, ""next

for i=1 to Nfor j=1 to NB(N+1-j,N+1-i)=A(i,j)next jnext iprint #1, "Matrica B(";N;"x";N;")nakon rotacije oko sporedne ose: " for i=1 to Nfor j=1 to Nprint #1, using("####.##",B(i,j));next jprint #1, ""next i

for i=1 to N S=0

Page 7: Programiranje -zbirka zadataka.2

for j=1 to N S=S+B(i,j) next j Sr=S/N C(i)=Sr next i

print #1, "Matrica B i srednja vrijednost svakoga reda: "for i=1 to Nfor j=1 to Nprint #1, using("####.##",B(i,j));next jprint #1, using("####.##",C(i))next iclose #1

4. Napisati program koji od kvadratne matrice A(NxN),napravi novu matricu B sa zamjenom prvog i zadnjeg reda matrice A. A zatim izvojiti clanove matrice A drugog i treceg reda,zatim sabrati te redove i izvrsiti sortiranje tog reda. A potom od nove matrice B uraditi isto tako. I na kraju izvrsiti transponovanje obje matrice. Prijmjer rjesenja ispisati na ekranu sa zeljenom matricom.Jedno od rjesenja bi izgledalo ovako:

Unesite broj redova i kolona= 3Unesite elemente matrice A(1,1)9Unesite elemente matrice A(1,2)5Unesite elemente matrice A(1,3)1Unesite elemente matrice A(2,1)4Unesite elemente matrice A(2,2)7Unesite elemente matrice A(2,3)3Unesite elemente matrice A(3,1)6Unesite elemente matrice A(3,2)8Unesite elemente matrice A(3,3)2Unesena matrica A izgleda A(3,3) 9.0 5.0 1.0 4.0 7.0 3.0 6.0 8.0 2.0Nova matrica B izgleda nakon zamjene prvog i zadnjeg reda 6.0 8.0 2.0 4.0 7.0 3.0 9.0 5.0 1.0Clanovi drugog red matrice A su 4.0 7.0 3.0Clanovi treceg reda matrice A su: 6.0 8.0 2.0zbir drugog i treceg reda 10.0 15.0 5.0Sortiran niz zbira redova 5.0 10.0 15.0Drugi red matrice B 4.0 7.0 3.0Treci red matrice B 9.0 5.0 1.0

Zbir drugog i treceg reda matrice B 13.0 12.0 4.0Sortiran niz zbira redova 4.0 12.0 13.0

Page 8: Programiranje -zbirka zadataka.2

Matrica A transponovana(3x3): 9.00 4.00 6.00 5.00 7.00 8.00 1.00 3.00 2.00Matrica B transponovana(3x3): 6.00 4.00 9.00 8.00 7.00 5.00 2.00 3.00 1.00

Rješenje:

'Program za kvadratnu matricu

Input "Unesite broj redova i kolona= ";Nfor i=1 to Nfor j=1 to NInput "Unesite elemente matrice A(";i;",";j;")";A(i,j)next jnext i'Ispis matrice na ekranprint "Unesena matrica A izgleda A(";N;",";N;")"for i=1 to Nfor j=1 to Nprint using("####.#",A(i,j));next jprintnext i

'Ispis nove matrice B na ekranprint"Nova matrica B izgleda nakon zamjene prvog i zadnjeg reda"for i=1 to Nfor j=1 to NB(N+1-i,j)=A(i,j)next jnext iprint

for i=1 to Nfor j=1 to Nprint using("####.#",B(i,j));next jprintnext i'Ispis drugog reda matrice A na ekranprint "Clanovi drugog red matrice A su"i=2for j=1 to Ndrugi(j)=A(i,j)print using("####.#",drugi(j));next jprint

print "Clanovi treceg reda matrice A su: "i=3for j=1 to N

Page 9: Programiranje -zbirka zadataka.2

treci(j)=A(i,j)print using("####.#",treci(j));next jprint

' Formiranje i ispis novog reda matriceprint "zbir drugog i treceg reda"for j=1 to Nzbir(j)=drugi(j)+treci(j)print using("####.#",zbir(j));next jprint

' Ispis sortiranog niza ZBIR u rastucem redoslijeduprint "Sortiran niz zbira redova"sort zbir()1,Nfor i=1 to Nprint using("####.#",zbir(i));next iprint

'Ispis drugog reda matrice B na ekranprint "Drugi red matrice B "i=2for j=1 to NDrugi(j)=B(i,j)print using("####.#",Drugi(j));next jprint

'Ispis drugog reda matrice B na ekranprint "Treci red matrice B "i=3for j=1 to NTreci(j)=B(i,j)print using("####.#",Treci(j));next jprint

' Formiranje i ispis novog reda matrice Bprint "Zbir drugog i treceg reda matrice B"for j=1 to NZbir(j)=Drugi(j)+Treci(j)print using("####.#",Zbir(j));next jprint

' Ispis sortiranog niza ZBIR u rastucem redoslijeduprint "Sortiran niz zbira redova"sort Zbir()1,Nfor i=1 to Nprint using("####.#",Zbir(i));next iprint

Page 10: Programiranje -zbirka zadataka.2

' Transponovanje matrice Afor i=1 to N for j=1 to N Atr(j,i)=A(i,j) next jnext iprint

' Ispis matrice Atr u obliku red po redprint "Matrica A transponovana(";N;"x";N;"): "for i=1 to N for j=1 to N print using("####.##",Atr(i,j)); next j printnext iprint

' Transponovanje matrice Bfor i=1 to N for j=1 to N Atr(j,i)=B(i,j) next jnext iprint

' Ispis matrice Btr u obliku red po redprint "Matrica B transponovana(";N;"x";N;"): "for i=1 to N for j=1 to N print using("####.##",Atr(i,j)); 'formatirani ispis next j printnext iprint

Page 11: Programiranje -zbirka zadataka.2

5. Napisati program koji ce od unesene matrice A(MxN) izdvojiti elemente sa glavne i sporedne dijagonale. Te iste smjestiti u određenu datoteku. Jedno od rijesenja bi izgledalo:

UNESENA MATRICA JE9 8 7 6 5 4 3 2 1 ELEMENTI NA GLAVNOJ DIJAGONALI SU: 9 5 1 ELEMENTI NA SPOREDNOJ DIJAGONALI SU: 7 5 3 Rješenje:

'unos matrice

DIM A(10,10)Open "D:\ispit\matrica.txt" for append as #1INPUT "UNESITE BROJ REDOVA MATRICE: ";MINPUT "UNESITE BROJ KOLONA: ";N FOR I=1 TO M FOR J=1 TO N INPUT "UNESITE ELEMENTE MATRICE A(";I;",";J;")";A(I,J) NEXT J NEXT IPRINT #1, "UNESENA MATRICA JE" FOR I=1 TO M FOR J=1 TO N PRINT #1,A(I,J);SPACE$(3); NEXT J PRINT #1, "" NEXT I PRINT PRINT #1,"ELEMENTI NA GLAVNOJ DIJAGONALI SU: " FOR I=1 TO M FOR J=1 TO N IF I=J THEN PRINT #1,A(I,J);SPACE$(3); ELSE END IF NEXT J NEXT IPRINT #1, ""

PRINT #1,"ELEMENTI NA SPOREDNOJ DIJAGONALI SU: " FOR I=1 TO M FOR J=1 TO N IF I+J=N+1 THEN PRINT #1, A(I,J);SPACE$(3); ELSE END IF NEXT J NEXT I close #1END

Page 12: Programiranje -zbirka zadataka.2

6. Napisati program kojim se za matricu A(NxN) izracunava:

a) suma elemenata matrice b) suma dijagonalnih elemenata, tj. suma elemenata sa jednakim indeksima c) vrijednost najveceg elementa na sporednoj dijagonali d) suma elemenata ispod glavne dijagonale e) suma negativnih elemenata matrice. f) rezultate ispisati u datotekuJedno od mogucih rjesenja nakon upisa u datoteku bi bilo:

Matrica A je: 9.000 8.000 7.000 6.000 5.000 4.000 3.000 2.000 1.000 Suma elemenata matrice A iznosi: 45Suma elemenata sa glavne dijagonale iznosi: 15Suma elemenata sa sporedne dijagonale iznosi: 15Vrijednost najveceg elementa na sporednoj dijagonali je: 7Suma elemenata ispod glavne dijagonale je: 11Suma negativnih elemenata matrice iznosi: 0

Rješenje:

DIM A(20,20)open "D:\ispit\matrica.txt" for append as #1Input "Unesite dimenziju kvadratne matrice N: ";N

'unos matricefor i=1 to N for j=1 to N input "Unesite element matrice A(";i;",";j;"):";A(i,j) next jnext i

'a) suma svih elemenata matricefor i=1 to N for j=1 to N SumaAll=SumaAll+A(i,j) 'suma clanova next jnext i

'b) suma elemenata sa glavne dijagonale, i=jfor i=1 to N SumaGD=SumaGD+A(i,i)next i

'b) suma elemenata sa sporedne dijagonalefor i=1 to N SumaSp=SumaSp+A(i,N+1-i)next i

Page 13: Programiranje -zbirka zadataka.2

'c) odredjivanje najveceg elementa na sporednoj dijagonaliMAX=A(1,N)for i=1 to N for j=1 to N if i+j=N+1 then if MAX<A(i,j) then MAX=A(i,j) end if end if next jnext i

'd) suma elemenata ispod glavne dijagonalefor i=1 to N for j=1 to N if i>j then SumaIGD=SumaIGD+A(i,j) end if next jnext i

'e) suma negativnih elemenata matricefor i=1 to N for j=1 to N if A(i,j)<0 then SumaNeg=SumaNeg+A(i,j) end if next jnext i

'ispis matrice u formi red po redprint #1, "Matrica A je:"printfor i=1 to N for j=1 to N print #1,using("###.###", A(i,j));space$(2); next j print #1, ""next iprint

'ispis sume svih elemenata matrice Aprint #1, "Suma elemenata matrice A iznosi: ";SumaAll

'ispis sume elemenata sa glavne dijagonaleprint #1, "Suma elemenata sa glavne dijagonale iznosi: ";SumaGD

'ispis sume elemenata sa sporedne dijagonaleprint #1,"Suma elemenata sa sporedne dijagonale iznosi: ";SumaSp

'ispis najveceg elementa na sporednoj dijagonaliprint #1, "Vrijednost najveceg elementa na sporednoj dijagonali je: ";MAX

'ispis sume elemenata ispod glavne dijagonaleprint #1, "Suma elemenata ispod glavne dijagonale je: ";SumaIGD

'ispis sume negativnih elemenata matrice

Page 14: Programiranje -zbirka zadataka.2

print #1,"Suma negativnih elemenata matrice iznosi: ";SumaNegclose #1end

7. Putem tastature unijeti dimenziju matrice A(MxM), a potom i njene clanove.

Zatim, u posebne nizove B(K) i C(L) izdvojiti pozitivne i negativne elemente matrice.Na ekranu ispisati matricu A(MxM) i nizove B(K) i C(L).Jedno od mogucih rjesenja bi bilo:

Unesite broj redova i kolona matrice A: 3Unesite element matrice A(1,1): -2Unesite element matrice A(1,2): 1Unesite element matrice A(1,3): 3Unesite element matrice A(2,1): -4Unesite element matrice A(2,2): 5Unesite element matrice A(2,3): 6Unesite element matrice A(3,1): -7Unesite element matrice A(3,2): -8Unesite element matrice A(3,3): 0

Matrica A(3x3): -2.00 1.00 3.00 -4.00 5.00 6.00 -7.00 -8.00 0.00Pozitivni elementi matrice: 1.00 3.00 5.00 6.00Negativni elementi matrice: -2.00 -4.00 -7.00 -8.00Ako želite ponoviti program pritisnite Enter.

Rješenje:[start]dim A(20,20),B(20),C(20)

' unos matrice Ainput "Unesite broj redova i kolona matrice A: ";Mprint for i=1 to M for j= 1 to M input "Unesite element matrice A(";i;",";j;"): ";A(i,j) next j next iprint

' izdvajanje pozitivnih i negativnih elemenata matriceK=0L=0for i=1 to M for j=1 to M if A(i,j)>0 then K=K+1 B(K)=A(i,j) else

Page 15: Programiranje -zbirka zadataka.2

if A(i,j)<0 then L=L+1 C(L)=A(i,j) end if end if next jnext i

' ispis matrice A(MxM) u obliku red po redprint "Matrica A(";M;"x";M;"): "for i=1 to M for j=1 to M print using("####.##",A(i,j)); 'formatirani ispis next j printnext iprint

' ispis niza Bprint "Pozitivni elementi matrice: "for i=1 to K print using("####.##",B(i)); 'formatirani ispisnext iprint

' ispis niza Cprint "Negativni elementi matrice: "for i=1 to L print using("####.##",C(i)); 'formatirani ispisnext iprint

printinput "Ako želite ponoviti program pritisnite Enter."; Odgif Odg=0 then goto [start]end

8. Program koji odredjuje koliko je promjenljivih od pet zadatih.jednako nuli (primjena brojača)

Moguce rjesenje ispisano na ekran:

Unesite prvu promjenljivu: 1Unesite drugu promjenljivu: 0Unesite trecu promjenljivu: 8Unesite cetvrtu promjenljivu: 6Unesite petu promjenljivu: 0Od navedenih pet brojeva 2 broja su jednaka 0.

Page 16: Programiranje -zbirka zadataka.2

Rješenje.

' BROJAčI

'k=0'if uslov then' k=k+1'end i

' Unos pet promjenljivih

input "Unesite prvu promjenljivu: " ; Ainput "Unesite drugu promjenljivu: " ; Binput "Unesite trecu promjenljivu: " ; Cinput "Unesite cetvrtu promjenljivu: " ; Dinput "Unesite petu promjenljivu: " ; E

' Brojanje promjenjivih koje su jednake 0

K=0 'ova linija se može ali ne mora pisatiif A=0 then K=K+1end ifif B=0 then K=K+1end ifif C=0 then K=K+1end ifif D=0 then K=K+1end ifif E=0 then K=K+1end if

' Odredjivanje nastavka zavrsnog komentara

select case Kcase 1 broj$=" broj je jednak 0."case 2,3,4 broj$=" broja su jednaka 0."case else broj$=" brojeva je jednako 0."end select

' Ispis rezultata na ekran

print "Od navedenih pet brojeva "; K; broj$

Page 17: Programiranje -zbirka zadataka.2

9. Program koji od pet zadatih promjenljivih sabira samo pozitivne brojeve i mnozi iste (pomocu „akumulatora“)

Moguce rjesenje ispisano na ekran:

Unesite prvu promjenljivu: 2Unesite drugu promjenljivu: -5Unesite trecu promjenljivu: -9Unesite cetvrtu promjenljivu: 10Unesite petu promjenljivu: 23Suma pozitivnih brojeva datog niza iznosi: 35Proizvod pozitivnih brojeva datog niza iznosi: 460

Rješenje:

' AKUMULATORI'S=0'if uslov then' S=S+X'end if

' Unos pet promjenljivih input "Unesite prvu promjenljivu: " ; Ainput "Unesite drugu promjenljivu: " ; Binput "Unesite trecu promjenljivu: " ; Cinput "Unesite cetvrtu promjenljivu: " ; Dinput "Unesite petu promjenljivu: " ; E

S=0 'ova linija se može ali ne mora pisatiif A>0 then S=S+Aend ifif B>0 then S=S+Bend ifif C>0 then S=S+Cend ifif D>0 then S=S+Dend ifif E>0 then S=S+Eend if

' Ispis rezultata na ekran

print "Suma pozitivnih brojeva datog niza iznosi: "; S

' Program koji od pet zadatih promjenljivih množi samo' pozitivne brojeve

P=1 if A>0 then P=P*A end if

Page 18: Programiranje -zbirka zadataka.2

if B>0 then P=P*B end if if C>0 then P=P*C end if if D>0 then P=P*D end if if E>0 then P=P*E end if

' Ispis rezultata na ekran ---------------------------

print "Proizvod pozitivnih brojeva datog niza iznosi: "; P

Rješenje ovog 10-tog zadatka:

dim x(20), y(20), bodovi(20)input "Unesite ime i prezime strijelca: "; ImePrezime$input "Unesite broj hitaca: ";nfor i=1 to n

Page 19: Programiranje -zbirka zadataka.2

print "Unesite koordinate ";i;".hitca:" input "x=";x(i) input "y=";y(i) if abs(x(i))<=10 and abs(y(i))<=10 then bodovi(i)=10 else if abs(x(i))<=25 and abs(y(i))<=25 then bodovi(i)=5 else bodovi(i)=0 end if end ifs=s+bodovi(i)next i

printprint "Ime i prezime strijelca: ";ImePrezime$printprint "R.br.","x","y","Bodovi"print "------------------------------------------------"for i=1 to n print i,x(i),y(i),bodovi(i)next iprint "------------------------------------------------"print "Ukupan broj bodova:";s

Page 20: Programiranje -zbirka zadataka.2

Rješenje ovog 11-tog zadatka:

input "Unesite ime i prezime strijelca: ";Ime$input "Unesite broj hitaca: "; N

for i=1 to N input "Unesite x koordinatu ";i;". hitca: "; X(i) input "Unesite y koordinatu ";i;". hitca: "; Y(i)next

printprint "Ime i prezime strijelca: "; Ime$printprint "R.br.","x","y","Bodovi"print "------------------------------------------------"

for i=1 to N x=X(i) y=Y(i) if abs(x)<=10 and abs(y)<=10 then D=10 S=S+D else if abs(x)<=25 and abs(y)<=25 then D=5 S=S+D else D=0 end if end ifprint i,x,y,D

next

print "------------------------------------------------"print "Ukupno bodova: ";S

end

12. Putem tastature unijeti dimenziju matriceA(MxM), a potom i njene clanove.Odrediti minimalne i maksimalne clanove sa glavne i sporedne dijagonale.Na ekranu ispisati matricu A(MxM) i dobijene minimalne clanove.Jedno od rjesenja bi izgledalo:Unesite broj redova i kolona matrice A: 4'Nakon unosa elemenata matrice dobili bi sljedece rješenjeMinimalni clan na glavnoj dijagonali je: 1Minimalni clan na sporednoj dijagonali je: 4

Page 21: Programiranje -zbirka zadataka.2

Maksimalni clan na glavnoj dijagonali je: 19Maksimalni clan na sporednoj dijagonali je: 17Matrica A(4x4): 1.00 2.00 3.00 9.00 8.00 7.00 4.00 6.00 5.00 11.00 10.00 15.00 17.00 16.00 18.00 19.00Ako želite ponoviti program pritisnite Enter.

Rješenje:

' Pocetak programa ' Dimenzionisanje niza dim A(20,20)' Unos matrice A -------------------------------------input "Unesite broj redova i kolona matrice A: ";Mprint for i=1 to M for j= 1 to M input "Unesite element matrice A(";i;",";j;"): ";A(i,j) next j next iprint

' Izdvajanje minimanih elemenata sa glavne i sporedne dijagonale MinGL=A(1,1)MinSP=A(1,M)for i=1 to M if A(i,i)<MinGL then MinGL=A(i,i) end if if A(i,M+1-i)<MinSP then MinSP=A(i,M+1-i) end ifnext i' Ispis minimalnog clana sa glavne i sporedne dijagonaleprint "Minimalni clan na glavnoj dijagonali je: ";MinGLprint "Minimalni clan na sporednoj dijagonali je: ";MinSPprint' Izdvajanje maksimalnih elemenata sa glavne i sporedne dijagonaleMaxGL=A(1,1)MaxSP=A(1,M)for i=1 to M if A(i,i)>MaxGL then MaxGL=A(i,i) end if if A(i,M+1-i)>MaxSP then MaxSP=A(i,M+1-i) end if

Page 22: Programiranje -zbirka zadataka.2

next i' Ispis maksimalnog clana sa glavne i sporedne dijagonaleprint "Maksimalni clan na glavnoj dijagonali je: ";MaxGL

' Ispis matrice A u obliku red po red ----------------print "Matrica A(";M;"x";M;"): "for i=1 to M for j=1 to M print using("####.##",A(i,j)); 'formatirani ispis next j printnext i' Odluka o ponavljanju programa ----------------------

input "Ako želite ponoviti program pritisnite Enter."; Odgif Odg=0 then goto [start]

' Kraj programa --------------------------------------End

13. Napisati program koji,nakon unošenja matrice A(MxN),formira nizove druge i trece kolone unešene matrice,te ih onda sabira i vrsi sortiranje saberenog niza u rastucem intervalu. Na ekranu ispisati dobijeno rješenje.

Moguce rjesenje bi izgledalo:

Unesite broj redova matrice A: 4Unesite broj kolona matrice A: 3' Nakon unosa elemenata dobijemo rjesenjeUnešena matrica A( 4 ,3) glasi: 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0Clanovi druge kolone matrice su: 2.0 5.0 8.0 11.0Clanovi trece kolone matrice su: 3.0 6.0 9.0 12.0zbir druge i trece kolone 5.0 11.0 17.0sortiran niz Zbira kolona 5.0 11.0 17.0

Rješenje: ' Dimenzionisanje nizova dim A(20,20),DRUGI(20), TRECI(20), ZBIR(20)

Page 23: Programiranje -zbirka zadataka.2

' Unosenje elemenata matrice -----input "Unesite broj redova matrice A: ";Minput "Unesite broj kolona matrice A: ";Nfor i=1 to Mfor j=1 to Ninput "Unesite element matrice A(";i;",";j;"): ";A(i,j)next jnext iprint

' Ispis matrice na ekran ----------------------print "Unešena matrica A( ";M;" ,";N;") glasi:"for i=1 to Mfor j=1 to Nprint using("####.#",A(i,j));next jprintnext i

' Izdvajanje i ispis drugog reda matrice -------------print "Clanovi druge kolone matrice su: "j=2for i=1 to Mdrugi(i)=A(i,j)print using("####.#",drugi(i));next iprint

print "Clanovi trece kolone matrice su: "j=3for i=1 to Mtreci(i)=A(i,j)print using("####.#",treci(i));next iprint

' Formiranje i ispis novog reda matriceprint "zbir druge i trece kolone"for i=1 to Nzbir(i)=drugi(i)+treci(i)print using("####.#",zbir(i));next iprint

' Ispis sortiranog niza ZBIR u rastucem redoslijeduprint "sortiran niz Zbira kolona"sort zbir()1,Nfor i=1 to Nprint using("####.#",zbir(i));

Page 24: Programiranje -zbirka zadataka.2

next iprint

Page 25: Programiranje -zbirka zadataka.2
Page 26: Programiranje -zbirka zadataka.2
Page 27: Programiranje -zbirka zadataka.2
Page 28: Programiranje -zbirka zadataka.2
Page 29: Programiranje -zbirka zadataka.2
Page 30: Programiranje -zbirka zadataka.2
Page 31: Programiranje -zbirka zadataka.2

20. Napisati program koji od unesene kvadratne matrice A,oformi novu matricu B sa zamjenom prvog i zadnje reda,te onda izdvoji novi niz C sa najvecim elemementom svakog reda,,te taj niz pomnozi sa matricom B.Rezultat ispisati u datoteku.. Rezultat nakon upisa u datoeku moze biti sljedeci:

Matrica A: 6.00 3.00 8.00 5.00 2.00 9.00 7.00 1.00 4.00

Matrica B: 7.00 1.00 4.00 5.00 2.00 9.00 6.00 3.00 8.00

Niz C: 7.00 9.00 8.00

Niz D: 90.00 125.00 133.00

Rješenje:

dim A(50,50), B(50,50), C(50), D(50)open "C:\datoteke\rezultati.txt" for append as #1input "Unesite broj redova i kolona: ";Nfor i=1 to N for j=1 to N input "A(";i;",";j;")=";A(i,j) 'B(N+1-i,j)=A(i,j) next jnext i

for i=1 to N for j=1 to N B(N+1-i,j)=A(i,j) next jnext i

for i=1 to N MAX=B(i,1) for j=1 to N if B(i,j)>MAX then MAX=B(i,j) next j C(i)=MAXnext i

for i=1 to N D(i)=0 for j=1 to N

Page 32: Programiranje -zbirka zadataka.2

D(i)=D(i)+B(i,j)*C(j) next jnext iprint #1, "Matrica A:"for i=1 to N for j=1 to N print #1, using("####.##",A(i,j)); next j print #1,""next iprint #1,""print #1, "Matrica B:"for i=1 to N for j=1 to N print #1, using("####.##",B(i,j)); next j print #1,""next iprint #1,""print #1, "Niz C:"for i=1 to N print #1, using("####.##",C(i))next iprint #1,""print #1, "Niz D:"for i=1 to N print #1, using("####.##",D(i))next iclose #1