|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2007
Città: Zena
Messaggi: 1914
|
Linguaggio C
Ciao a tutti sono uno studente del primo anno di ingegneria e ho tra gli esami quello di informatica 1...il prof ci fa programmare con il linguaggio C usando visual studio! Sapete darmi delle dritte per imparare a programmare meglio possibile?? grazie
__________________
PC:CM690~Intel COREi7 920 cooled by BlackSun~Corsair HX620~ASUS P6T Deluxe OCPalm~GAINWARD GTX275 cooled by A.C.S.~CORSAIR Dominator 3Gb 1600Mhz~2 x WD 320Gb RE3 + WD Caviar 500Gb + WD MyBook 500Gb~BluRay SONY~Samsung 23" Rose Black~Joypad Xbox 360 wireless~MOBILE:MacBook Pro 2017~iPhone6S~REFLEX:Nikon D3100~CONSOLE: PS4~ |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 384
|
Per programmare serve il cervello e non è che ci siano molte dritte da dare... per scrivere buon codice ed evitare sbattimenti inutili invece:
inizializza SEMPRE le variabili specie quando le usi come indice o per navigare nella memoria allocata dinamicamente ( usa in maniera massiccia i commenti usa l''indentazione le solite cose insomma |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
).
|
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
Quote:
__________________
|
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Nel frattempo impara per conto tuo un linguaggio utile fra: - Java - C# - Python (urgh) - Ruby Parte di cio' che imparerai potra' essere riutilizzato durante l'esame di C.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
A parte che è un pezzo che i linguaggi me li studio da solo, ma la domanda sull'esame non l'ho fatta io... Il C sarà anche "di nicchia", ma vogliamo mettere il QuickBasic ? |
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Feb 2004
Messaggi: 1454
|
io ritengo che per un ingegnere informatico sia fondamentale avere buone conoscenze anche di linguaggi non di alto livello: lo scopo didattico del corso è quello di mostrarti TUTTO, da come sono fatti i transistor a come si sviluppa una web app, passando per la progettazione delle singole porte logiche e di reti di esse, per il funzionamento di un processore all'interno di un elaboratore e per la programmazione dello stesso in assembler. il C/C++ rappresenta un ottimo anello di congiunzione tra la macchina e l'algoritmo astratto.
con tali conoscenze gli sbocchi lavorativi non saranno ridotti al solo sviluppo di programmi utente o alla realizzazione di siti web, ma faranno parte di un grosso ventaglio di possibilità, come la scrittura di driver o di sistemi operativi, o la progettazione di controlli automatici. tornando al linguaggio dopo un po' di tempo ti accorgerai che ti sarai fatto un tuo "stile"; il metodo per rendersi conto se il proprio stile è più o meno corretto è rileggersi il proprio codice a distanza di tempo (settimane, mesi, anni...), se è difficile da interpretare chiediti cosa lo rende poco chiaro, ed in funzione di ciò cambia stile. quando avrai un po' più di padronanza del linguaggio cura l'efficienza di quanto scrivi e chiediti sempre se c'è un modo di ottimizzarlo chiaramente questi consigli saranno buoni anche quando ti dovrai avvicinare ad altri linguaggi più astratti e quindi, in certi casi, più produttivi. Ultima modifica di Furla : 16-03-2008 alle 17:41. |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Mar 2005
Città: Morimondo city
Messaggi: 5491
|
piu che altro il C non lo vedo adattissimo per un primo esame di informatica,io sarei più per java in quel senso,il C lo vedrei per per un esame di algoritmi,il fatto è che spesso la scelta dipende più dal background del docente che da scelte didattiche!
__________________
Khelidan |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Feb 2004
Messaggi: 1454
|
invece secondo me è molto più semplice e meno ambiguo di tanti altri linguaggi... l'unica cosa un po' complicata e l'I/O, infatti noi abbiamo cominciato con cin e cout e a circa metà corso (quando avevamo ormai acquisito le nozioni per capirlo) abbiamo visto come sono fatte "dentro".
|
|
|
|
|
|
#10 | ||
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 1792
|
Quote:
Quote:
|
||
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Feb 2004
Messaggi: 1454
|
personalmente tra i linguaggi procedurali oltre al c ho sperimentato solo il pascal, molto scomodo, pesante (odiavo begin-end ad ogni blocco, sia quando li dovevo scrivere che quando li dovevo leggere) e troppo rigido... comunque, tra i linguaggi di "non così alto" livello, suppongo che il C sia il migliore perché, dove si rendono necessari linguaggi di questo tipo, è il più usato (forse l'unico che sta ancora saldamente in piedi).
sì, noi usavamo un compilatore C++ ma scrivevamo codice C in tutto e per tutto, tranne che per l'I/O. poi nella seconda metà del corso abbiamo fatto le classi e la parte "non C" del C++ (chiamiamola OO...), per cui siamo potuti andati a spulciare il funzionamento degli iostream. printf e scanf generano troppa confusione in un principiante (in effetti sono tra le poche cose del c che non apprezzo particolarmente), quindi secondo me è una soluzione didatticamente valida. Ultima modifica di Furla : 16-03-2008 alle 20:18. |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Mar 2007
Città: Zena
Messaggi: 1914
|
Io faccio ingegneria biomedica e tra gli esami c'è anche informatica...stiamo facendo linguaggio C, ma il mio problema è passare dalla soluzione degli esercizi "matematicamente" al linguaggio C...non so se mi sono spiegato bene...
__________________
PC:CM690~Intel COREi7 920 cooled by BlackSun~Corsair HX620~ASUS P6T Deluxe OCPalm~GAINWARD GTX275 cooled by A.C.S.~CORSAIR Dominator 3Gb 1600Mhz~2 x WD 320Gb RE3 + WD Caviar 500Gb + WD MyBook 500Gb~BluRay SONY~Samsung 23" Rose Black~Joypad Xbox 360 wireless~MOBILE:MacBook Pro 2017~iPhone6S~REFLEX:Nikon D3100~CONSOLE: PS4~ |
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Quote:
In sostanza la risposta è: "dai la cera, togli la cera". Compra un libro per principianti con un sacco di esercizi e fanne più che puoi. Poi compra un libro di algoritmi e strutture dati e studia. Gli algoritmi sono l'ABC. Poi passa ad altri linguaggi con altri paradigmi (object oriented, funzionali, ecc) e ripeti. Fatto! Continua cosi per i prossimi 20 anni e programmerai discretamente bene.
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
|
|
|
|
|
#14 | |||
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Secondo: se vuoi IMPARARE a programmare, usa Python (qui http://www.python.it/doc/Howtothink/...l-it/index.htm un'ECCELLENTE guida). Quote:
![]() Obfuscated code is source code that is very hard to read and understand, often intentionally. Some languages are more prone to obfuscation than others. C, C++ and Perl are most often cited as easily obfuscatable languages. Macro preprocessors are often used to create hard-to-read code by masking the standard language syntax and grammar from the main body of code. Quote:
Quanto alla pesantezza nella scrittura di begin/end, ecc., penso tu soffra del famigerato "crampo dello scrivano"...
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys Ultima modifica di cdimauro : 17-03-2008 alle 09:10. |
|||
|
|
|
|
|
#15 | |
|
Senior Member
Iscritto dal: Feb 2004
Messaggi: 1454
|
Quote:
puoi fare programmi illeggibili con qualsiasi linguaggio, ma i confronti li devi fare tra programmi scritti bene. io penso che una sintassi troppo esplicita e ricca di keywords, come quella del pascal e di altri linguaggi, appesantisca inutilmente la lettura e la comprensione del codice (oltre ad essere faticosa da scrivere |
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Io ho un'opinione diversa: penso che il cervello faccia meno fatica a leggere keyword, come se stesse leggendo delle frasi (in inglese), piuttosto che un'accozzaglia di simboli a cui deve cercare di dare un significato.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#17 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Sono d'accordo con Cesare qui. Esempio tratto da Diamonds. Prima: Codice:
public void update(int crushCounter)
{
if (crushCounter >= 2 && crushCounter > this.crushCounter)
{
if (!isPulsing())
{
show();
startPulsation(new SinglePulsation(crushBoxPulsationLength, crushBoxSizeMultiplier));
}
this.crushCounter = crushCounter;
setTexture(getTexture(crushCounter));
}
if (!isHidden())
{
if (getPulsation() != null)
{
if (getPulsation().ended())
{
stopPulsation();
}
}
else if (!isOffScreen())
{
setPosition(getPosition().getX() + speed, getPosition().getY());
} else
{
hide();
this.crushCounter = 1;
}
}
}
Dopo il refactoring: Codice:
public void update(int newCrushCounter)
{
if (canUpdateCounter(newCrushCounter))
{
updateCounter(newCrushCounter);
}
if (isHidden())
{
return;
}
updatePosition();
updatePulsation();
}
Codice:
private void updatePosition()
{
if (isPulsing())
{
return;
}
if (isOffScreen())
{
hide();
resetCounter();
}
else
{
moveRight(speed);
}
}
Piccola nota: in tutto questo refactoring non ho mai lanciato il gioco, mai lanciato il debugger; ho solo lavorato attraverso i test. Mi infastidiscono un po' le graffe, ma per il resto si legge come se fosse inglese. Per il ragazzo che sta imparando a programmare: quando il tuo codice assomiglia al "dopo" e non piu' al "prima" sei sulla buona strada.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA Ultima modifica di fek : 17-03-2008 alle 18:51. |
|
|
|
|
|
|
#18 | |
|
Senior Member
Iscritto dal: Jan 2002
Città: Napoli
Messaggi: 1727
|
Quote:
Ovviamente non bisogna "fermarsi" al C. Il C è solo l'inizio, ma è il miglior modo per iniziare. Questa è la bibbia che ogni programmatore dovrebbe tenere sul comodino:
__________________
Se buttassimo in un cestino tutto ciò che in Italia non funziona cosa rimarrebbe? Il cestino. |
|
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Affermazione dimostrata falsa in lungo e in largo credo in almeno altri venti thread.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
#20 | |
|
Senior Member
Iscritto dal: Dec 2005
Messaggi: 1278
|
Quote:
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle! |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:18.












).









