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

mercoledì 27 novembre 2013

Lezione

Generazione di numeri Pseudo Casuali

Strumenti utilizzati

Funzioni: srand(), rand(), time()
Librerie : stdlib.h, studio.h time.h

Esempio: Lancio del Dado.  Per Casa: produrre diagramma di flusso e codifica

Evoluzione esempio: gioco del dado con l'inserimento del valore utente. Per Casa: produrre diagramma di flusso e codifica

Evoluzione: fornire la possibilità  di ripetere la partita. Per Casa: produrre diagramma di flusso e codifica

Evoluzione: Contare quante partite vengono giocate  Per Casa: produrre diagramma di flusso e codifica

Viene richiesto di commentare il codice scritto alla lavagna

Evoluzione: lancio di due dadi: Per Casa: produrre diagramma di flusso e codifica

lunedì 25 novembre 2013

Lezione

Concetto di Algoritmo

Utilizzo del programma Algoabuild per la costruzione di diagrammi di flusso e rappresentazione degli Algoritmi

Argomenti Specifici

Sequenza
Selezione

Esempi e prove

venerdì 15 novembre 2013

Lezione Laboratorio

Sintesi sugli argomenti trattati sulla Programmazione ad Oggetti affrontati dall'inizio dell'anno

Classi
Oggetti
Costruttori (overloading delle funzioni)
Distruttore
Ereditarietà
Polimorfismo (puntatori, funzioni virtual)
Classi Astratte (funzioni pure)
Puntatore This

mercoledì 13 novembre 2013

Lezione

Costanti

#include<stdio.h>
using namespace std;


int main() {
const int a=5;
int b=7;
b=4;
return 0;
}

Funzioni

#include<stdio.h>
using namespace std;

int f(int);//il prototipo di una funzione può non avere il nome del parametro
// Ma deve avere il tipo
int main() {
int par=5;
int ris;
ris=f(par);
printf("%d",f(par));
//printf("%d",a); errore perchè a non è stata dichiarata nel main non nel main

return 0;
}

int f(int a)// parametro formale
{
++a;
return a;
}

Esempio

#include<stdio.h>
using namespace std;

int f(int);//il prototipo di una funzione può non avere il nome del parametro
// Ma deve avere il tipo
void g(int a);
int main() {
int par=5;
int ris;
ris=f(par);
printf("%d",f(par));
//printf("%d",a); errore perchè a non è stata dichiarata nel main non nel main
return 0;
}

int f(int a)// parametro formale
{
++a;
g(a);
return a;
}

void g(int a)
{
printf("%d",a++);
printf("%d",a);
}

Pseudo Codice Per l'Algoritmo di Risoluzione delle Equazioni di Secondo Grado

PROG main
    IN a
    IN b
    IN c
    ASSIGN delta=((b^2)-(4*a*c))
    IF delta>0
        ASSIGN x1=((-b+sqrt(delta)/2a)
        ASSIGN x2=((-b-sqrt(delta)/(2*a))
        OUT x1
        OUT x2
    ELSE //if delta>0
        IF delta==0
            ASSIGN x1=(-b/(2*a))
            ASSIGN x2=(-b/(2*a))
            OUT x1
            OUT x2
        ELSE //if delta==0
            OUT Delta < 0:impossibile
        END IF //delta==0
    END IF //delta>0
END PROG //main


Diagramma di Flusso per la Risoluzione delle Equazioni di Secondo Grado
Esercizio per casa:

  1. TRASFORMARE L'ALGORITMO DA PSEUDO CODICE IN UN PROGRAMMA IN LINGUAGGIO C
  2. CREARE LA FUNZIONE CHE CALCOLI IL DELTA ALLA QUALE FORNIRE COME PARAMETRI:
    1. a
    2. b
    3. c
e che fornirà in uscita il risultato finale
N.B. Utilizzare la libreria math.h e le funzioni 

  1. pow() 
  2. sqrt() 
cercare in internet 



  1. la libreria math.h e le funzioni che la compongono 
  2. i prototipi delle due funzioni e descriverle in un posto del vostro Blog

martedì 12 novembre 2013

Verifica 1AS

Esercizio 1 (Punti 2) : Trasformare i seguenti valori numerici (prestare attenzione alle basi dei sistemi di numerazione) in decimale mostrandone il procedimento ed il risultato finale
  1. 2816
  2. 358
  3. 424
Esercizio 2 (Punti 2) : Trasformare i risultati ottenuti dalla risoluzione dei tre precedenti esercizi riportandoli ai corrispondenti valori di partenza

Esercizio 3 (Punti 2):  Trasformare i seguenti valori decimali :
  1. 3
  2. 50
  3. 40
nei valori numerici con basi: 3,4,5 e viceversa

Esercizio 4 (Punti 2)Trasformare le seguenti capacità di memoria (senza l'uso della calcolatrice):
  1. 1024 MB in GB
  2. 512   MB in KB
  3. 24     MB in Gb
Esercizio 5 (Punti 1):

Elencare le componenti fondamentali di un computer

Esercizio 6 (Punti 1)

Indicare
  1. 2 periferiche di Input _______________________________________________
  2. 2 periferiche di Output ______________________________________________
  3. 1 dispositivo di Input _______________________________________________
  4. 1 dispositivo di Output ______________________________________________

Verifica 3AS


Esercizio 1 (Punti 1)
Elencare le fasi necessarie per passare dal file Sorgente scritto in linguaggio C al file  eseguibile


Esercizio 2 (Punti 1)

Indicare le principali differenze presenti tra compilatore ed interprete

Esercizio 3 (Punti 4)
Scrivere prototipo e definizione di una funzione alla quale passare 2 parametri interi che svolga:
1.       Visualizzi contemporaneamente somma e prodotto tra i due parametri
2.       Restituisca il primo parametro decrementato di uno

Esercizio 4 (Punti 3)

Scrivere il main che richiami la funzione del precedente esercizio e ne visualizzi i due parametri ed il risultato restituito dalla funzione .

lunedì 11 novembre 2013

Verifica

      Esercizio 1 (Punti 2)
      Definire una funzione con prototipo e corpo alla quale passare come parametro il puntatore di un array         ad interi. Nel corpo della funzione si dovrà consentire all’utente di fornire la dimensione dell’array, fornita       la dimensione si dovrà far caricare l’array  all’utente. Terminato il caricamento da parte dell’utente la             funzione restituirà la dimensione dell’array inserita dall’utente.
     
      Esercizio 2 (Punti 2)
      Definire una funzione con prototipo e corpo alla quale passare come parametro il puntatore di un array         ad interi e gli eventuali ulteriori parametri. Nel corpo si dovrà visualizzare il contenuto dell’array passato         come parametro.
      
      Esercizio 3 (Punti 2)
      Scrivere il main che richiami ordinatamente le precedenti funzioni e termini l’esecuzione con un saluto.
Esercizio 4 (Punti 2)
Realizza una classe 'contatore' che contiene una variabile intera 'valore' come attributo e due metodi, il primo è un costruttore senza parametri che inizializza 'valore' a 0 il secondo incrementa semplicemente 'valore ' di 1 tutte le volte che viene invocato.
Eseguire il test del programma con un ciclo for .

venerdì 8 novembre 2013

Vengono mostrati degli esempi per la realizzazione e l'utilizzo dei link nei post del Blog

Viene introdotto ed utilizzato il tag TABLE per la costruzione e l'inserimento delle tabelle nei post

Lezione Laboratorio

Viene richiesto di:

  1. Accedere al Compilatore onLine Ideone e compilare on line i propri programmi
  2. Scaricare il programma  AlgoBuild 0.73 per la creazione di FlowChart
  3. Accedere al Manuale di AlgoBuil 0.73
  1. Viene mostrato l'utilizzo di AlgoBuild creando ed eseguendo FlowChart
  2. Viene introdotto il costrutto di Selezione nelle sue varianti:
    1. IF (condizione) THEN
    2. IF  (condizione) THEN ELSE
    3. L'ERRORE RICORRENTE:  IF (condizione) ELSE senza ramo THEN
  3. Viene interpretato lo pseudo codice prodotto da AlgoBuild e viene adattato al Linguaggio C
  4. Viene richiesto di Codificare lo pseudo codice prodotto in un programma C e di compilarlo

Per Casa viene richiesto di Realizzare una calcolatrice utilizzando i costrutti di selezione nelle due versioni:
  1. senza funzioni ma con la procedura menu;
  2. con funzioni:
    1. somma
    2. sottrazione
    3. moltiplicazione
    4. divisione
    5. modulo
    6. menu


Lezione

Vengono ripresi i concetti di:

  1. Ereditarietà
  2. Polimofismo
    1. funzioni virtual
Vengono introdotti i concetti di:
  1. Classe Astratta
    1. funzioni/metodi puri (senza corpi)
  2. Interfacce
    1. tutti metodi puri

giovedì 7 novembre 2013

Lezione Laboratorio

Ripasso per preparazione alla verifica

Ripassati i concetti fondamentali sulla programmazione ad oggetti:

  1. Classi
  2. Oggetti
  3. Funzioni sovrapposte
  4. Costruttori/Distruttore
  5. Ereditarietà
  6. Polimorfismo
Vengono proposti i seguenti esercizi/esercitazione: dati i seguenti prototipi:
  1. int* f();
  2. int g(int*&);
  3. void h(int*,int*)
  4. void l(int*);
  • descriverne i parametri e le modalità di passaggio
  • definirne i corpi delle funzioni
  • creare un main che ne contenga le chiamate
  • pubblicare in un post del blog personale i risultati dell'esercitazione
Altri esercizi
  1. scrivere una funzione alla quale passare un array come parametro sotto forma di puntatore
  2. produrre un main che ne esegua la chiamata
  3. scrivere una funzione alla quale passare una struttura come parametro sotto forma di puntatore
  4. produrre un main che ne esegua la chiamata 
  5. scrivere una funzione alla quale passare un oggetto come parametro sotto forma di puntatore 
  6. produrre un main che ne esegua la chiamata

mercoledì 6 novembre 2013

Lezione

Continuazione esercitazione

Vengono organizzati 2 gruppi di lavoro
Il primo e' composto dagli studenti che non hanno terminato l'esercitazione di ieri e da quelli assenti
Il secondo da quelli che hanno completato gli esercizi, a questi viene proposto un approfondimento con Excel:

  1. Concetto di funzione applicato ad Excel
  2. Scopo delle funzioni:
    1. int()
    2. resto()
  3. Concetto di parametro di una funzione
  4. Introduzione al concetto di riferimento assoluto e riferimento relativo riferito ai contenuti di una cella di memoria

Lezione

Continuazione sui sistemi di numerazione e sulle misure della capacità di memoria
Modifica post Blog personali con inserimento codice HTML:

  1. struttura di una pagina web
  2. Inserimento link in un post
  3. elenchi puntati e numerati
  4. associazione link ad elenchi puntati e numerati
Esempi:
  1. w3schools  link ad un Sito Esterno
  2. Post           link ad un Post Interno al Blog
  3. Etichetta     link ad una Etichetta  Inerna al Blog

Lezione

Esercitazione in preparazione della verifica

Architettura computer
Traduttori
Classificazione reti
Topologie LAN
Correzione porzioni codice C
Scrittura funzioni

martedì 5 novembre 2013

Lezione Laboratorio

Esercitazione

Esercizio 1 : Trasformare da decimale in binario i seguenti valori mostrandone il procedimento ed il risultato finale

  1. 28
  2. 35
  3. 41
Esercizio 2 : Trasformare i risultati ottenuti dalla risoluzione dei tre precedenti esercizi riportandoli ai corrispondenti valori decimali di partenza

Esercizio 3:  Trasformare i seguenti valori decimali :
  1. 48
  2. 5
  3. 37
nei valori numerici con basi: 3,4,5 e viceversa

Esercizio 4 : Trasformare le seguenti capacità di memoria (senza l'uso della calcolatrice):
  1. 1024 MB in KB
  2. 1024 MB in GB
  3. 1024 MB in Gb
Ricopiare Esercizi e Soluzioni in un post del Blog




    Lezione Laboratorio

    Funzioni

    Continua la trattazione sulle funzioni e sulla dichiarazione di variabili.

    1. Si parte con il concetto di stringa e con la dichiarazione delle stringhe. Gli aspetti che interessano sono legati alla lettura ed alla visualizzazione delle stringhe attraverso l'utilizzo delle funzioni printf e scanf.
    2. Si introduce il concetto di parametro di una funzione, classificandoli in:
      1. formale
      2. attuale
    3. dichiarandoli e fornendo degli esempi tipo da provare in laboratorio
    In laboratorio viene richiesto alla classe di collegarsi ai propri Blog e produrre il post delle attività svolte in laboratorio. Viene detto inoltre di salvare i propri lavori su drive e di inviare una mail con allegato all'insegnante.

    lunedì 4 novembre 2013

    Lezione Laboratorio

    Polimorfismo

    Il completamento di una parte consistente legata ai puntatori, ci da la possibilità di riprendere la OOP ed in particolare affrontare uno degli argomenti cruciali: Il Polimorfismo.

    L'argomento è stato affrontato riprendendo il concetto di ereditarietà e le relative regole di derivazione. Si è mostrato come un metodo di una classe derivata possa sostituirne uno ereditato dalla classe padre. Si è cercato di fornire i concetti relativi all'importanza del polimorfismo e del legame esistente tra puntatori ed oggetti. Si è passati a fornire il concetto di funzione virtual e si è fornito un esempio avente come scopo di mostrare il funzionamento del polimorfismo e l'adattamento degli oggetti ad altri oggetti in fase di esecuzione (run time). Si è proposto di verificare e modificare in laboratorio l'esempio proposto.

    In Laboratorio si è mostrato ad alcuni studenti come costruire un Blog e si è richiesto di salvare i lavori prodotti in laboratorio in Drive e di produrre post da inserire nel Blog che descrivano l'attività svolta. Si è chiesto inoltre di inviare una mail con i lavori di laboratorio. Si è proposto di realizzare dei link tra i post degli studenti della classe al fine di creare una rete di collaborazione.

    Il prossimo argomento saranno le funzioni o metodi puri e le classi astratte. Verranno proposti altri esempi sul Polimorfismo.

    venerdì 1 novembre 2013

    Lezione Laboratorio

    Presenti soltanto 3 studenti nelle prime 2 ore assenti tutti nell'ultima

    Lezione Esercitazione

    Esempi di utilizzo dei sottoprogrammi: Funzioni e Procedure

    E' stato proposta una esercitazione con funzioni e procedure senza l'uso di parametri. La funzione richiesta comprendeva l'acquisizione di dati da tastiera.
    Sottoprogrammi richiesti:

    1. Costruzione Menu
    2. Visualizzazione dati studenti attraverso una scheda


    Ad alcuni studenti è stato proposto l'aggiunta della dichiarazione di stringhe, l'acquisizione e la visualizzazione di queste.

    Scopo dell'esercitazione:

    1. acquisire, distinguere e riconoscere i concetti di:
      1. prototipo
      2. chiamata
      3. definizione
    2. acquisire, distinguere e riconoscere i concetti di:
      1. funzione
      2. procedura
    Programmata la verifica per la prossima settimana

    Lezione

    Esercitazione sulle trasformazioni numeriche da Decimale a qualsiasi base e da qualsiasi base in decimale

    Concetti per la trasformazione da decimale a qualsiasi base:

    1. divisione
    2. resto
    3. organizzazione dei resti in maniera inversa rispetto a come sono stati prodotti
    Concetti per la trasformazione da qualsiasi base a decimale:

    1. espressioni numeriche
    2. potenze e proprietà
    3. posizione delle cifre all'interno di un numero e sistemi posizionali
    4. individuazione dei simboli numerici attraverso la numerazione delle posizioni
    Esempi sulle unità di grandezza della capacità di memoria: Kilo, Mega, Giga, Tera, Peta

    Gli argomenti affrontati verranno riproposti attraverso l'utilizzo di Excel in laboratorio

    Lezione

    Ripasso Sistemi di Numerazione

    Conversione da decimale a qualsiasi base e da qualsiasi base a decimale

    mercoledì 30 ottobre 2013

    Lezione Laboratorio

    Sono stati introdotti i concetti di

    1. BIT
    2. BYTE
    Il BYTE è stato proposto come UNITA' DI MISURA DELLA CAPACITA' DI MEMORIA. A questo ha fatto seguito l'elenco dei PRE-FISSI maggiormente utilizzati per esprimere e misurare le quantità di byte contenute in una memoria, utilizzando le potenze del 2:
    1. Kilo
    2. Mega
    3. Giga
    4. Tera
    5. Peta
    è stato richiesto di completare l'elenco dei prefissi attraverso una ricerca internet.

    L'utilizzo delle potenze di 2 ha fornito l'opportunità di ripassare alcune delle proprietà delle potenze.

    Si è passati poi all'introduzione dei sistemi di numerazione POSIZIONALI in cui i simboli numerici assumono peso e valore differente rispetto alla posizione in cui è inserito il simbolo.
    Successivamente si è passati alle regole di trasformazione dei numeri tra i diversi sistemi di numerazione, in particolare si passati da
    1. decimale a qualunque base attraverso la divisione ed il recupero dei resti
    2. da qualunque base a decimale riprendendo le potenze

    Lezione Laboratorio

    E' stato introdotto il concetto di SOTTOPROGRAMMA, inteso come un programma RICHIAMABILE da altri programmi. I sottoprogrammi sono stati classificati in: Funzioni e Procedure, sottolineando che le funzioni forniscono un risultato e quindi necessitano di una variabile, all'atto della chiamata,  che intercetti tale risultato attraverso una assegnazione, al contrario delle procedure che non necessitano di altre variabili di supporto.
    E' stata proposto un programma da verificare, analizzare ed integrare in laboratorio, salvandolo e pubblicandolo sul proprio blog.

    giovedì 17 ottobre 2013

    Lezione Laboratorio 4A

    Durata: 3 ore

    Argomento: Puntatori. Array di Puntatori. Puntatori a Strutture. Array di Strutture gestite con Puntatori.

    Attività: durante la prima ora e' stato ripresa la gestione degli array mediante puntatori ed è stato proposto                  un  esempio che ne evidenziasse la gestione. Si è passati alla gestione delle strutture mediante i                      puntatori  e si è mostrato l'utilizzo dell'operatore ->, attraverso il quale si accede ai campi delle                      strutture. Si è continuato con gli array di strutture gestiti con puntatori.
                   Nella seconda ora viene richiesta la gestione di un elenco di studenti utilizzando ed applicando i                      concetti mostrati durante la lezione. Durante l'esercitazione ad alcuni studenti è stato proposto di                    apportare delle modifiche al codice proposto.

    Contenuti della lezione.
    Durante la lezione sono stati proposti una serie di esempi tipo attraverso i quali sono stati evidenziati i concetti fondamentali che portano alla gestione di array a dimensione variabile.

    Per la prossima lezione si prevede di affrontare l'argomento sui puntatori passati come parametri di funzioni si per valore che per riferimento.

    Cosa bisogna imparare dalla lezione: 

    mercoledì 16 ottobre 2013

    Lezione 3A Ambienti di Programmazione

    Successivamente vengono proposti degli Ambienti di programmazione che ci consentiranno di esercitarci con i linguaggi C/C++ sia on line che offline

    Ambienti free di Programmazione da utilizzare sul proprio computer ed in laboratorio:

    1. devc++  : è l'ambiente che utilizzeremo in laboratoio ed è presente anche nella versione installabile su pendrive. L'indirizzo da cui prelevare l'ide è: http://www.bloodshed.net/devcpp.html . La versione dell'ide per il sistema operativo windows 8 si può scaricare dal seguente indirizzo: http://wxdsgn.sourceforge.net/
    2. wxdevc++ : è un'evoluzione del precedente devc++ . L'indirizzo da cui prelevare l'ide è: http://wxdsgn.sourceforge.net/
    3. codeblocks : il principale vantaggio di tale ambiente consiste nella possibilità di avere varie versioni per i diversi sistemi operativi: Windows, Linux, Apple. L'indirizzo da cui prelevare l'ide è: http://www.codeblocks.org/downloads/binaries
    4. eclipse : è un ambiente di sviluppo integrato multi-linguaggio e multipiattaformaL'indirizzo da cui prelevare l'ide è:  http://www.eclipse.org/downloads/
    Ambienti di programmazione OnLine:



    lunedì 14 ottobre 2013

    Laboratorio 4A

    Durata: 2 ore

    Argomento: Puntatori. Viene iniziata l'algebra dei puntatori.

    Attività: durante la prima ora e' stato fatto un ripasso sui concetti relativi ai puntatori, trattati nella          
                 lezione precedente. Nella seconda ora viene proposta la realizzazione di una calcolatrice 
                 utilizzando esclusivamente variabili di tipo puntatore. Agli studenti che avrebbero terminato il 
                 programma in anticipo e' stato proposto di realizzare la stessa calcolatrice realizzando una   
                 classe. Durante l'esercitazione ad alcuni studenti e' stato proposto di apportare delle 
                 modifiche al codice proposto.

    Contenuti della lezione.
    Durante la lezione e' stato proposto un esempio in cui sono state utilizzate variabili di tipo puntatore che venivano sommate. È stato mostrato come utilizzare gli oggetti cin e cout e come visualizzare indirizzi e dati associati ad un puntatore. È stato introdotto l'operatore delete da abbinare all'operatore news. 

    È stato anticipato l'argomento della prossima lezione: gli array a dimensione variabile gestiti attraverso gli operatori new e delete.

    Cosa bisogna imparare dalla lezione: 
    prendere coscienza di cosa accade quando si mescolano variabili di tipo puntatore. Comprendere il senso degli operatori new e delete

    venerdì 4 ottobre 2013

    Linguaggi e Paradigmi di programmazione
    Classificazione del SW

    • di Base o di Sistema
    • Applicativo
    Il sistema operativo

    • Scopo
    • Classificazione