 |
Menu principale |
 |
 |
Cartoline virtuali |
 |
Cartolina n° 607

Sono presenti 1307 cartoline virtuali. Entra ora
 |
Giochi online |
 |
 |
News Reader |
 |
|
.:PARTE 1 - LE BASI DELLA PROGRAMMAZIONE C:.
Hola! Questo tutorial ha l'obbiettivo di far capire come funzioni il C in modo tale da poterlo usare per qualsiasi tipo
di applicazione abbiate in mente. L'unica cosa che si richede per seguire bene questo corso è un po di conoscenza delle
basi della programmazione, di qualsiasi cosa: Basic, Pascal, insomma, un qualsiasi linguaggio di programmazione.
Il C è un linguaggio ad alto livello, questo significa che è più vicino all'uomo che alla macchina (sia come sintassi
che come logica), al contrario dell'ASM (linguaggio di basso livello). Detto questo passiamo ad eseminare realmente questo
linguaggio di programmazione.
[NB: Il linguaggio C è un linguaggio Case-Sensitive, ovvero fa distizione fra maiuscole e minuscole. Per il C, ad esempio,
la variabile pippo è diversa dalla variabile PIPPO o Pippo o PiPPo. Vale per tutto: funzioni, variabili, ecc.!!]
Funzioni di I/O
---------------
Una cosa fondamentale che qualsiasi linguaggio deve permettere di fare è quella di fare interloquire la macchina con
l'uomo, in diversi modi. Quella più semplice e ovvia, è tramite Tastiera(input-uomo)/Monitor(output-macchina). In realtà
potrebbe sembrare l'unico metodo, ma non dimentichiamoci che quotidianamente usiamo: mouse(input),stampanti(output),
gamepad(input) e tanti altri dispositivi. Nel programma che vedremo più avanti permetteremo alla macchina e all'uomo
di interloquire, e, a seconda del tipo di input immesso dall'utente il computer si comporterà in una determinata maniera.
Il codice è questo:
#include<stdio.h>
void main(void)
{
int numero,risultato;
clrscr();
printf("Inserisci un numero: ");
scanf("%d",&numero);
risultato=numero*2;
printf("n");
printf("Il risultato è: %d",risultato);
}
Prima di continuare a leggere cercate di capire da soli cosa fa questo programma. Se non ci siete riusciti poco male
ora lo vedremo insieme. Analizziamo il programma:
#include<stdio.h>
Con questa istruzione altro non facciamo che richiamare una libreria, la stdio.h (standard I/O), che ci mettere in
condizione di usare le funzioni di base di Input Output del C.
void main(void)
{
In questo modo iniziamo a scrivere la funzione principale (Main Function), che sarà quella eseguita dal programma. Più
avanti vedreme che potremmo scrivere codice in altre funzioni, ma per ora ricordiamoci solo che con questa istruzione
(che in realtà è una dichiarazione) possiamo iniziare a scrivere il codice vero e propio di questo programma. Il codice
deve essere contenuto (dopo la descrizione del main) fra le parentesi graffe. Tutto quello che c'è all'interno delle
{ } del main è il codice che andremo ad eseguire.
int numero,risultato;
Questa viene chiamata la parte dichiarativa del codice. Infatti, quì, vengono dichiarate 2 variabili di tipo int (integer-
intere). Ovvero queste variabili potranno contenere solo valori interi (Nota: una variabile di tipo int è grande 16 Bit,
questo stà a significare che la variabile in questione potrà contenere numeri in un range compreso da -32.768 a 32.767)
[Per il range di altri tipi di variabili guardare nelle tabelle in fondo al tutorial].
clrscr();
Questa funzione viene richiamata per ripulire lo skermo e posizionare il cursore in alto a sx.
printf("Inserisci un numero: ");
Con l'istruzione printf siamo in grado di stampare in output (sullo schermo) un qualsiasi messaggio. In questo caso
specifico stampiamo su schermo la stringa "Inserisci un numero: " (senza le virgolette).
scanf("%d",&numero);
Scanf, invece, ci permette di prendere un dato dall'esterno, quindi un'input (da tastiera). In questo caso ci aspettiamo che
l'utente inserisca un valore numerico ti tipo intero (%d [Per altri tipi guardare in fondo al tutorial]) che verrà
automaticamente inserito nella variabile numero (&numero). Il simbolo & prima della variabile viene usato solo nella scanf
(e non nella printf!!) e stà a significare "all'indirizzo di" , quindi "all'indirizzo di numero". Ovvero, potremmo anche
dire, "metti il numero immesso dall'utente all'indirizzo di numero".
risultato=numero*2;
Questa istruzione è in realtà ciò che esegue il programma: moltiplicare x2 il numero immesso dall'utente. Il risultato di
questa operazione viene inserito nella variabile risultato.
printf("n");
Con questa printf, al contrario di quanto si possa pensare, non stampiamo la stringa "n". Infatti, in c, con il carattere
si abilitano quelle che vengono chiamate "sequenze di escape", che si concludono con il carattere immesso subito dopo
lo . In questo caso il carattere è n, la funzione, quindi è quella di andare a capo, ovvero questa printf non stamperà
nulla, andrà solo a capo. [Altre sequenze di escape sono riportate in fondo al tutorial].
printf("Il risultato è: %d",risultato);
}
Quì stampiamo il risultato su schermo. Dopo la stringa "Il risultato è: " vediamo infatti il segnaposto %d, ovvero per un
intero. Infatti, su schermo, al posto di %d verrà stampato il contenuto della variabile risultato, che è subito dopo
la stringa e la virgola. Dopodichè il nostro programma è finito.
Ottimizzare il Codice
---------------------
Anche se questo è un programma molto semplice, vi sono molti modi per ottimizzarlo. Ottimizzare un programma significa
fargli fare le stesse cose con il minor numero di istruzioni e variabili possibili. Ora vediamo come appare il nostro
programma ottimizzato:
#include<stdio.h>
void main(void)
{
int numero;
clrscr();
printf("Inserisci un numero: ");
scanf("%d",&numero);
printf("nIl risultato è: %d",numero*2);
}
Questo è il programma ottimizzato! Abbiamo fatto tutto quello che ci eravamo prefissati: diminuire il numero di variabili
usate (ora ne usiamo 1 al posto di 2) e diminuire il numero di istruzioni. Le modifiche al programma vero e propio sono
poche (voui anche per la semplicità del programma in questione). Diciamo, più che altro che l'operazione di andare a capo
e quella di moltiplicare il numero x2 è stata fatta in un'unica printf. Analizziamola:
printf("nIl risultato è: %d",numero*2);
Prima di tutti mandiamo a capo il cursore ("n") , dopodichè stampiamo "Il risultato è: ", e mettiamo il segnaposto per
il risultato intero (%d) dopodichè stampiamo il numero vero e propio, ovvero il numero immesso dall'utente moltiplicato
per due (numero*2). In questo modo, in realtà, in numero avremmo sempre il numero immesso dall'utente (non quello
moltiplicato per x2) però, al momento della stampa lo moltiplicheremo x2. In parole povere, dopo questa istruzione,
in numero rimarrà sempre il valore immesso dall'utente. Questo, però, poco importa, l'output del programma è lo stesso,
quindi il programma svolge lo stesso lavoro, con meno istruzioni e con una variabile in meno!
Conclusioni
-----------
Questa prima parte della guida è finita! Abbiamo visto come trattare input e output in modo abbastanza semplice. Nella
prossima parte amplieremo il discorso sull'I/O , parlando di stringhe e di File testuali. Alla Prossima...
----------------
TABELLE DI AIUTO
----------------
Range di Valori per tipi di variabili:
* Tipo | Lungh. | Range (valori minimi e massimi)
* ---------------+---------+----------------------------------------------
* unsigned char | 8 bits | 0 fino 255
* char | 8 bits | -128 "" 127
* unsigned int | 16 bits | 0 "" 65,535
* short int | 16 bits | -32,768 "" 32,767
* int | 16 bits | -32,768 "" 32,767
* unsigned long | 32 bits | 0 "" 4,294,967,295
* long | 32 bits | -2,147,483,648 "" 2,147,483,647
* float | 32 bits | 3.4 * (10**-38) "" 3.4 * (10**+38)
* double | 64 bits | 1.7 * (10**-308) "" 1.7 * (10**+308)
* long double | 80 bits | 3.4 * (10**-4932) "" 1.1 * (10**+4932)
Tipi di segnaposto:
%d = variabili di tipo int
%f = variabili di tipo float
%c = variabili di tipo char
%s = variabili di tipo stringa (vettore di char -> char[])
Sequenze di Escape:
n va a capo
b il backspace, ritorna di un carattere indietro
t salta di un tabulatore
a suona l'alarm del PC
” stampa le virgolette |
|
|
|