Vous êtes sur la page 1sur 5

Praktikum iz programiranja - pomoćni materijal

IX MATRICE – NIZOVI

25. Napisati program u kojem se unose elementi realne 26. Napisati program u kojem se unose prirodni brojevi N i
pravougaone matrice A[7][6], a potom se kreira niz V[6] M, potom elementi prirodne pravougaone matrice
čiji su elementi jednaki proizvodu elemenata kolona A[N][M]. Koristeći funkcije, formirati niz na taj način
matrice A. Na kraju treba odštampati i matricu A i što se od maksimalnog elementa matrice A oduzme
novodobijeni niz V. minimalni u svakoj vrsti matrice A.
// A u V[6].c // Maks manje mini.c
#include <stdio.h> #include<stdio.h>
main() void unosMatrice(int A[][50], int n, int m)
{ {
int i, j;
float A[7][6],V[6]; printf("\n Uneti elemente matrice:\n");
int i,j; for(i=0; i<n; i++)
printf("Unesi elemente matrice A 7x6:\n"); for(j=0; j<m; j++)
for(i=0;i<7;i++) scanf("%d", &A[i][j]);
for(j=0;j<6;j++) }
scanf("%f",&A[i][j]); void ispisNiza(int A[50], int n)
for(j=0;j<6;j++) {
{ int i;
V[j]=1; printf("\n Ispis niza: \n");
for(i=0; i<n; i++)
for(i=0;i<7;i++) printf("%d\t", A[i]);
V[j]=V[j]*A[i][j]; printf("\n");
} }
printf("\n Polazna matrica A:\n"); int maksMatr(int A[][50], int n, int m)
for(i=0;i<7;i++) {
{ int i, j,max;
for(j=0;j<6;j++) max=A[0][0];
printf("%10.2f",A[i][j]); for(i=0; i<n; i++)
printf("\n"); for(j=0; j<m; j++)
if(max<A[i][j])
} max=A[i][j];
printf("\n Niz V:\n"); return max;
for(i=0;i<6;i++) }
printf("%10.2f",V[i]); void kreirajNiz(int A[][50], int n, int m)
printf("\n"); {
} int i,j,min[50],C[50];
printf("\n Maksimalni element matrice:
%d\n",maksMatr(A,n,m));
printf("\n Minimalni elementi po vrstama:");
Unesi elemente matrice A 7x6: for(i=0; i<n; i++)
135698 {
2 6 9 14 2 3 min[i]=A[i][0];
084269 for(j=0; j<m; j++)
10 2 7 4 6 8 if(min[i]>A[i][j])
min[i]=A[i][j];
360975 printf("\n \t- %d. vrsta = %d",i+1,min[i]);
444668 }
269701
for(i=0; i<n; i++)
Polazna matrica A: C[i]=maksMatr(A,n,m)-min[i];
1.00 3.00 5.00 6.00 9.00 8.00 ispisNiza(C,n); //Poziv funkcije ispisNiza()
2.00 6.00 9.00 14.00 2.00 3.00 }
0.00 8.00 4.00 2.00 6.00 9.00 main()
10.00 2.00 7.00 4.00 6.00 8.00 {
int A[50][50], n, m;
3.00 6.00 0.00 9.00 7.00 5.00 printf("\n Uneti dimenziju matrice:");
4.00 4.00 4.00 6.00 6.00 8.00 scanf("%d%d", &n, &m);
2.00 6.00 9.00 7.00 0.00 1.00 unosMatrice(A,n,m);
kreirajNiz(A,n,m);
Niz V: }
0.00 41472.00 0.00 254016.00 0.00 69120.00 Uneti dimenziju matrice:3 3

Uneti elemente matrice:


14 16 47
92 34 18
33 64 16

Maksimalni element matrice: 92

Minimalni elementi po vrstama:


- 1. vrsta = 14
- 2. vrsta = 18
- 3. vrsta = 16
Ispis niza:
78 74 76

94
Praktikum iz programiranja - pomoćni materijal
27. Napisati program u kojem se unosi 28. Napisati program u kojem se unosi 29. Napisati program u kojem se unosi
prirodan broj n, a potom se unose prirodni brojevi n i m (m<n), a prirodan broj n, a potom se unose
elementi celobrojne kvadratne potom elementi dve celobrojne elementi kvadratne matrice
matrice A[n][n]. Formirati niz S kvadratne matrice M[n][n] i M[n][n] (ocene studenata). Pronaći
koji se dobija kada se sumiraju N[n][n]. Formirati niz C[n] čiji su najmanju ocenu za svakog studenta
pozitivni elementi po kolonama elementi proizvodi elemenata m-te (po vrstama) i od tih ocena
matrice A vrste matrice M i m-te kolone formirati niz C. Niz C sortirati u
matrice N. rastućem poretku. Na kraju ispisati
// Suma poz po kol.c matricu i niz.
#include<stdio.h> // Vrsta x kolona.c
main() #include<stdio.h> // Ocene studenata.c
{ main() #include<stdio.h>
int A[50][50], n, i, j, S[50]; { main()
printf("\n Uneti dimenziju matrice:"); int M[10][10], N[10][10], C[10], n, i, j; {
scanf("%d", &n); printf("\n Uneti dimenziju matrice:"); int M[50][50], C[50], n, i, j, min, pom;
printf("\n Uneti elemente matrice: \n"); scanf("%d", &n); printf("Uneti dimenziju matrice: \n");
for(i=0; i<n; i++) printf("Uneti ceo broj m manji od %d :",n); scanf("%d", &n);
for(j=0; j<n; j++) scanf("%d", &m); printf("Uneti ocene studenata: \n");
scanf("%d", &A[i][j]); printf("Uneti elemente matrice M: \n"); for(i=0; i<n; i++)
for(j=0; j<n; j++) for(i=0; i<n; i++) for(j=0; j<n; j++)
{ for(j=0; j<n; j++) scanf("%d", &M[i][j]);
S[j]=0; scanf("%d", &M[i][j]); for(i=0; i<n; i++)
for(i=0; i<n; i++) printf("Uneti elemente matrice N: \n"); {
if(A[i][j]>0) for(i=0; i<n; i++) min=M[i][0];
S[j]=S[j]+A[i][j]; for(j=0; j<n; j++) for(j=0; j<n; j++)
} scanf("%d", &N[i][j]); {
printf("\n Kreirani niz: \n"); for(i=0; i<n; i++) if(min>M[i][j])
for(i=0; i<n; i++) C[i]=M[m-1][i]*N[i][m-1]; min=M[i][j];
printf("%d\t", S[i]); printf("\n Ispis niza C: \n"); }
} for(i=0; i<n; i++) C[i]=min;
printf("%d\t", C[i]); }
Uneti dimenziju matrice:3 } for(i=0; i<n-1; i++)
{
for(j=i+1; j<n; j++)
Uneti elemente matrice:
if(C[i]>C[j])
-78 69 -14 Uneti dimenziju matrice:3 {
56 -8 36 Uneti ceo broj m manji od 3 :2 pom=C[i];
54 36 -17 Uneti elemente matrice M: C[i]=C[j];
159 C[j]=pom;
Kreirani niz: 357 }
110 105 36 }
654 printf("\n Niz C: \n");
Uneti elemente matrice N: for(i=0; i<n; i++)
824 printf("%d\t", C[i]);
619 printf("\n Ocene studenata: \n");
374 for(i=0; i<n; i++)
{
Ispis niza C: for(j=0; j<n; j++)
6 5 49 printf("%d\t", M[i][j]);
printf("\n");
}
Uneti dimenziju matrice:
3
Uneti ocene studenata:
876
5 9 10
867

Niz C:
5 6 6
Ocene studenata:
8 7 6
5 9 10
8 6 7

95
Praktikum iz programiranja - pomoćni materijal
30. Matrica Ekipe [n][n] predstavlja tabelu prvenstva fudbalskog šampionata na kraju sezone, čiji su elementi: 0 – ako je ekipa
izgubila, 1 – ako je nerešeno i 2 ako je ekipa pobedila. Npr. na slici prva ekipa (Ekipa 1) pobedila je ekipe: 2, 6 i 7, remizirala
je sa ekipama: 3, 5, 8 i 9, dok je izgubila od ekipa: 4 i 10. Napisati program kojim se izračunava broj osvojenih bodova za
svaku ekipu (pobeda - 3 boda, nereseno - 1 bod) i dati sređen tabelarni prikaz.

// Ekipa.c
#include<stdio.h>
main()
{
int Ekipe[50][50], n, brP=0, brI=0, brN=0, i, j;
int pobede[50], porazi[50], nereseno[50];
int bodovi[50];
printf("Uneti broj ekipa: ");
scanf("%d", &n);
for(i=0; i<n; i++)
{
printf("\n Uneti rezultate %d. ekipe (2-pobeda, 1-nereseno, 0-poraz): \n", i+1);
for(j=0; j<n; j++)
{
if(i!=j)
{
opet:
printf("\t- Rezultat sa %d. ekipom 2/1/0: ",j+1);
scanf("%d", &Ekipe[i][j]);
if((Ekipe[i][j]!=2)&&(Ekipe[i][j]!=1)&&(Ekipe[i][j]!=0))
{
printf("\t\tGreska!!!\n");
goto opet;
} Uneti broj ekipa: 5
} Uneti rezultate 1. ekipe (2-pobeda, 1-nereseno, 0-poraz):
} - Rezultat sa 2. ekipom 2/1/0: 2
} - Rezultat sa 3. ekipom 2/1/0: 0
- Rezultat sa 4. ekipom 2/1/0: 1
for(i=0; i<n; i++) - Rezultat sa 5. ekipom 2/1/0: 3
{ Greska!!!
- Rezultat sa 5. ekipom 2/1/0: 2
for(j=0; j<n; j++)
{ Uneti rezultate 2. ekipe (2-pobeda, 1-nereseno, 0-poraz):
- Rezultat sa 1. ekipom 2/1/0: 1
if(i!=j) - Rezultat sa 3. ekipom 2/1/0: 0
if(Ekipe[i][j]==2) - Rezultat sa 4. ekipom 2/1/0: 0
- Rezultat sa 5. ekipom 2/1/0: 1
brP++;
else if(Ekipe[i][j]==1) Uneti rezultate 3. ekipe (2-pobeda, 1-nereseno, 0-poraz):
- Rezultat sa 1. ekipom 2/1/0: 2
brN++; - Rezultat sa 2. ekipom 2/1/0: 2
else - Rezultat sa 4. ekipom 2/1/0: 0
- Rezultat sa 5. ekipom 2/1/0: 0
brI++;
} Uneti rezultate 4. ekipe (2-pobeda, 1-nereseno, 0-poraz):
- Rezultat sa 1. ekipom 2/1/0: 1
pobede[i]=brP; - Rezultat sa 2. ekipom 2/1/0: 1
porazi[i]=brI; - Rezultat sa 3. ekipom 2/1/0: 0
nereseno[i]=brN; - Rezultat sa 5. ekipom 2/1/0: 0
bodovi[i]=brP*3+brN; Uneti rezultate 5. ekipe (2-pobeda, 1-nereseno, 0-poraz):
brP=0; - Rezultat sa 1. ekipom 2/1/0: 2
- Rezultat sa 2. ekipom 2/1/0: 2
brI=0; - Rezultat sa 3. ekipom 2/1/0: 1
brN=0; - Rezultat sa 4. ekipom 2/1/0: 0
} Zbirni rezultati:
printf("\nZbirni rezultati:\n"); Pobede Nereseno Porazi Bodovi
Ekipa 1 2 1 1 7
printf("\t\tPobede Nereseno Porazi Bodovi\n"); Ekipa 2 0 2 2 2
for(i=0;i<n;i++) Ekipa 3 2 0 2 6
Ekipa 4 0 2 2 2
printf("Ekipa %d\t\t %d\t %d\t %d\t %d\n",i+1, Ekipa 5 2 1 1 7
pobede[i],nereseno[i],porazi[i],bodovi[i]);
}

96
Praktikum iz programiranja - pomoćni materijal

ZADACI ZA VEŽBANJE - matrice

1. Napisati program u kojem se unosi prirodan broj N, potom se unose elementi kvadratne matrice A dimenzije
NxN. Koristeći funkcije, za matricu A naći:
 zbir svih parnih elemenata deljivih sa 3,
 maksimalni elemenat na glavnoj dijagonali,
 najveći element ispod glavne dijagonale,
 proizvod elemenata na sporednoj dijagonali,
 broj 0 na sporednoj dijagonali,
 sume elemenata ispod glavne dijagonale
 proizvod elemenata iznad sporedne dijagonale
 minimalni elemenat u pretposlednjoj koloni
 broj pozitivnih elemenata u trećoj vrsti
 srednju vrednost k-te kolone
2. Napisati program u kojem se unose prirodni brojevi N i M, potom se unose elementi pravougaone matrice A
dimenzije NxM. Formirati novu matricu B istih na sledeći način: Svaka 0 u koloni se menja sa najvećim neparnim
brojem u toj koloni. Ukoliko u koloni ne postoje neparni brojevi, sadržaj te kolone se ne menja.
3. Napisati program koji omogućava korisniku unos elemenata u kvadratnu matricu celih brojeva dimenzije N x N,
ali tako da svi elementi po kolonama matrice budu međusobno različiti (osim broja 0 koji može da se ponavlјa).
Korisnik sa standardnog ulaza unosi brojeve. Pre upisa broja u matricu treba proveriti da li se broj već nalazi u
koloni za koju se unose podaci. Ukoliko element postoji u koloni matrice, u tekući element matrice upisati 0, u
suprotnom upisati broj koji je korisnik uneo sa standardnog ulaza.
4. Napisati program koji omogućava korisniku unos elemenata u kvadratnu matricu celih brojeva dimenzije N x N,
ali tako da svi elementi po redovima matrice budu međusobno različiti (osim broja -1 koji može da se ponavlјa).
Korisnik sa standardnog ulaza unosi brojeve. Pre upisa broja u matricu treba proveriti da li se broj već nalazi u
redu za koji se unose podaci. Ukoliko element postoji u koloni matrice, u tekući element matrice upisati -1, u
suprotnom upisati broj koji je korisnik uneo sa standardnog ulaza.
5. Napisati program koji menja sadržaj ulazne matrice na sledeći način: Svaka 0 u koloni se menja sa najvećim
neparnim brojem u toj koloni. Ukoliko u koloni ne postoje neparni brojevi, sadržaj te kolone se ne menja.
6. Napisati program koji menja sadržaj ulazne matrice na sledeći način: Svaki -1 broj u matrici se menja sa brojem
koji se nalazi na preseku sporedne i glavne dijagonale matrice. Ukoliko se u preseku glavne i sporedne dijagonale
nalazi broj -1, svi -1 brojevi u matrici se menjaju brojem 0, osim elementa na preseku sporedne i glavne
dijagonale.
7. Data je ulazna kvadratna matrica celih brojeva dimenzije N x N. Napisati funkciju koja upoređuje sumu
elemenata u prvoj dijagonali iznad glavne dijagonale matrice i prvoj dijagonali ispod glavne dijagonale matrice
i prikazuje poruku u sledećem formatu Suma el. u prvoj dijagonali iznad GD je: Suma el. u prvoj dijagonali ispod
GD je:
8. Data je ulazna kvadratna matrica celih brojeva dimenzije N x N. Napisati funkciju koja sve elemente koje se
nalaze na prvoj dijagonali iznad glavne dijagonale matrice prebacuje u niz X.
9. Data je ulazna kvadratna matrica celih brojeva dimenzije N x N. Napisati funkciju koja sve elemente koje se
nalaze na prvoj dijagonali ispod glavne dijagonale matrice prebacuje u niz X.
10. Data je ulazna kvadratna matrica celih brojeva dimenzije N x N. Napisati funkciju koja za drugu polovinu matrice
(označena na slici) računa sumu elemenata po kolonama i prikazuje u formatu koji je niže dat na slici

97
Praktikum iz programiranja - pomoćni materijal
11. Data je ulazna kvadratna matrica celih brojeva dimenzije N x N. Napisati funkciju koja proverava da li se svi
elementi na sporednoj dijagonali matrice nalaze i na glavnoj dijagonali matrice. Svi elementi na sporednoj ali i
na glavnoj su međusobno različiti (nema ponavlјanja istih elemenata)
12. Data je ulazna kvadratna matrica celih brojeva dimenzije N x N. Napisati funkciju koja proverava da li se svi
elementi na sporednoj dijagonali matrice nalaze i na glavnoj dijagonali matrice. Na sporednoj i glavnoj dijagonali
elementi mogu da se ponavlјaju.
13. Napisati program koji formira celobrojnu kvadratnu matricu dimenzije 8 čiji su elementi 1,2,3,...,64 raspoređeni
u njoj po spirali.

14. Data je ulazna kvadratna matrica celih brojeva dimenzije N x N. Napisati program koji sve elemente koji se
nalaze ispod sporedne dijagonale kvadratne matrice prebacuje u niz.
15. Napisati program u kojem se unosi prirodan broj N, potom se unose elementi kvadratne matrice A dimenzije
NxN. Formirati niz B na taj način što se od maksimalnog elementa matrice A oduzme minimalni u svakoj vrsti
matrice.
16. Napisati program u kojem se unosi prirodan broj N, potom se unose elementi kvadratne matrice A dimenzije
NxN. Formirati niz X od elemenata matrice A koji se nalaze na prvoj dijagonali iznad glavne dijagonale.
17. Napisati program u kojem se unosi prirodan broj N, potom se unose elementi kvadratne matrice A dimenzije
NxN. Formirati niz X od elemenata matrice A koji se nalaze na prvoj dijagonali ispod glavne dijagonale.
18. Napisati program u kojem se unosi prirodan broj N, potom se unose elementi kvadratne matrice A dimenzije
NxN. Formirati niz B od elemenat koji se nalaze ispod sporedne dijagonale matrice A.
19. Napisati program u kojem se unose prirodni brojevi n i m, a potom se unose elementi celobrojne pravougaone
matrice A[n][m]. Od pravougaone matrice A formirati niz B koji sadrži zbir elemenata po vrstama.
20. Napisati program u kojem se unosi prirodan broj N, potom se unose elementi kvadratne matrice M dimenzije
NxN. Pronaći prosečnu vrednost elemenata matrice M, a potom kreirati niz C koji sadrži elemente matrice M
koji su veći od dobijenog proseka.
21. Data je ulazna kvadratna matrica celih brojeva dimenzije N x N (N paran broj). Napisati program koja sve
elemente koji se nalaze u drugoj polovini matrice (od N/2 +1 kolone do N –te kolone) prebacuje u niz.
22. Napisati program u kojem se unosi prirodan broj n, a potom se unose elementi celobrojne kvadratne matrice
A[n][n]. Naći aritmetičku sredinu svih nenegativnih članova martice A. Takođe formirati niz B koji sadrži samo
negativne članove matrice A. Odštampati matricu A, niz B i traženu aritmetičku sredinu
23. Napisati program u kojem se unosi prirodan broj N, a potom elementi kvadratne matrice M[N][N]. Koristeći
funkcije pronaći prosečnu vrednost elemenata matrice, a potom kreirati niz C koji sadrži elemente matrice M
koji su veći od dobijenog proseka. Niz C sortirati u rastućem redosledu.
24. Na standardnom ulazu se unosi niz celih brojeva koji se završava 0. Napisati program koji od zadatog niza formira
matricu tako da prvi red matrice odgovara unetom nizu, a svaki naredni red se dobija cikličnim pomeranjem
elemenata niza za jedno mesto ulevo.
25. Na standardnom ulazu se unosi niz celih brojeva koji se završava -1. Napisati program koji od zadatog niza
formira matricu tako da prvi red matrice odgovara unetom nizu, a svaki naredni red se dobija cikličnim
pomeranjem elemenata niza za jedno mesto udesno.
26. Na standardnom ulazu se unosi niz celih brojeva koji se završava -1. Napisati program koji od zadatog niza
formira matricu tako da prva kolona matrice odgovara unetom nizu, a svaka naredna kolona se dobija cikličnim
pomeranjem elemenata niza za jedno mesto udesno.

98

Vous aimerez peut-être aussi