Università degli Studi di Cassino e del Lazio Meridionale Corso di Fondamenti di Informatica Algoritmi ed esecutori

Documenti analoghi
Università degli Studi di Cassino e del Lazio Meridionale Corso di Fondamenti di Informatica Algoritmi ed esecutori

Corso di Fondamenti di Informatica Algoritmi ed esecutori

Che cosa si intende per INFORMATICA?

Corso di Fondamenti di Informatica

L ELABORATORE ELETTRONICO

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

Algoritmi e (cenni sul) calcolatore

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

Fondamenti di Informatica 1 (I Modulo) Introduzione agli algoritmi. Roberto Basili a.a

L ELABORATORE ELETTRONICO!

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

Introduzione all informatica

Elaboratore Elettronico

Laboratorio di Informatica. Introduzione

L ELABORATORE ELETTRONICO

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

Unità E1. Obiettivi. Non solo problemi matematici. Problema. Risoluzione di un problema. I dati

Fasi di creazione di un programma

Fondamenti di Informatica. Definizione di Algoritmo. Algoritmo Euclideo. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a.

A lezione sono stati presentati i seguenti passi per risolvere un problema:

L informatica comprende: INFORMATICA. Varie definizioni: Definizione proposta: ELABORATORE ELETTRONICO ( COMPUTER ) L ELABORATORE

Corso di Informatica

Informatica. Fondamenti di Informatica 1. Informatica. Informatica. Introduzione all Informatica. Introduzione all Informatica

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

LABORATORIO DI INFORMATICA

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

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile

INFORMATICA (Computer Engineering o

Pseudo codice. Paolo Bison. Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova. Pseudo codice, Paolo Bison, A.A , p.

Punto di vista Tecnologico: strumenti di elaborazione della informazione. Punto di vista Metodologico:

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Sviluppo di programmi

Scritto da Administrator Sabato 17 Gennaio :16 - Ultimo aggiornamento Sabato 17 Gennaio :39

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

APPUNTI DI INFORMATICA

ALGORITMI: PROPRIETÀ FONDAMENTALI

Risoluzione di un problema

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

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

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

Dall analisi del problema alla definizione dell algoritmo A. Ferrari

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

Introduzione. Informatica B. Daniele Loiacono

Architettura di un Sistema Informatico

Introduzione agli Algoritmi 4

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

= < < < < < Matematica 1

Non a caso viene definito linguaggio macchina. di Cassino. C. De Stefano Corso di Fondamenti di Informatica Università degli Studi

1. Un array è: A. Un simbolo usato nel linguaggio C per rappresentare un numero non specificato di variabili B. Un insieme di indirizzi di memoria

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Appunti di informatica. Lezione 5 anno accademico Mario Verdicchio

INFORMATICA GENERALE Prof. Alberto Postiglione. Università degli Studi di Salerno. UD 3.1a: Gli Algoritmi

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso

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

Cosa è l Informatica?

Modello di von Neumann

Informatica A. Allievi Gestionali A.A Nozioni di Base

Lezione 2: Concetti di Base: Algoritmo, Programma, Esecutore, Processo Mercoledì 30 Settembre 2009

Sviluppo di programmi

Informatica! appunti dalle lezioni dal 18/09/2012 al 28/09/2012!!

Linguaggi, Traduttori e le Basi della Programmazione

Il primo ingrediente per la nostra pasta è la terra toscana

Salvatore Cuomo Prolusione

Due numeri naturali non nulli a, b tali che MCD(a,b) = 1 si dicono coprimi o relativamente primi.

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. !

Rappresentazione con i diagrammi di flusso (Flow - chart)

generalità concetti di base

Caratteristiche di un calcolatore elettronico

Note sull architettura del calcolatore

Metodo di Euclide delle sottrazioni successive per il calcolo del M.C.D.

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Computer. Capitolo 2. 05/04/2012 continuazione 1

Introduzione al funzionamento di un calcolatore elettronico

Algoritmi e Programmi

Strumento per la rappresentazione e l elaborazione delle informazioni

Metodi per la rappresentazione delle informazioni Metodi per la rappresentazione delle soluzioni Linguaggi di programmazione Architettura dei

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Informatica e Bioinformatica: Algoritmi

Introduzione: informatica. 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco

MODULO 07. La soluzione dei problemi mediante gli algoritmi

6 APRILE Scuola Albertelli

CONCETTI FONDAMENTALI

NUMERI PRIMI E CRITTOGRAFIA

Introduzione agli Algoritmi

( ) ( ) ( ) individua un nuovo tipo di oggetto algebrico che prende il nome di frazione algebrica. Per esempio, A= 3x+ 1,

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Transcript:

Università degli Studi di Cassino e del Lazio Meridionale Corso di Algoritmi ed esecutori Anno Accademico Francesco Tortorella

Che cosa si intende per INFORMATICA? Scienza della rappresentazione e dell elaborazione dell informazione L informazione è il concetto principale dell Informatica. L elaborazione dell informazione avviene in maniera sistematica e rigorosa e quindi può essere automatizzata

Che cosa si intende per INFORMATICA? Scienza dell astrazione creare il giusto modello per un problema e individuare le tecniche appropriate per risolverlo in modo automatico L obiettivo è quello di sostituire una situazione del mondo reale complessa e particolareggiata con un modello comprensibile e privo di dettagli inessenziali, all interno del quale si possa risolvere il problema

Che cosa si intende per INFORMATICA? Mettiamo insieme le due definizioni: Obiettivo dell Informatica è creare delle astrazioni di problemi del mondo reale che possano essere rappresentate ed elaborate all interno di un sistema di calcolo al fine di eseguire dei procedimenti risolutivi in modo automatico

Esempio Si devono dividere lastre di marmo di Carrara, rettangolari e di dimensioni AxB (con A e B variabili) in tanti quadrati uguali avente il lato della maggiore lunghezza possibile e senza generare sfrido. Si supponga che tutte le dimensioni siano numeri interi. Si vuole realizzare un procedimento automatico che, per ogni lastra verifichi se ciò è possibile, date le dimensioni, e, in caso positivo, fornire la lunghezza del lato del quadrato (può essere diverso per ogni lastra).

Esempio Quali sono gli aspetti importanti del problema? Quali sono i dati a disposizione? Quali sono i dati richiesti? Come si può ridefinire in forma astratta il problema? lato A lato B Procedimento risolutivo taglio possibile lato quadrato

Ridefiniamo il problema Calcolare il Massimo Comune Divisore (MCD) dei due numeri interi A e B Se il MCD è diverso da 1, il taglio è possibile e la misura del lato del quadrato è data dal MCD. Se il MCD è uguale a 1, il taglio non è possibile

Come eseguire il calcolo in modo automatico? E necessario un procedimento sistematico, costituito da un insieme finito di operazioni, ognuna delle quali sia precisa (non ambigua) ed eseguibile, da applicare ai dati in ingresso perché possa fornire dei dati in uscita. E necessario un algoritmo

E un algoritmo? Scaldare l olio, aggiungere la carne di cinghiale e i gusti tritati, far soffriggere bene. Quando la carne sarà ben rosolata aggiungere il bicchiere di vino, lasciar sfumare, aggiungere un bicchiere d acqua e lasciar cuocere per almeno 30 minuti (aggiungere ancora acqua quando necessario). Unire quindi la passata di pomodoro, regolare di sale e pepe e lasciar cuocere ancora per 15 minuti. Nel frattempo avrete messo a cuocere le pappardelle in abbondante acqua salata. Scolarle al dente, condirle con la salsa ben calda e servire con eventuale aggiunta di parmigiano.

E un algoritmo? MA R K US

3

4 AA-251870-14

7

8 AA-251870-14

9

10 AA-251870-14

3x 11

12 AA-251870-14

13

Algoritmo risolutore 1. Leggi il valore di A e di B 2. Calcola il MCD di A e di B e scrivilo in C 3. Se C=1, termina: comunica che il taglio non è possibile 4. Termina: comunica che il taglio è possibile e che la misura del lato del quadrato è C Sappiamo calcolare il MCD?

Algoritmo di Euclide Uno degli algoritmi più antichi conosciuti, presente negli Elementi di Euclide intorno al 300 a.c. (proposizione VII.2) Probabilmente non scoperto da Euclide. Certamente era conosciuto da Eudosso di Cnido intorno al 375 a.c. Aristotele (intorno al 330 a.c.) ne ha fatto cenno ne I topici, 158b, 29-35. Non richiede la fattorizzazione dei due interi.

Algoritmo di Euclide 1. Leggi due numeri X e Y, con X > Y 2. Dividi X per Y e ottieni il resto R 3. Se R=0, termina: il MCD è Y 4. Sostituisci X con Y 5. Sostituisci Y con R 6. Torna al punto 2.

Esempio MCD di 1365 e 3654 X 3654 1365 924 441 42 Y 1365 924 441 42 21 R 924 441 42 21 0 MCD di 8351 e 772 MCD 21 X Y R 8351 772 772 631 631 141 631 141 67 7 4 3 141 67 7 4 3 1 67 7 4 3 1 0 MCD 1

Alcune considerazioni L algoritmo è del tutto generale, ma, in qualsiasi caso specifico, il procedimento avrà termine e fornirà una risposta precisa in un numero finito di passi. A ogni passo, è perfettamente chiaro quale operazione si debba compiere e anche la decisione circa il momento in cui il procedimento si debba ritenere concluso è perfettamente definita. La descrizione dell intero procedimento è presentata in termini finiti, anche se può essere applicata a numeri naturali di dimensioni illimitate. Il procedimento descritto assume che sia noto come eseguire particolari operazioni quali il calcolo del resto della divisione intera tra due numeri naturali. E se così non fosse? Sarebbe necessario un opportuno algoritmo

Calcolo del resto della divisione intera tra due numeri naturali M ed N 1. Leggi due numeri M e N 2. Se M<N termina: il resto è M 3. Sostituisci M con M-N 4. Ritorna al punto 2. M 67 47 27 7 N resto 20 20 20 20 7 Come si modifica l algoritmo per ottenere anche il quoziente? M 8351 7579 6807 6035 5263 4491 3719 2947 2175 1403 631 N resto 772 772 772 772 772 772 772 772 772 772 772 631

Mettiamo tutto insieme 1.Leggi il valore di A e di B 2.Calcola il MCD di A e di B e scrivilo in C 3.Se C=1, termina: comunica che il taglio non è possibile 4.Termina: comunica che il taglio è possibile e che la misura del lato del quadrato è C 1. Leggi due numeri X e Y, con X > Y 2. Dividi X per Y e ottieni il resto R 3. Se R=0, termina: il MCD è Y 4. Sostituisci X con Y 5. Sostituisci Y con R 6. Torna al punto 2. 1. Leggi due numeri M e N 2. Se M<N termina: il resto è M 3. Sostituisci M con M-N 4. Ritorna al punto 2. Sono possibili (o necessarie) ulteriori esplosioni?

Chi esegue le operazioni? Una volta definito, l algoritmo deve essere sottoposto ad un esecutore. L esecutore deve essere in grado di: intepretare correttamente la sequenza di comandi eseguire ognuno dei comandi forniti memorizzare informazioni su opportuni supporti che permettano di accedere alle informazioni memorizzate e modificarle Nota: l esecutore non è necessariamente consapevole di quello che sta facendo.

Un esecutore umano controllo lista di istruzioni dati in ingresso risultati temporanei risultati finali esecuzione Scambio dati con l esterno 1 2 3 + 4 5 6-7 8 9 x 0. C /

Un esecutore non umano istruzioni Unità di controllo Unità di memoria Unità logicoaritmetica Unità di ingresso/ uscita dati Differenze tra i due tipi di esecutori: rappresentazione delle istruzioni rappresentazioni dei dati

Modello di von Neumann Bus di sistema CPU Memoria Centrale Interfaccia Interfaccia Interfaccia Periferica 1 Periferica 2 Periferica 3 Modello di implementazione

Il modello di von Neumann oggi Nell architettura dei moderni sistemi di elaborazione ritroviamo l organizzazione del modello di von Neumann Motherboard per sistema server