Risoluzione di problemi
|
|
- Evaristo Ferro
- 7 anni fa
- Visualizzazioni
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 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
DettagliINFORMATICA 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
DettagliL 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
DettagliAlgoritmi. 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
DettagliSISTEMI 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:
DettagliIntroduzione all informatica
Introduzione all informatica INFORMATICA Varie definizioni Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta Scienza della rappresentazione e dell
DettagliL 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
DettagliL 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
DettagliProgrammazione. 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
DettagliElaboratore 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
DettagliDall 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
DettagliCosa è l Informatica?
Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore
DettagliProgrammazione. 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
DettagliINFORMATICA. 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
DettagliLa 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
DettagliALGORITMI: 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
DettagliCORSO 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ì
DettagliLINGUAGGI 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
DettagliLINGUAGGI 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
DettagliLINGUAGGI 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
DettagliC++ 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
DettagliLinguaggi 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
DettagliLinguaggi, 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
DettagliL 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
DettagliSorgenti 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
DettagliAlgoritmi. 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,
DettagliAlgoritmi 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
DettagliINFORMATICA. 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
DettagliAltrimenti, 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
DettagliRisoluzione 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
DettagliLez. 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
DettagliAnalisi 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
DettagliSommario 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,
DettagliINFORMATICA (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
DettagliDall 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
DettagliLez. 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
DettagliFondamenti 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
DettagliLinguaggi, 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,
DettagliTeoria 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
DettagliLezione 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
DettagliAnalisi 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
DettagliLinguaggi 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é
DettagliSommario 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,
DettagliSommario 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
DettagliConcetti 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
DettagliSviluppo 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
DettagliAnalisi 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
DettagliLinguaggi 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
DettagliIntroduzione. 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
DettagliIstruzioni, 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
DettagliFONDAMENTI 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
DettagliI 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
DettagliLinguaggi 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
Dettagli3. 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:
DettagliPROBLEMI 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
DettagliScienza 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.
DettagliI 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
DettagliIntroduzione 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
DettagliIl 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
DettagliFondamenti 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
DettagliProgramma 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
DettagliProblemi, 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
DettagliFasi 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
DettagliIl 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
DettagliLINGUAGGI 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
DettagliUnità 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
DettagliElementi 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à
DettagliInformatica 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
DettagliIl 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
DettagliFabrizio 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,
DettagliCorso 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
DettagliI 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
DettagliUnità 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
Dettaglio 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
DettagliCorso 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
DettagliInformatica. 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
DettagliLinguaggi 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
DettagliLaboratorio 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
DettagliIl 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)
DettagliDAGLI 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
DettagliELABORAZIONE 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
DettagliInformatica (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
DettagliChe 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
DettagliProgrammazione 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
DettagliSviluppo 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
DettagliFONDAMENTI 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
DettagliElementi 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
DettagliLINGUAGGI 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