Blog Informatica & Programmazione

Bacheca
Risorse Blog Facebook Like
Important Link:
Random link:




Iscriviti al gruppo Fan
Banner & Language Last Post
Forum Affiliati:
Traduci il forum nella lingua che preferisci:
 


  1. Le modalità di visibilità

    Avatar
    Tags
    OOP
    Programmazione
    By giratina23 il 8 July 2013
    0 Comments   136 Views
    .

    Le modalità di visibilità



    Tra le novità offerte dal paradigma ad oggetti, indubbiamente vi è anche la possibilità di proteggere parte del proprio codice, e con proteggere intendo che esiste una parte pubblica in ogni classe, con cui è possibile comunicare anche attraverso classi esterne e una parte privata, che può comunicare solo con elementi presenti all'interno della stessa classe.
    La parte pubblica costituisce l'interfaccia che permette la comunicazione tra utente e la classe, mentre la parte privata viene usata per nascondere tutti i dettagli implementativi che non devono essere visti dall'utente.

    Convenzionalmente sono state stabilite tre modalità di visibilitità

    • Pubblic: Permette la comunicazione tra una classe e altre classe

    • Private: Permette la comunicazione tra gli elementi di una stessa classe, ma non è possibile comunicare con altre classi

    • Protected: è una via di mezzo tra Pubblic e Private, infatti consente ad una classe di interagire solo in casi di strutture gerarchiche fra più classi: Le classi che fanno parte di una gerarchia (ad esempio durante l'ereditarietà), possono comunicare tra di loro, ma non possono comunicare con le classi esterne alla gerarchia.
      Quindi la modalità protected coincide con un Private quando si parla di classi esterne alla gerarchia e Pubblic quando si parla di classi interne alla gerarchia

    Last Post by giratina23 il 8 July 2013
    .
  2. Che cosa è un Grafo

    1 Comments   267 Views
    .

    Che cosa è un Grafo



    Nel mondo dell'informatica, e in particolar modo nel mondo delle reti è molto diffuso il termine "Grafo", molti di voi si staranno chiedendo che cosa significa, la risposta è facile: Un grafo è una struttura dati composto da un insieme di vertici (o nodi) che sono messi in relazione fra loro attraverso dei collegamenti, chiamati archi.
    In sostanza un grafo può essere immaginato come un insieme di punti disposti casualmente nello spazio collegati da ponti agli altri punti.
    Quindi in una rete, i nodi sono rappresentati da tutti i dispositivi collegati alla rete (quindi compreso il vostro pc con cui siete collegati a internet), mentre gli archi sono rappresentati dai canali di comunicazione che ci permettono di interagire in una rete (proprio come sto facendo io postando in questo blog).

    Tuttavia, è bene specificare che con il termine Grafo si intende una struttura dati di carattere generale, ovvero rappresenta tutte le organizzazioni dei dati in una struttura.
    Nel mondo dell'informatica avrete sentito parlare spesso di "Albero", stiamo parlando di un grafo ovvero di una struttura dati che organizza i dati secondo una determinata gerarchia (pensate ad esempio all'organigramma), ma di questo discuteremo in un topic più approfondito!
    In realtà il concetto di Grafo, non nasce proprio come concetto informatico, ma matematico, infatti anche un semplice albero genealogico viene considerato come un grafo e anche nelle cartine geografiche è possibile trovare numerosi grafi: I nodi rappresentano determinate località e le strade che collegano queste località rappresentano gli archi.

    Nel caso delle cartine geografiche si parla di grafo pesato, in quanto le strade hanno un determinato peso (che varia a seconda della loro lunghezza in chilometri) e molto spesso, tra tutte le possibili strade, è necessario trovare la strada tra due nodi che ha minor peso (ovvero minor distanza da percorrere).

    Last Post by AndreeaAle Ventura il 7 June 2017
    .
  3. Le 11 P della programmazione

    Avatar
    Tags
    Curiosità
    Programmazione
    By giratina23 il 4 Nov. 2012
    0 Comments   69 Views
    .

    Le 11 P della programmazione



    Prima
    Pensa
    Poi
    Programma
    Perché
    Programmi
    Poco
    Pensati
    Producono
    Pericolosi
    Pasticci


    :D

    Edited by giratina23 - 18/11/2012, 15:06
    Last Post by giratina23 il 4 Nov. 2012
    .
  4. È meglio imparare la programmazione con...

    Avatar
    Tags
    Programmazione
    Sondaggi
    By giratina23 il 5 Sep. 2012
    1 Comments   351 Views
    .

    È meglio imparare la programmazione con...



    Ecco un altro sondaggio aperto dal blog, stavolta mi voglio rivolgere a coloro che la programmazione la conoscono da almeno un po' di tempo.
    La maggior parte delle volte, per apprendere un linguaggio di programmazione, si utilizzano principalmente due modalità, la prima che è utilizzata soprattutto nelle scuole, è proprio quella di imparare la programmazione imparando a elaborare algoritmi, mediante diagrammi di flusso e pseudocodice senza specializzarsi su un linguaggio specifico.
    Solo dopo aver introdotto una certa quantità di informazioni, ed aver fatto pratica con l'elaborazione di algoritmi si comincia a studiare un linguaggio di programmazione specifico, che possibilmente dia buone abitudini di programmazione, e così rendere praticabili gli algoritmi elaborati.

    In altri casi invece si preferisce andare direttamente all'elaborazione di algoritmi su un linguaggio di programmazione specifico, in modo da essere in grado, fin dai primi tempi di realizzare delle applicazioni, seppur semplici.
    Ma è anche vero che ogni linguaggio di programmazione ha le proprie particolarità (e se non le avessero perché si utilizzano diversi linguaggi di programmazione?), sebbene tutti i linguaggi abbiano delle caratteristiche in comune.
    Io ho sempre pensato che un "bravo" informatico non si distinguesse solo per quanti linguaggi di programmazione sa utilizzare, ma soprattutto per quanto è flessibile nell'imparare nuove informazioni, dove, in un settore come quello informatico è fondamentale e quindi credo che, soprattutto ai primi tempi un po' di pseudocodice e diagrammi di flusso siano l'ideale per allenare la mente, e poi in base a quali applicazioni si vogliono realizzare, scegliere un linguaggio di programmazione adatto.

    Voi cosa ne pensate?
    Last Post by DukeLuke il 31 Jan. 2017
    .
  5. Guida OOP - Le relazioni tra classi

    Avatar
    Tags
    OOP
    Programmazione
    By giratina23 il 13 June 2012
    0 Comments   146 Views
    .

    Guida OOP, Capitolo 4 - Le relazioni tra classi



    Nel precedente capitolo abbiamo detto che gli oggetti interagiscono tra loro tramite dei messaggi, così come gli oggetti anche le classi comunicano tra loro e quindi si parla di relazione tra classi.
    Di seguito vi darò una breve elencazione delle principali relazioni tra classi:

    • Associazione: una classe A utilizza una classe B, se un oggetto della classe A può inviare messaggi ad un oggetto di classe B, oppure se un oggetto di classe A può creare,ricevere e restituire oggetti di classe B

    • Associazione: una classe A utilizza una classe B, se la classe B è una proprietà della classe A;

    • Specializzazione: Una classe A deriva da una classe B, se la classe A è in grado di eseguire tutti i metodi della classe B;


    Nel prossimo capitolo, cominceremo finalmente a vedere i concetti più importanti della programmazione a oggetti a partire dall'incapsulamento, seguito dall'ereditarietà e il polimorfismo.

    Last Post by giratina23 il 13 June 2012
    .
  6. Guida OOP - I Messaggi

    Avatar
    Tags
    OOP
    Programmazione
    By giratina23 il 13 June 2012
    0 Comments   103 Views
    .

    Guida OOP, Capitolo 3 - I Messaggi



    Molti arrivati a questo punto, potrebbero chiedersi come fanno gli oggetti a comunicare tra di loro.
    Gli oggetti comunicano tra di loro inviando agli oggetti delle "sollecitazioni " che prendono il nome di messaggi, che permettono di eseguire le varie azioni di un oggetto.
    I messaggi si possono dividere nelle seguenti categorie:

    • Costruttori, costituiscono il momento in cui un oggetto viene creato, e solitamente svolgono al suo interno funzioni di inizializzazione;

    • Distruttori, sono coloro che devono "distruggere" un oggetto, ovvero rimuoverne la sua allocazione nella memoria;

    • Accessori (o Accessories), sono quei messaggi che esaminano i valori di una proprietà di una classe;

    • Modificatori (o Mutators), sono messaggi che provocano una modifica allo stato di un oggetto;


    Per quanto riguarda gli osservatori o queries, sono dei metodi che permettono di avere delle informazioni sullo stato di un oggetto senza modificarlo.
    Nel prossimo capitolo, vi tratterrò, senza andare troppo nel dettaglio le più comuni relazioni tra classi.

    Last Post by giratina23 il 13 June 2012
    .
  7. Guida OOP - Le Classi

    Avatar
    Tags
    OOP
    Programmazione
    By giratina23 il 13 June 2012
    0 Comments   59 Views
    .

    Guida OOP, Capitolo 2 - Le Classi



    La classe è una categoria di oggetti, in cui rientrano oggetti che hanno in comune determinate proprietà e metodi, ad esempio noi riconosciamo come cellulare, tutti quei dispositivi portatili che permettono di effettuare delle chiamate e di inviare dei messaggi.
    Un oggetto che appartiene ad una classe prende il nome di istanza della classe, ad esempio il cellulare è costituito da un oggetto che è in grado di inviare dei messaggi.
    L'univocità di ogni istanza viene definita con il termine di identità o identity, infatti ogni istanza ha una propria identità ben distinta rispetto a tutte le altre della stessa classe.
    I valori delle proprietà possono cambiare nel tempo, per questo ogni oggetto ha un proprio stato, cioè l'insieme dei valori delle proprietà di un oggetto in un certo istante, quando uno di questi valori cambia, cambierà anche lo stato di un oggetto.
    Il comportamento (detto Behavior) di un oggetto, è l'insieme dei metodi che un oggetto è in grado di eseguire.

    Last Post by giratina23 il 13 June 2012
    .
  8. Guida OOP - Pensare ad Oggetti

    Avatar
    Tags
    OOP
    Programmazione
    By giratina23 il 13 June 2012
    0 Comments   775 Views
    .

    Guida OOP, Capitolo 1 - Pensare ad oggetti



    L'Informatica è ricca di acronimi, e sicuramente chi non ha mai sentito parlare di OOP potrebbe domandarsi di cosa stiamo parlando: l'acronimo OOP sta per Object Oriented Program e quindi, programmazione ad oggetti.
    Questa guida si rivolge a tutti coloro che vogliono entrare nel mondo della programmazione ad oggetti, che è utilizzata in molti linguaggi conosciuti, come JavaScript, C++, Python, ma soprattutto Java ed è quindi indispensabile conoscere i concetti di base per poter imparare questi linguaggi.
    Per chi non si è mai avvicinato al mondo della programmazione, cercherò di essere sintetico e di spiegare con degli esempi tutti i vari concetti, mentre se avete già avuto l'onore di programmare in qualche linguaggio (che non siano linguaggi come HTML o CSS), come il C, vi troverete costretti a cambiare modo di ragionare, dato che i linguaggi come il C non utilizzano i concetti della programmazione ad oggetti, ma quelli della programmazione procedurale, ovvero si crea una funzione principale in cui si riportano altre funzioni.

    Con la programmazione ad oggetti, bisogna invece cominciare a ragionare in questo modo: In ogni programma si possono distinguere dei componenti, che sono appunto gli oggetti, che il programmatore dovrà sviluppare e saper gestire l'interazione degli uni con gli altri.
    Se non è chiaro il concetto di oggetto, pensiamo ad un qualsiasi oggetto intorno a noi, ad esempio il computer che stiamo utilizzando per leggere questo articolo, esso è un oggetto che ha determinate caratteristiche (in OOP dette proprietà) e delle determinate funzionalità o azioni (in OOP dette metodi).

    Generalmente ogni oggetto possiede pochi metodi, perché l'oggetto deve poter essere riutilizzabile e per quanto riguarda le proprietà ne esistono tre tipi:

    • Attributi: Sono tutte quelle caratteristiche peculiari di un oggetto (ad esempio nel caso di una persona il colore della pelle, l'altezza o il peso);

    • Componenti: Sono tutte quelle caratteristiche che servono per svolgere delle azioni (ad esempio nel caso di una persona, le mani o le braccia);

    • Peer objects: Sono caratteristiche identificate e definite in altri oggetti (ad esempio il computer di una persona)


    Nel prossimo articolo, vi darò una definizione di classe.

    Oggetti


    Last Post by giratina23 il 13 June 2012
    .
  9. [Programmazione] Lo Switch

    Avatar
    Tags
    C
    Programmazione
    By giratina23 il 14 April 2012
    0 Comments   58 Views
    .

    Lo Switch



    In programmazione lo Switch è un modo veloce di elaborare una condizione in cui si prende in esame un'unica variabile.
    Vediamo subito un esempio pratico (in linguaggio C) in cui viene chiesto ad uno studente il voto del suo compito in classe:
    HTML
    int voto;
    printf("Inserisci il tuo voto: ");
    scanf("%d", &voto);
    switch(voto) {

    case 5:
    printf("Non sufficiente! \n");
    break;

    case 6:
    printf("Sufficiente \n");
    break;

    case 7:
    printf("Discreto \n");
    break;

    case 8:
    printf("Buono! \n");
    break;

    case 9:
    printf("Distinto! \n");
    break;

    case 10:
    printf("Ottimo! \n");
    break;

    default:
    printf("Voto non valido! \n");
    }

    In questo codice avrete sicuramente notato case, esso indica che stiamo per eseguire determinate istruzioni se il voto inserito è uguale al numero scritto dopo il case, mentre l'istruzione break interrompe l'esecuzione del codice una volta terminata l'istruzione.
    l'istruzione default invece corrisponde all'else, infatti indica le istruzioni da eseguire in tutti gli altri casi, in questo caso se il voto non è compreso tra 5 e 10, si verifica un messaggio che avverte che il voto inserito non è valido.
    Poichè lo Switch è un particolare if ramificato può essere scritto anche in questo modo, ma a mio parere è una procedura molto più lunga e confusionaria:

    HTML
    int voto;
    printf("Scrivi il voto: ");
    scanf("%d", &voto);
    if(voto == 5) {
    printf("Non Sufficiente! \n");
    }
    else if(voto == 6) {
    printf("Sufficiente \n");
    }
    else if(voto == 7) {
    printf("Discreto! \n");
    }
    else if(voto == 8) {
    printf("Buono! \n");
    }
    else if(voto == 9) {
    printf("Distinto! \n");
    }
    else if(voto == 10) {
    printf("Ottimo! \n");
    }
    else {
    printf("Voto non valido! \n");
    }
    Last Post by giratina23 il 14 April 2012
    .
  10. [PROGRAMMAZIONE] I Cicli

    Avatar
    Tags
    Programmazione
    By giratina23 il 26 Feb. 2012
    0 Comments   2,165 Views
    .
    Capitolo 4 - I Cicli
    Uno dei concetti più importanti della programmazione sono le operazioni di iterazione, che permettono di eseguire uno stesso algoritmo per un determinato numero di volte.
    Il vantaggio dell'utilizzo dei cicli è proprio quello di evitare di ripetere algoritmi per un gran numero di volte, ma utilizzando dei semplici comandi che valutano delle condizioni e solitamente, quando queste condizioni sono vere, ripetono l'algoritmo.
    Per capire meglio facciamo un esempio:
    Se io devo creare un programma che mi scriva la stessa parola per 1000 volte, potrei scrivere per mille volte un comando di stampa, ma questo per ovvi motivi è scomodo e fa perdere un bel po' di tempo al programmatore!
    Allora io posso creare una variabile che possiamo definirla come un contatore, che conta il numero di ripetizioni, e poi utilizzando un ciclo, verifichiamo la condizione "se il contatore < 1000" allora stampa nuovamente la stringa e incrementa di uno il valore del contatore, successivamente verifica nuovamente la condizione e se il contatore è ancora minore di 1000, ripete ancora l'algoritmo fino a che il contatore non è uguale a 1000.
    I cicli possono essere di molti tipi, e variano in base al linguaggio di programmazione, ma possiamo innanzitutto fare una distinzione tra cicli post-condizionali e pre-condizionali.
    I cicli post-condizionali sono cicli che vengono inseriti dopo l'algoritmo sottoposto a ripetizione, e questa caratteristica consente al programma di eseguire l'algoritmo almeno una volta, anche se non rispetta la condizione.
    Mentre i cicli pre-condizionali sono i cicli che vengono inseriti prima dell'algoritmo e quindi il programma esegue l'algoritmo solo se la condizione è vera.

    Ecco un esempio di ciclo pre-condizionale:
    CODICE
    .Start
    .Leggi Contatore = 1
    .Se Contatore < 1000
     .Allora stampa "Testo"
     .Contatore = Contatore + 1
     .Altrimenti Ripeti
    .End


    Spero di essere stato chiaro, in ogni caso i cicli sono elementi importanti e quindi devono essere imparati molto bene, ma se ciò che avete letto non vi è molto chiaro, non fatevene un problema, in questo post ho solo cercato di darvi un concetto di ciclo, in modo da capire almeno a cosa servono e quali vantaggi hanno, ma come nel caso delle condizioni, con la pratica con un linguaggio di programmazione risulteranno molto più chiari :P
    Torna al Sommario

    Edited by giratina23 - 7/4/2012, 17:01
    Last Post by giratina23 il 26 Feb. 2012
    .