Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

Documenti analoghi
Linguaggi, Traduttori e le Basi della Programmazione

Lez. 8 La Programmazione. Prof. Pasquale De Michele (Gruppo 2) e Raffaele Farina (Gruppo 1) 1

Sviluppo di programmi

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

ALGORITMI: PROPRIETÀ FONDAMENTALI

Dal problema a un programma comprensibile dal calcolatore. Il Progetto degli Algoritmi. Dall analisi del problema all esecuzione

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Introduzione alla programmazione

Costanti e Variabili

Strutture dati e loro organizzazione. Gabriella Trucco

Cosa è l Informatica?

Informatica Generale Andrea Corradini I linguaggi di programmazione

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

Unità di apprendimento 6. Dal problema al programma

L ELABORATORE ELETTRONICO

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Informatica. Come si risolve un problema?

MODULO 1. Prof. Onofrio Greco. Prof. Greco Onofrio

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

PROBLEMI ALGORITMI E PROGRAMMAZIONE

Indice. Prefazione. 3 Oggetti e Java 53

Organizzazione strutturata

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

VARIABILI E COSTANTI

FONDAMENTI DI INFORMATICA

Fondamenti di Informatica Il linguaggio C

Istruzioni, algoritmi, linguaggi

Algoritmi e Strutture Dati

L ELABORATORE ELETTRONICO!

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Algoritmi e Programmi

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Termine algoritmo da:

Introduzione alla programmazione Algoritmi e diagrammi di flusso. Sviluppo del software

LINGUAGGI DI PROGRAMMAZIONE!

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.)

Tipi di dato. Il concetto di tipo di dato viene introdotto per raggiungere due obiettivi:

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Caratteristiche di un linguaggio ad alto livello

Rappresentazione con i diagrammi di flusso (Flow - chart)

Teoria dell Informazione

LINGUAGGI DI PROGRAMMAZIONE E CODIFICA PROGRAMMI

Elementi di programmazione

DESCRIZIONI RIGOROSE c7

Corso di Informatica di Base

Struttura dei programmi C

Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Concetti Introduttivi. Il Computer

Il Linguaggio C. Caratteristiche. Caratteristiche. Esempio di programma in C. Tipi di dato primitivi in C. Dati

Cos è la programmazione?

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

I.4 Rappresentazione dell informazione

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Corso di Fondamenti di Informatica Linguaggi di Programmazione

Il linguaggio di programmazione Python

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Linguaggi di Programmazione

Elaboratore Elettronico

Problemi, algoritmi, calcolatore

Algoritmi, Strutture Dati e Programmi. UD 1.d: Dati e Tipi di Dato

L INFORMATICA c1. Informatica è qualcosa che ha a che fare con l uso del computer

Appunti del corso di Informatica 1 (IN110 Fondamenti) 2 Algoritmi e diagrammi di flusso

Pag. 2. Somma binaria. Somma binaria. Somma binaria. Altre operazioni aritmetiche. La somma si può fare colonna per colonna

Laboratorio di Programmazione

Algoritmi e Linguaggi

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

Le basi del linguaggio Java

I Linguaggi di Programmazione

FONDAMENTI DI INFORMATICA

Il concetto di calcolatore e di algoritmo

Elaborazione dell informazione

Introduzione al funzionamento di un calcolatore elettronico

Calcolo numerico e programmazione Rappresentazione dei numeri

Descrizione delle operazioni di calcolo. Espressioni costanti semplici

Unità F1. Obiettivi. Il linguaggio C. Il linguaggio C++ Linguaggio C. Pseudolinguaggio. Primi programmi

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

Primi passi col linguaggio C

Concetti di base dell ICT

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

Macchine Astratte. Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari. Linguaggi di Programmazione feb, 2016

Dalla prima lezione. LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 7 VARIABILI E COSTANTI 28/02/2016. Concetto di algoritmo

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

LINGUA ITALIANA L.E.1 ASCOLTARE, COMPRENDERE E COMUNICARE ORALMENTE. L.E.2 LEGGERE E COMPRENDERE TESTI DI VARIO TIPO.

Linguaggi di programmazione

Come ragiona il computer. Problemi e algoritmi

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

CONCETTI FONDAMENTALI

Lezione 6 Introduzione al C++ Mauro Piccolo

Valutazione di espressioni

La codifica. dell informazione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 5 Rappresentazione delle informazioni

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

Programmazione C Massimo Callisto De Donato

Fondamenti d Informatica: linguaggi formali. Barbara Re, Phd

Unità Didattica 2 I Linguaggi di Programmazione

Linguaggio C - sezione dichiarativa: costanti e variabili

INFORMATICA 1 Corso di Laurea in Fisica a.a. 2007/08

Transcript:

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi Istruzioni variabili e tipi Sottoprogrammi Strutture di controllo Ricorsione 1 2 Obiettivo Ciclo di sviluppo di programmi Risoluzione di un problema mediante un calcolatore Analisi del Problema Partire dalla descrizione del problema in linguaggio naturale per giungere alla stesura di un programma nel linguaggio di programmazione scelto Progetto della Soluzione Codifica (Implementazione) Test (Collaudo) 3 4

(Studio di fattibilità) Analisi Chiarifica del problema COSA si ha a disposizione? COSA si deve ottenere? Progettazione Fasi di Sviluppo Individuazione di una strategia di soluzione COME raggiungere l'obiettivo dato quello di cui si dispone? Scelta delle strutture di dati Codifica Scrittura del programma Verifica (e correzione) (Test) del programma Rimanda ad una delle fasi precedenti Manutenzione Correttiva, Adattativa, Migliorativa 5 Programmazione (1) Descrizione del procedimento di soluzione di un problema ad un esecutore meccanico Poiché l esecutore è meccanico, consiste nel Ricondurre il problema da risolvere a problemi primitivi Eseguibili come insieme di azioni primitive Organizzare ed utilizzare le risorse dell elaboratore 6 Programmazione (2) Trasformazione della descrizione di un algoritmo in un messaggio Insieme di istruzioni codificate in un linguaggio interpretabile da un esecutore Passa attraverso un astrazione Sia delle operazioni che il procedimento prevede Sia degli oggetti su cui il procedimento deve operare Programma (1) Traduzione della procedura di soluzione in un linguaggio comprensibile alla macchina con indicazioni sui dati di ingresso e uscita Comunica al calcolatore istruzioni operative Quali dati di ingresso deve trattare Come deve operare su questi dati Quali dati deve dare come risultato 7 8

Programma (2) Programma (3) Procedura eseguibile su calcolatore, che rappresenta una soluzione ad un problema Risultato di un lavoro di analisi e progetto che inizia dalla formulazione del problema Corrisponde alla tripla (Dati, Algoritmo, Risultati) [Wirth] Algoritmi + Strutture Dati = Traduzione di un metodo di soluzione eseguibile in un linguaggio comprensibile alla macchina Descrive come vanno elaborati insiemi di valori che rappresentano le entità del problema Usa rappresentazioni simboliche per estendere l applicabilità del metodo di soluzione a valori diversi Uso di variabili 9 10 Dati Istruzioni Entità su cui lavora il programma Operative Costanti Variabili Rappresentati come sequenze di bit Nei linguaggi ad alto livello il programmatore può ignorare i dettagli della rappresentazione Tipo di dato Lavorano su rappresentazioni delle entità del problema Dichiarative Consentono di definire come interpretare e rappresentare tali entità in termini di variabili nel programma Totale caratterizzazione mediante la definizione di: Un nome Un tipo 11 12

Istruzioni Dichiarative Definiscono le aree di memoria in cui sono conservati i dati cui fa riferimento un algoritmo Predispongono le posizioni di memoria da utilizzare Associano un nome a ciascuna di esse Identificatore Determinano il tipo di dati che vi possono essere memorizzati Insieme dei valori permessi Insieme delle operazioni applicabili 13 Tipi di Istruzioni Un linguaggio di programmazione dispone di: Istruzioni di ingresso Permettono 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 rappresentanti gli elementi del problema Strutture di controllo 14 Istruzioni di Ingresso/Uscita Livello di descrizione dell algoritmo Necessità di indicare i dati su cui operare Livello di programma Necessità di comunicare i dati e i risultati Istruzioni di lettura e scrittura Istruzioni di Uscita Consentono di notificare all utente il valore di una variabile del programma Visualizzazione, stampa, Attivano un operazione di scrittura Copiatura su un supporto esterno carta, nastri e dischi magnetici, display, del contenuto di un area di memoria denotata dal nome della variabile che compare nell istruzione di scrittura Esempio: print y 15 16

Istruzioni Dichiarative Variabili Forniscono una lista contenente i nomi scelti per le variabili e i tipi corrispondenti Convenzione: indicare tutte le variabili Necessarie nei linguaggi di programmazione Nel programma si fa riferimento agli indirizzi delle aree di memoria in cui sono conservati i dati Variabile (1) Nome simbolico per denotare un area di memoria e, tramite essa, il valore contenuto Contiene una rappresentazione di un oggetto su cui l algoritmo opera Memorizzazione di un valore Istruzioni di ingresso Istruzioni di assegnamento 17 18 Variabile (2) Variabile (3) Caratterizzata da Un nome Identificatore Un valore Un tipo Attributo che specifica l insieme di valori che la variabile può assumere 19 Rappresenta una locazione di memoria del computer, contraddistinta da uno specifico indirizzo, che contiene il valore su cui applicare le istruzioni del programma Un identificatore denota una coppia Posizione di memoria Quantità in essa contenuta Una limitazione nel rappresentare dati di tipo numerico o alfanumerico viene dalle dimensioni limitate della memoria 20

Tipo (1) Tipo (2) Attributo di una variabile che ne specifica ed individua: L insieme dei valori che la var. può assumere L insieme di operazioni effettuabili sulla var. Il modo con cui ci si può riferire alla var. Per parlarne in termini formali è utile introdurre il concetto di algebra di dati Esempio: Stipendio: numero intero non negativo Tripla T = <D, C, O> Dominio Costanti Operatori Funzioni Predicati 21 22 Tipo dei complessi Dominio Tipo: Esempio Sottoinsieme dei numeri complessi Costanti Parte reale Parte immaginaria Operazioni Addizione + C : (complesso X complesso) complesso Non ci interessiamo della rappresentazione interna dei valori e delle operazioni 23 Dichiarazione di Tipo: Utilità Definizione del dominio di applicazione del programma Comprensione funzionamento dell algoritmo Verifica correttezza del programma Compilatore Programmatore Definizione dello spazio di memoria necessario Rappresentazione interna Esempio: 18 e 18.0 24

Tipi Standard Tipi più comuni di variabili Interi Reali Istruzioni Nella maggior parte dei linguaggi di programmazione sono presenti diverse tipologie di istruzioni Logici Ingresso/Uscita Caratteri Valori rappresentabili limitati Assegnamento Strutture di controllo Dimensioni della memoria che dovrà ospitarne le variabili Tipo numerico Tipo alfanumerico 25 26 Istruzioni di Ingresso Permettono di acquisire informazioni dall esterno, inserendole in opportune variabili del programma Attivano un operazione di lettura Assegnazione del valore letto su un supporto di memorizzazione esterno schede, nastri e dischi magnetici, ad un area di memoria individuata dal nome che compare nell istruzione di lettura Esempio: get x Assegnamento di valori a variabili Avviene in 2 passi Produzione di un nuovo valore Assegnamento di quel valore alla variabile L operazione di assegnamento è indicata con simboli diversi a seconda dei diversi linguaggi di programmazione := (Pascal) = (C, C++, Java,...)... Confusione fra uguaglianza e assegnazione 27 28

Assegnamento Per produrre il valore si possono usare espressioni (aritmetiche o logiche) il cui risultato è un singolo valore Il valore prodotto dall espressione a destra viene memorizzato nell area di memoria riservata alla variabile a sinistra La memorizzazione del valore ottenuto nella locazione di memoria riservata alla variabile implicata nell assegnamento rimpiazza qualunque valore contenuto in precedenza Legami degli Identificatori Identificatore Posizione di memoria Statico Identificatore Valore Dinamico nel programma Posizione di Memoria denota staticamente contiene Identificatore Valore denota dinamicamente 29 30 Legami degli Identificatori Assegnamento Computo dei Valori La dinamicità del legame identificatore valore consente di scrivere senza contraddizioni assegnazioni del tipo x = x + 1 Alla posizione di memoria identificata da x assegna il valore ottenuto calcolando la somma del valore già memorizzato e 1 Le operazioni di assegnazione possono implicare calcoli complessi Espressioni aritmetiche Espressioni logiche e predicati 31 32

Espressioni Aritmetiche Espressioni Logiche o Predicati Formate da associazioni di variabili e costanti secondo regole opportune e attraverso l applicazione di definiti operatori numerici Simbolo + -, *,, /,, DIV, **, ˆ, Tipo di valore cui dà luogo Numerico Operazione Somma Differenza Prodotto Divisione Potenza Usate in: Assegnazioni fatte ad una variabile logica Strutture di controllo che comportano la verifica di condizioni NOT, AND, OR = < > Simbolo Tipo di valore cui dà luogo Logico Operazione Connettivi logici Uguaglianza Diversità Minoranza Maggioranza Minore o uguale Maggiore o uguale 33 34 Costanti Dati il cui valore viene definito inizialmente e non varia per tutta l esecuzione del programma Accessibili solo in lettura Garanzia nell uso Impossibile eseguire assegnazioni sugli identificatori corrispondenti 35