I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio



Documenti analoghi
Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Elementi di Informatica e Programmazione

ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Problemi, Algoritmi e Programmi

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Fasi di creazione di un programma

Introduzione. Informatica B. Daniele Loiacono

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Descrizione di un algoritmo

Nozione di algoritmo. Gabriella Trucco

Processo di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico

Lezione 8. La macchina universale

Linguaggi e Paradigmi di Programmazione

Come ragiona il computer. Problemi e algoritmi

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Metodologie di programmazione in Fortran 90

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.

Algoritmi. Maurizio Palesi. Maurizio Palesi 1

Linguaggi di programmazione

Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

Corso di Informatica

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

TECNOLOGIE INFORMATICHE DELLA COMUNICAZIONE ORE SETTIMANALI 2 TIPO DI PROVA PER GIUDIZIO SOSPESO PROVA DI LABORATORIO

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Appunti sulla Macchina di Turing. Macchina di Turing

Linguaggi di programmazione

ALGEBRA DELLE PROPOSIZIONI

Fondamenti di Informatica. Docenti: Prof. Luisa Gargano Prof. Adele Rescigno BENVENUTI!

Appunti di Sistemi Elettronici

Funzionalità di un Algoritmo

Introduzione alla programmazione in C

Cos è un Calcolatore?

Appunti del corso di Informatica 1 (IN110 Fondamenti) 4 Linguaggi di programmazione

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

LINGUAGGI DI PROGRAMMAZIONE

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Origini e caratteristiche dei calcolatori elettronici

Informatica. appunti dalle lezioni del 20/09/2011 e del 27/09/2011

I sistemi di numerazione

Fondamenti di Informatica PROBLEMI E ALGORITMI. Fondamenti di Informatica - D. Talia - UNICAL 1

Progettazione concettuale

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

Dall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Programmi. Algoritmi scritti in un linguaggio di programmazione

ISTITUTO TECNICO ECONOMICO MOSSOTTI

Automazione Industriale (scheduling+mms) scheduling+mms.

Informazione e dato. Gabriella Trucco

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Informatica per le discipline umanistiche 2 lezione 14

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Il concetto di informatica. Bogdan Maris ( )

INFORMATICA GENERALE. Prof Alberto Postiglione Dipartim. Scienze della Comunicazione Univ. Salerno. Università degli Studi di Salerno

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Esempio. Risoluzione di un Problema

Sviluppo Applicazioni Mobile Lezione 7. Dr. Paolo Casoto, Ph.D

Dispensa di Informatica I.1

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

FONDAMENTI di INFORMATICA L. Mezzalira

Scienze della Comunicazione Università di Salerno. UD 3.2a: Introduzione alla Programmazione

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

Fondamenti dei linguaggi di programmazione

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

Introduzione alla Programmazione Orientata agli Oggetti. Classi, Oggetti e Messaggi

Programmi e Oggetti Software

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

(anno accademico )

Strumenti di modellazione. Gabriella Trucco

Algoritmi, dati e programmi

Macchine a stati finiti. Sommario. Sommario. M. Favalli. 5th June 2007

Corso di INFORMATICA 2 (Matematica e Applicazioni)

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Piano di gestione della qualità

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

Trasformazione dei Processi in Progetti DIB 1

Calcolatori: Algebra Booleana e Reti Logiche

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

DATABASE. A cura di Massimiliano Buschi

IL SISTEMA INFORMATIVO

Gestione del workflow

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

Gli algoritmi: definizioni e proprietà

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Linguaggio C. Fondamenti. Struttura di un programma.

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

La Macchina Virtuale

Macchine a stati finiti. Sommario. Sommario. M. Favalli. Le macchine a stati si utilizzano per modellare di sistemi fisici caratterizzabili mediante:

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Modulo 1. Concetti di base della Tecnologia dell Informazione ( Parte 1.1)

Il calcolatore - Applicazioni

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

Pianificazione e progettazione

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

DFD DISPENSA DEL CORSO DI SISTEMI INFORMATIVI UNIVERSITÀ DEGLI STUDI DI VERONA FACOLTÀ DI MM.FF.NN LAUREA SPECIALISTICA IN INFORMATICA

I casi d uso corrispondono ai compiti che l attore (che può essere una persona fisica e non) può svolgere.

Architettura di un calcolatore

Transcript:

Il Concetto Intuitivo di Calcolatore Fondamenti di Informatica A Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini I Problemi e la loro Soluzione Problema: classe di domande omogenee alle quali è possibile dare risposta mediante una procedura uniforme Istanza del problema: ogni specifica domanda della classe Variabili di ingresso: termini variabili che caratterizzano la formulazione di un problema Variabili di uscita: termini variabili che caratterizzano le soluzioni attese di un problema Dati: valori che possono assumere le variabili d ingresso Risultati: valori che possono assumere le variabili d uscita Soluzione di un istanza di un problema: risposta alla specifica domanda che l istanza rappresenta Fondamenti di Informatica A Università di Brescia 2 Variabile di uscita Classe di domande omogenee Dati = N (numeri naturali) Risultati = R (numeri reali) Esempio Problema Quanto vale la radice quadrata Y di un numero naturale X? Istanza Quanto vale la radice quadrata intera Y di 49? Variabile di ingresso Soluzione dell istanza = 7 Risoluzione di un Problema Procedimento di risoluzione di un problema Analisi del problema e individuazione di un metodo di soluzione Descrizione della soluzione Interpretazione della soluzione Attuazione della soluzione ATTENZIONE: soluzione del problema e soluzione dell istanza non sono la stessa cosa! Fondamenti di Informatica A Università di Brescia 3 Fondamenti di Informatica A Università di Brescia 4

Problema Analisi Processo di risoluzione Individuazione soluzione Formulazione descrizione Descrizione soluzione Soggetto 1 Esempio: montaggio di un elettrodomestico SOGGETTO 1 Conoscenza di come si risolve il problema Es. progettista di un elettrodomestico SOGGETTO 2 oppure Soggetto 2 Interpretazione descrizione Descrizione interpretata Attuazione soluzione Soluzione Effettiva capacità di risolvere il problema Es. l acquirente dell elettrodomestico Fondamenti di Informatica A Università di Brescia 5 Fondamenti di Informatica A Università di Brescia 6 Analisi del Problema L analisi di un problema consiste in: Comprensione del problema: eliminando ogni ambiguità nella sua formulazione, focalizzando gli obiettivi, evidenziando i dati impliciti ed espliciti del problema Modellazione del problema: creando un modello Ricerca della soluzione Modellazione del Problema Cos è un modello? Dato un certo problema, un modello del problema è una rappresentazione semplificata del problema stesso che evidenzia: Gli elementi del problema Le loro proprietà e le relazioni fra di essi Un modello è solo un ausilio alla risoluzione del problema, non è sufficiente da solo a risolvere il problema E importante che la soluzione trovata sul modello possa essere interpretata correttamente in modo da essere trasferita sulla realtà Fondamenti di Informatica A Università di Brescia 7 Fondamenti di Informatica A Università di Brescia 8

Mondo reale Relazione tra Realtà e Modello analisi Un MODELLO è un astrazione del problema. Rappresenta una semplificazione completa e autoconsistente della realtà, creata per comprendere il problema Astrae dai dettagli irrilevanti del mondo MODELLO f(x) = g'(y) h(z) Un esempio di problema e di soluzione Problema: come si fa una telefonata? Soluzione: Solleva il ricevitore Componi il numero Attendi il segnale di libero Se arriva il segnale di libero allora attendi che venga qualcuno a rispondere altrimenti riaggancia Se dopo un po non arriva nessuno a rispondere allora riaggancia altrimenti fai la tua conversazione Quali sono le istanze del problema? Fondamenti di Informatica A Università di Brescia 9 Fondamenti di Informatica A Università di Brescia 10 Soluzioni e Algoritmi La soluzione è quindi espressa come sequenza di operazioni la cui esecuzione porta alla soluzione del problema ALGORITMO RISOLUTIVO DATI ALGORITMO (soluzione problema) SOLUZIONE (istanza) Procedura di Risoluzione di un Problema Problemi elementari (o primitivi) sono quei problemi la cui soluzione corrisponde all esecuzione di un azione elementare Azione elementare: azione che può essere direttamente eseguita da un esecutore Esempio: componi il numero può essere considerata un azione elementare, in quanto solitamente non occorre spiegare di più (tutto dipende però dal soggetto esecutore ) Risolvere un problema = risolvere un opportuna successione di problemi più semplici SCOMPOSIZIONE IN SOTTO-PROBLEMI Fondamenti di Informatica A Università di Brescia 11 Fondamenti di Informatica A Università di Brescia 12

Esempio di Scomposizione di un Problema Gestione di una biblioteca in cui: I libri sono disposti sugli scaffali La posizione di ogni libro è data da: numero dello scaffale e posizione nello scaffale Esiste un schedario in cui ogni scheda riporta le seguenti informazioni: Cognome e nome dell autore Titolo del libro Data di pubblicazione Numero dello scaffale in cui si trova Posizione nello scaffale Problema: Richiesta di un Libro Come procedo? Decido quale libro richiedere Prelevo il libro Il secondo passo va dettagliato, ovvero va scomposto in sotto-problemi (procedura per raffinamenti successivi o top-down) Fondamenti di Informatica A Università di Brescia 13 Fondamenti di Informatica A Università di Brescia 14 Il problema diventa Cercare la scheda Decido quale libro richiedere Cerco la scheda del libro nello schedario Mi segno numero dello scaffale e posizione nello scaffale Cerco lo scaffale Cerco il libro nella sua posizione all interno dello scaffale Prelevo il libro Non è un problema elementare! Scompongo in sotto-sotto-problemi: Prendo la prima scheda Il titolo, l autore e la data corrispondono a quelli del libro che sto cercando? Se sì allora ho individuato la scheda, altrimenti passo alla scheda successiva e ripeto il controllo Se le schede sono esaurite, allora il libro non esiste Esistono metodi più efficienti per risolvere lo stesso problema come fareste voi? Fondamenti di Informatica A Università di Brescia 15 Fondamenti di Informatica A Università di Brescia 16

Un metodo più efficiente (se lo schedario è ordinato) Esamino la scheda centrale dello schedario Se la scheda corrisponde al libro cercato allora termino la ricerca Altrimenti cerco (con lo stesso metodo) nella metà inferiore o superiore dello schedario, a seconda che il libro cercato preceda o segua il libro indicato sulla scheda Elaborazione di Informazione Una certa classe di problemi richiede l elaborazione di informazione (attraverso uno o più algoritmi) Problema di elaborazione dell informazione: insieme di dati di partenza e risultato ricercato Ogni soluzione di un problema è una procedura che genera un risultato sulla base dei dati di partenza NB: il passo 2 deve tener conto che se il libro potrebbe non esistere, diventa: se la scheda corrisponde al libro cercato oppure se la parte di schedario da esaminare è vuota allora termino la ricerca dati Elaborazione risultato Fondamenti di Informatica A Università di Brescia 17 Fondamenti di Informatica A Università di Brescia 18 Soggetto Esecutore Il soggetto esecutore (soggetto 2) deve essere in grado di interpretare la descrizione della soluzione Deve inoltre essere in grado di eseguire le azioni presenti nella descrizione interpretata Il Calcolatore come Esecutore (una prima definizione) Soluzione di un problema (programma - descrizione di un algoritmo -) Il calcolatore è un esecutore di soluzioni identificate e descritte da esseri umani (in genere un team di progettisti, programmatori e utenti) Caratteristiche di un calcolatore: linguaggio che è in grado di interpretare e istruzioni che è in grado di eseguire Quando/perchè usare un calcolatore come esecutore? Dati iniziali (assegnati a variabili di input) CALCOLATORE Risultati dell esecuzione in corrispondenza dei dati iniziali (assegnati a variabili di output) Fondamenti di Informatica A Università di Brescia 19 Fondamenti di Informatica A Università di Brescia 20

Caratteristiche di un Esecutore Il linguaggio che è in grado di interpretare Un linguaggio si fonda su un certo numero di simboli di un certo alfabeto A. Con i simboli si formano le parole; tra le parole si inseriscono connettivi a formare frasi Insieme delle azioni che è in grado di compiere Insieme delle regole che a ogni frase del linguaggio associano le relative azioni da compiere Risolvere le ambiguità Caratteristiche di un esecutore (in modo più formale) Il linguaggio che l esecutore è in grado di interpretare deve essere definito in termini formali: caratterizzazione sintattica dell esecutore L insieme delle azioni che l esecutore è in grado di compiere deve essere univocamente definito, e tali azioni devono essere deterministiche L insieme delle regole di associazione tra costrutti del linguaggio e azioni deve essere univocamente definito: caratterizzazione semantica dell esecutore Fondamenti di Informatica A Università di Brescia 21 Fondamenti di Informatica A Università di Brescia 22 Sintassi e Semantica Algoritmi e Programmi Sintassi di un linguaggio: insieme delle regole che specificano la scrittura di istruzioni formalmente corrette (ben formate), indipendentemente dal loro significato Semantica di un linguaggio: La struttura Il significato insieme delle regole che specificano il significato di ciascuna istruzione, cioè l azione che viene compiuta quando l istruzione viene eseguita Algoritmo: una sequenza di azioni (istruzioni) che, operando sui dati iniziali, consentono di ottenere i risultati che costituiscono la soluzione dell istanza del problema Tali azioni sono determinate tramite la scomposizione del problema in sottoproblemi La soluzione di un sottoproblema è detta passo (step) dell algoritmo Fondamenti di Informatica A Università di Brescia 23 Fondamenti di Informatica A Università di Brescia 24

Computazione Computazione: esecuzione di un algoritmo in corrispondenza di certi dati iniziali Passo di computazione: ogni singolo passo elementare che l esecutore compie durante l esecuzione di un algoritmo Sequenza computazione: sequenza di passi elementari che l esecutore compie in corrispondenza di certi dati iniziali durante l esecuzione di un algoritmo Algoritmo = concetto statico Computazione = concetto dinamico Proprietà di un Algoritmo Finitezza: un algoritmo deve essere costituito da un numero finito di istruzioni Univocità: ogni istruzione deve essere univocamente interpretabile ed eseguibile Effettività: deve esistere un esecutore in grado di eseguire ogni istruzione dell algoritmo in un tempo finito Determinismo: per qualunque dato di ingresso, a ogni passo della computazione, esiste al più un passo successivo. Ovvero: assegnato un dato di ingresso, esiste una e una sola sequenza di computazione possibile dell algoritmo Fondamenti di Informatica A Università di Brescia 25 Fondamenti di Informatica A Università di Brescia 26 Proprietà di un Algoritmo (cont.) Funzione rappresentata: un algoritmo associa ai valori per le variabili di input valori per le variabili di uscita (i risultati). Correttezza: l algoritmo perviene alla soluzione del compito cui è preposto senza difettare di alcun passo fondamentale (calcola correttamente la funzione rappresentata) Efficienza: l algoritmo perviene alla soluzione del compito impiegando il numero minimo di risorse fisiche Risorse fisiche: tempo, memoria,. Terminazione: l esecuzione di un algoritmo deve terminare in un numero finito di passi Programmi e Calcolatori Un algoritmo deve essere comprensibile al suo esecutore Programma: descrizione formale di un algoritmo attraverso un linguaggio di programmazione Il calcolatore è un esecutore di programmi Un programma è una sequenza di istruzioni scritte in un opportuno linguaggio comprensibile al calcolatore Il compito di un esperto informatico consiste nel produrre algoritmi e codificarli in programmi Fondamenti di Informatica A Università di Brescia 27

Il Calcolatore come Esecutore di Istruzioni L insieme di istruzioni più complesso può essere riscritto in un linguaggio elementare basato su un alfabeto binario (composto dei soli simboli 0 e 1) ed un insieme di poche distinte operazioni per la manipolazione del sequenze di 0 e 1 Il calcolatore digitale è un dispositivo che è in grado di interpretare ed eseguire le istruzioni scritte in questo linguaggio elementare Linguaggio Macchina I circuiti elettronici di un calcolatore sono in grado di riconoscere ed eseguire un numero limitato di istruzioni L insieme di queste istruzioni costituisce il linguaggio macchina I programmi eseguibili da un calcolatore sono sequenze finite di istruzioni in linguaggio macchina (che descrivono algoritmi) Fondamenti di Informatica A Università di Brescia 29 Fondamenti di Informatica A Università di Brescia 30 Linguaggi di Programmazione In generale, oggi i programmatori usano linguaggi di programmazione di alto livello Questi linguaggi: hanno costrutti più vicini al ragionamento umano consentono al programmatore di descrivere i problemi a un livello di astrazione di poco inferiore a quello degli algoritmi permettono di ragionare secondo una logica vicina al problema piuttosto che alle caratteristiche fisiche del calcolatore I programmi scritti in questi linguaggi devono subire un processo di traduzione (compilazione) per essere comprensibili da parte del calcolatore: Un calcolatore capisce solo la sua lingua (il linguaggio macchina) Il Calcolatore come Esecutore (una definizione rivisitata) Un calcolatore è un sistema che, ricevendo in ingresso la descrizione, in un opportuno linguaggio, di un algoritmo risolvente A[In,Out] (cioè un programma) per un certo problema P[In,Out] e un dato In, produce un risultato Out, ovvero la soluzione Out dell istanza P[In,Out] Un calcolatore è un esecutore universale di programmi Fondamenti di Informatica A Università di Brescia 31 Fondamenti di Informatica A Università di Brescia 32

Esempio Programma per il calcolo della potenza n-esima di x: P[x, n, y] input output CALCOLATORE dati iniziali x = 2, n = 5 Istanza del problema = P[2,5,y] Risultati dell esecuzione in corrispondenza dei dati iniziali y = 32 Fondamenti di Informatica A Università di Brescia 33