Risoluzione di problemi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Risoluzione di problemi"

Transcript

1 ALGORITMI

2 Risoluzione di problemi Algoritmi Strutture dati Strumenti del linguaggio di programmazione La risoluzione di un problema è il processo che dato un problema e individuato un opportuno metodo risolutivo, trasforma i dati iniziali nei corrispondenti risultati finali. Affinché la risoluzione di un problema possa essere realizzata attraverso l uso del calcolatore, tale processo deve poter essere definito come sequenza di azioni elementari.

3 Algoritmo Un algoritmo (matematico arabo Al Khuwarizmi, vissuto nel IX secolo d.c.) è una sequenza finita di mosse che risolve in un tempo finito una classe di problemi L esecuzione delle azioni nell ordine specificato dall algoritmo consente di ottenere, a partire dai dati di ingresso, i risultati che risolvono il problema. METODO RISOLUTIVO (ALGORITMO) DATI Esecutore RISULTATI ESECUTORE: una macchina astratta capace di eseguire le azioni specificate dell algoritmo

4 Algoritmi: proprieta Eseguibilità: ogni azione deve essere eseguibile dall esecutore in un tempo finito Non-ambiguità: ogni azione deve essere univocamente interpretabile dall esecutore Finitezza: il numero totale di azioni da eseguire per ogni insieme di dati di ingresso deve essere finito

5 Algoritmi: proprieta Quindi, un algoritmo deve: Essere applicabile a qualsiasi insieme di dati in ingresso appartenenti al dominio di definizione dell algoritmo Essere costituito di operazioni appartenenti ad un determinato insieme di operazioni fondamentali Essere costituito di regole non ambigue, cioè interpretabili in modo univoco qualunque sia l esecutore (persona o «macchina») che le legge

6 Algoritmi: proprieta Un algoritmo deve poter essere eseguito da chiunque, senza che l'esecutore sia stato necessariamente coinvolto nella formulazione del problema o nella descrizione dell algoritmo Gli algoritmi devono essere formalizzati per mezzo di appositi linguaggi, dotati di strutture linguistiche che garantiscano precisione e sintesi I linguaggi naturali non soddisfano questi requisiti, infatti... sono ambigui: la stessa parola può assumere significati diversi in contesti differenti (pesca è un frutto o un attività sportiva) sono ridondanti: lo stesso concetto può essere espresso in molti modi diversi, ad esempio somma 2 a 3, calcola 2+3, esegui l addizione tra 2 e 3

7 Algoritmi e programmi Ogni elaboratore è una macchina in grado di eseguire azioni elementari su oggetti detti DATI L esecuzione delle azioni è richiesta all elaboratore tramite comandi elementari chiamati ISTRUZIONI espresse attraverso un opportuno formalismo: il LINGUAGGIO DI PROGRAMMAZIONE Il linguaggio di programmazione è un linguaggio utilizzato per descrivere l insieme delle azioni consecutive che un calcolatore deve eseguire La formulazione testuale di un algoritmo in un linguaggio comprensibile a un elaboratore è detta PROGRAMMA Il programmatore è colui che, attraverso la fase di programmazione, traduce (o implementa o codifica) un algoritmo in codice sorgente, utilizzando un linguaggio di programmazione

8 Programma Un PROGRAMMA è un testo scritto in accordo alla sintassi e alla semantica di un linguaggio di programmazione Un programma è la formulazione testuale, in un certo linguaggio di programmazione, di un algoritmo che risolve un dato problema Problema ANALISI Algoritmo Relazioni tra problema, analisi, algoritmo, programmazione, programma, dati ed elaborazione PROGRAMMAZIONE Programma ELABORAZIONE Dati Risultati

9 Algoritmo e programma Per risolvere un problema: Individuazione di un procedimento risolutivo Scomposizione del procedimento in un insieme ordinato di azioni ALGORITMO Rappresentazione dei dati e dell algoritmo attraverso un formalismo comprensibile dal calcolatore LINGUAGGIO DI PROGRAMMAZIONE Problema Algortimo Programma Metodo risolutivo Linguaggio di programmazione

10 Esempio Come piegare un foglio quadrato per ottenere una figura:

11 Primitive

12 Esempio: Ordinamento di un mazzo di carte Problema: Sia dato un mazzo da 40 carte da ordinare in modo che quelle di cuori precedano quelle quadri, che a loro volta precedono quelle di fiori e quelle di picche; le carte di uno stesso seme sono ordinate dall asso al re. Algoritmo: Si suddivida il mazzo in 4 mazzetti, ciascuno costituito da tutte le carte dello stesso seme Si ordinino le carte di ciascun mazzetto dall asso al re Si prendano nell ordine i mazzetti di cuori, quadri, fiori e picche

13 Esempio: Calcolo delle radici di eq. di 2 grado Problema: Calcolo delle radici reali dell equazione ax 2 +bx+c=0 Algoritmo: Acquisire i coefficienti a,b,c Calcolare = b 2 4ac Se <0 non esistono radici reali, eseguire l'istruzione 7) Se =0, x 1 =x 2 = b/2a, poi eseguire l'istruzione 6) Se >0, x 1 =( b+ )/2a, x 2 =( b )/2a Comunicare i valori x 1, x 2 Fine Si utilizzano VARIABILI, ossia nomi simbolici usati nell algoritmo per denotare dati

14 Esempio: Calcolo del M.C.D. Problema: Calcolare il M.C.D. di due interi a,b, con a>b Algoritmo: Formalizzato da Euclide nel 300 a.c., si basa sul fatto che ogni divisore comune ad a e b è anche divisore del resto r della divisione intera di a per b, quando a>b e r 0; se r=0, b è il M.C.D. MCD(a,b) = MCD(b,r), se r 0 MCD(a,b)=b, se r=0 L algoritmo garantisce la determinazione del M.C.D. senza il calcolo di tutti i divisori di a e b

15 Esempio: Calcolo del M.C.D. Acquisire i valori di a e b Se b>a, scambiare i valori di a e b Calcolare il resto r della divisione intera di a per b Se r=0, MCD(a,b)=b; comunicare il risultato all esterno; eseguire l istruzione 6) Se r 0, sostituire il valore di a con il valore di b ed il valore di b con il valore di r; tornare al passo 3) Fine

16 Algoritmi equivalenti Due algoritmi si dicono equivalenti quando: Hanno lo stesso dominio di ingresso Hanno lo stesso dominio di uscita In corrispondenza degli stessi valori del dominio di ingresso producono gli stessi valori nel dominio di uscita

17 Algoritmi equivalenti Due algoritmi equivalenti: Forniscono lo stesso risultato Ma possono avere diversa efficienza e possono essere profondamente diversi ad esempio, i vari algoritmi visti a lezione per risolvere il problema dei numeri di Fibonacci

18 Costanti e variabili I dati su cui opera un algoritmo sono costanti e variabili Un dato è costante quando il suo valore non può essere aggiornato durante l'esecuzione dell algoritmo Una variabile è una coppia <nome, valore>: può essere immaginata come una unità di memorizzazione identificata da un nome e che può contenere un valore VALORE NOME Rappresentazione di una variabile

19 Costanti e variabili Celle di memoria ordinate per indirizzo

20 Costanti e variabili Il valore di una variabile deve appartenere all insieme di definizione, su cui si opera mediante regole opportune, specifiche dell'insieme Data una variabile <x,v>, x è il nome della variabile e v è il suo valore attuale; le variabili sono indeterminate in fase di definizione dell algoritmo, ma devono corrispondere a valori ben precisi durante ogni esecuzione Esempio: Nell algoritmo di risoluzione delle equazioni di 2 grado, a, b, c non corrispondono a nessun valore finché non si esegue l algoritmo per trovare le soluzioni di una specifica equazione, ad esempio x 2 9x 4=0. In fase di esecuzione, a=1, b= 9, c= 4. Nell'istruzione =b 2 4ac, è la variabile che contiene il valore del risultato del calcolo del discriminante

21 Assegnamento L istruzione di assegnamento definisce il valore attuale di una variabile, che resta inalterato fino all assegnamento successiva. In C l operatore di assegnamento è = nome_di_variabile = espressione; che si legge assegna alla variabile nome_di_variabile il valore di espressione. L espressione a destra di = è costituita da variabili, costanti e operatori L assegnamento viene così eseguito: si valuta l espressione a destra di =, sostituendo ai nomi di variabile i loro valori attuali; il risultato della valutazione deve appartenere all insieme di definizione della variabile a sinistra di = il valore calcolato diventa il nuovo valore della variabile il cui nome appare a sinistra di =

22 Assegnamento a = b+c; 6 b 4 c Prima dell assegnamento 10 a 6 b 4 c Dopo l assegnamento x = x+3; 14 x Prima dell assegnamento 17 x Dopo l assegnamento

23 Le istruzioni Istruzioni operative, che producono risultati Istruzioni di controllo, che controllano il verificarsi di condizioni specificate e, in base al risultato del controllo, determinano il flusso di istruzioni da eseguire Istruzioni di salto, che alterano il normale flusso di esecuzione delle istruzioni di un algoritmo, specificando quale sia la successiva istruzione da eseguire nelle istruzioni di salto condizionato, l effettiva esecuzione del salto è condizionata al verificarsi di una condizione specificata l istruzione di salto incondizionato produce sempre un salto Istruzioni di ingresso/uscita, che specificano come debba essere effettuata una trasmissione di dati o messaggi fra l algoritmo e l ambiente esterno Istruzioni di inizio/fine esecuzione, che indicano l inizio/la fine dell algoritmo

24 Le istruzioni Esempio: Calcolo delle radici di equazioni di 2 grado a) acquisire i coefficienti a,b,c è un istruzione di lettura (ingresso) b) calcolare =b 2 4ac è un istruzione operativa c) se =0, x 1 =x 2 = b/2a è un istruzione di controllo, infatti l'assegnazione x 1 =x 2 = b/2a viene eseguita solo se =0 d) comunicare i valori x 1, x 2 è un istruzione di scrittura (uscita) e) eseguire l'istruzione 6) è un istruzione di salto incondizionato f) se <0 eseguire l'istruzione 7) è un istruzione di salto condizionato, perché l'istruzione 7) è la prossima istruzione da eseguire solo se <0

25 LINGUAGGI

26 Cos è un linguaggio Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una definizione poco precisa perché non evita le ambiguità dei linguaggi naturali non si presta a descrivere processi computazionali automatici non aiuta a stabilire proprietà Il linguaggio (formale) è un sistema matematico che consente di ispondere a domande come: quali sono le frasi lecite? si può stabilire se una frase appartiene al linguaggio? come si stabilisce il significato di una frase? quali sono gli elementi linguistici primitivi? In informatica, un linguaggio di programmazione è un linguaggio formale, dotato di un lessico, una sintassi e una semantica ben definite, utilizzabile per il controllo del comportamento di una macchina formale, o di una implementazione di essa (tipicamente, un computer).

27 Linguaggio di programmazione Per usare un linguaggio di programmazione serve conoscere i suoi elementi linguistici: Alfabeto: insieme non vuoto di simboli tramite i quali è possibile costruire gli elementi base del linguaggio. Lessico: insieme di regole formali (grammatica) per la scrittura di parole nel linguaggio, cioè per decidere quali sequenze sono simboli del linguaggio e quali no (fanno parte del lessico C le 32+5 keywords, gli identificatori, le costanti letterali, le stringhe letterali e gli operatori) Sintassi: insieme di regole formali per la scrittura di frasi grammaticalmente corrette nel linguaggio. Semantica: insieme di significati da attribuire alle frasi sintatticamente corrette del linguaggio. Conoscere la sintassi di un linguaggio di programmazione non implica saper codificare programmi semanticamente sensati (così come accade per i linguaggi naturali).

28 Esempio: la sintassi di un numero naturale <cifra-non-nulla> : <cifra> : 0 <cifra-non-nulla> <naturale> : 0 <cifra-non-nulla>{<cifra>} Diagramma sintattico

29 I linguaggi di programmazione A livello hardware, i calcolatori riconoscono solo comandi semplici, del tipo copia un numero, addiziona due numeri, confronta due numeri I comandi realizzati in hardware definiscono il set di istruzioni macchina (Instruction Set) e i programmi che li utilizzano direttamente sono i programmi in linguaggio macchina In linguaggio macchina ogni operazione richiede l attivazione di numerose istruzioni base qualunque entità, istruzione, variabile, dato, è rappresentata da numeri binari: i programmi sono difficili da scrivere, leggere e mantenere Il linguaggio macchina riflette l organizzazione della macchina più che la natura del problema da risolvere. Dalla nascita dei primi calcolatori, si è cercato di diminuire lo sforzo ed aumentare la produttività dell utente, anche a costo di caricare la macchina di maggiori compiti

30

31 I linguaggi di programmazione Negli anni 50, tutti i programmi erano scritti in linguaggio macchina o in assembly. Per la prima volta, con la nascita degli assembler, fu applicato il principio che è meglio risparmiare il tempo dell uomo anche a costo di utilizzare più tempo macchina (una parte del tempo è dedicata alla traduzione di programmi, non alla loro esecuzione). Oggi si utilizza l assembly solo se esistono vincoli stringenti sui tempi di esecuzione; viceversa, si usano linguaggi più vicini al linguaggio naturale, i linguaggi di alto livello. I linguaggi di alto livello sono elementi intermedi di una varietà di linguaggi ai cui estremi si trovano il linguaggio macchina, da un lato, ed i linguaggi naturali, come l italiano e l inglese, dall altro. I linguaggi di programmazione differiscono comunque dai linguaggi naturali: sono infatti meno espressivi (poche parole chiave, poche regole) ma più precisi, perché privi di qualsiasi ambiguità

32 Astrazione In informatica si parla di programmazione a basso livello quando si utilizza un linguaggio molto vicino alla macchina Si parla invece di programmazione ad alto livello quando si utilizzano linguaggi più sofisticati ed astratti, slegati dal funzionamento fisico della macchina Si viene così a creare una gerarchia di linguaggi; in questa gerarchia il linguaggio C si pone ad un livello intermedio Usando un linguaggio di alto livello il programmatore tratta oggetti complessi senza doversi preoccupare dei dettagli della particolare macchina sulla quale il programma viene eseguito Ogni singola istruzione di un linguaggio di alto livello corrisponde a molte istruzioni in linguaggio macchina: quanto più il linguaggio si discosta dal linguaggio macchina, tanto più il lavoro di traduzione del compilatore è difficile

33 Linguaggi di programmazione di alto livello I linguaggi che non dipendono dall architettura della macchina offrono due vantaggi fondamentali: i programmatori non devono cimentarsi con i dettagli architetturali di ogni calcolatore i programmi risultano più semplici da leggere e da modificare portabilità (previa compilazione), leggibilità, mantenibilità Alcune stime considerano che le attività di manutenzione assorbono il 70% del budget investito nel software e occupano il 75% del personale. Consideriamo che la manutenzione può essere: manutenzione correttiva, per la risoluzione di errori riscontrati nel codice manutenzione adattiva, per adeguarlo a modifiche non sostanziali nell ambiente di elaborazione o nei dati, manutenzione evolutiva, per estenderne le funzionalità a seguito di nuove richieste dell utente, o per migliorarne l efficienza o la documentazione

34 The 2015 Top Ten Programming Languages The ranking system is driven by weighting and combining 12 metrics from 10 data sources. The weighting of these sources can be adjusted using the interactive Web app to give, say, more importance to languages that have turned up in job ads.

35 Evoluzione dei paradigmi di programmazione

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Esempi di Testi di esame Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del corso

Dettagli

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento lunedì, prima o dopo lezione? Aula? 1 Analisi e programmazione Tramite un elaboratore si possono risolvere

Dettagli

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Dettagli

Algoritmi. Strutture dati. Strumenti del linguaggio di programmazione

Algoritmi. Strutture dati. Strumenti del linguaggio di programmazione COSA IMPAREREMO ARGOMENTI CORSO Algoritmi Strutture dati Strumenti del linguaggio di programmazione ARGOMENTI CORSO Algoritmi Tipi di dato semplici Tipi di dato strutturati: array struct Strutture di controllo

Dettagli

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Algoritmi e programmazione Prof. Andrea Borghesan

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Algoritmi e programmazione Prof. Andrea Borghesan SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Algoritmi e programmazione Prof. Andrea Borghesan venus.unive.it/borg borg@unive.it Ricevimento mercoledì, 14.00-15.30. Studio 34, dip. statistica Modalità esame:

Dettagli

Introduzione all informatica

Introduzione all informatica Introduzione all informatica INFORMATICA Varie definizioni Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta Scienza della rappresentazione e dell

Dettagli

L ELABORATORE ELETTRONICO!

L ELABORATORE ELETTRONICO! L ELABORATORE ELETTRONICO! Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Dettagli

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su dati in ingresso (input) per produrre uno

Dettagli

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

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 29 febbraio 2016 1 / 33 INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, bisogna conoscere

Dettagli

Elaboratore Elettronico

Elaboratore Elettronico L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati)) per produrre rre altri oggetti

Dettagli

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

Dall algoritmo al calcolatore: concetti introduttivi. Algoritmo. Problema: consumo medio 9/27/2018. Fondamenti di Programmazione 3 Dall algoritmo al calcolatore: concetti introduttivi Fondamenti di Programmazione Algoritmo Problema o compito Preparazione di una torta Programmazione del VCR MCD tra due numeri Algoritmo sequenza precisa

Dettagli

Cosa è l Informatica?

Cosa è l Informatica? Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore

Dettagli

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

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 29 febbraio 2016 1 / 28 Linguaggi 2 / 28 Linguaggi 3 / 28 Linguaggi di alto livello Si basano su una macchina

Dettagli

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

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) INFORMATICA Cosa è l informatica Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) E una scienza E una tecnologia Cosa può essere automatizzato nell

Dettagli

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

La Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema La Programmazione È l'attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su una particolare tipologia di dati, allo scopo di risolvere un problema. 1 La Programmazione

Dettagli

ALGORITMI: PROPRIETÀ FONDAMENTALI

ALGORITMI: PROPRIETÀ FONDAMENTALI ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse

Dettagli

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1 CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1 Lezione 1 (Introduzione e Definizioni) Docenti Docente: Prof. Michele Colajanni Lezioni (Aula IV): martedì 10:00-12:45 Esercitazioni (Laboratorio): mercoledì

Dettagli

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware

LINGUAGGI DI ALTO LIVELLO. Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione Fortran Cobol Basic Pascal Python C

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

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 1 LINGUAGGI DI ALTO LIVELLO Barriera di astrazione C Fortran Modula-2 Cobol Algol Basic

Dettagli

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI

C++ Barriera di astrazione. Barriera di astrazione. Basic. Basic. Lisp. Lisp. Pascal. Prolog. Pascal. Prolog. Cobol. Fortran IMPERATIVI FUNZIONALI Linguaggi di alto livello Barriera di astrazione C Fortran Cobol Modula-2 Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI C Fortran Modula-2

Dettagli

Linguaggi di alto livello. Barriera di astrazione. Pascal. Cobol. Fortran. Basic. Modula-2. Lisp. Simula67 Scheme. Smalltalk C++ Prolog AN

Linguaggi di alto livello. Barriera di astrazione. Pascal. Cobol. Fortran. Basic. Modula-2. Lisp. Simula67 Scheme. Smalltalk C++ Prolog AN Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Basic Pascal Algol Ada Lisp Smalltalk Simula67 Scheme C++ Prolog ML AN - 1995 Linguaggi di alto livello IMPERATIVI Fortran Cobol

Dettagli

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, Traduttori e le Basi della Programmazione Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi

Dettagli

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

L informatica comprende: INFORMATICA. Varie definizioni: Definizione proposta: ELABORATORE ELETTRONICO ( COMPUTER ) L ELABORATORE INFORMATICA L informatica comprende: Varie definizioni: Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione informazione Definizione proposta: Scienza della rappresentazione

Dettagli

Sorgenti di errore. Laboratorio di Informatica 1

Sorgenti di errore. Laboratorio di Informatica 1 Sorgenti di errore Semplificazioni introdotte nel modello Errori nei dati (errore inerente) Errori di arrotondamento nei dati e nei calcoli (errori dovuti alla precisione finita) Errori di troncamento:procedimento

Dettagli

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

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile Algoritmi Andrea Passerini passerini@dsi.unifi.it Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile Elaboratore Un elaboratore o computer è una macchina digitale, elettronica,

Dettagli

Algoritmi e Programmi

Algoritmi e Programmi Algoritmi e Programmi Algoritmi e Programmi Le azioni che si compiono ogni giorno sono finalizzate alla risoluzione di problemi. Problema di elaborazione Insieme dati di partenza Risultato ricerca Algoritmi

Dettagli

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione elaborazione

Dettagli

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

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.) Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica

Dettagli

Risoluzione di un problema

Risoluzione di un problema Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito

Dettagli

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Lez. 5 La Programmazione. Prof. Salvatore CUOMO Lez. 5 La Programmazione Prof. Salvatore CUOMO 1 2 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente

Dettagli

Analisi e programmazione 1

Analisi e programmazione 1 Informatica Secondo l ACM l informatica è lo studio sistematico degli algoritmi che descrivono e trasformano l informazione: la loro teoria, analisi progetto efficienza realizzazione ed applicazione 1

Dettagli

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

Sommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio (1) Linguaggio (2) Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio (1) Linguaggio (2) Insieme di sequenze di simboli,

Dettagli

INFORMATICA (Computer Engineering o

INFORMATICA (Computer Engineering o INFORMATICA (Computer Engineering o Computer Science?) COMPRENDE: Metodi per la rappresentazione delle informazioni Metodi per la rappresentazione delle soluzioni Linguaggi di programmazione Architettura

Dettagli

Dall algoritmo al calcolatore: concetti introduttivi. Fondamenti di Programmazione

Dall algoritmo al calcolatore: concetti introduttivi. Fondamenti di Programmazione Dall algoritmo al calcolatore: concetti introduttivi Fondamenti di Programmazione Algoritmo Problema o compito Preparazione di una torta Programmazione del VCR MCD tra due numeri Algoritmo sequenza precisa

Dettagli

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

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Lez. 8 La Programmazione Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1 Dott. Pasquale De Michele Dott. Raffaele Farina Dipartimento di Matematica e Applicazioni Università di Napoli

Dettagli

Fondamenti di Informatica 4. Gli algoritmi

Fondamenti di Informatica 4. Gli algoritmi Sommario Fondamenti di Informatica 4. Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati I linguaggi per la

Dettagli

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

Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio (1) Linguaggio (2) Insieme di sequenze di simboli,

Dettagli

Teoria dell Informazione

Teoria dell Informazione Corso di Laurea Magistrale in Scienze dell Informazione Editoriale, Pubblica e Sociale Teoria dell Informazione Cosa è l informazione L informazione è qualcosa che si possiede e si può dare ad un altro

Dettagli

Lezione n. 2i Informatica e tecnologia informatica Sistema di elaborazione Algoritmo Linguaggi di programmazione Realizzazione di un programma

Lezione n. 2i Informatica e tecnologia informatica Sistema di elaborazione Algoritmo Linguaggi di programmazione Realizzazione di un programma Lezione2i Lezione n. 2i Informatica e tecnologia informatica Sistema di elaborazione Algoritmo Linguaggi di programmazione Realizzazione di un programma Informatica e tecnologia informatica Il termine

Dettagli

Analisi e programmazione Gli algoritmi

Analisi e programmazione Gli algoritmi Introduzione Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

Linguaggi di programmazione

Linguaggi di programmazione Linguaggi di programmazione Fondamenti di Informatica Daniele Loiacono Ho definito un algoritmo e adesso? Daniele Loiacono Dall algoritmo all esecuzione q Come deve essere formalizzato un algoritmo affinché

Dettagli

Sommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio. Messaggio

Sommario Linguaggi, messaggi e comunicazione. Introduzione ai Linguaggi di Programmazione. Linguaggio. Messaggio Sommario Linguaggi, messaggi e comunicazione Traduzione di programmi Interpreti e compilatori Introduzione al processo di compilazione 1 2 Linguaggio Messaggio Insieme di sequenze di simboli, le parole,

Dettagli

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

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi Istruzioni variabili e tipi Sottoprogrammi Strutture di controllo Ricorsione 1 2 Obiettivo Ciclo di sviluppo di programmi Risoluzione

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

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

Analisi e programmazione

Analisi e programmazione Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione 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 programmazione. In generale, ogni

Dettagli

Introduzione. Informatica B. Daniele Loiacono

Introduzione. Informatica B. Daniele Loiacono Introduzione Informatica B Cos è l informatica? q È la scienza che si occupa della rappresentazione dell informazione e della sua elaborazione e gestione " Si occupa dell informazione, che fa parte di

Dettagli

Istruzioni, algoritmi, linguaggi

Istruzioni, algoritmi, linguaggi Istruzioni, algoritmi, linguaggi 1 Algoritmo per il calcolo delle radici reali di un equazione di 2 o grado Data l equazione ax 2 +bx+c=0, quali sono i valori di x per cui l equazione è soddisfatta? 2

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

I linguaggi di programmazione

I linguaggi di programmazione I linguaggi di programmazione sono stati introdotti per facilitare ai programmatori il compito di scrittura dei programmi Sono linguaggi simbolici, in continua evoluzione Sono definiti da un insieme di

Dettagli

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

Dettagli

3. Programmi e algoritmi

3. Programmi e algoritmi 3. Programmi e algoritmi Andrea Marongiu (andrea.marongiu@unimore.it) Paolo Valente Contiene slides del corso «Fondamenti di Informatica» del Prof. Montessoro (Università degli Studi di Udine) Recall:

Dettagli

PROBLEMI E ALGORITMI

PROBLEMI E ALGORITMI Fondamenti di Informatica PROBLEMI E ALGORITMI Fondamenti di Informatica - D. Talia - UNICAL 1 Specifica di un algoritmo Primo approccio, scrittura diretta del programma: la soluzione coincide con la codifica

Dettagli

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari. Esistono varie definizioni: Informatica Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione.

Dettagli

I Linguaggi di Programmazione

I Linguaggi di Programmazione I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche del Linguaggio

Dettagli

Introduzione agli Algoritmi

Introduzione agli Algoritmi Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione

Dettagli

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

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio) 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

Dettagli

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

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio Algoritmi

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

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo Sviluppo di programmi Per la costruzione di un programma

Dettagli

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

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio) 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

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 AN - 1995 Linguaggi di alto livello AN - 1995 Evoluzione dei

Dettagli

Unità Didattica 2 I Linguaggi di Programmazione

Unità Didattica 2 I Linguaggi di Programmazione Unità Didattica 2 I Linguaggi di Programmazione 1 Linguaggio naturale e linguaggio macchina La comunicazione uomo-macchina avviene attraverso formalismi che assumono la forma di un linguaggio. Caratteristiche

Dettagli

Elementi di programmazione

Elementi di programmazione Fondamenti di Informatica per la Sicurezza a.a. 2003/04 Elementi di programmazione Stefano Ferrari Università degli Studi di Milano Dipartimento di Tecnologie dell Informazione Stefano Ferrari Università

Dettagli

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi Informatica Generale Andrea Corradini 12 - Gli algoritmi e la risoluzione di problemi Sommario Che significa risolvere un problema? Algoritmi e programmi Rappresentazione di algoritmi Lo pseudocodice Primitive

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

Fabrizio Messina, Marzio Pennisi

Fabrizio Messina, Marzio Pennisi Fabrizio Messina, Marzio Pennisi {messina,mpennisi}@dmi.unict.it Argomenti trattati Algoritmo: definizione Analisi e programmazione: attività preliminari atte a risolvere problemi utilizzando un elaboratore,

Dettagli

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

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a Dott.ssa Maria Carmela De Bonis a.a. 2013-14 Programmi Un elaboratore riceve dei dati in ingresso, li elabora secondo una sequenza predefinita di operazioni e infine restituisce il risultato sotto forma

Dettagli

I linguaggi di programmazione

I linguaggi di programmazione I linguaggi di programmazione sono stati introdotti per facilitare ai programmatori il compito di scrittura dei programmi Sono linguaggi simbolici, in continua evoluzione Sono definiti da un insieme di

Dettagli

Unità di apprendimento 6. Dal problema al programma

Unità di apprendimento 6. Dal problema al programma Unità di apprendimento 6 Dal problema al programma Unità di apprendimento 6 Lezione 1 Conosciamo gli algoritmi e i linguaggi In questa lezione impareremo: cos è un problema come affrontarlo come descrivere

Dettagli

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

o Introduzione agli algoritmi o Rappresentazione delle Informazioni o Architettura del calcolatore o Reti di Calcolatori 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

Dettagli

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota Corso di Problemi ed algoritmi Ing Pasquale Rota Argomenti Problemi ed algoritmi Proprietà degli algoritmi Pseucodice Diagrammi di flusso Problemi ed algoritmi - Ing. Pasquale Rota 2 Proprietà degli algoritmi

Dettagli

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia Informatica Dipartimento di Economia Ing. Cristiano Gregnanin Corso di laurea in Economia 20 ottobre 2016 1 / 19 Linguaggi 2 / 19 Linguaggi 3 / 19 Linguaggi di alto livello Si basano su una macchina virtuale

Dettagli

Linguaggi di Programmazione dall assembler ai linguaggi di alto livello

Linguaggi di Programmazione dall assembler ai linguaggi di alto livello Linguaggi di Programmazione dall assembler ai linguaggi di alto livello LINGUAGGIO MACCHINA 0 READ 8 READ 9 LOADA 8 3 LOADB 9 4 MUL 5 STOREA 8 6 WRITE 8 7 HALT 8 DATO INTERO 9 DATO INTERO Rappresentazione

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano

Dettagli

Il linguaggio di programmazione Python

Il linguaggio di programmazione Python Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Il linguaggio di programmazione Python Marco Liverani (liverani@mat.uniroma3.it)

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

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) 1 LEZIONE 9 ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE) Laboratorio di Informatica per l Educazione A. A. 2014/2015 IN SINTESI (ELABORAZIONE) Con i COMPUTER, le macchine diventano

Dettagli

Informatica (A-K) 6. Linguaggi di programmazione

Informatica (A-K) 6. Linguaggi di programmazione I linguaggi di alto livello Informatica (A-K) 6. Linguaggi di programmazione Introduzione alla programmazione Caratteristiche dei linguaggi di programmazione I linguaggi di programmazione di alto livello

Dettagli

Che cos è l Informatica?

Che cos è l Informatica? Che cos è l Informatica? Che cos è l Informatica? Non è facile da definire! Alcune affermazioni vere: L informatica è parente stretta della matematica Ha a che fare con il modo in cui risolviamo i problemi

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

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

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

Elementi di programmazione

Elementi di programmazione Elementi di programmazione L E Z I O N I P E R I C O R S I D I I N F O R M A T I C A D E L L I C E O S C I E N T I F I C O O P Z I O N E S C I E N Z E A P P L I C A T E P R O F. D O M E N I C O L O R U

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 1 Linguaggi di alto livello Barriera di astrazione C Fortran Modula-2 Cobol Basic Pascal

Dettagli