View Full Version : C++ Progetto Esame Programmazione!
TechnoPhil
11-11-2005, 18:47
un amico che frequenta il corso di laurea di informatica mi ha chiesto se qualche esperto gli può dare delle dritte su come svolgere il seguente progetto diviso in parti, dato che di C++ non ne sa 1 mazza (come me :D )
parte 1 (http://spazioinwind.libero.it/technophil/01.txt)
parte 2 (http://spazioinwind.libero.it/technophil/02.txt)
ringrazie a chiunque possa aiutarmi!! :rolleyes:
un tuo amico, eh?
Beh, come si fa a darti...ehm dargli delle dritte se non ha neanche iniziato a scrivere qualcosa?
TechnoPhil
11-11-2005, 19:28
un tuo amico, eh?
Beh, come si fa a darti...ehm dargli delle dritte se non ha neanche iniziato a scrivere qualcosa?
hai ragione è quel che gli ho detto!!
secondo me cerca che qualcuno glielo faccia!! :D
anche io avrò quell'esame, è uno dei pochi che mi rimane indietro e x ora nn ho tempo di studiare il C++ (ne ho 1 marea di esami che manco t'immagini!!)
tu 6 in grado di fare qualcosa??
ti ringrazio comunque... :mc:
Inoltre per ogni variabile o costante dichiarata deve esistere un commento che ne descriva il ruolo all'interno del programma o della funzione; e devono essere presenti commenti all'interno del codice che descrivano le parti più salienti. N.B. I COMMENTI DEVONO ESSERE INSERITI COME DESCRITTO NEI PUNTI PRECEDENTI, LA MANCANZA DI TALE SPECIFICHE COMPORTA L'ANNULLAMENTO DELLA CONSEGNA!
AAAAAAAAAAAAAaaaaaaaaaaaaaaaaaaaaaarghhhhhhhhhhhhh!
Cristo Santo O__O (e non mi venite a dire che l'ho detto invano, chiunque abbia scritto quell'obbrobbrio dei commenti è un maledetto misogeno!!)
scherzi a parte TechnoPhil, non hai la possibilità di dare l'esame con un altro professore un attimino più assennato? quello è un idiota, si vede subito... e poi la tua richiesta non è che abbia molto senso, inutile che vieni qui a chiedere aiuto per il tuo progetto: cosa dovremmo fare noi, dobbiamo insegnarti il C++ o farti il progetto? se è la seconda te lo scordi (:Prrr: ), se è la prima ti cerchi un buon tutorial con Google, che ce ne stanno tanti (anche in italiano).
17Qwerty71
11-11-2005, 20:40
Cristo Santo O__O (e non mi venite a dire che l'ho detto invano, chiunque abbia scritto quell'obbrobbrio dei commenti è un maledetto misogeno!!)
scherzi a parte TechnoPhil, non hai la possibilità di dare l'esame con un altro professore un attimino più assennato? quello è un idiota, si vede subito... e poi la tua richiesta non è che abbia molto senso, inutile che vieni qui a chiedere aiuto per il tuo progetto: cosa dovremmo fare noi, dobbiamo insegnarti il C++ o farti il progetto? se è la seconda te lo scordi (:Prrr: ), se è la prima ti cerchi un buon tutorial con Google, che ce ne stanno tanti (anche in italiano).
Perchè non va bene commentare? :confused:
TechnoPhil
12-11-2005, 08:37
Cristo Santo O__O (e non mi venite a dire che l'ho detto invano, chiunque abbia scritto quell'obbrobbrio dei commenti è un maledetto misogeno!!)
scherzi a parte TechnoPhil, non hai la possibilità di dare l'esame con un altro professore un attimino più assennato? quello è un idiota, si vede subito... e poi la tua richiesta non è che abbia molto senso, inutile che vieni qui a chiedere aiuto per il tuo progetto: cosa dovremmo fare noi, dobbiamo insegnarti il C++ o farti il progetto? se è la seconda te lo scordi (:Prrr: ), se è la prima ti cerchi un buon tutorial con Google, che ce ne stanno tanti (anche in italiano).
1 attimo...
prima cosa non è il mio esame, ma semplicemente 1 amico che mi ha chiesto aiuto!!
io nn avendo ancora studiato il C++ non glielo so dare!!
qualche buona dritta che dici??
magari una scaletta oppure un procedimento logico spiegato bene su come procedere!!
tutto qua!!
altrimenti gli dirò che si arrangi, oppure che aspetti quando dovrò farlo io!!(il prox anno forse!! :sofico: )
end.is.forever
12-11-2005, 09:09
Cristo Santo O__O (e non mi venite a dire che l'ho detto invano, chiunque abbia scritto quell'obbrobbrio dei commenti è un maledetto misogeno!!)
"misogeno"??? Che vuol dire?
scherzi a parte TechnoPhil, non hai la possibilità di dare l'esame con un altro professore un attimino più assennato? quello è un idiota, si vede subito...
Ci risiamo!
Ricordati che l'università e la scuola hanno il compito di formarti, potenzialmente anche da ZERO!
Tu prima devi imparare a programmare, e bene (e a questo scopo lo scrivere commenti aiuta il principiante o semi-principiante, perchè tiene il cervello slegato tra la fase algoritmica e la fase codificativa della crazione del software);
Devi qundi imparare a scrivere i commenti, e anche qui: scriverli bene
Dopodichè dopo un bel pò di "gavetta" sarai in grado di non scriverli più, e rendere il codice autoesplicativo (a là fek :D)
Quindi tu proponi di imparare prima una pratica sbagliata e controproducente per poi doversela dimenticare e imparare la pratica piu' corretta e produttiva? :)
Io propongo di imparare subito la pratica corretta e piu' produttiva, perche' scrivere commenti invece di migliorare il codice significa programmare male, non bene.
Quindi tu proponi di imparare prima una pratica sbagliata e controproducente per poi doversela dimenticare e imparare la pratica piu' corretta e produttiva? :)
Io propongo di imparare subito la pratica corretta e piu' produttiva, perche' scrivere commenti invece di migliorare il codice significa programmare male, non bene.
Se la teoria fosse come dici tu, ti darei pienamente ragione.
Ma applicata alla realtà accademica, dove il programmatore spesso NON è in grado di produrre codice di buona qualità o dove non è ancora ferrato nel pensare agli algoritmi risolutivi del suo problema, gli crei uno strato in più che (secondo me :), se i fatti mi smetissero ne sarei ben felice! ) non è in grado di assorbire.
Il commento può essere visto come una guida all'algoritmo da codificare.
Quando la persona è diventata brava, allora è in grado di produrre codice autoesplicativo!!
ps: per la cronaca a me i commenti hanno sempre fatto venire l'orticaria!! :D
dimenticare e imparare la pratica piu' corretta e produttiva?
Infine... questo passaggio lo vedo più come una fusione che come un dimenticare e imparare un'altra cosa!
jappilas
12-11-2005, 12:01
Io propongo di imparare subito la pratica corretta e piu' produttiva, perche' scrivere commenti invece di migliorare il codice significa programmare male, non bene.
come non quotare :)
Perchè non va bene commentare? :confused:
esempio: devi impostare e scrivere del codice per (de)codificare degli stream audio/video contenuti in un avi... per una variabile che tenesse il valore del frame attualmente in corso di elaborazione, quale dichiarazione preferisci ?
...
long x; // notice: X is the index of the current AVI frame
...oppure
...
typeI64 CurrentFrame;
...(posto che typeI64 sia definito più su nel programma come tipo long, il listato sotto è equivalente ma è più portabile)
conclusione: se si sta sviluppando del codice nuovo, e se ne ha quindi il pieno controllo, imho non ha senso farsi del male
non l'ho capita! :stordita:
perchè non semplicemente
long CurrentFrame;
???
jappilas
12-11-2005, 12:15
Se la teoria fosse come dici tu, ti darei pienamente ragione.
Ma applicata alla realtà accademica, dove il programmatore spesso NON è in grado di produrre codice di buona qualità o dove non è ancora ferrato nel pensare agli algoritmi risolutivi del suo problema, gli crei uno strato in più che (secondo me :), se i fatti mi smetissero ne sarei ben felice! ) non è in grado di assorbire.Il commento può essere visto come una guida all'algoritmo da codificare.
lo credevo anch'io, poi ho capito l' utilità di dare nomi ad alta significatività alle variabili e incapsulare gli algoritmi specialistici (chessò funzioni matematiche esoteriche, "roba" di analisi biologica, cifratura, whatever) in funzioni da richiamare a "scatola chiusa", a loro volta nominate in modo autoesplicativo
il non aver una chiara idea dei dettagli dell' algoritmo da codificare, o non esser ferrati nel pensare agli algortmi risolutivi, non penso escluda l' utilità di concepire dei nomi significativi e autoesplicativi per le variabili, una volta che si provi a mettere giù del codice (fase in cui per forza di cose, qualche variabile bisogna dichiararla, e qualche funzione chiamarla, per quanto "abbozzo" sia lo stato iniziale programma) nè la valenza di adottarla come regola base, dall' inizio ;)
Quando la persona è diventata brava, allora è in grado di produrre codice autoesplicativo!!
se aspetti di diventare bravo, allora arrivi al punto di scrivere dell' ottimo codice, funzionante, per carità ma in cui puoi mettere le mani solo tu... e se nella squadra il codice va condiviso, preso in mano da altri (che non ci capiranno un accidente) e seguire delle convenzioni, non essere entrato nell' ordine di idee fin dall' inizio, può risultare controproducente
jappilas
12-11-2005, 12:23
non l'ho capita! :stordita:
perchè non semplicemente
long CurrentFrame;
???
il type64 (o stringa composta in modo mnemonico, come u_i64 o altro) diventa un "tipo base" del programma, #define -ito come long nell' header del programma stesso: è equivalente (in certi casi), però permette di disaccoppiare il programma dalla piattaforma... :O
in realtà per essere davvero multipiattaforma sarebbe necessario, oltre a usare chiamate a funzioni di libreria e syscall specifiche per quello che l' OS offre, ridefinire un po' tutto quello che memorizza valori nei registri, tenere conto della endianness... :p
PS: serve un intero a 32 o 64 bit perchè in un AVI il frame non è direttamente il fotogramma ma un "pacchetto" contente segmenti di uno o più interleaved streams, denominato da un timestamp ;)
lo credevo anch'io, poi ho capito l' utilità di dare nomi ad alta significatività alle variabili e incapsulare gli algoritmi specialistici (chessò funzioni matematiche esoteriche, "roba" di analisi biologica, cifratura, whatever) in funzioni da richiamare a "scatola chiusa", a loro volta nominate in modo autoesplicativo
Quindi vieni con me.... Non è un processo comprensibile fin dall'inizio!
comunque mi sono spiegato male:
Io non dico (ASSOLUTAMENTE!!) di inserire nomi a capocchia e commentare per far capire; i nomi vanno comunque dati significativi!
Quello su cui non sono d'accordo e che IN AMBIENTE DIDATTICO, si debba insegnare da subito a codificare senza commenti!!
D'altronde (e qui ribalto il problema) com'è possibile riusicre a capire dove effettivamente è necessario un commento (e i casi ci sono) se non si è mai scritto un commento prima d'ora ???
jappilas
12-11-2005, 12:50
Quindi vieni con me.... Non è un processo comprensibile fin dall'inizio!...
no, dicevo che all' inizio "ho creduto anch'io" che la capacità di mantenere chiarezza nel codice andasse di pari passo con il livello di programmazione in c++ di cui si è capaci (anche perchè, salendo di livello, aumenta la complessità dei problemi e del codice che si produce);
poi mi si è definitivamente radicata la convinzione che le due cose siano svincolate, e la prima abbia a che fare con la "forma mentis" dell' individuo - che notoriamente non si "insegna" ma al più si "forma", e il momento migliore per formarla nel modo meno viziato possibile è ... prima possibile - quindi all' uni, a scuola...
Io non dico (ASSOLUTAMENTE!!) di inserire nomi a capocchia e commentare per far capire; i nomi vanno comunque dati significativi!
Quello su cui non sono d'accordo e che IN AMBIENTE DIDATTICO, si debba insegnare da subito a codificare senza commenti!!
senza magari non è fattibile, ma usarne il meno possibile sì (magari adottando una metrica tipo: num. commenti, correlati a num righe di codice non chiaro)
D'altronde (e qui ribalto il problema) com'è possibile riuscire a capire dove effettivamente è necessario un commento (e i casi ci sono) se non si è mai scritto un commento prima d'ora ???
per quello che ho potuto vedere, far leggere il codice ad un altro e facendogliene valutare la comprensibilità, aiuta parecchio
certo, se ci sono delle idiosincrasie accettate, qualche commento servirà ... se restano delle "faccende in sospeso" qualche commento servirà, se non altro come promemoria o come placeholder...
17Qwerty71
12-11-2005, 13:14
come non quotare :)
esempio: devi impostare e scrivere del codice per (de)codificare degli stream audio/video contenuti in un avi... per una variabile che tenesse il valore del frame attualmente in corso di elaborazione, quale dichiarazione preferisci ?
...
long x; // notice: X is the index of the current AVI frame
...oppure
...
typeI64 CurrentFrame;
...(posto che typeI64 sia definito più su nel programma come tipo long, il listato sotto è equivalente ma è più portabile)
conclusione: se si sta sviluppando del codice nuovo, e se ne ha quindi il pieno controllo, imho non ha senso farsi del male
Bhe, solitamente (tipo me) uno che desidera produrre un codice tutto ordinato e con diversi commenti non dichiara variabili alla caxxo :fagiano:
Posso dire che io produco codice autoesplicativo con commenti :stordita:
end.is.forever
12-11-2005, 13:21
Se fossi un docente e dovessi correggere e valutare centinaia di elaborati dei quali circa la metà fatti da persone che non hanno mai scritto un programma in vita loro, chiederei la stessa cosa.
TechnoPhil
12-11-2005, 13:27
raga grazie a tutti dei suggerimenti...dirò a quel mio amico che prima se lo studi, poi magari ne riparliamo!!
(tanto anche io entro settembre 2006 dovrò studiarmi bebe il C++, quindi 1 mano gliela potrò dare anche io!!)
grazie!! ;)
jappilas
12-11-2005, 13:30
chiederei la stessa cosa.
ehm...se non citi non è chiaro a cosa ti riferisci... :stordita:
jappilas
12-11-2005, 13:30
doppio sorry :O
Quando la persona è diventata brava, allora è in grado di produrre codice autoesplicativo!!
Proprio perche' non e' in grado di produrre codice di buon livello gli insegnerei le tecniche e le pratiche corrette per produrlo, non quelle scorrette per non produrre buon codice.
E gli insegnerei le pratiche corrette quando non sa nulla e gli e' piu' facile imparare, non quando deve prima dimenticare quello che gli e' stato insegnato prima e fa il doppio della fatica.
Quello su cui non sono d'accordo e che IN AMBIENTE DIDATTICO, si debba insegnare da subito a codificare senza commenti!!
Forse non sono chiaro, nessuno ha mai detto che bisogna insegnare a programmare senza commenti :)
Ma che bisogna insegnare a programmare, sono due cose ben diverse. E imparare a programmare significa imparare a usare i commenti (e i vari costrutti del linguaggio dove e quando servono).
Richiedere di commentare tutte le variabile e il codice diffusamente e' come chiedere di usare il for sempre e comunque anche quando un while o un do/while sarebbe piu' corretto e leggibile. E' un errore.
Questo no:
long currentFrame; // questo e' il numero del frame corrente memorizzato come long
Ma va? Dal nome della variabile non lo avrei mai detto :)
Quello e' un errore da principiante che non va insegnato, non significa programmare bene.
Questo si':
// Questa funzione ha complessita lineare di media e complessita' quadratica nel caso peggiore
long FindCurrentFrame()
{
// ...
}
Questo e' un buon commento che non puo' essere espresso in codice.
Posso dire che io produco codice autoesplicativo con commenti :stordita:
Male. Significa che esprimi la stessa informazione due volte e quando cambi il codice sei costretto a cambiare anche il commento associato, con perdita di tempo, quando il codice magari forniva gia' tutte le informazioni necessarie. Se non le forniva, la soluzione non e' commentarlo, ma riscriverlo.
jappilas
12-11-2005, 16:54
Questo si':
// Questa funzione ha complessita lineare di media e complessita' quadratica nel caso peggiore
long FindCurrentFrame()
{
// ...
}
Questo e' un buon commento che non puo' essere espresso in codice.
e la stessa informazione sulla complessità algoritmica, magari non sarebbe di immediata deduzione a meno di analizzare il codice esaustivamente, quindi a chi ne abbia bisogno, si risparmia un bel po' tempo perso ... :)
giusto, non ci pensavo...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.