Laboratorio di Linguistica Computazionale

Slides:



Advertisements
Presentazioni simili
Fondamenti di Informatica Algoritmi
Advertisements

Elementi di Informatica
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
Unità di apprendimento 6 Dal problema al programma.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia
Programmazione: Iterazione Esistono tre tipi di iterazione fondamentali e vedremo la corrispondenza dei relativi diagrammi a blocchi e la loro traduzione.
1 Elementi DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
INFORMATICA ALGORITMI, PROGRAMMI, E LINGUAGGI DI PROGRAMMAZIONE.
Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica PROBLEMI E ALGORITMI LINGUAGGIO MACCHINA.
CONTROLLO DELLA CONCORRENZA
Basi di dati - Fondamenti
Algoritmo algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta.
© 2007 SEI-Società Editrice Internazionale, Apogeo
LA PROGRAMMAZIONE: Algoritmi e programmi
La rappresentazione degli algoritmi
CODING.
Pensiero Computazionale
Prova d’Esame: selezione di domande
Algoritmi Avanzati a.a.2014/2015 Prof.ssa Rossella Petreschi
Il Sistema Operativo Programmazione Concorrente
Algoritmi Avanzati a.a.2015/2016 Prof.ssa Rossella Petreschi
Introduzione al linguaggio C
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Dal problema al processo risolutivo
Algoritmi e soluzioni di problemi
IL CONCETTO DI ALGORITMO
Dal problema al processo risolutivo
Unità di apprendimento 7
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
Universita’ di Milano Bicocca Corso di Basi di dati 1 in eLearning C
I FILES AD ACCESSO SEQUENZIALE
JAVA usa una rappresentazione in VIRGOLA MOBILE
Forme per rappresentare l’algoritmo:
Tipo di dato: array Un array è un tipo di dato usato per memorizzare una collezione di variabili dello stesso tipo. Per memorizzare una collezione di 7.
il problema dei problemi
CICLO DO – WHILE LINGUAGGIO C.
Rappresentazione dei Numeri
Programmazione e Laboratorio di Programmazione
Classe III A A.s – 2012 Programma di Informatica
IL CONCETTO DI ALGORITMO
Programmazione e Laboratorio di Programmazione
Basi di dati - Fondamenti
Programmare.
Programmazione e Laboratorio di Programmazione
© 2007 SEI-Società Editrice Internazionale, Apogeo
Dall’analisi del problema alla definizione dell’algoritmo
Strutture di Controllo
I numeri relativi DEFINIZIONE. Si dicono numeri relativi tutti i numeri interi, razionali e irrazionali dotati di segno (positivo o negativo). ESEMPI Numeri.
Programmazione e Laboratorio di Programmazione
Questa presentazione può essere utilizzata come traccia per una discussione con gli spettatori, durante la quale potranno essere assegnate delle attività.
Ricorsione 16/01/2019 package.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
© 2007 SEI-Società Editrice Internazionale, Apogeo
Definizione di linguaggio di programmazione
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
La struttura dei primi programma in C
Teoria della computabilità
Programmazione e Laboratorio di Programmazione
Il Diagramma di Flusso Docente: Maria Savina Rossi Alunne:
Programmazione e Laboratorio di Programmazione
Unità 1 Programmi base.
Unità D2 Dal problema all’algoritmo
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Array e Stringhe Linguaggio C.
Informatica CdL Scienze e Tecniche Psicologiche a.a
La programmazione strutturata
ALGORITMO E’ una successione finita di passi che consente di risolvere tutti i problemi di una classe e di determinare il risultato. Caratteristiche: Finito.
Programmazione e Laboratorio di Programmazione
Transcript della presentazione:

Laboratorio di Linguistica Computazionale Basi di programmazione

https://linguisticacomputazionale.wordpress.com/ Contatti e materiale Prof. Franco Di Maio: dimaio@unisa.it Dott. Alessandro Maisto: amaisto@unisa.it Materiale e slide: https://linguisticacomputazionale.wordpress.com/

Cosa vuol dire programmare La programmazione consiste nella scrittura di un testo, chiamato programma sorgente, che descrive, in termini di istruzioni note alla macchina, la soluzione del problema in oggetto. Ricerca il valore massimo in una serie di numeri Non esiste una sola soluzione ad un certo problema; potrebbero esistere numerose soluzioni La programmazione consiste nel trovare la strada più efficiente che conduce alla soluzione del problema in oggetto

Cosa vuol dire programmare Si tratta di un’operazione creativa poiché si può dire che non esista un problema uguale ad un altro né soluzioni universali Diversi programmatori scrivono diversi programmi per risolvere lo stesso problema, raggiungendo risultati ugualmente efficienti Scrivere un programma significa adottare la logica funzionale della macchina alle esigenze operative di un certo problema, secondo uno svolgimento sequenziale Le esigenze operative del problema scaturiscono dalla logica risolutiva idonea al conseguimento dei risultati La logica funzionale di macchina è l’insieme di operazioni elementari che questa è in grado di svolgere Per svolgimento sequenziale si intende la successione nel tempo delle operazioni elementari

Cosa vuol dire programmare La prima tappa nella risoluzione di un problema è la determinazione del meccanismo di soluzione. Questo meccanismo, ancora slegato dal programma finale, è detto Algoritmo. Un Algoritmo è una descrizione che specifica una serie di operazioni, eseguendo le quali è possibile risolvere un determinato problema Scrivere un algoritmo per il calcolo della moltiplicazione conoscendo solo la somma e la sottrazione

Cosa vuol dire programmare

Stadi dello sviluppo di un programma Delineazione del problema Ricerca della soluzione migliore Conversione dell’idea in una soluzione formale, ovvero in un testo che descrive la soluzione in modo formale (Algoritmo) Traduzione dell’algoritmo in una sequenza di istruzioni comprensibili all’esecutore (l’elaboratore elettronico). Questa sequenza è il Programma Sperimentazione del programma con un insieme significativo di dati per garantirne il funzionamento in ogni occasione Documentazione del programma a beneficio di chi lo utilizzerà in futuro

Esempio di flusso Problema: calcolo del massimo tra due valori A e B Soluzione: il massimo è il più grande tra A e B Soluzione formale: Max iniziale = 0 Se A>B allora max = A; stop Altrimenti max = B; stop

Difficoltà Punti critici nello sviluppo del programma: Sviluppo della soluzione informale Formalizzazione della soluzione per rendere l’operazione facilmente traducibile in istruzioni del linguaggio di programmazione (sviluppo dell’algoritmo)

Gli Algoritmi Un Algoritmo è una sequenza di operazioni atte a risolvere un dato problema Esempi quotidiani di Algoritmi: Ricette di cucina Istruzioni d’uso di elettrodomestici Regole per guidare un’automobile da un dato punto ad un altro Un algoritmo descrive operazioni di diversa natura che, però, devono possedere delle caratteristiche ben precise

Gli Algoritmi Ogni operazione deve produrre, se eseguita, un effetto osservabile che possa essere descritto L’operazione di spostare un tavolo produce un effetto descritto specificando la disposizione dei mobili nella stanza prima e dopo lo spostamento Allo stesso modo, pensare o pensare al numero 5, non possono essere considerate operazioni poiché il loro effetto non può essere osservato o descritto Ogni operazione deve produrre lo stesso effetto ogni volta che viene eseguita a partire dalle stesse condizioni iniziali (determinismo) Se X vale 5 e Y vale 10, ogni volta che sommeremo X a Y con quei valori iniziali, il risultato dovrà essere sempre 15

Gli Algoritmi L’esecuzione di un algoritmo da parte di un esecutore (umano o macchina), si traduce in una successione di operazioni che vengono effettuate nel tempo in un processo sequenziale Un processo sequenziale è una serie di eventi che occorrono uno dopo l’altro, ognuno con un inizio ed una fine bene identificabile Il processo può essere fisso: sempre lo stesso per ogni esecuzione Talvolta l’algoritmo può evocare più processi sequenziali differenti a seconda delle condizioni iniziali:

Gli Algoritmi Calcolo dell’importo di una fattura (processo fisso) cerca l'aliquota IVA sulla tabella; moltiplica l'importo netto per l'aliquota trovata; somma il risultato all'importo netto. Calcolo dell’importo di una fattura con possibilità che la merce sia soggetta a IVA SE la merce da fatturare è soggetta a IVA ALLORA Cerca la corretta aliquota IVA sulla tabella e moltiplica l'importo per l'aliquota trovata. Somma il risultato all'importo netto. ALTRIMENTI - Tieni conto solo dell'importo di partenza

Gli Algoritmi Nel secondo caso il processo dipende dai dati da elaborare. Il processo descrive un insieme costituito da due sequenze di esecuzione diverse Il numero di sequenze d’esecuzione descritte da uno stesso algoritmo non è noto a priori e può essere infinto solleva il ricevitore; componi il numero; SE qualcuno risponde ALLORA conduci la conversazione ALTRIMENTI deponi il ricevitore e RIPETI L'INTERO PROCEDIMENTO

Generare un algoritmo per la ricerca del massimo tra 4 numeri Gli Algoritmi L’algoritmo descrive infinite sequenze di esecuzione, corrispondenti al fatto che la telefonata riesca al 1, 2, 3, …N tentativo Si potrà avere un processo ciclico che potrebbe non avere mai termine se l’interlocutore non risponde mai al telefono Generare un algoritmo per la ricerca del massimo tra 4 numeri

Generare un algoritmo per la ricerca del massimo tra 4 numeri Gli Algoritmi Generare un algoritmo per la ricerca del massimo tra 4 numeri

Gli Algoritmi il processo descritto non è ottimizzato ma valido solo per sequenze di quattro numeri. Se volessimo trovare il massimo tra 5 o più numeri? Per operazioni su elementi della stessa specie i dati vanno Strutturati, ad esempio in un vettore caratterizzato da etichette e indici N[1], N[2]… genericamente N[i], dove la ‘i’ rappresenta l’etichetta dell’indice

Gli Algoritmi È possibile generalizzare l’algoritmo rispetto al numero di elementi trattati: Indicare il numero di elementi come parametro (variabile) Anziché 4 elementi si parlerà genericamente di num_dati elementi Il valore di num_dati potrà essere stabilito di volta in volta.

I linguaggi di programmazione Essendo il linguaggio un’astrazione, esistono alcuni fondamentali elementi sintattici essenziali per l’uso del linguaggio stesso: Parole chiave (Keyword) Dati Identificatori Istruzioni

Le Parole Chiave Sono vocaboli riservati al traduttore per riconoscere elementi del linguaggio Tutte le istruzioni sono identificate da una keyword. I.e. PRINT è la keyword che identifica il comando di visualizzazione su schermo Non possono essere usate per altri scopi (sono riservate al traduttore o interprete) Costituiscono i mattoni della sintassi del linguaggio

I dati Per il calcolatore il dato è un insieme di bit memorizzato in memoria centrale Per l’utente il dato è una quantità associata ad un certo significato Il linguaggio di programmazione permette di visualizzare il dato contenuto nel calcolatore dall’utente Il dato è identificato da: Un nome (identificatore) Una rappresentazione (tipo) Una modalità di accesso (variabile, costante)

I dati L’identificatore indica il nome di un dato in un programma il nome deve essere unico all’interno del suo ambiente di esistenza Es: somma, volume, diametro Il tipo stabilisce il codice con cui i dati sono rappresentati in memoria Numeri interi, numeri frazionari, caratteri ASCII ecc. Definisce la capienza di quel dato (l’intervallo di valori che può assumere) Definisce quali operatori possono agire su quel dato Modalità di accesso ai dati: Variabili, modificabili in qualunque punto del programma Costanti, dati di sola lettura il cui valore è assegnato una volta per tutte

Le istruzioni Sono le operazioni che il linguaggio è in grado di eseguire: Pseudoistruzioni: non sono eseguibili ma si tratta di direttive i cui effetti sono visibili durante l’esecuzione delle istruzioni eseguibili Istruzioni elementari: sono operazioni più o meno riconducibili a operazioni dirette sull’hardware della macchina quali operazioni di input/output, lettura di dati dalla memoria, ecc. Istruzioni di controllo del flusso: permettono di eseguire strutture complesse quali if- then-else, while-do, repeat-until

Esempio di programma

Linguaggi di programmazione Imparare un linguaggio significa conoscere le Keyword, i tipi predefiniti, le istruzioni e la loro sintassi durante il corso verrà appreso il linguaggio Python