Informatica corso C++ linguaggio di programmazione

Materie:Appunti
Categoria:Informatica

Voto:

2.5 (2)
Download:44
Data:02.02.2006
Numero di pagine:9
Formato di file:.txt (File di testo)
Download   Anteprima
informatica-corso-linguaggio-programmazione_1.zip (Dimensione: 10.1 Kb)
readme.txt     59 Bytes
trucheck.it_informatica-corso-c++-linguaggio-di-programmazione.txt     28.4 Kb


Testo

@//\\//\\//\\//\\//\\@
{| |}
--{ | -== C TUTORIAL ==- | }--
{| (parte I) |}
@//\\//\\//\\//\\//\\@
BAKЬNIN
[email protected]
Ave a tutti quanti voi da Bakunin.
Per richiesta del mio "amicone" Screener_it ora mi cimento in questa fantastica opera
divulgativa sulla programmazione in C.
------------------------------------------
| INDICE: |
------------------------------------------
| 1) Occorrente |
| 2) Librerie, variabili e struttura base|
| 3) Input ed Output (Scanf e Printf) |
| 4) Giochi vari con le variabili |
| 5) Spiegazione generale dei puntatori |
| 6) Array |
| 7) Funzioni |
| 8) CICLI: |
| a) IF |
| b) WHILE |
| c) DO |
| d) FOR |
| 10) Break |
| 11) Continue |
| 12) Strutture |
| 13) File |
| a) fopen |
| b) fprintf |
| c) fclose |
| d) fscanf |
| e) fwrite |
| f) fread |
| g) putc e getc |
| h) salvare dati e ricercarli |
| 14) Commenti e impaginazione |
------------------------------------------
Incominciamo subito con l'occorrente necessario:
1) Un qualsiasi editor (Blocco note di Windows, VI di linux, Editor di DOS, tutto quello che
volete...);
2) Un compilatore, cioт quel programma che ti permette di trasformare un file.c in un
file.exe. (Si possono trovare a centinaia su INTERNET!).
Io personalmente uso il gcc di linux [MESSAGGIO PROMOZIONALE: Passate a Linux, si и piщ
sicuri, ci sono giа tutti i tipi di compilatori di questo mondo per tutti i linguaggi di
programmazione, и tutto gratuito, e gliela mettete in CUL_O a Bill!!], ma ho visto che sul
sito www.programmazione.it ne crovate a bizzeffe!
APPUNTO DI SCREENER_IT: trovate un compilatore per C sotto Windows nella sezione Programmi del Tank Commandos Web Site (http://go.to/tankcommandos)
3) Non c'и nesssun punto 3!
INCOMICIAMO!!!
Aprite il vostro editor e scrivete:
-------INIZIO------
main(){
}
-------FINE-------
Questo и il nocciolo di tutti i programmi C. Come potete vedere questo programma, compilato
non fa nessun'operazione. Infatti quello che ho creato и solo il nocciolo, la procedura base.
All'interno di questa poi si dovranno inserire ciт che vogliamo che il programma faccia.
Per far fare qualcosa al programma и necessario inserire al suo interno un collegamento alla
libreria che contiene le operazioni e il loro funzionamento. Esistono vari tipi di librerie:
Stdio.h и una di queste. Questa in particolare и quella che utilizeremo noi nel prossimo
esempio:
------------------
#include
main(){
printf("CIAO MONDO!!!");
}
------------------
Cosa abbiamo fatto?
Semplice. Con il comando #include colleghiamo appunto, come sopra detto, la libreria
. Poi c'и il "main" che и appunto la procedura centrale, seguito da (). Queste due
parentesi ora sono vuote ma successivamente scopriremo che possiamo anche riempirle.
{ Indica che da qui in avanti c'и l'elenco delle operazioni. Questo elenco si conclude con }.
Tutto ciт и molto simile al PASCAL quando si fa BEGIN ed END.
Come operazioni abbiamo inserito printf("CIAO MONDO!!!") il che vuol dire: stampa sullo
schermo la scritta contenuta fra le due virgolette (nel nostro caso CIAO MONDO!!!).
Tutte le operazioni devono ASSOLUTAMENTE FINIRE con ; .
Ora mando in esecuzione il programma:
c:\>prova.exeCIAO MONDO!!!c:\>
Dovrebbe comparire una roba simile a questa! Non и vero?
Questo и successo perchи non abbiamo mandato a capo la stringa CIAO MONDO!!!.
QUesto si ottiene facendo:
printf("\n\rCIAO MONDO!!!\n\r");
Cosa ho fatto? Ho inserito le opzioni \n e \r alla stampa della scritta. Il risultato sarа:
c:\>prova.exe
CIAO MONDO!!!
c:\>
Ci siamo riusciti!!
ORA BECCATI 'STA TABELLA SULLE ALTRE OPZIONI POSSIBILI DI IMPAGINAZIONE CON PRINTF:
-------------------------------------------------
| \n | Nuova linea |
| \t | Tab |
| \b | Spazio indietro |
| \r | A capo |
| \' | Inserisci l'apostrofo |
| \" | Inserisci le virgolette |
| \\ | Inserisci lo \ |
| \d | Carattere con codice Ottale |
| \dd | Vedi sopra |
| \ddd | Vedi sopra |
| \xh | Carattere con codice esadecimale |
| \xhh | Vedi sopra |
| \e | Escape |
| \v | Tab verticale |
-------------------------------------------------
Con questa tabella puoi incominciare a posizionare il testo dove ti pare.
Ora un altro esempio:
-------INIZIO----------
#include
main(){
int numero;
numero=3;
printf("Il numero perfetto и %d, cosм и detto dai greci!", numero);
}
-------FINE-----------
Spiegazione:
Con int inizializzo la variabile numero. Cosa vuol dire inizializzare? Vuol dire che da ora
in avanti esisterа per il programma una variabile numero che farа determinate operazioni.
Con numero=3 dт alla variabile numero il valore di 3. Infatti = serve per attribuire un
valore ad una variabile. Questo и fattibile in PASCAL con := .
Per quanto riguarda l'operazione printf("Il numero perfetto и %d,... Potevo benissimo
scrivere ("Il numero perfetto и 3... Ma non avreste imparato niente di nuovo!
Cosa ho fatto? Ho detto attraverso il comando %d di andare a prendere il valore della prima
variabile dopo le virgolette e di inserirla nella scritta.
"il numero perfetto и %d, cosм и detto dai greci!", numero
| |
--------------------------------
RISULTATO:
Il numero perfetto и 3...
Si sono altre possibilitа di inserire variabili.
A proposito di ciт beccati la tabella:
---------------------------------------------------------
| int | da -32767 a 32767 |
| long | da -2147483647 a 2147483647 |
| float | da 3,4 * (10**-38) a 3,4 * (10**+38) |
| double | da 1,7 * (10**-308) a 1,7 * (10**+308)|
| char | Un carattere |
---------------------------------------------------------
int lo abbiamo giа usato
long si usa con int (ES: long numero;)
Float pure
Double perchи dovrebbe essere diverso dagli altri 3?
Char questo и diverso!
Char si usa per i caratteri. (ES: char carattere;). Il carattere perт puт essere messo in due
modi diversi:
1 Sotto carattere ascii (carattere='A'; Notate che bisogna usare l'apostrofo e non le
virgolette!)
2 Sotto numero ascii (cioи quella combinazione che dа la lettera. ES: carattere=65; Poichи
se fate Alt+65 compare A!).
EX CLARO?
Parliamo ancora di numeri!
Se vogliamo aumentarli o diminuirli?
Semplice: Non abbiamo al variabile numero inizializzata. Basta fare:
numero++; Aumentato di 1
numero+=2; Aumentato di 2
numero+=3; Aumentato di 3
numero-=3; Diminuito di 3
...
Parliamo ancora di %d! %d riporta il valore numerico della variabile numero
Ma se noi volessimo il corrispettivo valore ascii dovremmo fare %c.
Ora beccati un esempio su questo:
---------INIZIO------------
#include
main(){
int numero;
printf("\n\rINSERISCI UN NUMERO:");
scanf("%d",&numero);
printf("\n\rTU HAI INSERITO IL NUMERO %d",numero);
}
---------FINE------------
SPIEGAZIONE:
Termini nuovi.
SCANF riceve un input dalla tastiera. Aspetta che tu digiti qualcosa. Quello che tu digiti,
che deve essere in formato numerico (perchи abbiamo inserito %d!) verrа immagazzinato nella
variabile inizializzata col nome di numero.
Dopo di che viene stampata con il comando printf nel modo che abbiamo giа visto.
Ora un altro esempio.
---------INIZIO------------
#include
main(){
char numero;
printf("\n\rINSERISCI UN NUMERO:");
scanf("%d",&numero);
printf("\n\rTU HAI INSERITO IL NUMERO %d CHE SOTTO FORMA DI LETTERA E' %c",numero,numero);
}
---------FINE------------
SPIEGAZIONE:
Inizializzo una variabile di carattere chiamata numero. La richiedo all'utente nel modo
spiegato sopra. Poi la stampo sia come carattere ascii che come carattere numerico.
Ma cos'и quella &? Questo simbolo serve per specificare la locazione di memoria in cui deve
essere inserito il valore che arriva dalla tastiera. E' la parte della memoria che deve
occupare. Io posso sin dall'inizio dire che quella variabile deve occupare parte della
memoria e per far ciт devo usare i puntatori. Questi cosi detti puntatori non sono altro che
delle variabili che hanno giа una collocazione precisa.
Per crearli basta fare:
int *numero;
Da questo momento la variabile numero и un puntatore. Il puntatore puт contenere una
variabile e quindi и lecito fare:
int *A;
int B;
A=B;
ed и pure lecito fare:
*A=3;
-------------FINE PRIMO TEMPO-----------------
-------------INIZIO SECONDO TEMPO---------------
Array и un'insieme di variabili.
Cosa vuol dire? Se io inizializzo una variabilie posso inserire un valore in quella
variabile.
Un array и un tipo di variabile che puт accettare dentro se piщ variabili.
Quindi una variabile semplice и come una casella.
Una array и un insieme di caselle.
Queste possono essere cosм:
1 2 3 4 5 6 7 8 9 ... Quindi su una sola linea.
1.1 2.1 3.1 4.1 ...
1.2 2.2 3.2 4.2 ...
1.3 2.3 3.3 4.3 ...
1.4 2.4 3.4 4.4 ...
...
...
A tabella.
Queste sono i tipi di array.
Come si fanno a crearle? Cosм:
int numero[50]; ovviamente 50 и il numero di variabili che array contiene.
o a tabella:
int numero[30][30]; Anche 30 и un numero di mia invenzione.
Per utilizzarle basta fare:
numero[0]=3;
numero[1]=456675;
...
e cosм via dicendo.
Se io lo inizializzo come contenete 30 variabili, la priva sarа [0] e l'ultima [29].
Ciт vuol dire che si incomincia a contare a 0 e non da 1!
Ora vi spiego come creare delle funzioni esterne a quelle principali.
Per chi conosce il PASCAL sa giа a cosa mi sto riferendo, gli altri seguano la spegazione.
Spesso, quando creo un programma complicato, con molte operazioni, non и semplice riuscirsi a
districarsi fra tutte queste. Se io divido queste operazioni in pacchetti e poi li richiamo
quando mi servono, risparmio tempo, spazio e possibilitа di errore.
Le funzioni sono dei pacchetti di operazioni che io richiamo con un semplice comando.
Vediamo un esempio:
---------INIZIO--------------
#include
int doppio(int numerob);
main(){
int numero;
scanf("%d",numero);
printf("\n\rIl doppio del numero %d и %d",numero,doppio(numero));
}
int doppio(int numerob){
return numerob*2;
}
----------FINE------------
SPIEGAZIONE:
Con la riga int doppio(int numerob); dico che in questo programma esiste una funzione
chiamata doppio e che per avviarla bisogna inserirgli un numero.
Vi ricordate quando vi dicevo che main aveva le due parentesi vuote ma potevo anche
riempirle? BENE, sostituite alla parola main la parola doppio e vedrete che avete le
parentesi () riepite dalla parola numerob.
Poi parte la solita funzione principale detta main.
Questa inizializza una variabile detta numero e lo richiede all'utente. QUesto inserirsce il
numero e lei trova il doppio vacendo queste operazioni:
"Il doppio del numero %d и %d",numero,doppio(numero)
| | | |
----|----- | Quando interpellata, la funzione doppio parte
| | con allegato l'opzione numero.
---------------- Quindi il numero inserito dall'utente entra
nella funzione doppio e qui viene moltiplicato
per due.
La funzione return rimanda il risultato al suo posto moltilicandolo per due.
Come vedi anche la funzione doppio viene aperta con { e chiusa con }.
EX CLARO?
Ora passiamo ai cicli. Per quanto riguarda i cicli ce ne sono vari tipi:
-----------------------------------------
| IF | SE x ALLORA y ALTRIMENTI z |
| WHILE | FINO A QUANDO x FAI y |
| DO | FAI x FINO A CHE y |
| FOR | PER x VOLTE FAI y |
-----------------------------------------
IF
Quando io imposto un if penso che il risultato possa essere vero o falso. Per quanto rigurda
C, ma come и anche per il PASCAL e l'ASSEMBLER e tutti gli altri principali linguggi di
programmazione, non esiste vero o falso, ma esiste orrore 0 ed errore 1.
Se si verifica l'errore 0 vuol dire che l'operazione si и verificata.
Schema del funzionamento:
IF (funzione()) funzione();
che con un esempio vuol dire:
if (numero>100) printf("Il numero и maggiore di 100!");
Se il numero и maggiore di 100 ci sarа un errore 0 e quindi comparirа la scritta altrimenti
non comparirа niente.
Complichiamo un po' le cose:
if (numero>100){
printf("Il numero и maggiore di cento!!");
}
else {
printf("Il numero non и maggiore di cento!");
}
Cosa ho fatto?
Ho fatto 2 passaggi:
1) Ti ho appena mostrato la possibilitа di non fare una sola operazione ma una serie. Infatti
con { io ho aperto un insieme di istruzioni che faccio fare al computer se si verifica la determinata operazione (numero>100).
2) Ti ho anche dimostrato che posso usare il comando else, che sarebbe a dire, se non si
verifica l'operazione dell'if (cioи se il numero и < di 100) allora fai...
Io ovviamente posso fare piщ cicli in contemporanea:
if (numero>50){
printf("Il numero и maggiore di 50!");
if (numero >100){
printf("Ed и anche maggiore di 100!);
}
else{
printf("Ma non и maggiore di 100!");
}
}
else{
printf("Il numero и minore di 50!");
if (numero

Esempio