You are on page 1of 3

I PISMENI ISPIT IZ OSNOVA PROGRAMIRANJA (Statut ’21) 10.2.2023.

U prostoru imena Ispit kreirati klasu Niz koja sadrži:


- polje x, koje predstavlja celobrojni, nenegativni niz opisan tekućim objektom;
- svojstvo X, koje sadrži metodu za dohvatanje vrednosti odgovarajućeg pozadinskog
polja;
- konstruktor, koji za dati celobrojni, nenegativni niz određuje i postavlja vrednost
polja tekućeg objekta;
- polimorfnu metodu IzbrojElemente() koja određuje i svojim imenom vraća broj
elemenata niza opisanog tekućim objektom koji su deljivi sa 4.
U prostoru imena Ispit kreirati klasu Niz1 koja nasleđuje klasu Niz i sadrži:
- konstruktor, koji za dati celobrojni, nenegativni niz poziva konstruktor osnovne klase,
- polimorfnu metodu IzbrojElemente() koja određuje i svojim imenom vraća broj
elemenata niza opisanog tekućim objektom koji su deljivi sa 6.
U prostoru imena Aplikacija kreirati klasu Program. U okviru Main metode klase Program iz
datoteke Ulaz.txt koja se nalazi u folderu C:\Zadaci učitati dimenzije m i n, celobrojne,
nenegativne matrice Amxn, 𝟐 ≤ 𝐦 ≤ 𝟖, 𝟐 ≤ 𝐧 ≤ 𝟖 i matricu A. m i n upisani su u drugom redu
datoteke, tako da se m nalazi negde na prvih 5 mesta u redu, a n negde na sledećih 5 mesta
u redu. Matrica A upisana je u datoteci počev od petog reda, tako da je u svakom redu
datoteke upisana jedna vrsta matrice, a svaki element matrice “zauzima” 5 mesta. Kreirati niz
od svake kolone matrice, pa za svaku neparnu kolonu matrice A: kreirajući objekat
odgovarajuće klase iz prostora imena Ispit i pozivajući njegovu metodu, odrediti koliko u
koloni ima elemenata deljivih sa 4. Za svaku parnu kolonu matrice A: kreirajući objekat
odgovarajuće klase iz prostora imena Ispit i pozivajući njegovu metodu, odrediti koliko u
koloni ima elemenata deljivih sa 6. Prikazati u jednom redu u konzoli tražene brojeve za sve
neparne kolone matrice, a u sledećem redu u konzoli tražene brojeve za sve parne kolone
matrice.
namespace Ispit
{
class Niz
{
int[] x;
public int[] X { get { return x; }}
public Niz(int[] X)
{
x = X;
}
public virtual int IzbrojElemente()
{
int brojElemenata = 0;
for (int i = 0; i < x.Length; i++)
{
if(x[i] % 4 == 0)
{
brojElemenata++;
}
}
return brojElemenata;
}
}
class Niz1 : Niz
{
public Niz1(int[] X) : base(X)
{
}
public override int IzbrojElemente()
{
int brojElemenata = 0;
for (int i = 0; i < X.Length; i++)
{
if (X[i] % 6 == 0)
{
brojElemenata++;
}
}
return brojElemenata;
}
}
}

namespace Aplikacija
{
using Ispit;
class Program
{
public static void Main(string[] args)
{
StreamReader sr = new StreamReader(@"C:\Zadaci\Ulaz.txt");
sr.ReadLine();
string red = sr.ReadLine();
byte m = Convert.ToByte(red.Substring(0, 5).Trim());
byte n = Convert.ToByte(red.Substring(5, 5).Trim());
if (m > 1 & n > 1 & m <= 8 & n <= 8)
{
int[,] A = new int[m, n];
sr.ReadLine();
sr.ReadLine();
for (byte i = 0; i < m; i++)
{
red = sr.ReadLine();
for (byte j = 0; j < n; j++)
{
A[i, j] = Convert.ToInt32(red.Substring(j * 5, 5).Trim());
}
}
sr.Close();

string trazeniBrojeviZaNeparneKolone = "";


string trazeniBrojeviZaParneKolone = "";
for (byte j = 0; j < n; j++)
{
int[] Kolona = new int[A.GetLength(0)];

for (byte i = 0; i < A.GetLength(0); i++)


{
Kolona[i] = A[i, j];
}

if (j % 2 == 0)
{
Niz niz = new Niz(Kolona);
trazeniBrojeviZaNeparneKolone =
trazeniBrojeviZaNeparneKolone + " " + niz.IzbrojElemente();
}
else
{
Niz niz = new Niz1(Kolona);
trazeniBrojeviZaParneKolone = trazeniBrojeviZaParneKolone
+ " " + niz.IzbrojElemente();
}
}
Console.WriteLine("Traženi brojevi za neparne kolone su: " +
trazeniBrojeviZaNeparneKolone);
Console.WriteLine("Traženi brojevi za parne kolone su: " +
trazeniBrojeviZaParneKolone);
}
}
}
}

You might also like