Pagina 4 di 5 primaprima ... 2 3 4 5 ultimoultimo
Visualizzazione dei risultati da 31 a 40 su 45
  1. #31
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    Originariamente inviato da MItaly
    Il problema è che se usi sempre quelli già pronti è facile che tu non sappia come funzionino, e quindi scegli strutture dati o algoritmi non ottimali.
    beh, a questo punto uno dovrebbe conoscere gran parte dei linguaggi di programmazione (meglio se in modo approfondito) per scegliere quello ottimale o ogni volta mettersi li' a ricrearsi/modificarsi gli algoritmi o le strutture di volta in volta (e questo non e' fattibile ovviamente) quindi neanche sapere il C/C++ basta
    ...and I miss you...like the deserts miss the rain...

  2. #32
    Cosa c'entrano i linguaggi? Io parlo di strutture dati e algoritmi, e alla fine quelli che usi continuamente sono sempre quelli. In C sei costretto a reimplementarteli a manina, e soprattutto a vedere quello che ti offre la macchina in maniera immediata (array e poco altro) e quello che invece va costruito.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #33
    Originariamente inviato da MItaly
    Un vettore è un vettore (ovvero, è un blocco di memoria contiguo indicizzato, non è una lista concatenata).
    Però è quello che Python chiama "lista" ([1, 2, 3, 4] di fatto è un vettore).

    Ho scritto una stupidaggine; il ciclo globale sarebbe O(N), ma ogni iterazione è O(N-i) con i numero dell'iterazione per spostare indietro tutti gli elementi del vettore ad ogni estrazione. Si ha (con k tempo per spostare un elemento e j tempo per l'elaborazione dell'elemento estratto):

    dunque è O(N^2).

    No, o meglio, potresti ma a quel punto diventa una struttura dati leggermente diversa (con tempo costante ammortizzato per l'inserimento in testa e l'accodamento) in cui scegli dei tradeoff diversi; i std::vector ed equivalenti nei vari linguaggi in genere non implementano questa soluzione.

    Verissimo, l'ho provato sulla mia pelle, anche se qualche "C++-ismo" ti rimane addosso.

    Il problema è che se usi sempre quelli già pronti è facile che tu non sappia come funzionino, e quindi scegli strutture dati o algoritmi non ottimali.

    Concordo in pieno. Senza contare che, una volta che sai le basi, è poi facile impararti per i fatti tuoi linguaggi più astratti.

    Fortunatamente in Python c'è una chiara distinzione tra le "liste" (ovvero di fatto array) e "dictionary" (di fatto hashtable). Questa non c'è invece in PHP, dove si usano gli "array magici" per tutto (il che è demenziale sotto ogni punto di vista).

    Sì e no. Una volta che conosci linguaggi con paradigma imperativo con OOP muoverti tra l'uno e l'altro è fondamentalmente questione di cambiare sintassi e libreria, non di impostazione mentale.

    Il supporto per la OOP dei linguaggi di livello più alto è in gran parte "zucchero sintattico", nulla ti impedisce di programmare object-oriented in C (e anzi è una cosa che si fa di frequente), anche se ovviamente è più faticoso che in altri linguaggi. D'altra parte, anche qui capisci cosa sta sotto a certe funzionalità dei linguaggi di più alto livello (il puntatore "this" nascosto, come si implementa effettivamente ereditarietà e polimorfismo, ...).

    Puoi, ma non ha senso perché c'è già ed è ben più efficiente perché è implementata dietro le quinte in C.

    Non so, non credo che lo scopo dell'università sia di darti abilità immediatamente spendibili, ma di metterti nelle condizioni di poter imparare facilmente quello che poi effettivamente ti servirà.

    Quale assembly e quale assembler?
    che la forza sia con te

    CONSIDERAZIONE:
    io ripeto a tutti che quest'uomo è un pericolo per l'umanità

  4. #34
    Originariamente inviato da Grambo
    io ripeto a tutti che quest'uomo è un pericolo per l'umanità
    Hai scoperto il mio progetto K? allora mi sa che mi toccherà ucciderti...
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #35
    Utente di HTML.it L'avatar di vonkranz
    Registrato dal
    Sep 2001
    Messaggi
    1,387
    Originariamente inviato da MItaly
    Cosa c'entrano i linguaggi? Io parlo di strutture dati e algoritmi, e alla fine quelli che usi continuamente sono sempre quelli. In C sei costretto a reimplementarteli a manina, e soprattutto a vedere quello che ti offre la macchina in maniera immediata (array e poco altro) e quello che invece va costruito.
    ho la sensazione che parliamo di cose diverse (o mi sono perso qualche pezzo)

    in che senso <cosa c'entrano i linguaggi> ? non e' di questo che si parlava? quello che volevo dire io nel pezzo che mi hai quotato era semplicemente che, in linea di massima, tutti i linguaggi mettono a disposizione determinati oggetti/strutture ecc. per fare determinate cose e/o manipolare dati mentre l'importante (secondo me) e' sapere che devi fare una certa cosa per ottenere un determinato risultato

    in pratica se uno non ha idea di cosa fare per fare in modo che un utente inserendo 2 numeri e facendo click su un pulsante ottenga la loro somma è una cosa, se invece l'idea ce l'ha, che lo faccia in Pascal, VB, C, Assembler o altro cambia poco.

    almeno questo e' quello che volevo dire io. se poi non mi sono spiegato bene, chiedo venia
    ...and I miss you...like the deserts miss the rain...

  6. #36
    Originariamente inviato da vonkranz
    almeno questo e' quello che volevo dire io. se poi non mi sono spiegato bene, chiedo venia
    Pardon, allora stavamo parlando di due cose differenti. Io stavo semplicemente dicendo che, partendo "dal basso", sei obbligato a vedere come si implementano/quali sono i tradeoff di tutte quelle facilities (array, liste, hashtables, ...) che poi in altri linguaggi si danno per scontate, dato che, per comodità, vengono fornite direttamente nella libreria standard (e ci mancherebbe). Per questo motivo, diventa "ovvio", anche nel momento in cui hai tutto già pronto all'uso, qual è la struttura/l'algoritmo più adatto allo scopo che ti prefiggi, perché, avendoli visti "da vicino", sai in quali casi è meglio usarli.

    Non stavo considerando la questione "tipi di linguaggi profondamente diversi" perché alla fine qui stavamo bene o male sempre parlando di linguaggi a paradigma imperativo.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #37
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    dal mio personale punto di vista:
    ho fatto ing informatica, sono partita dal C, poi si è passato a linguaggi OOP (in particolare java).
    Dove lavoro si deve conoscere alla perfezione C (ANSI C in particolare) e Java.
    Li cambierei o cambierei il mio percorso? Mai.
    Primo perché la programmazione strutturata in un primo momento è la più semplice da capire e da padroneggiare.
    Secondo perché per quanti livelli di astrazione possiamo creare, ci sarà sempre un punto in cui interviene un livello che sta sopra l'assembler e che quasi sempre è scritto in C.
    Terzo perché capire come fare le cose e farle è diverso dall'utilizzarle e hanno ragione quando dicono che l'approccio bottom-up è più faticoso, ma riduce i tempi di apprendimento successivi.
    Quarto perché in ambito universitario (tanti fanno ricerca) si utilizzano molto C/C++ e conosco gente che lavora in COBOL e FORTRAN.
    Quinto perché non sono una moda, ma un must, l'abc della programmazione. Un buon senior C/C++ mettilo una settimana a lavorare in java e ti saprà sempre risolvere i problemi, il viceversa purtroppo non è vero.
    Sesto (ultimo) dobbiamo decidere cosa fare nella vita: imparare qualcosa che una volta che sappiamo padroneggiare ci consente di essere versatili o seguire una moda e trovarci tra 10 anni incapaci di fare altro.

    Mi meraviglio invece come si possa pensare di non insegnare il C e di passare alla logica ad oggetti (e agli IDE). Fosse per me insegnerei coi terminali
    RTFM Read That F*** Manual!!!

  8. #38
    Ripeto il concetto cspesso esso non è il corso o l'universita ad essere inutili ma è il singolo professore che con le sue fissazioni spesso lo rende inutile, o mAgari inutilmente pesante.
    Io le strutture dati di ASD le ho sviluppare in c++ con i Template, ovviAmente da zero, ed è stato interessante. L'esame a me è stato un laboratorio in cui ti portavo le strutture dati fatte a casa e ti davano da sviluppare algoritmi su quelle strutture (spesso complicato per il poco tempo che avevi, e difatti bocciavano parecchio) ed un orale dove parlavi di algoritmi.

    Magari altri corsi che io ho ritenuto inutili da tr sono stati affrontati meglio, purtroppo è così è il professore che rende interessante o meno un corso E ti capisco, quando un corso viene reso inutilmente difficile ci si chiede un po' ma chi ce lo fa fare, ma poi si prende e si va avanti.
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  9. #39
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    si ma dopo aver lanciato tante maledizioni al tuo prof, tra 10 anni lo ringrazi perché il suo accanimento ti ha portato ad avere una preparazione di base che ti consente parecchia versatilità.

    Poi a tutto c'è un limite, ma di solito le difficoltà che ho incontrato agli scritti erano dovute a preparazione carente mia.
    RTFM Read That F*** Manual!!!

  10. #40
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Nel mio caso era severo su fissazioni sue, andrei OT se volessi stare a dire i motivi.
    Ma l' assecondare quelle fissazioni è stato proprio il motivo per cui avevamo smesso di compilare.Era di ostacolo alle cose che veramente andavano imparate.
    Io mi sono messo per conto mio a studiare C++ nel tempo libero, ed è un linguaggio che nel corso della mia università non si studia.
    Se avessi seguito la trada dello studiare solo le cose che erano richieste agli esami giusto per prendere voti alti, ne saprei molto ma molto di meno.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.