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