Come ragiona il computer. Problemi e algoritmi



Похожие документы
Algoritmi e Programmi

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

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

INFORMATICA. Corso di Laurea in Scienze dell'educazione

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

Elementi di Programmazione: con Java dal Computer, al Web, al Cellulare

Nozione di algoritmo. Gabriella Trucco

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

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

Gli algoritmi: definizioni e proprietà

Fasi di creazione di un programma

Descrizione di un algoritmo

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

RAPPRESENTAZIONE GRAFICA DEGLI 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.

Introduzione al corso

Cosa è l Informatica?

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

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

Algoritmi, dati e programmi

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

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

Corso di Informatica

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Linguaggi e Paradigmi di Programmazione

Problemi, Algoritmi e Programmi

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

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

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

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

I PROBLEMI ALGEBRICI

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

INTRODUZIONE ALL INFORMATICA

risulta (x) = 1 se x < 0.

Lezione 8. La macchina universale

Funzionalità di un Algoritmo

Elementi di Informatica e Programmazione

Cos è un Calcolatore?

Appunti di Sistemi Elettronici

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Algoritmi e Strutture Dati

ALGEBRA DELLE PROPOSIZIONI

DAL DIAGRAMMA AL CODICE

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

4 3 4 = 4 x x x 10 0 aaa

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

Introduzione alla Programmazione

Linguaggi di programmazione

Strumenti di modellazione. Gabriella Trucco

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira

Informatica. Terzo anno Prof. A. Longheu

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

4 Dispense di Matematica per il biennio dell Istituto I.S.I.S. Gaetano Filangieri di Frattamaggiore EQUAZIONI FRATTE E SISTEMI DI EQUAZIONI

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Dispense di Informatica per l ITG Valadier

Variabili e tipi di dato

Introduzione. Informatica B. Daniele Loiacono

GUIDA BASE DI PASCAL

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

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

Codifica: dal diagramma a blocchi al linguaggio C++

Linguaggi di programmazione

Metodologie di programmazione in Fortran 90

Informazione analogica e digitale

Tipologie di pianificatori. Pianificazione. Partial Order Planning. E compiti diversi. Pianificazione gerarchica. Approcci integrati

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

Matematica in laboratorio

Corso di Informatica

Introduzione all Informatica Scienze Naturali / Restauro - Unical 1 Dispensa 1

Dimensione di uno Spazio vettoriale

DAL PROBLEMA AL PROGRAMMA

Automazione Industriale (scheduling+mms) scheduling+mms.

LE FUNZIONI A DUE VARIABILI

Programmi. Algoritmi scritti in un linguaggio di programmazione

PROGETTO EM.MA PRESIDIO

regola(1,[e,f],b) regola(2,[m,f],e) regola(3,[m],f) regola(4,[b,f],g) regola(5,[b,g],c) regola(6,[g,q],a)

Introduzione alla programmazione in C

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Arduino: Programmazione

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

Semantica Assiomatica

DAL PROBLEMA AL PROGRAMMA

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

3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)

Capitolo 2. Operazione di limite

LINGUAGGI DI PROGRAMMAZIONE

Introduzione al MATLAB c Parte 2

1. BASI DI DATI: GENERALITÀ

Dispensa di Informatica I.1

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

APPUNTI SUL LINGUAGGIO DI PROGRAMMAZIONE PASCAL

Ottimizzazione Multi Obiettivo

Транскрипт:

Come ragiona il computer Problemi e algoritmi

Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Problema Strategia Obiettivo

Alcuni problemi tipici dell informatica

Ricerca di informazioni Trovare il numero di telefono di una persona in un elenco Individuare il numero più piccolo di una sequenza Stabilire se una parola precede alfabeticamente un altra

Problemi di elaborazione di informazioni Calcolare il costo totale di un certo numero di prodotti Trovare perimetro e area di una figura geometrica

Problemi di ottimizzazione Trovare tra tutte le soluzioni possibili del problema quella che rende minimo un certo fattore, per esempio scegliere il mezzo di trasporto più economico per andare a Parigi oppure quello con il quale si impiega meno tempo

Risolvere un problema Come si costruisce la soluzione a un problema? Qual è il giusto punto di partenza per pensare la soluzione a un problema? Quali metodologie e tecniche usare?

Descrizione procedimento risolutivo Individuazione di una sequenza di passi che, partendo dai dati noti, arrivi a dare la soluzione. Definizione Algoritmo

Algoritmo Un algoritmo è una sequenza finita di operazioni elementari che porta alla risoluzione in un tempo finito una classe di problemi. In generale un algoritmo può essere visto come una funzione da un dominio d ingresso ad uno d uscita Dati(INPUT) X Algoritmo Risultati(OUTPUT) f(x)

Algoritmi: proprietà fondamentali Eseguibilità: ogni azione deve essere eseguibile da parte dell esecutore dell algoritmo in 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.

Algoritmi equivalenti Due algoritmi si dicono equivalenti quando: hanno lo stesso dominio di ingresso; hanno lo stesso dominio di uscita; in corrispondenza degli stessi valori nel dominio di ingresso producono gli stessi valori nel dominio di uscita.

Algoritmi equivalenti Due algoritmi equivalenti: forniscono lo stesso risultato ma possono avere diversa efficienza e possono essere profondamente diversi! Esempio: moltiplicare tra loro due numeri Algoritmo 1 Algoritmo 2 Somme successive: somma e shift : 12x12 = 12+12+ +12=144 12x 12 24 12 144

Esecuzione

Algoritmi e programmi Algoritmo Sequenza finita di passi che risolve in tempo finito un problema. Codifica Fase di scrittura di un algoritmo attraverso un insieme ordinato di frasi ( istruzioni ), scritte in un qualche linguaggio di programmazione, che specificano le azioni da compiere. Programma Testo scritto in accordo con la sintassi e la semantica di un linguaggio di programmazione. PROBLEMA ALGORITMO PROGRAMMA

Linguaggi di Programmazione Linguaggi per esprimere in maniera rigorosa un algoritmo Linguaggio macchina (seq. Istruzioni) Linguaggi ad alto livello (vicini al ling. naturale) Esempi: Pascal C e C++ Java Basic

Esempio di programma Sub SOMMA( ) Dim A, B as Integer A = InputBox("Immetti un numero") B = InputBox( Immetti un secondo numero ) Print Somma: ; A+B End Sub

Esempio: potenza Problema: Calcolare a elevato alla n (a^n) Utilizziamo le variabili N, Ris Inizialmente Ris=1 e N=n Algoritmo: Fino a che N>0 Calcola Ris a e memorizzalo in Ris Decrementa N Correttezza: Al termine Ris=a^n

Esempio in Pseudo Pascal Program potenza; Integer Ris,N,A; Read(N);Read(A); Ris=1; While (N>0) do Ris=Ris*A; N=N-1; Print(Ris);

Riassumendo Ogni elaboratore è una macchina in grado di eseguire azioni elementari su dati L'esecuzione delle azioni elementari è richiesta all'elaboratore tramite comandi chiamati istruzioni Le istruzioni sono espresse attraverso frasi di un opportuno linguaggio di programmazione Un programma è la formulazione testuale di un algoritmo in un linguaggio di programmazione Un algoritmo è il processo risolutivo di un problema

Esistono problemi che un elaboratore non può risolvere? Sì. Ci sono problemi non calcolabili da nessun modello di calcolo reale o astratto Esempio: data una funzione f : N N, stabilire se f(x) è costante per ogni valore di x

Esistono problemi che un elaboratore non può risolvere? Esempio. Dato un insieme di immagini di paesaggi, determinare quello più rilassante. Più in generale, quando il problema presenta infinite soluzioni, o non è stato trovato per esso un metodo risolutivo o è dimostrato che non esiste un metodo risolutivo

Diagramma di flusso o diagrammi a blocchi È uno metodi più comuni usati per la rappresentazione di algoritmi. Si presenta come un insieme di figure geometriche collegate da frecce.

Problema della chiave Trovare in un mazzo di chiavi quella che apre il lucchetto Assunzioni: una tra le chiavi apre la porta al buio, si prende una chiave a caso per volta

Inizio Inizio Tutti i diagrammi a blocchi cominciano con un ellisse che contiene la parola inizio

Dati in ingresso Dati in ingresso I dati in ingresso sono i dati noti del problema, quelli che devono essere elaborati per arrivare alla soluzione

Operazioni Operazioni Le operazioni da svolgere sui dati sono racchiuse in rettangoli

Vero o falso? Scelta Quando si deve fare una scelta tra due possibilità si usa il rombo

Dati in uscita Dati in uscita I dati in uscita sono quelli che si vuole conoscere e costituiscono il risultato dell elaborazione

Fine fine Ogni diagramma di flusso si conclude con un ellisse che contiene la parola fine

Problema della stazione Come si arriva alla stazione? Operazioni elementari possibili: Andare avanti fino a un punto di incrocio Girare