La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Sommario zCaratteristiche di un calcolatore elettronico yCapacità del calcolatore zCompiti del programmatore yCompetenze yAbilità zAnalisi e programmazione.

Presentazioni simili


Presentazione sul tema: "Sommario zCaratteristiche di un calcolatore elettronico yCapacità del calcolatore zCompiti del programmatore yCompetenze yAbilità zAnalisi e programmazione."— Transcript della presentazione:

1 Sommario zCaratteristiche di un calcolatore elettronico yCapacità del calcolatore zCompiti del programmatore yCompetenze yAbilità zAnalisi e programmazione zLinguaggi di programmazione zProgrammazione strutturata zVBA ed Excel

2 Caratteristiche di un calcolatore - 1 zE una macchina, costituita da circuiti elettronici digitali e da componenti elettromeccaniche, ottiche e magnetiche zE velocissimo, nel compiere le operazioni per le quali è stato progettato zE puntuale, nellapplicare le regole che conosce zE duttile e si adatta bene ad eseguire nuove tecniche, purché questo gli venga spiegato in modo dettagliato e non ambiguo zHa una buona memoria, estremamente ampia ed organizzata in modo razionale

3 Caratteristiche di un calcolatore - 2 zNon è intelligente, qualunque sia laccezione di questo termine non è adatta a descriverne le caratteristiche zNon è in grado di compiere deduzioni, o ragionamenti di altro tipo in modo autonomo zNon è in grado di comprendere un problema zNon è in grado di capire la soluzione di un problema, né di capire se la soluzione raggiunta è quella giusta

4 Compiti del programmatore zAnalizzare il problema, riducendolo in termini astratti, eliminando ogni componente non indispensabile e formulando un modello del problema stesso zIndividuare una strategia risolutiva e ricondurla ad un algoritmo zCodificare lalgoritmo in modo tale da renderlo comprensibile al calcolatore zAnalizzare il risultato dellelaborazione evidenziando eventuali errori nella formulazione del problema, nella strategia risolutiva, nella codifica dellalgoritmo

5 Competenze ed abilità del programmatore zDeve essere in grado di capire i problemi e schematizzarli, distinguendone le diverse componenti (dati in input, parametri del problema, dati in output) zDeve essere in grado di risolvere problemi mediante un approccio algoritmico, individuando gli aspetti del problema che possono essere risolti reiternado più volte operazioni simili zDeve conoscere i metodi fondamentali di risoluzione dei problemi, gli approcci più comuni, le strade meno convenienti zDeve conoscere le caratteristiche del calcolatore zDeve conoscere il linguaggio con il quale comunicare

6 Capacità del calcolatore zSa memorizzare informazioni zSa distinguere tra informazioni di tipo numerico ed altri tipi di informazione zSa eseguire alcune operazioni elementari: addizione, sottrazione, prodotto e rapporto tra numeri, concatenazione di parole, ecc… zSa eseguire il confronto fra informazioni dello stesso tipo (A B, ecc…) zSa leggere informazioni dallesterno (input) e scrivere informazioni verso lesterno (output) zSa memorizzare sequenze di istruzioni elementari (programma) e le sa eseguire secondo un ordine stabilito nel programma stesso

7 Un esempio elementare zProblema: stampare i primi 10 multipli di x zIl problema è semplice e chiaro: un solo dato in input (un parametro che caratterizza listanza del problema) ed una costante rappresentata dal numero di multipli da stampare zLa strategia risolutiva è la seguente: iniziando dal numero x letto in input, per 10 volte dovremo stampare il numero in nostro possesso e poi sommargli x.

8 Algoritmi zUn elenco di istruzioni è un algoritmo se sono soddisfatte le seguenti proprietà: yFinitezza: ogni istruzione deve essere eseguita in un tempo finito e un numero finito di volte; yGeneralità: ogni algoritmo deve fornire la soluzione per i problemi appartenenti ad una determinata classe; yNon ambiguità: devono essere definiti in modo univoco tutti i passi; devono essere evitati paradossi, contraddizioni ed ambiguità.

9 Algoritmi e Programmi Problema Algoritmo Programma Risultati Analisi Diagramma a blocchi oppure Pseudo-codice Programmazione Linguaggio di programmazione

10 Descrizione degli Algoritmi zUso di un linguaggio generalizzato costituito da strutture linguistiche prive di ambiguità e ridondanze; zUso di proposizioni (espressioni) composte da due parti: yDescrizioni delle operazioni (istruzioni); yDescrizione dei dati su cui eseguire le istruzioni.

11 Dati e Istruzioni zIstruzioni: xIstruzioni operative (producono risultati se eseguite); xIstruzioni di controllo (in funzione del verificarsi di condizioni determinano lesecuzione di alcune istruzioni piuttosto che di altre; xIstruzioni di inizio e fine; xIstruzioni di I/O (trasmissione dati o messaggi fra lambiente esterno e lalgoritmo). zDati: yCostanti (valore invariabile allinterno dellalgoritmo); yVariabili scalari: yVariabili vettoriali: yNota: il valore delle variabili è indeterminato allinizio di un algoritmo

12 Proposizioni e predicati zCome sono espresse le condizioni nelle istruzioni di controllo? yLe istruzioni di controllo verificano se una condizione è vera o falsa. yIl controllo viene espresso per mezzo di predicati. zProposizione: yCostrutto del quale si può dire se è vero o falso. zPredicato yUna proposizione è un predicato se in essa appaiono delle variabili e il valore di verità delle variabili determina il valore di verità della proposizione. xI predicati si esprimono con operatori logici e relazionali. xPredicati Semplici: predicati di un solo operatore (NOT) e una sola variabile; xPredicati Composti: predicati con operatori logici (AND, OR, NOT).

13 Tavole di Verità zTavole di Verità: ydescrivono i valori di verità dei predicati in funzione dei valori di verità delle singole parti. yEsprimono le modalità con cui operano gli operatori relazionali. zEsempi: ABA and B 000 010 100 111 ABA or B 000 011 101 111 Anot A 01 10

14 Linguaggi di programmazione - 1 zUn linguaggio di programmazione è costituito, come ogni altro tipo di linguaggio, da un alfabeto con cui viene costruito un insieme di parole chiave (il vocabolario) e da un insieme di regole sintattiche per luso corretto delle parole del linguaggio zI microprocessori presenti allinterno della macchina sono stati progettati per riconoscere ed eseguire un insieme piuttosto ristretto di istruzioni: il cosiddetto linguaggio macchina zIl linguaggio macchina è basato su una codifica estremamente compatta e poco intuitiva

15 Linguaggi di programmazione - 2 zCodificare un programma utilizzando il linguaggio macchina è assai arduo e richiede una conoscenza approfondita del funzionamento di un particolare calcolatore (o meglio del micorprocessore) zPer ovviare a questo problema, che ha costituito per molti anni un grande limite alla diffusione della programmazione, sono stati sviluppati dei linguaggi di programmazione più evoluti, che si pongono a metà strada tra il nostro linguaggio naturale e il linguaggio macchina zSono semplici e poveri (pcohe parole chiave, poche regole), ma privi di qualsiasi ambiguità

16 Linguaggi di programmazione - 4 zLa programmazione a basso livello è meno intuitiva, ma consente di sviluppare programmi particolarmente efficienti zAd alto livello la programmazione è più naturale e rapida, ma è possibile che non consenta di produrre software efficiente Programmazione a basso livello Programmazione ad alto livello Efficienza del programma Facilità e velocità di programmazione

17 Linguaggi procedurali zIl nostro studio e lapproccio che adotteremo è focalizzato sulluso di un linguaggio procedurale zQuesti linguaggi sono basati su sei istruzioni fondamentali: yAssegna: assegna ad una variabile (ad una locazione di memoria) il valore di unespressione yLeggi: legge in input dallesterno un valore e lo memorizza in una variabile yScrivi: scrive in output il valore di unespressione o di una variabile ySe … allora … altrimenti…: modifica il flusso del programma sulla base del valore di una espressione logica yVai al passo…: modifica il flusso del programma incondizionatamente yFermati: termina lesecuzione del programma

18 Programmazione strutturata - 1 zI programmatori inesperti tendono ad aggrovigliare il programma introducendo numerosi salti privi di regole (spaghetti programming) zE stato dimostrato (teorema fondamentale della programmazione di Jacopini e Bohm) che ogni programma può essere codificato attenendosi esclusivamente a tre strutture fondamentali: Sequenziale IterativaCondizionale

19 Programmazione strutturata - 2 zLe tre strutture possono essere concatenate una di seguito allaltra, oppure nidificate una dentro laltra zNon possono in nessun caso essere intrecciate o accavallate Corretto Sbagliato

20 Microsoft Excel & VBA zMediante VBA è possibile realizzare macro zSe è necessario effettuare ripetutamente un insieme di operazioni elementari (formattazione di celle, applicazione di funzioni, ecc…), è possibile realizzare una macro, che rappresenta in un unico oggetto linsieme di operazioni da effettuare zUna macro può essere realizzata: yMediante autocomposizione yMediante VBA (più potente e versatile)

21 Ambiente di sviluppo zExcel, come del resto ogni applicazione Office, mette a disposizione un ambiente di sviluppo per VBA (attivabile con ALT+F11)

22 Dichiarazione di variabili nomevariabile - deve essere espresso mediante le regole di denominazione standard delle variabili. E generalmente costituito da una sequenza di simboli alfanumerici Indici (facoltativo) – utilizzato per dichiarare un array, eventualmente multidimensionale, di variabili tipo (facoltativo) – associa un tipo alla variabile; può essere byte, boolean, integer, long, currency, single, double, date, string, variant oppure un tipo definito dallutente Dim nomevariabile[(indice)] [As tipo]

23 Tipo di dati byte zTipo di dati utilizzato per contenere numeri interi positivo compresi nellintervallo 0 – 255. zLe variabili di tipo byte vengono memorizzate come numeri singoli, senza segno, a 8 bit (1 byte)

24 Esempio di variabile byte Sub Macro1() Dim prima As Byte prima=1 Range(a1).Select ActiveCell.Value=prima End Sub

25 Tipo di dati Boolean zTipo di dati con solo due valori possibili yTrue (-1) yFalse (0) zLe variabili di tipo Boolean vengono memorizzate come numeri a 16 bit (2 byte)

26 Esempio di Boolean Sub Macro1() Dim prima As Boolean prima=True if prima Then Range(a1).Select ActiveCell.Value=La variabile è vera End If End Sub

27 Tipo di dati Integer zTipo di dati contenente variabili memorizzate come numeri interi a 2 byte zI numeri rappresentabili appartengono allintervallo (-32768, 32767)

28 Esempio di Integer Sub Macro1() Dim prima, seconda As Integer prima=32 seconda=44 Range(a1).Select ActiveCell.Value=prima*seconda End Sub

29 Tipo di dati Long zIl tipo di dati Long è rappresentato mediante 4 byte zI numeri rappresentabili sono compresi tra – 2.147.483.648 e 2.147.483.647

30 Esempio di Long Sub Macro1() Dim lunga(3) As Long lunga(0)=2^10 lunga(1)=2^11 lunga(2)=2^12 Range(a10).Select ActiveCell.Value=lunga(0) Range(b10).Select ActiveCell.Value=lunga(1) Range(c10).Select ActiveCell.Value=lunga(2) End Sub

31 Tipo di dati Currency zIl tipo di dati Currency viene utilizzato per calcoli monetari o a virgola fissa zE possibile rappresentare numeri compresi nellintervallo –922.337.203.685.477,5808 e 922.337.203.685.477,5807

32 Tipo di dati Single e Double zTipi di dati utilizzato per rappresentare numeri reali zIl tipo di dati Single è rappresentato in precisione singola (32 bit), mentre il tipo di dati Double è in precisione dobbia (64 bit) zIl tipo di dati Double permette una rappresentazione più precisa dei numeri, a scapito però delloccupazione di memoria

33 Esempio di Double Sub Macro1() Dim grande As Double grande = 32,61^12 Range(a1).Select ActiveCell.Value=grande End Sub

34 Tipo di dati Date zTipo di dati utilizzato per memorizzare date e orari come numeri reali zLe variabili di tipo Date vengono memorizzate come numeri a 64 bit zLa quantità a sinistra del separatore decimale rappresenta una data, la parte a destra un orario

35 Esempio di Date Sub Macro1() Dim data1 As Date Dim data2 As Date data1=37956,4407283565 data2=10/10/2002 Range(a1).Select ActiveCell.Value=data1 Range(a2).Select ActiveCell.Value=data22 End Sub

36 Tipo di dati String zTipo di dati che permette di rappresentare una sequenza di caratteri contigui. Nella sequenza di caratteri sono ammessi simboli di lettere, numeri, spazi e segni di punteggiatura zIl tipo di dati String può contenere stringhe di lunghezza compresa tra 0 e 63KB di caratteri

37 Esempio di String Sub Macro1() Dim stringa As String stringa = Il mio nome è Lorenzo Range(a1).Select ActiveCell.Value=stringa End Sub

38 Tipo di dati Variant zIl tipo di dati Variant permette di non definire il tipo di dato a priori zSe non si conosce il tipo di dato che dovrà essere assegnato ad una variabile, è possibile definire tale variabile di tipo Variant zIl tipo corretto verrà istanziato a tempo di esecuzione

39 Oggetto predefinito Range zLe macro devono poter operare su intervalli di celle zSi può far riferimento ad intervalli di celle tramite loggetto Range Range (Cell1, [Cell2])

40 Altri oggetti predefiniti zVBA mette a disposizione del programmatore di macro Excel una considerevole quantità di oggetti predefiniti che consentono di far riferimento a tutte le componenti dellapplicazione zAllinterno dellambiente di sviluppo è possibile visualizzare lelenco di tutti gli oggetti predefiniti, con le relative proprietà e metodi associati, mediante il pulsante F2

41 Strutture di controllo in VBA zIstruzioni condizionali: If … Then … Else … End If zIterazioni: yFor … To … Next yDo Until … Loop yWhile … Wend

42 If … Then … Else … End If zConsente lesecuzione condizionale di un gruppo di istruzioni in base al valore di unespressione If condizione Then [istruzioni] [Else istruzioni] oppure If condizione Then [istruzioni] [ElseIf condizioneThen [istruzioni]… [Else [istruzioni]] End If

43 Esempio di If Sub Macro1() Dim data As Date data = Now() If data > 37980 Then Range(" a10"). Select ActiveCell. Value = "Natale è passato da giorni = " Range(" a11"). Select ActiveCell. Value = data - 37980 Else Range(" a10"). Select ActiveCell. Value = "A Natale mancano giorni = " Range(" a11"). Select ActiveCell. Value = 37980 - data End If Range(" A11"). Select Selection. NumberFormat = "0.00" End Sub

44 Istruzione For…Next zRipete un gruppo di istruzioni per il numero di volte specificato For contatore = inizio To fine [Step incremento] [istruzioni] [Exit For] [istruzioni] Next [contatore]

45 Esempio di For…Next Sub Macro1() Dim Parole, Caratteri, Stringa As String For Parole = 10 To 1 Step -1 For Caratteri = 0 To 9 Stringa = Stringa & Caratteri Next Caratteri Stringa = Stringa & " " Next Parole Range(" a1"). Select ActiveCell. Value = Stringa End Sub

46 Istruzione Do…Loop (Repeat…Until) zRipete un blocco di istruzioni fina a quando la valutazione di una condizione non dà come risultato TRUE zLa valutazione della condizione avviene dopo che il blocco di istruzioni è stato eseguito una volta. Questo garantisce che il blocco di istruzioni venga eseguito ALMENO una volta Do [istruzioni] [Exit Do] [istruzioni] Loop [{ While | Until} condizione]

47 Esempio di Repeat...Until Sub prova() Dim Check As Boolean, Counter As Integer Check = True: Counter = 0 Do Do While Counter < 20 Counter = Counter + 1 If Counter = 10 Then Check = False Exit Do End If Loop Loop Until Check = False End Sub

48 Istruzione While…Wend zRipete un blocco di istruzioni fin quando la condizione è vera (come Do While … Loop) While condizione [istruzioni] Wend

49 Esempio di While…Wend Sub giorni() oggi = Now() Cells( 1, 1) = oggi Cells( 1, 1). NumberFormat = "dd/ mm/ yy" fine_ anno = 38352 data = oggi + 7 i = 1 While data < fine_ anno i = i + 1 Cells( i, 1) = data Cells( i, 1). NumberFormat = "dd/ mm/ yy" data = data + 7 Wend End Sub

50 Input dellutente zEsistono dei costrutti che permettono di leggere linput dellutente attraverso delle finestre di dialogo che appaiono a tempo di esecuzione zI costrutti che consentono linterazione sono yInputBox yMsgBox

51 InputBox zVisualizza una finestra di dialogo per linput dellutente. zRestituisce le informazioni immesse nella finestra di dialogo. zTali informazioni devono essere associate ad una variabile

52 Esempio di InputBox Sub Macro1() Dim num As Integer num=Application.InputBox(Digita un numero,,,,,,1) Range(a1).Select ActiveCell.Value=Il numero digitato è & num End Sub

53 MsgBox e pulsanti bistabili zMsgBox visualizza un messaggio in una finestra di dialogo ed attende che lutente scelga un pulsante (generalmente OK, Annulla) zDopo lazione dellutente, MsgBox restituisce un valore Integer che indica quale pulsante è stato scelto

54 Esempio di MsgBox Sub Macro1() Dim stringa As Object Dim msg As String msg = "Continuare?" Response = MsgBox(msg, vbYesNo, "Dimostazione MsgBox") If Response = vbYes Then ActiveCell.Value = "Yes" Else ActiveCell.Value = "No" End If End Sub


Scaricare ppt "Sommario zCaratteristiche di un calcolatore elettronico yCapacità del calcolatore zCompiti del programmatore yCompetenze yAbilità zAnalisi e programmazione."

Presentazioni simili


Annunci Google