Difference between revisions 69032653 and 70637443 on itwiki{{NN|informatica|novembre 2009}} {{C|Senza fonti autorevoli a supporto non è possibile stabilire cosa sia "fondamentale" o meno senza scadere nel POV personale|informatica|marzo 2013}} {{U|Programmazione (informatica)|informatica|novembre 2014}} In [[informatica]] iCon '''fondamenti di programmazione''' sono quel, in [[informatica]], si indicano le conoscenze basilari che un [[programmatore]] deve possedere per la [[programmazione (informatica)|programmazione]] in un qualunque [[linguaggio di programmazione]]. Per la scrittura di righe di [[codice sorgente|codice]] nei [[linguaggi di programmazione]] è sufficiente per un programmatore utilizzare un normale [[elaboratore testi]], o un [[programma (informatica)|programma]] ad hoc detto [[Editor (informatica)|editor]] spesso compreso all'interno di un [[ambiente di sviluppo integrato]] (IDE). Nel secondo caso il [[software]] individua automaticamente gli errori più banali (es. [[errore di sintassi|errori di sintassi]]) che un [[programmatore]] può commettere. == Le Ffasi della programmazione== ⏎ ⏎ I passi con cui si sviluppa un programma efficiente sono simili tra di loro per quasi tutti i contesti di [[programmazione (informatica)]] (aziende, hobby, lavoro, ecc.). Le prime fasi sono strettamente legate alla [[logica]] di quello che si va a creare e del suo funzionamento, mentre le ultime sono orientate verso lo specifico [[linguaggio di programmazione]] che si intende utilizzare. ===Il problema da risolvere===⏎ ⏎ La prima operazione da svolgere per la creazione di un qualunque [[programma (informatica)|programma]] è definire nel modo più preciso ed accurato possibile quale problema intendiamo risolvere. Questo vale sia per una semplice [[funzione matematica]] che per un complesso [[database]]. L'[[input]] che il [[programma (informatica)|programma]] riceve è legato all'[[output]] che intendiamo restituire dopo l'elaborazione. Questa fase può presentare una grande complessità dovuta al lavoro astratto che impone al [[programmatore]] di immaginare il risultato finale e la sua formalizzazione. ===La progettazione deli un programma=== ⏎ ⏎ Superata la definizione del problema che si vuole risolvere occorre progettare delle possibili soluzioni, porle a confronto tra loro e risalire a quella più efficiente (ricordando che una soluzione non efficiente per un determinato problema potrebbe essere utile allo sviluppo di altri programmi). Per confrontare l'effettiva differenza tra una soluzione ed un'altra possono essere utilizzati due diversi strumenti: * Uno di essi è il [[diagramma di flusso]]: con un [[Diagramma|grafico]] molto intuitivo si può illustrare un processo in tutte le fasi che lo caratterizzano. Ogni fase è collegata con le altre dalle [[linee di flusso]] che indicano la direzione del processo interno al [[programma (informatica)|programma]]. * Un efficace metodo di progettazione è lo [[pseudocodice]], una forma di scrittura in codice affine alla lingua parlata dal [[programmatore]]. La sua stesura è simile ad una scaletta di operazioni che si definiscono quando si deve eseguire una determinata azione. La scrittura dello [[pseudocodice]] deve essere dettagliata almeno quanto il codice finale, ma rispetto ad esso non si richiede una sintassi precisa lasciando il [[programmatore]] libero di concentrarsi sui problemi principali del [[programma (informatica)|programma]]. ====Algoritmi==== ⏎ ⏎ {{Vedi anche|Algoritmo}} Al fine di creare un [[programma (informatica)|programma]] efficiente occorre progettarne con attenzione l'[[algoritmo]]. Ad esempio potremmo creare un [[algoritmo]] che esegue i seguenti passi: # Esamina una lista di numeri e riconosci quello più basso; # Inserisci il numero più basso nella [[variabile (informatica)|variabile]] X; # Stampa la variabile X; (contracted; show full) * [[Programmazione orientata agli oggetti]] - in cui vengono creati degli "oggetti" che possono funzionare autonomamente o interagire tra di loro. Ogni oggetto possiede in sé delle specifiche proprietà e funzioni (se ipotizziamo come oggetto un'automobile, una caratteristica sarà il suo colore o la sua marca e le funzioni saranno l'accelerare o il frenare). ====Programmi Decisionali==== ⏎ ⏎ {{Vedi anche|Struttura di controllo}} I programmi informatici risultano essere molto più articolati di un processo lineare come l'addizione di due numeri. Per dare al programma una struttura più complessa si utilizzano i seguenti strumenti: * Le '''diramazioni''' consistono nel fornire al codice delle funzioni che possono cambiare lo svolgimento dell'[[algoritmo]] a seconda del risultato della condizione espressa. * I '''cicli''' sono sequenze di istruzioni eseguite ripetutamente fin quando non viene soddisfatta una determinata condizione. Ogni ripetizione è detta iterazione. ===La verifica del risultato=== ⏎ ⏎ Completato il [[programma (informatica)|programma]] è frequente la presenza di errori derivanti da ragioni varie. La fase di verifica e di messa a punto del [[programma (informatica)|programma]] è detta [[debugging]] ed ha lo scopo di ricercare e correggere gli errori riscontrati, detti [[bug]] (es. [[errore di sintassi|errori di sintassi]], [[errore di logica|errori di semantica]], [[errore di logica|errori di logica]]). Si tratta di una fase molto lunga ed importante in cui il [[programmatore]] verifica (contracted; show full) Per molte [[aziende]] il [[software]] presente sul mercato risulta spesso inadatto alle proprie esigenze ed è necessario lo sviluppo di programmi personalizzati o la modifica di quelli già esistenti. A questo scopo esistono altre aziende specializzate in questo tipo di servizi affidati dunque in [[outsourcing]] (aziende di [[consulenza informatica]]). ===Installazione o [[deployment]]=== ⏎ ⏎ Una volta creato e verificato il nuovo sistema, si procede all'installazione dello stesso all'interno dell'[[azienda]] ed al suo funzionamento a pieno regime. Tale impatto può essere traumatico per un'[[azienda]] abituata a vecchi sistemi, ragion per cui si procede in diverse maniere, secondo il caso: (contracted; show full) Superata l'installazione, il [[programma (informatica)|programma]] fornirà all'[[azienda]] un servizio efficiente e regolare, richiedendo comunque manutenzione, in cui vengono risolti i problemi riscontrati ed introdotti cambiamenti funzionali attui a migliorare le prestazioni dei programmi. ==Esempio: addizione di due numeri== ⏎ ⏎ Il [[programma (informatica)|programma]] più semplice ed intuitivo è sicuramente quello che presi due numeri in [[input]], restituisce come [[output]] la loro somma. A seconda del [[linguaggio di programmazione]] che si utilizza la struttura cambia e si articola in maniera diversa. * In un [[linguaggio di programmazione ad alto livello]] il programma contiene un'istruzione il cui significato è: ''nella [[locazione di memoria]] C deve essere inserito un numero uguale alla somma dei numeri presenti nelle locazioni A e B''. * In un [[linguaggio assembly]] si definiscono tre [[locazioni di memoria]] associate a tre nomi simbolici A, B, C. Durante l'esecuzione, il programma carica nella [[CPU]] il numero presente in A e lo somma con quello che si trova nella posizione B memorizzando il risultato in C. * In un [[linguaggio macchina]] un determinato comando x1 carica un numero che si trova in una [[locazione di memoria]] y1 (generalmente definita da una cifra [[esadecimale]]) all'interno della [[CPU]]. Il comando x2 somma il numero che si trova nella [[locazione di memoria]] y2 con quello caricato precedentemente. Infine un comando x3 trasferisce il risultato ottenuto in una [[locazione di memoria]] y3 rendendolo disponibile per nuove operazioni. ==Bibliografia== ⏎ ⏎ * Dennis P. Curtin, Kim Foley, Kunal Sen, Cathleen Morin, ''Informatica di Base'', Mc-Graw Hill, 2005 ==Voci correlate== * [[Programmazione (informatica)]] * [[Paradigma di programmazione]] * [[Linguaggio di programmazione]] * [[Linguaggio macchina]] * [[Linguaggio assembly]] * [[Linguaggio BASIC]] * [[Algoritmo]] * [[Teorema di Bohm-Jacopini]] * [[Variabile (informatica)]] * [[Costante (informatica)]] * [[Strutture dati]] * [[Struttura di controllo]] ==Collegamenti esterni== ⏎ ⏎ *[http://programmazione.html.it/guide/ Guida alla programmazione], su [http://www.html.it html.it]. {{portale|informatica}}⏎ ⏎ [[Categoria:Programmazione| ]]⏎ {{portale|informatica}} All content in the above text box is licensed under the Creative Commons Attribution-ShareAlike license Version 4 and was originally sourced from https://it.wikipedia.org/w/index.php?diff=prev&oldid=70637443.
![]() ![]() This site is not affiliated with or endorsed in any way by the Wikimedia Foundation or any of its affiliates. In fact, we fucking despise them.
|