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

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

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

Problemi, algoritmi, calcolatore

Il concetto di calcolatore e di algoritmo

- Dispensa I ALGORITMI

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

Dall algoritmo al calcolatore: concetti introduttivi. Algoritmo. Problema: consumo medio 9/27/2018. Fondamenti di Programmazione 3

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi

Introduzione all informatica

Concetti Introduttivi. Il Computer

Cosa è l Informatica?

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

L informazione. Bateson, Ricevere informazioni vuol dire necessariamente ricevere notizie di differenza (Es.: Luce accesa/spenta, 1/0,...

Informatica. Come si risolve un problema?

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

La Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema

Laboratorio di Calcolo di Aerodinamica: II Lezione

L ELABORATORE ELETTRONICO

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.

L ELABORATORE ELETTRONICO!

ALGORITMI: PROPRIETÀ FONDAMENTALI

Problemi, algoritmi, linguaggi

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Introduzione alla programmazione

Elementi di informatica

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

LA METAFORA DELL UFFICIO

Parte Seconda: Fondamenti di informatica

Linguaggi, Traduttori e le Basi della Programmazione

Dal problema all algoritmo

L ELABORATORE ELETTRONICO

Elaboratore Elettronico

3. Programmi e algoritmi

Algoritmi e Programmi

Elementi di informatica

Risoluzione di un problema

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Algoritmi e Programmi. Wednesday, September 29, 2010

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione

Lezione 1. Problemi Algoritmi Programmi

Università di Salerno Corso di FONDAMENTI DI INFORMATICA Corso di Laurea Ingegneria. Docente : Ing. Secondulfo Giovanni Anno Accademico

Introduzione alla programmazione strutturata

Dall algoritmo al calcolatore: concetti introduttivi. Fondamenti di Programmazione

Informatica, Algoritmi, Linguaggi

CORSO DI INFORMATICA Maria Grazia Celentano

INFORMATICA Algoritmi come formalizzazione della risoluzione di un problema

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Sommario FONDAMENTI DI INFORMATICA. Definizione formale di algoritmo. Informatica e algoritmi. ALGORITMI E LINGUAGGIO PYTHON Introduzione

Corso di Informatica Modulo T1 1 - Il concetto di problema

Pag. 1. La formalizzazione dell informazione: Algoritmi (parte 2) Una definizione più precisa

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Algoritmi. Informatica B. Daniele Loiacono

Introduzione agli Algoritmi

FONDAMENTI DI INFORMATICA

Sommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio (1) Linguaggio (2)

Corso di Linguaggi di Programmazione + Laboratorio

Concetti di base dell ICT

Capitolo 3 Elaborazione e Strutturazione dell Informazione. (Introduzione ai Sistemi Informatici Sciuto et alii)

Sistemi di Elaborazione delle Informazioni

Teoria dell Informazione

Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione

Algoritmi e (cenni sul) calcolatore

generalità concetti di base

Laboratorio di Programmazione

Rappresentazione con i diagrammi di flusso (Flow - chart)

Cosa si intende con stato

Istruzioni di controllo: SEQUENZA

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

! Problemi, domande, risposte. ! Algoritmi che calcolano funzioni. ! Funzioni computabili e non. ! Problema = insieme di domande omogenee. !

Elementi di programmazione

Algoritmi. Informatica B. Daniele Loiacono

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Linguaggi di Programmazione

INFORmazione+autoMATICA. Perché saperne di piu? Le fasi della programmazione. Cosa intendiamo per programmazione

Introduzione agli algoritmi

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

LA METAFORA DELL UFFICIO LAVAGNA DI PROGRAMMA SPORTELLO UTENTE LAVAGNA DI LAVORO

Corso di Informatica

Sviluppo di programmi

Caratteristiche di un calcolatore elettronico

Transcript:

Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande omogenee Il Problemi e la loro Soluzione (esempio) Dati = N (numeri naturali) Risultati = R (numeri reali) 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 Elementi di Informatica e Programmazione U. Brescia 2 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 Dati =? Risultati =? Esercizio Problema Quanto vale la radice quadrata intera Z di un numero naturale W (con approssimazione per difetto)? Istanza =? Variabili ingresso e uscita =? Soluzione dell istanza =? Fondamenti di Informatica A Università di Brescia 3 Fondamenti di Informatica A Università di Brescia 4

Risoluzione di un Problema (come trovare soluzioni per le istanze) Procedimento di risoluzione di un problema 1. Analisi del problema e individuazione di una soluzione del problema (non è la soluzione delle istanze!) 2. Descrizione della soluzione 3. Interpretazione della soluzione 4. Attuazione della soluzione da parte di un esecutore Problema Analisi Processo di Risoluzione oppure Individuazione soluzione Formulazione descrizione Soggetto 2 Descrizione soluzione Interpretazione descrizione Soggetto 1 Descrizione interpretata Attuazione soluzione Soluzione Fondamenti di Informatica A Università di Brescia 5 Fondamenti di Informatica A Università di Brescia 6 Un esempio di problema e di soluzione (esecutore umano) Problema: come si fa una telefonata a X? Soluzione: 1. Solleva il ricevitore 2. Componi il numero X 3. Attendi il segnale di libero 4. Se arriva il segnale di libero allora attendi che venga qualcuno a rispondere altrimenti riaggancia 5. Se dopo un po non arriva nessuno a rispondere allora riaggancia altrimenti fai la tua conversazione Un altro esempio Problema: qual è il numero più piccolo Y (variabile di uscita) tra tre numeri (variabili di ingresso) X1, X2, X3??? Soluzione:??? Assumere di poter svolgere solo - confronti (<, >, =) tra numeri - istruzioni di tipo Se Allora - istruzioni del tipo Y = e STOP Fondamenti di Informatica A Università di Brescia 10 Fondamenti di Informatica A Università di Brescia 10

Un altro esempio Problema: qual è la radice quadrata intera Y di un numero naturale X (approssimata per difetto)? Soluzione:??? Assumere di poter svolgere anche operazioni aritmetiche Per semplicità assumere X minore di 20 e maggiore di uno. Una possibile soluzione 1. Se 2*2 = X allora Y = 2 e STOP 2. Se 2*2 > X allora Y = 1 e STOP 3. Se 3*3 = X allora Y = 3 e STOP 4. Se 3*3 > X allora Y = 2 e STOP 5. Se 4*4 = X allora Y = 4 e STOP 6. Se 4*4 > X allora Y = 3 e STOP 7. Y = 4 e STOP Fondamenti di Informatica A Università di Brescia 10 Una soluzione migliore quando X è molto grande 1. Per ogni valore della variabile di lavoro I che va da 2 a X 2. Se I*I > X allora Y=I-1 e STOP 3. Se I*I = X allora Y=I e STOP Soluzioni e Algoritmi La soluzione è quindi espressa come sequenza di operazioni la cui esecuzione porta alla soluzione del problema ALGORITMO RISOLUTIVO Ma mi serve una istruzione di tipo iterativo per il passo 1 DATI ALGORITMO SOLUZIONE Fondamenti di Informatica A Università di Brescia 11

Problema: Richiesta di un Libro Come procedo? 1. Decido quale libro richiedere 2. Prelevo il libro Il secondo passo va dettagliato, ovvero va scomposto in sotto-problemi (procedura per raffinamenti successivi o top-down) Il problema diventa 1. Decido quale libro richiedere 2. Cerco la scheda del libro nello schedario 3. Mi segno numero dello scaffale e posizione nello scaffale 4. Cerco lo scaffale 5. Cerco il libro nella sua posizione all interno dello scaffale 6. Prelevo il libro Non è un problema elementare! Fondamenti di Informatica A Università di Brescia 14 Fondamenti di Informatica A Università di Brescia 15 Cercare la scheda Scompongo in sotto-sotto-problemi: 1. Prendo la prima scheda 2. 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 3. 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 16 Un metodo più efficiente (se lo schedario è ordinato!) 1. Esamino la scheda centrale dello schedario 2. Se la scheda corrisponde al libro cercato allora termino la ricerca 3. 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 NB: il passo 2 deve accorgersi anche se il libro non esiste, diventa: se la scheda corrisponde al libro cercato oppure se la parte di schedario da esaminare è vuota allora termino la ricerca Fondamenti di Informatica A Università di Brescia 17

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 è 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? Il Calcolatore come Esecutore (una prima definizione) Dati iniziali (assegnati a variabili di input) CALCOLATORE Soluzione di un problema (programma - descrizione di un algoritmo -) 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 1. 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 2. L insieme delle azioni che è in grado di compiere 3. L insieme delle regole che a ogni frase del linguaggio associano le relative azioni da compiere Sintassi e Semantica 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 Fondamenti di Informatica A Università di Brescia 21 Fondamenti di Informatica A Università di Brescia 23

Algoritmi e Programmi Algoritmo: una sequenza di azioni (istruzioni) che, operando sui dati iniziali, consentono di ottenere la soluzione dell istanza del problema in esame Ogni azione della sequenza è detta passo (step) dell algoritmo Per essere eseguito l algoritmo deve essere descritto con il linguaggio del suo esecutore Computazione: definizioni Computazione: esecuzione di un algoritmo in corrispondenza di certi dati iniziali Passo di computazione: ogni singolo passo elementare che l esecutore compie durante una computazione 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 Fondamenti di Informatica A Università di Brescia 24 Fondamenti di Informatica A Università di Brescia 25 Algoritmi, Programmi e Calcolatore Programma: descrizione formale di un algoritmo attraverso un linguaggio di programmazione Un programma è una sequenza di istruzioni scritte in un opportuno linguaggio comprensibile al calcolatore Il calcolatore è un esecutore di programmi Il compito di un esperto informatico consiste nel produrre algoritmi e codificarli in programmi 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 Fondamenti di Informatica A Università di Brescia 27 Fondamenti di Informatica A Università di Brescia 29

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 Proprietà di un Algoritmo (cont.) Funzione rappresentata: un algoritmo associa ai valori per le variabili di input valori per le variabili di uscita. Correttezza: calcola correttamente la funzione rappresentata (associata al problema da risolvere) Efficienza: l algoritmo perviene alla soluzione del compito impiegando una certa quantità di risorse fisiche Risorse fisiche: tempo, memoria,. Terminazione: l esecuzione di un algoritmo deve terminare in un numero finito di passi di computazione Fondamenti di Informatica A Università di Brescia 26