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


Elementi di Informatica: Algoritmi e Programmazione, Slide di Sistemi automatici

Una introduzione all'elaboratore elettronico, alla programmazione e agli algoritmi. L'elaboratore elettronico è un strumento in grado di eseguire insiemi di azioni elementari su dati per produrre risultati. La programmazione consiste nell'preparare l'elaboratore per eseguire un insieme specifico di azioni su dati, al fine di risolvere un problema. Un algoritmo è una sequenza finita di azioni che risolve in un tempo finito una classe di problemi. La precisione, l'eseguibilità, la non-ambiguità e la finitezza sono caratteristiche importanti di un algoritmo.

Tipologia: Slide

2016/2017

Caricato il 03/04/2022

mirko-3
mirko-3 🇮🇹

4.2

(12)

47 documenti

1 / 25

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1
1
Elementi di informatica
Elementi di informatica
Problemi, algoritmi e programmi
2
L’ELABORATORE ELETTRONICO
Il calcolatore elettronico è uno strumento in
grado di
eseguire insiemi di azioni elementari
le azioni vengono eseguite su oggetti
(dati) per produrre produrre altri
oggetti (risultati)
l’esecuzione di azioni viene richiesta
all’elaboratore attraverso frasi scritte
in qualche linguaggio (istruzioni)
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19

Anteprima parziale del testo

Scarica Elementi di Informatica: Algoritmi e Programmazione e più Slide in PDF di Sistemi automatici solo su Docsity!

1

Elementi di informatica Elementi di informatica

Problemi, algoritmi e programmi

2

L’ELABORATORE ELETTRONICO

Il calcolatore elettronico è uno strumento in

grado di

• eseguire insiemi di azioni elementari

• le azioni vengono eseguite su oggetti

(dati) per produrre produrre altri

oggetti (risultati)

• l’esecuzione di azioni viene richiesta

all’elaboratore attraverso frasi scritte

in qualche linguaggio ( istruzioni )

3

PROGRAMMAZIONE

L’attività con cui si predispone l’elaboratore a

eseguire un particolare insieme di azioni su

particolari dati , allo scopo dirisolvere un

problema

I N P U T D A T I

Elaboratore

Elettronico

O U T P U T R I S U L T A T I

4

agente di calcolo

Uno degli scopi fondamentali dell’informatica è:

la risoluzione di problemila risoluzione di problemi

problema = compito che si vuole far risolvere

automaticamente al calcolatore

Problem solving Problem solving

7

Esempio: somma Esempio: somma

n 1 , n 2 totale

totale

n 1 + n 2

totale

n 1 + n 2

8

RISOLUZIONE DI PROBLEMI

La descrizione del problema non fornisce (in generale) un metodo per risolverlo.

  • Affinché un problema sia risolvibile è però necessario che la sua definizione sia chiara e completa

Non tutti i problemi sono risolvibili attraverso l’uso del calcolatore. Esistono classi di problemi per le quali la soluzione automatica non è proponibile.

Ad esempio:

  • se il problema presenta infinite soluzioni
  • per alcuni dei problemi non è stato trovato un metodo risolutivo
  • per alcuni problemi è stato dimostrato che non esiste un metodo risolutivo automatizzabile

9

RISOLUZIONE DI PROBLEMI RISOLUZIONE DI PROBLEMI

La risoluzione di un problema è il processo

che, dato un problema e individuato un

opportuno metodo risolutivo, trasforma i dati

iniziali nei corrispondenti risultati finali.

Affinché la risoluzione di un problema possa

essere realizzata attraverso l’uso del

calcolatore, tale processo deve poter essere

definito comesequenza di azioni elementari.

10

Attività per risolvere un problema Attività per risolvere un problema

  1. Comprendere il problema

2. Definire un procedimento risolutivo (algoritmo)

  1. Implementare l’algoritmo in un linguaggio di programmazione
  2. Prova
  3. Documentazione
  4. Manutenzione

13

Algoritmo Algoritmo

Descrizione rigorosa Un algoritmo è una sequenza finita di azioni che risolve in un tempo finito unaclasse di problemi.

L'esecuzione delle azioninell'ordine specificato dall'algoritmo consente di ottenere, a partire dai dati di ingresso, i risultati che risolvono il problema di ingresso

RISULTATI

ESECUTORE una macchina astratta capace di eseguire le azioni Esecutore^ specificate dall’algoritmo.

Metodo Risolutivo (algoritmo )

DATI

14

Considerazioni Considerazioni

1. Suddivisione in sottoproblemi

2. Precisione dell’algoritmo cresce al

diminuire delle capacità dell’agente di

calcolo

15

Caratteristiche di un algoritmo Caratteristiche di un algoritmo

Eseguibilità : ogni azione dev’essere essere

eseguibile dall’esecutorein un tempo finito

Non-ambiguità : ogni azione deve essere

univocamente interpretabile dall'esecutore

Finitezza : il numero totale di azioni da

eseguire, per ogni insieme di dati di ingresso,

deve essere finito

16

Caratteristiche di un algoritmo Caratteristiche di un algoritmo

Quindi, l’algoritmo deve: essereapplicabile a

qualsiasi insieme di dati di ingresso appartenenti al

dominio di definizione dell’algoritmo

essere costituito da operazioni appartenenti ad un

determinato insieme di operazioni fondamentali

essere costituito da regole non ambigue , cioè

interpretabili in modo univoco qualunque sia

l’esecutore (persona o “macchina”) che le legge

19

Esempio: gestione biblioteca Esempio: gestione biblioteca

™ Libri disposti sugli scaffali

™ La posizione di ogni libro è fissa ed è individuata da due coordinate:

  • numero dello scaffale
  • posizione nello scaffale

™ La biblioteca è dotata di uno schedario (ordinato per autore/i e titolo). Ogni scheda contiene, nell’ordine:

  • Cognome e nome dell’autore
  • Titolo del libro
  • Numero dello scaffale
  • Posizione attribuita al libro nello scaffale

20

Esempio di scheda Esempio di scheda

Autore: Manzoni

Titolo: I promessi Sposi

Scaffale: 33

Posizione: 13

Autore: Manzoni

Titolo: I promessi Sposi

Scaffale: 33

Posizione: 13

21

Problema Problema

Trovare un libro??

22

Formulazione dell’algoritmo Formulazione dell’algoritmo

1. Cerca la scheda del libro nello schedario

2. Segnati numero scaffale e posizione

3. Cerca lo scaffale indicato

4. Accedi alla posizione indicata e preleva il

libro

Questo modo incrementale di procedere si dice top-down o anche procedimento per raffinamenti successivi

25

Autore: Manzoni Titolo: Scaffale: 33 Posizione: 13

Autore: Manzoni Titolo: Scaffale: 33 Posizione: 13

Cosa succede se l’autore cercato è Cosa succede se l’autore cercato è

Zuzzurellone?Zuzzurellone?

Autore: Alighieri Titolo: La Divina Commedia Scaffale: 5 Posizione: 10

Autore: Alighieri Titolo: La Divina Commedia Scaffale: 5 Posizione: 10

Autore: Zuzzurellone Titolo: Scaffale: 33 Posizione: 13

Autore: Verga Titolo: Scaffale: 33 Posizione: 13

Autore: Petrarca Titolo: Scaffale: 33 Posizione: 13

Autore: Manzoni Titolo: I promessi Sposi Scaffale: 33 Posizione: 13

Autore: Leopardi Titolo: Scaffale: 33 Posizione: 13

Autore: Alighieri Titolo: La Divina Commedia Scaffale: 5 Posizione: 10

Autore: Alighieri Titolo: La Divina Commedia Scaffale: 5 Posizione: 10

schedario

Autore: Zuzzurellone Titolo: Scaffale: 33 Posizione: 13

Autore: Goldoni Titolo: Scaffale: 33 Posizione: 13

Autore: Petrarca

Titolo: Scaffale: 33 Posizione: 13

Autore: Manzoni

Titolo: Scaffale: 33 Posizione: 13

Autore: Leopardi

Titolo: Scaffale: 33 Posizione: 13

Autore: Goldoni

Titolo: Scaffale: 33 schedario Posizione: 13

26

Secondo sotto- Secondo sotto-algoritmo di ricercaalgoritmo di ricerca

  1. Esamina la scheda centrale dello schedario
  2. Se la scheda centrale corrisponde al libro cercato allora la ricerca termina
  3. In caso contrario, prosegui allo stesso modo nella metà superiore o inferiore dello schedario a seconda che il libro cercato segua o preceda quello indicato sulla scheda

27

Cosa succede ora se l’autore cercato Cosa succede ora se l’autore cercato

è Zuzzurellone?è Zuzzurellone?

28

Autore: Verga Titolo: Scaffale: 33 Posizione: 13

Autore: Zuzzurellone Titolo: Scaffale: 44 Posizione: 12

Cosa succede ora se l’autore cercato Cosa succede ora se l’autore cercato

è Zuzzurellone?è Zuzzurellone?

Autore: Alighieri Titolo: La Divina Commedia Scaffale: 5 Posizione: 10

Autore: Alighieri Titolo: La Divina Commedia Scaffale: 5 Posizione: 10

Autore: Petrarca Titolo: Scaffale: 33 Posizione: 14

Autore: Manzoni Titolo: I promessi Sposi Scaffale: 33

Autore:^ Posizione: Leopardi^13 Titolo: Scaffale: 33 Posizione: 13

Autore: Goldoni Titolo: Scaffale: 33 Posizione: 13

schedario

31

Qualità degli algoritmi Qualità degli algoritmi

Due qualità fondamentali di un algoritmo:

  • Correttezza l’algoritmo permette effettivamente di risolvere il problema
  • Efficienza l’esecuzione dell’algoritmo richiede un uso limitato di risorse un algoritmo è tanto più efficiente quanto meno risorse richiede per la sua esecuzione. Una risorsa importante è il tempo di esecuzione

32

Esempio: gestione biblioteca Esempio: gestione biblioteca

  • Entrambi gli algoritmi di ricerca sono

corretti

  • Il secondo algoritmo è più efficiente

del primo

33

Altre qualità degli algoritmi Altre qualità degli algoritmi

  • leggibilità essere facilmente comprensibile
  • modificabilità essere facilmente modificabile, a fronte di (piccole) modifiche nelle specifiche del problema risolto dall’algoritmo
  • parametricità
  • riusabilità

34

Esempi Esempi

Soluzione dell’equazione ax+b=

  • leggi i valori di a e b
  • calcola calcola -b
  • dividi quello che hai ottenuto per a e chiama x il risultato
  • stampa x Calcolo del massimo di un insieme –Scegli un elemento come massimo provvisoriomax –Per ogni elementoi dell’insieme: se i>max eleggii come nuovo massimo provvisoriomax –Il risultato èmax NOTA NOTA I passi sono eseguiti in sequenza e l’ordine delle istruzioni è essenziale per la correttezza dell’algoritmo

37

Implementazione di un algoritmo Implementazione di un algoritmo

Algoritmo deve essere trascritto in un linguaggio

Linguaggi

Linguaggi artificiali

usati in informatica: linguaggi di programmazione

Linguaggi naturali

usato dagli uomini per comunicare ™complessi ™ambigui

38

ALGORITMI E ALGORITMI E ALGORITMI E ALGORITMI E

PROGRAMMIPROGRAMMI

Ogni elaboratore è una macchina in grado di eseguire azioni elementari su oggetti detti DATI.

  • L’esecuzione delle azioni è richiesta all’elaboratore tramite comandi elementari chiamati ISTRUZIONI espresse attraverso un opportuno formalismo: il LINGUAGGIO di PROGRAMMAZIONE.
  • La formulazione testuale di un algoritmo in un linguaggio comprensibile a un elaboratore è detta programma.

Un programma è la formulazione testuale, in un certo linguaggio di programmazione, di un algoritmo che risolve un datoproblema.

39

Alcuni linguaggi di programmazione Alcuni linguaggi di programmazione

“famosi”“famosi”

  • FORTRAN: metà degli anni ’ ( FOR mula TRAN slator)
  • COBOL: metà degli anni ’ ( C ommon B usiness- O riented L anguage)
  • Pascal: inizio degli anni ’ (nome dal matematico francese Blaise Pascal che fu il primo ad ideare una macchina calcolatrice: la Pascalina)
  • C: inizio degli anni ’ suo antenato: linguaggio B
  • Prolog: inizio degli anni ’ ( PRO gramming in LOG ic)

Linguaggi ad alto

livello

40

Il linguaggio C Il linguaggio C

™ Il linguaggio C è stato sviluppato intorno al 1972, nei Bell Laboratories AT&T americani, da Dennis Ritchie

™ E’ nato come linguaggio di sviluppo del Sistema Operativo UNIX