Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
VARIABILE VA DICHIARATA PRIMA DEL SUO UTILIZZO.
Es: →
1. Int z dichiarazione del tipo
→
2. Z = 0 assegnazione del valore Il nome della variabile è una sequenza alfanumerica
non contenente spazi;
_ tipi di dati in C:
Alcuni tipi di dati in C sono:
● →
CHAR per rappresentare caratteri (lettere), che vengono rappresentati come “piccoli numeri interi”
(compresi tra 0-255) che corrispondono al codice ASCII;
● →
INT per rappresentare numeri interi
● →
FLOAT per rappresentare numeri con la virgola (4 byte)
● →
DOUBLE per rappresentare numeri con la virgola in doppia precisione (8 byte)
In C una variabile nella dichiarazione preceduta dalla parola “const”, si dice costante e fa riferimento a un
valore fisso che il programma non può modificare:
→
Es: const float pigreco = 3.14 il programma non può modificarlo.
_ le istruzioni: →
Il corpo del programma è composto da una sequenza di istruzioni inizia con: main () o int main ()
Si distinguono 3 tipi di istruzioni:
→
- Di ingresso e uscita scanf (input) e printf (output)
→
- Aritmetico - logiche (o di assegnamento) consentono la manipolazione dei dati e la generazione di
nuovi risultati
→
- Di controllo consentono di modificare il flusso di esecuzione delle istruzioni attraverso di salti
condizionati al verificarsi di una condizione valutata; i salti sono introdotti dalle istruzioni di controllo,
cioè da selezioni o cicli.
_ le operazioni logiche:
Queste operazioni fanno riferimento a variabili o costanti di tipo booleano:
● →
NOT corrisponde a “!”
● →
OR corrisponde a “| |”
● →
AND corrisponde a “&&”
Gli operatori logici restituiscono un numero: 0 per “falso” e >0 per “vero”.
_ alcune funzioni del linguaggio C:
Ci sono vari caratteri di conversione:
→
- %d si considera un numero intero decimale
→
- %c si considera un carattere
→
- %s si considera una stringa
→
- %f notazione in virgola mobile
Le funzioni principali sono:
● →
parte dichiarativa globale #include <stdio.h> #include <stdlib.h> e si tratta della direttiva
principale per poter usare le “istruzioni”; si scrive prima del main ().
● →
Stampa printf è una funzione di output che stampa in uscita la stringa di controllo, che contiene
caratteri comuni e caratteri di conversione;
● →
Acquisizione scanf funzione di input che legge caratteri dalla tastiera e li interpreta secondo il
formato specificato dai caratteri di conversione;
● →
Carattere “a capo” /n rappresenta di andare a capo;
● →
System è una funzione che esegue comandi del sistema operativo,
es: system (“pause”);
● →
If selezione a 1 via
● →
If - else selezione a 2 vie
● →
if - else if - else selezione a più vie
● →
Switch selezione a più vie nella quale lo switch confronta il valore di un'espressione con una lista di
costanti (case 1 - case 2 - case 3 - ecc - default); se viene trovata una corrispondenza, né vengono
eseguite le istruzioni associate, altrimenti vengono eseguite le istruzioni presenti dopo la parola
“default”;
● →
While ciclo a condizione iniziale, cioè viene ripetuta l'istruzione finchè la condizione è vera
● →
For ciclo a condizione iniziale, l'istruzione viene eseguita per un numero finito di volte
● → ….. ….)
Do - while ciclo a condizione finale (es: fai finché
Gli operatori specifici sono elementi della programmazione che consentono di lavorare con i valori e sono:
→
- x + y operatore binario (restituisce la somma)
→
- x ++ operatore unario (incrementa il valore di x d 1)
→
- x - - decrementa il valore di x di 1
→
- % operatore resto che esiste solo per INT ma non per FLOAT
→
- / divisione, è differente tra INT e FLOAT (es: x/y=1 e x/y=1,5377
→
- = operatore di assegnamento (x=3)
_ variabili strutturate: i vettori (ARRAY)
Ogni vettore ha un nome e un tipo e può contenere un numero stabilito di n elementi, identificati da un indice
che varia da 1 a n; l'indice va tra 2 parentesi quadre.
→
Es: g[12] g = nome , [12] = indice
In C il primo elemento di un Array è quello con indice 0!!
Una stringa di vettori è un vettore di caratteri che termina con il carattere speciale “\0”.
Es: char indirizzo = “Via Branze 38”;
verrà memorizzato:
_ variabili strutturate: matrici
Le matrici sono Array multidimensionali, cioè i cui elementi sono identificati da più indici
contemporaneamente; ogni indice identifica una dimensione della matrice.
Es: se volessimo tenere traccia della disponibilità mensile di 50 prodotti, usiamo una matrice d[i,j] dove
identifica i prodotti e j identifica il mese a cui si riferisce.
7. Dagli algoritmi ai programmi (pt.2)
_ variabili strutturate: struct
Nei vettori e nelle matrici gli elementi devono essere tutti dello
stesso tipo, se però volessimo memorizzare diversi dati per ogni
elemento (es: per ogni studente: matricola, nome, cognome,ecc)
è possibile definire delle strutture; una variabile avente una
→
certa struttura definita comprende più componenti i campi.
_ alcune particolarità sulle stringhe:
● Non possiamo assegnare una stringa a una variabile dichiarata come vettore di char, anche nel caso
char sia un campo di struttura(es: NON POSSIAMO SCRIVERE “char indirizzo [30]; indirizzo = via
Branze..");
● Per assegnare valori costanti alle stringhe o fare assegnamenti fra stringhe dobbiamo includere alla
libreria standard string.h e usare la funzione: strcpy (destinazione, sorgente);
→
destinazione è la variabile stringa di destinazione
→
sorgente è la variabile stringa sorgente
Es: strcpy (stud.nome, “Mario”); strcpy (stud.cognome, “Rossi”);
● Il carattere di conversione delle stringhe è %s, perciò posso acquisire e stampare le stringhe
es: scanf (“%s”, stud.nome)
printf (“lo studente è %s %s”, stud.nome, stud.cognome)
_ i sottoprogrammi:
I sottoprogrammi corrispondono alla soluzione di sottoproblemi (per ogni sottoproblemi si può scrivere un
sottoprogramma); è come se il linguaggio si arricchisse di nuove istruzioni, infatti ogni nuova istruzione è la
chiamata di un sottoprogramma e quindi corrisponde all'esecuzione di un sottoprogramma (printf e scanf
sono sottoprogrammi).
_ i Database (le basi di dati):
Si impiegano nelle situazioni in cui esistono quantità molto grandi di dati da elaborare e archiviare e il metodo
più diffuso per l'organizzazione e l'elaborazione dei dati è il modello relazionale.
Una base di dati relazionale è costituita da un insieme di tabelle (le tabelle non dispongono di un indice per
identificare univocamente i record, cioè i suoi elementi), chiamate relazioni e il software dedicato alla gestione
→
dei database è: DBMS database management system.
Gli schemi e le basi in un database sono: FROM T1,....,Tn (tabella) WHERE P (vincolo)
Che parte dalle tabelle T1,..., e come risultato della sua esecuzione genera una nuova tabella il cui schema è
definito dai campi C1,...,Cn estratti dalle tabelle di partenza, con il vincolo che la condizione P sia soddisfatta.
SQL fornisce una sintassi per descrivere cosa si vuole ottenere e non come ottenerlo; normalmente i
programmatori sviluppano le query al database e mettono a disposizione interfacce grafiche per l'utente (GUI),
ma in fase di creazione utenti ed esperti del dominio applicativo possono contribuire a definire:
- I concetti principali e le tabelle (data dictionary)
- Le query più frequenti
Il data dictionary contiene:
● Nomi delle tabelle
● Campi delle tabelle
● Una descrizione per ciascun campo
● Il tipo per ciascun campo (es: DD-MM-YYYY per la data)
● Ampiezza del campo
● Un intervallo per i valori del campo
● Se il campo è opzionale o obbligatorio
● Le relazioni fra i campi 8. Ambienti di programmazione
_ I linguaggi di programmazione di alto livello:
I linguaggi di alto livello permettono di specificare gli algoritmi in
maniera precisa (grazie ai termini precisi e univoci), ma più
“astratta” rispetto al linguaggio macchina perchè solitamente
ciascuna istruzione in un linguaggio ad alto livello corrisponde a più
istruzioni in linguaggio macchina.
I vantaggi principali:
- Consentono lo sviluppo di sistemi complessi
- Gli errori sono inferiori
- Il codice è più facile da mantenere
- Indipendenza della macchina
_ i traduttori:
Sono programmi che provvedono a convertire il codice di programmi in linguaggio di alto livello nella
corrispondente rappresentazione in linguaggio macchina.
Esistono 2 classi di traduttori:
● →
Compilatori traducono un programma sorgente in
un programma direttamente eseguibile dal
calcolatore;
● →
Interpreti traducono ed eseguono direttamente le
istruzioni del programma e in ingresso richiedono
anche dati inizial
1. Il programma P scritto in linguaggio L viene dato in ingresso a un programma P (programma
comp
→
compilatore) e la sua esecuzione produce P PRIMA FASE
exe →
L'esecuzione da parte di un calcolatore P su dati iniziali produce dei risultati finali SECONDA FASE
exe
2. Il programma P scritto in linguaggio L viene dato in ingresso a un programma P (programma
int
→
interprete) e, con dati in ingresso, produce risultati finali UNICA FASE
_ confronto tra compilatori e interpreti:
→ velocità: i programmi compilati hanno prestazioni migliori e durante la compilazione si possono attuare
→
processi di ottimizzazione per prodotti commerciali a larga diffusione;
→ messa a punto: gli interpreti permettono di correggere errori non appena scoperti (senza ricompilare il
→
programma) per la fase di prototipazione.
_ la portabilità:
Si tratta della possibilità di utilizzare un programma su piattaforme hardware/software diverse da quella dove
è stato sviluppato.
Ci sono 3 modalità possibili:
● →
Portabilità del file eseguibile richiede calcolatori
con hardware e sistema operativo dello stesso tipo
per i