28.04. ANALIZA ZADATKA 1
Za početak – Unos i validacija podataka
Šta se radi:
-
Unosi se broj n
-
Proverava se da li važi:
5 ≤ n < 15 -
Ako nije – ponavlja se unos
Zatim:
-
Unosi se niz A od n celih brojeva
Napomena: Validacija se radi pomoću petlje (while ili do-while)
Detaljna obrada KORAKA 1, uz logiku i gotova rešenja u više jezika:
Zadatak: Uneti prirodan broj n takav da važi: 5 ≤ n < 15
To znači da
- n mora biti ceo broj
- n mora biti u opsegu od 5 do 14
- unos se ponavlja dok nije ispravan
Logika rešenja:
- Tražimo unos od korisnika
- Proveravamo uslov
- Ako nije dobar → ispis poruke
- Ponovo tražimo unos
Opšti algoritam (napisan u pseudokodu)
ponavljaj:
učitaj n
ako n < 5 ili n >= 15:
ispiši "Broj nije u opsegu"
dok uslov nije ispunjen
Koliko god mogu da se koriste obe petlje (while, do-while), iz dosadašnjeg raznatranja može da se zaključi da je bolje koristiti petlju do-while .
Rešenje u jeziku , , , ,
Rešenje u jeziku C
int n;
do {
printf("Unesite broj elemenata niza N:\n");
scanf("%d", &n);
if (n < 5 || n >= 15) {
printf("Broj nije u opsegu\n");
}
} while (n < 5 || n >= 15);
Rešenje u jeziku C++
int n;
do {
cout << "Unesite broj elemenata niza N:" << endl;
cin >> n;
if (n < 5 || n >= 15) {
cout << "Broj nije u opsegu" << endl;
}
} while (n < 5 || n >= 15);
Rešenje u jeziku C# (prilagođeno za Visual Studio 2010)
int n;
do
{
Console.WriteLine("Unesite broj elemenata niza N:");
n = int.Parse(Console.ReadLine());
if (n < 5 || n >= 15)
{
Console.WriteLine("Broj nije u opsegu");
}
} while (n < 5 || n >= 15);
Rešenje u jeziku Python
while True:
n = int(input("Unesite broj elemenata niza N:\n"))
if 5 <= n < 15:
break
else:
print("Broj nije u opsegu")
TIPIČNE GREŠKE
-
❌ koriste
&&umesto|| -
❌ pogrešno napišu uslov:
n <= 5 (umesto n < 5) -
❌ ne ponavljaju unos
-
❌ zaborave poruku o grešci
-
❌ u C# koriste
Convert.ToInt32bez objašnjenja (boljeint.Parseza početak)
Način rada
Program treba da ispiše:
Unesite elemente niza A:
Zatim korisnik unosi brojeve jedan po jedan (svaki u novom redu), pa ako je na primer n=5:
12
0
15
0
-15
Program samo čita vrednosti redom i smešta ih u niz.
REŠENJA PO JEZICIMA -> , , ,
Rešenje u jeziku C
// treba na pocetku main-a
// deklarisati celobrojni niz od MAX elemenata
// int A[15];
// a koristiti koliko je potrebno
printf("Unesite elemente niza A:\n");
for (int i = 0; i < n; i++) {
scanf("%d", &A[i]);
}
Rešenje u jeziku C++
// treba deklarisati celobrojni niz od MAX elemenata
// int A[15];
// a koristiti koliko je potrebno
cout << "Unesite elemente niza A:" << endl;
for (int i = 0; i < n; i++) {
cin >> A[i];
}
Rešenje u jeziku C# (prilagođeno za Visual Studio 2010)
int [] A = new int[n];
Console.WriteLine("Unesite elemente niza A:");
for (int i = 0; i < n; i++)
{
A[i] = int.Parse(Console.ReadLine());
}
Rešenje u jeziku Python
A = []
print("Unesite elemente niza A:")
for i in range(n):
A.append(int(input()))
i
1. Jedna poruka, više unosa
Unesite elemente niza A:
Ova poruka se ispisuje samo jednom. Nakon toga korisnik unosi n brojeva
2. Petlja kontroliše unos
za i od 0 do n-1
Petlja garantuje da će se uneti tačno n elemenata
3. Svaki unos ide u niz
A[i] = uneta vrednost
Prvi broj → A[0], Drugi broj → A[1], itd.
4. Vizuelno objašnjenje
Ako je:
n = 5
i unos:
12
0
15
0
-15
dobijamo:
Indeks: 0 1 2 3 4
A: 12 0 15 0 -15
👉 „Program ne pita za svaki broj posebno — samo čita sledeći broj iz ulaza i smešta ga u niz.“
1.1
Šta se radi:
-
Ispis niza A
-
Računa se srednja vrednost po formuli:
srednja = zbir svih elemenata / n -
Broji se koliko elemenata je deljivo sa 3 i veće je od srednje vrednosti
Za svaki element se gleda:
ako je (element % 3 == 0 i element > srednja)
povećaj brojač
-> U PSEUDOKOD - Korak po korak: 1.1.1. ISPIS NIZA
1.1.1. ISPIS NIZA
za i od 0 do n-1:
ispis A[i]
1.1.2. SREDNJA VREDNOST
Korak 1 – zbir elemenata
zbir = 0
za i od 0 do n-1:
zbir += A[i]
Korak 2 – srednja vrednost
srednja = zbir / n
Napomena: srednja mora biti realan broj !
1.1.3. BROJANJE
brojac = 0
za i od 0 do n-1:
ako A[i] % 3 == 0 i A[i] > srednja:
brojac++
1.1.4. PRIMER
Ulaz:
12 0 15 0 -15
Računanje:
Zbir:
12 + 0 + 15 + 0 - 15 = 12
Srednja:
12 / 5 = 2.4
Provera:
| Element | deljiv sa 3 | > 2.4 | Broji se |
|---|---|---|---|
| 12 | DA | DA | ✅ |
| 0 | DA | NE | ❌ |
| 15 | DA | DA | ✅ |
| 0 | DA | NE | ❌ |
| -15 | DA | NE | ❌ |
Rezultat:
Broj elemenata = 2
-> Deo rešenja u jeziku , , , ,
Rešenje u jeziku C
int zbir = 0;
// ispis
for (int i = 0; i < n; i++) {
printf("%d ", A[i]);
zbir += A[i];
}
printf("\n");
double srednja = (double)zbir / n;
int brojac = 0;
for (int i = 0; i < n; i++) {
if (A[i] % 3 == 0 && A[i] > srednja) {
brojac++;
}
}
printf("Srednja vrednost niza: %.2lf\n", srednja);
printf("Broj elemenata: %d\n", brojac);
Rešenje u jeziku C++
int zbir = 0;
for (int i = 0; i < n; i++) {
cout << A[i] << " ";
zbir += A[i];
}
cout << endl;
double srednja = (double)zbir / n;
int brojac = 0;
for (int i = 0; i < n; i++) {
if (A[i] % 3 == 0 && A[i] > srednja) {
brojac++;
}
}
cout << "Srednja vrednost niza: " << srednja << endl;
cout << "Broj elemenata: " << brojac << endl;
Rešenje u jeziku C# (prilagođeno za Visual Studio 2010)
int zbir = 0;
for (int i = 0; i < n; i++)
{
Console.Write(A[i] + " ");
zbir += A[i];
}
Console.WriteLine();
double srednja = (double)zbir / n;
int brojac = 0;
for (int i = 0; i < n; i++)
{
if (A[i] % 3 == 0 && A[i] > srednja)
{
brojac++;
}
}
Console.WriteLine("Srednja vrednost niza: " + srednja);
Console.WriteLine("Broj elemenata: " + brojac);
Rešenje u jeziku Python
zbir = 0
for x in A:
print(x, end=" ")
zbir += x
print()
srednja = zbir / n
brojac = 0
for x in A:
if x % 3 == 0 and x > srednja:
brojac += 1
print("Srednja vrednost niza:", srednja)
print("Broj elemenata:", brojac)
Napomene:
✔️ srednja mora biti double / float
✔️ uslov ima dva dela (AND)
✔️ 0 je deljivo sa 3 (ovo je česta greška)
1.2
Od niza A formira se niz B po pravilima:
Ako je A[i] > 0 → zbir cifara
Ako je A[i] < 0 → apsolutna vrednost
Ako je A[i] == 0 → 0
Na kraju:
Ispisati niz B
-> U PSEUDOKOD-u: KORAK PO KORAK
pseudokod - KORAK PO KORAK
1. Kreiranje niza B
formirati niz B veličine n
2. Prolazak kroz niz A
za i od 0 do n-1
3. Grananje
ako A[i] > 0:
B[i] = zbir cifara
inače ako A[i] < 0:
B[i] = apsolutna vrednost
inače:
B[i] = 0
KAKO DOBITI ZBIR CIFARA
Primer:
123 → 1 + 2 + 3 = 6
Algoritam:
zbir = 0
broj = A[i]
dok broj != 0:
cifra = broj % 10
zbir += cifra
broj = broj / 10
PRIMER
Ulaz:
A = 12 0 15 0 -15
Primer računanja:
| A[i] | Pravilo | B[i] |
|---|---|---|
| 12 | zbir cifara → 1+2 | 3 |
| 0 | ostaje 0 | 0 |
| 15 | 1+5 | 6 |
| 0 | 0 | 0 |
| -15 | apsolutna vrednost | 15 |
Rezultat:
B = 3 0 6 0 15
-> Deo rešenja u jeziku , , , ,
Rešenje u jeziku C
int zbirCifara(int broj) {
int zbir = 0;
while (broj != 0) {
zbir += broj % 10;
broj /= 10;
}
return zbir;
}
int main() {
// nakon pocetnog dela
for (int i = 0; i < n; i++) {
if (A[i] > 0) {
B[i] = zbirCifara(A[i]);
} else if (A[i] < 0) {
B[i] = abs(A[i]);
} else {
B[i] = 0;
}
}
for (int i = 0; i < n; i++) {
printf("%d ", B[i]);
}
// nastavak sledi
Rešenje u jeziku C++
int zbirCifara(int broj) {
int zbir = 0;
while (broj != 0) {
zbir += broj % 10;
broj /= 10;
}
return zbir;
}
int main() {
// nakon pocetnog dela
for (int i = 0; i < n; i++) {
if (A[i] > 0) {
B[i] = zbirCifara(A[i]);
} else if (A[i] < 0) {
B[i] = abs(A[i]);
} else {
B[i] = 0;
}
}
for (int i = 0; i < n; i++) {
cout << B[i] << " ";
}
// nastavak sledi
Rešenje u jeziku C# (prilagođeno za Visual Studio 2010)
static int ZbirCifara(int broj)
{
int zbir = 0;
while (broj != 0)
{
zbir += broj % 10;
broj /= 10;
}
return zbir;
}
static void Main()
{
// nakon pocetnog dela
for (int i = 0; i < n; i++)
{
if (A[i] > 0)
{
B[i] = ZbirCifara(A[i]);
}
else if (A[i] < 0)
{
B[i] = Math.Abs(A[i]);
}
else
{
B[i] = 0;
}
}
for (int i = 0; i < n; i++)
{
Console.Write(B[i] + " ");
}
// nastavak sledi
Rešenje u jeziku Python
def zbir_cifara(broj):
zbir = 0
while broj != 0:
zbir += broj % 10
broj //= 10
return zbir
B = []
for x in A:
if x > 0:
B.append(zbir_cifara(x))
elif x < 0:
B.append(abs(x))
else:
B.append(0)
for x in B:
print(x, end=" ")
TIPIČNE GREŠKE
❌ zaborave da izdvoje cifre (rade samo broj % 10)
❌ ne resetuju promenljivu zbir
❌ pokušaju zbir cifara nad negativnim brojem
❌ zaborave da 0 ostaje 0
❌ koriste if umesto if-else if pa pogrešno upisuju vrednosti
Napomena: Za svaki element iz A pravimo NOVU vrednost u B — ništa ne menjamo u A.
1.3
Od niza B formira se niz C: Ako je
broj prost → upisati njegov kvadrat, a Ako nije prost → upisati proizvod
cifara
Za svaki element iz niza B:
| Uslov | Novi element |
|---|---|
| prost broj | kvadrat broja |
| nije prost | proizvod cifara |
Provera da li je broj prost:
Broj je prost ako:
-
veći je od 1
-
deljiv samo sa 1 i samim sobom
Algoritam:
prost = true
za i od 2 do broj/2
ako (broj % i == 0)
prost = false
Proizvod cifara:
Primer: 123 → 1 * 2 * 3 = 6
-> U PSEUDOKOD-u: KORAK PO KORAK
pseudokod - KORAK PO KORAK
1. Kreiranje niza C
formirati niz C veličine n
2. Prolazak kroz niz B
za i od 0 do n-1
3. Provera da li je broj prost
broj je prost ako:
- veći je od 1
- nema delioce osim 1 i sebe
Algoritam:
prost = true
ako broj <= 1:
prost = false
za i od 2 do broj/2:
ako broj % i == 0:
prost = false
4. Grananje
ako je broj prost:
C[i] = broj * broj
inače:
C[i] = proizvod cifara
KAKO DOBITI PROIZVOD CIFARA
Primer:
123 → 1 * 2 * 3 = 6
Algoritam:
proizvod = 1
dok broj != 0:
cifra = broj % 10
proizvod *= cifra
broj = broj / 10
PRIMER
Ulaz:
B = 3 0 6 0 15
Obrada:
| B[i] | Prost? | Operacija | C[i] |
|---|---|---|---|
| 3 | DA | 3² | 9 |
| 0 | NE | proizvod cifara | 0 |
| 6 | NE | 6 | 6 |
| 0 | NE | 0 | 0 |
| 15 | NE | 1×5 | 5 |
Rezultat:
C = 9 0 6 0 5
NAPOMENE
✔️ 0 i 1 nisu prosti brojevi
✔️ proizvod cifara za jednocifren broj = taj broj
✔️ proizvod cifara za 0 = 0
TIPIČNE GREŠKE
❌ smatraju da je 1 prost broj
❌ ne zaustave proveru kada nađu delilac
❌ pogrešno računaju proizvod cifara
❌ koriste isti broj i menjaju ga (gube original)
➡️ treba koristiti pomoćnu promenljivu
-> Deo rešenja u jeziku , , , ,
Rešenje u jeziku C
bool prost(int broj) {
if (broj <= 1) return false;
for (int i = 2; i <= broj / 2; i++) {
if (broj % i == 0) return false;
}
return true;
}
int proizvodCifara(int broj) {
if (broj == 0) return 0;
int proizvod = 1;
while (broj != 0) {
proizvod *= broj % 10;
broj /= 10;
}
return proizvod;
}
int main() {
// .....
for (int i = 0; i < n; i++) {
if (prost(B[i])) {
C[i] = B[i] * B[i];
} else {
C[i] = proizvodCifara(B[i]);
}
}
for (int i = 0; i < n; i++) {
printf("%d ", C[i]);
}
// ....
Rešenje u jeziku C++
bool prost(int broj) {
if (broj <= 1) return false;
for (int i = 2; i <= broj / 2; i++) {
if (broj % i == 0) return false;
}
return true;
}
int proizvodCifara(int broj) {
if (broj == 0) return 0;
int proizvod = 1;
while (broj != 0) {
proizvod *= broj % 10;
broj /= 10;
}
return proizvod;
}
int main() {
// ...
for (int i = 0; i < n; i++) {
if (prost(B[i])) {
C[i] = B[i] * B[i];
} else {
C[i] = proizvodCifara(B[i]);
}
}
for (int i = 0; i < n; i++) {
cout << C[i] << " ";
}
// ...
Rešenje u jeziku C# (prilagođeno za Visual Studio 2010)
static bool Prost(int broj)
{
if (broj <= 1) return false;
for (int i = 2; i <= broj / 2; i++)
{
if (broj % i == 0)
return false;
}
return true;
}
static int ProizvodCifara(int broj)
{
if (broj == 0) return 0;
int proizvod = 1;
while (broj != 0)
{
proizvod *= broj % 10;
broj /= 10;
}
return proizvod;
}
static void Main()
{
// ...
for (int i = 0; i < n; i++)
{
if (Prost(B[i]))
{
C[i] = B[i] * B[i];
}
else
{
C[i] = ProizvodCifara(B[i]);
}
}
for (int i = 0; i < n; i++)
{
Console.Write(C[i] + " ");
}
// ...
Rešenje u jeziku Python
def prost(broj):
if broj <= 1:
return False
for i in range(2, broj // 2 + 1):
if broj % i == 0:
return False
return True
def proizvod_cifara(broj):
if broj == 0:
return 0
proizvod = 1
while broj != 0:
proizvod *= broj % 10
broj //= 10
return proizvod
C = []
for x in B:
if prost(x):
C.append(x * x)
else:
C.append(proizvod_cifara(x))
for x in C:
print(x, end=" ")
Napomene
Ovde kombinujemo DVE logike:
- matematičku (prosti broj)
- rad sa ciframa (proizvod)
1.4
Od niza C treba formirati kvadratnu matricu m × m tako da: m * m ≥
broj elemenata niza C ( m je najmanji mogući broj )
Treba odrediti dimenziju matrice m x m
Uslov:
m * m ≥ broj elemenata niza C
gde je m najmanji ceo broj koji zadovoljava uslov
Primer:
-
ako C ima 5 elemenata → m = 3 (jer 3×3 = 9)
Popunjavanje matrice:
-
ide se red po red
-
ako nestane elemenata → vraća se na početak niza C
Primer:
C = [9, 0, 6, 0, 5]
Matrica:
9 0 6
0 5 9
0 6 0
-> U PSEUDOKOD-u: Korak po korak
Korak po korak
1. Određivanje dimenzije m
m = 1
dok m * m < n:
m++
2. Kreiranje matrice
matrica M dimenzije m x m
3. Popunjavanje matrice
k = 0
za i od 0 do m-1:
za j od 0 do m-1:
M[i][j] = C[k]
k++
ako k == n:
k = 0 (vraćanje na početak niza)
IDEJA je da kada potrošimo sve elemente niza C ne stajemo, nego krećemo opet od početka
PRIMER
Ulaz:
C = 9 0 6 0 5
n = 5
Određivanje m:
1*1 = 1 < 5
2*2 = 4 < 5
3*3 = 9 ≥ 5 → m = 3
Popunjavanje:
| i | j | k | vrednost |
|---|---|---|---|
| 0 | 0 | 0 | 9 |
| 0 | 1 | 1 | 0 |
| 0 | 2 | 2 | 6 |
| 1 | 0 | 3 | 0 |
| 1 | 1 | 4 | 5 |
| 1 | 2 | 5 → 0 | 9 |
| 2 | 0 | 1 | 0 |
| 2 | 1 | 2 | 6 |
| 2 | 2 | 3 | 0 |
🔹 Rezultat:
9 0 6
0 5 9
0 6 0
Najčešće GREŠKE
❌ ne vraćaju k na 0
❌ stanu kad potroše niz
❌ pogrešno računaju m
❌ pokušaju m = n (što je pogrešno)
❌ mešaju red i kolonu
-> Deo rešenja u jeziku , , , ,
Rešenje u jeziku C
// ...
int m = 1;
while (m * m < n) {
m++;
}
int M[10][10];
int k = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
M[i][j] = C[k];
k++;
if (k == n) k = 0;
}
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
printf("%d ", M[i][j]);
}
printf("\n");
}
// ...
Rešenje u jeziku C++
// ...
int m = 1;
while (m * m < n) {
m++;
}
int M[10][10];
int k = 0;
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
M[i][j] = C[k];
k++;
if (k == n) k = 0;
}
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
cout << M[i][j] << " ";
}
cout << endl;
}
// ...
Rešenje u jeziku C# (Visual Studio 2010)
// ....
int m = 1;
while (m * m < n)
{
m++;
}
int[,] M = new int[m, m];
int k = 0;
for (int i = 0; i < m; i++)
{
for (int j = 0; j < m; j++)
{
M[i, j] = C[k];
k++;
if (k == n) k = 0;
}
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < m; j++)
{
Console.Write(M[i, j] + " ");
}
Console.WriteLine();
}
// ....
Rešenje u jeziku Python
m = 1
while m * m < n:
m += 1
M = []
k = 0
for i in range(m):
red = []
for j in range(m):
red.append(C[k])
k += 1
if k == n:
k = 0
M.append(red)
for red in M:
for x in red:
print(x, end=" ")
print()
Napomena
„Matrica se puni red po red, a kada nestane elemenata — krećemo opet od početka niza.“
1.5
Najteži deo zadatka
Za svaki element matrice računa se:
zbir svih elemenata u istom redu
+ zbir svih elemenata u istoj koloni
- trenutni element (da se ne duplira)
Zašto oduzimamo element?
Zato što se on pojavljuje jednom u zbiru reda i jednom u zbiru kolone pa bi bio uračunat 2 puta.
Formula:
Za element D[i][j]:
D[i][j] = suma_reda[i] + suma_kolone[j] - M[i][j]
-> U PSEUDOKOD-u: Korak po korak
KAKO RAČUNAMO - korak po korak
Korak 1 – zbir reda
za k od 0 do m-1:
suma_reda += M[i][k]
Korak 2 – zbir kolone
za k od 0 do m-1:
suma_kolone += M[k][j]
Korak 3 – upis u D
D[i][j] = suma_reda + suma_kolone - M[i][j]
PRIMER
Ulaz:
M =
9 0 6
0 5 9
0 6 0
Računanje za D[0][0]:
Red: 9 + 0 + 6 = 15
Kolona: 9 + 0 + 0 = 9
D[0][0] = 15 + 9 - 9 = 15
Računanje za D[0][1]:
Red: 9 + 0 + 6 = 15
Kolona: 0 + 5 + 6 = 11
D[0][1] = 15 + 11 - 0 = 26
🔹 Konačan rezultat:
15 26 24
23 20 20
15 11 21
Najčešće GREŠKE
❌ ne oduzmu M[i][j]
❌ saberu samo red ili samo kolonu
❌ pogrešan indeks u petlji
❌ menjaju matricu M umesto da prave D
❌ zaborave da resetuju sume
-> Deo rešenja u jeziku , , , ,
Rešenje u jeziku C
// ako je
int m = 3;
int M[3][3] = {
{9, 0, 6},
{0, 5, 9},
{0, 6, 0}
};
int D[3][3];
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
int suma_reda = 0;
int suma_kolone = 0;
for (int k = 0; k < m; k++) {
suma_reda += M[i][k];
suma_kolone += M[k][j];
}
D[i][j] = suma_reda + suma_kolone - M[i][j];
}
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
printf("%d ", D[i][j]);
}
printf("\n");
}
// ...
Rešenje u jeziku C++
// ako je
int m = 3;
int M[3][3] = {
{9, 0, 6},
{0, 5, 9},
{0, 6, 0}
};
int D[3][3];
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
int suma_reda = 0;
int suma_kolone = 0;
for (int k = 0; k < m; k++) {
suma_reda += M[i][k];
suma_kolone += M[k][j];
}
D[i][j] = suma_reda + suma_kolone - M[i][j];
}
}
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
cout << D[i][j] << " ";
}
cout << endl;
}
// ...
Rešenje u jeziku C# (Visual Studio 2010)
// ako je
int m = 3;
int[,] M = {
{9, 0, 6},
{0, 5, 9},
{0, 6, 0}
};
int[,] D = new int[m, m];
for (int i = 0; i < m; i++)
{
for (int j = 0; j < m; j++)
{
int sumaReda = 0;
int sumaKolone = 0;
for (int k = 0; k < m; k++)
{
sumaReda += M[i, k];
sumaKolone += M[k, j];
}
D[i, j] = sumaReda + sumaKolone - M[i, j];
}
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < m; j++)
{
Console.Write(D[i, j] + " ");
}
Console.WriteLine();
// ....
Rešenje u jeziku Python
m = 3
M = [
[9, 0, 6],
[0, 5, 9],
[0, 6, 0]
]
D = []
for i in range(m):
red = []
for j in range(m):
suma_reda = 0
suma_kolone = 0
for k in range(m):
suma_reda += M[i][k]
suma_kolone += M[k][j]
red.append(suma_reda + suma_kolone - M[i][j])
D.append(red)
for red in D:
for x in red:
print(x, end=" ")
print()
Za svaki element gledamo njegov red i kolonu — i sabiramo sve oko njega.“
TIPIČNE GREŠKE
-
nije urađena validacija unosa
-
pogrešno računata srednju vrednost (int umesto double)
-
pogrešno izdvajanje cifara
-
učenici možda ne znaju proveru prostog broja
-
pogrešno popunjavanje matrice (ne vraća se na početak niza)
-
zaboravljeno da se oduzme element u matrici D