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)
1. Sa se defineasca o clasa punct cu 2 campuri x si y pentru coordonatele unui punct in plan.
2. Sa se scrie constructori de initializare si de copiere pentru clasa punct.
3. Sa se scrie metode pentru citirea si afisarea variabilelor de tip punct.
4. Sa se screeze o clasa triunghi formata din 3 puncte in plan.
5. Sa se scrie constructori pentru clasa triunghi.
6. Sa se scrie metode pentru citirea si afisarea obiectelor de tipul triunghi.
7. Sa se scrie metode pentru calculul perimetrului si a ariei unui triunghi.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Triunghi
{
    class punct
    {
        private double x, y; //campuri private, vor fi accesate prin proprietati
        public double X //proprietate de acces la data privata x
        {
            get
            {
                return x;
            }
            set
            {
                x = value;
            }
        }
        public double Y //proprietate de acces la data privata y
        {
            get
            {
                return y;
            }
            set
            {
                y = value;
            }
        }
        public punct() //constructor
        {
            x = 0; y = 0;
        }
        public punct(double a, double b) //constructor de initializare
        {
            x = a; y = b;
        }
        public punct(punct p) //constructor de copiere
        {
            x = p.x; y = p.y;
        }
        public void citire()//citire de la tastatura
        {
            Console.Write("x=");
            x = Int32.Parse(Console.ReadLine());
            Console.Write("y=");
            y = Int32.Parse(Console.ReadLine());
        }
        public void afis()//afisare pe ecran
        {
            Console.WriteLine("(" + x + "," + y+")");
        }

        public double dinst_la(punct b)
        {
            return Math.Sqrt((x - b.x) * (x - b.x) + (y - b.x) * (y - b.x));//folosesc date membru, nu proprietati
        }

    }

    class triunghi
    {
        public punct a, b, c; //3 puncte

        public triunghi()//constructor care foloseste constructorul de la clasa punct
        {
            a = new punct();
            b = new punct();
            c = new punct();
        }

        public triunghi(double x1, double y1, double x2, double y2, double x3, double y3)
        {//cosntructor de initializare
            a = new punct(x1,y1);
            b = new punct(x2, y2);
            c = new punct(x3, y3);
        }

        public triunghi(punct x, punct y, punct z)
        {// constructor de initializare care foloseste constructorul de copiere de la clasa punct
            a = new punct(x);
            b = new punct(y);
            c = new punct(z);
        }

        public void citire()// citire de la tastatura
        {
            a.citire(); b.citire();c.citire();
        }
        
        public void afis()// afisare pe ecran
        {
            a.afis(); b.afis(); c.afis();
        }

        private double dist(punct a, punct b)//distanta dintre 2 puncte, foloseste proprietatiel X si Y
        {//privata
            return Math.Sqrt((a.X - b.X) * (a.X - b.X) + (a.Y - b.Y) * (a.Y - b.Y));
        }

        public double perimetru()//petrimetrul triunghiului
        {
            return dist(a, b) + dist(b, c) + dist(c, a);
        }

        public double aria()// aria triunghiului
        {
            double p = perimetru() / 2;
            double B = dist(a, c);
            double A = dist(b, c);
            double C = dist(a, b);
            return Math.Sqrt(p*(p-A)*(p-B)*(p-C));
        }

    }

    class Program
    {
        static void Main(string[] args)
        {
            triunghi t = new triunghi();// apel constructor triunghi
            triunghi t2 = new triunghi(1, 1, 3, 4, 0, 6);//apel constructor triunghi cu 6 valori reale
            punct x, y, z;
            x = new punct(0, 0);// apel constructor punct pt initializare
            y = new punct(3, 6);
            z = new punct(2, 1);
            triunghi t3 = new triunghi(x, y, z);//apel constructor de initializare cu 3 puncte
            t.citire();
            t.afis();
            t2.afis();
            t3.afis();
            Console.WriteLine(t2.perimetru());
            Console.WriteLine(t2.aria());
            Console.WriteLine(t3.perimetru());
            Console.WriteLine(t3.aria());
            Console.WriteLine(x.dinst_la(y));
            Console.ReadLine();
        }
    }
}

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