C#, pronunciato “Si Sharp”, è un linguaggio di programmazione semplice, moderno, orientato agli oggetti e indipendente dai tipi. C# ha le sue radici nella famiglia di linguaggi C e risulterà immediatamente familiare ai programmatori di C, C++, Java e JavaScript.
In questa sezione è riportata una guida al linguaggio di programmazione C# in cui, partendo dai concetti di base, fino ad esplorare le maggiori potenzialità offerte dal linguaggio, si alterneranno lezioni teoriche con esercizi applicativi di difficoltà crescente.
INTRODUZIONE
Introduzione al linguaggio C# e a .NET Framework
Console Application con parametri da riga di comando
CONCETTI DI BASE
Dichiarazione di variabili in C#
Ambito di una variabile (Scope)
Operatori aritmetici e di assegnazione
Esercizi Input/Output, istruzioni in sequenza, operazioni aritmetiche
LA PROGRAMMAZIONE STRUTTURATA
La programmazione strutturata e il Teorema di Böhm-Jacopini
ISTRUZIONI DI SELEZIONE
L’operatore condizionale ternario ?:
Elementi di logica (operatori logici in C#)
Esercizi if, if-else, switch e operatori logici
ISTRUZIONI DI ITERAZIONE
Ciclo while, do-while, for e foreach
Esercizi riassuntivi svolti sui cicli
ARRAY MONODIMENSIONALI (VETTORI)
Vettori (Array monodimensionali)
Caricamento di un vettore con dati letti da tastiera e controllo sui dati inseriti
Stampa a video del contenuto di un vettore
Copia di un vettore in un altro vettore
Ricerca del massimo e del minimo di un vettore e relative posizioni
Ricerca lineare di un elemento in un vettore (Ricerca lineare)
Ricerca binaria di un elemento in un vettore (Ricerca dicotomica)
Fusione di due vettori ordinati
Vettori ad occupazione variabile
Ordinamento per selezione (Selection sort)
Ordinamento per inserzione (Insertion sort)
Ordinamento a bolle (Bubble sort)
Vettori ordinati e totali parziali
Language Integrated Query: i metodi Max, Min, Average, Sum
Strutture/Record (struct) – Tabelle
Esercizi riassuntivi svolti sui vettori
ARRAY BIDIMENSIONALI (MATRICI)
Matrici (Array bidimensionali)
Caricamento/acquisizione matrice per righe e per colonne
Calcolo della matrice trasposta
Esercizi riassuntivi risolti sulle matrici
LA PROGRAMMAZIONE PROCEDURALE
La programmazione procedurale. Approccio Top-Down e Bottom-Up
Tecnica della scomposizione in sottoprogrammi
Passaggio di un Value Type – By Value
Passaggio di un Value Type – By Reference
Passaggio di un Reference Type – By Value
Passaggio di un Reference Type – By Reference
PROGRAMMAZIONE ORIENTATA AGLI OGGETTI (OOP, Object Oriented Programming)
Introduzione alla programmazione orientata agli oggetti
Incapsulamento/Information Hiding
Implementazione di classi, metodi, costruttori, distruttori, campi e proprietà in C#
Polimorfismo e collegamento dinamico (dynamic binding)
Relazione tra classi (implementazioni in C# di associazioni)
Esempi di associazione tra classi in C#
La classe List<T> (List Generics)
LINQ (Language-Integrated Query)
Esercizi riassuntivi sulla programmazione ad oggetti in C#
GESTIONE DEI FILE DI TESTO E BINARI IN C#
Gestione delle eccezioni (blocco try-catch-finally)
File binario con accesso diretto tramite la posizione del record (caso file non ordinato)
File binario ordinato con accesso diretto attraverso una chiave
Inserimento nuovo record in file binario con indice
Esercizi sui file di testo in C#
ACCESSO AL DATABASE SQL SERVER
.NET Framework Data Provider per SQL Server
Connessione a SQL Server e creazione database con Visual Studio e SQL Management Studio
Lettura dati in SQL Server – SqlConnection, SqlCommand ed SqlDataReader
Esecuzione di comandi SQL con parametri – la classe SqlParameter
Esecuzione del comando di Update per aggiornare una riga del database SQL Server
Esecuzione del comando di Insert per inserire una nuova riga nel database SQL Server
Esecuzione del comando di Delete per eliminare una riga nel database SQL Server