• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

L#003 – Tecniche di programmazione

By Redazione | on 13 Ottobre 2009 | 0 Comment
Guide Teoriche

Come abbiamo accennato con il primo articolo di questo sito, “Da dove cominciare?“, è importante per chiunque voglia avvicinarsi al mondo della programmazione innanzitutto capire quali sono le diverse tecniche di programmazione, o se vogliamo i diversi paradigmi di programmazione. In parole povere i diversi stili di programmazione con cui i programmatori concepiscono e percepiscono un programma.

Di queste tecniche ne esistono diverse, ma concentreremo la nostra attenzione solo su tre di queste:

  • Programmazione non strutturata
  • Programmazione strutturata (procedurale)
  • Programmazione orientata agli oggetti

PROGRAMMAZIONE NON STRUTTURATA
Questo paradigma di programmazione, in pratica il primo, concepiva un programma come un unico blocco di codice, detto “main”, dove era possibile saltare da un punto ad un altro del programma tramite la famosissima istruzione “GOTO”. Non esistevano porzioni di codice riutilizzabili e quell’unico blocco di codice doveva essere completo di tutto. Questo portava alla creazione di codice spesso troppo lungo, incomprensibile e difficile da mantenere. Altro aspetto negativo è che questo tipo di tecnica portava spesso ad uno spreco di risorse hardware che come conseguenza diventava uno spreco inutile di denaro.

Il Basic (non strutturato) è forse il più famoso esempio di linguaggio di programmazione non strutturata. Ecco una porzione di codice:

10 INPUT “What is your name: “, U$
20 PRINT “Hello “; U$
30 INPUT “How many stars do you want: “, N
40 S$ = “”
50 FOR I = 1 TO N
60 S$ = S$ + “*”
70 NEXT I
80 PRINT S$
90 INPUT “Do you want more stars? “, A$
100 IF LEN(A$) = 0 THEN GOTO 90
110 A$ = LEFT$(A$, 1)
120 IF A$ = “Y” OR A$ = “y” THEN GOTO 30
130 PRINT “Goodbye “; U$
140 END

Come potete vedere da questo esempio, ogni riga inizia con un numero che identifica ogni istruzione del programma. In questo tipo di software vengono eseguite tutte le istruzioni in sequenza, una dopo l’altra, fino al raggiungimento dell’istruzione GOTO che rimanda istantaneamente l’esecuzione ad un altro punto indicato dall’indice numerico. E’ facile intuire come sia facile che un programma diventi sempre meno leggibile man mano che questo cresce di funzionalità, fino a diventare completamente ingestibile.
Per questa ragione sono nate successivamente altre tecniche di programmazione strutturate.

PROGRAMMAZIONE STRUTTURATA (PROCEDURALE)
Questa tecnica di programmazione introduce un nuovo concetto molto importante, ovvero la divisione e riusabilità del codice. Il programma non è più quindi tutto in un unico blocco di codice ma diviso in più parti, chiamate procedure o funzioni, in base al linguaggio, ben distinte e riutilizzabili. Sparisce inoltre l’uso dell’istruzione GOTO. Si capisce facilmente come il programma in questo modo risulti più semplice da progettare, gestire e mantenere, infatti se una funzione o procedura che sia, funziona correttamente, questa si comporterà allo stesso modo in ogni punto in cui viene chiamata. Linguaggi strutturati sono ad esempio il C, come anche il Visual Basic e molti altri.

Di seguito uno spezzone di un programma in C che calcola il quadrato di un numero tramite una funzione:

#include < stdio.h >
/* Questo è il prototipo della funzione, ovvero una dichiarazione */
int square(int x);

/* Codice del programma */
int main() {
printf (“Quadrato di 4: %d\n”,square(4));
return 0;
}

/* Questa è la nostra funzione utilizzata nel programma principale */
int square(int x) {
return x*x;
}

Senza entrare nel dettaglio di ogni istruzione, potete notare come anche in questo caso il programma principale sia all’interno di un “main” (una funziona particolare) e che le funzioni siano una porzioni di codice riutilizzabile e separato dal corpo del programma stesso. Le varie funzioni possono inoltre essere salvate in file esterni, poi inclusi in quello principale grazie ad alcuni semplici comandi.

Nonostante i grossi vantaggi portati con questa tecnica di programmazione, utilizzata per molti anni e usata ancora oggi in molti campi, sono diversi gli aspetti negativi che si incontrano nella stesura di programmi di enormi dimensioni e che coinvolgono grandi team di sviluppo. Per questo nasce una nuova concezione, quella della programmazione orientata agli oggetti che illustrerò qui di seguito.

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI
Ultimo paradigma di programmazione che illustreremo è quello della Programmazione Orientata agli Oggetti, anche conosciuto come OOP (Object Oriented Programming). Questo è il metodo che più fa avvicinare la programmazione alla realtà in cui viviamo. Tutto si basa sugli oggetti, componenti completi che comprendono dati, metodi e procedure i quali comunicano e condividono informazioni tra loro. Iniziamo a capire cos’è un oggetto con un esempio pratico.

Immaginate un’automobile. Ebbene l’automobile è un oggetto che ha delle sue proprietà (tipo il colore, la cilindrata o la potenza) e delle azioni che puo’ compiere, (come andare avanti, girare, fermarsi, accendersi o spegnersi). Non è importante conoscere tutti i meccanismi interni ad un’automobile per poterne scegliere una e utilizzarla, ma basta conoscere le sue caratteristiche e le azioni che puo’ compiere. Nella programmazione ad oggetti, le caratteristiche di un oggetto vengono denominate proprietà e le azioni sono dette metodi.

Immaginate la potenza che possono avere quindi questi oggetti se combinati secondo particolari schemi tipici della programmaizone OOP (incapsulamento, polimorfismo, ereditarietà).

Torniamo alla macchina e prediamo in esame il cambio. Anche questo puo’ essere considerato un oggetto in tutto e per tutto, con le sue proprietà e i suoi metodi. Esistono diversi tipi di cambio, manuale, sequenziale, automatico ma fanno tutti parte della stessa categoria, sono lo stesso oggetto, differenziano l’uno dall’altro solo per le alcune proprietà ed azioni che li contraddistinguono. Inoltre avrete notato come un oggetto puo’ essere combinato con un altro senza alterare le caratteristiche dei due presi singolarmente. Le possibilità e la potenza di questo nuovo schema di programmazione sono praticamente infinite. Linguaggi come il C++, Java, ma soprattutto Objective-C che andremo ad approfondire durante questo corso sono basati su questo paradigma.

Non posterò, in quanto al momento non sarebbe di facile comprensione, un esempio di codice OOP, semplicemente consiglio un eventuale approfondimento tramite questa ottima guida pubblicata da Html.it.

Share this story:
  • tweet

Tags: oopprogrammazioneteoria

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • Programmare a oggetti in TypeScript

    7 Aprile 2017 - 0 Comment
  • Microservizi per logiche applicative di grandi dimensioni

    27 Luglio 2016 - 0 Comment
  • Introduzione ai Design Patterns

    12 Novembre 2012 - 7 Comments

Author Description

No Responses to “L#003 – Tecniche di programmazione”

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO