mercoledì 6 novembre 2013

Esercizio 05/11/2013 Carattere e Stringa

Scrivere un programma che una volta ricevuto un carattere dall'utente faccia visualizzare il carattere come "char", come valore decimale e come valore esadecimale.
_________________________________________________________________________________

//Direttive per il coprocessore
#include <stdio.h>   //Inclusione delle Librerie

char a='3';   //Variabile di tipo char a cui è assegnato il carattere '3'

using namespace std;

int main()
{
    printf("\nIl carattere assegnato alla variabile 'A' e': %c a cui corrisponde il valore decimale %d ed esadecimale %x ",a,a,a);
    //visualizza il valore assegnato, il numero decimale e esadecimale corrispondente da tabella ASCII
    printf("\n\nInserisci un carattere: ");
    scanf("%c",&a);  //acquisisco il carattere inserito dall'utente e lo salvo nella variabile "a"
    printf("\nIl carattere inserito e': %c a cui corrisponde il valore decimale %d ed esadecimale %x ",a,a,a);
    //visualizza il valore assegnato, il numero decimale e esadecimale corrispondente da tabella ASCII
}

Esercizio 05/11/2013 Funzioni con Parametri

Scrivere un programma che inseriti due valori dall'utente ne esegua somma, moltiplicazione, sottrazione e modulo tramite funzioni con parametri.
_________________________________________________________________________________

#include<stdio.h> //richiamo la libreria

int somma(int a, int b); //prototipo della funzione somma
int molt(int a, int b);  //prototipo della funzione moltiplicazione
int sott(int a, int b);  //prototipo della funzione sottrazione
int modulo(int a, int b);//prototipo della funzione modulo
int x; //variabile contenitore del primo valore inserito dall'utente
int y; //variabile contenitore del secondo valore inserito dall'utente
int ris;  //variabile contenitore del valore restituito dalle funzioni

using namespace std;

int main()
{
 
printf("Inserisci il primo valore: ");  //chiediamo all'utente di inserire un valore da tastiera
scanf("%d",& x);  //momorizzo il valore inserito dall'utente nella variabile x
printf("Inserisci il secondo valore: ");//chiediamo all'utente di inserire un valore da tastiera
scanf("%d",& y);  //momorizzo il valore inserito dall'utente nella variabile y
ris=somma(x,y);   //chiamo la funzione somma e salvo il valore restituito nella variabile ris
printf("\n\nIl risultato della somma tra i due valori è: %d",ris);  //visualizzo il contenuto della variabile ris
ris=molt (x,y);   //chiamo la funzione molt e salvo il valore restituito nella variabile ris
printf("\n\nIl risultato della moltiplicazione tra i due valori è: %d",ris);  //visualizzo variabile ris
ris=sott (x,y);   //chiamo la funzione sott e salvo il valore restituito nella variabile ris
printf("\n\nIl risultato della sottrazione tra i due valori è: %d",ris);  //visualizzo variabile ris
ris=modulo (x,y); //chiamo la funzione modulo e salvo il valore restituito nella variabile ris
printf("\n\nIl resto della divisione tra tra i due valori è: %d",ris);  //visualizzo variabile ris

}

int somma(int a, int b) //definizione della funzione somma dove i parametri a e b ricevono i valore di x e y
{
int tot;
tot=a+b;
return tot;         //la funzione somma restituisce in chiamata il valore contenuto nella variabile tot
}

int molt(int a, int b) //definizione della funzione molt dove i parametri a e b ricevono i valore di x e y
{
int tot;
tot=a*b;
return tot;        //la funzione molt restituisce in chiamata il valore contenuto nella variabile tot
}

int sott(int a, int b) //definizione della funzione sott dove i parametri a e b ricevono i valore di x e y
{
int tot;
tot=a-b;
return tot;        //la funzione sott restituisce in chiamata il valore contenuto nella variabile tot
}

int modulo(int a, int b) //definizione della funzione modulo dove i parametri a e b ricevono i valore di x e y
{
int tot;
tot=a%b;
return tot;       //la funzione modulo restituisce in chiamata il valore contenuto nella variabile tot
}

lunedì 28 ottobre 2013

arduino

#define ledRosso   9
#define ledBlu    10
#define ledVerde  11
#define ledGiallo 12
#define button1 7
#define button2 6
int cont=0;

void setup()
  {
      pinMode (button1 ,INPUT);
      pinMode (button2 ,INPUT);
      pinMode (ledRosso,OUTPUT);
      pinMode (ledGiallo,OUTPUT);
      pinMode (ledVerde,OUTPUT);
      pinMode (ledBlu,OUTPUT);
  }

void loop()
{

  if (digitalRead(button1)==HIGH)
     {
     delay(200);
     cont==0;
     }
   
  if (digitalRead(button2)==HIGH)
     {
     delay(200);
     cont==1;
     }
 
  switch(cont)
    {
      case 0:
         digitalWrite (ledRosso,HIGH);
         digitalWrite (ledBlu,HIGH);
         digitalWrite (ledVerde,HIGH);
         digitalWrite (ledGiallo,HIGH);
         delay(2000);
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,LOW);
         digitalWrite (ledVerde,LOW);
         digitalWrite (ledGiallo,LOW);
         delay(2000);
     break;
     case 1:
         digitalWrite (ledRosso,HIGH);
         digitalWrite (ledBlu,HIGH);
         digitalWrite (ledVerde,HIGH);
         digitalWrite (ledGiallo,HIGH);
         delay(1000);
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,LOW);
         digitalWrite (ledVerde,LOW);
         digitalWrite (ledGiallo,LOW);
         delay(1000);
     break;
   }
   
}

______________________________________________________________________________
#define ledRosso   9
#define ledBlu    10
#define ledVerde  11
#define ledGiallo 12
#define button 7

void setup()
  {
      pinMode (button1 ,INPUT);
      pinMode (button2 ,INPUT);
      pinMode (ledRosso,OUTPUT);
      pinMode (ledGiallo,OUTPUT);
      pinMode (ledVerde,OUTPUT);
      pinMode (ledBlu,OUTPUT);
  }
 
  void loop()
  {

    if (digitalRead(button1)==HIGH)
      {
      digitalWrite (ledRosso,HIGH);
      digitalWrite (ledBlu,HIGH);
      digitalWrite (ledVerde,HIGH);
      digitalWrite (ledGiallo,HIGH);
      delay(2000);
      digitalWrite (ledRosso,LOW);
      digitalWrite (ledBlu,LOW);
      digitalWrite (ledVerde,LOW);
      digitalWrite (ledGiallo,LOW);
      delay(2000);
      }
    if (digitalRead(button2)==HIGH)
      {
      digitalWrite (ledRosso,HIGH);
      digitalWrite (ledBlu,HIGH);
      digitalWrite (ledVerde,HIGH);
      digitalWrite (ledGiallo,HIGH);
      delay(1000);
      digitalWrite (ledRosso,LOW);
      digitalWrite (ledBlu,LOW);
      digitalWrite (ledVerde,LOW);
      digitalWrite (ledGiallo,LOW);
      delay(1000);
      }
 
}
 

_______________________________________________________________________________




#define ledRosso   9
#define ledBlu    10
#define ledVerde  11
#define ledGiallo 12
#define button 7

void setup()
  {
      int i=0;
      pinMode (button ,INPUT);
      pinMode (ledRosso,OUTPUT);
      pinMode (ledGiallo,OUTPUT);
      pinMode (ledVerde,OUTPUT);
      pinMode (ledBlu,OUTPUT);
  }
 
  void loop()
  {

    if (digitalRead(button)==HIGH)
    {
    delay(200);
    i++;
    }
    switch(i)
    {  
      case 0:
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,LOW);
         digitalWrite (ledVerde,LOW);
         digitalWrite (ledGiallo,LOW);
         break;
      case 1:
         digitalWrite (ledRosso,HIGH);
         break;
      case 2:
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,HIGH);
         break;
      case 3:
         digitalWrite (ledRosso,HIGH);
         digitalWrite (ledBlu,HIGH);
         break;
      case 4:
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,LOW);
         digitalWrite (ledVerde,HIGH);
         break;
      case 5:
         digitalWrite (ledRosso,HIGH);
         break;
      case 6:
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,HIGH);
         break;
      case 7:
         digitalWrite (ledRosso,HIGH);
         break;
      case 8:
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,LOW);
         digitalWrite (ledVerde,LOW);
         digitalWrite (ledGiallo,HIGH);
         break;
      case 9:
         digitalWrite (ledRosso,HIGH);
         break;
      case 10:
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,HIGH);
         break;
     case 11:
         digitalWrite (ledRosso,HIGH);
         break;
     case 12:
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,LOW);        
         digitalWrite (ledVerde,HIGH);
         break;
    case 13:
         digitalWrite (ledRosso,HIGH);
         break;
    case 14:
         digitalWrite (ledRosso,LOW);
         digitalWrite (ledBlu,HIGH);
         break;
    case 15:
         digitalWrite (ledRosso,HIGH);
         break;  
    case 16:
         i=0;
         break;  
   }
 
}

venerdì 25 ottobre 2013

Programma Calcolatrice

//DIRETTIVE PER IL COPROCESSORE

//INCLUSIONE DELLE LIBRERIE

#include <stdio.h> //Libreria funzioni scanf e printf

using namespace std;

//CORPO DEL PROGRAMMA

int main()
{
//Dichiarazione delle Variabili. FORMA: tipo nome_variabile;

float operando1;
float operando2;
float risultato;

printf("Inserire valore Operando1 : ");
scanf("%f",&operando1);
printf("Inserire valore Operando2 :  ");
scanf("%f",&operando2);
risultato=operando1+operando2;
printf("\n\nLa somma di %.2f + %.2f e': %.2f",operando1,operando2,risultato);
risultato=operando1-operando2;
printf("\n\nLa sottrazione di %.2f - %.2f e': %.2f",operando1,operando2,risultato);
risultato=operando1*operando2;
printf("\n\nLa moltiplicazione di %.2f * %.2f e': %.2f",operando1,operando2,risultato);
risultato=operando1/operando2;
printf("\n\nLa divisione di %.2f / %.2f e': %.2f",operando1,operando2,risultato);

}

/*
Classe:
3A Informatica Serale
Data:
22/10/2013
*/



lunedì 21 ottobre 2013

IDE integrated development environment

Un ambiente di sviluppo integrato (in lingua inglese integrated development environment ovvero IDE è un software che, in fase di programmazione, aiuta i programmatori nello sviluppo del codice sorgente di un programma.
Ne esistono diversi (DEV C++, Eclipse, Block Code), noi utilizzeremo il DEV C++.

Ma cosa c'è dietro un IDE?
Un ambiente di sviluppo integrato nasconde dietro alla sua intefaccia grafica diversi programmi:
- GUI.............................. interfaccia grafica
- EDITOR....................... per scrivere testo in formato ASCII, file sorgente
- COMPILATORE......... esegue le traduzione del linguaggio, produce file intermedi .obj (moduli oggetto)
- LINKER...................... rilega i file .obj prodotti dal compilatore e forma il file .exe su disco fisso
- LOADER.................... prende il file dal disco e lo carica in memoria centrale RAM
- DEBUGER.................. cerca errori presenti all'interno del codice, non produce file




Utilizzo di IDE DEV C++:

Prima di tutto una volta lanciato il programma dobbiamo creare un nuovo file
FILE->NUOVO->SORGENTE
a questo punto nell'Editor possiamo iniziare a scrivere il nostro sorgente:
#include <stdio.h>
// inclusione delle librerie, tutte le librerie finiscono con .h
using namespace std;
/* stringa obbligatoria da includere in C++
inizio programma*/
int main ()
{
printf("Ciao a tutti");
}
salviamo il file in formato .cpp
Abbiamo scritto il nostro primo programma in DEV C++

Ora creiamo qualcosa di più complesso e interattivo:

#include <stdio.h>

using namespace std;

int main ()
{
int a;
int b;
int tot;

      printf("Inserisci il valore si A: ");
      scanf("%d", &a);
// %d avvisa il compilatore che riceverà un valore intero e lo salverà nella variabile a
      printf("\nInserisci il valore si B: ");
      scanf("%d", &b);
    tot=a+b;
      printf("\nA + B = %d", tot);
    tot=a-b;
      printf("\nA - B = %d", tot);
    tot=a*b;
      printf("\nA x B = %d", tot);
}





giovedì 17 ottobre 2013

La tabella ASCII

Il tabella ASCII è una tabella che raccoglie simboli (alfabetici maiuscoli e minuscoli, numerici, di punteggiatura, speciali).
Il codice ASCII fu inventato molti anni fa per le comunicazioni fra telescriventi (infatti ci sono dei codici di comandi specifici che sono quasi incomprensibili, ma al tempo avevano la loro funzione), poi man mano e' diventato uno standard mondiale.
Parlando di un caso più pratico, quando qualcuno richiede un testo in formato ASCII, per esempio il vostro curriculum, oppure un articolo, ecc, significa che richiede un testo nel formato standard in modo che possa facilmente riutilizzarlo nei propri programmi.
Infatti il formato ASCII e' universalmente riconosciuto da tutti i computer, cosa che non e' vera nel caso di testi "formattati", cioe' con sottolineature, stili, grassetti, ecc.
Un file in formato ASCII puo' essere creato utilizzando il Blocco Note di Windows.



I simboli in tabella non sono disposti in modo casuale infatti a ogni simbolo viene associato un numero esadecimale, nella prima versione della tabella ASCII i simboli disponibili erano 128 (7 bit - da 0 a 127), poi è stata ampliata in 256 simboli e definita tabella ASCII estesa (8 bit - da 0 a 255). La tabella ASCII è stata creata per unire simboli a regole: ad esempio il simbolo 0 si trova in posizione 30(h).

Ad esempio la parola Ciao in codice asci risulterà essere 43-69-61-6F

Esercizio:
proviamo a salvare un testo in blocco note (formato ASCII) e lo stesso testo in Word e verifichiamo lo spazio occupato dai file:
Ciao a tutti in blocco note -> 12 byte (12 caratteri compresi gli spazi, 1 carattere 1 byte)
Ciao a tutti in Word          -> 19 968 byte
proviamo a salvare un file senza testo in Blocco Note e facciamo lo stesso in Word, verifichiamo lo spazio occupato dai file:
Blocco Note vuoto -> 0 byte (0 caratteri, 1 carattere 1 byte)
Word vuoto            -> 19 968 byte

Ricorda:
Il simbolo 5 in tabella ASCII corrisponde alla posizione 35(h), il simboli 1 invece alla posizione 31(h), se volessimo sommare questi due simboli avremo la seguente situazione: 35 + 31 = 36 dove 36(h) è la posizione del simbolo 6 in tabella ASCII.

domenica 13 ottobre 2013

Traduttore, Interprete e Compilatore

Genericamente, i traduttori sono programmi responsabili della traduzione fra due diversi linguaggi di programmazione. Essi generano normalmente programmi scritti in linguaggio macchina a partire da un linguaggio ad alto livello e si distinguono in: Interpreti e Compilatori.

È possibile programmare il computer usando vari linguaggi di programmazione 
          •  Ogni linguaggio ha i suoi pro e contro 
ma.....
          •  Alla fine, l’unico linguaggio che il computer capisce è il linguaggio macchina 

          •  Per usare altri linguaggi, occorre usare qualcosa in grado di “far capire” al computer gli altri linguaggi

Quando si realizza un software, il programmatore detta le istruzioni al computer tramite la scrittura di un codice sorgente in un determinato linguaggio di programmazione. Il codice sorgente però non è direttamente eseguibile dalla CPU (Central Processing Unit), è necessario “tradurlo” in linguaggio macchina, ossia un file binario contenente microistruzioni gestibili dal processore. Inoltre diverse architetture di processori prevedono linguaggi macchina differenti.
Il linguaggio macchina è composta da una sequenza di 0 e 1, ma leggere “numeri” non è molto facile 
per noi umani, conviene quindi tradurre questi codici numerici in qualcosa di più leggibile, ovvero stringhe più leggibili: LINGUAGGIO ASSEMBLY 
un istruzione in linguaggio macchina come la seguente "0100110011110" tramite l'assemblatore verrà associata a una "somma", il rapporto è quindi un rapporto 1:1 cioè ogni istruzione da assemblatore corrisponde a un istruzione in linguaggio macchina.

Un INTERPRETE per un certo linguaggio è un programma che “interpreta” appunto il linguaggio e fa sì che questo venga correttamente eseguito dal computer:
ogni istruzione del programma “viene interpretata” ogni volta che viene eseguita  
•  Per eseguire un programma, ho sempre bisogno dell’interprete

Un COMPILATORE è un programma che traduce una serie di istruzioni scritte in un determinato linguaggio di programmazione (codice sorgente) in istruzioni di un altro linguaggio (codice oggetto). Questo processo di traduzione si chiama compilazione. Il compilatore poi trascrive la traduzione in un file eseguibile (.exe). 

Esempio: dir->chiama interprete->che traduce in linguaggio macchina->viene eseguita la traduzione->si avvia l'istruzione in linguaggio macchina.

!L'interprete non salva la traduzione da nessuna parte
! Senza interprete i comandi non funzionano
! Il browser è un interprete
!Il compilatore è un traduttore.