Benvenuto! Per postare e godere delle funzionalità del forum registrati, occorrono pochi secondi ed è gratis!

[Guida] Il C++ [CH.01: creiamo progetto, ciao mondo]
(Questo messaggio è stato modificato l'ultima volta il: 14/03/2011, 20:38 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
Ciao a tutti,
visto che le hack di warrock sono fatte in C++ e che molti aspiranti coders non sanno
nemmeno cosa sia il C++, mi è sembrato giusto nell'area coder di partire con una mini-guida
su questo linguaggio.

Non prendetelo come un corso approfondito, mi limiterò a dire lo stretto indispensabile
perché chi è a zero riesca a ad avere l'infarinatura base per partire

Ma cominciamo subito
premetto subito che prenderò molto spunto dal mio libro preferito,
Il linguaggio C autori Kernighan & Ritchie, gli inventori del C

(nota, il libro parla di C, NON di C++, il secondo è una evoluzione del primo)

== [P] Premessa, CREARE UN PROGETTO C++ CONSOLE ==

Tutti i programmini che seguiranno sono di tipo "console" ovvero non hanno interfaccia
grafica, niente finestre, eseguendoli si aprirà una schermata nera (console) dove potrete

vedere l'output del vostro programma e dove potrete ricevere l'input da elaborare.
Niente Finestre, niente textbox, niente mouse, niente di niente.
perché ? perché per iniziare va bene cosi, il minimo indispensabile, niente che confonda e
basta.
E poi le hacks girano senza alcun tipo di input e output visivo quindi va bene cosi.

Vediamo come si crea un progetto con Visual C++ 2008
1. Aprite visual C++
2. Menu File-New-Project
3. a sinistra, project type, selezionate "Win32"
4. a destra tra i templates selezionate "Win32 Console Application"
5. sotto nel campo "name" scrivete il nome del progetto, es. "Test1"
6. sotto ancora, campo location, mettete il percorso in cui creare il progetto (o
selezionarlo con il pulsante a destra "browse", as es. potete scrivere c:\sviluppo\vc\
quindi premete OK

(il risultato sarà in questo caso che in C:\Sviluppo\vc\ verrà creata una cartella nuova di
nome "Test1" e dentro ci troverete i files che andrete a creare per il progetto)

7. vi compare una nuova finestra, "Application settings", selezionate "console application"
e flaggate "Empty project" e premete "Finish"
8. cercate la finestra "Solution Explorer" dovrebbe essere a destra, se non la trovate
andate nel menu View-Solution Explorer
9. tasto destro sulla cartella "Source Files" poi Add-New Item
10. nella finestra che esce dovete scegliere il tipo di file, quindi click sull'icona "C++
File(.cpp)" e in basso nel campo "name" mettete il nome da dare al file, diciamo "main.cpp"
perché sarà il file principale (main) del nostro progetto
11.CLicckiamo Add
Ok, adesso il cursore lampeggia nella schermata bianca grande centrale, che altro non è che
il nostro editor dove andare a scrivere il programma. In alto vedete il nome del file che
state editando al momento, appunto, main.cpp

Diciamo che il programma è scritto, testato etc e vogliamo salvare e uscire:

12. Menu File-Save all (salviamo tutte le modifiche in tutti i files aperti, sorgenti .cpp e
anche files di progetto
13. MEnu File-Exit e siamo usciti da Visual C++ , possiamo andare a fare altro

== [1] Il mio primo programma che fa... NIENTE!! ahaha ==

di solito si inizia con un bel "ciao mondo" ma preferisco con questo perché cosi semplifico
al massimo il primo programma che farete.
Allora, segui le istruzioni per creare un nuovo progetto, invece di Test1 chiamiamolo
"faccioNiente"

Quando siamo arrivati al punto che stiamo editando il file main.cpp dovremo scrivere questo:



    C++ Programming
  1. void main()
  2. {
  3. }





finito

Spieghiamolo un po'
I programmi in C sono composti da Funzioni e Variabili.
Le funzioni altro non sono che blocchi di codice che fa qualcosa che voi potete chiamare da
varie parti del programma ogni volta che ne avete bisogno. Ad esempio RadiceQuadrata
potrebbe essere una funzione, a cui voi passate un numero e lei vi ritorna appunto la radice
quadrata di quel numero, facile no.
Normalmente in C potete dare alla funzioni il nome che preferite (purchè non ne esista già
un'altra con lo stesso nome) però "main" è un'eccezione.
"main" è il nome della funzione DA CUI PARTONO TUTTI I PROGRAMMI C
Ovvero, se abbiamo un programma con 10 funzioni, quando lo eseguite, come fa a sapere quale
deve chiamare per prima? con che ordine eseguirle?
Semplice, PRIMA CHIAMA main , poi qui dentro ci saranno le chiamate a tutte le altre
funzioni.

NOTA: il C è case-sensitive, vuol dire che main e Main sono due cose diverse!!
cosi come una variabile pippo e una PIPPO sono 2 variabili diverse!
quindi occhio alle maiuscole.

E le parentesi graffe?
Servono a delimitare un BLOCCO DI CODICE, ovvero quando aprite la graffa state iniziando un
blocco di codice, quando la chiudete state terminando un blocco di codice.
NEl caso della funzione main abbiamo aperto e chiuso per dire "qui inizia e qui finisce la
funzione main"

E "void" che cavolo è?
semplice, prima del nome della funzione ci si mette il "tipo" di valore che viene tornato
dalla funzione stessa alla fine della sua esecuzione.
Tutte le funzioni infatti dovrebbeeo tornarnarci un valore dopo che sono state eseguite no?
come RadiceQuadrata che ci doveva tornare appunto la radice quadrata.
Beh, che succede se vogliamo fare una funzione che NON TORNA NIENTE? ovvero che fa delle
operazioni, ad esempio visualizzare una scritta, ma non tornare nulla?
appunto, ci mettiamo "void"

quindi

void main()

va letta cosi:

"main" è una funzione che non accetta nessun parametro (parentesi vuote) e che non torna niente (il void davanti)


Ora dobbiamo convertire il nostro sorgente in codice macchina in modo che possa essere
eseguito, come? con l'operazione di "compilazione" con la quale appunto Visual C++ converte
le nostre istruzioni C in istruzioni macchina che il PC capisce e può eseguire.

quindi:

Menu "Build" - "Build solution"

se tutto è andato bene nella finestra di output esce una cosa tipo:

1>------ Build started: Project: CiaoMondo, Configuration: Debug Win32 ------
1>Compiling...
1>main.cpp
1>Linking...
1>Embedding manifest...
1>Build log was saved at "file://e:\sviluppo\vc\faccioNiente\Debug\BuildLog.htm"
1>faccioNiente - 0 error(s), 0 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========


Quello che ci interessa di tutto ciò è quella scritta "Build: 1 succeeded"
vuol dire che è tutto ok e la compilazione è riuscita.

Bene, vogliamo eseguirlo? MEnu "Debug" "Start debugging"
Che succede? si apre una finestra nera (console) e si chiude... perché?
perché il programma non fa nulla! quindi parte, e termina. Bello eh?

Se vi interessa, avete creato il vostro primo eseguibile .exe
Andate a eseguirlo da windows, aprite la cartella (se avete fatto come nella guida) :
c:\sviluppo\vc\faccioNiente\Debug\

ci troverete un "faccioNiente.exe", fate doppio click e vedrete che farà la stessa cosa,
apre schermata nera e la chiude
Ottimo! siete riusciti a creare il primo programma inutile!

== [2] Il mio secondo programma che fa... scrive "ciao mondo" ==

Partite da capo, create un nuovo progetto e chiamatelo "CiaoMondo"

Quando siete all'editor scrivete:



    C++ Programming
  1. #include <stdio.h>
  2. #include <conio.h>
  3. void main()
  4. {
  5. printf("Ciao Mondo!");
  6. }





lo stesso di prima no?
cosa abbiamo aggiunto?

Abbiamo aggiunto che nel blocco di codice che definisce la funzione main ora stiamo facendo

qualcosa, stiamo chiamando un'altra funzione che si chiama "printf"
Cosa fa? fa che visualizza nella console la stringa (testo) che gli passiamo.
Quindi siccome gli stiamo passando la stringa "Ciao Mondo", l'effetto sarà che a video

comparirà la scritta "Ciao Mondo!" chiaro no?

Ora fate il Build e poi Run come prima.
Che succede? si apre la schermata e si chiude... oops non abbiamo visto niente.
Il problema è che è troppo veloce e poi si chiude.
Dobbiamo fermarlo in qualche modo, come?
Ci mettiamo un'altra funzione, che ferma l'esecuzione finchè non premiamo un tasto:



    C++ Programming
  1. #include <stdio.h>
  2. #include <conio.h>
  3. void main()
  4. {
  5. printf("Ciao Mondo!\n");
  6. int ch = getch();
  7. }






Build e poi Run

ok! ora si che ci siamo, compare "ciao mondo! " e poi si ferma
Se premiamo Invio prosegue e chiude finestra e applicazione.

Non preoccupiamoci per ora di getch che ci serviva solo per fermare l'esecuzione.

Visto ? il nostro programma ha fatto qualcosa, ha scritto a video !

Però ci manca di spiegare qualcosa qui...

Che cavolo sono quei #include ?

Bene, il C++ non si inventa quasi niente, siccome "printf" non è un costrutto del linguaggio
C++ ma è una funzione di utilità comune che è stata creata per aiutare il programmatore,
bisogna dire al compilatore DOVE ANDARE A PRENDERE quella funzione.
Se no il compilatore non la conosce e non sa come compilarla.
Bene,

#include <nomefile.h>

fa questo, dice al compilatore, in questo punto (dove c'è l'include) INSERISCI il file
"nomefile.h" e compilalo insieme a tutto il resto del codice scritto dal programmatore.
E siccome in stdio.h guarda caso ci sta il printf ecco che compila anche la funzione printf.

PEr "conio.h" vale lo stesso, è un altro file "include" (si chiamano cosi) che conterrà
altre funzioni utili (nel nostro caso l'ho messo per il getch)

Fate una prova, cancellate la riga #include <stdio.h> e rifate il Build e vedete cosa
succede.

Notate le estensioni:

.cpp <-- codice C++
.h <-- file "header" ovvero file include

Spero si capisca qualcosa
Va bene per oggi direi che può bastare, alla prossima

Digger



digger
13/03/2011, 0:37
#1
Cerca

ZioPaperino VIP
Messaggi: 2,350
Discussioni: 667
Registrato: 03-2011
Mix: 0
Iniziamo bene =D

13/03/2011, 0:39
#2
Cerca

Iscritto
Messaggi: 118
Discussioni: 18
Registrato: 06-2012
Mix: 0
Hai una versione di visula c++ 2008? non riesco a trovarlo o magari se indichi anche per devil c++ xD

15/10/2013, 15:18
#3
Cerca

1 Life, 1 Avatar &lt;3
Messaggi: 9,074
Discussioni: 271
Registrato: 08-2011
Mix: 0
Ma il compilatore e gratis... O sbaglio ? O.o

15/10/2013, 21:24
#4
Cerca

Iscritto
Messaggi: 118
Discussioni: 18
Registrato: 06-2012
Mix: 0
Si, ma la versione del 2008 non c'è più

15/10/2013, 21:30
#5
Cerca
(Questo messaggio è stato modificato l'ultima volta il: 15/10/2013, 22:38 da digger.)

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
Premesso che se scarichi e usi anche l'ultima versione di Visual C++ va bene uguale, io continuo ad usare il 2008 solo perchè mi ci trovo molto bene e delle nuove versioni non mi sono piaciute alcune cose, e per l'uso che ne faccio io mi trovo bene cosi... arriviamo al download di Visual C++ 2008... se cerchi in google "visual c++ 2008 express download iso" il primo link che mi esce è proprio il download di VC++ express 2008, non garantisco perchè non l'ho provato, ma mi pare buono


digger
15/10/2013, 22:37
#6
Cerca

1 Life, 1 Avatar &lt;3
Messaggi: 9,074
Discussioni: 271
Registrato: 08-2011
Mix: 0
Puoi stare tranquillo la guida funziona anche per le versioni successive (io non ho il 2008 e ha funzionato comunque proprio tranquillamente Wink )

16/10/2013, 18:46
#7
Cerca

Iscritto
Messaggi: 118
Discussioni: 18
Registrato: 06-2012
Mix: 0
Appena ho del tempo cerco con calma, io ho usato dev c perché all'uni il professore ci ha dato questo perchè è freeware" ed è possibile lavorar su c e su c++ (penso valga lo stesso con visual c++ xD)

comunque le versioni successive al 2008 sono brutte e confusionarie esteticamente (dal punto di vista del menù)

16/10/2013, 21:20
#8
Cerca

1 Life, 1 Avatar &lt;3
Messaggi: 9,074
Discussioni: 271
Registrato: 08-2011
Mix: 0
Se lo dici tu... io mi sono trovato normalmente, sono quasi uguali

16/10/2013, 21:46
#9
Cerca

Il criceto mannaro
Messaggi: 3,536
Discussioni: 201
Registrato: 03-2011
Mix: 3,737
quello che a me non è piaciuto del 2010 è che era piu lento a compilare, lo stesso progetto (una hack di warrock dei tempi che furono) in vs2008 ci metteva pochi secondi a compilare, mentre su vs2010 ci metteva minuti, mai capito perchè cosi l'ho mollato. Anche se dal punto di vista dell'aiuto alla scrittura era piu avanti il 2010 quindi per quello l'avrei tenuto.
Il 2012 invece non mi è piaciuto dal punto di vista grafico, tanto che non l'ho nemmeno provato, mi ha fatto cosi schifo che l'ho tolto subito e sono tornato al caro 2008


digger
16/10/2013, 21:59
#10
Cerca

1 Life, 1 Avatar &lt;3
Messaggi: 9,074
Discussioni: 271
Registrato: 08-2011
Mix: 0
Effettivamente io non ho provato il 2012. Ho il 2010 e ho notato che la compilazione è piuttosto lenta, ma mi accontento... Smile

16/10/2013, 22:13
#11
Cerca


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  [Guida] CE02 - Cheat Engine - Creiamo un Trainer (.exe) digger 5 3,971 05/09/2012, 0:30
Ultimo messaggio: Pocciox
  progetto mio hack warrock!!! Pocciox 24 6,516 02/02/2012, 15:16
Ultimo messaggio: Pocciox
  [PROGETTO] Lista hack sempre aggiornate! ZioPaperino 22 7,220 26/03/2011, 17:07
Ultimo messaggio: frenky



Utenti che stanno guardando questa discussione: 1 Ospite(i)