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

Slides:



Advertisements
Presentazioni simili
Lez. 12 (10/11) - PBElementi di Programmazione1 Lezione 12 Esercizi.
Advertisements

Introduzione al linguaggio C++
LINGUAGGIO DI PROGRAMMAZIONE C
Lezione 8 Anno accademico Titolare corso: Prof. Costanza Torricelli
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità F2 Selezione.
Linguaggi algoritmici
PROGRAMMARE IN PASCAL (le basi)
PHP.
Lez. 11 (11/12) - PBElementi di Programmazione1 Lezione 11 Esercizi.
Lez 4 (11/12)Elementi di Programmazione1 Istruzioni per il controllo del Flusso 2.
Lez 4 (10/11)Elementi di Programmazione1 Istruzioni per il controllo del Flusso 2.
Elementi di Programmazione
EP 10/11 - PBLezione 2-21 Elementi di Programmazione Tipi di Dati Conversioni Istruzioni di controllo del flusso.
EP 11/12 - PBLezione 31 Elementi di Programmazione Tipi di Dati e Conversioni Istruzioni di controllo del flusso.
EP 12/13 - PBLezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati.
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
Dr. Francesco Fabozzi Corso di Informatica
EP 13/14Lezione 21 Elementi di Programmazione Interazione con lutente Tipi di Dati, Variabili, Espressioni.
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L’attività di.
Introduzione alla programmazione ll
Introduzione alla programmazione lll
DAL PROBLEMA ALL'ALGORITMO Problemi e Programmi Paolo Amico
Informatica? Scienza della rappresentazione e dell’elaborazione dell’informazione ovvero Studio degli algoritmi che descrivono e trasformano l’informazione.
Somma = A + B start Stampa Somma Leggi A,B stop Sub SOMMA( ) Dim A, B as Integer A = InputBox("Immetti un numero") B = InputBox(Immetti un secondo numero)
ALGORITMI E PROGRAMMAZIONE STRUTTURATA
Unità Didattica 1 Algoritmi
Unità Didattica 2 I Linguaggi di Programmazione
Strutture di controllo in C -- Flow Chart --
Fondamenti di Informatica Algoritmi
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Lezione 2 Programmare in ASP
Elementi di Informatica
Elementi di Informatica
Biologia Computazionale - Algoritmi
Algoritmi e Programmazione strutturata
INFORMATICA MATTEO CRISTANI.
PROGRAMMAZIONE: linguaggi
Le basi della programmazione
CODIFICA Da flow-chart a C++.
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
PROBLEMA ALGORITMO PROGRAMMA LINGUAGGI di PROGRAMMAZIONE
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
Programmare in Visual Basic
ISTITUTO STATALE DI ISTRUZIONE SUPERIORE F. ENRIQUES CORSO JAVA – PROVA INTERMEDIA DEL 12 MARZO 2007 NOME: COGNOME: ________________________________________________________________________________.
ECDL Patente europea del computer
Programmazione Strutturata
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Rappresentazione degli algoritmi
Variabili Numeriche –Interi (byte, short, int, long): complemento a 2 –A virgola mobile (float, double): IEEE 745 Alfanumeriche –Carattere (char): Unicode.
Lez. 9 (13/14)Elementi di Programmazione1 Lezione 9 Valutazione di espressioni File di testo sequenziali.
Lez 4 (13/14)Elementi di Programmazione1 Strutture di controllo 2.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
13 ottobre Decisioni F. Bombi 13 ottobre 2002.
Lez.6 (13/14)Elementi di Programmazione1 Lezione 6 Funzioni Passaggio di parametri.
PRIMI ELEMENTI DI PROGRAMMAZIONE
Microsoft Access Chiavi, struttura delle tabelle.
Algoritmi.
Laboratorio Informatico
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
ALGORITMI Dal problema al programma Definizione di algoritmo
Strutture di controllo
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Introduzione alle Classi e agli Oggetti in Java 1.
Transcript della presentazione:

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

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

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

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

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

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

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.

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

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

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.

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

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

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 ABA or B Anot A 01 10

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

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à

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

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

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

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

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)

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

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]

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)

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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]

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

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]

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

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

Esempio di While…Wend Sub giorni() oggi = Now() Cells( 1, 1) = oggi Cells( 1, 1). NumberFormat = "dd/ mm/ yy" fine_ anno = 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

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

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

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

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

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