Pagina precedente | 1 | Pagina successiva
Stampa | Notifica email    
Autore

[Programmazione] - Piccola guida per imparare a programmare!

Ultimo Aggiornamento: 08/07/2005 10:16
OFFLINE
Post: 797
Utente Senior
Manuale di informatica

---------------------------------------------------------------
Ho creato questo manuale due anni fa, era da tempo che volevo metterlo a disposizione in internet, finalmente ho trovato il tempo!! [SM=x53914]
Le informazioni contenute in questa guida sono state tratte da libri di testo scolastici, e da miei personali appunti.
Chiunque voglia dare dei suggerimenti o fare correzioni, può postare a seguito della guida.
---------------------------------------------------------------

Impariamo a pensare da programmatore!!

Informatica, significa informazione automatica. La materia informatica è costituita da tre parti, quella Hardware, la quella Software e i dati.

Hardware: Parte materiale della macchina.
Software : Programmi (che si suddividono in Progr. di Base e Progr.Applicativi).

Base
- Sistema operativo (Insieme di programmi per far funzionare
la macchina ed interagire con la macchina)
- Compilatori
- Assemblatori

Applicativi
- Office
- Programmai installati dall’utente

Dati : Organizzazione e Supporti.


Linguaggio di programmazione

Nel corso degli anni sono cambiate le metodologie per la costruzione di programmi, attraverso nuovi linguaggi di programmazione, meno simbolici e più vicini al linguaggio naturale: essi da una parte rendono più facile il lavoro del programmatore, e dall’altra consentono di creare programmi più complessi e ricchi di funzionalità.



Il linguaggio di programmazione è un linguaggio che la macchina può comprendere.

Variabili e Costanti

Adesso passiamo a parlare più nello specifico della programmazione, vediamo la differenza tra variabili e costanti.
Le variabili e le costanti sono entrambe delle aree di memori, identificate da un nome significativo e contenti un valore, la differenza tra le due è che le variabili possono cambiare il loro contenuto, invece le costanti hanno un valore che non cambia anche considerando problemi con variabili diverse.
I nomi che diamo alle variabili e alle costanti, per distinguerle all’interno del problema considerato, si chiamano identificatori.

Dati e Azioni

La soluzione di un problema richiede da una parte la disponibilità di dati necessari per effettuare i calcoli e dall’altra un insieme di azioni da svolgere per ottenere il risultato finale.
I Dati sono i valori assunti dalle proprietà degli elementi che caratterizzano il problema, rappresentati con variabili e costanti. Le Azioni sono le attività che, mettendo i dati in relazione tra loro, consentono di ottenere i risultati desiderati.
I dati possono essere di tipi diversi:
- numerici
- alfabetici
- alfanumerici
Le azioni possono essere riconducibili ad operazioni:
- di tipo aritmetico, quali i calcoli
- di tipo logico, quali il confronto tra due valori ecc.


La metodologia di lavoro

Passo1: Descrizione del problema

In questa prima fase, occorre definire con precisione: i tipi di dati che abbiamo a disposizione i “confini” delle soluzioni adottate, i risultati attesi e le risorse da utilizzare per elaborare i dati iniziali e per ottenere la soluzione del problema.
Schematicamente gli elementi che caratterizzano un problema sono:
•i dati che servono ovvero i dati iniziali sui quali basare la soluzione del problema da affrontare. I dati iniziali vengono anche detti dati di ingresso (input). Tali dati non devono essere ne sovrabbondanti ne troppo ridotti.
•I risultati che si vogliono ottenere, detti anche dati di uscita (output).
•Le risorse a disposizione sia dal punto di vista logico sia dal punto di vista fisico o hardware .
•Le soluzioni adottate, ovvero il procedimento e il percorso che permettono di passare dai dati iniziali ai risultati attesi.
L’individuazione di questi elementi costituisce l’analisi del problema.

Passo2: Stesura dell’algoritmo

La soluzione del problema così come è stata descritta nella prima fase, deve essere ora organizzata e sviluppata in una serie di operazioni da attuare secondo un ben definito ordine, che permette di giungere ai risultati attesi a partire dai dati iniziali. La scomposizione del procedimento risolutivo di un problema, in una sequenza di operazioni elementari da seguire per ottenere i risultati attesi, costituisce la stesura dell’algoritmo risolutivo.

Definizione di algoritmo

Il termine algoritmo è nuovo e necessita di una profonda spiegazione dettagliata.
Il termine algoritmo proviene dalla matematica e sta a indicare le regole, o in generale le operazioni da compiere, per fare un calcolo o risolvere un problema. Deriva dal nome di un algebrista arabo del IX secolo di nome Al-Khuwarizmi.



Va notato, da subito, che nella definizione è implicita la presenza di un esecutore, in altre parole di un oggetto, macchina, alla quale affidare l’interpretazione e l’esecuzione delle istruzioni contenute nell’algoritmo.
1.ogni istruzione deve essere concretamente realizzabile dall’esecutore.
2.le istruzioni che compongono un algoritmo devono essere precise e on ambigue in modo che non lascino dubbi nell’interpretazione da parte dell’esecutore.
3.ogni istruzione, se pur concretamente eseguibile e non ambigua, deve avere una durata limitata nel tempo. Per esempio “calcola il quadrato dei primi 10000 numeri” comporta un notevole impiego di tempo, ma presenta un punto d’arresto. L’istruzione “calcola tutte le cifre decimali di pi-greco”, invece non avrà mai fine poiché tali cifre decimali sono infinite.
4.ogni istruzione deve produrre, se eseguita, un risultato osservabile.
5.ogni istruzione deve avere carattere deterministico, in alter parole deve produrre sempre il medesimo effettore eseguita a partire dalle stesse condizioni iniziali.
6.le istruzioni devono essere elementari, cioè non ulteriormente scomponibili rispetto alle capacità dell’esecutore.

Come deve essere composto un algoritmo?
-da un numero finito di istruzioni, e deve presentare un punto di inizio e di fine.
-completo ed esaustivo nel senso che per tutti i casi che si possono verificare durante l’esecuzione, deve essere indicata la soluzione da eseguire.
-riproducibile: ogni successiva esecuzione dello stesso algoritmo con i medesimi dati iniziali deve produrre sempre i medesimi risultati finali.

Gli elementi di un’applicazione

Un’azione è un evento che si compie in un intervallo di tempo finito e che produce un risultato. Per descrivere le azioni è necessario disporre di un linguaggio o di una nozione formale: le descrizioni delle azioni sono dette istruzioni.
Un’istruzione elementare è un’istruzione che non può essere scomposta in istruzioni più semplici. Un’istruzione non elementare è detta algoritmo.
Un’azione composta è chiamata esecuzione. Chiamiamo esecutore l’ente che esegue le azioni secondo le istruzioni di un algoritmo.
Il programmatore, è colui che organizza, prepara e scrive l’algoritmo. L’utente, è la persona che attiva l’esecuzione dell’algoritmo e che interagisce con l’esecutore per fornirgli i dati iniziali del problema e per utilizzare i risultati finali.



Caratteristiche fondamentali di un esecutore

Un’altra azione fondamentale che risulta comunque presente in un processo eseguito da un calcolatore è l’assegnazione di un valore a una variabile.
Il simbolo <--, è detto operatore di assegnamento.
Si può scrivere:
x <-- 9
e si legge: “ x prende il valore di 9”.
Ad una variabile può essere assegnato il valore di una costante o il risultato di un’operazione:
x <-- e

I tipi di operatori

Gli operatori possono essere di tre tipi: aritmetici, di relazione e logici.



Strumenti per la stesura di un algoritmo

I linguaggi più comunemente utilizzati sono i diagrammi a blocchi e le pseudocodifica. In questa prima parte di programma analizzeremo in specifico il linguaggio diagramma a blocchi.

Diagramma a blocchi
Questo metodo consiste in una rappresentazione grafica. I diagrammi a blocchi sono formati da simboli di forma diversi.
I simboli Indicano il punto di partenza e quello di terminazione dell’algoritmo.
Da INIZIO può partire una sola freccia che raggiunge le prima istruzione, e verso INIZIO non arriva nessuna freccia. A FINE arriva una sola freccia e da esso non ne parte nessuna.
Il simbolo


È detto di rielaborazione e contiene al suo interno l’istruzione da eseguire può avere una sola freccia sia in entrata che in uscita.
Il simbolo



Viene utilizzato per rappresentare operazioni di immissione di dati (input) o di emissione di dati (output). È associato ad una sola freccia sia in entrata che in uscita.
Il simbolo



Viene detto simbolo di decisione e, nella maggior parte dei casi, serve per rappresentare un’operazione di confronto tra due dati.
Es: se x>2 allora fai…
se no fai…



Infine è possibile, all’interno di un diagramma a blocchi, inserire alcuni commenti illustrativi che servono per dare maggiore chiarezza allo schema.
Simbolo




Esempio di un algoritmo
Fai la somma di due numeri interi inseriti dall’utente, e visualizza il risultato.



Il compito delle variabili

Date due variabili contenenti numeri interi scambiare i loro
valori.



Per poter scambiare i due valori di posto, devo utilizzare una variabile di appoggio in cui verrà salvato temporaneamente il dato. Il dato 5 salvato nella variabile x viene salvato nella variabile Appoggio, in questo modo l’area di memoria x è vuota e gli viene salvato al suo interno il valore 3 che era contenuto inizialmente nella variabile y. Ora dalla variabile di appoggio, viene recuperato il valore 5 e salvato nella variabile y. In questo modo i due valori sono stati scambiati.



La programmazione strutturata

La programmazione strutturata è la progettazione, la realizzazione e il collaudo di un programma costituito di parti che dipendono l’una dall’altra secondo un ben definito modello organizzativo.



La struttura alternativa si chiama anche di selezione o struttura condizionale, e la struttura di ripetizione viene indicata anche con il termine iterazione.
Per struttura si deve intendere il modello organizzativo secondo cui si presentano le istruzioni all’interno di un algoritmo.
Un algoritmo appropriato consiste in un che ha le seguenti caratteristiche essenziali:
• non presenta istruzioni che sono ripetute infinite volte,
• non ha percorsi non sfruttati,
• ha un solo punto di entrata e un solo punto di uscita.

Per quanto riguarda l’uso delle strutture di controllo per la stesura degli algoritmi, il riferimento classico è il Teorema di Bohm-Jacopini che può essere così formulato:





Esistono due metodi di alternativa



Esistono tre metodi di iterazione





Ora possiamo fare degli esempi di algoritmi complessi:
1.
Sul prezzo di un prodotto viene praticato lo sconto del 3% se costa meno di 500 € e del 5% per prezzi superiori a 500 €. Calcolare il prezzo da pagare.





2.
Dato un elenco di numeri, si devono scegliere quelli che sono maggiori di 10 e minori di 100. Contare tali numeri e scrivere la loro somma.

Abbiamo fatto l’esempio di un algoritmo contenete i tre tipi di strutture. La struttura a sequenza è sempre presente, poiché è la forma più semplice per costruire un algoritmo. Ora che conosciamo le strutture, possiamo svolgere qualche algoritmo più complesso, per consolidare le nostre conoscenze.

1)
Calcolare l’MCD e l’mcm tra due numeri.
Come calcolare l’MCD con un metodo veloce e semplice.



Ora provate a svolgere da soli questi semplici problemi:

1)Dato un numero N verificare se si tratta di un numero primo.
2)Scrivere i primi N (dato da tastiera) numeri pari successivi a un numero dato A.
3)Dato in input un numero intero N , sommare i primi N numeri dispari e verificare che tale somma è uguale al quadrato di N.
4)Calcolare e scrivere la somma dei quadrati dei primi N numeri interi.
5)Dato in input un numero intero, scrivere tutti i divisori del numero e, alla fine, scrivere il numero di tali divisori.

L’organizzazione dei programmi

Lo sviluppo top-down

Questa metodologia di lavoro è utilizzata per semplificare il problema da risolvere.
Il problema principale, che deve essere risolto tramite l’algoritmo, viene suddiviso in sottoproblemi più semplici e di dimensioni più ridotte che avranno senz’altro minore complessità.
Si realizza una struttura ad albero dove ogni riquadro (detto nodo) contiene una descrizione del problema e dove viene indicata la gerarchia delle funzioni. Per funzioni si intende un segmento di algoritmo che è in grado di risolvere il problema a cui si riferisce



Ciascun sottoproblema viene affrontato separatamente e se presenta ancora un grado di complessità notevole, si procede come prima: suddivisione del problema in sottoproblemi per diminuire ulteriormente il livello di difficoltà.
Il nodo più in alto viene detto radice: esso contiene la descrizione o il titolo del problema principale, i nodi che non presentano diramazioni di livelli più bassi vengono detti foglie.
All’interno di ogni nodo va indicata un breve descrizione della funzione svolta.
Il programma derivato dall’algoritmo avrà anch’esso la parte principale (main program) e dai sottoprogrammi (subprogram).
La metodologia top-down si realizza in Pascal organizzando le istruzioni attraverso una procedura (procedure) o una funzione (function) che contraddistinguono due tipi di sottoprogrammi.

Le procedure

Le procedure sono dei sottoprogrammi che vengono creati per semplificare il programma principale, esse vengono richiamate nel programma principale per svolgere una determinata parte del problema. Le procedure possono avere dei parametri (variabili) in ingrasso o in uscita, o entrambi e in alcuni casi possono anche non averne. Questi parametri sono detti formali e attuali, i primi sono le variabili indicate nell’intestazione della procedura e i secondi invece sono le variabili che forniscono i valori ai parametri formali (dichiarate nel programma principale).




Il passaggio di parametri

Il passaggio dei parametri può avvenire in due modi differenti;

•Passaggio per valore, quando i valori delle variabili del main vengono ricopiati nei parametri della procedura; i cambiamenti effettuati sui parametri formali durante l’esecuzione della procedura non influenzano i valori delle variabili nel programma principale.
(senza il var)
•Passaggio per indirizzo, quando i parametri attuali e formali fanno riferimento alla stessa cella di memoria centrale, cioè allo stesso indirizzo di memoria; questo è il caso in cui il programmatore vuole che i cambiamenti di valore ai parametri, durante l’esecuzione della procedura, influenzino i valori delle variabili corrispondenti nel programma principale.
(viene fatta precedere la parola var alla lista dei parametri passati per indirizzo)

Le funzioni

La funzione è un sottoprogramma che riceve dal main i valori assegnati ai parametri formali, come la procedura, e restituisce uno e un solo valore al main, diversamente dalla procedura.
Quindi le function si usano per rappresentare un procedimento di calcolo, o in generale un’elaborazione, che costituisce un sottoproblema del problema principale e che deve fornire un valore al main.
Il nome della funzione è anche il nome della variabile in uscita.



Un esperto è una persona che sa sempre di più su sempre di meno, fino a sapere tutto di nulla.(Max Weber)



Modificato da Diabolik.86 08/07/2005 10.46
Modificato da Diabolik.86 05/06/2006 16.12
Modificato da Diabolik.86 05/06/2006 16.13
07/07/2005 16:09
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 8.273
Maestro
una piccola correzione: correzioni si scrive con una Z sola [SM=x53912]
08/07/2005 09:47
 
Modifica
 
Cancella
 
Quota
OFFLINE
Post: 797
Utente Senior
Re:

Scritto da: Arkantos01 08/07/2005 9.47
una piccola correzione: correzioni si scrive con una Z sola [SM=x53912]



ops... hai ragione [SM=x53929]
grazie ciao [SM=x53912]
08/07/2005 10:16
 
Modifica
 
Cancella
 
Quota
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi

Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Crea forum gratis, gestisci la tua comunità! Iscriviti a FreeForumZone
FreeForumZone [v.6.1] - Leggendo la pagina si accettano regolamento e privacy
Tutti gli orari sono GMT+01:00. Adesso sono le 11:32. Versione: Stampabile | Mobile
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com