## page was renamed from LinguaggioCSharp/Listati
#LANGUAGE it
<
>
<>
= 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 [[#risorse|Ulteriori risorse]].
= Listato 1 =
<
>
{{{#!cplusplus
/// Questo programma calcola l'area di un triangolo attraverso la formula di
/// Erone data da: sqrt(sp*(sp-a)*(sp-b)*(sp-c)), in cui sp è il semiperimetro
/// a, b e c sono i lati del triangolo e sqrt la radice quadrata.
/// Salvate il file come AreaTriangolo.cs
using System;
namespace AreaTriangolo
{
class MainClass
{
public static void Main(string[] args)
{
string input; // stringa per leggere i dati di input
double latoa, latob, latoc; // variabili per i tre lati
double sp; // variabile per il semiperimetro
double area; // variabile per l'area del triangolo
Console.WriteLine("Inserire il primo lato:");
input = Console.ReadLine(); // prendiamo i dati dalla console
latoa = Convert.ToDouble(input); // convertiamo i dati in un numero
Console.WriteLine("Inserire il secondo lato:");
input = Console.ReadLine();
latob = Convert.ToDouble(input);
Console.WriteLine("Inserire il terzo lato:");
input = Console.ReadLine();
latoc = Convert.ToDouble(input);
sp = (latoa + latob + latoc) / 2;
area = Math.Sqrt(sp * (sp - latoa) * (sp - latob) * (sp - latoc));
Console.WriteLine("L'area del triangolo è {0}", area);
}
}
}
}}} ''Listato del programma Area``Triangolo.cs''
<
><
>
Alcune considerazioni:
* all'inizio del programma è stato definito un '''namespace'''. Benché in questo piccolo esempio non sia rilevante, un '''namespace''' può essere visto come una libreria di funzioni. In questo modo si possono definire una serie di metodi all'interno del namespace a cui è possbile accedere da altri file utilizzando la direttiva '''using'''. La prima istruzione ''using System;'' indica al compilatore di utilizzare il namespace ''System'' che contiene la maggior parte dei metodi necessari alla programmazione.
= Listato 2 =
<
>
Prendendo spunto dal programma precedente, lo modifichiamo affinché esegua dei semplici controlli sui dati immessi. Salviamo il file come `AreaTriangolo2.cs`:
<
>
{{{#!cplusplus
using System;
/// Questo programma calcola l'area di un triangolo attraverso la formula di
/// Erone data da: sqrt(sp*(sp-a)*(sp-b)*(sp-c)), in cui sp è il semiperimetro
/// a, b e c sono i lati del triangolo e sqrt la radice quadrata.
/// Viene implementata anche una classe per il triangolo con due metodi.
/// Salvare il file come AreaTriangolo2.cs
namespace AreaTriangolo
{
public class Triangolo
{
double latoa, latob, latoc; // attributi della classe Triangolo
public Triangolo(double latoa, double latob, double latoc)
{
// controlliamo che i lati inseriti siano effettivamente
// di un triangolo, altrimenti generiamo un'eccezione
if ((latoa+latob) > latoc && (latoa + latoc) > latob &&
(latob + latoc) > latoa)
{
this.latoa = latoa;
this.latob = latob;
this.latoc = latoc;
}
else {
throw new Exception();
}
}
public double Perimetro() // metodo per calcolare il perimetro
{
return this.latoa + this.latob + this.latoc;
}
public double Area() // metodo per calcolare l'area
{
double sp = Perimetro() / 2; // variabile per il semiperimetro
return Math.Sqrt(sp * (sp - this.latoa) * (sp - this.latob) * (sp - this.latob));
}
}
class MainClass
{
public static void Main(string[] args)
{
string input; // stringa per leggere i dati di input
string[] numerolato = new string[] {"primo","secondo","terzo"};
double[] lati = new double[3];
bool controllo; // variabile per il controllo sul dato inserito
do {
Console.WriteLine("Inserire le misure dei lati:\n");
for (int i = 0; i < lati.Length; i++) {
do {
Console.WriteLine("Inserire il {0} lato:", numerolato[i]);
try {
input = Console.ReadLine(); // prendiamo i dati dalla console
lati[i] = Convert.ToDouble(input); // li convertiamo in numero
controllo = false; // se tutto ok, passiamo al prossimo lato
} catch (System.FormatException) {
Console.WriteLine("Errore: digitato dato non numerico!\n");
controllo = true; // continuiamo fino all'immissione di un dato esatto
}
} while(controllo);
}
int j = 0;
try {
Triangolo triangolo = new Triangolo(lati[j], lati[j+1], lati[j+2]);
Console.WriteLine("L'area del trinagolo è: {0}", triangolo.Area());
controllo = false; // qui abbiamo concluso
} catch (Exception) {
Console.WriteLine("Impossibile creare un triangolo con questi lati!");
controllo = true; // continuiamo a chiedere i dati
}
} while(controllo);
}
}
}
}}} ''Listato del programma Area``Triangolo2.cs''
<>
= Ulteriori risorse =
* [[http://www.mono-project.com/Main_Page|Il sito web del progetto Mono]]
* [[http://www.csharphelp.com/|Un sito con molti consigli su C#]]
* [[http://www.c-sharpcorner.com/|Altro sito con molti consigli su C#]]
* [[http://www.gotdotnet.com/|Comunità basata sull'utilizzo del framework .NET]]
* [[http://msdn2.microsoft.com/en-us/library/ms229335.aspx|Il sito di Microsoft contenente tutta la documentazione necessaria per C#]]
* [[http://visualcsharp.it/default.aspx|Comunità italiana di sviluppo con C# e .NET]]
* Per la documentazione relativa a '''mono''', è possibile utilizzare lo strumento '''monodoc''' da '''''Applicazioni -> Programmazione -> Monodoc'''''.
----
CategoryProgrammazione