Maria a Montagn na Parte 3: LINGUAGGI DI PROGRAMMAZIONE E ALGORITMI Matematica e Informatica 3. Linguaggi di Programmazione e Algoritmi SOMMARIO La programmazione 9 Linguaggi i i ad d Alto l Livello i ll 9 Gli Algoritmi Maria a Montagn na 9 Matematica e Informatica 3. Linguaggi di Programmazione e Algoritmi LA PROGRAMMAZIONE PROGRAMMAZIONE: attività che permette di affrontare in modo sistematico l’ideazione e la del it ti l’id i l realizzazione li i d l software ft 9 sistema operativo 9 software applicativo (package) dati PROGRAMMA (Ingresso) Maria a Montagn na programma o insieme di programmi che svolgono le funzioni richieste dall’utente risultati (Uscita) N. B. sequenza di istruzioni p e rigorosa!!! g completa ECCEZIONI!!! ((IMPREVISTI)) Matematica e Informatica 3. Linguaggi di Programmazione e Algoritmi LA PROGRAMMAZIONE Osservazioni: 1. 1 I calcolatori l l t i eseguono solo l operazioni i i semplici: li i calcoli l li aritmetici it ti i e logici. 2. Lunghe sequenze di informazioni sono essere eseguite velocemente 3. L’insieme di operazioni che ogni computer può eseguire è specifico per ogni modello di CPU: tali istruzioni sono codificate in binario. facilità d di scritturra Maria a Montagn na LINGUAGGI: MACCHINA dall’istruzione d ll’i t i all codice di (progettazione CPU) ASSEMBLER ad ogni istruzione corrisponde un testo PORTABILITÀ? ALTO LIVELLO descrizione semplice e più intuitiva COMPILATORI Matematica e Informatica 3. Linguaggi di Programmazione e Algoritmi LA PROGRAMMAZIONE USO DELLA MEMORIA DURANTE L’ESECUZIONE DI UN PROGRAMMA 1. Calcoli: effettuati dalla (nella) CPU. 2. Scambio di informazioni tra registri e memoria x = y+2 LOAD Y, ADD 2, STORE R1 R1, R1 R1 X Maria a Montagn na - - - indirizzo contenuto Registri: g insieme di memorie ad altissima velocità, della capacità di pochi byte, interne al processore Matematica e Informatica 3. Linguaggi di Programmazione e Algoritmi SOMMARIO La programmazione 9 Linguaggi i i ad d Alto l Livello i ll 9 Gli Algoritmi Maria a Montagn na 9 Matematica e Informatica 3. Linguaggi di Programmazione e Algoritmi LINGUAGGI AD ALTO LIVELLO I LINGUAGGI AD ALTO LIVELLO x = y+2 Caratteristiche: X = Y + 2 9 Linguaggio più scientifico 9 Portabilità 9 Efficienza (riguarda l’uso efficiente di registri e memoria) Maria a Montagn na Esempi: p a. FORTRAN (FORmula TRANslator, anni ’50 da IBM): primo linguaggio ad alto livello, per uso scientifico b. PASCAL (Università di Zurigo): programmazione strutturata, usato per didattica c. C (anni ‘70, da Bell Labs per scrivere il codice del sistema operativo Unix): potente, sintetico, strutture dati avanzate e possibilità di fare riferimento direttamente i all’hardware. C++ (anni ( i ’80): ) estensione i dii C alla programmazione ad oggetti, che non raggruppano solo variabili, ma anche funzioni ad esse associate. d BASIC (Beginner’s d. (B i ’ All Purpose P Si b li Instruction Simbolic I t ti C d annii ’60, Code, ’60 Dartmouth D t th College): sintassi semplice; VISUAL BASIC (Microsoft), linguaggio orientato alla grafica. Matematica e Informatica 3. Linguaggi di Programmazione e Algoritmi LINGUAGGI AD ALTO LIVELLO I LINGUAGGI AD ALTO LIVELLO Esempi: Maria a Montagn na e. HTML (HyperText Markup Language, CERN ora è pubblico, anni ’80): è il g gg delle pagine p g web. linguaggio f. JAVA (Sun Microsystem, anni ’90): linguaggio di programmazione orientato agli oggetti Java appena è uscito è stato accolto con molto entusiasmo dalla comunità mondiale dei progettisti di software e dei provider di servizi Internet, questo perché Java permetteva agli utenti di Internet di utilizzare applicazioni sicure e indipendenti dalla piattaforma, che si possono trovare in qualsiasi punto della rete. Java è quindi nato come linguaggio per la rete, per affiancare ll' Hyper Text Markup Language (HTML), il quale non è un linguaggio di programmazione vero e proprio, e per dargli quella sicurezza che l'HTML non ha. Per lanciare un programma Java occorre avere uno strumento chiamato Java Virtual M hi Machine, che h interpreta i t t il bytecode b t d generato t dal d l compilatore il t J Java e lo l esegue sulla ll macchina su cui è installato. Grazie alla Java Virtual Machine Java è indipendente dalla piattaforma, infatti il programma compilato Java è legato alla JVM e non al sistema operativo, p , sarà q quindi p possibile eseguire g lo stesso p programma g Java,, compilato p una sola volta su una qualche macchina con un compilatore Java versione X, su una piattaforma Windows e su una piattaforma Linux, per fare questo però c'è bisogno che sia Windows che Linux abbiano installato una Java Virtual Machine che supporti la versione X di Java. http://java html it/guide/lezione/744/introduzione a java/ http://java.html.it/guide/lezione/744/introduzione-a-java/ Matematica e Informatica 3. Linguaggi di Programmazione e Algoritmi LINGUAGGI AD ALTO LIVELLO Maria a Montagn na c c +------------------+ c | Double precision | c +------------------+ c double precision function cspeed() cspeed=2.998d8 return end FORTRAN ! [m/s] print_data(DECODER *p, DATA *s) { int i, j; for (i = 0; i < p->spb*p->blocks; i++) { printf("%17.12f ", s[i].time); for (j = 0;; j < 4;; j++) j ) printf("%7.1f %7.1f ", s[i].sc[j].re, s[i].sc[j].im); printf("\n"); } } Matematica e Informatica C 3. Linguaggi di Programmazione e Algoritmi LINGUAGGI AD ALTO LIVELLO <HTML> <HEAD> <TITLE>Esempio 5</TITLE> </HEAD> <BODY BACKGROUND="titto_green_paper.jpg"> HTML <CENTER><H1>Riferimenti ad &agrave;ncore poste su altre pagine</H1></CENTER> Maria a Montagn na <UL> <P> </P> <P> </P> <P> </P> <CENTER> <FONT SIZE=+2> Questo <A HREF="esempio_5.html#Secondo">link</A>, &egrave; un riferimento al Capitolo Secondo della pagina esempio_5.html </FONT> </CENTER> /CENTER </UL> <HR WIDTH="100%"> </BODY> </HTML> http://www.inf.uniroma3.it/~patrigna/didactic/imp_elab/esempi_html/index.html Matematica e Informatica 3. Linguaggi di Programmazione e Algoritmi SOMMARIO La programmazione 9 Linguaggi i i ad d Alto l Livello i ll 9 Gli Algoritmi Maria a Montagn na 9 Matematica e Informatica 3. Linguaggi di Programmazione e Algoritmi GLI ALGORITMI Maria a Montagn na ALGORITMO: un insieme finito e ordinato di passi, che determinano un procedimento in finito o di t atto tt a risolvere i l i un tempo t fi it un problema bl una classe di problemi, utilizzando dei dati iniziali e ottenendo dei risultati. Classe di problemi Ingredienti per 6-8 persone: Per la pasta: 180 g di farina, 70 g di burro, 90 g di zucchero, 3 tuorli d’uovo, Importanza degli 1 cucchiaio di cannella in polvere ingredienti Per il ripieno: 450 g di ribes nero nero, 100 g di zucchero di canna Procedimento: 1. Preparare la pasta: setacciare la farina e la cannella in polvere , mettervi al centro lo zucchero zucchero, il burro ammorbidito a temperatura ambiente diviso a pezzetti e i tuorli d’uovo; impastare rapidamente gli ingredienti senza lavorare troppo il composto, avvolgerlo in un foglio di pellicola trasparente e farlo riposare in un luogo fresco per circa un’ora circa. 2. Preparare p il ripieno: p lavare il ribes in acqua q g ghiacciata;; metterlo in un tegame g largo, aggiungervi lo zucchero di canna e cuocerlo a fuoco moderato per 15 minuti circa, mescolando spesso, finché il composto comincerà ad addensarsi; toglierlo e farlo raffreddare. 3. Stendere la pasta allo spessore di 3 mm circa, foderare una tortiera imburrata e infarinata, pareggiare il bordo e pizzicottarlo 4. Bucherellare il fondo della pasta con una forchetta e far riposare in frigorifero per 15 minuti circa; versarvi il composto di ribes freddo, stenderlo in uno strato uniforme e cuocere la crostata in forno preriscaldato a 180 gradi per 40 minuti circa; toglierla, sformarla e farla raffreddare. Matematica e Informatica ordine Regole l per poter t continuare 3. Linguaggi di Programmazione e Algoritmi GLI ALGORITMI Caratteristiche: ¾ comprensibile per l’esecutore, quindi con istruzioni descritte mediante un linguaggio di programmazione; ¾ garantire una terminazione: non si deve chiedere un’operazione che teoricamente non può avere fine; ¾ non deve d presentare t ambiguità: bi ità tutte t tt le l combinazioni bi i i di dati d ti che h possono accadere, devono poter essere elaborate, perché il computer non può gestire autonomamente un imprevisto (l’eccezione deve essere prevista); ¾ si possono considerare sottoproblemi; Maria a Montagn na ¾ uno stesso problema può essere risolto con algoritmi diversi. Come scriverli: ¾ Pseudo-codifica: linguaggio molto simile al naturale, usa indentazioni ¾ Diagrammi di flusso: il flusso delle informazioni è evidenziato in modo grafico Matematica e Informatica 3. Linguaggi di Programmazione e Algoritmi GLI ALGORITMI DIAGRAMMI DI FLUSSO (FLOW-CHART) Operazione Operazione elementare Operazione di O i di ingresso/uscita Maria a Montagn na 4 blocchi base, che descrivono tutti i possibili tipi di operazione e sono collegati da archi (frecce) orientati. Condizione Matematica e Informatica Punti di inizio e fine 3. Linguaggi di Programmazione e Algoritmi