Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Attenti a Poco F7: può essere il best buy del 2025. Recensione
Attenti a Poco F7: può essere il best buy del 2025. Recensione
Poco F7 5G, smartphone che punta molto sulle prestazioni grazie al processore Snapdragon 8s Gen 4 e a un display AMOLED da ben 6,83 pollici. La casa cinese mantiene la tradizione della serie F offrendo specifiche tecniche di alto livello a un prezzo competitivo, con una batteria generosissima da 6500 mAh e ricarica rapida a 90W che possono fare la differenza per gli utenti più esigenti.
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale
Abbiamo provato per molti giorni il nuovo Z Fold7 di Samsung, un prodotto davvero interessante e costruito nei minimi dettagli. Rispetto al predecessore, cambiano parecchie cose, facendo un salto generazionale importante. Sarà lui il pieghevole di riferimento? Ecco la nostra recensione completa.
The Edge of Fate è Destiny 2.5. E questo è un problema
The Edge of Fate è Destiny 2.5. E questo è un problema
Bungie riesce a costruire una delle campagne più coinvolgenti della serie e introduce cambiamenti profondi al sistema di gioco, tra nuove stat e tier dell’equipaggiamento. Ma con risorse limitate e scelte discutibili, il vero salto evolutivo resta solo un’occasione mancata
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: 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
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


Attenti a Poco F7: può essere il best buy del 2025. Recensione Attenti a Poco F7: può essere il best buy...
Recensione Samsung Galaxy Z Fold7: un grande salto generazionale Recensione Samsung Galaxy Z Fold7: un grande sal...
The Edge of Fate è Destiny 2.5. E questo è un problema The Edge of Fate è Destiny 2.5. E questo ...
Ryzen Threadripper 9980X e 9970X alla prova: AMD Zen 5 al massimo livello Ryzen Threadripper 9980X e 9970X alla prova: AMD...
Acer TravelMate P4 14: tanta sostanza per l'utente aziendale Acer TravelMate P4 14: tanta sostanza per l'uten...
TSMC produrrà a 2 nm anche in Ari...
Tesla vuole Musk a tutti i costi: propos...
Spotify aumenta i prezzi: da 10,99 a 11,...
Prezzi folli su AliExpress con Choice Da...
IA ed etica: Fastweb+Vodafone fra le pri...
Pannelli solari nuovi o riciclati? Quest...
Instagram cambia le regole per i Live: n...
Windows 11 SE addio: Microsoft stabilisc...
Kali Linux più facile su macOS gr...
È la fine per le antenne 5G? Al l...
WhatsApp, una taglia da 1 milione di dol...
Sembrava spacciato, poi una bici elettri...
Apple Watch Series 1 diventa obsoleto: a...
ho. Mobile, upgrade a 250 GB senza sovra...
Reddit non avrà post a pagamento,...
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: 04:16.


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