• Non ci sono risultati.

Introduzione alla

N/A
N/A
Protected

Academic year: 2021

Condividi "Introduzione alla"

Copied!
46
0
0

Testo completo

(1)

Introduzione alla programmazione

Prof. Daniele Contarino

(2)

❑Introduzione

❑Dal problema all’algoritmo

❑Implementazione degli algoritmi

❑ I compilatori e gli ambienti di sviluppo integrato

Indice degli argomenti

(3)

Cosa significa per te la parola

INFORMATICA ?

Domanda

(4)

INFORMATICA è l’unione di due parole

INFORMAZIONE AUTOMAZIONE

+

Introduzione

(5)

Con il termine Informatica si intende la scienza che studia il trattamento automatico delle

informazioni tramite gli elaboratori

Introduzione

(6)

Informatica in inglese viene tradotto in Computer Science

ICT (Information and

Communication Technology) descrive l’industria e i servizi

legati all’informatica e

Introduzione

(7)

Dati in ingresso

INPUT

Elaboratore

Dati in uscita OUTPUT

IMPOSTAZIONI INTERNE

Struttura di un elaboratore

(8)

Nastro infinito

PROGRAMMA

Unità di elaborazione

Sinistra Destra

Testina di

lettura/scrittura

DATI

Macchina di Turing (1936)

(9)

Macchina di Turing (1936)

(10)

Per iferica di Input

CPU

Memoria Centrale

ALU

UC

Periferica d i output

Registri

Cache

Architettura di Von Neumann (1945)

(11)

Esercizio Macchina di Turing con Doodle di Google

https://www.google.com/doodles/

alan-turings-100th-birthday

Macchina di Turing

(12)

✓ Introduzione

❑Dal problema all’algoritmo

❑Implementazione degli algoritmi

❑ I compilatori e gli ambienti di sviluppo integrato

Indice degli argomenti

(13)

Introduzione alla programmazione 13 di 47 Daniele Contarino

il termine Algoritmo deriva dalla

latinizzazione del nome di uno dei più importanti matematici di sempre, l’arabo Mohammed ibn Musà al-Khuwarizmi

(Corasmia, ~ 780 d.c. – ~ 850 d.c.).

Esso diffuse in occidente il sistema di numerazione indo-arabico ed

introdusse la notazione posizionale e il numero zero.

Algoritmo: storia e significato

(14)

Con Algoritmo intendiamo una sequenza di due o più operazioni elementari che conduce a un ben determinato risultato in un tempo finito.

Un algoritmo per essere definito tale deve possedere le seguenti proprietà:

1. Finitezza: le istruzioni non possono essere infinite.

2. Non ambiguità: si raggiunge un solo risultato con più passaggi, non più risultati con un solo algoritmo.

3. Generalità: un algoritmo non risolve un singolo problema, ma una gamma di problemi.

4. Correttezza: le istruzione devono portare alla soluzione giusta

Definizione di Algoritmo

(15)

Introduzione alla programmazione 15 di 47 Daniele Contarino

Benché gli algoritmi vengono eseguiti dai computer, la loro

realizzazione è una prerogativa (fino ad ora) esclusiva dell’essere umano.

Il programmatore e l’analista sono quei professionisti che, tramite:

• La conoscenza (del problema, del contesto e dei strumenti a sua disposizione);

• I processi creativi;

• L’esperienza;

• I metodi di studio e di lavoro;

riescono a sviluppare l’algoritmo per la risoluzione del problema.

Definizione di Algoritmo

(16)

NO!

Esiste un metodo uguale per tutti, sempre valido ed automatico per

definire un algoritmo?

(17)

Introduzione alla programmazione 17 di 47 Daniele Contarino

Benché non esista un metodo sempre valido per la realizzazione degli algoritmi, esistono delle "buone pratiche" che possono indicare la

strada da seguire per l’analisi del problema e la stesura del relativo algoritmo

Realizzare un algoritmo

(18)

"Dividi e comanda" è una locuzione latina che descrive una strategia politica adottata dai tiranni che, per

controllare il popolo, risulta utile dividerlo e mettere in rivalità le varie fazioni.

Per la risoluzione dei problemi si usa lo stesso stratagemma, ovvero si cerca di dividere il problema principale in sotto problemi più semplice, fino ad rendere elementari le operazioni da svolgere.

Divide et impera

(19)

Introduzione alla programmazione 19 di 47 Daniele Contarino

Nello studio di un determinato problema può essere utile (se non fondamentale) porsi tre domande:

• Quali dati riceve in ingresso il mio algoritmo?

• Qual è il risultato atteso?

• Qual è la correlazione tra i

dati in ingresso e quelli in uscita?

Analizzare i dati

(20)

Realizziamo il nostro primo algoritmo, ovvero cuciniamo una torta!

L’algoritmo della torta

(21)

Introduzione alla programmazione 21 di 47 Daniele Contarino

Dati in ingresso:

Farina, zucchero semolato,

zucchero a velo, latte, uova, cioccolato

Dati in uscita attesi:

Una torta (ma va?!)

L’algoritmo della torta

(22)

Inizio;

Prendere la farina, lo zucchero, il latte, le uova e il cioccolato;

Prendere una terrina;

Versare nella terrina la farina, lo zucchero e il latte;

Mescolare;

Versare nell’impasto le uova;

Mescolare;

Dividere in due l’impasto;

L’algoritmo della torta

(23)

Introduzione alla programmazione 23 di 47 Daniele Contarino

Nel secondo impasto aggiungere il cioccolato;

Mescolare;

Prendere una teglia da forno;

Versare il primo impasto;

Versare il secondo impasto;

Cuocere la torta a 180 gradi Celsius fino a quando non sarà cotta;

Spolverare la torta con lo zucchero a velo;

Servire;

Fine.

L’algoritmo della torta

(24)

Oltre al metalinguaggio (la tecnica con cui abbiamo descritto l’algoritmo della torta) esiste un metodo grafico molto usato che è quello del Flow Chart

(diagramma di flusso)

Flow Chart

(25)

Introduzione alla programmazione 25 di 47 Daniele Contarino

Flow Chart

Inizio o fine operazione

Operazione in input o output Operazione interna

Scelta

Flusso dell'algoritmo

(26)

Flow Chart

Prendere la farina, lo zucchero, il latte, le uova e il cioccolato

INIZIO

Versare nella terrina la farina, lo zucchero e il latte

Prendere la terrina

Mescolare

IN

IN

(27)

Introduzione alla programmazione 27 di 47 Daniele Contarino

Flow Chart

Mescolare

Dividere in due l’impasto

Versare il cioccolato nel secondo impasto

Mescolare Versare le uova

(28)

Flow Chart

La torta è cotta?

Versare il primo impasto

Inserire nel forno a 180 °C

Aspetta Versare il secondo impasto

NO

SI

(29)

Introduzione alla programmazione 29 di 47 Daniele Contarino

Flow Chart

Spolverare la torta con lo zucchero a velo

Servire la torta

FINE

Prendere lo zucchero a velo

IN

OUT

(30)

✓ Introduzione

✓ Dal problema all’algoritmo

❑Implementazione degli algoritmi

❑ I compilatori e gli ambienti di sviluppo integrato

Indice degli argomenti

(31)

Introduzione alla programmazione 31 di 47 Daniele Contarino

Una volta definito l’algoritmo, il programmatore tramite l’uso di un linguaggio di programmazione

(e tutti gli annessi e connessi) riesce ad implementare l’algoritmo ed

a realizzare il programma che potrà essere eseguito dal

computer.

Dall’algoritmo al programma

(32)

Un linguaggio di programmazione, similmente a un linguaggio umano, è un insieme formato da regole

sintattiche e lessicali che possono essere sia comprese dalle persone che essere convertite in codice macchina.

Il linguaggio di programmazione

(33)

Introduzione alla programmazione 33 di 47 Daniele Contarino

La scelta di un linguaggio dipende da diversi fattori, tra cui:

• Caratteristiche intrinseche dell’algoritmo;

• Piattaforma di destinazione;

• Eventuali costi di licenza/IDE;

• Conoscenza più o meno approfondita del programmatore.

Quale linguaggio scegliere?

(34)

Classificazione di alcuni linguaggi per paradigma

• Programmazione strutturata (C, Pascal);

• Programmazione orientata agli oggetti (C++, Java, C#, .NET);

• Programmazione funzionale (Haskell, Schema, LISP);

• Programmazione procedurale (Fortran);

Quale linguaggio scegliere?

(35)

Introduzione alla programmazione 35 di 47 Daniele Contarino

Attualmente ci sono alcune centinaia di linguaggi di

programmazione differenti.

Ecco la top 10 dei linguaggi più usati al mondo.

Fonte: https://www.tiobe.com/tiobe-index/

Quale linguaggio scegliere?

Pos. Programming Language 1 Java

2 C

3 C++

4 C#

5 Python 6 JavaScript

7 PHP

8 Visual Basic .NET 9 Assembly language 10 Ruby

(36)

✓ Introduzione

✓ Dal problema all’algoritmo

✓ Implementazione degli algoritmi

❑ I compilatori e gli ambienti di sviluppo integrato

Indice degli argomenti

(37)

Introduzione alla programmazione 37 di 47 Daniele Contarino

Una volta scritto il programma in un linguaggio di programmazione, esso deve essere tradotto nel codice

comprensibile al computer.

Questa traduzione avviene in due fasi:

1. Compilazione 2. Linkaggio

Il processo di generazione del programma

(38)

Una volta scritto il programma nel linguaggio di programmazione

desiderato (codice sorgente), esso verrà "dato in pasto" ad un

compilatore capace di leggere quel specifico linguaggio e

genererà un file in un linguaggio intermedio chiamato file oggetto

La compilazione

(39)

Introduzione alla programmazione 39 di 47 Daniele Contarino

Per realizzare il file oggetto, il compilatore prima deve effettuare due analisi:

1. Analisi lessicale (scanner)

Il compilatore verifica che le tutte le parole del codice (token) sorgente siano compatibili con linguaggio di

programmazione;

2. Analisi sintattica e semantica (parser)

Il compilatore controlla se la concatenazione dei token rispetti le regole del compilatore

La compilazione

(40)

Dopo la fase di compilazione verrà

prodotto il file oggetto, ovvero un file intermedio.

Ora, per realizzare il programma eseguibile, è necessario unire il file oggetto con le librerie (frammenti di

codice comuni già scritti che permettono di usare il video, la tastiera, etc).

Questa fase si chiama fase di linkaggio e viene svolta dal linker

Il linkaggio

(41)

Introduzione alla programmazione 41 di 47 Daniele Contarino

Il processo di compilazione linkaggio

Codice sorgente File oggetto

File eseguibile

Librerie Compilazione

Analisi lessicale Analisi semantica

Linkaggio

(42)

L’attività di sviluppo di un software è un’attività piuttosto complessa.

Benché per realizzare un programma potrebbe bastare il blocco note e il compilatore + linker, per programmi medio – grandi c’è bisogno di altri strumenti per facilitare il lavoro di analisi e per lavorare in team.

Gli ambienti di sviluppo integrato

(43)

Introduzione alla programmazione 43 di 47 Daniele Contarino

Gli ambienti di sviluppo integrato (Integrated development

environment – IDE) sono dei software specializzati per lo

sviluppo dei programmi, integrati con altri strumenti accessori che agevolano l’attività di correzione degli errori (debug) e la

manutenzione nel tempo

Gli ambienti di sviluppo

IDE

Scrivi

Debug

Compila

Esegui

Documenta

(44)

Negli ambienti di sviluppo integrati solitamente troviamo:

• L’editor

• Uno o più compilatori

• Il debugger

• Strumenti di deploy

• Gestione dei Unit test

• Strumenti per il controllo di versione

• Piccoli strumenti per l’amministrazione di database

Gli ambienti di sviluppo

(45)

Introduzione alla programmazione 45 di 47 Daniele Contarino

Ecco alcuni dei più noti ambienti di sviluppo

Gli ambienti di sviluppo

(46)

Introduzione alla programmazione

Prof. Daniele Contarino

Questa presentazione è disponibile su danielecontarino.it

Tutti i marchi riportati appartengono ai legittimi proprietari; marchi di

Riferimenti

Documenti correlati

RICOTTA MAGRA (22%), amarene (14%), FARINA DI GRANO tenero, acqua, zucchero, UOVO INTERO, olio di colza, grasso vegetale(palma, cocco), LATTE INTERO IN polvere, AMIDO di

Ingredienti sono: farina selezionata macinata a pietra, latte veneto, burro biologico con l'82% di grassi e tracce di lattosio inferiore all'1%, zucchero italiano non raffinato,

Ingredienti: Farina di grano tenero tipo “0”, zucchero, uova fresche, burro (latte), amido di mais, olio di girasole, caffè in polvere (1%), latte parzialmente screma- to,

Dopodichè trasferiamo il nostro composto negli stampini per muffin e, infine, cuociamo in forno a 180 gradi per 30 minuti.. Se volete potete decorare con delle

Ingredienti: farina di FRUMENTO, UOVA fresche, zucchero, crema gianduia 14% [zucchero, LATTE intero, acqua, cioccolato gianduia 10,4% (zucchero, NOCCIOLE 30%, cacao magro, pasta

Cioccolato al LATTE 31% (zucchero, LATTE intero in polvere, burro di cacao, pasta di cacao 16%, emulsionante: lecitina di SOIA, aroma vaniglia), farina di GRANO

cioccolato, riunite le uova, lo zucchero, la farina, l’acqua ed il lievito sciolto nel latte nella ciotola dell’impastatrice dotata di gancio.. Iniziate a far lavorare

Divertenti, gustose e in grado di coinvolgere tutti i sensi, ecco alcune idee golose per la festa degli innamorati 2022 targate “I love fruit and veg from Europe”, il