Probleme de informatică
Clasa a IX-a
Elementele de bază C++ (46)
Subprograme predefinite (1)
Fişiere text (2)
Algoritmi elementari (111)
Tablouri unidimensionale (83)
Tablouri bidimensionale (64)
Probleme diverse (13)
Clasa a X-a
Subprograme (funcții) (87)
Şiruri de caractere (50)
Tipul înregistrare (26)
Recursivitate (57)
Alocarea dinamică a memoriei (2)
Liste înlănţuite (25)
Algoritmul lui Lee (1)
Clasa a XI-a
Metoda "Divide et impera" (12)
Metoda Backtracking (86)
Metoda Greedy (6)
Programare dinamică (18)
Grafuri neorientate (40)
Grafuri orientate (38)
Arbori (33)
Clasa a XII-a
Elemente de bază C# (32)
POO în C# (14)
Programare vizuală în C# (19)
Examen de bacalaureat
Competențe digitale
Examen de atestat
Admitere UBB (18)
Exemplu mostenire cu punct in plan si punct in spatiu.
1. Definiti o clasa punct2d (punct in plan) care sa contina urmatoarele
- doua campuri x si y double protejate
- proprietati de acces la cele 2 campuri x si y
- constructor fara parametrii care sa-i initilalizeze pe x si y cu 0
- constructor cu 2 parametrii double a si b care sa initializeze pe x cu a si pe y cu b
- functie de citire de la tastatura
- functie de afisare pe ecran
- supraincarcare metoda tostring
- distanta de la punct la origine
- distanta de la un punct la un alt punct primit ca parametru
- supraincarcarea operatorului - (minus) cu precizarea ca A-B este distanta de la punctul A la punctul B
- supraincarcarea operatorilor == si !=
2. Creati o clasa punct3d (punct in spatiu) care sa deriveze clasa punct2d si care sa implementeze aceleasi facilitati ca si clasa punct2d.
Cele doua clase punct2d si punct3d vor fi in fisiere separate.

//clasa punct in plan
class punct2d
    {
        protected double x, y;
        //proprietati
        public double X
        {
            set { x = value; }
            get { return x; }
        }
        public double Y
        {
            set { y = value; }
            get { return y; }
        }
        //constructori
        public punct2d()
        {
            x = 0; y = 0;
        }
        public punct2d(double a, double b)
        {
            x = a; y = b;
        }
        //functii
        public void citire()
        {
            Console.Write("x="); 
            x = double.Parse(Console.ReadLine());
            Console.Write("y=");
            y = double.Parse(Console.ReadLine());
        }

        public void afisare()
        {
            Console.Write("(" + x + "," + y + ") ");
        }

        public override string ToString()
        {
            return "(" + x + "," + y + ") ";
        }

        public double distanta()//distanta pana la origine
        {
            return Math.Sqrt(x * x + y * y);
        }

        public double distanta(punct2d A)//distanta pana la punctul A
        {
            return Math.Sqrt((x - A.x) * (x - A.x) + (y - A.y) * (y - A.y));
        }

        public static double operator -(punct2d A, punct2d B)
        {//distanta dintre punctele A si B
            return Math.Sqrt((B.x - A.x) * (B.x - A.x) + (B.y - A.y) * (B.y - A.y));
        }

        public static bool operator ==(punct2d A, punct2d B)
        {//puncte identice
            return A.x == B.x && A.y == B.y;
        }

        public static bool operator !=(punct2d A, punct2d B)
        {//puncte diferite
            return !(A == B);
        }

        public override bool Equals(object obj)
        {
            return base.Equals(obj);
        }

        public override int GetHashCode()
        {
            return base.GetHashCode();
        }
    }

//clasa punct in spatiu
    class punct3d:punct2d
    {
        protected double z;
        //proprietati
        public double Z
        {
            set { z = value; }
            get { return z; }
        }
        //constructori
        public punct3d()
            : base()
        {
            z = 0;
        }
        public punct3d(double a, double b, double c)
            : base(a, b)
        {
            z = c;
        }
        //functii
        new public void citire()
        {
            base.citire();
            Console.Write("z=");
            z = double.Parse(Console.ReadLine());
        }
        new public void afisare()
        {
            Console.Write("(" + x + "," + y  +"," + z + ") ");
        }
        public override string ToString()
        {
            return "(" + x + "," + y + "," + z + ") ";
        }
        new public double distanta()
        {
            return Math.Sqrt(x * x + y * y + z * z);
        }

        new public double distanta(punct3d A)
        {
            return Math.Sqrt((x - A.x) * (x - A.x) + (y - A.y) * (y - A.y) + (z - A.z) * (z - A.z));
        }

        public static double operator -(punct3d A, punct3d B)
        {//distanta dintre punctele A si B
            return A.distanta(B);
        }

        public static bool operator ==(punct3d A, punct3d B)
        {//puncte identice
            return A.x == B.x && A.y == B.y && A.z==B.z;
        }

        public static bool operator !=(punct3d A, punct3d B)
        {//puncte diferite
            return !(A == B);
        }

        public override bool Equals(object obj)
        {
            return base.Equals(obj);
        }

        public override int GetHashCode()
        {
            return base.GetHashCode();
        }
    }

26 apr 2024
Site-ul conține 884 de probleme rezolvate
Copyright © 2009-2018 Muresan Vasile Ciprian