|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
[C++] programma per iniziare...
che programma mi consigliate per iniziare a programmare in c++?
quando lessi il tutorial scaricai "microsoft visual studio express c++ edition" ma nn so che fine abbia fatto ![]() aspetto che mi illuminiate ![]() |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
I primi programmi che uno scrive, quando impara un linguaggio, sono piuttosto semplici e non necessitano di grandi strumenti: in questo modo puoi imparare la differenza fra i vari processi in fase di sviluppo, cosa che spesso negli editor integrati non si capisce bene. Ho conosciuto gente che non capiva che il compilatore e' (semplificando parecchio) un software che prende il tuo file di testo e produce un altro file, che e' comprensibile alla tua macchina. Questo e' il minimo che troverai su qualsiasi macchina, fosse un supercomputer o un micro a 4 bits. Dopo i primi programmi, quanto hai scaricato puo' andare benissimo. E' una delle tante scelte che si possono fare, piu' o meno equivalenti. Spero di non aver fatto la supposizione errata: hai scritto di voler iniziare a programmare in C, ma non hai scritto se sai programmare. Come ben saprai, sono cose ben distinte. High Flying Sottovento
__________________
In God we trust; all others bring data |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
preciso: voglio imparare a programmare in C++ ma non so attualmente programmare in C++
![]() cmq dove trovo un compilatore di linea? |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Non è il massimo come compilatore ma credo che ti possa andare bene.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
lho appena scaricato, grazie.
ora devo capire come funziona ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
sto leggendo un tutorial, ma non capisco una cosa:
perche assegnare una variabile a un puntatore per farci operazioni se le operazioni possono essere fatte direttamente sulla variabile? x esempio perche fare: Codice:
int numero = 5; int *pointer; *pointer = № int totale; totale = *pointer; Codice:
int numero = 5; int totale = numero; ![]() |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Aug 2003
Città: Biella
Messaggi: 692
|
magari è solo un esempio su come funzionano i puntatori..
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
oddio mi fa male la testa...
ho letto quasi tutta la lezione ma non ci sto capendo molto... questo è cio che ho imparato ![]() #include <emoticons.h> emo miafaccia = ![]() |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Codice:
#include <stdio.h> void funzione (int num) { num = 20; } int main (void) { int n=10; funzione (n); printf ("%d\n", n); // Stampa 10 return 0; } Codice:
#include <stdio.h> void funzione (int *num) { *num = 20; } int main (void) { int n=10; funzione (&n); printf ("%d\n", n); // Stampa 20 return 0; } Nel secondo codice la funzione riceve il numero per riferimento (e non per valore, non viene fatta una copia). Cioè riceve un puntatore con l'indirizzo della variabile 'n'. Questo vuol dire che dereferenziando il puntatore con *num, la funzione è in grado di modificare il valore di 'n' del main.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
grazie andbin, sei sempre molto chiaro
![]() 1 altra cosa: ma a che servono le classi? la lezione dice che sono usate per rappresentare gli oggetti nella realta... ma a quale scopo? cioe cosa ci si fa con questi oggetti? |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
grazie !!!
![]() dove posso trovare degli esercizi per verificare il livello di apprendimento? |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
il mio primo programma funzionante
![]() Codice:
#include <iostream> #include <string> using namespace std; float ft2inch(float ft);//Dic.della fun. che converte piedi in pollici float inch2cm(float inch);//Dic.della fun. che converte pollici in centimetri float cm2m(float cm);//Dic. della fun. che converte centimetri in metri int main() { float ft; float inch; float cm; float m; cout << "Inserisci una grandezza in piedi per convertirla in metri: "; cin >> ft; inch = ft2inch(ft); cm = inch2cm(inch); m = cm2m(cm); cout << ft << " piedi equivalgono a " << m << " metri"; } float ft2inch(float ft) { float inch; float factor = 12; inch = ft * factor; return inch; } float inch2cm(float inch) { float cm; float factor = 2.54; inch = cm * factor; return inch; } float cm2m(float cm) { float m; float factor = 100; m = cm * factor; return m; } ![]() |
![]() |
![]() |
![]() |
#16 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Ah, e metti un return 0; alla fine del main. ![]() E le conversioni non mi sembrano molto giuste ... i metri non sono cm/100 ???
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Mar 2006
Città: Bottegone (PT)
Messaggi: 978
|
Quote:
Giusto: Codice:
int numero = 5; int *pointer; pointer = № int totale; totale = *pointer;
__________________
TC FUCKKKKKKKKKKKKKKKKKKKKKK | Pronto per il prossimo raduno, Oh YEAHHHH
|
|
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Nov 2000
Città: MILANO
Messaggi: 2658
|
Una classe definisce un TIPO, come una typedef struct. la differenza è che la classe ti permette di definire tipi dai quali derivarne altri aggiungendo o ridefiniendo delle sue parti - meccanismo di ereditarietà -; ti permette, tramite puntatori il cosiddetto 'binding dinamico' cioè di assegnare a un puntatore a una classe padre, l'indirizzo di un oggetto della classe derivata, il che è molto utile anche se lo vedi solo programmando; in c++ hai anche l'ereditarietà multipla. in più, fondamentale, quando definisci la classe, esattamente come quando scrivi un header di una libreria in C, definisci un tipo di dati astratto e delle funzioni che accedono ad esso, solo che utilizzando le classi, le funzioni sono parte stessa di questa struttura e quando le chiami devi farlo proprio tramite un oggetto istanziato o indicando esplicitamente il nome della classe. tutta questa strutturazione permette in fase di progettazione ma anche di scrittura del codice di avere una visione molto più chiara delle cose e soprattutto impedisce meglio l'accesso diretto da fuori della libreria alla struttura dati che invece deve sempre essere fatto tramite le funzioni di interfaccia, in modo che qualora si cambi la struttura nella libreria, basti riscrivere la libreria e non tutto il programma.
es. typedef struct { int numerocartelle; ... } archivio; ho dichiarato una struttura di nome archivio che è un nuovo tipo di dati; int funzione1 (archivio * oggetto1) { }; ho dichiarato una funzione che accede alla struttura archivio; se hai dichiarato nel main o ovunque usi la libreria: archivio ogg1; int i; ... chiami la funzione come: i=funzione1(ogg1); con le classi la dichiarazione nell'header file diventa class archivio { int numero_cartelle; public: int funzione1 (); } nel file cpp definisci le funzioni: int archivio::funzione1() { return numero_cartelle; }; e infine nel main avrai: archivio* ogg1; int i; ogg1=new archivio(); i=archivio->funzione1(); la differenza fondamentale in questo esempio è che tu dall'esterno della classe non puoi accedere direttamente a numero_cartelle ma solo tramite la funzione1 che è una funzione di interfaccia. il che è pulito. invece nell'esempio in C tu puoi fregartene delle funzioni fatte per accedere alla struttura e accedere tu direttamente. cnque guarda che il C++ è un linguaggio MOLTO complesso e richiederebbe per padroneggiarlo studiare un po' di ing. del software dove impari i costrutti possibili in generale in programmazione e la loro realizzazione a basso livello, in modo poi da capire al volo il perchè di certe scelte di ciascun linguaggio. il libro migliore per me rimane il Lippman della Addison Wesley |
![]() |
![]() |
![]() |
#19 | ||
Senior Member
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
|
( x andbin )
Quote:
Codice:
int factor = 100 Codice:
cm * factor ( x scorpion89 ) Quote:
Ultima modifica di AngeL) : 13-06-2006 alle 08:09. |
||
![]() |
![]() |
![]() |
#20 | |
Senior Member
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
|
Quote:
cm * factor = 1000; 10 cm è uguale a 1000 metri ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:16.