Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Introduzione all'analisi e progettazione di algoritmi, Appunti di Lingua Inglese

Una introduzione alle istruzioni di base per la descrizione e la progettazione di algoritmi. Viene discusso il concetto di raffinamento, la progettazione top-down, la differenza tra linguaggi di alto e basso livello, e la struttura dei programmi. Inoltre, vengono presentati costrutti condizionali a più vie e iterativi, nonché la modularità e l'uso di sottoprogrammi.

Tipologia: Appunti

2017/2018

Caricato il 15/05/2018

rosa-tamburrino
rosa-tamburrino 🇮🇹

4.3

(39)

26 documenti

1 / 36

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Introduzione all’Analisi dei Dati
L06 Dallalgoritmo al
programma
Università degli Studi “Suor Orsola Benincasa
Facoltà di Scienze della Formazione
Corso di Laurea in Scienze e Tecniche di Psicologia Cognitiva
A.A. 2017/2018
Prof. Roberta Presta
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24

Anteprima parziale del testo

Scarica Introduzione all'analisi e progettazione di algoritmi e più Appunti in PDF di Lingua Inglese solo su Docsity!

Introduzione all’Analisi dei Dati

L06 – Dall’algoritmo al

programma

Università degli Studi “Suor Orsola Benincasa” Facoltà di Scienze della Formazione Corso di Laurea in Scienze e Tecniche di Psicologia Cognitiva A.A. 2017/ Prof. Roberta Presta

Argomenti

u La descrizione degli algoritmi

u Linguaggi di programmazione di alto e basso livello

u Caratteristiche fondamentali dei linguaggi di programmazione

u I concetti di variabile e tipo

u I costrutti di sequenza, selezione, iterazione

u L’Ora del codice da Programma il Futuro

La descrizione degli algoritmi

u Un programma è la descrizione di un algoritmo in un linguaggio di

programmazione comprensibile all’esecutore

u Per realizzare un programma, dato un problema bisogna …

u … capire preliminarmente se il problema ammette soluzioni u … nel caso ne ammetta, individuare un metodo risolutivo (algoritmo) u …. esprimere tale metodo in un linguaggio comprensibile all'esecutore a cui è rivolto

La descrizione degli algoritmi: un

esempio

Descrivere l’algoritmo per correggere gli errori lessicali presenti

nel testo in ingresso

Costrutti

u Per esprimere un algoritmo in linguaggio naturale, si usano dei costrutti che

determinano l'ordine in cui le diverse azioni devono essere svolte

u Il più semplice tra essi è quello che stabilisce che le azioni devono essere svolte una dopo l'altra ( sequenza ) u Un altro costrutto comune ci consente di indicare che alcune azioni devono essere svolte solo se si verificano determinate condizioni ( selezione ) u Esempio: la frase "se la parola è sbagliata, allora correggi, altrimenti non fare niente" prescrive la correzione soltanto in presenza di un errore. u Un ultimo costrutto ci dice che alcune azioni devono essere ripetute un certo numero di volte ( iterazione ) u Esempio: «per ogni parola del rigo, fai le seguenti operazioni», «ripeti le operazioni da 1 a 4 fino alla terminazione del testo»

Istruzioni

u Un’altra componente fondamentale della descrizione dell’algoritmo è

costituita dalle istruzioni

u Le istruzioni sono le frasi che prescrivono l’esecuzione di determinate

operazioni

u Si dividono in:

u Elementari: istruzioni note all’esecutore (l’esecutore è direttamente in grado di eseguirle); u non elementari: quelle non note all'esecutore (devono essere scomposte in istruzioni semplici per poter essere eseguite dall’esecutore)

u Il procedimento che trasforma una istruzione non elementare in un insieme di

istruzioni elementari, prende il nome di raffinamento

Dall’algoritmo al programma

u Per rendere un algoritmo eseguibile da un certo esecutore:

u Si parte dalla sua descrizione in linguaggio naturale u Si esegue il processo di raffinamento in modo da esprimere tutte le istruzioni non elementari in termini di istruzioni appartenenti al “repertorio” dell’esecutore u Si traduce quindi l’algoritmo in un linguaggio di programmazione comprensibile all’esecutore, ottenendo così il programma vero e proprio

Linguaggio di programmazione

u Il linguaggio di programmazione è una notazione formale per descrivere gli

algoritmi

u Come ogni linguaggio, è dotato di una sua grammatica …

  • un alfabeto
  • un lessico
  • una sintassi
  • una semantica

u …cioè di regole rigide per la composizione di programmi

u Si possono distinguere linguaggi di programmazione di alto livello e di basso

livello

Linguaggi di alto livello

u Leistruzioni dei linguaggi di basso livello esprimono funzionalità molto elementari

u la costruzione di ogni algoritmo in tali linguaggi richiede un gran numero di comandi ed è particolarmente onerosa

u Per superare queste ed altre difficoltà esistono i linguaggi cosiddetti di alto livello

u Linguaggi di alto livello

  • rendono l'attività di programmazione più semplice
  • usano istruzioni “più sintetiche”
  • Le istruzioni sono più vicine al tradizionale modo di esprimere i procedimenti di calcolo da parte di un essere umano - Sono espresse in uno pseudo-linguaggio umano, utilizzando parole-chiave o codici operativi ispirati alla lingua inglese
  • Opportuni programmi (“compilatori” e “interpreti”) traducono i programmi in linguaggio macchina

Realizzazione dei programmi di piccole

dimensioni

u Fasi

u Analisi del problema : comprensione del “cosa” si deve fare e definizione dei requisiti della soluzione u Progettazione della soluzione : comprensione del «come» si deve costruire la soluzione (algoritmo) u Programmazione: implementazione della soluzione nel linguaggio di programmazione scelto u Verifica: fase di test in cui si controlla che la soluzione costruita soddisfi i requisiti!

Frasi di un linguaggio di

programmazione di alto livello

  • Tutti i linguaggi di alto livello prevedono quattro tipologie di frasi diverse:
    1. le istruzion i, che tradotte in linguaggio macchina indicano al processore le operazioni da svolgere;
    2. le strutture di controllo che definiscono l’ordine di esecuzione delle istruzioni;
    3. le frasi di commento che permettono l’introduzione di frasi in linguaggio naturale utili a rendere più comprensibili i programmi ad un lettore umano
    4. le dichiarazioni rivolte al traduttore con le quali il programmatore da ordini al traduttore del linguaggio di programmazione;

Il concetto di variabile e di tipo

u Questi concetti sono fondamentali in tutti i linguaggi di programmazione:

u Variabile

u Rappresenta l’informazione da manipolare tramite il programma u Ad essa vengono associati: u un nome identificativo u un tipo u un’area di memoria atta a contenere un valore di quel tipo u la dimensione di tale area e le relative regole d’uso di tale area dipendono dal tipo della variabile

u Tipo

u Insieme di valori a cui sono associati delle operazioni definite su essi u Esempio: il tipo «numero intero», il tipo «carattare», il tipo «numero reale», …

Commenti

  • Frasi in linguaggio naturale che non vengono tradotte in linguaggio macchina
  • Consentono di migliorare la leggibilità^ e la chiarezza del programma
  • Per indicare le frasi di commento, si usano delle sequenze di caratteri

speciali ( “marcatori” )

  • Esempi:
    • Java, Swift: // questo è un commento
    • R: # commento in R Code for readability “Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live”

Costrutti di controllo

u I costrutti di controllo indicano all'esecutore l'ordine in cui le operazioni

devono essere eseguite

u Si distingue tra:

u Costrutti di sequenza u Costrutti di selezione o costrutti condizionali u A due vie o a più vie u Costrutti di iterazione