Parte 3: LINGUAGGI DI PROGRAMMAZIONE E ALGORITMI
SOMMARIO La programmazione Linguaggi i ad Alto Livello Gli Algoritmi na a Montagn Maria
LA PROGRAMMAZIONE PROGRAMMAZIONE: attività che permette di affrontare in modo sistematico it ti l ideazione i e la realizzazione i del software sistema operativo software applicativo (package) programma o insieme di programmi che svolgono le funzioni richieste dall utente dati (Ingresso) PROGRAMMA risultati (Uscita) N. B. sequenza di istruzioni completa e rigorosa!!! ECCEZIONI!!! (IMPREVISTI)
LA PROGRAMMAZIONE Osservazioni: 1. I calcolatori l eseguono solo operazioni i semplici: i calcoli li aritmetici 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. LINGUAGGI: f acilità di scrittur ra MACCHINA dall istruzione i al codice (progettazione CPU) ASSEMBLER ad ogni istruzione corrisponde un testo ALTO LIVELLO descrizione semplice e più intuitiva PORTABILITÀ? COMPILATORI
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, R1 ADD 2, R1 STORE R1, X ---indirizzo contenuto Registri: insieme di memorie ad altissima velocità, della capacità di pochi byte, interne al processore
SOMMARIO La programmazione Linguaggi i ad Alto Livello Gli Algoritmi na a Montagn Maria
LINGUAGGI AD ALTO LIVELLO I LINGUAGGI AD ALTO LIVELLO x = y+2 Caratteristiche: Linguaggio più scientifico X = Y + 2 Portabilità Efficienza (riguarda l uso efficiente di registri e memoria) Esempi: 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 all hardware. C++ (anni 80): estensione di C alla programmazione ad oggetti, che non raggruppano solo variabili, ma anche funzioni ad esse associate. d. BASIC (Beginner s All Purpose Simbolic Instruction ti Code, anni 60, Dartmouth th College): sintassi semplice; VISUAL BASIC (Microsoft), linguaggio orientato alla grafica.
LINGUAGGI AD ALTO LIVELLO I LINGUAGGI AD ALTO LIVELLO Esempi: e. HTML (HyperText Markup Language, CERN ora è pubblico, anni 80): è il linguaggio gg delle pagine web. 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, questoperché 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 l' 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 Machine, che interpreta t il bytecode generato dal compilatore Java e lo esegue sulla 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, sarà quindi possibile eseguire lo stesso programma Java, compilato 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/ html a java/
LINGUAGGI AD ALTO LIVELLO c c +------------------+ c Double precision c +------------------+ c double precision function cspeed() cspeed=2.998d8 return end! [m/s] FORTRAN 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"); } } C
LINGUAGGI AD ALTO LIVELLO <HTML> <HEAD> <TITLE>Esempio 5</TITLE> </HEAD> <BODY BACKGROUND="titto_green_paper.jpg"> HTML <CENTER><H1>Riferimenti ad àncore poste su altre pagine</h1></center> <UL> <P> </P> <P> </P> <P> </P> <CENTER> <FONT SIZE=+2> Questo <A HREF="esempio_5.html#Secondo">link</A>, è un riferimento al Capitolo Secondo della pagina esempio_5.html </FONT> </CENTER> </UL> <HR WIDTH="100%"> </BODY> </HTML> http://www.inf.uniroma3.it/~patrigna/didactic/imp_elab/esempi_html/index.html
SOMMARIO La programmazione Linguaggi i ad Alto Livello Gli Algoritmi na a Montagn Maria
GLI ALGORITMI ALGORITMO: un insiemefinitoeordinatodipassi,chedeterminano un procedimento atto arisolvere in untempo finito it unproblema o una classe di problemi, utilizzando dei dati iniziali e ottenendo dei risultati. Classe di Ingredienti per 6-8 persone: problemi 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, 100 g di zucchero di canna Procedimento: 1. Preparare la pasta: setacciare la farina e la cannella in polvere, mettervi al centro lo 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 il ripieno: lavare il ribes in acqua ghiacciata; metterlo in un tegame 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. ordine Regole per poter continuare
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 presentare ambiguità: ità tuttett le combinazioni i i di dati che possono accadere, devono poter essere elaborate, perché il computer non può gestire autonomamente un imprevisto (l eccezione deve essere prevista); si possono considerare sottoproblemi; 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
GLI ALGORITMI DIAGRAMMI DI FLUSSO (FLOW-CHART) Operazione Operazione di elementare ingresso/uscita 4 blocchi base, che descrivono tutti i possibili tipi di operazione e sono collegati da archi (frecce) orientati. Condizione Punti di inizio e fine