Torna indietro   Hardware Upgrade Forum > Software > Programmazione

CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale
La prima tappa italiana della Road to CES porta a Milano i vertici della Consumer Technology Association, con una nuova griglia di lettura dei trend tecnologici e una posizione netta su dazi e regolamentazione dell'IA
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP
OPPO ha appena lanciato sul mercato la nuova serie Find X10, che ha come smartphone premium il Find X10 Pro Max, uno smartphone completo, che fa del comparto fotografico il suo vero punto di forza. Ma sono tante le novità, tra cui l'AI che adesso diventa agentica. Ma andiamo a vedere nel dettaglio questo nuovo smartphone.
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato
Abbiamo provato la beta di World of Warcraft: Forever, il Classic+ di Blizzard in arrivo il 4 novembre: la nuova razza Skyborne restituisce la sensazione di un gioco nuovo, ma le zone storiche conservano la noia divertita di Classic. Classi ribilanciate, sciamani anche nell'Alleanza e un motore grafico che in 4K gira bene anche su una RTX 3070. Cosa cambia in Forever? La risposta nell'articolo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-06-2006, 15:44   #1
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
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
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 16:17   #2
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da AngeL)
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
Forse il suggerimento non sara' condiviso dalla maggior parte degli utenti di questo forum, ma ti consiglio di partire con un semplice editor di testo ed un compilatore di linea.

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
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 16:23   #3
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
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?
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 16:49   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da AngeL)
cmq dove trovo un compilatore di linea?
C'è il Borland C++ 5.5. È a linea di comando (nessun IDE/editor) e trovi delle info su come scaricarlo/installarlo <qui>.
Non è il massimo come compilatore ma credo che ti possa andare bene.
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 17:04   #5
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
lho appena scaricato, grazie.
ora devo capire come funziona
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 19:08   #6
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
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 = &numero;
int totale;
totale = *pointer;
anziche fare:
Codice:
int numero = 5;
int totale = numero;
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 19:29   #7
manu@2986
Senior Member
 
L'Avatar di manu@2986
 
Iscritto dal: Aug 2003
Città: Biella
Messaggi: 692
magari è solo un esempio su come funzionano i puntatori..
manu@2986 è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 19:32   #8
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da AngeL)
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 = &numero;
int totale;
totale = *pointer;
anziche fare:
Codice:
int numero = 5;
int totale = numero;
questo permette (oltre a pratiche esoteriche usando l'artimetica degli operatori ), di passare le variabili per riferimento(cioè passi l'indirizzo della locazione di memoria dove è presenta il tuo dato) alle funzioni. In questa maniera non ne devi fare una copia.
thebol è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 20:03   #9
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
Quote:
Originariamente inviato da thebol
questo permette (oltre a pratiche esoteriche usando l'artimetica degli operatori ), di passare le variabili per riferimento(cioè passi l'indirizzo della locazione di memoria dove è presenta il tuo dato) alle funzioni. In questa maniera non ne devi fare una copia.
non ho capito proprio bene bene...
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 20:26   #10
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
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 =
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 20:34   #11
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da AngeL)
non ho capito proprio bene bene...
Ok ... esempio:
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 primo codice la funzione riceve il numero per valore. Viene cioè fatta una copia e quindi 'num' è una copia di 'n' del main. Questo vuol dire che qualunque modifica su 'num' nella funzione non altera il valore di 'n' del main.

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, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 20:45   #12
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
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?
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 21:08   #13
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da AngeL)
1 altra cosa: ma a che servono le classi?
Guarda ... <qui> ne parla sicuramente meglio di quanto potrei fare io.
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 21:20   #14
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
grazie !!!
dove posso trovare degli esercizi per verificare il livello di apprendimento?
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 21:59   #15
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
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;
}
che ne dite?
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 22:07   #16
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da AngeL)
che ne dite?
Ok ... prova adesso magari a chiedere in input quale conversione effettuare. Magari fallo looppare in modo che esca dal programma solo se richiesto.

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, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 12-06-2006, 22:30   #17
scorpion89
Senior Member
 
L'Avatar di scorpion89
 
Iscritto dal: Mar 2006
Città: Bottegone (PT)
Messaggi: 978
Quote:
Originariamente inviato da AngeL)
Codice:
int numero = 5;
int *pointer;
*pointer = &numero;
int totale;
totale = *pointer;
anziche fare:
Codice:
int numero = 5;
int totale = numero;
Scusate ma faccio notare ke questo codice è sbagliato!
Giusto:
Codice:
int numero = 5;
int *pointer;
pointer = &numero;
int totale;
totale = *pointer;
Ciao
__________________
[ Gentoo && Debian && OpenBSD ] Rulez
[irc.rizon.net #linux-world ] [ irc.pocoserio.net #poco-serio ]
TC FUCKKKKKKKKKKKKKKKKKKKKKK | Pronto per il prossimo raduno, Oh YEAHHHH
scorpion89 è offline   Rispondi citando il messaggio o parte di esso
Old 13-06-2006, 02:06   #18
Black imp
Senior Member
 
Iscritto dal: Nov 2000
Città: MILANO
Messaggi: 2662
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
Black imp è offline   Rispondi citando il messaggio o parte di esso
Old 13-06-2006, 08:03   #19
AngeL)
Senior Member
 
L'Avatar di AngeL)
 
Iscritto dal: May 2006
Città: Salerno
Messaggi: 936
( x andbin )
Quote:
Originariamente inviato da andbin
E le conversioni non mi sembrano molto giuste ... i metri non sono cm/100 ???
io ho fatto
Codice:
int factor = 100
quindi facendo
Codice:
cm * factor
ottengo i metri, no?
( x scorpion89 )
Quote:
Originariamente inviato da scorpion89
Scusate ma vi faccio notare che questo codice è sbagliato
Grazie per avermelo fatto notare, ma avevo premesso di non aver capito niente...

Ultima modifica di AngeL) : 13-06-2006 alle 08:09.
AngeL) è offline   Rispondi citando il messaggio o parte di esso
Old 13-06-2006, 08:05   #20
thebol
Senior Member
 
Iscritto dal: Dec 2000
Città: bologna
Messaggi: 1309
Quote:
Originariamente inviato da AngeL)
io ho fatto
Codice:
int factor = 100
quindi facendo
Codice:
cm * factor
ottengo i metri, no?
cm = 10

cm * factor = 1000;

10 cm è uguale a 1000 metri :P
thebol è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato WoW Forever provato: il MMORPG che la community ...
TCL P80 Ultra: con un display AMOLED opaco è una gioia per gli occhi e per le dita TCL P80 Ultra: con un display AMOLED opaco &egra...
HUAWEI MatePad Air recensione: OLED opaco e tastiera dedicata per lavorare meglio HUAWEI MatePad Air recensione: OLED opaco e tast...
Da 2 euro fino a 14,99 euro: ufficiali l...
Netflix metteva sul tavolo 500 milioni, ...
Kimi K3.1 Pro, Moonshot AI rilancia sui ...
Dove sono finite tutte le GeForce RTX 50...
Nintendo Switch 2 già violata gra...
OpenAI apre a tutti la sua IA che scegli...
Apple estende il Self Service Repair a i...
Linux, falle critiche del kernel pubblic...
Gli agenti AI diventano un incubo per le...
Fastweb e Vodafone verso il sistema unic...
70mai A800 Nano a 69,99€ su Amazon: dash...
Mini pacchi extra Ue, la tassa da 2 euro...
Metro 2033 Redux e Last Light Redux si a...
Silicio a 1.000 °C in un microonde: ...
Sigma FP2 senza mirino né slitta ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:37.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v