Sommario. Esempi di algoritmi. Il concetto di algoritmo. Sistemi Informativi in Rete Fondamenti di programmazione dei calcolatori

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Sommario. Esempi di algoritmi. Il concetto di algoritmo. Sistemi Informativi in Rete Fondamenti di programmazione dei calcolatori"

Transcript

1 Sommario Sistemi Informativi in Rete Fondamenti di programmazione dei calcolatori Introduzione Il concetto di algoritmo I linguaggi di programmazione La programmazione dei calcolatori in Java III Facoltà di Architettura Sede Bovisa Gianpaolo Cugola Dipartimento di Elettronica e Informazione cugola@elet.polimi.it cugola Gianpaolo Cugola 2 Il concetto di algoritmo Esempi di algoritmi Algoritmo: sequenza di passi, definiti con precisione e chiaramente comprensibili per l esecutore, che portano alla realizzazione di un compito Le istruzioni di montaggio di un modellino Le istruzioni di istallazione di un software La procedura per il calcolo del massimo comune divisore di un insieme di numeri interi Una ricetta di cucina Gianpaolo Cugola 3 Gianpaolo Cugola 4

2 Caratteristiche degli algoritmi: Precisione In un algoritmo i singoli passi devono essere indicati con precisione e la sequenza non deve dare adito a fraintendimenti Un controesempio: In una ricetta: sale q.b. Caratteristiche degli algoritmi: Comprensibilità In un algoritmo i singoli passi devono essere chiaramente comprensibili per l esecutore La comprensibilità dipende dall esecutore Un controesempio: Le istruzioni di istallazione di un elettrodomestico in una lingua sconosciuta all utente Gianpaolo Cugola 5 Gianpaolo Cugola 6 Caratteristiche degli algoritmi: Correttezza Un algoritmo è corretto se perviene alla soluzione del compito cui è preposto senza difettare di alcun passo fondamentale Un controesempio: Se nelle istruzioni di istallazione di un elettrodomestico viene omessa la verifica della tensione è possibile che un utente disattento inserisca la spina senza verificare e causi un cortocircuito Caratteristiche degli algoritmi: Efficienza Un algoritmo è efficiente se perviene alla soluzione del problema nel minor tempo possibile e/ o usando la minima quantità di risorse fisiche Un controesempio: N on è efficiente una ricetta la cui sequenza di istruzioni, una volta realizzata, ci costringa a scaldare di nuovo delle pietanze che avevamo precedentemente cotto N on è efficiente una ricetta che porti ad uno spreco di ingredienti Gianpaolo Cugola 7 Gianpaolo Cugola 8

3 Un esempio: somma di due numeri con un pallottoliere Si deve scrivere un algoritmo per la somma di due numeri mediante pallottoliere Il numero indicato da ogni fila del pallottoliere è rappresentato da altrettante palline poste sulla sinistra della fila. Le palline non utilizzate sono poste a destra Ipotesi semplificatrici: Supponiamo che il primo addendo sia rappresentato dalla prima fila di palline, il secondo dalla seconda fila e il risultato debba essere rappresentato dalla terza fila Supponiamo anche che il numero di palline sia sempre sufficiente Somma di due numeri con il pallottoliere: soluzione Si sposti una pallina da sin. a des. sulla prima fila e contemporaneamente si sposti una pallina da des. a sin. sull ultima fila Si ripeta il passo precedente fino all esaurimento delle palline sulla prima fila Si sposti una pallina da sin. a des. sulla seconda fila e contemporaneamente si sposti una pallina da des. a sin. sull ultima fila Si ripeta il passo precedente fino all esaurimento delle palline sulla seconda fila Il numero di palline che si trova sulla sin. sulla terza fila rappresenta il valore cercato Gianpaolo Cugola 9 Gianpaolo Cugola 10 La soluzione precedente è un algoritmo? Ci si può chiedere se la soluzione precedente rappresenti veramente un algoritmo Possiamo osservare che: La procedura consiste nell esecuzione di un insieme limitato e semplice di operazioni elementari Scelta di una fila Spostamento di una pallina Controllo se una riga sia vuota Qualsiasi esecutore capace di compiere tali operazioni elementari è capace di eseguire l algoritmo Esercizio Si scriva un algoritmo per cercare il numero di telefono di una persona noto nome, cognome e indirizzo usando l elenco telefonico Suggerimenti: Usare una scomposizione per passi Considerare anche il caso in cui la persona non sia in elenco Provare a descrivere diverse procedure di ricerca Gianpaolo Cugola 11 Gianpaolo Cugola 12

4 Algoritmi e calcolatori Le istruzioni macchina I calcolatori elettronici sono i più diffusi esecutori automatici di algoritmi N el caso dei calcolatori elettronici gli algoritmi sono descritti da programmi scritti in un opportuno linguaggio comprensibile al calcolatore detto linguaggio macchina Tale linguaggio differisce nei suoi dettagli da calcolatore a calcolatore Per essere più precisi da processore a processore D altra parte è possibile individuare un insieme di caratteristiche comuni a tutti i linguaggi macchina Gianpaolo Cugola 13 Un programma scritto in linguaggio macchina è formato da una sequenza di istruzioni appartenenti al set di istruzioni del particolare processore Ogni istruzione è formata da: Un codice operativo Zero o più operandi Tanto il codice operativo quanto gli operandi sono rappresentati nella memoria del calcolatore sotto forma di numeri binari Gianpaolo Cugola 14 Classi di istruzioni Un ipotetico linguaggio macchina Il set di istruzioni di un qualsiasi linguaggio macchina può essere diviso in quattro classi principali di istruzioni: Istruzioni per il trasferimento dati tra memoria e registri del processore e viceversa Operazioni aritmetiche e logiche sui dati Istruzioni per il controllo del flusso di programma Istruzioni per la gestione dell I/ O Consideriamo un ipotetico processore semplificato con due soli registri A e B N el seguito descriveremo alcune possibili istruzioni macchina per tale processore E faremo alcuni esempi di programmi scritti usando tale linguaggio Gianpaolo Cugola 15 Gianpaolo Cugola 16

5 Le istruzioni per il trasferimento dati tra registri e memoria Le istruzioni loada e loadb servono per spostare il contenuto di una cella di memoria nei registri A e B rispettivamente Esempio: loada ind1 Le istruzioni storea e storeb servono per spostare il contenuto dei registri A e B rispettivamente in una cella di memoria il cui indirizzo è indicato come parametro Esempio: storea ind1 Le operazioni aritmetiche Il linguaggio macchina in esame fornisce le seguenti istruzioni per lo svolgimento delle operazioni aritmetiche di base Operazioni su interi: add, dif, mul, div Operazioni su reali: addr, difr, mulr, divr Le istruzioni operano sui registri A e B e pongono il risultato nel registro A N el caso di divisione tra interi il registro B viene usato per contenere il resto dell operazione Gianpaolo Cugola 17 Gianpaolo Cugola 18 Le operazioni logiche Le operazioni di I/O Il linguaggio macchina in esame fornisce le seguenti istruzioni per lo svolgimento delle operazioni logiche di base and, or, not Le istruzioni operano sui registri A e B e pongono il risultato nel registro A N el caso di operazione not viene usato il solo registro A L istruzione read legge un dato dalla periferica di input e pone il dato letto nella cella di memoria il cui indirizzo viene passato come parametro Esempio: read ind1 L istruzione write scrive il dato presente nella cella di memoria il cui indirizzo viene passato come parametro sulla periferica di output Esempio: write ind1 Gianpaolo Cugola 19 Gianpaolo Cugola 20

6 Le istruzioni per il controllo del flusso - 1 L istruzione di salto incondizionato jump salta all indirizzo specificato come parametro L istruzione di salto condizionato jumpz salta all indirizzo specificato come parametro se l ultima operazione matematica ha dato risultato nullo Il processore controlla il valore del registro di stato del processore Il salto viene effettuato solo se il bit di zero vale 1 Le istruzioni per il controllo del flusso - 2 L istruzione jsr salta ad una subroutine A differenza della jump viene conservata in una apposita zona di memoria (lo stack) l indirizzo dell istruzione successiva alla jsr L istruzione rts ritorna da una subroutine Il valore della prima cella dello stack viene utilizzato per impostare il valore del program counter (e poi rimosso dallo stack) Gianpaolo Cugola 21 Gianpaolo Cugola 22 Altre istruzioni I linguaggi reali L istruzione halt termina l esecuzione del programma Il linguaggio presentato utilizza solo 22 istruzioni Sono sufficienti 5 bit per codificare tutti i codici operativi Il linguaggio presentato manca di numerose istruzioni rispetto ad un linguaggio macchina reale Il set di istruzioni del VAX della Digital include oltre 300 istruzioni Gianpaolo Cugola 23 Gianpaolo Cugola 24

7 I programmi Un esempio di programma Un programma consiste di due parti La parte istruzioni contenente il codice del programma La parte dati costituita dalle celle di memoria destinate a contenere i dati sui quali il programma opera Il processore esegue un programma dalla prima istruzione fino all istruzione halt Il programma deve acquisire due numeri interi da terminale e stamparne il prodotto a video Codice: 0 read 8 1 read 9 2 loada 8 3 loadb 9 4 mul 5 storea 8 6 write 8 7 halt 8 int 9 int Gianpaolo Cugola 25 Gianpaolo Cugola 26 Esercizio I linguaggi di alto livello Si usi il linguaggio precedente per scrivere un programma che legge due numeri A e B e scrive a video B volte il primo numero A Si usi il linguaggio precedente per scrivere un programma che legge due numeri A e B e scrive a video il prodotto di A per B N on si faccia uso dell istruzione mul ma delle sole istruzioni add e dif La programmazione in linguaggio macchina è improponibile per programmi di una certa complessità Troppo difficile scrivere direttamente numeri binari Le singole istruzioni sono troppo poco potenti algoritmi troppo complessi anche per i compiti più semplici Per ovviare a tale problema, a partire dalla seconda metà degli anni 50 sono stati sviluppati dei linguaggi di alto livello più semplici da utilizzare Il calcolatore continua ad eseguire solo il linguaggio macchina il trucco risiede nella disponibilità di appositi programmi capaci di tradurre i linguaggi di alto livello in linguaggio macchina Gianpaolo Cugola 27 Gianpaolo Cugola 28

8 Linguaggi di alto livello alcune possibili classificazioni Una classificazione in base al meccanismo di esecuzione Linguaggi interpretati Linguaggi compilati Una classificazione in base al paradigma di programmazione Linguaggi procedurali Linguaggi funzionali Linguaggi logici Linguaggi orientati agli oggetti Una ulteriore classificazione (valida per linguaggi procedurali) Linguaggi tipizzati Linguaggi non tipizzati Gianpaolo Cugola 29 Linguaggi compilati e interpretati Il calcolatore capisce solo il linguaggio macchina I programmi scritti in linguaggi di alto livello devono essere tradotti in linguaggio macchina prima di essere eseguiti Di ciò si occupa il compilatore In alternativa, alcuni linguaggi di alto livello hanno associato un interprete Si tratta di un programma capace di capire quel particolare linguaggio e di eseguirne i programmi Traducendo in linguaggio macchina ogni istruzione via via che la si incontra durante l esecuzione Gianpaolo Cugola 30 Linguaggi compilati e interpretati Linguaggi compilati e interpretati sorgente codifica eseguibile (linguaggio macchina) compilazione sorgente codifica Il Fortran, Ada, il C, il C++ e la maggior parte dei linguaggi utilizzati in ambito industriale sono linguaggi compilati TCL, Python, Perl, Basic, JavaScript sono linguaggi interpretati N el caso di JavaScript l interprete è parte del browser esecuzione esecuzione tramite interprete Gianpaolo Cugola 31 Gianpaolo Cugola 32

9 Una strada intermedia tra compilazione e interpretazione Java è un linguaggio particolare Viene compilato in un linguaggio intermedio (il java byte code) Che viene interpretato dalla Java Virtual Machine Questo al fine di garantire indipendenza dalla piattaforma Lo stesso programma java, una volta compilato in java byte code può essere eseguito su qualsiasi piattaforma per la quale sia disponibile una JVM Lo stesso approccio è stato seguito da Microsoft con C# Java: un po linguaggio compilato, un po linguaggio interpretato sorgente Java codifica eseguibile (java byte code) compilazione esecuzione tramite interprete del java byte code Gianpaolo Cugola 33 Gianpaolo Cugola 34 I linguaggio procedurali Variabili e procedure Sono i più vicini al linguaggio macchina Come i linguaggi macchina forniscono: Istruzioni matematiche Istruzioni di I/ O Istruzioni per il controllo di flusso Si basano sui concetti di variabile e procedura Variabile: Si tratta di un astrazione sul concetto di cella di memoria Ogni variabile ha un nome e, nel caso di linguaggi tipizzati, anche un tipo Esempio: var a; int j; Procedura: Una procedura (o funzione) realizza una certa operazione Opera su un insieme di parametri e restituisce un valore in uscita Esempio (JavaScript): function prodotto(i, j) { var risultato = 0; while(j > 0) { risultato = risultato + i; j = j - 1; } return risultato; } Si noti la differenza rispetto al concetto di variabile presente in matematica Gianpaolo Cugola 35 Gianpaolo Cugola 36

10 I linguaggi funzionali I linguaggi logici Si basano sul concetto di funzione inteso in senso matematico Una funzione in un linguaggio funzionale opera su dei valori per produrre un nuovo valore N on ha effetti collaterali N on esiste un concetto di variabile come astrazione sulla cella di memoria Esempio (lisp): (defun prodotto (i j) (if (= j 0) 0 (+ i (prodotto i (- j 1))) ) ) Gianpaolo Cugola 37 Si basano sulla logica del primo ordine E possibile asserire dei fatti e delle regole di deduzione Esempio: prodotto(i, 0, 0). prodotto(i, 1, I). prodotto(i, J, R) :- X is J - 1, prodotto(i, X, S), R is S + I. Gianpaolo Cugola 38 Dai linguaggi procedurali ai linguaggi orientati agli oggetti I linguaggi procedurali sono centrati sui concetti di variabile e procedura Un linguaggio OO è centrato sui concetti di classe e oggetto Un programma scritto in un linguaggio OO consiste di oggetti che interagiscono Esempio: Un programma per gestire i conti correnti di una banca conterrà oggetti di tipo, Customer, Transaction, ATM,... Ogni oggetto è istanza di una certa classe che rappresenta il tipo di quell oggetto Oggetti e stati Ogni oggetto, in ogni istante dell esecuzione del programma, è caratterizzato da uno stato Lo stato di un oggetto è dato dal valore degli attributi dell oggetto Lo stato cambia nel tempo nome dell oggetto nome e valore degli attributi account1 number = 3267 balance = nome della classe di cui l oggetto è istanza account1 deposit number = 3267 balance = nuovo valore Gianpaolo Cugola 39 Gianpaolo Cugola 40

11 Classi e istanze Messaggi e metodi In un programma scriviamo istruzioni per creare nuovi oggetti quando necessario Per creare un oggetto dobbiamo darne una definizione attraverso una classe Una classe definisce un insieme di oggetti simili Una classe è una sorta di stampo per creare nuovi oggetti Un oggetto è detto istanza della classe che abbiamo usato come stampo per crearlo Si dice anche che l oggetto appartiene alla classe nome della classe account1 account2 relazione di istanziazione Gianpaolo Cugola 41 In un programma OO si costruiscono oggetti e li si istruiscono a svolgere dei compiti Per istruire una classe o un oggetto a svolgere dei compiti gli inviamo un messaggio In risposta ad un messaggio viene eseguito un metodo Un metodo è la sequenza di istruzioni che la classe o l oggetto eseguono per svolgere il compito richiesto Gianpaolo Cugola 42 Messaggi e metodi: esempio new deposit getmonthlyfee deposit account1 number = 3267 balance = montlyfee = 5.0 deposit account2 number = 3268 balance = 0.0 montlyfee = 5.0 getmonthlyfee new è un metodo di classe deposit e getmonthlyfee sono metodi di istanza Ancora su messaggi e metodi Tutte le istanze di una stessa classe hanno gli stessi metodi Ciò significa che possono gestire gli stessi messaggi Per questo indichiamo graficamente i metodi di istanza dentro la classe 5.0 getmonthlyfee Gianpaolo Cugola 43 Gianpaolo Cugola 44

12 Metodi di classe e di istanza Stato e attributi I metodi di istanza modificano o leggono lo stato dell istanza a cui sono inviati i corrispondenti messaggi Se esiste un metodo di istanza m è possibile inviare un messaggio m a qualsiasi istanza ma non alla classe corrispondente I metodi di classe agiscono sulla classe e non sulle singole istanze I metodi di classe non possono accedere allo stato delle istanze I metodi di classe, di norma, codificano operazioni relative a tutte le istanze di una classe o a nessuna (è questo il caso del metodo new) Gianpaolo Cugola 45 Lo stato di un oggetto in ogni istante è dato dal valore dei suoi attributi Tutti le istanze della stessa classe hanno gli stessi attributi (numero, nome e tipo) I valori degli attributi possono differire da istanza a istanza Esempio: account1 number = 3267 balance = account2 number = 3270 balance = Gianpaolo Cugola 46 Attributi di classe e di istanza Gli attributi fin quì visti sono detti attributi di istanza Gli attributi di istanza di istanze diverse possono avere valori diversi Alcuni dati sono tipici della classe più che delle singole istanze Esempio: il valore minimo consentito per un conto corrente. E uguale per tutti i conti correnti di una banca In questo caso si parla di attributi di classe Gianpaolo Cugola 47 Attributi di classe e di istanza: esempio 12.0 new deposit setminbalance getminbalance minbalance = deposit account1 number = 3267 balance = montlyfee = 5.0 setminbalance getminbalance deposit account2 number = 3268 balance = 0.0 montlyfee = 5.0 setminbalance getminbalance 12.0 Gianpaolo Cugola

13 Regole generali Esercizi Metodi di classe possono leggere e scrivere solo attributi di classe Messaggi associati a metodi di classe possono essere inviati alla classe o ad una qualsiasi istanza Metodi di istanza possono leggere e scrivere tanto attributi di classe quanto attributi di istanza Messaggi associati a metodi di istanza possono essere inviati solo alle istanze Gianpaolo Cugola 49 Si disegni un diagramma degli oggetti per la classe Automobile e tre auto a1, a2 e a3 Si identifichino metodi e attributi di istanza e di classe L attributo nummaxruote è un attributo di classe o di istanza? Si ripeta l esercizio precedente per la classe CD e per 2 istanze della classe Si provino ad identificare quali classi ed oggetti (con i relativi attributi e metodi) siano utili per un programma che deve mantenere un catalogo di CD Per ogni CD si vuole memorizzare i dati relativi all autore (nome, cognome,...) ed i dati relativi alle canzoni memorizzate (titolo e durata) Suggerimento: serve una classe Catalogo avente l attributo insiemedicd Gianpaolo Cugola 50 Ereditarietà - 1 Ereditarietà - 2 In un programma OO è spesso necessario considerare oggetti simili ma diversi per certi aspetti Esempio: conti correnti e conti di risparmio Si potrebbe usare un unica classe che raccolga tutti gli attributi utili Tanto quelli comuni a tutti i conti, quanto quelli tipici dei soli conti correnti, quanto quelli tipici dei soli conti di risparmio Oppure due classi distinte con duplicazione degli attributi comuni In entrambi i casi non avremmo un buon progetto Soluzione: usare l ereditarietà Una classe può estenderne un altra Ereditandone gli attributi e i metodi e aggiungendo altri attributi e metodi Si parla di sopraclasse e sottoclasse Checking attributi e metodi specifici attributi e metodi comuni Saving attributi e metodi specifici Gianpaolo Cugola 51 Gianpaolo Cugola 52

14 Esercizio Si progetti una gerarchia di ereditarietà per le classi: Person, Friend, ProfessionalContact, Student da usare in un programma per gestire un indirizzario Gianpaolo Cugola 53

Codifica dell'informazione e dei programmi

Codifica dell'informazione e dei programmi Codifica dell'informazione e dei programmi Sommario Codifica binaria ed esadecimale dei numeri Operazioni aritmetiche e logiche Porte logiche e circuiti sommatori Formato delle istruzioni e principali

Dettagli

Fondamenti di Algoritmi

Fondamenti di Algoritmi Fondamenti di Algoritmi Corsi di Informatica Grafica Prof. Manuel Roveri Dipartimento di Elettronica e Informazione roveri@elet.polimi.it Indice Algoritmi: Definizione Diagrammi di Flusso Esempi ed esercizi

Dettagli

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

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

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

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Dettagli

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli

Dettagli

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione DAGLI ALGORITMI AI LINGUAGGI Linguaggi di Programmazione E` una notazione con cui e` possibile descrivere gli algoritmi. Programma: e` la rappresentazione di un algoritmo in un particolare linguaggio di

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

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

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Linguaggi di alto livello, compilatori e interpreti

Linguaggi di alto livello, compilatori e interpreti Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI

Dettagli

Concetti Introduttivi. Il Computer

Concetti Introduttivi. Il Computer Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta

Dettagli

LINGUAGGI DI ALTO LIVELLO

LINGUAGGI DI ALTO LIVELLO LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic Ada

Dettagli

Algoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo

Algoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo Algoritmi, linguaggi e programmi Emilio Di Giacomo e Walter Didimo Risolvere i problemi Il calcolatore permette di risolvere molti problemi, ma sfortunatamente non tutti Il concetto di algoritmo consente

Dettagli

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche 3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni

Dettagli

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione

Dettagli

Primi passi col linguaggio C

Primi passi col linguaggio C Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta

Dettagli

Introduzione alla programmazione. Walter Didimo

Introduzione alla programmazione. Walter Didimo Introduzione alla programmazione Walter Didimo Programmi Un programma è una frase (anche molto lunga) che descrive delle azioni che devono essere svolte da un calcolatore La frase deve essere dettagliata

Dettagli

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina

Dettagli

Somma di numeri binari

Somma di numeri binari Fondamenti di Informatica: Codifica Binaria dell Informazione 1 Somma di numeri binari 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 Esempio: 10011011 + 00101011 = 11000110 in base e una base Fondamenti di

Dettagli

Corso di Linguaggi di Programmazione + Laboratorio

Corso di Linguaggi di Programmazione + Laboratorio Corso di inguaggi di Programmazione + aboratorio Capitolo 1 - Introduzione Si ringrazia il Dott. Marco de Gemmis per la collaborazione nella predisposizione del materiale didattico Apprendimento di un

Dettagli

Elementi base per la realizzazione dell unità di calcolo

Elementi base per la realizzazione dell unità di calcolo Elementi base per la realizzazione dell unità di calcolo Memoria istruzioni elemento di stato dove le istruzioni vengono memorizzate e recuperate tramite un indirizzo. ind. istruzione Memoria istruzioni

Dettagli

PROBLEMI ALGORITMI E PROGRAMMAZIONE

PROBLEMI ALGORITMI E PROGRAMMAZIONE PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL

Dettagli

Introduzione alla Programmazione. Giselda De Vita

Introduzione alla Programmazione. Giselda De Vita Introduzione alla Programmazione Giselda De Vita - 2015 1 Sulla base dell ambito in cui si colloca il problema da risolvere, è opportuno adottare un linguaggio piuttosto che un altro: ² Calcolo scientifico:

Dettagli

Informatica Teorica. Macchine a registri

Informatica Teorica. Macchine a registri Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire

Dettagli

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

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina

Dettagli

Programmazione strutturata

Programmazione strutturata Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 3. (testo di riferimento: Bellini-Guidi) Ing. Michele Ruta 1di 29 Linguaggi di programmazione Un programma è un algoritmo

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Programmazione L attività con cui si predispone l elaboratore ad eseguire un particolare insieme di azioni su particolari dati, allo scopo di risolvere un problema Dati Input

Dettagli

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni

Introduzione a Java. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Introduzione a Java IIS Altiero Spinelli Via Leopardi132 Sesto San Giovanni Linguaggi di programmazione Ogni programma viene scritto utilizzando un linguaggio specializzato, formale e comprensibile da

Dettagli

Programmazione: Sommario

Programmazione: Sommario Programmazione: Sommario Concetti di Base della Programmazione; Algoritmi; Diagrammi di Flusso; Istruzioni Sequenziali, Condizionali, Cicliche; Logo Variabili, Procedure e Parametri; 1 Il Problema computazionale

Dettagli

La "macchina" da calcolo

La macchina da calcolo La "macchina" da calcolo Abbiamo detto che gli algoritmi devono essere scritti in un linguaggio "comprensibile all'esecutore" Se il nostro esecutore è il "calcolatore", questo che linguaggio capisce? che

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

Dettagli

La codifica digitale

La codifica digitale La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore

Dettagli

Algoritmi e Linguaggi

Algoritmi e Linguaggi Algoritmi e Linguaggi Programmi e linguaggi Un calcolatore è solo un esecutore rapidissimo di istruzioni Un programma è un insieme di istruzioni codificate in un opportuno linguaggio 2 / 21 Linguaggi e

Dettagli

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE Riccardo Dondi Dipartimento di Scienze dei linguaggi, della comunicazione e degli studi culturali Università degli Studi di Bergamo Informazione sul corso

Dettagli

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

Informatica! appunti dalle lezioni dal 18/09/2012 al 28/09/2012!! Informatica! appunti dalle lezioni dal 18/09/2012 al 28/09/2012!! Definizioni! Informatica: scienza per l elaborazione automatica dell informazione! Informatica = Informazione + Automatica! Informazione:

Dettagli

Istruzioni assembler Istruzione N Registri

Istruzioni assembler Istruzione N Registri Istruzioni assembler Istruzione N Registri Aritmetica add a, b, c a = b+c addi a, b, num a = b + sub a, b, c a = b - c mul a, b, c a = b*c div a, b, c a = b/c utilizzati Descrizione 3 Somma. Somma b e

Dettagli

LABORATORIO di INFORMATICA

LABORATORIO di INFORMATICA Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto ALGORITMI E LINGUAGGI http://www.diee.unica.it/giacinto/lab

Dettagli

Programmazione C Massimo Callisto De Donato

Programmazione C Massimo Callisto De Donato Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

IL PRIMO PROGRAMMA IN C

IL PRIMO PROGRAMMA IN C IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE

Dettagli

Unità di apprendimento 6. Il software: dal linguaggio alla applicazione

Unità di apprendimento 6. Il software: dal linguaggio alla applicazione Unità di apprendimento 6 Il software: dal linguaggio alla applicazione Unità di apprendimento 6 Lezione 2 Conosciamo i linguaggi di programmazione In questa lezione impareremo: che cos è un linguaggio

Dettagli

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

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript Sommario Problema computazionale Sviluppo software Algoritmi Diagrammi di Flusso; Pseudo Codice Istruzioni Sequenziali, Condizionali, Cicliche; Javascript 1 Il Problema computazionale È computazionale

Dettagli

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino Corso di Alfabetizzazione Informatica / La CPU CPU (Central Processing Unit) Funzione: eseguire i programmi immagazzinati in memoria principale prelevando le istruzioni (e i relativi), interpretandole

Dettagli

Macchine astratte, linguaggi, interpretazione, compilazione

Macchine astratte, linguaggi, interpretazione, compilazione Macchine astratte, linguaggi, interpretazione, compilazione 1 Macchine astratte una collezione di strutture dati ed algoritmi in grado di memorizzare ed eseguire programmi componenti della macchina astratta

Dettagli

Concetti di base dell ICT

Concetti di base dell ICT Informatica Linguaggio di programmazione Computer Bit Algoritmo Linguaggio macchina Informatica: Informazione automatica Gli anglosassoni usano il termine Computer Science = Scienza dei Calcolatori Computer:

Dettagli

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

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito

Dettagli

Corso di Informatica di Base

Corso di Informatica di Base Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere

Dettagli

FONDAMENTI DI INFORMATICA

FONDAMENTI DI INFORMATICA Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia talia@deis.unical.it A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica

Dettagli

LINGUAGGI DI PROGRAMMAZIONE E CODIFICA PROGRAMMI

LINGUAGGI DI PROGRAMMAZIONE E CODIFICA PROGRAMMI LINGUAGGI DI PROGRAMMAZIONE E CODIFICA PROGRAMMI Giacomo Piscitelli pag. 1/10 Dall Algoritmo al Programma Metodo risolutivo problema algoritmo Linguaggio programma Individuazione di un metodo risolutivo

Dettagli

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2

Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Un ripasso di aritmetica: Conversione dalla base 10 alla base 2 Dato un numero N rappresentato in base dieci, la sua rappresentazione in base due sarà del tipo: c m c m-1... c 1 c 0 (le c i sono cifre

Dettagli

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

Calcolatori Elettronici Parte VIII: linguaggi assemblativi Anno Accademico 2013/2014 Calcolatori Elettronici Parte VIII: linguaggi assemblativi Prof. Riccardo Torlone Universita di Roma Tre Linguaggi di Programmazione Linguaggi ad alto livello Maggiore espressività

Dettagli

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC

Dettagli

Marta Capiluppi Dipartimento di Informatica Università di Verona

Marta Capiluppi Dipartimento di Informatica Università di Verona Marta Capiluppi marta.capiluppi@univr.it Dipartimento di Informatica Università di Verona I Dati Ogni variabile è caratterizzata da Nome Valori Tipo Numeri naturali o interi o reali (1, -2, 0.34) Caratteri

Dettagli

Capitolo 5 Elementi architetturali di base

Capitolo 5 Elementi architetturali di base Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo

Dettagli

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

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Corso di Architettura (Prof. Scarano) 09/04/2002

Corso di Architettura (Prof. Scarano) 09/04/2002 Corso di Architettura (Prof. Scarano) 09/0/2002 Un quadro della situazione Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno

Dettagli

Fondamenti di Informatica T. Il Software

Fondamenti di Informatica T. Il Software Il Software TECNOLOGIA DIGITALE CPU, memoria centrale e dispositivi sono realizzati con tecnologia elettronica digitale. Dati ed operazioni vengono codificati a partire da due valori distinti di grandezze

Dettagli

Linguaggio C - sezione dichiarativa: costanti e variabili

Linguaggio C - sezione dichiarativa: costanti e variabili Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente

Dettagli

Il concetto di informatica. Graziano Pravadelli (2012)

Il concetto di informatica. Graziano Pravadelli (2012) Il concetto di informatica Graziano Pravadelli (2012) Informatica e telecomunicazione Cos è l informatica? lo studio sistematico degli algoritmi che descrivono e trasformano l informazione: la loro teoria,

Dettagli

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente

Dettagli

Fondamenti VBA. Che cos è VBA

Fondamenti VBA. Che cos è VBA Fondamenti VBA Che cos è VBA VBA, Visual Basic for Application è un linguaggio di programmazione, inserito nelle applicazioni Office di Microsoft (Ms Word, Ms Excel, Ms PowerPoint, Visio). VBA è una implementazione

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è un insieme vuoto

Dettagli

I nf ormat ica A concetti int roduttivi

I nf ormat ica A concetti int roduttivi I nf ormat ica A concetti int roduttivi Politecnico di Milano Sede di Cremona Gianpaolo Cugola Dipartimento di Elettronica e Informazione cugola@elet.polimi.it http://www.elet.polimi.it/~cugola Sommario

Dettagli

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Algoritmi. Pagina 1 di 5

Algoritmi. Pagina 1 di 5 Algoritmi Il termine algoritmo proviene dalla matematica e deriva dal nome di in algebrista arabo del IX secolo di nome Al-Khuwarizmi e sta ad indicare un procedimento basato su un numero finito operazioni

Dettagli

Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD

Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD Macchine RAM API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD 2 Macchina RAM 3 Esercizio Si consideri il linguaggio definito da: L = wcw R w a, b } 1. Codificare un programma RAM per il riconoscimento

Dettagli

Elementi di Architettura

Elementi di Architettura Elementi di Architettura Fondamenti di Informatica Roberto BASILI Marzo, 2007 Classi di Istruzioni Istruzioni di assegnamento/modifica Istruzioni di controllo delle sequenze Istruzioni di I/O Classi di

Dettagli

Rappresentazione dell Informazione

Rappresentazione dell Informazione Rappresentazione dell Informazione Rappresentazione delle informazioni in codice binario Caratteri Naturali e Reali positivi Interi Razionali Rappresentazione del testo Una stringa di bit per ogni simbolo

Dettagli

Informatica! Appunti dal laboratorio 1!

Informatica! Appunti dal laboratorio 1! Informatica! Appunti dal laboratorio 1! Sistema Operativo! Windows 7, Windows 8, Mac OS X, Linux, Debian, Red Hat, etc etc! Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli

Corso di Informatica Modulo T1 1 - Il concetto di problema

Corso di Informatica Modulo T1 1 - Il concetto di problema Corso di Informatica Modulo T1 1 - Il concetto di problema 1 Prerequisiti Concetti intuitivi di: Proporzione Problema Variabile Numeri interi e reali 2 1 Introduzione Nel risolvere un problema abbiamo

Dettagli

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Hardware, software e periferiche Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Riepilogo - Concetti di base dell informatica L'informatica è quel settore scientifico disciplinare

Dettagli

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dall'Algoritmo al Programma Istituto Tecnico Statale Commerciale Dante Alighieri Cerignola (FG) Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS Dall'Algoritmo al Programma Pr.: 002 Ver.:1.0 Autore: prof. Michele Salvemini

Dettagli

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE Il computer o elaboratore è una macchina altamente organizzata capace di immagazzinare, elaborare e trasmettere dati con notevole precisione e rapidità. Schematicamente

Dettagli

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1

Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1 Informatica/ Ing. Meccanica/ Prof. Verdicchio/ 13/09/2013/ Foglio delle domande/versione 1 1) Dato un diagramma di flusso quali sono le condizioni necessarie perché si possa costruire un programma corrispondente?

Dettagli

Che cos è l informatica?

Che cos è l informatica? Che cos è l informatica? scienza della rappresentazione e dell elaborazione automatica dell informazione non solo la tecnologia dei calcolatori definizione da Association for Computing Machinery (ACM)

Dettagli

Il concetto di calcolatore e di algoritmo

Il concetto di calcolatore e di algoritmo Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica

Dettagli

Introduzione a Visual Studio Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Introduzione a Visual Studio Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Introduzione a Visual Studio 2010 Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Sviluppo del Software Un editor e un word processor specializzato e usato per scrivere i moduli sorgenti

Dettagli

E una notazione per descrivere gli algoritmi.

E una notazione per descrivere gli algoritmi. Linguaggio di Programmazione E una notazione per descrivere gli algoritmi. Programma:: e la rappresentazione di un algoritmo in un particolare linguaggio di programmazione. In generale, ogni linguaggio

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Rappresentazione dei numeri naturali (N) Rappresentazione dei numeri interi (Z) Modulo e segno In complemento a 2 Operazioni aritmetiche

Dettagli

UTILIZZIAMO GLI OPERATORI MATEMATICI E COMMENTIAMO IL CODICE

UTILIZZIAMO GLI OPERATORI MATEMATICI E COMMENTIAMO IL CODICE Utilizziamo gli operatori matematici e commentiamo il codice Unità 4 UNITÀ DIDATTICA 4 UTILIZZIAMO GLI OPERATORI MATEMATICI E COMMENTIAMO IL CODICE IN QUESTA UNITÀ IMPAREREMO... come utilizzare gli operatori

Dettagli

I.4 Rappresentazione dell informazione

I.4 Rappresentazione dell informazione I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione

Dettagli

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi Somma di numeri floating point Algoritmi di moltiplicazione e divisione per numeri interi Standard IEEE754 " Standard IEEE754: Singola precisione (32 bit) si riescono a rappresentare numeri 2.0 10 2-38

Dettagli

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software Introduzione alla programmazione Algoritmi e diagrammi di flusso F. Corno, A. Lioy, M. Rebaudengo Sviluppo del software problema idea (soluzione) algoritmo (soluzione formale) programma (traduzione dell

Dettagli

Sistemi di numerazione

Sistemi di numerazione SOMMARIO Sistemi di numerazione...2 Sistema decimale (o a base 10)...2 Sistema binario...2 Operazioni sui numeri binari...3 Espressioni logiche...4 Definizione...4 Prodotto Logico : AND...4 Somma Logica

Dettagli

Strutture dati e loro organizzazione. Gabriella Trucco

Strutture dati e loro organizzazione. Gabriella Trucco Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi

Dettagli

Algebra di Boole Algebra di Boole

Algebra di Boole Algebra di Boole 1 L algebra dei calcolatori L algebra booleana è un particolare tipo di algebra in cui le variabili e le funzioni possono solo avere valori 0 e 1. Deriva il suo nome dal matematico inglese George Boole

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

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

Elementi di programmazione Algoritmi Flow Chart, Fasi della programmazione Linguaggi Elementi di programmazione ad oggetti Elementi di programmazione Algoritmi Flow Chart, Fasi della programmazione Linguaggi Elementi di programmazione ad oggetti ELEMENTI DI INFORMATICA UFC_05 1 Algoritmi Un algoritmo è una serie finita di

Dettagli

(1) (2) (3) (4) 11 nessuno/a 9 10. (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

(1) (2) (3) (4) 11 nessuno/a 9 10. (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 Compito: Domanda 1 Per l'algoritmo fornito di seguito, qual è il valore assunto dalla variabile contatore quando l'algoritmo termina: Passo 1 Poni il valore di contatore a 1 Passo 2 Ripeti i passi da 3

Dettagli

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire: Sviluppo di programmi Per scrivere un programma C corretto bisogna: E ora, finalmente Si comincia! DD Cap. pp.4974 Analizzare il problema (input, output, casi estremali) 2. Progettare una soluzione (algoritmo)

Dettagli

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2

LA CODIFICA DELL INFORMAZIONE. Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 LA CODIFICA DELL INFORMAZIONE Introduzione ai sistemi informatici D. Sciuto, G. Buonanno, L. Mari, McGraw-Hill Cap.2 Codifica dati e istruzioni Per scrivere un programma è necessario rappresentare istruzioni

Dettagli

Sistema Operativo (Software di base)

Sistema Operativo (Software di base) Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Problema Algoritmo Programma Progettista Programmatore Progetto Programma Esecutore Computer Comittente Utente Dal problema all algoritmo Problema Risolutore ed esecutore Algoritmo

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Moltiplicazione e divisione tra numeri interi: algoritmi e circuiti slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Operazioni aritmetiche e logiche Abbiamo visto che le ALU sono in grado

Dettagli

Corso di Informatica

Corso di Informatica Corso di Informatica Modulo T1 2-Proprietà degli algoritmi 1 Prerequisiti Conoscere il concetto di M.C.D. tra due numeri interi Concetto intuitivo di funzione matematica 2 1 Introduzione Sappiamo scrivere

Dettagli

Architettura di un processore basato su registri generali.

Architettura di un processore basato su registri generali. Architettura di un processore basato su registri generali. M. Esposito (mesposit@unina.it) 26 febbraio 2007 In Fig. 1 è riportato uno schema di principio che raffigura l architettura di un processore basato

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

Modi di indirizzamento

Modi di indirizzamento Vari modi di specificare l indirizzo degli operandi Modi di indirizzamento Capitolo 11 Immediato Diretto Indiretto Registro Registro indiretto Spiazzamento Pila 1 2 Indirizzamento immediato L operando

Dettagli