PDA

Visualizza versione completa : Sto imparando il C++ giusto?



Vash1986
02-08-2003, 17.42.15
Ho scaricato da internet un Manuale C++, intitolato così:

"C++, una panoramica sul linguaggio - Copyright 1996, Paolo Marotta"

Ad un certo punto sostiene che si possono dichiarare variabili globali, che non vengono limitate alla semplice funzione main()
(eh si per ora conosco solo questa :D )

esempio:
#include <iostream.h>
int a;
void main()
{cout<<::a<<endl;}

Infatti diceva che per riferirsi a variabili globali, bisogna premettere :: altrimenti non venivano riconosciute. Io uso il Visual C++ 6, e ho notato che anche omettendo i :: la variabile viene accettata. Allora mi sorge un dubbio: non è che sto studiando una vekkia versione del c++?
Se così fosse, dove trovo un manuale buono e completo che parli di tutte le novità introdotte col c++ 6? C'è qualcosa anche nella libreria msdn a proposito? Posso programmare anche per Linux in questa versione "nuova"?

Poi un'altra cosa... tutti i manuali che ho visto sono intitolati "panoramica sul c++", "introduzione al c++" o roba del genere. non ne ho mai visto uno che trattasse il C++ per intero. Quello che ho sottomano tratta i seguenti argomenti:

Introduzione 1
Elementi lessicali 3
Commenti 3
Identificatori 4
Parole riservate 4
Costanti letterali 5
Segni di punteggiatura e operatori 6
Espressioni e istruzioni 7
Assegnamento 7
Espressioni 8
Controllo del flusso 10
Dichiarazioni 14
Tipi primitivi 14
Variabili e costanti 15
Scope e lifetime 16
Costruire nuovi tipi 18
Array 18
Strutture 19
Unioni 21
Enumerazioni 22
La keyword typedef 23
Sottoprogrammi e funzioni 24
Dichiarazione e chiamata di una funzione 24
Passaggio di parametri e argomenti di default 26
La funzione main() 28
Funzioni inline 29
Overloading delle funzioni 30
Puntatori e reference 33
Puntatori 33
Operazioni sui puntatori 34
Puntatori vs Array 36
Uso dei puntatori 37
Reference 39
Uso dei reference 41
Puntatori vs Reference 41
Linkage e file Header 43
Linkage 43
File header 45
Librerie di funzioni 46
Programmazione a oggetti 49
Strutture e campi funzione 49
Sintassi della classe 50
Definizione delle funzioni membro 51
Costruttori 53
Distruttori 57
Membri static 59
Membri const 60
Costanti vere dentro le classi 61
Membri volatile 62
Dichiarazioni friend 62
Reimpiego di codice 64
Reimpiego per composizione 64
Costruttori per oggetti composti 66
Reimpiego di codice con l'ereditarietà 68
Accesso ai campi ereditati 69
Ereditarietà pubblica privata e protetta 70
Ereditarietà multipla 71
Classi base virtuali 73
Funzioni virtuali 77
Classi astratte 80
L'overloading degli operatori 82
Le prime regole 82
L'operatore di assegnamento 84
L'operatore di sottoscrizione 85
Operatori && e || 86
Smart pointer 86
L'operatore virgola 86
Autoincremento e autodecremento 87
New e delete 87
Conclusioni 88
Conversioni di tipo 89
Principi della programmazione orientata agli oggetti 92


Questo sembra bello completo, anche se credo che manchino molte cose... insomma, dove posso trovare un manuale che spieghi come creare e usare file DLL? Uno che mi spieghi come interagire col registro di windows, come spegnere il computer, o come creare un trainer? (cheat che manomette l'eseguibile di un gioco). E soprattutto... i manuali parlano del c++ come se fosse un linguaggio ms-dos, dove trovo un manuale che spieghi pure come usare il Visual c++?

Voi dove avete imparato? All'università? Lo insegnano bene? Insegnano proprio TUTTO quello che c'è da sapere?

X3N0M
02-08-2003, 23.55.02
ma hai idea di quante cose ci sono da imparare nel c++? penso sia quasi impossibile fare un megamanuale... l'MSDN penso che sia l'unico manuale che spiega tutto.:D

Knudson
03-08-2003, 01.38.58
le variabili globali sono assolutamente da evitare, vuoi per leggibilita', vuoi per ottimizzazione del codice, vuoi per "effetti collaterali", vuoi per mille altri motivi , il loro utilizzo in pratica e' nullo :)

edit: ah, il mio consiglio e' di impararti prima il C, e successivamente il C++ , altrimenti non capisci il perche' di come funzionano certe cose e a livelli un po' altini e' difficile andare solo perche' sai la sintassi a memoria :)

quegli argomenti sono grossomodo quelli di 3^ itis

Vash1986
03-08-2003, 02.47.01
ah beh progettavo di farvi questa domanda, cioè se era meglio imparare prima il C
cos'è questo itis? una specie di graduatoria di studi sulla programmazione?

ma rimane ancora senza risposta una domanda principale: esistono varie versioni del c++? ci sono novità importanti ke devo sapere riguardo al c++ 6?

Knudson
03-08-2003, 18.27.18
itis -> istituto tecnico industriale statale


allora il C e' stato scritto nel 1972 da Ritchie, e il C e' sempre rimasto quello (sintassi, ecc ecc) :)

le cose che cambiano sono i compilatori e i linker ecc ecc, in parole povere i programmi con cui scrivi in c/c++ (<- questa frase contiene imprecisioni ma giusto x dare l'idea)

io ad esempio ho imparato usando il Borland C++ 5.02, ma lo stesso codice sarebbe andato bene anche sul Turbo C tanto per dire :)

altra cosa, evita il visual c++ al momento. Prima di passare al visual e' meglio che ti impari il c/c++ "standard"

Vash1986
03-08-2003, 18.46.52
non ti preoccupare, nel visual c++ c'è l'opzione che ti permette di creare applicazioni console, senza tutta la roba di windows ;)

Knudson
03-08-2003, 20.48.54
Originally posted by Vash1986
non ti preoccupare, nel visual c++ c'è l'opzione che ti permette di creare applicazioni console, senza tutta la roba di windows ;)

credo che pero' dia dei problemi nel caso tu voglia cimentarti con le librerie BGI (2d) o altre librerie vecchie (tipo la standard input output (stdio.h) )

non so non mi ci sono mai cimentato col visual :p

follettomalefico
03-08-2003, 21.02.08
Per quanto riguarda le librerie, un progetto standard console senza MFC VC++ utilizza come header di default stdafx.h, che non è altro che un wrapper (include) stdio.h, più qualche costante windows.


I compilatori grossomodo si assomigliano tutti: nel senso che il VC++ per windows contiene enormi vantaggi come IDE e come strumenti di sviluppo in ambiente win32... ma a livello di sintassi, compilatore, linker e builder non differisce molto dal gcc di Linux.


Come consigliato, inizia da C. Il C++ è, detto essenzialmente e in modo impreciso, una sorta di C a oggetti. Quindi un gradino in più. Generalmente però i manuali iniziano sempre con il C, anche quelli di C++, se trattano un livello base :)


Nota: il manuale che stai usando è VERAMENTE vecchio a mia opinione. Usare stdin e stdout per leggere e scrivere output è una sintassi di libreria C veramente vecchia.

Solitamente si usa printf e scanf, di base. Quindi, almeno, cerca questo ;)

Per quanto riguarda MSDN: risponde a domande specifiche, molto esauriente ma non è un tutorial. E' come la differenza fra la grammatica e un dizionario. Un manuale è la grammatica. MSDN è il dizionario ;)



Come detto, comunque, il C++ è vastissimo. Il mio consiglio è pensare ad un applicativo da realizzare e cercare tutti i modi, tutorials e manuali per realizzarlo. Fatto questo, si prosegue per altre vie. Così si impara "in itinere" mantenendo una certa aderenza alla realtà e seguendo un filo logico "produttivo".



Per come la penso io, comunque, Visual Studio (Visual C++ 6 e .Net) è l'IDE più completa che esista.

Knudson
03-08-2003, 21.14.09
io continuo a consigliare anjuta per chi usa linux ;)

Vash1986
03-08-2003, 21.23.42
si foll, infatti io uso cout<< e cin>> (printf e scanf solo quando devo forzare le variabili con "%i" o "%f" ecc..)

cmq, quello che voglio fare io è imparare un sacco di linguaggi: html, c, c++, c#, java, j++, j#, algol, assembly, asp, php, vb, vb.net, javascript. Siccome sono davvero tanti, ho pensato che potesse essere davvero utile farmi le basi di ognuno prima ancora di cominciare gli studi seri (chissà, se anticipo molto magari potrò studiare anche il delphi, il python, l'uml, l'xml, sql ecc...)
per ora so solo il pascal e il visual basic, ma a livello molto elementare :D

Knudson
03-08-2003, 21.57.29
MAI mischiare cin con scanf e/o gets

cmq: il java e' MOLTO simile al C
sql e' una puttanata
assembler e' pesuccio, impararlo da solo lo vedo difficile (piu' per l'assenza di nozioni teoriche che altro)

il delphi e' il pascal a oggetti quindi non dovresti avere parecchi problemi (in teoria)

cmq il mio consiglio e' fissati su un solo linguaggio e imparalo bene...una volta imparato uno, gli altri sono una puttanata (visto che le basi teoriche sono identiche ed e' solo una questione di sintassi e grammatica)

Vash1986
03-08-2003, 22.16.59
già, e penso che imparare bene il c++ sia un'ottima cosa
dopo credo che mi dedicherò al java, visto che è simile al C e che è multiplatform (sono sicuro che windows non durerà ancora a lungo, s.o. di merda...), e infine mi dedicherò al visual basic .net che permette di creare applicazioni MOLTO MOLTO velocemente. infatti nell'azienda di questo mio amico sviluppano software per aziende su richiesta. prima lo fanno in visual basic, per poter presentare in fretta una specie di versione demo. se all'azienda piace il software, lo riprogrammano in c++

follettomalefico
04-08-2003, 00.15.33
Originally posted by Knudson
cmq il mio consiglio e' fissati su un solo linguaggio e imparalo bene...una volta imparato uno, gli altri sono una puttanata (visto che le basi teoriche sono identiche ed e' solo una questione di sintassi e grammatica) Quoto e sottoscrivo. Io il primo linguaggio che ho imparato seriamente è stato il VB. E poi, nonostante fosse un linguaggio non completissimo, passare al resto è stato una passeggiata (VB lo conosco piuttosto bene).


Originally posted by Vash1986
[...] (sono sicuro che windows non durerà ancora a lungo, s.o. di merda...) [...] Se ne sei convinto tu... io ti dico che dal mio punto di vista stai sbagliando e non di poco. Comunque non vorrei aprire una discussione simile qui. Quindi, tieni questo mio appunto come riflessione e basta, ok? :) Al più, altro forum o pm :)

Knudson
04-08-2003, 00.23.16
Originally posted by follettomalefico

Se ne sei convinto tu... io ti dico che dal mio punto di vista stai sbagliando e non di poco. Comunque non vorrei aprire una discussione simile qui. Quindi, tieni questo mio appunto come riflessione e basta, ok? :) Al più, altro forum o pm :)


mi permetto di far notare come il 99% degli "utonti" non conosca nemmeno l'esistenza di altri s/o ed essendo il s/o + diffuso al mondo e' destinato a restarci a lungo. Poi, imho, con .net la microzozz ha ampliato di parecchio le possibilita' di sfruttare la piattaforma windows

Vash1986
04-08-2003, 01.06.22
foll, ti dice niente "palladium"? se tutte le voci su di esso sono vere, allora sono sicurissimo che qualsiasi persona sana di mente comprerà un mac (infatti la protezione hardware non permetterebbe nemmeno l'installazione di linux)
cmq, basta qui :D

mi riporto in tema: con cosa mi consigli di cominciare allora? completo la mia preparazione vb6?

Knudson
04-08-2003, 01.16.20
e chi lo prendera' il palladium? :D

cmq se sai gia' un po' di VB procedi con quello, imparare un altro linguaggio conoscendone gia' 1 e' una puttanata

un consiglio: non sottovalutare la parte teorica (che e' la parte comune a TUTTI i linguaggi)

Vash1986
04-08-2003, 01.52.24
beh cakkio ma la parte pratica è molto + importante! se non programmi 2 orette al giorno per almeno 1 mese ti dimentichi tutta la sintassi in poche settimane
e cmq il c++ mi attira troppo... quello che si può fare con un ciclo for è incredibile, ci sono poi tanti operatori comodissimi per non parlare del risparmio di memoria o cpu grazie al fatto che nei cicli iterativi se la condizione è 0 viene considerata falsa. mi affascina questo linguaggio, è 100 volte superiore a quelli che ho visto fin'ora, e poi mi serve per alcune cose che devo fare (top secret, ma se volete darmi una mano ve lo dico :D )

follettomalefico
04-08-2003, 14.52.13
Come già detto, basta non comprare Palladium. E cmq, pare sarà disabilitabile. E cmq, è un problema HW non SW. Se ci fosse Palladium e fosse attivo, anche Linux dovrebbe usarlo per poter funzionare. Semplice :)
Mi sembra una motivazione un po' campata in aria per definire il declino M$ :)


Originally posted by Vash1986
beh cakkio ma la parte pratica è molto + importante! se non programmi 2 orette al giorno per almeno 1 mese ti dimentichi tutta la sintassi in poche settimane Uhm beh... la sintassi di un linguaggio la riprendo in mano in pochi minuti ormai... come vedrai quando inizi a programmare spesso su più linguaggi.
La teoria è importante, come ti dice lui, perchè è la parte comune ai linguaggi. La pratica invece è importante per fissare in mente i concetti.



Originally posted by Vash1986
e cmq il c++ mi attira troppo... quello che si può fare con un ciclo for è incredibile, ci sono poi tanti operatori comodissimi per non parlare del risparmio di memoria o cpu grazie al fatto che nei cicli iterativi se la condizione è 0 viene considerata falsa. I cicli for ci sono in ogni linguaggio, non è che differisca la cosa, sempre ciclo for è ;) ...risparmio di cpu e memoria per la condizione 0 = falsa? Lol ma questo esiste in praticamente tutti i linguaggi di programmazione! Anzi, ad essere precisi, C non ha neppure il tipo di dato Boolean come intrinseco nel linguaggio. Quindi è sempre e comunque 0 o !0 che definsice il tutto :)
...e non è ovviamente certo questo che definisce il vantaggio prestazionale di C ;)


Originally posted by Vash1986
mi affascina questo linguaggio, è 100 volte superiore a quelli che ho visto fin'ora, e poi mi serve per alcune cose che devo fare (top secret, ma se volete darmi una mano ve lo dico :D ) Uhm beh... 100 volte superiore... ancora la solita storia? LOL mi pare di averla affermata e ripetuta più e più volte: non c'è un linguaggio in assoluto migliore (anche perchè altrimenti sarebbe l'unico esitente e gli altri abbandonati) bensì c'è un linguaggio migliore in un determinato contesto.

E per il discorso top secret, se vuoi dillo, altrimenti è inutile pure che lo citi :)

Vash1986
04-08-2003, 15.06.46
Originally posted by follettomalefico

1- Uhm beh... la sintassi di un linguaggio la riprendo in mano in pochi minuti ormai... come vedrai quando inizi a programmare spesso su più linguaggi.

2- I cicli for ci sono in ogni linguaggio, non è che differisca la cosa, sempre ciclo for è ;) ...risparmio di cpu e memoria per la condizione 0 = falsa? Lol ma questo esiste in praticamente tutti i linguaggi

3- E per il discorso top secret, se vuoi dillo, altrimenti è inutile pure che lo citi :)

1- se stai per i fatti tuoi si... ma metti di essere in ufficio, che figura ci fai a portarti il manuale c++ o java per rivedere le cose che hai dimenticato? :D

2- maddai... prendiamo quello del pascal. non può fare altro che incrementare o decrementare. invece nel c++ puoi non solo inizializzare variabili, esprimere una condizione, ma anche scegliere una qualsiasi operazione da eseguire a ogni iterazione!

pascal:
for a=1 to b do ecc...

questo ti permette solo di incrementare da 1 al valore di b e fare le operazioni che seguono il do

c++
for (a=1; a<=b; a*=10) {ecc...

questo non è forse molto + comodo?

3- visto che conosci ut2k3, dovresti conoscere ogc. voglio essere in grado di modificare il suo codice sorgente per renderlo irriconoscibile e per aggiungere qualke invenzione mia :D

Vash1986
04-08-2003, 15.09.00
ah a proposito di ciclo for, com'è la sintassi per omettere uno dei 3 contenuti delle parentesi tonde?
ad esempio se faccio:
for (a=b) {ecc...
come fa il compiler a capire che a=b non è l'inizializzazione ma la condizione?

Knudson
04-08-2003, 16.48.51
se fai a = b;

ad a assegni b

se fai a == b gli dici "se a e' uguale a b"

tipo

if(a==b)
{
//
}
else
{
//
}

stesso discorso per il for

for(/*inizializzazione var*/;/*condizione*/;/*incremento*/)
{
//
}

del tipo

for(i=0;i<num_elem;i++)
{
//
}


quindi se fai

if(a=b)
{

}


non fai altro che assegnare b ad a e poi looperai


il c e il c++ sono solo piu' sintetici come grammatica :)

ah, a livello PROFESSIONALE i manuali li DEVI usare...non quelli cartacei ma di sicuro quelli on line, non puoi ricordarti a memoria 10.000 funzioni di 1000 librerie diverse :)

ovvio che le cose base te le devi ricordare, ma sono solo i concetti :

* cos'e' un puntatore
* cos'e' un vettore
* cos'e' una matrice
* cos'e' un file

ecc

quindi, prima la teora e POI la pratica :p

edit: per rispondere alla tua domanda:

for(;a==b; )
{
//
}

ma e' completamente inutile :doubt:

follettomalefico
04-08-2003, 17.03.12
1. un manuale (o MSDN o help on line) non si usano per ricordarsi la sintassi, la logica e la struttura, ma per ricordarsi le chiamate da effettuare e simili.
Perchè se tu dovessi ricordarti le prime cose... allora significa che del linguaggio non conosci proprio nulla :)



2. A quanto vedo, conosci poco anche la sintassi Pascal. perchè, sebbene sia vero quel che dici:
(a) pascal possiede la possibilità di incrementare e decrementare a passi specificati, usando la sintassi for a = 1 to b step 5 (circa, non scrivo pascal da secoli).
(b) i cicli for di c possono diventare complessi, vero.
(c) la stragrande maggioranza di algoritmi utilizza cicli for semplici
(d) i cicli si tende a farli il più lineari possibile, per questioni di leggibilità. Così, ad esempio, è meglio fare due for annidati che un unico for a due variabili.



3. non so che sia OGC :)



4. ti ha risposto esaurientemente Knudson :foll:

Vash1986
04-08-2003, 18.42.16
Originally posted by follettomalefico


2. A quanto vedo, conosci poco anche la sintassi Pascal. perchè, sebbene sia vero quel che dici:
(a) pascal possiede la possibilità di incrementare e decrementare a passi specificati, usando la sintassi for a = 1 to b step 5 (circa, non scrivo pascal da secoli).

3. non so che sia OGC :)

4. ti ha risposto esaurientemente Knudson :foll:

2- ma io dicevo infatti che col c++ si può anke fare un'operazione diversa dal semplice incrementare e decrementare.

3- è un bot, una specie di automira

4- grazie knudson :D

Vash1986
04-08-2003, 19.15.13
//******************************
//*Programma: "RICORDATI DI ME"*
//*-----(e dei miei amici)-----*
//******************************

/*Scopo di questo programma è fare in modo che al primo avvio ti chieda di inserire i dati
tuoi e dei tuoi amici. Dal secondo riavvio a seguire ti permetterà di reinserire i dati
oppure leggere quelli esistenti*/

#include <iostream.h>
#include <process.h>
main()
{
//Qui manca la parte che controlla se è il primo avvio perchè ancora non so come salvare files
int numero;
struct Persona{char Nome[50];char Cognome[50];unsigned short Eta;};
//Ovviamente per ora permetto solo di inserire, e non modificare dati
cout<<"Questo programma ti permette di inserire i tuoi dati e quelli dei tuoi amici\n";
cout<<"Quanti amici vuoi inserire? (vacci piano, non troppi, massimo 3 dai)\n";
cin>>numero;
if (numero>3) return(0) else ++numero;
Persona P1, Amici[3];int n=0;
while (n<numero)
{
switch (n)
{
case 0:
cout<<"Bene, ora inserisci i tuoi dati...\n";
cout<<"Nome: ";
cin>>P1.Nome;
cout<<endl<<"Cognome: ";
cin>>P1.Cognome;
cout<<endl<<"Eta': ";
cin>>P1.Eta;
cout<<endl<<endl; ++n;
break;
default:
cout<<"Inserisci i dati del tuo amico numero "<<n<<"...";
cout<<"Nome: ";
cin>>Amici[0].Nome;
}
}
//incompleto
}
//Scopo del programma: imparare l'utilizzo delle strutture per creare nuovi tipi, e farne Array
//Progetti per il futuro: Array (quindi amici) illimitati - Layout grafico



Ecco il problema: esiste un numero per improvvisare sul momento la grandezza di un array?
Per ora ho limitato gli amici a 3, quindi mi basta dichiarare Persona Amici[3];
ma se volessi far decidere all'utente un numero maggiore a tre, come dovrei fare? ho provato a dichiararla come Amici[numero] ma non funziona (numero è la variabile per il numero di amici)
e poi ovviamente dovrei poter fare lo stesso nel ciclo while, quando vado ad assegnare cin>>Amici[n].Nome (con n che incrementa ad ogni iterazione)
forse mi sto spingendo troppo oltre? (vedi indice, sono arrivato a pagina 20)

follettomalefico
04-08-2003, 19.18.39
Si, sei un po' oltre. L'allocazione dinamica della memoria è una cosa un po' oltre... sei ancora a cin e cout... e vuoi già fare malloc? :)

Una cosa alla volta ;)

Ora come ora, al più usa array grossi in modo da avere spazio :)

Knudson
04-08-2003, 19.20.04
Originally posted by Vash1986
esiste un numero per improvvisare sul momento la grandezza di un array?


nel momento in cui dichiari un array il compilatore deve sapere a priori la dimensione dello stesso, questo perche' un array e' una struttura statica. per fare quello che dici te devi utilizzare un puntatore e tramite la new e la delete (o malloc e calloc) puoi dirgli di quanto farlo grande

Vash1986
04-08-2003, 19.25.43
Originally posted by Knudson
nel momento in cui dichiari un array il compilatore deve sapere a priori la dimensione dello stesso, questo perche' un array e' una struttura statica. per fare quello che dici te devi utilizzare un puntatore e tramite la new e la delete (o malloc e calloc) puoi dirgli di quanto farlo grande

ah k grazie i puntatori devo ancora studiarli ;)
ultima domanda di oggi, credo... a che cacchio servono le enumerazioni? cioè so a cosa servono, ma per cosa sono utili?

bejita
05-08-2003, 09.17.08
Originally posted by Vash1986

3- è un aimbot, una specie di automira


cheater!

Vash1986
05-08-2003, 11.53.36
Originally posted by bejita
cheater!

e chi ti dice che invece non ho intenzione di farlo a pagamento per un clan che ne ha bisogno? :D
nono ok sto skerzando, mi serve per fare il culetto a un mio amico a ut2k3. certo potrei farlo anke allenandomi ma se mi abituo troppo ut2k3 potrei peggiorare a quake3 che è il mio amore principale

follettomalefico
05-08-2003, 12.45.02
Posso dire "che tristezza"? :(

1. Anche se fosse a pagamento, sarebbe comunque cheating.
2. Non migliori in un gioco per timore di peggiorare in un altro? MA LOL! Che scusa ridicola! ...posso farti notare che SoL.f0r (classificatosi secondo a Euskal, tanto per dire) era un ex-quaker passato a UT2003?
3. Programmare una cosa del genere è un tantino una mazzata, per il livello a cui ti ritrovi. Se tutto va bene, ora che riuscirai a fare una cosa simile saremo già a UT2010 e Quake5 :D





Le enumerazioni? Uhm, qui rischio di fare confusione fra i linguaggi... cmq penso ti riferisca alle strutture dati che ti sono utili a livello mnemonico per settare dei parametri in modo immediato (testuale) piuttosto che numerico, più difficile da memorizzare.

Vash1986
05-08-2003, 13.01.48
Originally posted by follettomalefico
Posso dire "che tristezza"? :(

1. Anche se fosse a pagamento, sarebbe comunque cheating.
2. Non migliori in un gioco per timore di peggiorare in un altro? MA LOL! Che scusa ridicola! ...posso farti notare che SoL.f0r (classificatosi secondo a Euskal, tanto per dire) era un ex-quaker passato a UT2003?
3. Programmare una cosa del genere è un tantino una mazzata, per il livello a cui ti ritrovi. Se tutto va bene, ora che riuscirai a fare una cosa simile saremo già a UT2010 e Quake5 :D


Le enumerazioni? Uhm, qui rischio di fare confusione fra i linguaggi... cmq penso ti riferisca alle strutture dati che ti sono utili a livello mnemonico per settare dei parametri in modo immediato (testuale) piuttosto che numerico, più difficile da memorizzare.

1- già ma in quel caso il cheater non sarei io
2- infatti, ex quaker. non ha mica giocato ad entrambi, io non vojo passare a ut2k3
3- purtroppo lo so...

no le enumerazioni sono qualcosa di simile ad una struttura. cioè crei un nuovo tipo, però non specifichi da cosa è composto, ma i valori che può assumere.

enum Metallo {bronzo,acciaio,ferro}

ma non capisco assolutamente l'utilità

follettomalefico
05-08-2003, 14.31.16
1. Enum: allora avevo capito bene, la spiegazione te l'ho data :)

2. a dire il vero f0r gioca ancora entrambi... :rolleyes:

Knudson
05-08-2003, 15.03.39
ah e' l'enum e' a mio avviso praticamente inutile

un uso lo trovi facendo


enum bool {false,true};


cosi' hai false -> 0 e true -> 1

questo infatti viene usato in C puro (in C non c'e' ilt ipo bool, in c++ e' stato aggiunto ma e' copmletamente inutile)

Vash1986
05-08-2003, 19.14.40
grazie, proseguo i miei studi :D

Knudson
05-08-2003, 21.08.31
Originally posted by Vash1986
grazie, proseguo i miei studi :D

buon divertimento :D

bejita
06-08-2003, 23.41.12
Originally posted by Vash1986
grazie, proseguo i miei studi :D

citer!!

Vash1986
06-08-2003, 23.43.29
Originally posted by bejita
citer!!

Canzone dedicata a bejita (http://www.mrb.it/bravo.swf)

Black Dog
07-08-2003, 00.39.23
Originally posted by follettomalefico
Come consigliato, inizia da C. Il C++ è, detto essenzialmente e in modo impreciso, una sorta di C a oggetti. Quindi un gradino in più. Generalmente però i manuali iniziano sempre con il C, anche quelli di C++, se trattano un livello base :) io ho imparato il C++ x iniziare...e secondo me nn è impossibile,affatto,quando nn conosci x niente una cosa,nn è indispensabile partire dalla precedente.
poi...nn l'ho studiato cosi a fondo, ma arrivammo alle basi di oggetti(usando il turbo C cmq)

Black Dog
07-08-2003, 01.01.17
Originally posted by Knudson
questo infatti viene usato in C puro (in C non c'e' ilt ipo bool, in c++ e' stato aggiunto ma e' copmletamente inutile) questa è una gran cavolata secondo me...mi pare ke si risparmia memoria usando una var bool +ttosto ke un intero.. a me personalmente piaceva un sacco usare i bool
...
e secondo me giocare è come la programmaz...quando hai le basi... Q3 e UT2 nn sn poi cosi diversi, UT2 secondo me l'hanno fatto guardando molto a Q3...in fondo il trucco è sempre quello, quando hai il rocket luncher sparare sempre sui muri e pavimenti vicini al bersaglio ;)

Vash1986
07-08-2003, 01.27.05
beh questo xkè ut e q3 sono molto simili, ma non puoi fare un paragone tra counter strike e q3 ad esempio

Yoghi
07-08-2003, 11.46.21
Originally posted by Black Dog
...mi pare ke si risparmia memoria usando una var bool +ttosto ke un intero..

Esattissimo

1 bool pesa 1 byte
1 int pesa 4 bytes



Originally posted by :foll:
Come consigliato, inizia da C. Il C++ è, detto essenzialmente e in modo impreciso, una sorta di C a oggetti. Quindi un gradino in più

concordo al 100%


Originally posted by :foll:
cmq penso ti riferisca alle strutture dati che ti sono utili a livello mnemonico per settare dei parametri in modo immediato (testuale) piuttosto che numerico, più difficile da memorizzare


allora invece il tipo enum non è una struttura! ;) ma un'insieme di simboli dello stesso tipo(int o char nel c++ è come dire int!)

Es: enum stagione {primavera, estate, autunno,inverno};

vengono untili quando hai una situazione di conversione nome-numero intero non consecutiva!

Es: enum coin {penny=1,nickel=5,dime=10,quarter=25}

quindi comodo per rendere + chiaro il codice e + semplice le interrogazioni al cliente! (come dice giustamente il folletto)

inoltre in c# evoluzione di c++ ha assunto maggiore duttilità e maggior utilizzo! grazie all'uso del foreach sugli enum! ;)

follettomalefico
07-08-2003, 18.30.28
Originally posted by Black Dog
io ho imparato il C++ x iniziare...e secondo me nn è impossibile,affatto,quando nn conosci x niente una cosa,nn è indispensabile partire dalla precedente.
poi...nn l'ho studiato cosi a fondo, ma arrivammo alle basi di oggetti(usando il turbo C cmq) Se sei solo arrivato alle basi di oggetti, significa che hai studiato solo C (anche se magari su un compilatore C++) e che hai appena accennato C++ ;)

Insomma, hai detto anche tu la stessa cosa: inizia da C e poi passa a C++ :foll:




PS: foreach rox :D ...belli i tuoi quote Yoghi lol :D

Vash1986
07-08-2003, 18.56.02
Originally posted by follettomalefico
(anche se magari su un compilatore C++)

se è un turbo C che usavano allora ha davvero studiato solo il C e su un compilatore C ^_^

Black Dog
08-08-2003, 00.40.07
Originally posted by Vash1986
beh questo xkè ut e q3 sono molto simili, ma non puoi fare un paragone tra counter strike e q3 ad esempio infatti nn abbiamo menzionato CS :)

poi...se mi fanno comprare un libro "manuale del C++" deduco ke sto studiando C++... o no? :D
mica è colpa mia se C e C++ fino ad un certo punto son uguali :D

Vash1986
08-08-2003, 01.55.44
ho trovato su emule un manuale C, seguirò il vostro consiglio e ricomincerò da lì :D
grazie ciao

follettomalefico
10-08-2003, 23.51.13
Originally posted by Black Dog
poi...se mi fanno comprare un libro "manuale del C++" deduco ke sto studiando C++... o no? :D
mica è colpa mia se C e C++ fino ad un certo punto son uguali :D

hehehehe si verissimo ;)

Cmq se quel libro copriva una panoramica così ampia, penso sia stato un ottimo libro per iniziare, o sbaglio? :)

Black Dog
11-08-2003, 12.42.25
Originally posted by follettomalefico
Cmq se quel libro copriva una panoramica così ampia, penso sia stato un ottimo libro per iniziare, o sbaglio? :) nn era un mattonazzo, nn è un libro enorme, xò è scritto bene(pubbl dalla McGraw Hill) e sec me era xfetto x iniziare..nn l'ho studiato tutto,peccato ke nn l'abbiamo continuato(il C/C++) anke in 5^ e sopratt ke all'uni siamo passati al Java,avrei preferito.
Java è pieno di difetti e x costruire interfacce secondo me è patetico e macchinoso.

..e poi visto ke il prof di OS dava x preacquisita la conoscenza del C..un bel corso di quello al primo anno invece ke di Java no? :\

Vash1986
11-08-2003, 12.48.44
ma... insegnano la programmazione alle scuole superiori??

Black Dog
11-08-2003, 13.14.24
beh, in un Istituto Tecnico Industriale Statale specializzato in Informatica...se insegnassero altro nn saprei ke pensare.
ottima scuola l'ITIS,son contento d'averla fatta...anke se nn ero una cima, ma sec me limando 1 poco qlc materia e dando + spazio ad altre(o semplicemente cn prof ke motivano di +...)

Vash1986
11-08-2003, 14.08.37
eh ma kakkio io faccio lo scientifico... il massimo che studio è il pascal, come faccio poi quando arrivo all'uni?
vabè che a palermo non ce n'è specializzati in informatica -_-'

Black Dog
11-08-2003, 14.11.22
studi come fanno...nn tutti ma i volenterosi :D
cmq nel mio caso il problema nn è il C, sapendo il java sec me nn è diff passare al C, visto ke Java l'ha copiato...il problema è il linux, davano nel mio caso una conoscenza approfondita di linux x scontata...cosa ke nn capisco come abbiamo potuto concepirla

Vash1986
11-08-2003, 14.44.24
cioè io rischio di arrivare all'università e pretendono che io conosca linux e il C? :azz:

Black Dog
12-08-2003, 14.24.31
Originally posted by Vash1986
cioè io rischio di arrivare all'università e pretendono che io conosca linux e il C? :azz:

Mi pare di aver scritto in italiano...


Originally posted by Black Dog
nel mio caso una conoscenza approfondita di linux x scontata cosa ke nn capisco come abbiamo potuto concepirla

Vash1986
12-08-2003, 16.33.16
beh allora spero solo che nel mio caso non sarà così

Knudson
12-08-2003, 23.20.06
bhe all'itis di solito e':

3^ -> C
4^ -> C++ / linux / assembler8086 / eventuale java
5^ -> Database, Visual Basic



all'uni ricominciano tutto da zero (ce l'ha ripetuto + volte il prof) solo che non si sofferma molto , soprattutto sulle basi

Vash1986
12-08-2003, 23.50.18
Originally posted by Knudson
all'uni ricominciano tutto da zero (ce l'ha ripetuto + volte il prof) solo che non si sofferma molto , soprattutto sulle basi
ah meno male...
voi avete studiato all'uni? come sono in italia, buone? i miei genitori non si fidano, vojono mandarmi a studiare in germania o inghilterra

Black Dog
13-08-2003, 20.43.12
Originally posted by Knudson

3^- C++ (anke se da questo topic vien fuori ke ho fatto C) + Visual Basic
4^ - C++(v sopra) + un po di assembler + VB
5^ - VB + SQL qlcsina di ASP,ma giusto il minimo x creare qlc e veder funzionare il db

all'uni siamo ripartiti con Scheme(LISP)...e se avevo capito qlc di ricorsione, ora nn ne son + sicuro :mad: + Java partendo da if e cicli for e while...

BlackRaven
13-08-2003, 21.01.03
Originally posted by Black Dog

all'uni siamo ripartiti con Scheme(LISP)...e se avevo capito qlc di ricorsione, ora nn ne son + sicuro :mad: + Java partendo da if e cicli for e while...
Stai facendo (hai fatto?) ingegneria informatica o informatica sotto a mm.ff.nn.?

Knudson
13-08-2003, 22.21.53
io mi sono diplomato questo giugno :notooth:

e cmq non faro' uni mi sa, mi son rotto le palle di andare a sQola asd :D

Black Dog
15-08-2003, 02.22.27
Originally posted by BlackRaven
Stai facendo (hai fatto?) ingegneria informatica o informatica sotto a mm.ff.nn.? faccio Tecnologie Web e Multimediali a UD
cmq i corsi di programmazione li faccio con gli informatici di ss.mm.ff ... dammnit! :mad:

Vash1986
15-08-2003, 11.24.31
ragazzi ho trovato un manuale c con i contro-ca$$i!!
spiega pure come funzionano e come fare i drivers, cos'è il cmos e come interagire con esso e con il bios, e anke gestione di basso livello della memoria... questo è quello che chiamo un manuale completo :D
meno male che il c++ è retrocompatibile col C, eheheh (kakkio però devo pure imparare l'assembler :D )
azzarola 660 pagine :azz:

:angel2:


:D

Yoghi
15-08-2003, 14.24.23
Originally posted by Black Dog
....informatici di ss.mm.ff ...

cosa è ss.mm.ff :angel2:

Knudson
15-08-2003, 14.56.23
Originally posted by Vash1986
ragazzi ho trovato un manuale c con i contro-ca$$i!!
spiega pure come funzionano e come fare i drivers, cos'è il cmos e come interagire con esso e con il bios, e anke gestione di basso livello della memoria... questo è quello che chiamo un manuale completo :D
meno male che il c++ è retrocompatibile col C, eheheh (kakkio però devo pure imparare l'assembler :D )
azzarola 660 pagine :azz:

:angel2:


:D

non e' che e' retrocompatibile, il C e' un sottoinsieme del C++ , e' come dire che il C++ e' retrocompatibile con se stesso :D

cmq prima impara il C, POI l'assembler sennò non ce ne vieni in fuori :)

Vash1986
15-08-2003, 15.28.05
no l'assembler devo studiarlo quando finisco la parte "da dilettante" del C. per passare a quella avanzata devo saperlo per forza :D
poi mi do al c++ e poi al visual c++, evviva :D

BlackRaven
16-08-2003, 10.40.39
Originally posted by Yoghi
cosa è ss.mm.ff :angel2:
Mi sono un pò sbagliato: è scienze mm.ff.nn. ovvero scienze matematiche, fisiche e naturali.

follettomalefico
18-08-2003, 11.23.17
Originally posted by Vash1986
no l'assembler devo studiarlo quando finisco la parte "da dilettante" del C. per passare a quella avanzata devo saperlo per forza :D
poi mi do al c++ e poi al visual c++, evviva :D

...devi saperlo per forza? E questo chi te l'ha detto? :D


Comunque buon percorso... anche se mi pare che tu stia pianificando un po' troppo per uno che è fermo da qualche settimana ai printf :foll: ;)




...BlackDog? BlackRaven? :doubt:

Vash1986
18-08-2003, 14.29.35
Originally posted by follettomalefico
Comunque buon percorso... anche se mi pare che tu stia pianificando un po' troppo per uno che è fermo da qualche settimana ai printf :foll: ;)


ho ancora 2 anni prima dell'università :niente!:

Knudson
18-08-2003, 15.11.47
Originally posted by Vash1986
ho ancora 2 anni prima dell'università :niente!:

passeranno molto in fretta ;)

Black Dog
18-08-2003, 19.59.08
Originally posted by follettomalefico
...BlackDog? BlackRaven? :doubt: nn siamo la stessa xsona, lui ha fatto un errore di battitura e io gli sn andato dietro...quante storie x il nome di facolta!(o quel ke l'è) :D

follettomalefico
18-08-2003, 22.18.33
Originally posted by Vash1986
ho ancora 2 anni prima dell'università :niente!: Ehm... mi spieghi il nesso? :D Che c'entra l'uni con quello che stai imparando? :)

Vash1986
19-08-2003, 00.01.28
Originally posted by follettomalefico
Ehm... mi spieghi il nesso? :D Che c'entra l'uni con quello che stai imparando? :)

ci sono 2 casi:

1- se facessi una qualsiasi università, credi che avrei tempo di studiare il c++? è già tanto se trovassi il tempo di dormire e mangiare

2- se facessi l'università informatica, studierei là il c++

follettomalefico
19-08-2003, 15.11.30
1. non vedo dove sia il problema...
2. e quindi?

Sto dicendo soltanto che se tu vuoi studiare qualcosa, l'università non c'entra nulla. Tu studi per te e impari per quel fine. Che c'entra se mancano due anni, o se poi lo studierai all'università?

Tu mi dici "ci sono ancora due anni", in senso positivo ("ben due anni")? Beh, ma due anni passano molto velocemente, quindi datti da fare.
Se è invece in senso negativo ("solo due anni"), che importa? Uno impara per quanto son le sue possibilità.

Quel che ti dicevo io è che è inutile pianificare tipo "ora C, poi C++, poi win32, quindi ASM, ah si poi un tocco di C#..." quando non hai praticamente ancora iniziato. Probabilmente quando avrai fatto buona parte di una di queste cose, sarai cambiato tu e avrai una prospettiva molto differente.

Quindi, ora hai il punto di partenza, C, vai! E non perdere tempo! ;)

Vash1986
19-08-2003, 16.00.16
mi sono rotto le scatole... trovo solo corsi incompleti, e per avere una buona visione del C devo unificari quello che trovo qui e là. sai che faccio? mi scrivo un corso tutto mio, con riassunto finale, così poi posso andarmelo a riguardare appena mi dimentico qualcosina :D

Knudson
19-08-2003, 16.25.22
se avessi uno scanner, tempo e vogli di scannerizzare, e una buona callifgrafia, ti scannerizzerei i miei 12 block notes di C e C++ di 3za e 4rta :notooth:

Vash1986
19-08-2003, 17.23.40
eheh, nah mi sto divertendo a scrivere il corso :D
poi metto online la prima parte ;)

yfede
19-08-2003, 17.28.45
Originally posted by Vash1986
mi sono rotto le scatole... trovo solo corsi incompleti, e per avere una buona visione del C devo unificari quello che trovo qui e là. sai che faccio? mi scrivo un corso tutto mio, con riassunto finale, così poi posso andarmelo a riguardare appena mi dimentico qualcosina :D

quanta buona volonta` :D
in ogni caso, piuttosto che sbattersi a scrivere tutto, che richiede un sacco di tempo, se e` solo il C che ti interessa, tutta la teoria, non posso non consigliarti "C, La Guida Completa", di Herbert Schildt, editore McGraw Hill. E` un bel librone che costa anche i suoi dindini, ma, di tutti i libri "a tema" che ho, quello e` quello che piu` si e` meritato il prezzo pagato.
se poi ti interessa anche il C++, esiste, dello stesso autore ed editore, anche "C++, La Guida Completa", ma bada bene di prenderne una edizione recente perche` le prime [di vari anni fa, forse neanche si trovano piu` in giro] erano ancora incomplete, essendo state scritte quando non esisteva una versione completa e standardizzata del linguaggio.
Una volta fatti tuoi questi due linguaggi secondo me hai gia` un bel panorama per quanto riguarda la programmazione procedurale e a oggetti. Secondo me dopo potresti trovare "sfizioso" mettere le mani sul perl, che e` un po' dell'uno e un po' dell'altro, ma una cosa a parte, si basa su una filosofia leggermente differente rispetto ai paradigmi comuni che trovi in molti linguaggi. buon lavoro ;)

edit: ah, beh, io ho parlato di C++ perche` e` a oggetti e mutua molta della sintassi dal C, pero` se per caso il Java ti piace di piu` (e anche lui della sintassi del C prende parecchio...) anche quello e` un linguaggio ad oggetti molto valido anche perche`, a differenza del C++, in Java non puoi fare a meno di usarli :D e` molto rigido come formalismo per certe cose, ma secondo me sono tutte limitazioni che contribuiscono a non incasinarsi nello sviluppo di programmi intricati...o meglio, sono regole che secondo me impediscono di incasinarsi^2 come puo` succedere col C++ (parere personale, eh...con questo non voglio offendere nessun programmatore C++ ne tantomeno dire che il C++ e` da evitare. Come il C, deve la sua potenza al maggior grado di liberta` che lascia a chi scrive, con i pro e i contro del caso, giusto?)

Vash1986
19-08-2003, 20.28.53
uh, interessante :D
c'era anke un altro libro ke intendevo prendere, l'autore del libro è l'autore stesso del C++ :D

TrustNoOne
11-09-2003, 17.11.48
sono anni e anni che voglio imparare discretamente il c++...
E ancora non ci riesco :|
Poi da quando sto all'uni iltempo e' nullo :|