Informatica e Informatica di Base

Slides:



Advertisements
Presentazioni simili
Esercizio Usate il ciclo repeat until (controllo post condizionale) per simulare il prodotto N x M con M somme di N. Esempio: 5 x 3 equivale a fare 5 +5.
Advertisements

Il Software.
Software di base: Linguaggi di Programmazione
Evoluzione dei linguaggi di programmazione
PROGRAMMARE IN PASCAL (le basi)
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
Informatica Generale Susanna Pelagatti
3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
3. Programmazione strutturata (testo di riferimento: Bellini-Guidi)
Dr. Francesco Fabozzi Corso di Informatica
Sommario Gli algoritmi I linguaggi per la formalizzazione di algoritmi
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Fondamenti di Informatica
Introduzione alla programmazione ll
Introduzione alla programmazione lll
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
Primi Elementi di Programmazione in C++
Strutture di controllo in C -- Flow Chart --
Fondamenti di Informatica Algoritmi
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Gli algoritmi.
Elementi di Informatica
Elementi di Informatica
Biologia Computazionale - Algoritmi
Dall’algoritmo al programma.
Algoritmi e Programmazione strutturata
INFORMATICA MATTEO CRISTANI.
PROGRAMMAZIONE: linguaggi
Lezione 1 Linguaggi di programmazione – Algoritmi –Istruzioni
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
Lo sviluppo del software e i linguaggi di programmazione
Elementi di Informatica di base Dott.ssa Elisa Tiezzi
Programmazione di Calcolatori
Programmazione di Calcolatori
CONCETTI DI BASE 1.0 FONDAMENTI 1.1 HARDWARE 1.2 SOFTWARE 1.3 RETI
BIOINFO3 - Lezione 15 ISTRUZIONI
ECDL Patente europea del computer
Programma di Informatica Classi Prime
DIVERTIRSI CON SCRATCH
Dal problema all’ algoritmo
Introduzione a Javascript
Rappresentazione degli algoritmi
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
1 Parte 2 Fondamenti di programmazione. 2 Definizione intuitiva di algoritmo Elenco finito di istruzioni che specificano una serie di operazioni, eseguendo.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
PRIMI ELEMENTI DI PROGRAMMAZIONE
1 Informatica Generale Alessandra Di Pierro Ricevimento: Giovedì ore presso Dipartimento di Informatica, Via Buonarroti,
Programmazione Attività di progettazione ed implementazione di programmi I programmi permettono di realizzare funzioni complesse su un hardware in grado.
Algoritmi.
Interpreti e compilatori
Concetti Fondamentali sulla Programmazione
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Il software Claudia Raibulet
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Diagrammi a blocchi.
Problemi, algoritmi e programmazione
ALGORITMI Dal problema al programma Definizione di algoritmo
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Il computer ragiona? Problemi e algoritmi. Paola Pianegonda2 Cos’è un problema?  Problema è qualsiasi situazione della quale non conosciamo la soluzione.
Programmazione dei Calcolatori Elettronici
LINGUAGGI DI PROGRAMMAZIONE E' un linguaggio formale dotato di una sintassi ben definita che viene utilizzato per scrivere programmi che realizzano algoritmi.
Istruzioni e algoritmi. Istruzioni Operative I passi elementari che compongono l’algoritmo sono le istruzioni. Distinguiamo: Istruzioni di input Istruzioni.
Unità di apprendimento 6
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
Transcript della presentazione:

Informatica e Informatica di Base ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura tura@cirsfid.unibo.it © F. Tura

Lo strumento dell’informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina per l’elaborazione dell’informazione  guidata dal software © F. Tura

problemi di gestione dell’informazione Problemi di elaborazione dell’informazione problemi di gestione dell’informazione rappresentazione aggiornamento -reperimento problemi di manipolazione dell’informazione es. (reperimento): trovare il numero telefonico di una determinata persona es. calcolare il costo totale di un certo numero di prodotti © F. Tura

Problemi di elaborazione dell’informazione Creazione del software (programmi) necessario ALGORITMI Un problema di elaborazione dell’informazione si risolve elaborando un algoritmo ALGORITMO  Sequenza di passi da compiere per ottenere la risoluzione [dati di output] di un certo problema di elaborazione dell’informazione a partire da una determinata situazione iniziale [= dati iniziali] © F. Tura

problema di elaborazione (reperimento) dell’informazione Esempio di algoritmo per la risoluzione di un problema di elaborazione (reperimento) dell’informazione  Ricerca di numero telefonico corrispondente a una persona PASSO 1. Apri l’elenco telefonico alla prima pagina e vai sulla prima riga PASSO 2. Leggi il nominativo indicato PASSO 3. Confronta il nominativo indicato con quello cercato: i nominativi coincidono? Se sì, vai al passo successivo, se no, passa alla riga successiva e ritorna al Passo 2 PASSO 4. Leggi il numero di telefono corrispondente al nominativo indicato -> soluzione del problema NB: L’esempio riporta – a solo scopo illustrativo – un algoritmo molto poco efficiente, in quanto non sfrutta il fatto che i nominativi sull’elenco telefonico compaiono in ordine alfabetico © F. Tura

Formulazioni di un algoritmo DIAGRAMMA DI FLUSSO <=> formulazione di un algoritmo in formalismo grafico (ove ai passi dell’algoritmo corrispondono i nodi del diagramma) PROGRAMMA <=> formulazione di un algoritmo in un linguaggio di programmazione (ove ai passi dell’algoritmo corrispondono le istruzioni del programma) © F. Tura

Fasi della progettazione del software 1. Studio del problema (dati iniziali e dati di output da ottenere) 2. Definizione dell’algoritmo di risoluzione del problema [= analisi di fattibilità] 3. Formulazione dell’algoritmo in diagramma di flusso 4. Traduzione del diagramma di flusso in linguaggio di programmazione  creazione di un programma

Diagramma di flusso (flow chart) Formalismo grafico per esprimere un algoritmo È composto da: Nodi  figure geometriche contenenti stringhe di testo Archi  linee che collegano i nodi dotate di frecce per indicarne la “direzione” di collegamento © F. Tura

Diagramma di flusso Nodi Ciascun nodo del diagramma di flusso contiene una stringa la quale esprime l’azione che deve essere eseguita quando durante l’esecuzione dell’algoritmo, si incontra quel nodo Le azioni vengono eseguite utilizzando tra l’altro delle variabili VARIABILE  nome simbolico che rappresenta un valore che può variare durante l’esecuzione dell’algoritmo © F. Tura

Diagramma di flusso Archi Gli archi sono i tratti di congiunzione tra i nodi, e sono dotati di una freccia la quale indica la direzione di proseguimento dell’algoritmo © F. Tura

Tipi di nodi inizio dell’algoritmo fine dell’algoritmo assegnazione Diagramma di flusso Tipi di nodi START inizio dell’algoritmo fine dell’algoritmo STOP assegnazione © F. Tura

scrittura dati in output test booleano (confronto) Diagramma di flusso Tipi di nodi lettura dati in input scrittura dati in output S N test booleano (confronto) © F. Tura

Tipi di azioni Assegnazione Diagramma di flusso Tipi di azioni Assegnazione  azione mediante la quale viene assegnato un valore ad una variabile Il valore assegnato diviene valore corrente della variabile e resta tale finché una successiva assegnazione non cambi il valore stesso esempio 1: assegnazione alla variabile A del valore 5 A  5 © F. Tura

Tipi di azioni: assegnazione Diagramma di flusso Tipi di azioni: assegnazione esempio 2: assegnazione alla variabile A del valore corrente della variabile B A  B esempio 3: assegnazione alla variabile A del valore corrente della variabile B incrementato di 1 A  B + 1 © F. Tura

Tipi di azioni: assegnazione Diagramma di flusso Tipi di azioni: assegnazione In generale una assegnazione ha la seguente forma: VARIABILE  ESPRESSIONE ARITMETICA esempio 4: assegnazione il cui risultato è quello di incrementare il valore corrente della variabile A A  A + 1 © F. Tura

Tipi di azioni Lettura da input Diagramma di flusso Tipi di azioni Lettura da input  azione mediante la quale viene assegnato ad una variabile un valore specificato dall’esterno La variabile viene cioè associata ad un dato di input esempio: alla variabile A viene assegnato il valore fornito in input A © F. Tura

Tipi di azioni Scrittura in output Diagramma di flusso Tipi di azioni Scrittura in output  azione mediante la quale viene restituito all’esterno il valore corrente di una variabile Il valore della variabile diviene un risultato di output esempio: il valore corrente della variabile C viene restituito in output C © F. Tura

Tipi di azioni Test booleano Diagramma di flusso Tipi di azioni Test booleano  azione mediante la quale viene effettuato un confronto (test) di tipo logico tra due variabili o - più in generale - tra due espressioni aritmetiche: il risultato può essere vero o falso In caso di risultato affermativo (vero) del test viene seguita la freccia uscente dal vertice del rombo marcato da S, in caso di risultato negativo (falso) viene seguita la freccia uscente dal vertice del rombo marcato da N S N © F. Tura

Tipi di azioni: test booleano Diagramma di flusso Tipi di azioni: test booleano Possono essere effettuati 6 tipi di confronto: UGUALE = DIVERSO ≠ MINORE < MAGGIORE > MINORE O UGUALE ≤ MAGGIORE O UGUALE ≥ © F. Tura

Tipi di azioni: test booleano Diagramma di flusso Tipi di azioni: test booleano esempio 1: il risultato del confronto sarà vero se il valore corrente della variabile A è diverso da 5 S A ≠ 5 N esempio 2: il risultato del confronto sarà vero se il valore corrente della variabile A è maggiore o uguale a quello della variabile B incrementato di 3 S N A ≥ B + 3 © F. Tura

Esempi di algoritmi elementari Diagramma di flusso Esempi di algoritmi elementari START A Problema n. 1. Dati 2 numeri, calcolare la loro somma B C  A + B C STOP © F. Tura

Diagramma di flusso - Esempi di algoritmi elementari Problema n. 2. Dati N numeri, calcolare la loro somma © F. Tura

Linguaggi di Programmazione Passo successivo nella creazione di un programma:  Traduzione del diagramma di flusso in un linguaggio di programmazione di alto livello Programmatore Computer Linguaggio di alto livello Programma Compilatore o Interprete Linguaggio Macchina © F. Tura

Linguaggi di programmazione Linguaggio di alto livello È quello in cui l’utente programmatore scrive il programma Usa termini comprensibili dall’uomo Esempi: Pascal Fortran Basic C Prolog HTML CODICE SORGENTE  Programma [= serie di istruzioni] scritto in linguaggio di alto livello © F. Tura

Linguaggi di programmazione Linguaggio macchina È quello interpretabile da parte della CPU del computer È costituito da una serie di cifre binarie (bit) suddivise in gruppi di 8 cifre (byte) Varia a seconda del tipo di computer (ovvero della sua CPU) CODICE OGGETTO  Programma [= serie di istruzioni] scritto in linguaggio macchina © F. Tura

Programmi Compilatori e Interpreti Traducono in linguaggio macchina un programma scritto in linguaggio di alto livello  traducono il codice sorgente in codice oggetto Sono specifici per il tipo di macchina su cui operano A seconda del tipo di linguaggio di alto livello si dividono in: COMPILATORI INTERPRETI Traducono il programma intero  dato un file contenente codice sorgente, il compilatore crea un altro file contenente codice oggetto Traducono il programma istruzione per istruzione, interattivamente Vengono mandati in esecuzione prima di scrivere il programma, per creare l’ambiente interprete che traduce immediatamente le varie istruzioni del programma che ivi verranno scritte dall’utente-programmatore Vengono mandati in esecuzione solo quando il codice sorgente è stato scritto completamente dal programmatore © F. Tura

Programmi Compilatori e Interpreti L’impiego – per la traduzione del codice – del programma compilatore piuttosto che del programma interprete dipende dal linguaggio di alto livello I programmi che vengono tradotti tramite un programma compilatore dicono linguaggi compilati Es. PASCAL I programmi che vengono tradotti tramite un programma interprete si dicono linguaggi interpretati Es. PROLOG © F. Tura

Codice sorgente e codice oggetto Un file contenente codice oggetto si dice anche file eseguibile Un file contenente codice oggetto è direttamente eseguibile su comando dato dall’utente e non è leggibile (contiene cifre binarie) Nel caso di software di proprietà, solo i file contenenti il codice oggetto vengono venduti all’utente, mentre quelli contenenti il codice sorgente vengono trattenuti dall’autore e su di essi si applica il diritto d’autore (copyright). Nel caso di software open source, invece, vengono resi disponibili all’utente anche i file contenente codice sorgente, cosicché l’utente è in grado di può modificare il programma © F. Tura

Esercizi Problema n. 1. Dati 2 numeri, scegliere il maggiore START A B DIAGRAMMA DI FLUSSO S N A ≥ B C  A C  B C STOP © F. Tura

Esercizi program Sceglimaggiore; var A, B, C: integer; begin read(A); Problema n. 1. Dati 2 numeri, scegliere il maggiore program Sceglimaggiore; var A, B, C: integer; begin read(A); read(B); if A ≥ B then C := A otherwise C := B; write(C); end PROGRAMMA PASCAL © F. Tura

Esercizi Problema n. 2. Dati N numeri, calcolare la loro somma DIAGRAMMA DI FLUSSO © F. Tura

Esercizi program eseguiSomma; var I, N, SOMMA, NUOVO: integer; begin Problema n. 2. Dati N numeri, calcolare la loro somma program eseguiSomma; var I, N, SOMMA, NUOVO: integer; begin read(N); I := 0; SOMMA := 0; repeat read(NUOVO); SOMMA := SOMMA + NUOVO; I := I + 1; until I=N; write(SOMMA); end PROGRAMMA PASCAL © F. Tura