Introduzione alla programmazione

Documenti analoghi
UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Introduzione alla programmazione

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

ELABORAZIONE DELLE INFORMAZIONI (ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE)

Introduzione agli Algoritmi

Rappresentazione con i diagrammi di flusso (Flow - chart)

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

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

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

Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota

Diagrammi a blocchi 1

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

Formalismi per la descrizione di algoritmi

Diagrammi a blocchi 1

Algoritmi e Programmi

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

Dispensa di Informatica II.1

CONCETTI FONDAMENTALI

Cosa si intende con stato

Corso di Informatica di Base

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Lez. 5 La Programmazione. Prof. Salvatore CUOMO

Modulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1

Programmazione I. Fondamenti di programmazione. Problemi, Algoritmi, Diagrammi di flusso

Cosa è l Informatica?

Algoritmi e soluzione di problemi

L ELABORATORE ELETTRONICO

PROBLEMI ALGORITMI E PROGRAMMAZIONE

3. Indicare cosa sta a significare la figura geometrica del rombo in un diagramma a blocchi

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

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

MODULO 07. La soluzione dei problemi mediante gli algoritmi

Università degli Studi di Brescia INFORMATICA. Dipartimento di Ingegneria Meccanica e Industriale

Matlab. Istruzioni condizionali, cicli for e cicli while.

I Linguaggi di Programmazione

Introduzione alla programmazione strutturata

Lezione 5. La macchina universale

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

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Fondamenti di Informatica

Unità di apprendimento 6. Dal problema al programma

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

Unità di apprendimento 6. Dal problema al programma

Dall algoritmo al programma

Algoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo

Rappresentazione degli algoritmi

Informatica. Informatica. Problema - soluzione. Algoritmi, dati e programmi. Introduzione ai concetti di: Distinguiamo tra: problema

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

Teoria dell Informazione

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

Linguaggi, Traduttori e le Basi della Programmazione

Algoritmi, linguaggi e programmi. Emilio Di Giacomo e Walter Didimo

Come ragiona il computer. Problemi e algoritmi

unità didattica 3 Le strutture condizionali e le strutture iterative

Lezione 6 Introduzione al C++ Mauro Piccolo

L ELABORATORE ELETTRONICO!

Linguaggi di Programmazione

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

FONDAMENTI DI INFORMATICA

Il linguaggio di programmazione Python

LA METAFORA DELL UFFICIO

Il Software programmabili programma algoritmo

Elementi di programmazione

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

Programmazione e algoritmi

Linguaggi di Programmazione

Introduzione al Linguaggio C Corso di Informatica Laurea in Fisica

I costrutti forniti dal linguaggio si dividono in corrispondenti classi di istruzioni

Problemi, algoritmi, calcolatore

Concetti di base dell ICT

Cos è la programmazione?

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.

Descrizione di un algoritmo

RAPPRESENTAZIONE GLI ALGORITMI NOTAZIONE PER LA RAPPRESENTAZIONE DI UN ALGORITMO

DESCRIZIONI RIGOROSE c7

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

Corso di Fondamenti di Informatica Linguaggi di Programmazione

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

LABORATORIO DI INFORMATICA

Algoritmi e diagrammi di flusso versione biennio

Codice binario. Codice. Codifica - numeri naturali. Codifica - numeri naturali. Alfabeto binario: costituito da due simboli

Strutture di Controllo

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Modulo 1 Concetti di base della Tecnologia dell Informazione

DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione

Analisi e Programmazione

Linguaggi di programmazione - Principi e paradigmi 2/ed Maurizio Gabbrielli, Simone Martini Copyright The McGraw-Hill Companies srl

PROBLEMI E ALGORITMI VESPIA CATERINA LICEO CLASSICO AGLI ANGELI

Elaboratore Elettronico

Algoritmi e Linguaggi

INFORMATICA Algoritmi come formalizzazione della risoluzione di un problema

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Algoritmi e diagrammi di flusso

Il concetto di calcolatore e di algoritmo

FONDAMENTI DI INFORMATICA

Rappresentazione degli algoritmi

Transcript:

Introduzione alla programmazione

Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste nell individuazione di un procedimento adeguato a risolvere il problema Si scompone infine il procedimento con l individuazione delle operazioni necessarie per il calcolo di risultati intermedi

Dal problema al programma Per realizzare un programma che risolva un problema è necessario quindi: Individuare i dati in ingresso e in uscita Individuare un procedimento adeguato Scomporre il procedimento in una sequenza di azioni elementari ed univoche

Algoritmi Per indicare la scomposizione del problema viene spesso utilizzato il termine algoritmo: Insieme finito di istruzioni elementari univocamente interpretabili che, eseguite in un ordine stabilito, forniscono la soluzione di un problema in un numero finito di passi I flow-chart sono un linguaggio utile per rappresentare e descrivere gli algoritmi

Flow-chart Il flusso di esecuzione può essere rappresentato graficamente con un diagramma di flusso (flow-chart): Elimina le ambiguità utilizzando una logica di selezione ambivalente e linee di flusso univoche Si basa su pochi simboli E un linguaggio universale

Esempio di Flow-chart Dati tre numeri a, b, c stampare la somma

Flow- chart: i simboli Ovale inizio e fine diagramma Parallelogrammo, indica dati in input e output Rettangolo indica operazione di calcolo Rombo indica la scelta (vero/falso) al verificarsi di una condizione V start end operazione condizione F

Flow-chart Innanzitutto un programma, e di conseguenza una sua rappresentazione grafica, deve sempre avere un inizio ed una fine Tra l inizio e la fine vi deve sempre essere almeno una istruzione

Flow-chart La risoluzione di un problema consiste nell esecuzione ordinata di una sequenza di operazioni L ordine nell esecuzione delle istruzioni è fondamentale Nei flow-chart è garantito dall orientamento delle frecce che collegano i blocchi

Flow-chart A volte le azioni vanno eseguite sempre. In tal caso diciamo che si tratta di operazioni non condizionali

Flow-chart Possono essere presenti istruzioni condizionali, la cui esecuzione dipende cioè da scelte effettuate in base ai dati Concettualmente, possiamo immaginare che il flusso di esecuzione si ramifichi (in base ad una condizione decido se eseguire un operazione OPPURE un altra)

Costrutti di programmazione Esistono alcuni costrutti di base tipici dei linguaggi di alto livello di programmazione Qualsiasi algoritmo rappresentabile con un flow-chart strutturato può essere tradotto in un programma utilizzando appena tre strutture: Sequenza Selezione Iterazione

Sequenza Le istruzioni sono una di seguito all'altra Istruzione S1 Istruzione S2 Istruzione S3

Selezione È un costrutto tipico che si usa per scegliere tra due alternative Il blocco else è opzionale if (condizione) then V condizione F V condizione fare A [else A B A F fare B end]

Iterazione Per poter ripetere lo stesso gruppo di istruzioni più volte, è necessario utilizzare un altro costrutto: il ciclo (o loop) E necessario definire una condizione per stabilire quante volte ripetere il blocco di istruzioni

Iterazione Un blocco può essere eseguito fintanto che una certa condizione è verificata ed interrompere l esecuzione non appena questa diventa falsa Se allo stato iniziale la condizione è falsa, le istruzioni non vengono mai eseguite, questo è detto ciclo ad ingresso controllato

Iterazione: while Il costrutto while realizza un ciclo ad ingresso controllato while (condizione) fare A

Iterazione Un blocco può essere eseguito anche fino a quando non si verifica una condizione prestabilita: questo è detto ciclo ad uscita controllata In questo caso prima viene eseguita un iterazione e poi controllato il valore di verità della condizione

Iterazione: do while Il costrutto do-while (o repeat-until) realizza un ciclo ad uscita controllata do fare A while (condizione)

Iterazione: for Un terzo costrutto viene impiegato se è noto il numero di iterazioni da eseguire for (Val_iniziale; Cond;Incremento) fare A; Condizione c<10 F V Fare A incrementa c

Linguaggi di programmazione Un linguaggio di programmazione è un linguaggio formale costituito da simboli (alfabeto), combinati in sequenze in base a regole precise (sintassi) e a cui viene associato un determinato significato (semantica) Le famiglie di linguaggi Linguaggi assembler Linguaggi funzionali Linguaggi imperativi (BASIC) Linguaggi a oggetti (Java) etc

Linguaggi di programmazione Un calcolatore elettronico (PC) utilizza esclusivamente l alfabeto binario I linguaggi consentono quindi di descrivere le operazioni da far compiere al calcolatore in maniera comprensibile all'uomo (digitando istruzioni scritte ad esempio in linguaggio Java) che verranno poi tradotte in binario (01010101) E necessaria un operazione di traduzione dal linguaggio di programmazione al codice comprensibile dal calcolatore, effettuata per mezzo di opportuni programmi traduttori Questi traduttori si dividono in due categorie: compilatori e interpreti

Le informazioni nel calcolatore I calcolatori utilizzano esclusivamente numeri, mentre il linguaggio (ed il cervello umano) gestisce più facilmente i nomi I linguaggi di programmazione permettono quindi di fare riferimento ai dati utilizzando dei nomi, detti variabili Una variabile può essere vista come un contenitore avente un nome ed un contenuto Il nome variabile vuole enfatizzare il fatto che il contenuto può cambiare.

Le variabili

Tipi di dato Il contenuto di una variabile all interno del calcolatore è una sequenza di bit occorre determinare quale valore contiene la variabile, cioè come interpretare tali bit. I linguaggi di programmazione associano ad ogni variabile informazioni anche sul tipo di valore che essa contiene. L attribuzione di un significato particolare alla sequenza binaria è fatto attraverso il concetto di tipo di dato

Tipi di dato Un insieme minimo di tipi di dato che ci interessa risulta composto da: numeri interi numeri in virgola mobile caratteri stringa che può essere vista come una sequenza di caratteri In genere sono disponibili strumenti che consentono di convertire un dato da un tipo ad un altro

Vettori Una variabile contiene solo un dato mentre molti algoritmi gestiscono una serie di dati ordinati e dello stesso tipo. In questo caso si utilizzano i vettori, un insieme ordinato di variabili dello stesso tipo Per accedere ad un elemento specifico se ne indica la posizione Esempio un vettore a di interi: a = [1, 4, 33, 12, 42, 66]