public void Test_CalcoloPerimetro()
        {
            Cerchio c             = new Cerchio(5);
            double  circonferenza = c.CalcoloPerimetro();

            Assert.AreEqual(31.42, circonferenza);
        }
        public void Test_CalcoloArea()
        {
            Cerchio c    = new Cerchio(1);
            double  area = c.CalcoloArea();

            Assert.AreEqual(3.14, area);
        }
Пример #3
0
        public static void FormeGeometriche()
        {
            Triangolo triangolo = new Triangolo()
            {
                Base    = 12,
                Altezza = 4
            };

            Cerchio cerchio = new Cerchio()
            {
                Raggio = 8,
                X      = 3,
                Y      = 5
            };

            Rettangolo rettangolo = new Rettangolo()
            {
                Larghezza = 7,
                Altezza   = 3
            };

            cerchio.DisegnaForma();
            rettangolo.DisegnaForma();
            triangolo.DisegnaForma();
        }
Пример #4
0
        public static void Esercitazioni()
        {
            //Esercitazione 1
            Cerchio cerchio = new Cerchio()
            {
                Nome   = "Cerchio",
                X      = 0,
                Y      = 0,
                Raggio = 5d
            };

            cerchio.DisegnaForma();

            Rettangolo rettangolo = new Rettangolo()
            {
                Nome      = "Rettangolo",
                Larghezza = 5d,
                Altezza   = 10d
            };

            rettangolo.DisegnaForma();

            Triangolo triangolo = new Triangolo()
            {
                Nome    = "Triangolo",
                Base    = 8d,
                Altezza = 10d
            };

            triangolo.DisegnaForma();

            //Esercitazione 2 (interfaccia fileSeriaizable)
            cerchio.SaveToFile("CerchioFile");
            Cerchio nuovoCerchio = new Cerchio();

            nuovoCerchio.FromFile("CerchioFile");
            nuovoCerchio.DisegnaForma();
            nuovoCerchio.Nome = "Cerchio modificato";
            nuovoCerchio.SaveToFile("CerchioFile");

            rettangolo.SaveToFile("RettangoloFile");
            Rettangolo nuovoRettangolo = new Rettangolo();

            nuovoRettangolo.FromFile("RettangoloFile");
            nuovoRettangolo.DisegnaForma();
            nuovoRettangolo.Nome = "Rettangolo modificato";
            nuovoRettangolo.SaveToFile("RettangoloFile");

            triangolo.SaveToFile("TriangoloFile");
            Triangolo nuovoTriangolo = new Triangolo();

            nuovoTriangolo.FromFile("TriangoloFile");
            nuovoTriangolo.DisegnaForma();
            nuovoTriangolo.Nome = "Tringolo modificato";
            nuovoTriangolo.SaveToFile("TriangoloFile");
        }
Пример #5
0
        public static void FormeGeometriche2()
        {
            //Cosa può fare              //Cos'è
            IFileSerializable cerchio = new Cerchio()
            {
                Nome   = "Cerchio",
                Raggio = 2,
                X      = 3,
                Y      = 6
            };

            IFileSerializable rettangolo = new Rettangolo()
            {
                Nome      = "Rettangolo",
                Larghezza = 10,
                Altezza   = 3
            };

            IFileSerializable triangolo = new Triangolo()
            {
                Nome    = "Triangolo",
                Altezza = 8,
                Base    = 4
            };

            cerchio.SaveToFile("Test");
            Cerchio newCerchio = new Cerchio();

            newCerchio.LoadFromFile("Test");
            newCerchio.DisegnaForma();
            newCerchio.Nome = "Cerchio modificato";
            newCerchio.SaveToFile("Test");

            triangolo.SaveToFile("TestTriangolo");
            Triangolo newTriangolo = new Triangolo();

            newTriangolo.LoadFromFile("TestTriangolo");
            newTriangolo.DisegnaForma();
            newTriangolo.Nome = "Triangolo modificato";
            newTriangolo.SaveToFile("TestTriangolo");

            rettangolo.SaveToFile("TestRettangolo");
            Rettangolo newRettangolo = new Rettangolo();

            newRettangolo.LoadFromFile("TestRettangolo");
            newRettangolo.DisegnaForma();
            newRettangolo.Nome = "Rettangolo modificato";
            newRettangolo.SaveToFile("TestRettangolo");
        }
Пример #6
0
        public static void Esercitazione()
        {
            Console.WriteLine("___________Esercitazione 1______________");

            //istanza di Cerchio ma di tipo FormeGeometriche quindi non ha le proprietà del cerchio.
            FormeGeometriche forme = new Cerchio();


            Cerchio c = new Cerchio()
            {
                Nome   = "Cerchio",
                X      = 3,
                Y      = 4,
                Raggio = 6
            };
            Triangolo t = new Triangolo()
            {
                Nome    = "Triangolo",
                Base    = 4,
                Altezza = 3
            };
            Rettangolo r = new Rettangolo()
            {
                Nome      = "Rettangolo",
                Altezza   = 2,
                Larghezza = 4
            };

            Console.WriteLine(c.CalcoloArea());
            Console.WriteLine(c.DisegnoForma());
            Console.WriteLine(t.CalcoloArea());
            Console.WriteLine(t.DisegnoForma());
            Console.WriteLine(r.CalcoloArea());
            Console.WriteLine(r.DisegnoForma());

            Console.WriteLine("___________Esercitazione 2______________");
            c.SaveToFile("Test");
            Cerchio circle = new Cerchio();

            circle.LoadFromFile("Test");

            IFileSerializable[] file = { c };
            foreach (var item in file)
            {
                item.SaveToFile("C");
                item.LoadFromFile("C");
            }
        }
Пример #7
0
        private void MostraDati(double raggio, double altezza)
        {
            var cerchio  = new Cerchio(raggio);
            var sfera    = new Sfera(raggio);
            var cilindro = new Cilindro(raggio, altezza);
            var cono     = new Cono(raggio, altezza);
            var decimali = 2;

            tbx_cerchioArea.Text          = Math.Round(cerchio.Area, decimali).ToString();
            tbx_cerchioCirconferenza.Text = Math.Round(cerchio.Circonferenza, decimali).ToString();
            tbx_cerchioDiametro.Text      = Math.Round(cerchio.Diametro, decimali).ToString();

            tbx_sferaSuperficie.Text = Math.Round(sfera.Superficie, decimali).ToString();
            tbx_sferaVolume.Text     = Math.Round(sfera.Volume, decimali).ToString();

            tbx_cilindroAreaLaterale.Text = Math.Round(cilindro.AreaLaterale, decimali).ToString();
            tbx_cilindroAreaTotale.Text   = Math.Round(cilindro.AreaTotale, decimali).ToString();
            tbx_cilindroVolume.Text       = Math.Round(cilindro.Volume, decimali).ToString();

            tbx_conoVolume.Text = Math.Round(cono.Volume, decimali).ToString();
        }
Пример #8
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            object q = new Quadrato()
            {
                Lato = 5
            };

            Console.WriteLine($"area = {CalcArea(q)}");

            object c = new Cerchio()
            {
                Raggio = 10
            };

            Console.WriteLine($"area = {CalcArea(c)}");

            object obj = new object();

            Console.WriteLine($"area = {CalcArea(obj)}");
        }
Пример #9
0
        /// <summary>
        /// se abbiamo almeno 2 schede, ricerca nel database la tupla(Distinct) MAC,timestamp,global,hash, ID scheda i,RSSI scheda i
        /// all'interno di pacchetti in cui prendendo in considerazione dati di schede diverse riguardanti lo stesso MAC (i-esimo)
        /// la cui differenza di timestamp (tra dati diversi) sia entro una certa soglia (si riferisca alla stessa lettura) e il cui
        /// timestamp sia entro il minuto di ricerca , prese queste tuple calcola i punti di intersezione tramite i metodi dei cerchi
        /// ed infine li aggiunge ad una lista
        /// </summary>
        /// <param name="nBoards">numero di schede presenti</param>
        /// <param name="threshold">soglia del timestamp tra dati diversi</param>
        /// <returns>lista di punti di intersezione</returns>
        public List <DatiDispositivo> GetLastMinuteData(int nBoards, int threshold = 0)
        {
            try
            {
                if (nBoards < 2)
                {
                    return(null);
                }

                int time = EspServer.getUnixEpoch() - 60;

                //Create a list to store the result
                List <DatiDispositivo> list = new List <DatiDispositivo>();

                using (MySqlConnection connessione = new MySqlConnection("Database=" + Database + ";" + "Server=" + Server + ";" + "Port=3306;" + "UID=" + Uid + ";" + "Password="******";"))
                    using (MySqlCommand cmd = connessione.CreateCommand())
                    {
                        connessione.Open();
                        //Create Query
                        StringBuilder builder = new StringBuilder();
                        builder.Append("SELECT DISTINCT P1.MAC, P1.timestamp, P1.global, P1.hash");

                        for (int i = 0; i < nBoards; i++)
                        {
                            builder.Append(", P").Append(i + 1).Append(".ID_scheda, P").Append(i + 1).Append(".RSSI");
                        }

                        builder.Append(VarQuery(nBoards, time, threshold));

                        //Create Command
                        cmd.CommandText = builder.ToString();
                        cmd.ExecuteNonQuery();
                        using (MySqlDataReader dataReader = cmd.ExecuteReader())
                        {
                            while (dataReader.Read())
                            {
                                string mac       = dataReader.GetString(0);
                                int    timestamp = dataReader.GetInt32(1);
                                bool   global    = dataReader.GetBoolean(2);

                                List <Cerchio> cerchi = new List <Cerchio>();
                                for (int i = 0; i < nBoards; i++)
                                {
                                    int id   = dataReader.GetInt32(4 + i * 2);
                                    int rssi = dataReader.GetInt32(5 + i * 2);

                                    cerchi.Add(new Cerchio(GetScheda(id).Punto, rssi));
                                }
                                Punto point = Cerchio.Intersezione(cerchi);
                                if (!(Double.IsNaN(point.Ascissa) || Double.IsNaN(point.Ordinata)))
                                {
                                    if (point.isInside(schede))
                                    {
                                        DatiDispositivo p = new DatiDispositivo(mac, timestamp, point, global);
                                        list.Add(p);
                                    }
                                    else
                                    {
                                        System.Diagnostics.Debug.WriteLine("Geofence discarded: (" + point.Ascissa + "; " + point.Ordinata + ")");
                                    }
                                }
                            }
                        }

                        InserisciPosizioni(list, connessione);
                    }
                Connesso = true;
                return(list);
            }
            catch (KeyNotFoundException e)
            {
                System.Diagnostics.Debug.WriteLine("idBoard not found..." + e.ToString());
                throw e;
            }
            catch (MySqlException e)
            {
                System.Diagnostics.Debug.WriteLine("MySqlException catched." + e.ToString());
                Connesso = false;
                return(null);
            }
            catch (Exception e)
            {
                System.Diagnostics.Debug.WriteLine("Caught exception: " + e.ToString());
                return(null);
            }
        }
        private void BtnCalcola_Click(object sender, EventArgs e)
        {
            {
                switch (flag)
                {
                case 0:
                    double raggio = G3D.GetDouble(txtRaggio.Text);
                    if (rbtnCerchio.Checked && txtRaggio.Text == "" || G3D.IsNegative(raggio))
                    {
                        MessageBox.Show("Inserisci un RAGGIO valido prima di continuare.");
                    }
                    else
                    {
                        Cerchio       c     = new Cerchio(raggio);
                        FormRisultato cForm = new FormRisultato(c.ToString(), c.CalcoloArea());
                        cForm.Show();
                    }
                    break;

                case 1:
                    double qLato = G3D.GetDouble(txtLato.Text);
                    if (rbtnQuadrato.Checked && txtLato.Text == "" || G3D.IsNegative(qLato))
                    {
                        MessageBox.Show("Inserisci un LATO valido prima di continuare.");
                    }
                    else
                    {
                        Quadrato      q     = new Quadrato(qLato);
                        FormRisultato qForm = new FormRisultato(q.ToString(), q.CalcoloArea());
                        qForm.Show();
                    }
                    break;

                case 3:
                    double tBase    = G3D.GetDouble(txtBase.Text);
                    double tAltezza = G3D.GetDouble(txtAltezza.Text);
                    if (rbtnTriangolo.Checked && txtBase.Text == "" || txtAltezza.Text == "" || G3D.IsNegative(tAltezza, tBase))
                    {
                        MessageBox.Show("Inserisci BASE e ALTEZZA validi prima di continuare.");
                    }
                    else
                    {
                        TriangoloIso  t     = new TriangoloIso(tBase, tAltezza);
                        FormRisultato tForm = new FormRisultato(t.ToString(), t.CalcoloArea());
                        tForm.Show();
                    }
                    break;

                case 4:
                    double rBase     = G3D.GetDouble(txtBase.Text);
                    double rAltezzaa = G3D.GetDouble(txtAltezza.Text);
                    if (rbtnRettangolo.Checked && txtBase.Text == "" || txtAltezza.Text == "" || G3D.IsNegative(rBase, rAltezzaa))
                    {
                        MessageBox.Show("Inserisci BASE e ALTEZZA validi prima di continuare.");
                    }
                    else
                    {
                        Rettangolo    r     = new Rettangolo(rBase, rAltezzaa);
                        FormRisultato rForm = new FormRisultato(r.ToString(), r.CalcoloArea());
                        rForm.Show();
                    }
                    break;

                case 5:
                    double pLato = G3D.GetDouble(txtLato.Text);
                    if (rbtnPentagono.Checked && txtLato.Text == "" || G3D.IsNegative(pLato))
                    {
                        MessageBox.Show("Inserisci un LATO valido prima di continuare.");
                    }
                    else
                    {
                        Pentagono     p     = new Pentagono(pLato);
                        FormRisultato pForm = new FormRisultato(p.ToString(), p.CalcoloArea());
                        pForm.Show();
                    }
                    break;

                case 6:
                    double esLato = G3D.GetDouble(txtLato.Text);
                    if (rbtnEsagono.Checked && txtLato.Text == "" || G3D.IsNegative(esLato))
                    {
                        MessageBox.Show("Inserisci un LATO valido prima di continuare.");
                    }
                    else
                    {
                        Esagono       es     = new Esagono(esLato);
                        FormRisultato esForm = new FormRisultato(es.ToString(), es.CalcoloArea());
                        esForm.Show();
                    }
                    break;

                default:
                    MessageBox.Show("Errore!");
                    break;
                }
            }
        }
Пример #11
0
        static void Main(string[] args)
        {
            bool b = true;

            int num = 1;

            switch (num)
            {
            case 1:

                b = false;
                goto case 2;

            case 2:
                break;
            }

            //switch con string case sensitive
            string str = "";

            switch (str)
            {
            case "a":
                break;

            case "A":
                break;
            }

            //fall through
            Console.WriteLine("digita un tasto");
            char c = Console.ReadKey().KeyChar;

            switch (c)
            {
            case 'a':
            case 'e':
            case 'i':
            case 'o':
            case 'u':
                Console.WriteLine("hai digitato la vocale {0}", c);
                break;

            default:
                Console.WriteLine("non hai inserito una vocale");
                break;
            }

            DayOfWeek day = DateTime.Today.DayOfWeek;

            switch (day)
            {
            case DayOfWeek.Saturday:
            case DayOfWeek.Sunday:
                Console.WriteLine("riposo");
                break;

            case DayOfWeek.Monday:
                Console.WriteLine("8:00 - 12:00");
                break;

            case DayOfWeek.Tuesday:
                Console.WriteLine("8:00 - 12:00 e 15:00 - 18:00");
                break;

            case DayOfWeek.Wednesday:
                Console.WriteLine("8:00 - 12:00");
                break;

            case DayOfWeek.Thursday:
            case DayOfWeek.Friday:
                Console.WriteLine("8:00 - 12:00");
                break;
            }

            GenericMatch <int>(1);

            Person p = new Person()
            {
                FirstName = "Matilda"
            };


            string language = "ita";
            string greeting = null;

            switch (language)
            {
            case "eng":
                greeting = "Hello";
                break;

            case "spa":
                greeting = "Hola";
                break;

            case "ita":
                greeting = "Ciao";
                break;

            default:
                greeting = "???";
                break;
            }

            greeting = language switch
            {
                "eng" => "Hello",
                "spa" => "Hola",
                "ita" => "Ciao",
                _ => "???"
            };

            Console.WriteLine(greeting);

            language = "deu";
            greeting = language switch
            {
                "eng" => "Hello",
                "spa" => "Hola",
                "ita" => "Ciao",
                _ => "???"
            };

            Quadrato q = new Quadrato();

            q.Lato = 5;
            Cerchio cerchio = new Cerchio();

            cerchio.Raggio = 4;

            var areaQuadrato = CalcArea1(q);

            Console.WriteLine($"area quadrato {areaQuadrato}");
        }
Пример #12
0
 private static void PrintCerchio(Cerchio c1)
 {
     System.Console.WriteLine("Cerchio: Area {0}, Perimetro {1}", c1.GetArea(), c1.GetPerimetro());
     //uso lo stesso comportamento che hanno sia il cerchio che il quadrato per cui posso ridurre a un metodo
 }