Mostra notizie nelle discussioni
Avatar
☺
Programmazione
Scritto da
il 2018-05-27 21:28:24.0 alle 2018-05-27 21:28:24.0
Trollate totali: 115
Re: Esercizii lezioni 1 + 2 di C#
Scritto da: Mattia
> Posto le soluzioni settimana prossima.
> Chi sta seguendo il corso provi a rispondere qui o in privato per vedere se ha capito e per costringersi a ripassare.
>
> 1) Spiega che cosa è .NET. Elenca il tipo di applicazioni che si possono realizzare con .NET. Quali sono i due principali linguaggi di programmazione di .NET?

.NET è un framework.
Si possono realizzare app native multipiattaforma, software compilati per windows, Silverlight e Mono sono tra questi.Rari sono i progetti di scripting in C#.
I principali linguaggi di .NET sono Visual Basic e C#, ma abbiamo anche F# che però è di minore rilevanza.


>
> 2) C# rientra nella categoria dei linguaggi managed, a differenza di altri linguaggi (come ad esempio il C) che è unmanaged. Qual'è la differenza tra un linguaggio managed e un linguaggio unmanaged?

Il C# è un linguaggio managed.Questo significa che è autogestito, ovvero sia la memoria heap che stack sono autogestite, cioè non decidi cosa mettere in tali memorie ma ciò è autogestito dal CLR e tu non devi preoccupartene.Quindi anche se non lo ripulisci non cadi il rischio di memory leak come nel C.In C# , come anche in Java, non ci sono i puntatori come nel C, che invece servivano per gestire direttamente i dati dell'heap avendo un riferimento nello stack.

La differenza tra un linguaggio managed e unmanaged è soprattutto quindi nella semplicità, nella maggiore portabilità, nell'assenza di memory leak.




> Quali sono i vantaaggi di un linguaggio managed? Esistono risorse unmanaged in C#?

Esistono i distruttori in C# ma generalmente non si usano.

Esistono risorse unmanaged in C# e sono relative ad oggetti che usano risorse unmanaged devi ripulirteli da solo con i distruttori.


>
> 3) Javascript è un linguaggio interpretato. C e C# sono linguaggi compilati. Il C viene compilato in linguaggio macchina, mentre C# viene compilato in un linguaggio che viene chiamato CIL (Common Intermediate Language).
> Spiega che differenza c'è tra un linguaggio interpretato e uno compilato e spiega la differenza tra il linguaggio macchina e il CIL. Qual'è il vantaggio di un linguaggio che non viene compilato in linguaggio macchina?


Il linguaggio interpretato utilizza un interprete specifico, come in javascript per tradurre il linguaggio di alto livello in istruzioni imperative che verranno eseguite immediatamente dal processore.
Il linguaggio compilato invece viene scritto generalmente in un IDE o blocco note, salvato in un eseguibile e debuggato , con il vantaggio di scovare eventuali errori dopodichè il linguaggio ad alto livello verrà trasmutato in linguaggio macchina che verrà dato in pasto alla CPU per poi eseguire istruzioni.Questo è il caso del C e C++ che sono linguaggi compilati puri. Mentre Java e C# sono linguaggi intermedi/misti, cioè vengono compilati, ma non generano linguaggio macchina, ma un linguaggio leggermente più ad alto livello chiamato bytecode nel caso di C# si chiama CIL Common intermdiate language, che non essendo linguaggio macchina non potrà essere dato in pasto direttamente alla CPU, ma verrà interpretato dalla CLR Common language runtime per generare istruzioni imperative.

Il vantaggio di un linguaggio compilato è la velocità di esecuzione e la possibilità di scovare errori nel debugging.
I vantaggi di uno interpretato sono la velocità nello sviluppo, visto che hanno meno fasi preparatorie.
Nel linguaggio compilato puoi nel debug scovare errori, in quello interpretato puoi scovare errori durante l'esecuzione (se ho capito bene).


>
> 4) Nelle scorse lezioni abbiamo visto i seguenti tipi di variabili: bool, byte, short, int, long. Spiega le loro caratteristiche (dimensione in bit, tipi di valore che possono contenere, utilizzo che ne viene fatto) e scrivi un programma in cui ciascun tipo viene inizializzato al suo valore minimo, al suo valore massimo e al suo valore di default. Stampa sullo schermo i risultati.


Allora bool può essere True o False
byte è di 8 bit
short 16 bit
int 32 bit
long 64 bit


>
> 5) Il byte è un tipo di variabile che può contenere numeri interi positivi.
> Dimostra che il valore minimo del byte è 0 e il valore massimo 255.
> La dimostrazione deve essere articolata in due parti:
> a) Dimostrazione matematica (suggerimento: è sufficiente la semplice matematica binaria, dal momento che il byte è solo per numeri positivi)
> b) Dimostrazione programmatica con C#: vedi esercizio 4.
>
> 6) Come il 5, ma sta volta per lo short.
> Dimostra che il valore massimo di uno short è 32'767.
> Suggerimento: dal momento che lo short può contenere sia valori negativi che positivi, la semplice matematica binaria non basta: la dimostrazione si deve avvalere del complemento a due, che tiene conto del segno.
>
>
>
>
> **Modificato dall'autore il 25.05.2018 13:39**

il resto Mattia te lo mando in pvt


gatto c'è questo compilatore online https://dotnetfiddle.net/ succedaneo a Visual Studio
se il tuo problema era collegarti al mio Visual Studio potresti fixare con questo, che ne dici?Proviamo!

E TU Lo Sai o no?

Ad http://sallo.it
LO SAI? Allora NON fa per te. NON LO SAI? Allora non ti serve.‎

Pagina generata in 16 millisecondi

Utenti attivi: 16 nell'ultimo minuto, 46 negli ultimi cinque minuti, 95 negli ultimi 15 minuti