giovedì 19 dicembre 2013

Lezione Laboratorio

Argomento:
   Funzioni Friend
   Ridefinizione degli operatori

Gli argomenti trattati sono stati affrontati nell'ambito dello sviluppo della classe frazione. La classe verrà   
fornita in allegato a tutta la classe. Di tale classe viene richiesta la documentazione come esercitazione. 

Viene fornito inoltre un programma che gestisce test, di questo programma si richiede la documentazione e la trasformazione del programma in oggetti. 

Le attività proposte verranno valutate come attività di laboratorio


lunedì 16 dicembre 2013

Verifica 16/12/2013

Esercizio 1 (Punti 7)
Progettare una classe Persona composta da:

Proprietà
Metodi
  • Nome
  • Cognome
  • CittaNascita
  • DataNascita
  • InserisciDati
  • VisualizzaDati
  • AggiornaDati
  • VisualizzaDatiAnagrafici

Nel progetto si dovranno prevedere le seguenti documentazioni:
  • Motivazione sulla scelta dei tipi di dato da associare alle variabili
  • Motivazione su:
    • Presenza/assenza, numero, tipo e significato di eventuali parametri previsti i metodi implementati.
    • Motivo per cui i membri della classe debbano essere Pubblici/Privati/Protetti
Criteri di Valutazione
  1. Realizzazione classe in linguaggio C++                                                                                          (punti: 4)
  2. Documentazione delle proprietà (Scopo, nome significativo, tipo adeguato)                             (punti: 1)
  3. Documentazione dei metodi (Scopo, descrizione parametri)                                                        (punti: 2)

Esercizio 2 (Punti 10)


Progettare una classe dipendente, derivata dalla classe persona dell’esercizio precedente. Tale classe dovrà contenere le seguanti proprietà:
Proprietà
Metodi
  • Mansione (Esempio: Impiegato, Dirigente, Operaio, Funzionario, ecc)
  • Stipendio
  • InserisciDati
  • VisualizzaDati
  • AggiornaDati
  • ControllaStipendio

in aggiunta a tutto quello che verrà ereditato dalla classe persona
Specifica/Vincolo di Progetto: Considerando che lo stipendio di un dipendente debba rispettare la seguente regola: StipendioOperaio<StipendioImpiegato<StipendioFunzionario<=StipendioDirigente. Il metodo dovrà controllare che gli stipendi inseriti per ogni dipendente siano coerenti con la mansione e ne rispettino la regola prima fornita.

N.B. Il metodo ControllaStipendio  va studiato attentamente, come sarà necessario fare le dovute ipotesi sugli stipendi, affinché le condizioni poste (StipendioOperaio<StipendioImpiegato<StipendioFunzionario<=StipendioDirigente) vengano rispettate. In aggiunta, il controllo dovrà essere eseguito utilizzando le eccezioni.
Nel progetto si dovranno prevedere le seguenti documentazioni:
  • Motivazione sulla scelta dei tipi di dato da associare alle variabili
  • Motivazione su:
    • Presenza/assenza, numero, tipo e significato di eventuali parametri previsti i metodi implementati.
    • Motivo per cui i membri della classe debbano essere Pubblici/Privati/Protetti
Criteri di Valutazione

  1. Realizzazione classe in linguaggio C++                                                                                          (punti: 4)
  2. Documentazione delle proprietà (Scopo, nome significativo, tipo adeguato)                             (punti: 1)
  3. Documentazione dei metodi (Scopo, descrizione parametri)                                                        (punti: 2)
  4. Progettazione metodo ControlloStipendio                                                                                       (punti: 3)

domenica 15 dicembre 2013

Riflessioni sulla Verifica Proposta

Considerazioni sulla traccia proposta

Prima Considerazione
La Verifica proposta il 13/12/2013, richiedeva due tipi di attività:

  1. Lettura attenta della traccia e relativa analisi delle specifiche
  2. Identificazione delle richieste
La prima attività avrebbe dovuto portare a comprendere che per operazioni tra frazioni, si intendeva il coinvolgimento di tre frazioni:
  • operando 1
  • operando 2
  • risultato
questo avrebbe portato ad avere a disposizione almeno 6 variabili di tipo intero: due per ogni frazione e questo in considerazione del fatto che una frazione è composta dalle due parti: numeratore e denominatore. Appare evidente che ogni risultato che avrebbe portato all'utilizzo di un'unica variabile di tipo float è da considerarsi non corretto.

Seconda Considerazione
La traccia richiedeva la realizzazione di una semplice calcolatrice. Questo presupponeva che l'utente avrebbe dovuto avere la possibilità di scegliere sia gli operatori che l'operazione da eseguire. Appare evidente che ogni soluzione che prevede la produzione di 4 risultati, uno per ogni operazione non soddisfa la richiesta della traccia.

Terza Considerazione
Si sarebbe dovuto tenere conto del bisogno dell'utente di poter scegliere tra il voler continuare ad eseguire altri calcoli ed il voler interrompere l'esecuzione del programma.

Quarta Considerazione
La matematica ci dice che il denominatore di una frazione non può essere nullo. Questo avrebbe dovuto portare al controllo dei denominatori delle frazioni utilizzati e prevedere una risposta per l'utente

venerdì 13 dicembre 2013

Traccia Verifica 13_12_2013

Esercizio 1 (Punti 8)
Considerando le seguenti operazioni algebriche tra frazioni:
·         Somma                               ((a/b)+(c/d)=((a*d)+(c*d))/(b*d))                                        (punti 2)
·         Sottrazione                       ((a/b)-(c/d)=((a*d)-(c*d))/(b*d))                                          (punti 2)
·         Moltiplicazione              ((a/b)*(c/d)=((a*c)/(b*d))                                                       (punti 2)
·         Divisione                           ((a/b)/(c/d)=((a*d)/(b*c))                                                        (punti 2)
Si scriva un programma che ne implementi una calcolatrice.
Esercizio 2 (Punti 7)


Considerando le precedenti operazioni algebriche tra frazioni
  1. Si realizzi il diagramma di flusso che implementi la calcolatrice                            (punti 4)
2.       Si crei una tabella con                                                                                                                (punti 3)
a.       l’elenco delle variabili utilizzate
b.      lo scopo delle variabili
c.       la distinzione tra
                                                              i.      variabili di input
                                                            ii.      variabili di output
                                                          iii.      variabili di lavoro

Durata della prova h 1,30
Gli studenti potranno scegliere fra le seguenti opzioni:
  1. Risolvere un solo esercizio
  2. Risolvere 2 esercizi. In tal caso vi saranno due valutazioni una per lo scritto e l’altra per il laboratorio
Tutti gli studenti che risolveranno un solo esercizio dovranno risolvere l’esercizio non svolto e consegnarlo entro martedì per e-mail inviandolo all’indirizzo: studenti.alemanno@gmail.com . Il punteggio massimo previsto sarà decrementato di 1 rispetto al punteggio indicato nella traccia. La soluzione verrà considerata attività di laboratorio.



mercoledì 11 dicembre 2013

Lezione Laboratorio

Promemoria:  venerdì 13 dicembre verifica scritta

Array

È' stato introdotto il concetto di array o vettore. Il vettore e' stato definito come struttura di dati omogenei o come raccolta di dati omogenea (informale).

Sono state definite le caratteristiche:

  • Dimensione pre-fissata e non modificabile durante l'esecuzione
  • Memorizzazione degli elementi che la compongono in aree di memoria contigue
  • Numerazione degli elementi ( per il C la numerazioni inizia da 0)
Operazioni principali:

  • Caricamento 
    • Da tastiera
    • Random
    • Inizializzazione diretta nella dichiarazione dell'Array
  • Visualizzazione
  • Ricerca
Strumenti utilizzati prevalentemente nella gestione degli array

  •  Indice
  •  Costrutti iterativi con particolare riferimento al ciclo for
Laboratorio ed esercizi per casa

  •   Caricare un array, contare pari dispari ed elementi nulli
  •   Visualizzare gli elementi solo in posizione pari e solo in posizione dispari
  •   Calcolare la media
  •   Cercare Massimo/Minimo
  •   Gestire array con costrutti: while e do while

Prossimo Argomento

  •  Passare array monodimensionale come parametro di funzione