Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema
|
|
|
- Elena Spada
- 9 anni fa
- Visualizzazioni
Transcript
1 Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina Il metodo per calcolare le radici di un equazione di secondo grado Le istruzioni per utilizzare il microonde Ci possono essere più algoritmi in grado di risolvere lo stesso problema Claudio Fornaro - Corso di programmazione in C Algoritmo 3 Programmare 4 Proprietà fondamentali dell'algoritmo: la sequenza di istruzioni deve essere finita (finitezza); la sequenza di istruzioni deve portare ad un risultato (efficacia); le istruzioni devono essere eseguibili materialmente (realizzabilità); le istruzioni devono essere espresse in modo non ambiguo (non ambiguità). È importante valutare le risorse utilizzate (tempo, memoria, ) perché un consumo eccessivo delle stesse può pregiudicare la possibilità stessa di utilizzo di un algoritmo Se esiste un procedimento che: può essere descritto in modo non ambiguo fino ai dettagli conduce sempre all'obiettivo desiderato in un tempo finito allora esistono le condizioni per affidare questo compito a un calcolatore Si descrive l'algoritmo in questione in un programma scritto in un opportuno linguaggio comprensibile alla macchina.
2 Programmare Il calcolatore sa eseguire molte operazioni di base: somma, sottrazione, AND, ecc. Per risolvere un determinato problema si combinano queste operazioni in modo opportuno Programmare significa determinare quali operazioni eseguire e in quale sequenza per raggiungere la soluzione 5 Linguaggi Perché il programmatore possa istruire il calcolatore sulle operazioni da fare, serve un linguaggio noto ad entrambi Problema: Il calcolatore comprende solo sequenze di zeri e uno (ad es. la sequenza potrebbe significare, per un ipotetico calcolatore, fai la somma ): linguaggio macchina Il programmatore comprende le parole fai la somma (mentre non significa nulla per lui): linguaggio umano 6 Linguaggio di programmazione Soluzione 1 Il programmatore impara il linguaggio macchina, ma questo: ha un basso livello di astrazione (scende molto nei dettagli realizzativi e perde la visione di insieme del problema da risolvere) è difficile da ricordare (le istruzioni possono essere diverse centinaia) è diverso per ogni piattaforma hardware (ogni tipo di microprocessore ha il suo set di istruzioni) 7 Linguaggio di programmazione Soluzione 2 Il programmatore impara un linguaggio simile al linguaggio macchina detto assembly Ogni istruzione del linguaggio assembly corrisponde ad un istruzione in linguaggio macchina, ma ha il vantaggio di essere mnemonico (es. ADD è l istruzione per calcolare una somma) 8
3 Linguaggio di programmazione Soluzione 2 (Continuazione) Il linguaggio assembly: ha un basso livello di astrazione è più facile da ricordare (ad es. per avere una somma invece di scrivere si scrive ADD) viene tradotto in linguaggio macchina da un programma relativamente semplice (assembler ) che, in linea di massima, sostituisce le istruzioni assembly con le corrispondenti istruzioni macchina è diverso per ogni piattaforma hardware (sebbene possano essere simili) 9 Linguaggio di programmazione Soluzione 3 Il programmatore impara un linguaggio di programmazione ad alto livello (HLL) un traduttore complesso ed efficiente lo traduce in linguaggio macchina o in assembly ha un alto livello di astrazione (esprime le operazioni da svolgere senza entrare nei dettagli, es. A+B calcola la somma di due valori) è più simile al linguaggio umano e quindi più facile da ricordare (es. print X potrebbe essere l istruzione per visualizzare il valore di X) è (quasi) indipendente da piattaforma hardware e sistema operativo (PC, Mac, Windows, Linux, ecc.), è il traduttore che lo converte per il sistema in uso 10 Programma sorgente Il programmatore sviluppa un programma scrivendo in un linguaggio di programmazione (di alto o basso livello) le operazioni da far eseguire al calcolatore e le memorizza in un file detto: programma programma sorgente codice sorgente sorgente 11 Traduttore di tipo interprete Le istruzioni del codice sorgente vengono ad una ad una tradotte in linguaggio macchina e subito eseguite dalla CPU Sorgente somma stampa leggi calcola... 12
4 Traduttore di tipo compilatore Tutto il codice sorgente viene tradotto in linguaggio macchina e memorizzato in un file detto programma (o file o codice) eseguibile Sorgente somma stampa leggi calcola Eseguibile Differenze Velocità di esecuzione Ogni volta che l interprete esegue un programma, deve attuare la traduzione delle istruzioni in linguaggio macchina: lento Il programma compilato è già tradotto e ha quindi una velocità di esecuzione molto superiore Il compilatore è in genere in grado di produrre una traduzione più efficiente dal punto di vista della velocità di esecuzione del codice prodotto (oppure della dimensione del codice) 14 Differenze Competenze per l uso Eseguire un programma interpretato richiede l acquisto e del programma interprete da parte dell utente finale e l acquisizione dello stesso delle competenze necessarie al suo uso Eseguire un programma compilato non richiede che un (doppio) click Il compilatore viene acquistato solo dal programmatore e solo questi ha la necessità di avere la competenza necessaria per utilizzarlo 15 Differenze Copyright e gestione della complessità L interprete richiede il codice sorgente che quindi risulta visibile a chiunque Il programma eseguibile non necessita del sorgente: protezione del copyright La procedura di compilazione permette di suddividere un programma complesso in più parti, ma è più complessa da gestire 16
5 17 18 Librerie Creazione di un eseguibile In un HLL il programmatore non ha necessità di programmare le operazioni di base (ad es. leggere un numero dalla tastiera, calcolare la radice quadrata, visualizzare una parola, ecc.) Queste operazioni sono state programmate e compilate dal produttore del traduttore e sono a disposizione del programmatore sotto forma di funzioni I codici eseguibili (quindi già tradotti in linguaggio macchina) che realizzano queste operazioni vengono raggruppati in file detti librerie (collezioni di funzioni di base) Il processo di creazione di un eseguibile a partire dai sorgenti (build) è composto da 2 fasi: compilazione: il sorgente viene compilato, ma alcune parti (le operazioni di base ) sono ancora mancanti; viene generato un file intermedio detto file oggetto linking: il file oggetto e le librerie vengono unite (collegate link) così da aggiungere al file oggetto le parti mancanti e costituire un unico file eseguibile La fase di link può creare un eseguibile collegando più file oggetto e più librerie Librerie statiche Librerie statiche Nella compilazione il codice delle funzioni di libreria viene inserito nel file eseguibile Spesso le stesse librerie sono usate da più programmi (es. le operazioni di input/output): spreco di memoria File eseguibile File oggetto Eseguibile A Oggetto A Eseguibile B Oggetto B Eseguibile C Oggetto C File libreria RAM
6 21 22 Librerie dinamiche Librerie dinamiche Dynamic Link Libraries (DLL) Shared Libraries, Shared Objects Nella compilazione il codice delle funzioni di libreria NON è inserito nel file eseguibile, viene invece indicato il nome del file che lo contiene Quando viene eseguito un programma che usa quella libreria, questa viene caricata in memoria, ma è utilizzabile anche dagli altri programmi Eseguibile A Eseguibile B Eseguibile C File eseguibile Oggetto A Oggetto B Oggetto C File oggetto File libreria RAM Librerie dinamiche Interfacce utente Quando viene eseguito un altro programma che necessita di quella libreria, questa è già caricata in memoria e pronta all uso: il programma impiega meno tempo a partire Se una delle funzioni della libreria deve essere aggiornata (es. nuova versione), è sufficiente sostituire la DLL mentre il programma in sé non viene modificato Se la DLL viene sostituita da un altra con codice contenente ad esempio un virus, il lancio del programma esegue il virus! L interazione tra utente e programma può avvenire tramite: Interfacce a carattere (console mode): vengono visualizzate e immesse solo righe di testo Interfacce grafiche (GUI Graphic User Interface): vengono visualizzati pannelli, bottoni, caselle di testo, immagini, ecc. Molti linguaggi dispongono di entrambe le interfacce
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
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
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
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
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é
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
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
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
INFORMATICA. L informatica comprende:
Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione dell informazione
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])
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
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?
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
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
Introduzione alla Programmazione. Giselda De Vita
Introduzione alla Programmazione Giselda De Vita - 2015 1 Sulla base dell ambito in cui si colloca il problema da risolvere, è opportuno adottare un linguaggio piuttosto che un altro: ² Calcolo scientifico:
Il calcolatore. Architettura di un calcolatore (Hardware)
Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti
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
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
Linguaggi, compilatori e interpreti
Linguaggi, compilatori e interpreti 1 Il codice macchina Ciascun calcolatore ha un ampio insieme di istruzioni che è in grado di eseguire. Le istruzioni vengono rappresentate mediante sequenze di bit 001000100011
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
in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico
Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito
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à
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
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
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
Fondamenti di programmazione!! Parte 2!
Fondamenti di programmazione!! Parte 2! 1! Definizione intuitiva di algoritmo! n Elenco finito di istruzioni che specificano una serie di operazioni, eseguendo le quali e possibile risolvere ogni istanza
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
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
Lezione 16. Il Software di base
Lezione 16 Software di base Il Software di base Con il termine software di base si intende l insieme dei programmai che consentono ad un utente di eseguire operazioni base come costruire e mandare in esecuzione
Introduzione alla programmazione
Introduzione alla programmazione Cosa è un calcolatore? Hardware Processore Memoria Periferiche Funzionamento Esegue istruzioni elementari Esegue istruzioni molto velocemente Deve essere programmato Il
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
LABORATORIO DI INFORMATICA
LABORATORIO DI INFORMATICA Corso di laurea in Scienze della Formazione Primaria a.a.2014/2015 A cura del Prof. Sergio Miranda 2 LEZIONE N.6 Algoritmi GLI ALGORITMI (1/5) Un algoritmo è una sequenza di
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
Linguaggi di alto livello, compilatori e interpreti
Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI
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
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
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
Primi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
Fondamenti di Informatica T. Il Software
Il Software TECNOLOGIA DIGITALE CPU, memoria centrale e dispositivi sono realizzati con tecnologia elettronica digitale. Dati ed operazioni vengono codificati a partire da due valori distinti di grandezze
Corso di Laurea Ingegneria Informatica Laboratorio di Informatica
Corso di Laurea Ingegneria Informatica Laboratorio di Informatica Capitolo 4 Traduzione ed esecuzione di programmi Ottobre 2006 Traduzione ed esecuzione di programmi 1 Nota bene Alcune parti del presente
Fondamenti VBA. Che cos è VBA
Fondamenti VBA Che cos è VBA VBA, Visual Basic for Application è un linguaggio di programmazione, inserito nelle applicazioni Office di Microsoft (Ms Word, Ms Excel, Ms PowerPoint, Visio). VBA è una implementazione
IL PRIMO PROGRAMMA IN C
IL PRIMO PROGRAMMA IN C LO SCOPO Si vuole scrivere un programma in linguaggio C che chieda all utente di introdurre da tastiera due numeri interi e visualizzi il valore della loro somma sul video SOLUZIONE
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
