Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace p20_Clasa_Tablou
- {
- class tablou
- {
- private int[] a;//vectorul
- private int n;//nr de ele utilizate de vector
- //memorez valori aleatoare
- public tablou(int dim)
- {
- n = dim;
- a = new int[n];
- Random r = new Random();
- for (int i = 0; i < n; i++)
- a[i] = r.Next(100);
- }
- public tablou(int dim, int val)
- {
- n = dim;
- a = new int[n];
- for (int i = 0; i < n; i++)
- a[i] = val;
- }
- public tablou(string fisier)
- {
- StreamReader fin = new StreamReader(fisier);
- string linie = fin.ReadLine();
- string[] nr = linie.Split(new char[] { ' ' },
- StringSplitOptions.RemoveEmptyEntries);
- n = nr.Length;
- a = new int[n];
- for (int i = 0; i < n; i++)
- a[i] = int.Parse(nr[i]);
- }
- //supraincarc fct de conversie la string
- public override string ToString()
- {
- string s = String.Empty;
- foreach (int x in a)
- s = s + x + " ";
- return s.Trim();
- }
- /// <summary>
- /// returneaza prima pozitie unde apare
- /// x in tablou, sau -1 daca x nu apare
- /// </summary>
- /// <param name="x"></param>
- /// <returns></returns>
- public int IndexOf(int x)
- {
- for (int i = 0; i < n; i++)
- if (a[i] == x) return i;
- return -1;
- }
- public int LastIndexOf(int x)
- {
- for (int i = n-1; i > 0; i--)
- if (a[i] == x) return i;
- return -1;
- }
- public void Sorteaza()
- {
- Array.Sort(a);
- }
- //destructor
- ~tablou()
- {
- n = 0;
- a = null;
- }
- /*proprietati
- proprietatea este Read-Only deoarece lipseste sectiunea set
- *Proprietatile pot fi:
- * - Read-Only(doar get)
- * - Write-Only(doar set)
- * - Read-Write(si get si set)
- */
- public int Lungime
- {
- get
- { return n; }
- //set { n = value; }
- }
- public int GetMin
- {
- get
- {
- int i, m = a[0];
- for (i = 1; i < n; i++)
- if (a[i] < m) m = a[i];
- return m;
- }
- }
- public int this[int i]
- {
- get
- {
- if(i<0) i=0;
- if (i >= n) i = n - 1;
- return a[i];
- }
- set
- {
- if(i<0) i=0;
- if (i >= n) i = n - 1;
- a[i] = value;
- }
- }
- /// <summary>
- /// sterge elementul de la pozitia p
- /// </summary>
- /// <param name="p"></param>
- public void DeleteAt(int p)
- {
- if (p < 0) return;
- if (p >= n) return;
- int[] b;
- b = new int[n - 1];
- int i, k = 0;
- for (i = 0; i < n; i++)
- if (i != p) b[k++] = a[i];
- n--;
- a = null;
- a = new int[n];
- for (i = 0; i < n; i++)
- a[i] = b[i];
- }
- /// <summary>
- /// sterge prima valoare x din vector, daca apare in vector
- /// </summary>
- /// <param name="x"></param>
- public void Delete(int x)
- {
- int p;
- for (p = 0; p < n && a[p] != x; p++)
- ;
- if (p < n) DeleteAt(p);
- }
- /// <summary>
- /// sterge toate aparitiile lui x
- /// </summary>
- /// <param name="x"></param>
- public void DeleteAll(int x)
- {
- int i, k=0;
- int[] b;
- b = new int[n];
- for (i = 0; i < n; i++)
- if (a[i] != x) b[k++] = a[i];
- a = null;
- n = k;
- a = new int[n];
- for (i = 0; i < n; i++)
- a[i] = b[i];
- }
- /// <summary>
- /// insereaza x la pozitia p
- /// </summary>
- /// <param name="p"></param>
- /// <param name="x"></param>
- public void Insert(int p, int x)
- {
- int i;
- int[] b;
- if (p < 0) p = 0;
- if (p >= n) p = n;
- b = new int[n + 1];
- for (i = p; i < n; i++)
- b[i + 1] = a[i];
- b[p] = x;
- for (i = 0; i < p; i++)
- b[i] = a[i];
- a = null;
- n++;
- a = new int[n];
- for (i = 0; i < n; i++)
- a[i] = b[i];
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement