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

Documenti analoghi
Il calcolatore. Architettura di un calcolatore (Hardware)

COMPILAZIONE. Tarsformazione di linguaggi

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

Laurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1

Sistemi Web per il turismo - lezione 3 -

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

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

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

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

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

Corso di INFORMATICA 2 (Matematica e Applicazioni)

Elementi di programmazione Algoritmi Flow Chart, Fasi della programmazione Linguaggi Elementi di programmazione ad oggetti

Informatica Teorica. Macchine a registri

INFORMATICA E COMPUTER : INTRODUZIONE

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

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

Linguaggi e Paradigmi di Programmazione

Descrizione di un algoritmo

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

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

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.

Algoritmi. Maurizio Palesi. Maurizio Palesi 1

1

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Introduzione. Informatica B. Daniele Loiacono

Fasi di creazione di un programma

Linguaggi di programmazione

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

Appunti di Sistemi Elettronici

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

Richiami di informatica e programmazione

PARTE III MACCHINE A REGISTRI

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

LINGUAGGI - COMPILATORI - INTERPRETI

Nozione di algoritmo. Gabriella Trucco

Corso di Informatica

Algoritmi, Linguaggi e Programmi

DAL PROBLEMA AL PROGRAMMA

INFORMATICA 1 L. Mezzalira

Informatica. Scopo della lezione

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

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

SOFTWARE. È l insieme delle istruzioni che è necessario fornire alla macchina per il suo funzionamento. Vi sono due categorie di software:

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

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

Linguaggi di programmazione

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

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

Problemi, Algoritmi e Programmi

Le aree dell informatica

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

Architettura del calcolatore

Come ragiona il computer. Problemi e algoritmi

FONDAMENTI di INFORMATICA L. Mezzalira

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

Cenni su algoritmi, diagrammi di flusso, strutture di controllo

PROGRAMMA DI SCIENZE E TECNOLOGIE APPLICATE 2015/2016 Classe 2ª Sez. C Tecnologico

Elementi di Informatica e Programmazione

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

Programmi. Algoritmi scritti in un linguaggio di programmazione

Introduzione. Laboratorio di Calcolo Corso di Laurea in Fisica. Università degli Studi di Roma La Sapienza

Origini e caratteristiche dei calcolatori elettronici

Laboratorio di Programmazione Lezione 1. Cristian Del Fabbro

Introduzione alla Programmazione

Algoritmi, dati e programmi

Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1

Codifica: dal diagramma a blocchi al linguaggio C++

Sistemi Web! per il turismo! - lezione 3 -

Esercizio. Fabio Proietti (c) 2012 Licenza:

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

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

La Macchina Virtuale

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

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

PROGRAMMARE AI TEMPI DEL DIRITTO

Informatica per le discipline umanistiche 2 lezione 14

Il calcolatore oggi : UN SISTEMA DI ELABORAZIONE

Software di base. Corso di Fondamenti di Informatica

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo

Analizzatore lessicale o scanner

LINGUAGGI DI PROGRAMMAZIONE

Elementi di Informatica

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

CORSO DI LAUREA IN SCIENZE ERBORISTICHE E DEI PRODOTTI NUTRACEUTICI

Lezione n.9. Introduzione al linguaggio macchina

Metodologie di programmazione in Fortran 90

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

Dipartimento di informatica CONTENUTI MINIMI DI INFORMATICA E TECNOLOGIE DELLA COMUNICAZIONE

L interesse nella macchina di Turing

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

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

Algoritmi e diagrammi di flusso

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

Dispensa YACC: generalità

Architettura dei Calcolatori Introduzione al corso

Gestione del workflow

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

Riconoscere le caratteristiche funzionali di un Nozioni fondamentali di un sistema operativo.

Transcript:

Programma del corso o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori o Elementi di Programmazione

Algoritmi e programmi o Algoritmo Sequenza finita di passi che risolve in tempo finito un problema. o 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

Cenni di programmazione o Il computer esegue programmi o Un programma eseguibile dal computer è una sequenza di istruzioni comprensibili da quel computer o Usando sequenze diverse di istruzioni, e dati diversi, possiamo far fare al computer le cose più disparate

Cenni di programmazione o Il linguaggio di programmazione che viene compreso da un calcolatore è il linguaggio macchina (assembler) o Però scrivere programmi in assembler è scomodo, perché il linguaggio è molto distante da quello umano. o Inoltre, un programma in assembler gira solo su un tipo di cpu sarebbe comodo poter usare lo stesso programma su cpu diverse senza doverlo riscrivere ogni volta

Linguaggi di programmazione ad alto livello o I linguaggi di programmazione ad alto livello permettono di scrivere programmi con una notazione adatta agli esseri umani, e in alcuni casi molto intuitiva. o Usando degli opportuni traduttori (compilatori ed interpreti) lo stesso programma può essere usato su macchine diverse o Fortran, Cobol, Pascal, Ada, C, C++, Java, Lisp, ML, Prolog,...

Linguaggi di programmazione ad alto livello o Un linguaggio artificiale per scrivere programmi o Un linguaggio preciso e rigoroso. Occorre rispettare: la sintassi (regole di composizione dei simboli del linguaggio per ricavarne le istruzioni) la semantica (significato delle istruzioni) o Il computer è meno tollerante agli errori di un umano

Il compilatore o Un programma scritto in un linguaggio ad alto livello è detto programma sorgente. o Per essere eseguito su un computer, va tradotto nel linguaggio macchina del computer. o Il compilatore èun programma che esegue la traduzione, producendo il programma oggetto, ossia una sequenza di istruzioni macchina o Il compilatore segnala anche eventuali errori di sintassi nella scrittura del programma sorgente

Il compilatore Programma P scritto nel linguaggio L Compilatore per P sul computer M Esecuzione di P su M Programma P nel linguaggio macchina di M

L interprete o In alternativa alla compilazione, un programma sorgente può essere interpretato. o Un interprete èun programma che non produce alcun programma oggetto, ma legge il ogni istruzione del programma sorgente e genera le istruzioni macchina corrispondenti, che vengono passate all hardware per l esecuzione.

Compilatori vs interpreti o In un programma compilato, la traduzione avviene una sola volta, e poi il programma oggetto può essere eseguito quante volte si vuole o In un programma interpretato, la traduzione avviene tutte le volte che si esegue il programma o Molti linguaggi permettono entrambe le scelte o Attualmente, i computer sono così potenti che anche la compilazione di lunghi programmi non richiede molto tempo.

Dall algoritmo al programma

Il concetto di algoritmo o Un algoritmo è una sequenza di passi necessari per risolvere un problema o eseguire una computazione o In alcuni casi, lo stesso problema/computazione può essere risolto in modi diversi, ai cui corrispondono diversi algoritmi o Un programma non è altro che la descrizione di un algoritmo scritta nel linguaggio di programmazione scelto.

Esempio di algoritmo: ricerca di una voce nell elenco telefonico Sia cognome la voce da cercare Sia E l elenco da sfogliare Ripeti se E èvuoto allora cognome non esiste, termina. dividi a metà l elenco E esamina tutte le voci della pagina che hai di fronte se trovi cognome allora annota il numero e termina. se cognome < prima voce pagina considera come E la prima metà dell elenco altrimenti considera come E la seconda metà dell elenco Fine

Diagrammi di flusso o Notazione grafica usata per descrivere in modo intuitivo le azioni di cui è fatto un algoritmo. o Viene usata per descrivere i passi salienti di un algoritmo, senza doversi preoccupare dei dettagli sintattici del programma corrispondente o Una volta che l algoritmo è stato descritto con un diagramma di flusso, deve però essere trasformato nel programma corrispondente. o Ogni azione è rappresentata da un blocco

Blocchi di flusso: inizio e fine algoritmo START STOP

Blocchi di flusso: una o più azioni elementari PIPPO = PIPPO + 1 PLUTO = 0

Blocchi di flusso: Blocco condizionale T condizione F Diagramma 1 Diagramma 2

Blocchi di flusso: Blocco di ripetizione F condizione T Diagramma 1

Blocchi di flusso: Input/Output Input/output

Il concetto di variabile o Per eseguire una qualsiasi computazione, abbiamo bisogno di poter immagazzinare i risultati temporanei e finali della computazione stessa. o Ogni linguaggio ad alto livello mette a disposizione le variabili: contenitori in cui immagazzinare i dati della computazione o Concettualmente, le variabili sono come pezzi di carta su cui si possono annotare/modificare i valori di un calcolo che si sta facendo

Il concetto di variabile o Ogni variabile ha un nome mnemonico, che si usa nel programma per riferirsi alla var. stessa. o Una variabile contiene un valore che può essere modificato a piacimento o Durante l esecuzione di un programma, il sistema operativo mantiene una associazione tra il nome di ogni var. e l indirizzo della cella di memoria in cui è memorizzato il suo valore o Quindi una variabile è semplicemente una astrazione della cella di memoria fisica.

Il concetto di variabile o Quando si scrive un programma è necessario dichiarare quali variabili vogliamo usare. o Le variabili possono essere di tipo diverso, per indicare che le usiamo per memorizzare dati di tipo diverso: Variabile LETTERA, tipo: carattere; Variabile SOMMA, tipo: intero;

L importanza delle variabili o Le variabili sono lo strumento fondamentale per assicurare la flessibilità dei programmi. o Lo stesso programma, eseguito con variabili di valore diverso da risultati diversi. Lo stesso programma si adatta cioè alle esigenze del momento, senza dover essere riscritto

Esempi di algoritmi

Calcolo dell area di un rettangolo o Leggi da input l altezza (H) o Leggi da input la base (B) o Calcola l area o Dai in output il risultato

Calcola l area di un rettangolo START Leggi Altezza Leggi Base Area = Base*Altezza Stampa Area STOP

Conversione lire in euro o Leggi da input l importo in lire o Calcola il corrispettivo in Euro o Dai in output il risultato

Conversione lire in Euro START Leggi Lire Euro = Lire/1936,27 Stampa Euro STOP

Scambio dei valori di due variabili o Leggi valore prima variabile X o Leggi valore seconda variabile Y o Conserva X in una variabile temporanea Aux o Assegna il valore di Y ad X o Assegna il valore di Aux a Y o Scrivi X o Scrivi Y

Scambio dei valori di due variabili

Massimo tra due numeri o Leggi X o Leggi Y o Se X > Y Stampa X Altrimenti Stampa Y

Massimo tra due numeri

Pari o dispari o Leggi N o Dividi N per 2 o Se Resto = 0 Scrivi N è pari Altrimenti Scrivi N è dispari

Pari o dispari