DAL PROBLEMA AL PROGRAMMA



Похожие документы
Linguaggi per COMUNICARE. Il linguaggio è un sistema codificato di segni che consente la comunicazione, intesa come scambio di informazioni

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

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

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

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

Lezione 8. La macchina universale

Linguaggi e Paradigmi di Programmazione

Come ragiona il computer. Problemi e algoritmi

Corso di Informatica

Linguaggi di programmazione

Le Macchine di Turing

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

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.

Appunti di Sistemi Elettronici

Fasi di creazione di un programma

Funzionalità di un Algoritmo

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

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

Sistemi di Elaborazione delle Informazioni. Corso di Laurea per "Tecnico Ortopedico" 03

Descrizione di un algoritmo

Introduzione. Informatica B. Daniele Loiacono

Metodologie di programmazione in Fortran 90

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

Problemi, Algoritmi e Programmi

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

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

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

Automazione Industriale (scheduling+mms) scheduling+mms.

Programmi. Algoritmi scritti in un linguaggio di programmazione

Disciplina: SISTEMI AUTOMATICI. Classi: III AES PROF. IANNETTA SIMONE PROF. SAPORITO ETTORE. Ore settimanali previste: 4

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l Ambiente e il Territorio

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

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

Corso di Informatica

Nozione di algoritmo. Gabriella Trucco

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

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

Linguaggi di programmazione

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Elementi di Informatica e Programmazione

Cos è un Calcolatore?

CODICE ASSE: PRIMO ANNO SECONDO ANNO

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

FONDAMENTI di INFORMATICA L. Mezzalira

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

Semantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma.

Origini e caratteristiche dei calcolatori elettronici

Macchine a stati finiti G. MARSELLA UNIVERSITÀ DEL SALENTO

Fondamenti di Informatica. Allievi Automatici A.A Nozioni di Base

La programmazione. Sviluppo del software

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

Introduzione alla Programmazione

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

Introduzione alla programmazione in C

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

ALGEBRA DELLE PROPOSIZIONI

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

Analizzatore lessicale o scanner

Appunti del corso di Informatica 1 (IN1 Fondamenti) 2 Introduzione alla programmazione

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

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

ISTITUTO TECNICO ECONOMICO MOSSOTTI

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

Informazione e dato. Gabriella Trucco

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

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

I PROBLEMI ALGEBRICI

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

INFORMATICA 1 L. Mezzalira

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

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

1

Elementi di Informatica

LINGUAGGI DI PROGRAMMAZIONE

Gian Luca Marcialis studio degli algoritmi programma linguaggi LINGUAGGIO C

Algoritmi. Maurizio Palesi. Maurizio Palesi 1

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

TECNICHE DI SIMULAZIONE

Raccomandazione del Parlamento europeo 18/12/2006 CLASSE PRIMA COMPETENZE ABILITÀ CONOSCENZE. Operare con i numeri

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

LINGUAGGI - COMPILATORI - INTERPRETI

SCUOLA PRIMARIA SCIENZE NATURALI E SPERIMENTALI. Competenza: 1. Comunicazione efficace Indicatore: 1.1 Comprensione

Capitolo 2. Operazione di limite

TECNOLOGIA: CLASSI PRIME

Appunti sulla Macchina di Turing. Macchina di Turing

Liceo scientifico statale Galileo Galilei Selvazzano Dentro (PD) Anno scolastico Dipartimento di Informatica: Obiettivi Disciplinari

LABORATORIO DI INFORMATICA

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

Dispense del corso di Introduzione all Informatica della Facoltà Di Scienze Matematiche, Fisiche e Naturali dell Università della Calabria

Automi. Sono così esempi di automi una lavatrice, un distributore automatico di bibite, un interruttore, una calcolatrice tascabile,...

DISPENSE DI PROGRAMMAZIONE. Modulo 1 Risolvere problemi con l elaboratore: dal problema all algoritmo (Parte III)

Транскрипт:

DAL PROBLEMA AL PROGRAMMA

Scopo del modulo Conoscere alcuni concetti fondamentali dell informatica:algoritmo, l automa, linguaggio formale Essere in grado di cogliere l intreccio tra alcuni risultati della matematica e della logica dei primi decenni del secolo scorso ed i successivi sviluppi e applicazioni che questi hanno avuto in campo informatico

Indice 8.1 Problemi e algoritmi 8.1.1 introduzione intuitiva del concetto di problema 8.1.2 cenni sulle strategie per la risoluzione dei problemi 8.1.3 soluzione di un problema 8.1.4 gli algoritmi 8.1.4a Diagrammi a blocchi 8.1.4b Linguaggio gg di progetto 8.2 Automi esecutori 8.2. Automi esecutori 8.2.1 Caratteristiche di un automa 8.2.1b Concetto di modello 8.2.1c Concetto di automa 8.2.2 Automi e classi di problemi Esercitazioni 8.3 Linguaggi 8.3.1 Sintassi e semantica dei linguaggi 8.3.1a Linguaggi nella comunicazione uomo-macchina 8.2.2 Linguaggi e automi 8.3.3 Linguaggi di programmazione

8.1.1 Introduzione intuitiva al concetto di problema Il problema è una situazione che pone delle domande alle quali si devono dare delle risposte. Risolvere il problema vuol dire uscire dalla situazione

8.1 Problemi e algoritmi Un problema consta dei seguenti elementi Dati: ossia ciò che è noto e che indichiamo col termine input Risultati: gli elementi incogniti che si devono determinare e che indicheremo con output Condizioni: le limitazioni cui devono Condizioni: le limitazioni cui devono soggiacere i risultati

8.1 Problemi e algoritmi Tipi di problemi Problemi di Problemi di Problemi di decisione ricerca ottimizzazione

8.1.2 Strategie per la risoluzione dei problemi Problema Verifica dei risultati Interpretazione Esecuzione Modello Procedimento risolutivo (algoritmo)

8.1.2b Concetto di modello Modello E uno schema teorico elaborato per rappresentare elementi fondamentali di fenomeni o enti Modelli descrittivi (riproducono in modo semplice la realtà, senza presupporre l uso che ne verrà fatto) Modelli predittivi (danno gli elementi di una situazione per prevederne l evoluzione) Modelli prescrittivi (impongono un particolare comportamento in previsione dell obiet tivo da raggiungere) Modelli simbolici o matematici (danno una rappresentazione astratta mediante un insieme di equazioni che legano le grandezze) Modelli analogici (d danno una rappresentazione fedele della realtà in scala ridotta )

8.1.2 Strategie per la risoluzione dei problemi Interpretazione TOP DOWN GRAFICO Suddivide il problema in tanti piccoli sottoproblemi Utilizza uno schema grafico a segmenti

8.1.2 Strategie per la risoluzione dei problemi Algoritmo Insieme delle istruzioni che definiscono una sequenza di operazioni mediante le quali si risolve il problema Deve essere : finito (numero limitato di passi ); definito (ogni istruzione deve consentire un interpretazione univoca); eseguibile bl ( la sua esecuzione deve essere eseguibile con gli strumenti a disposizione); deterministico ( ad ogni passo deve essere definita una operazione successiva ).

8.1.2 Strategie per risoluzione dei problemi Rappresentazioni grafiche e formalizzate di un algoritmo La descrizione delle fasi esecutive del problema può avvenire mediante la formalizzazione dei passi elementari da effettuare che può essere realizzata con: Diagramma a blocchi o flow-chart e/o Pseudocodifica difi

8.1.4a Diagrammi a blocchi Diagramma a blocchi o flow-chart Ha il pregio di evidenziare i visivamente ii l avanzamento in sequenza e le varie strutture che compongono l algoritmo, presenta istruzioni di input, calcolo e/o di elaborazione, condizioni e output. INPUT CONDIZIONI ISTRUZIONI OUTPUT

a blocchi 8.1.4a Esempio di diagramma Somma di una sequenza di numeri inizio N S = A S= S+A N=N-1 N NO N= SI S FINE

8.1.4b Linguaggio di progetto Linguaggio di progetto o pseudocodifica E un linguaggio formale, ( linguaggio di progetto) con regole prive di ambiguità ed eccezioni che esprimonoivaritipi p di istruzioni. Viene definito pseudocodifica o notazione lineare strutturata. Generalmente utilizzato dai programmatori di elaboratori. begin Input N S repeat input A S S+A N N-1 until N= output S end ESEMPIO IN PASCAL

8.2 Automi esecutori La risoluzione di un problema è un processo di manipolazione di informazioni per generare nuove informazioni. Per risolvere un problema ci sono due tipi di attività : intelligenti di elaborazione routinarie di esecuzione

8.2.1 Caratteristiche di un automa Automi Sono macchina che compiono attività complesse in cui sono riconoscibili elementi propri delle attivitàità superiori del comportamento umano. Possono essere programmate per svolgere diverse mansioni e per modificare le proprie azioni in relazione ai mutamenti ambientali. (Es: lavatrici, sistemi di controlli ascensori, bancomat computer) Un automa è un sistema : Dinamico Passa da uno stato all altro secondo gli input che riceve Invariante Se le condizioni iniziali sono le stesse il comportamento del sistema è invariato Discreto Le variabili, d ingresso, di stato e d uscita possono assumere solo valori discreti

8.2.1 Il concetto di automa Grafi e tabelle di transizione Servono a rappresentare il comportamento logico-funzionale di un automa Es. tabella e grafo di un automa a stati finiti di un ascensore S\i T 1 2 pt Pt/ fermo 1p/ su 2p/ su 1p Pt/ giù 1p/ fermo 2p/ su T / fermo 2p Pt/ giù 1p/ giù 2p/ fermo 1/ su PT T/giù 1P 1/fermo 2/su 2/ fermo 2P 1/ giù 2/su

8.2.2 Automi e classi di problemi Un sistema automatico o automa è un sistema nel quale la componente umana è completamente eliminata nell ambito dei processi, che sono ben determinati e prevedibili: Lavatrice, lavastoviglie, computer (automa a programma) Un sistema umano, al contrario, presenta un carattere probabilistico, poiché l uomo può assolvere a funzioni impreviste, utilizzando il ragionamento, la creatività e l intuito.

Problemi e algoritmi ESERCITAZIONI Un bambino ha costruito una torre di tre blocchi colorati così disposti dall alto alto in basso: ROSSO-GIALLO-VERDE. IL bambino vuole capovolgerla in modo da avere VERDE-GIALLO-ROSSO.Può spostare solo un blocchetto alla volta. Individuare il numero minimo di stati per i quali si arriva alla configurazione desiderata. Cercare una chiave in un mazzo di 100 chiavi con il minor numero di prove (diagramma di flusso)

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

linguaggi 8.3.1 Sintassi e semantica dei Un informazione può : Essere acquisita direttamente tramite rilevamento di un evento reale attraverso percezione sensoriale. Essere trasmessa (messaggio) intenzionalmente da un emittente ad un ricevente per mezzo di un canale

La comunicazione Il messaggio presuppone l utilizzo di un codice (sistema di regole) ediunlinguaggio che devono essere conosciuti sia dal emittente che dal destinatario, altrimenti la comunicazione non ha effetto??? emittente destinatario?

8.3.1 Sintassi e semantica dei linguaggi La funzione del linguaggio è quella di sostituire ad oggetti o concetti idei segni/simboli i per trasmettere un messaggio. Il segno è l associazione di qualcosa di materiale e sensibile (immagine, suono ) che chiamiamo significante con qualcosa di puramente concettuale che chiamiamo significato Il codice ci consente l interpretazione dei segni Segno = significante + significato gatto Il gruppo dei suoni o di lettere g/a/t/t/o

8.3.1 Sintassi e semantica dei linguaggi ELEMENTI DI UN LINGUAGGIO Alfabeto insieme finito e non vuoto di simboli convenzionali espressi con segni tipografici detti caratteri Ortografia insieme finito e non vuoto di regole per la scrittura dei suoni Sintassi insieme finito e non vuoto delle regole mediante le quali si formano le stringhe o le frasi di un linguaggio Semantica insieme finito e non vuoto di significati da attribuire alle stringhe Morfologia insieme finito e non vuoto di tuttele regole che servono per generare le forme di un linguaggio

8.3.1.a Linguaggi nella comunicazione uomo - macchina L uomo per comunicare all automa le strategie risolutive di un problema ha bisogno di un linguaggio formale che gli consenta di passare dall algoritmo al programma, cioè ad una sequenza di istruzioni mediante le quali si può risolvere il problema.

8.3.2 Linguaggi e automi Linguaggi non evoluti Linguaggio macchina, linguaggio assemblativo (Assembler). Vicino alla logica della macchina Linguaggi evoluti Linguaggi non orientati alla macchina, ma alla soluzione dei problemi. Vicino alla logica dell uomo

8.3.2 Linguaggi e automi I principali software Sistema operativo Office Automation Word processor Software di base, Foglio di calcolo controlla tutte le risorse del Sistemi di gestione base dati computer, necessita Programmi per la realizzazione di di un linguaggio più vicino al linguaggio presentazioni multimediali macchina Programmi di grafica computerizzata (Assembler) Editor di suoni Editor di pagine web

8.3.3 Linguaggi di programmazione Problema Risultati Algoritmo Dalla formulazione del problema alla sua soluzione Elaborazione Programma Programma Programma sorgente traduttore oggetto

8.3.3 Linguaggi di programmazione Programma sorgente L algoritmo risolutivo viene trasformato in un programma attraverso un linguaggio di programmazione che può contenere: Istruzioni di dichiarazione Istruzioni di assegnazione Istruzioni di controllo Istruzioni di input e output Descrivono dati e variabili utilizzati dal programma, definendone tipo e struttura Consentono di assegnare alla variabile un valore dello stesso tipo della variabile Sono istruzioni che richiedono salti di sequenza nell esecuzione esecuzione del programma Richiedono l ingresso o l uscita di un informazione da una periferica alla memoria centrale e viceversa

8.3.3 Linguaggi di programmazione Fortran Cobol Basic Algol Principali linguaggi PHP Logo PL1 Lisp Pascal C/C++ Java