Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming
Questo mouse ultraleggero, con soli 36 grammi di peso, è stato concepito per offrire un'esperienza di gioco di alto livello ai professionisti degli FPS, grazie al polling rate a 8.000 Hz e a un sensore ottico da 33.000 DPI. La recensione esplora ogni dettaglio di questo dispositivo di gioco, dalla sua agilità estrema alle specifiche tecniche che lo pongono un passo avanti
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni
Dal richiamo di Enrico Letta alla necessità di completare il mercato unico entro il 2028 alla visione di Nokia sul ruolo dell’IA e delle reti intelligenti, il Nokia Innovation Day 2025 ha intrecciato geopolitica e tecnologia, mostrando a Vimercate come la ricerca italiana contribuisca alle sfide globali delle telecomunicazioni
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza
OPPO Reno14 F 5G si propone come smartphone di fascia media con caratteristiche equilibrate. Il device monta processore Qualcomm Snapdragon 6 Gen 1, display AMOLED da 6,57 pollici a 120Hz, tripla fotocamera posteriore con sensore principale da 50MP e generosa batteria da 6000mAh con ricarica rapida a 45W. Si posiziona come alternativa accessibile nella gamma Reno14, proponendo un design curato e tutto quello che serve per un uso senza troppe preoccupazioni.
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
Città: TO
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, SCJP 5 (91%) - SCWCD 5 (94%)
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
Città: TO
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, SCJP 5 (91%) - SCWCD 5 (94%)
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
Città: TO
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, SCJP 5 (91%) - SCWCD 5 (94%)
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
Città: TO
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, SCJP 5 (91%) - SCWCD 5 (94%)
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


Un fulmine sulla scrivania, Corsair Sabre v2 Pro ridefinisce la velocità nel gaming Un fulmine sulla scrivania, Corsair Sabre v2 Pro...
Nokia Innovation Day 2025: l’Europa ha bisogno di campioni nelle telecomunicazioni Nokia Innovation Day 2025: l’Europa ha bisogno d...
Sottile, leggero e dall'autonomia WOW: OPPO Reno14 F conquista con stile e sostanza Sottile, leggero e dall'autonomia WOW: OPPO Reno...
Destiny Rising: quando un gioco mobile supera il gioco originale Destiny Rising: quando un gioco mobile supera il...
Plaud Note Pro convince per qualità e integrazione, ma l’abbonamento resta un ostacolo Plaud Note Pro convince per qualità e int...
Adesso ci si può laureare in stor...
Impact.com ridefinisce il performance ma...
Nintendo non considera le mod dannose pe...
Dreame inaugura il suo flagship store a ...
OpenAI e Jony Ive: in arrivo un disposit...
TikTok, secondo Trump l'accordo con Xi &...
HUAWEI, tutte le novità dell'even...
Mercedes GenH2 Truck sulle Alpi: oltre 1...
Shadow Leak: ecco come ChatGPT poteva es...
Google Gemini 2.5 batte quasi tutti gli ...
Battlefield 6: i giocatori console non p...
Iliad rinnova l'offerta mobile: tre pian...
HUAWEI Watch GT 6 ufficiale: design al t...
Reggie Townsend di SAS: l’etica dell’IA ...
Startup Marathon in vista del traguardo:...
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: 00:58.


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