La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Programmazionedei Calcolatori Elettronici Prof. Eugenio Chiriaco Lezione 1 I.T.I.S. A. Volta di Lodi AS 2010-2011.

Presentazioni simili


Presentazione sul tema: "Programmazionedei Calcolatori Elettronici Prof. Eugenio Chiriaco Lezione 1 I.T.I.S. A. Volta di Lodi AS 2010-2011."— Transcript della presentazione:

1 Programmazionedei Calcolatori Elettronici Prof. Eugenio Chiriaco Lezione 1 I.T.I.S. A. Volta di Lodi AS

2 2 Contenuti Dal problema all’algoritmo Dal problema all’algoritmo Diagramma a blocchi Diagramma a blocchi Strutture di controllo fondamentali Strutture di controllo fondamentali Esempi di algoritmi Esempi di algoritmi Concetto di Pseudocodifica Concetto di Pseudocodifica Concetto di linguaggio di programmazione Concetto di linguaggio di programmazione Esercizi Esercizi

3 3 Problema e algoritmo ● Problema ● Il nostro obiettivo è risolvere un problema ● Algoritmo ● E’ il nostro strumento per risolvere un problema

4 4 Problema ● Per formalizzare un problema abbiamo bisogno: ● Della sua descrizione ● Dei dati di ingresso ● Dei risultati che lo risolvono

5 5 Esempio di Problema ● Risoluzione equazione di secondo grado: ● Dati in ingresso: tre numeri (i coefficienti) (i coefficienti) ● Risultati: le due soluzioni se reali, altrimenti stampa di un messaggio

6 6 ● Trovare il massimo fra tre numeri: ● Dati in ingresso: tre numeri ● Risultati: stampa del numero con il valore massimo Esempio di Problema

7 7 ● Ricerca del numero di un utente in un elenco telefonico: ● Dati in ingresso: un insieme ordinato di coppie (nome, num. tel.) ed un nome da ricercare ● Risultati: il numero telefonico corrispondente all’utente cercato se presente nell’insieme, altrimenti stampa di un messaggio Esempio di Problema

8 8 Algoritmo ● Un algoritmo è una sequenza ordinata e finita di passi semplici che hanno lo scopo di portare a termine un compito più complesso ● In un modo più formale, un algoritmo è una sequenza ordinata e finita di istruzioni che a partire da una serie di dati in ingresso, dopo un tempo finito, produce una serie di risultati in uscita. ● Il termine algoritmo deriva dal nome del matematico arabo Muhammad ibn Mūsa 'l- Khwārizmī, che pubblicò, tra gli altri, il libro dal titolo Kitāb al-djabr wa 'l-muqābala dal quale prende le origini la parola Algebra

9 9 Algoritmo Al-Khwarizmi

10 10 Linguaggi per la descrizione di algoritmi ● Linguaggi naturali (italiano, inglese, spagnolo, ecc…) ● Linguaggi visuali (diagramma a blocchi, ecc…) ● Pseudocodice (linguaggio che si avvicina molto ai linguaggi di programmazione) ● Linguaggio di programmazione

11 11 Diagramma a blocchi ● Un diagramma a blocchi (flow chart) è un linguaggio formale di tipo grafico per rappresentare algoritmi ● Esso consente di descrivere le differenti operazioni sotto forma di uno schema in cui i differenti passi dell’algoritmo vengono rappresentati da simboli grafici detti blocchi elementari che sono collegati tra loro tramite frecce che ne indicano la cronologia

12 12 ● I 5 tipi di blocchi elementari che vengono utilizzati per descrivere i singoli passi di un algoritmo sono: Blocco iniziale Blocco finale Blocco di ingresso/uscita Blocco azione Blocco di controllo Diagramma a blocchi

13 13 Sequenza Sequenza ● Per rappresentare una sequenza di istruzioni, ovvero una serie di operazioni che devono essere eseguite una di seguito all’altra in base all’ordine con il quale sono state definite Strutture di Controllo

14 14 Selezione Selezione ● Per rappresentare la selezione di due percorsi diversi al verificarsi o meno di una data condizione Strutture di Controllo

15 15 Ciclo Ciclo Per rappresentare la ripetizione di una stessa sequenza di istruzioni Strutture di Controllo

16 16 ● Algoritmo del distributore di caramelle

17 17 ● Algoritmo della telefonata

18 18 ● Algoritmo per determinare la somma di due interi

19 19 ● Algoritmo per determinare se il valore X è incluso nell’intervallo con estremi A e B

20 20 ● Algoritmo per calcolare la somma dei primi X numeri. Es. se X = 5 allora SOMMA = =15

21 21 ● Algoritmo per risolvere l’equazione di secondo grado

22 22 ● Problema: trovare il massimo tra 3 numeri ● Dati in ingresso: i numeri X, Y e Z ● Risultati: stampa del massimo tra X, Y e Z

23 23 Esercizio Scrivere un algoritmo per stampare la successione Scrivere un algoritmo per stampare la successione dei primi n numeri pari con n dato in input. dei primi n numeri pari con n dato in input. Scrivere un algoritmo che verifica se un dato numero è multiplo di 3. Scrivere un algoritmo che verifica se un dato numero è multiplo di 3. Scrivere un algoritmo che verifica se un dato numero è pari. Scrivere un algoritmo che verifica se un dato numero è pari. Scrivere un algoritmo per calcolare la media di n Scrivere un algoritmo per calcolare la media di n numeri interi letti da tastiera. numeri interi letti da tastiera.

24 24 Esercizio Scrivere un algoritmo per calcolare il fattoriale di Scrivere un algoritmo per calcolare il fattoriale di un numero un numero Scrivere un algoritmo che calcola la somma dei Scrivere un algoritmo che calcola la somma dei primi X numeri pari (con X dato in input) primi X numeri pari (con X dato in input) esempio se X=4  somma= esempio se X=4  somma= Scrivere un algoritmo per stampare la successione dei primi n numeri di Fibonacci con n dato in input Scrivere un algoritmo per stampare la successione dei primi n numeri di Fibonacci con n dato in input esempio se n=9  1,1,2,3,5,8,13,21,34 esempio se n=9  1,1,2,3,5,8,13,21,34

25 25 Esercizio Scrivere un algoritmo per calcolare il massimo ed il minimo di n interi letti da tastiera. Scrivere un algoritmo per calcolare il massimo ed il minimo di n interi letti da tastiera. Scrivere un algoritmo per il calcolo del coefficiente binomiale. Scrivere un algoritmo per il calcolo del coefficiente binomiale.

26 26 Esempio di pseudocodice Problema :Confronto aree di triangoli INIZIO Leggi(h1) Leggi(b1) A1 = b1*h1 / 2 Leggi(h2) Leggi(b2) A2 = b2*h2 / 2 SE A1 > A2 ALLORA Scrivi(“L’area del primo è maggiore dell’area del secondo”) ALTRIMENTI Scrivi(“L’area del secondo è maggiore o uguale all’area del primo”) FINE

27 27 Linguaggi di programmazione ● Se si sceglie come esecutore di un algoritmo un calcolatore elettronico allora il nostro algoritmo deve essere codificato in un linguaggio di programmazione che permette di impartire comandi non ambigui all’elaboratore (quindi non si possono utilizzare i linguaggi naturali) ● I linguaggi di programmazione sono linguaggi formali costituiti (come tutti gli altri linguaggi) da un dizionario dei termini (lessico) e da rigide regole grammaticali (sintassi) ● Per utilizzare un linguaggio di programmazione bisogna, quindi, conoscere il suo lessico, la sua sintassi e la sua semantica (ovvero il significato dei comandi impartiti all’elaboratore)

28 28 Linguaggi di programmazione ● Un programma è quindi la codifica di un algoritmo in un linguaggio di programmazione ● Esistono alcune centinaia di linguaggi di programmazione (Basic, Fortran, Pascal, C, C++, Java, C#, …) ● Alcuni di questi sono general purpose altri invece sono più adatti per la risoluzione di specifiche classi di problemi ● I linguaggi vengono anche classificati come linguaggi di alto livello (più vicini all’uomo o meno dipendenti dall'architettura del calcolatore) e di basso livello (più vicini al calcolatore elettronico)

29 29 Esempio di programma in linguaggio Java public class HelloWorld { public static void main(String[] args) { System.out.println("Hello world!"); }

30 30 Esempio di programma in linguaggio C #include int main() { printf("Hello World!"); printf("\n"); }

31 31 Il linguaggio di programmazione C ● Fu ideato nei Laboratori Bell della AT&T nel 1972 da Dennis Ritchie ● Il C viene classificato come linguaggio di alto livello ● Il C si basa su poche istruzioni chiave (lessico ridotto) molto semplici che vengono eseguite con elevate performance dal computer ● La grammatica del C è “molto libera” e flessibile permettendo di scrivere istruzioni complesse e potenti in poche righe di codice

32 32 Fasi per lo sviluppo del software Fasi per lo sviluppo del software PROBLEMAALGORITMOSORGENTE TRADUTTORE ESEGUIBILE DATI Risultato Linguaggio Grafico Linguaggio Di Programmazione Linguaggio della Macchina FILE Sorgente FILE Eseguibile


Scaricare ppt "Programmazionedei Calcolatori Elettronici Prof. Eugenio Chiriaco Lezione 1 I.T.I.S. A. Volta di Lodi AS 2010-2011."

Presentazioni simili


Annunci Google