Comments for post Una grande fetta di informatici non e' in grado di programmare?

easyboy writes: Ho trovato l'esercizio e ho provato... giusto? for a in range(1,101): if a % (3 * 5) == 0 : print "fizz-buzz" elif a % 5 == 0: print "buzz" elif a % 3 == 0 : print "fizz" else: print a
Daniele writes: Ahahahah, io ho iniziato ieri a studiare un po' di Python e ho scritto il programma in 2 minuti 2! Da precisare che non ho conoscenze di programmazione e che i miei studi sono di ben altra natura! Se mi va male nel mio campo posso sempre provare a fare il sysadmin, pagano bene a quel che ho visto!
BlackLight writes: La cosa non mi sorprende neanche più di tanto. Ho avuto la fortuna di toccare con mano sia una facoltà di ingegneria informatica italiana sia una di informatica danese, e se nel primo caso si ha tanta teoria con poche applicazioni (il che vuol dire ingegneri informatici che escono sapendo come risolvere un integrale triplo in coordinate cilindriche, come funziona il ciclo di Carnot in una macchina a vapore e come compilare uno stato patrimoniale in partita doppia, ma non hanno mai scritto una sola riga di SQL al computer), nel secondo caso si ha lo scenario opposto (ogni esame prevede progetti Java FUNZIONANTI per testare con mano se gli studenti sanno applicare i concetti appresi, ma un unico corso di matematica dove fra l'altro si imparano i fondamenti di algebra lineare all'acqua di rose per poterli applicare direttamente alla programmazione). Inutile dire che la via giusta sta nel mezzo. Posso comunque assicurarvi che la maggior parte dei miei "colleghi" italiani ingegneri informatici avrebbero avuto difficoltà a scrivere un codice del genere al primo colpo, mentre invece qui in Danimarca probabilmente l'avrebbero scritto al primo colpo, ma se li metti di fronte a un calcolo di derivata anche elementare vanno nel pallone. Comunque, giusto per fare lo sbruffone in Perl in una sola riga di codice: !($_ % 15) ? print "FizzBuzz " : (!($_ % 3) ? print "Fizz: " : ( !($_ % 5) ? print "Buzz: " : print "")) && print "$_\n" for (1..100);
Axeryon writes: St4alk3r la tua versione non stampa il numero se nessuna delle condizioni è vera :) Ecco la mia versione :-D #include <iostream> int main() { for (int i = 1; i <= 100; i++) if (i % 3 == 0 && i % 5 == 0) std::cout << "FizzBuzz" << std::endl; else if (i % 3 == 0) std::cout << "Fizz" << std::endl; else if (i % 5 == 0) std::cout << "Buzz" << std::endl; else std::cout << i << std::endl; return 0; }
oesse writes: ma gigi sullivan che fine ha fatto??
Navigatore Anonimo writes:
st4lk3r writes: Ma lol... allora faccio bene ad abbandonare quell'uni del cacchio -.- imparo tutto da casa che è meglio. (c++) #include "iostream" using namespace std; int main() { for(int i=1; i<101; ++i) { if( !(i%3) ) cout << "FIZZ"; if( !(i%5) ) cout << "BUZZ"; cout << endl; } return EXIT_SUCCESS; }
intersimone999 writes: Bah, cose assurde... menomale che sono laureati... In ruby: 1.upto(100) do |number| p number print "Fizz" if number%3==0 print "Buzz" if number%5==0 end Anche io autodidatta.
motrini writes: ho sempre odiato gli if, per cui propongo in prima istanza qualcosa senza <?php function pippo($first,$last) { for($i=$first; $i<$last; $i++) {$a[$i]=$i;} for ($i=floor($first/3);$i<=floor($last/3);$i++) {$a[$i*3]="Fizz";} for ($i=floor($first/5);$i<=floor($last/5);$i++) {$a[$i*5]="Buzz";} for ($i=floor($first/15);$i<=floor($last/15);$i++) {$a[$i*15]="FizzBuzz";} for($i=$first; $i<=$last; $i++) {echo $a[$i];} } non l'ho provato per mancanza di tempo. p.s. sono autodidatta e programmo solo raramente per necessità per cui abbiate pietà
francesco writes: se sembrate malati a me...... andate fuori c'e' il sole!!!
Yuri Morini writes: Ho appena letto i tuoi articoli sull'iterazione perciò mi sembrava bello applicarlo, inoltre visto che tutti avevano usato if ho pensato di farlo diversamente anche se perde completamente di leggibilità e forse ci mette anche di più Non sono un programmatore però... autodidatta. function iterate(s, e) { if (s <= e){ var n = (s%3 == 0) ? (s%5 == 0) ? "FizzBuzz" : "Fizz" : (s%5 == 0) ? "Buzz" : s ; return n + iterate(s+1,e); } return ""; } iterate(1,100)
bayle writes: In python scritto pulito pulito: i=1 while i<=100: if i%3==0 and i%5==0: print 'FizzBuzz' i+=1 if i%3==0: print 'Fizz' i+=1 elif i%5==0: print 'Buzz' i+=1 else: print i i+=1
u' cummisaru writes: vedere mio commento (il II°) @t http://antirez.com/post/52 sulla CompleXità del codice :-D (P.S: ma devo sempre scrivere limone x postare? Non potremo iniziare a cambiare frutto, che so.. melone??)
panta writes: Dimenticavo, Fortran 77 puo` essere compilato meglio di Fortran 90 proprio perche' non ha i puntatori. Fortran 90 da questo punto di vista ha lo stesso "difetto" del C, quindi...
panta writes: antirez, si, avevo sentito, ma non c'e` nessun motivo che sia cosi`. E` possibile che per certe operazioni ricorrenti (moltiplicazione di matrici, ad esempio), il compilatore fortran "imbrogli", e faccia loop-unrolling automaticamente. Bisognerebbe vedere quali sono le configurazioni di default dei front-end. Sarebbe anche interessante vedere l'assembly generato per i due codici. L'unico problema che mi viene in mente per il C e` l'esistenza dei weak-symbols, ma con codice semplice non dovrebbero esserci differenze.
antirez writes: per panta: non so oggi ma fino a qualche anno fa abbiamo testato alcuni algoritmi sulle matrici o cose del genere implementati nella maniera diretta (il codice C e fortran era quasi identico concettualmente) senza pensare a strane ottimizzazioni e il codice fortran era sensibilmente piu' veloce in quasi tutti i casi. Il compilatore era quello della intel, ma le prestazioni erano superiori anche rispetto al compilatore C della intel. Forse e' possibile che essendo il fortran meno "potente" ci sono molti casi in cui e' piu' facile verificare alcune condizioni che portano ad ottimizzazioni abbastanza pesanti.
Avasilcai Daniel writes: è vero. interessanti gli e esempi delle soluzioni una più corta della altra. chi vuole fare informatica oggi non ha bisogno di università ma di voglia di imparare. Tutte le risorse necessarie si trovano in internet. Poi sono convinto che un professore universitario d'informatica potrebbe diventare outdated se non si tiene aggiornato con le tendenze.L'informatica non e come la geografia che rimane quella non cambia durante gli ani.
panta writes: non voglio iniziare flame wars, e non sono un esperto di Fortran, ma mi pare che il mito(?) dei compilatori migliori e altre questioni annesse (matrici row-major vs column-major), siano stati ampiamente demistificati. Tra l'altro ormai i compilatori hanno backend in comune tra C e Fortran, quindi la supposta maggior efficienza di uno dei due dovrebbe essere legata al front-end, cosa poco plausibile, vista la struttura tutto sommato simile dei linguaggi (imperativi, typing statico stretto). Una volta forse poteva essere vero, ma oggi nutro dei dubbi. L'unico punto rimane quello delle librerie numerico, ma in realta ormai ce ne sono carettate anche per C/C++. Del resto se fosse vero che Fortran e` piu` efficiente per computazioni numeriche, sarebbe utilizzato anche in CG, mentre non mi risulta che nemmeno un applicazione di fascia alta di modelling o rendering sia scritta in Fortran. Infine i linguaggi di programmazione degli shader delle GPU sono modellati attorno al C, non al Fortran, e sono interfacciabili da C. Il che da accesso a decine di GFlops da programmi in C su computer di fascia bassa (basta una scheda video da poche centinaia di euro)...
havana9 writes: Non che voglia fare il difensore del fortra... pero' c'e' da dire che il Fortran95 è molto moderno è comodo da usare per sviluppare programmi di calcolo "sicuri". Il FORTRAN77 è un vero dinosauro, anacronistico ma ancora usato. Ma altro motivo che rende il Fortran usato in certi ambiti è data dal numero di librerie praticamente bug-free dalla facile parallellizzazione del codice e dai compilatori estremamente ottimizzati, specialmente quelli per il vecchi Fortran77. Panta, scusami non volevo farti fare degli incubi ;)
antirez writes: per panta: hehe ho grosse difficolta' anche io ad accettare fortran ma e' duro a morire. Forse in parte perche' rispetto al C per la semplicita' semantica i compilatori ottimizzanti possono fare di meglio, e visto che viene usato per ammaccare numeri...
panta writes: Questo scorcio di fortran mi fara` fare gli incubi stanotte. Pensavo di averlo totalmente rimosso, ora mi tocchera` tornare in psicanalisi.
havana9 writes: dai cycle in italiano suona benissimo come "CICLA", cioe' passa al ciclo successivo... Ben nel fortran 77 doveva usarsi una cosa tipo do i=1,10 if i.eq.4 then print*,"xxxx" goto 10 endif altre istruzioni 10 enddo
antirez writes: Ci vuole ben poco ;) Ma se devo essere sincero quasi no.. perche' questo "cycle" suona molto oscuro.
havana9 writes: Piu' leggibile di PHP o no?
antirez writes: la versione fortran mi mancava ;) Non fate progettare aereoplani a quegli ingegneri per piacere. Ciao!
havana9 writes: Errata Corrige trascuro gli errori di ortografia... ma il codice lo corrego con do i=1,100 if mod(i,3)= 0 and mod(1,5)=0 then print*,"fizz buzz" cycle elseif mod(i,3) = 0 then print*,"fizz" elseif mod(i,5) = 0 then print*,"buzz" else print*,i enddo non ho compilato per testare... provo appena ho linuxuccio sotto mano
Havana9 writes: Ciao Maestro, condivido pienamente la tua impressione, la vivo attualmente facendo trainig ad ingegneri meccanici che di meccanica non ne capiscono tanto. Se poi assumi manovalanza e ti serve un ing meccananico inccalito fortranista eccomi do i=1,100 if mod(i,3)= 0 and mod(1,5)=0 then print*,"fizz buzz" cycle elseif mod(i,3) = 0 then print*,"fizz" elseif mod(i,5) = 0 then print*,"buzz" enddo
sakire writes: :) <? function func($i){ if ($i%3==0 && $i%5==0){return "FuzzBizz";} if ($i%3==0){return "Bizz";} if ($i%5==0){return "Fuzz";} return $i; } $i=0;while($i<100){echo func($i++)."<br>";} ?>
fmf writes: Vado OT: come mai il tuo feed non ha gli acapo giusti?
al0ha writes: Per dirla in php... :) <?php function stampaMul($lim_a,$lim_b,$mul1,$mul2) { if ($lim_a == 0) { $lim_a =1; } for ($i=$lim_a; $i<$lim_b;$i++) { $conta = "".$i; $div1 = $i/$mul1; $r1 = $i%$mul1; $r2 = $i%$mul2; $r3 = $i%($mul1*$mul2); if ($r1 == 0) { $conta ="Fizz"; } if ($r2 == 0) { $conta ="Buzz"; } if ($r3 == 0) { $conta ="FizzBuzz"; } echo $conta."<br/><br/>"; } } //test stampaMul(0,100,3,5); ?> Antir, dopo questo non puoi non prendermi a lavorare con te. lol Secondo me, comunque, sono molto più importanti i paradigmi di programmazione che non i singoli linguaggi che d'altronde è bene conoscere per poter valutare le proprie affinità con gli stessi.
calamitone writes: il mio assistente di laboratorio l'ho visto manovrare con una calamitona da cassa su un hardisk molto più piccolo di questa convinto che quello fosse l'unico modo per eliminare completamente un virus. La cosa assurda è che questa gente cercava di insegnare a programmare il Javascript a gente che a 15 anni smanettava con la creazione di algoritmi di compressione in delphi...o giù di li.
davidonzo writes: Mia esperienza: un prof di informatica dell'università di Catania mi invia sua tesista. Progetto: realizzare un CMS personalizzato per le esigenze dell'azienda in cui lavoro. Parliamo, e sembra non sapere cosa è un CMS. Poco male, non pretendo che si viva di acronimi... Le spiego un po' di cose, ma la faccia sembra di chi casca dalle nuvole. Restiamo che le faccio avere un po' di documentazione per email. Preparo tutto, glielo mando e la mail di risposta è sconcertante: "come apro un file .tar.gz?" Un laureando di informatica è già grave che non sappia cosa sia un tar compresso gz. Ma è molto più grave che non sia in grado di risolvere da solo una cosa del genere... Purtroppo è solo un esempio. Ne potrei fare una marea... PS: io laureato in economia e commercio...
marco writes: a me è capitato di una cliente privata che utilizzava le zanzariere nel periodo primaverile per paura di infettare il PC; fatto realmente accaduto giuro, citato come paradosso per indicare la situazione anomala esistente nel nostro mercato, di gente esperta che messa alla prova non vale poi gran chè, e gente veramente esperta che magari non riesce a emergere..
g4b0 writes: per non parlare di tecnici/sistemisti (o presunti tali), che sono convinti che il ping viaggi su TCP, nonostamte seguano aziende medio-grandi...
home