Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco
Deebot X11 Omnicyclone implementa tutte le ultime tecnologie Ecovacs per l'aspirazione dei pavimenti di casa e il loro lavaggio, con una novità: nella base di ricarica non c'è più il sacchetto di raccolta dello sporco, sostituito da un aspirapolvere ciclonico che accumula tutto in un contenitore rigido
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio
Grazie ad un mocio rotante che viene costantemente bagnato e pulito, Narwal Flow assicura un completo e capillare lavaggio dei pavimenti di casa. La logica di intellignza artificiale integrata guida nella pulizia tra i diversi locali, sfruttando un motore di aspirazione molto potente e un sistema basculante per la spazzola molto efficace sui tappeti di casa
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi
Con un prezzo di 2.999 euro, il Panasonic Z95BEG entra nella fascia ultra-premium dei TV OLED: pannello Primary RGB Tandem, sistema di raffreddamento ThermalFlow, audio Technics integrato e funzioni gaming avanzate lo pongono come un punto di riferimento
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


Ecovacs Deebot X11 Omnicyclone: niente più sacchetto per lo sporco Ecovacs Deebot X11 Omnicyclone: niente più...
Narwal Flow: con il mocio orizzontale lava i pavimenti al meglio Narwal Flow: con il mocio orizzontale lava i pav...
Panasonic 55Z95BEG cala gli assi: pannello Tandem e audio senza compromessi Panasonic 55Z95BEG cala gli assi: pannello Tande...
HONOR Magic V5: il pieghevole ultra sottile e completo! La recensione HONOR Magic V5: il pieghevole ultra sottile e co...
Recensione Google Pixel 10 Pro XL: uno zoom 100x assurdo sempre in tasca (e molto altro) Recensione Google Pixel 10 Pro XL: uno zoom 100x...
Primo collegamento laser aereo-satellite...
Nintendo non risparmia nessuno: condanna...
Nuove accuse per Meta: le ricerche sull'...
Lucid Gravity arriva in Europa: anche in...
Tra poco servirà una NVIDIA RTX 5...
Si aggiorna Windows 10: corretti 81 bug ...
Arrivano le eSIM per iliadbusiness, l'of...
iPhone 17 e 17 Pro senza SIM fisica: non...
Hollow Knight: Silksong, primo record sp...
Public VCF as-a-Service, il nuovo serviz...
GAC annuncia il suo ingresso in Europa: ...
Un rene di maiale potrebbe salvarti la v...
Batterie al litio in aereo, la FAA lanci...
HONOR Magic V5: un tablet a portata di s...
Se non rientrate nei requisiti, non aspe...
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: 12:57.


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