NIZOVI LINKOVI ZA KONZOLNI C# OSNOVNO http://www.mycity.rs/net/programiranje-u-c-za-osnovce-i-srednjoskolce.html http://milan.milanovic.org/skola/csharp-00.htm Niz deklarišemo navođenjem tipa elemenata za kojim sledi par srednjih zagrada[] i naziv niza. Ako je niz višedimenzionalni između zagrada[] se navode zarezi, čiji je broj za jedan manji od dimenzija niza. Bez obzira da li je tip elemnata niza vrednosni ili referentni, niz je referentni tip podataka, pa se pri deklaraciji ne rezerviše prostor za elemente niza. Rezerviše se u toku izvršavanja aplikacije u trenutku definisanja niza Da bi se deklarisala nizovna promenljiva potrebno je: navesti tip elemenata niza, zatim uglaste zagrade kojima se specificira rang niza, i na kraju ime nizovne promenljive. Primer deklaracije promenljive: Tip[] imepromenljive; int[] MojNiz; - Tip elemenata niza može biti bilo koji tip uključujući i nizovni tip - Podržani su: a) jednodimenzionalni nizovi, b) dvodimenzionalni nizovi (matrice) c) nizovi nizova int[] MojNiz=new int[10] Pen[] olovke=new Pen[15] - definisan je niz MojNiz celih brojeva i odvojen prostor za registrovanje 10 celih brojeva pri definiciji niza Olovke odvaja se prostor za registrovanje 15 referenci (adresa) na objekte klase Pen, ali ti objekti nisu kreirani, već svi elementi niza imaju vrednost null Inicijalizacija niza: x=new int[5] 2, 33, 4, 55, 6 - može se izostaviti kapacitet niza, ako su elementi niza inicijalizovani x=new int[ ] 2, 33, 4, 55, 6 int[] y=2, 33, 4, 55, 6 int[,] matrica = new int[3,2] 1, 2, 3, 4, 5, 6 ; dvodimenzionalni niz pojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1 (n-broj elemenata niza) 1. Unos elemenata niza textbox int[] x=new int[40]; int n=0,i=0; x[i] = Convert.ToInt32(textBox1.Text); //unesi x listbox1.items.add("x[" + i + "]=" + x[i]); i++; listbox1.text = "x[" + i + "]="; //priprema za sledeci textbox1.text = ""; n = i; //odredjivanje broja elemenata u nizu button1.enabled = false; //kraj niza, nema vise unosa button2.enabled = true; 1
2.Generisati niz od n celih brojeva slučajno izabranih sa intervala[a,b] int n = Convert.ToInt32(textBox1.Text); int a = Convert.ToInt32(textBox2.Text); int b = Convert.ToInt32(textBox3.Text); listbox1.items.clear(); Random R = new Random(); int[] X; X =new int[n]; for(int i=0;i<n;i++) X[i]=R.Next(a,b+1); listbox1.items.add("x["+i+"]= "+X[i]); 3.Pronaći najveći element unetog niza realnih elemenata dužine n. (Unos InputBox) using Microsoft.VisualBasic; double max; int n = Convert.ToInt32(textBox4.Text); double[] Niz = new double[n]; Niz[i] = Convert.ToDouble(Interaction.InputBox(i + ".clan", "Unos elemenata niza", "", -1, -1)); listbox2.items.add(niz[i]); max = Niz[0]; for (int i = 1; i < n; i++) if (max < Niz[i]) max = Niz[i]; textbox5.text = max.tostring(); 2
4. U tekstualnoj datoteci sa.txt (bin/debug) se nalazi u prvom redu dužina niza, a u ostalim redovima članovi niza. Treba pročitati i ispisati članove niza u listbox using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; void IspisiNiz(int[] a, int n, ListBox lb) lb.items.add(a[i].tostring()); StreamReader sr = new StreamReader("ElementiNiza.txt"); int n = Convert.ToInt32(sr.ReadLine()); int [] a = new int[n]; a[i] = Convert.ToInt32(sr.ReadLine()); sr.close(); IspisiNiz(a, n, listbox1); 3
5.Napisati metode kojima se: - generiše niz slučajnih brojeva iz intervala[a,b], a dužina niza generiše slučajnim brojem[10,100]; - generiše niz celih brojeva čitanjem iz tekstualnog fajla, gde se u prvom redu nalazi broj elemenata niza, a u svakom sledećem elementi niza; -prikazuju redom svi elementi niza u objektu klase ListBox; public Form1() InitializeComponent(); void generisi(int a, int b, Random R, out int n, out int[] x) n = R.Next(10, 101); x = new int[n]; x[i] = R.Next(a, b + 1); void citaj(string imefajla, out int[] x, out int n) StreamReader sr = new StreamReader(imeFajla); n = Convert.ToInt32(sr.ReadLine()); x = new int[n]; x[i] = Convert.ToInt32(sr.ReadLine()); sr.close(); void pisi(int[] x, int n, ListBox lb) lb.items.add(x[i]); int[] x; int n; Random R = new Random(); int a = Convert.ToInt32(textBox1.Text); int b = Convert.ToInt32(textBox2.Text); generisi(a,b,r,out n,out x); listbox1.items.clear(); pisi(x, n, listbox1); if (!File.Exists(textBox3.Text)) MessageBox.Show("Nema fajla tog imena"); return; citaj(textbox3.text, out x, out n); listbox2.items.clear(); pisi(x, n, listbox2); 4
6. public partial class Form1 : Form public Form1() InitializeComponent(); int[] x=new int[40]; int n=0,i=0; label1.text = "x[0]="; //inicijalizacija x[i] = Convert.ToInt32(textBox1.Text); //unesi x listbox1.items.add("x[" + i + "]=" + x[i]); i++; listbox1.text = "x[" + i + "]="; //priprema za sledeci textbox1.text = ""; n = i; //odredjivanje broja elemenata u nizu button1.enabled = false; //kraj niza, nema vise unosa button2.enabled = true; label1.text = ""; //brisemo tekst x[...]= textbox2.text = "Niz ima " + n.tostring() + " elemenata"; //n elemenata void SumaNiza(int[] x, int n) int j, s; for (j = 0, s = 0; j < n; j++) s += x[j]; textbox2.text += "Suma elemenata niza je " + s + "\r\n"; 5
void SrednjaVrednost(int[] x, int n) int j; float xsr; for (j = 0, xsr = 0; j < n; j++) xsr += x[j]; xsr /= n; textbox2.text += "Srednja vrednost niza je " + xsr + "\r\n"; void SumaParnih(int[] x, int n) int j, sp; for (j = 0, sp = 0; j < n; j++) if (x[j] % 2 == 0) sp += x[j]; textbox2.text += "Suma parnih elemenata niza je " + sp + "\r\n"; void BrojNegativnih(int[] x, int n) int j, brneg; for (j = 0, brneg = 0; j < n; j++) if (x[j] < 0) brneg++; textbox2.text += "Broj negativnih elemenata je " + brneg + "\r\n"; void BrojDeljSa5(int[] x, int n) int j, b5; for (j = 0, b5 = 0; j < n; j++) if (x[j] % 5 == 0) b5++; textbox2.text += "Broj elemenata deljivih sa 5 je " + b5 + "\r\n"; void MaxNiza(int[] x, int n) int j, max = int.minvalue;; for (j = 0; j < n; j++) if (x[j] > max) max = x[j]; textbox2.text += "Maksimalni element niza je " + max + "\r\n"; void Sortiran(int[] x, int n) int i, j, pom; for (i = 0; i < n - 1; i++) for (j = i + 1; j < n; j++) if (x[i] > x[j]) pom = x[i]; x[i] = x[j]; x[j] = pom; for (i = 0; i < n; i++) listbox2.items.add(x[i].tostring()); private void button3_click(object sender, EventArgs e) textbox2.text = ""; if (checkbox1.checked) SumaNiza(x, n); if (checkbox2.checked) SrednjaVrednost(x, n); if (checkbox3.checked) SumaParnih(x, n); if (checkbox4.checked) BrojDeljSa5(x, n); if (checkbox5.checked) MaxNiza(x, n); if (checkbox6.checked) BrojNegativnih(x, n); if (checkbox7.checked) Sortiran(x, n); 6
7. zad namespace BUBBLE SORT public partial class Form1 : Form public Form1() InitializeComponent(); int[] x=new int[40]; int n=0,i=0; void SelectionSort(int[] x, int n) listbox2.items.clear(); int i, j, pom; for (i = 0; i < n - 1; i++) for (j = i + 1; j < n; j++) if (x[i] > x[j]) pom = x[i]; x[i] = x[j]; x[j] = pom; for (i = 0; i < n; i++) listbox2.items.add(x[i].tostring()); void BubbleSort(int[] x, int n) listbox2.items.clear(); int i, j, pom; do j=0;//nema promena for (i = 0; i < n - 1; i++) if (x[i] < x[i+1]) pom = x[i]; x[i] = x[i+1]; x[i+1] = pom; j=1;// bilo je promena while (j!=0); for (i = 0; i < n; i++) listbox2.items.add(x[i].tostring()); x[i] = Convert.ToInt32(textBox1.Text); //unesi x listbox1.items.add("x[" + i + "]=" + x[i]); i++; listbox1.text = "x[" + i + "]="; //priprema za sledeci textbox1.text = ""; n = i; SelectionSort(x, n); private void button3_click(object sender, EventArgs e) BubbleSort(x, n); 7