Lez. 5 La Programmazione. Prof. Salvatore CUOMO
|
|
|
- Renzo Napoli
- 9 anni fa
- Visualizzazioni
Transcript
1 Lez. 5 La Programmazione Prof. Salvatore CUOMO 1
2 2
3 Programma di utilità: Bootstrap All accensione dell elaboratore (Bootsrap), parte l esecuzione del BIOS (Basic Input Output System), un programma residente su una ROM, che effettua le seguenti operazioni: Eseguire i programmi di diagnostica, che verificano la presenza di tutti i dispositivi hardware e l assenza di guasti; Caricare dalla memoria di massa una parte del Sistema Operativo che a sua volta ne carica una maggiore, e così via fino a quando tutti i programmi sono caricati; Attivare l interprete dei comandi. Essendo installato permanentemente nel sistema, il BIOS è considerato una via di mezzo tra HW e SW, ossia è FIRMWARE. 3
4 L informatica si occupa di OGGETTI REALI: Trasforma gli OGGETTI SIMBOLICI Studia i rapporti o le RELAZIONI tra essi Deriva MODELLI dalla realtà Formula strategie di SOLUZIONE del problema Problema: Gestione automatica di un agenda telefonica 4
5 La Programmazione Il Sistema Operativo 5
6 Quali sono gli oggetti su cui operare? Sono simboli alfanumerici che rappresentano il cognome, il nome e il numero telefonico di ciascun elemento dell agenda. Quali sono le relazioni tra gli oggetti? Ad ogni coppia cognome-nome sono associati uno o più numeri di telefono. Quali sono le operazioni da realizzare? Aggiungere un cognome-nome e numero telefonico. Cancellare un cognome-nome e numero telefonico. Cercare il cognome-nome relativo ad un numero telefonico. Come è possibile realizzare tali operazioni in modo da poter essere eseguite da un computer? Richiedere all utente di specificare il cognome e il nome da ricercare e verificare che nell agenda ci sia una coppia cognome-nome corrispondente. 6
7 FASE 1 Formulazione e formalizzazione del problema. FASE 2 Definizione e costruzione del metodo di soluzione. FASE 3 Esecuzione del metodo di soluzione. FASE 4 Test di verifica della correttezza del metodo di soluzione. 7
8 FASE 1 Formulazione del Problema Si individuano gli OGGETTI su cui operare ed i RISULTATI da ottenere Si definiscono i dati in INGRESSO e i dati di USCITA. FASE 2 Costruzione del metodo di soluzione Si definiscono le relazioni tra i dati di ingresso e dati di uscita Si definiscono informazioni ed operazioni necessarie per arrivare al risultato. Si descrivono le operazioni in termini di operazioni ESEGUIBILI dall esecutore. Si descrive una sequenza ben definita di istruzioni elementari (detta ALGORITMO) che consente di risolvere un problema in tempo finito. Si traduce l algoritmo in un linguaggio di programmazione in un linguaggio comprensibile all esecutore (PROGRAMMA). Lez. 6 PROGRAMMAZIONE Giovanni Mettivier 8
9 FASE 3 Esecuzione del metodo di soluzione L esecuzione delle istruzioni dell algoritmo è un PROCESO che opera sui dati di ingresso per produrre dei risultati. FASE 4 Testi di Verifica Verifica della correttezza del metodo di soluzione. 9
10 10
11 Sequenza finita di istruzioni che specifica l insieme delle azioni che consente ad un esecutore di risolvere un problema in un tempo finito. Il termine deriva dal nome del matematico medioevale AL-KHWARIZMI (IX sec) Definì le regole per eseguire le quattro operazioni aritmetiche per i numeri decimali. 11
12 GENERALITA L algoritmo deve risolvere una CLASSE di problemi, ovvero deve essere applicabile a qualsiasi insieme di dati appartenenti al DOMINIO DI DEFINIZIONE dell algoritmo. FINITEZZA L insieme di istruzioni che compongono l algoritmo deve essere tale che una qualunque esecuzione TERMINI in un tempo finito. NON AMBIGUITA L interpretazione delle singole istruzione deve essere UNIVOCA da parte di un qualunque esecutore. 12
13 Un processo deve poter essere eseguito da un esecutore (umano o meccanico) diverso da chi ha individuato l algoritmo. Le istruzioni devono essere effettivamente eseguibili Le istruzioni devono essere interpretate sempre allo stesso modo dall esecutore. A parità di dati di ingresso il risultato deve essere identico. L esecutore deve: Disporre della descrizione del processo da eseguire Essere in grado di capire tale descrizione Essere in grado di eseguire effettivamente le azioni Disporre dei dati iniziali Comunicare il risultato 13
14 Istruzioni di INGRESSO Permetto all esecutore di conoscere informazioni fornite dall esterno. Istruzioni di USCITA Permettono all esecutore di notificare all utente i risultati ottenuti dall elaborazione. Istruzioni OPERATIVE Permettono di effettuare calcoli o comunque operazioni sulle entità astratte (dati) che rappresentano gli elementi del problema. Le istruzioni possono essere composte utilizzando le strutture di controllo: Sequenza Iterazione Selezione 14
15 Per descrivere la procedura di elaborazione (algoritmo) che consente la soluzione del problema in esame si utilizzano diversi linguaggi di descrizione degli algoritmi. Esistono linguaggi grafici, che fanno uso di simboli grafici, e linguaggi lineari, mediante i quali un algoritmo è descritto a parole. Linguaggi di descrizione degli algoritmi Diagrammi di flusso (flow chart, grafi di flusso) Carte strutturate (structured chat); Rappresentazioni ad albero. Diagramma di flusso Grafico che descrive il processo di elaborazione in tutte le sue fasi. Le fasi sono rappresentate con simboli e collegate tra loro da linee di flusso che indicano la direzione del processo di elaborazione. 15
16 Simboli e strutture di diagrammi di flusso 16
17 Pseudocodice 17
18 Problema: trovare il massimo tra due numeri Soluzione: FASE 1 FASE 2 La differenza tra due numeri è positiva se il primo è maggiore del secondo, negativa viceversa. La differenza è uguale a zero se i due numeri sono uguali. 18
19 Programma Insieme di frasi (istruzioni) che codificano l algoritmo in un linguaggio comprensibile dalla macchina (linguaggio macchina). 19
20 Linguaggi di programmazione Linguaggi più vicini alla logica dell uomo e più comprensibili del linguaggio macchina. Linguaggi formali, completamente definiti mediante regole esplicite, per cui è sempre possibile verificare la correttezza di una proposizione. Sintassi di un linguaggio Insieme delle regole che le frasi (istruzioni) del linguaggio di programmazione devono rispettare. Semantica di un linguaggio Significato delle frasi del linguaggio. 20
21 Traduzione di programmi Per poter essere eseguito sulla macchina reale, un programma scritto in un linguaggio di programmazione deve essere tradotto in un programma equivalente scritto in lingua macchina. Ogni istruzione in linguaggio di alto livello è sostituita (tradotta) da una sequenza di istruzioni in linguaggio macchina. Traduttori Interprete Un programma che traduce ogni istruzione in un linguaggio di programmazione ed esegue la corrispondente sequenza di istruzioni in linguaggio macchina. Compilatore Un programma che traduce un programma scritto in un linguaggio di programmazione in un programma scritto in linguaggio macchina. 21
22 Linguaggio di basso livello o assemblativi Dipendenti dalla macchina. Ogni istruzione macchina è rappresentata da un nome mnemonico più facile da ricordare rispetto ad una stringa di bit. 22
23 Linguaggi di alto livello o simbolici Indipendenti dalla macchina, con un insieme di istruzioni molto ampio. I linguaggi di alto livello (es. Java, C, C++, Fortran, Cobol, Pascal, ) sono stati introdotti per agevolare lo sviluppo di grossi programmi. Il vocabolario di un linguaggio assemblativo si riduce al ristretto insieme di istruzioni che un processo può eseguire. Un programma scritto in linguaggio di alto livello (codice sorgente) viene tradotto nell equivalente programma in linguaggio macchina (codice oggetto) dal compilatore o interprete. Linguaggi compilati -> Fortran, Pascal Linguaggi interpretati -> Basic 23
24 24
25 25
26 Linguaggio procedurale Concepito per applicazioni in rete Eseguito su ogni tipo di computer Utente Browser Server Applet Java virtual machine Pagina web con applicazione Applet 26
27 HyperText Markup Language 27
28 Distribuzione del software Shareware Freeware Open Source 28
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
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
Il Software programmabili programma algoritmo
Il Software La proprietà fondamentale dei calcolatori e` quella di essere programmabili cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall utente mediante un programma, ossia
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
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
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura [email protected] 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
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
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
Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1
Concetti base della Tecnologia dell informazione Algoritmi Come interpreta un computer un problema? Algoritmi Algoritmo: sequenza ordinata di istruzioni per risolvere un problema (tradotto: sequenza di
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
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
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
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
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à
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
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
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
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
FONDAMENTI DI INFORMATICA
Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia [email protected] A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica
Introduzione alla programmazione
Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste
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
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
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
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
Cosa è un programma. Informatica di Base -- R.Gaeta 18
Cosa è un programma Il programma è la scatola nera che risolve il problema computazionale; Il programma è una sequenza di istruzioni che devono essere eseguite; Il programma è la traduzione per il computer
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 ([email protected])
Informatica. Come si risolve un problema?
Informatica Elaborazione automatica dell informazione Esempio di elaborazione: rubrica, elenco telefonico. Ogni problema di elaborazione dell informazione è caratterizzato da: un insieme di dati di partenza
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
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
LEZIONE 4. Hardware (periferiche) Software (algoritmi)
LEZIONE 4 Hardware (periferiche) Software (algoritmi) Prof. Valle Prof. Folgieri Lez4 Hardware e Software 1 PERIFERICHE DI INPUT E DI OUTPUT Periferiche di INPUT: Tastiera Mouse Trackball, touch pad, joystick
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
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
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
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
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
Linguaggi di Programmazione
Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende
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
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
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
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
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
FONDAMENTI DI INFORMATICA
Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia [email protected] A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica
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
Introduzione alla programmazione strutturata
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Prof. ELIO TOPPANO Facoltà di Ingegneria Università degli Studi di Udine Introduzione alla programmazione strutturata 2001 Pier Luca Montessoro, Elio
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
CAPITOLO 3 - ALGORITMI E CODIFICA
FASI DI SVILUPPO DEL SOFTWARE Problema Idea (soluzione) Algoritmo (soluzione formale) Programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico) Test (criteri di verifica)
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
Linguaggi di programmazione
Parte 2 Linguaggi di programmazione Livello di Astrazione per la Codifica di un Algoritmo Si può risolvere un problema senza prima fissare un insieme di azioni, di mosse elementari possibili per l elaboratore?
Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica
Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica prof. ing. Corrado Santoro A.A. 2009-10 Dai flow-chart ai linguaggi... Abbiamo imparato ad usare uno strumento formale i flowchart per
