Introduzione

In questa pagina vengono mostrati alcuni programmi scritti in C# a difficoltà crescente. Non è una guida esauriente a tutte le funzionalità del linguaggio. Se si desidera approfondire le proprie conoscenze, consultare la sezione Ulteriori risorse.

Listato 1


   1 /// Questo programma calcola l'area di un triangolo attraverso la formula di
   2 /// Erone data da: sqrt(sp*(sp-a)*(sp-b)*(sp-c)), in cui sp è il semiperimetro
   3 /// a, b e c sono i lati del triangolo e sqrt la radice quadrata.
   4 /// Salvate il file come AreaTriangolo.cs
   5 
   6 using System;
   7 
   8 namespace AreaTriangolo
   9 {
  10         class MainClass
  11         {
  12                 public static void Main(string[] args)
  13                 {
  14                         string input; // stringa per leggere i dati di input
  15                         double latoa, latob, latoc; // variabili per i tre lati
  16                         double sp; // variabile per il semiperimetro
  17                         double area; // variabile per l'area del triangolo
  18                         
  19                 Console.WriteLine("Inserire il primo lato:");
  20                         
  21                         input = Console.ReadLine(); // prendiamo i dati dalla console
  22                         
  23                         latoa = Convert.ToDouble(input); // convertiamo i dati in un numero
  24                         
  25                         Console.WriteLine("Inserire il secondo lato:");
  26                         
  27                         input = Console.ReadLine();
  28                         
  29                         latob = Convert.ToDouble(input);
  30                         
  31                         Console.WriteLine("Inserire il terzo lato:");
  32                         
  33                         input = Console.ReadLine();
  34                         
  35                         latoc = Convert.ToDouble(input);
  36                         
  37                         sp = (latoa + latob + latoc) / 2;
  38                         
  39                         area = Math.Sqrt(sp * (sp - latoa) * (sp - latob) * (sp - latoc));
  40                         
  41                         Console.WriteLine("L'area del triangolo è {0}", area);
  42                 }
  43         }
  44 }

Listato del programma AreaTriangolo.cs

Alcune considerazioni:

Listato 2


Prendendo spunto dal programma precedente, lo modifichiamo affinché esegua dei semplici controlli sui dati immessi. Salviamo il file come AreaTriangolo2.cs:

   1 using System;
   2 
   3 /// Questo programma calcola l'area di un triangolo attraverso la formula di
   4 /// Erone data da: sqrt(sp*(sp-a)*(sp-b)*(sp-c)), in cui sp è il semiperimetro
   5 /// a, b e c sono i lati del triangolo e sqrt la radice quadrata.
   6 /// Viene implementata anche una classe per il triangolo con due metodi.
   7 /// Salvare il file come AreaTriangolo2.cs
   8 
   9 namespace AreaTriangolo
  10 {       
  11         public class Triangolo
  12         {
  13                 double latoa, latob, latoc; // attributi della classe Triangolo
  14                         
  15                 public Triangolo(double latoa, double latob, double latoc) 
  16                 {
  17                         // controlliamo che i lati inseriti siano effettivamente 
  18                         // di un triangolo, altrimenti generiamo un'eccezione
  19                         if ((latoa+latob) > latoc && (latoa + latoc) > latob &&
  20                             (latob + latoc) > latoa) 
  21                         {
  22                                 this.latoa = latoa;
  23                                 this.latob = latob;
  24                                 this.latoc = latoc;
  25                         }
  26                         else {
  27                                 throw new Exception();
  28                         }
  29                 }
  30                 
  31                 public double Perimetro() // metodo per calcolare il perimetro
  32                 {
  33                         return this.latoa + this.latob + this.latoc;
  34                 }
  35                 
  36                 public double Area() // metodo per calcolare l'area
  37                 {
  38                         double sp = Perimetro() / 2; // variabile per il semiperimetro
  39                         
  40                         return Math.Sqrt(sp * (sp - this.latoa) * (sp - this.latob) * (sp - this.latob)); 
  41                 }
  42                 
  43         }
  44 
  45         class MainClass
  46         {
  47                 public static void Main(string[] args)
  48                 {
  49                         string input; // stringa per leggere i dati di input
  50                         
  51                         string[] numerolato = new string[] {"primo","secondo","terzo"};
  52                         double[] lati = new double[3];
  53                         
  54                         bool controllo; // variabile per il controllo sul dato inserito
  55                         
  56                         do {
  57                                 Console.WriteLine("Inserire le misure dei lati:\n");
  58                                 
  59                                 for (int i = 0; i < lati.Length; i++) {
  60                                 
  61                                         do {
  62                                                 Console.WriteLine("Inserire il {0} lato:", numerolato[i]);
  63                         
  64                                                 try {
  65                                                         input = Console.ReadLine(); // prendiamo i dati dalla console
  66                                                         lati[i] = Convert.ToDouble(input); // li convertiamo in numero
  67                                                 
  68                                                         controllo = false; // se tutto ok, passiamo al prossimo lato
  69                                         
  70                                                 } catch (System.FormatException) {
  71                                         
  72                                                         Console.WriteLine("Errore: digitato dato non numerico!\n");
  73                                                 
  74                                                         controllo = true; // continuiamo fino all'immissione di un dato esatto
  75                                                 }               
  76                                         } while(controllo);
  77                                 }
  78                         
  79                                 int j = 0;
  80                                 
  81                                 try {
  82                                         Triangolo triangolo = new Triangolo(lati[j], lati[j+1], lati[j+2]);
  83                                         
  84                                         Console.WriteLine("L'area del trinagolo è: {0}", triangolo.Area());
  85                                 
  86                                         controllo = false; // qui abbiamo concluso
  87                                 
  88                                 } catch (Exception) {
  89                                 
  90                                         Console.WriteLine("Impossibile creare un triangolo con questi lati!");
  91                                         
  92                                         controllo = true; // continuiamo a chiedere i dati
  93                                 }
  94                                 
  95                         } while(controllo);
  96                 }
  97         }
  98 }       

Listato del programma AreaTriangolo2.cs

Ulteriori risorse


CategoryProgrammazione

Programmazione/CSharp/Listati (l'ultima modifica è del 14/03/2011 12.53.23, fatta da localhost)