Pages

Translate

Ads 468x60px

martedì 9 luglio 2013

Evoluzione dei linguaggi di programmazione

EVOLUTION OF A COMPUTER
USER.


Interessante vedere con esempi l’evoluzione dei linguaggi di programmazione senza entrare troppo nei dettagli soprattutto per me non  programmatore  .
  
Per approfondir la storia dei linguaggi di programmazione vi invito a visitare questo sito :

Tutti questi linguaggi potremmo dividerli in 2 grosse categorie:
  • linguaggi di programmazione a basso livello
  • linguaggi di programmazione ad alto livello

Linguaggi di programmazione a basso livello.

Un’esempio di linguaggio a basso livello, basta pensare i primi programmatori, che per programmare utilizzavano il linguaggio macchina, dove costruivano istruzioni con lunghe sequenze di 0 e 1.
Ma questo tipo di linguaggio comportava molti problemi,ad esempio l’identificazione di un errore era davvero complessa.
Un passo avanti è stato fatto con linguaggio Assembler, dove le istruzioni non erano + dei 0 e 1, ma si utilizza un nome simbolico per ogni tipo di istruzione, in questo modo migliorano moltissimo la leggibilità del codice e la sua comprensione.
I programmi scritti in assembler non potevano però essere eseguiti dalla macchina, ed è qua entra in gioco un’ulteriore programma,chiamato assemblatore, che aveva l’unica funzione ditradurre le istruzioni da Assembler a linguaggio macchina(0-1).
Il linguaggio assembler è legato al microprocessore, cioè se produciamo un programma in Assembler su un computer con microprocessore di tipo (a), questo non potrà essere eseguito su un computer con microprocessore di tipo (b), e il programma andrebbe riscritto completamente.

Linguaggi di programmazione ad alto livello.

In questo tipo di linguaggi le istruzioni sono rappresentate da parole inglesi, in modo da rendere ancor più comprensibile il codice e il suo funzionamento rispetto al linguaggio Assembler.
Ogni istruzione di un linguaggio ad alto livello, corrisponde a 1 o più istruzioni a basso livello.
Con l’introduzione di parole è facile intuire che la velocità di apprendimento di questi linguaggi e’ altissima, e lo sviluppo di nuovi programmi sia molto più rapido rispetto a prima.
Come l’assemblatore per il linguaggio Assembler, anche qui ci sono dei programmi che si occuperanno della traduzione delle istruzioni in linguaggio macchina: interprete o compilatore, a seconda dei casi.

Interprete

Ha lo scopo di permettere l’esecuzione di un programma ad alto livello, senza il bisogno di alcuna compilazione.
L’interprete compie l’operazione di esecuzione e traduzione simultaneamente, controlla un’istruzione per volta, la traduce in codice macchina e successivamente la manda in esecuzione.
La traduzione delle istruzioni avviene MENTRE il programma e’ in esecuzione, vengono effettuate traduzioni “al volo”.

Pro:

  • Alta portabilità

Contro:

  • Il cliente necessita di possedere i file sorgenti prodotti dal programmatore, di conseguenza potrebbe modificare il programma.
  • Richiede più memoria per funzionare (per la traduzione istruzioni)
  • Meno veloce rispetto a un programma compilato (per la traduzione istruzioni)

Compilatore

Anzichè tradurre ogni volta le istruzioni , viene fatta una traduzione unica del codice sorgente creando un file OBJ(programma in linguaggio macchina), successivamente tramite la procedura di linking, viene generato l’eseguibile del programma.

Pro:

  • Il cliente non possedendo i sorgenti non può modificare il programma
  • Veloce, in quanto il programma e’ già in linguaggio macchina,non necessita di ulteriori traduzioni per essere eseguito.



Grazie.

La tecnologia oggi !


La tecnologia oggi !


Oggi la tecnologia influenza in modo decisivo il benessere degli individui e della collettività, nonché la capacità di tutte le specie animali di controllare e adattarsi al proprio ambiente naturale. L’utilizzo da parte dell’uomo della tecnologia ha avuto inizio con la conversione delle risorse naturali in strumenti semplici.  Il controllo del fuoco ha aumentato le fonti disponibili di cibo e l’invenzione della ruota ha aiutato l’uomo a viaggiare in uno spazio sempre più ampio.  I recenti sviluppi dei media tra cui la stampa, i telefoni e Internet, hanno diminuito 
 le barriere fisiche nel comunicare e ha permesso agli esseri umani di interagire liberamente.

La tecnologia avanzata.
Negli ultimi decenni la tecnologia è diventata parte integrante della vita quotidiana, modificando radicalmente il nostro stile di vita.
La recente diffusione del cinema 3D, molto noto nelle proiezioni cinematografiche, funziona con la tecnologia IMAX ed ha messo in contatto il pubblico con nuove idee della cinematografia. Inizialmente in questi cinema venivano proiettati solo documentari, perché servivano speciali sistemi di ripresa. Negli ultimi anni, però, sono stati prodotti in questo formato sempre più film commerciali.

Windows 8.1 agli OEM per fine agosto




di Fabio Boneschi, pubblicata il 09 Luglio 2013, alle 13:31 nel canale Sistemi Operativi
“Non sono ancora definite le date precise ma Microsoft conferma che per agosto gli OEM riceveranno Windows 8.1. Per gli utenti finale sarà necessario attendere ancora qualche settimane e poi sarà disponibile l'aggiornamento gratuito”


Stando alle dichiarazioni di Tami Reller -Windows CFO - i produttori di PC riceveranno una versione di Windows 8.1 a fine agosto. Questo primo rilascio agli OEM segue l'attuale periodo di preview che consente ancora qualche test e un primo approccio con le novità introdotte. Stando a questa roadmap i primi pc con Windows 8.1 potrebbero essere in commercio con l'inizio dell'autunno.
Ulteriori informazioni dedicate alla disponibilità dell'aggiornamento a Windows 8.1 per l'utente finale saranno rese disponibili nei prossimi mesi. Pare quindi che al momento attuale non sia ancora fissata una data di lancio ma l'aggiornamento sarà sicuramente gratuito per già è in è in possesso di un sistema Windows 8.

Con il muovo aggiornamento gli utenti potranno accedere a una serie di novità su più ambiti:Microsoft ha migliorato le possibilità di personalizzazione del menu Start, ha ulteriormente integrato SkyDrive come soluzione di salvataggio dei dati in cloud e, atteso dagli utenti, ha fatto la propria ricomparsa il pulsante Start che però ha deluso sui reali effetti. Infatti, il nuovo pulsante Start è un'ulteriore scorciatoia per accedere all'ambiente Modern UI.

Learn From Other: Operatori nel linguaggio c.

Learn From Other: Operatori nel linguaggio c.: OPERATORI ed ESPRESSIONI Il linguaggio C offre una serie di operatori  ARITMETICI RELAZIONALI LOGICI ASSEGNAZIONI INCREMENTO E ...

giovedì 14 febbraio 2013

CONTROLLO DI INSERIMENTO DATO UN FORMATO

CIAO A TUTTI OGGI VI LASCIO UN UN PROGRAMMA  CON LE STRINGHE O ARRAY.

//PROGRAMMA CHE CONTROLLA LA DATA IN FORMATO GGMMAAAA
#include
#include
#include
#include
main()
{
char data[8];
int i=0;
int a;
printf("\n\nInserisci la data in questo formato: GGMMAAAA\n\n");

while(i<8 font="">// controlla se l'indice è minore di 8 fa il seguente
{
a=getch();//la getch fa si che i caratteri numeri non vengano visualizzati all'utentee e rispetti il formato
if(isdigit(a)!=0)// se i caratteri numerici è diverso da 0 fa il seguente
{
data[i]=a;
i++;
}
if(isalpha(a)!=0) // se i caratteri alfabetici sono diversi da 0 visualizza il seguente
printf("\nIl carattere che hai inserito non e' un carattere numerico!!!!\n");
}
data[i]='\0';// una volta inserita il formato data si ferma

printf("\n\n%s\n\n",data);// visualizza  il formato data
system("PAUSE");
return 0;
}





martedì 5 febbraio 2013

ARRAY MONO E MULTIDIMENSIONALI.

ARRAY E STRINGHE
Nel linguaggio C, un array o vettore è un insieme di variabili dello
stesso tipo memorizzate consecutivamente e hanno  lo stesso nome.
Gli array possono essere differenziati dalla loro dimensione.
–monodimensionale
–multidimensionale
° Riferimenti a un array o vettore(monodimensionale):
– tipo di variabile
– il nome del vettore
– numero di posizione (o indice)bensi 
ogni elemento e identificato all’interno dell’array da un numero d’ordine detto 
indice dell’elemento.
– 
il numero di elementi del vettore e detto lunghezza (o dimensione) del vettore

*esempio : 
 tipo variabile nomevettore[numeroposizione] ;
  int vettore1[6]={1,2,3,4,5,6}; //viene riempito 6 elementi nelle locazione di memoria consecutive  contenenti interi//

*ci aspetteremo una cos del genere:
      [1][2][3][4][5][6]
       0   1  2   3  4  5
NOTA:
L’esempio seguente dichiara un array 
chiamato vettore che ha sei elementi:
In C il primo elemento di qualsiasi array ha indice 
zero.
In questo caso, dato che vettore ha 6 elementi, ha 
valori di indice che 
andranno da 0 a 5. 
il primo elemento in vettore è rappresentato da
vettore[0] e l’ultimo da vettore[5].
° Riferimenti a un array o vettori (multidimensionali):
– tipo di variabile
– il nome del vettore con piu indici ( righe e colonne)
– numero di posizione (o indice)bensi 
ogni elemento e identificato all’interno dell’array da un numero d’ordine detto 
indice dell’elemento.
– Vettori bidimensionali o matrici : il primo indice
identifica la riga, il seconda la colonna .
*esempio
 tipo di variabile mat1[indici][indici];

int  mat1 [4][5];   // in  questo caso sara 4 righe per 5 colonne ovvero matric 3x4//

NOTA:
– Anche gli array a più dimensioni vengono inizializzati allo stesso
modo di quelli monodimensionali


martedì 29 gennaio 2013

Ciao amici oggi  vi lascio un piccolo programma divertente .
 GIOCO DEL 21 :D

#include
#include
#include
int main()
{
int scelta=1;
int giocatore1=1;
int giocatore2=1;
int lancio1;
int lancio2;
int totale1=0,totale2=0;
srand(time(0));
printf("\n******GIOCO DEL 21******\n");
while(scelta==1){
    printf("BUON DIVERTIMENTO");                
    printf("\n INIZIO=1 \n ESCI=0 \n");
scanf("%d",&scelta); 
while(giocatore1==1){
printf("\nInizia il primo giocatore\n");
printf("\nVuoi Lanciare il dado?");
printf("\n 1=si 0=no\n");
scanf("%d",&giocatore1);
if(giocatore1==0)
break;
lancio1=rand()%6+1;
totale1=totale1+lancio1;
printf("\nIl tuo lancio e'= %d\n",lancio1);
printf("\nIl tuo punteggio e'= %d\n",totale1);
}
if(totale1>21){
printf("\nAl momento sei fuori aspetta il risultato de secondo gioccatore\n");
printf("\nINIZIA IL SECONDO GIOCATORE\n");
}
while(giocatore2==1){
printf("\nInizia il secondo giocatore\n");
printf("\nVuoi Lanciare il dado?");
printf("\n 1=si 0=no\n");
scanf("%d",&giocatore2);
if(giocatore2==0)
break;
lancio2=rand()%6+1;
totale2=totale2+lancio2;
printf("\nIl tuo lancio e'= %d",lancio2);
printf("\nIl tuo punteggio e'= %d\n",totale2);
printf("\nGIOCATORE 1 = %d\nGIOCATORE 2 = %d",totale1,totale2);
}
if(totale2>21){
printf("\n*** Hai perso D: ***");
printf("\n\n***Il primo giocatore vince***\n\n");
}

if(giocatore1==0&&giocatore2==0){
printf("primo giocatore = %d\nsecondo giocatore = %d",totale1,totale2);
if(totale1>totale2){
printf("\n***Vince il primo giocatore***\n ");
}
if(totale1==21){
printf("\nVince il primo giocatore***\n");
}
if(totale1>21){
printf("\n***Vince il secondo giocatore***\n"); 
}
if(totale2==21){
printf("\nVince il secondo giocatore***\n");
} 
if(totale2>21){
printf("\n***Vince il primo giocatore***\n"); 
}              
if(totale1==totale2){
printf("\n***PAREGGIO***\n");
}
else{
printf("\n***HAI VINTO***\n ");
}
}
}

system("pause");
return 0;
}


giovedì 13 dicembre 2012

Operatori nel linguaggio c.

OPERATORI ed ESPRESSIONI
  • Il linguaggio C offre una serie di operatori 
  1. ARITMETICI
  2. RELAZIONALI
  3. LOGICI
  4. ASSEGNAZIONI
  5. INCREMENTO E DECREMENTO
OPERATORI ARITMETICI
  • Gli operatori  aritmetici  in C sono :
  1.  +  somma (Effettua l'operazione di somma fra 2 espressioni.)
  2.  -   sottrazione(Effettua l'operazione di differenza fra 2 espressioni.)
  3.  *  moltiplicazione(Effettua l'operazione di moltiplicazione fra 2 espressioni.)
  4.  /   divisione(Effettua l'operazione di divisione fra 2 espressioni.)
  5. &  modulo (Resto della divisione valori interi (char, int, long))
OPERATORI RELAZIONALI
  • Permettono il confronto di coppie di valori tra loro omogenei (dello stesso tipo).
  • Generano un risultato logico (vero o falso).
  • Sono spesso utilizzati come condizione di controllo dell'esecuzione di un programma.
  • In c l'espressione è vera(se assume un valore diverso da zero) ed è falso(se assume il valore zero).
  • Essi sono :
  1. >      maggiore((vero) se il valore 1 e' maggiore del valore 2.)||((falso) in caso contrario.)
  2. >=    maggiore o uguale((vero)se il valore 1 e' maggiore o uguale al valore 2)||((falso)cntrario)
  3. <      minore((vero) se il valore 1 e' minore del valore 2)||((falso) in caso contrario.)
  4. <=   minore o uguale((vero)se il valore 1 e' minore o uguale al valore 2)||((falso)cntrario)
  5. ==    uguale((vero) se le 2 espressioni ritornano valori uguali.)||((falso) in caso contrario.)
  6. !=     diverso((vero) se le 2 espressioni ritornano valori differenti.)||((falso) in caso contrario.)
DI SEGUITO ALCUNI ESEMPI DI ESPRESSIONI RELAZIONALI:
  • IL risultato di un'espressione relazionale è un valore logico (vero o falso):
  • SE     i=5    e     j=7      allora :
* i  >    j   --->   è falso
* i  <    j   --->   è vera
* i  >=  j   --->   è falso
* i  <=  j   --->   è vero
* i  ==  j   --->   è falso
* i  !=   j   --->   è vero
OPERATORI LOGICI
  • A questa categoria appartengono agli operatori booleani:
  1. &&   --->AND   (Valuta la 1°espressione e se questa e' falsa, ritorna 0 senza valutare la 2°; altrimenti valuta la 2°espressione. Se quest'ultima e' falsa ritorna 0 altrimenti ritorna 1.)         
  2. ||       --->OR      (Valuta la 1°espressione e se questa e' vera, ritorna 1 senza valutare la 2°; altrimenti valuta la 2°espressione. Se quest'ultima e' vera ritorna 1 altrimenti ritorna 0.)
  3. !       --->NOT    (espressione ritorna 0 se l'espressione ritorna un valore diverso da 0; ritorna 1 se l'espressione ritorna il valore uguale a 0.)
OPERATORI DI ASSEGNAMENTI
  • La sintassi dell'operatore di assegnazione  ecco qua uno esempio:
nome_variabile=espressione
a=10  
Alla variabile a sinistra dell'operatore "=" viene assegnato il risultato o il valore dell'espressione a destra.
  • Un altro caso particolare è l'assegnazione multipla, che permette di assegnare lo stesso valore alle altre variabile ecco qua uno esempio:
variabile_1=variabile_2=variabile_n=espressione
a=b=c=10

OPERATORI DI
INCREMENTO E DECREMENTO
  • In C esistono operatori speciali :                                                                                                   ++    incremento di uno ("autoincremento")                                                                                 --      decremento di uno ("autodecremento"
  • Essi permettono di incrementare o decrementare nelle variabile n cui sono stati applicati.
  • Possono essere applicati i 2 modi :                                                                                                           Prefissa(es.++i) : la veriabile viene modificata prima di utilizzare il valore.                                   Postfissa(es.--i) : la veriabile viene modificata dopo averne utilizzato il valore. 







mercoledì 5 dicembre 2012

LE BASI NELL’AMBIENTE C


Dichiarazione di variabili.

Oggi andremo a vedere gli elementi di base di un programma che sono le variabili e le costanti.
In C le variabili devono essere dichiarate prima di essere usate e all’inizio del programma.
Si possono definire molti tipi di variabili numeriche, ad esempio con "int" si indicano variabili che
possono contenere solo numeri interi, con "float"variabili che possono contenere numeri con la
virgola.

Ecco una tabella riassuntiva dei tipi di dati definibili: 


Tipo                          Lunghezza          Range (valori minimi e massimi)


unsigned char           8 bits                         0 fino 255        
                                                                   
char                           8bits                        -128 " 127

int                             16bits                -32,768 " 32,767


long                          32bits      -2,147,483,648 " 2,147,483,647 



float                         32bits      3.4 * (10**-38) " 3.4 * (10**+38)











double                    64bits      1.7 * (10**-308) " 1.7 * (10**+308)


*Per dichiarare una variabile basta scrivere il tipo seguito dal nome che decidiamo per la variabile
stessa, ad esempio:

int numero;    /*nel caso in cui volessi inserire un numero intero */


float numero;  /*nel caso in cui volessi inserire un numero con la 
virgola */



























*Le regole quindi sarebbe di scrivere le variabili a lettere minuscole, e se si vuole si può usare il
carattere “_”. Per esempio, si può fare:

int numero_1;
float numero_1;

*Come assegnare un valore ad una variabile:

int  numero = 1000;

abbiamo introdotto l'operatore di assegnamento “ = ”, che assegna il valore ad una variabile. In
questo caso abbiamo dato a numero il valore 1000.

                                                 *FUNZIONI:

-La funzione printf serve per indicare che sara visualizzato un intero o numero con la virgola, sempre è quando con una specifica di conversione %d -%f che indicheranno che i dati saranno interi o con la virgola come stato detto prima.
Andiamo ora a semplificare le cose con un esempio:

             printf (“Il valore di Numero e' %d.”,numero1);
             printf (“Il valore di Numero e' %f.”,numero1);

-La funzione scanf della libreria standard stdio.h è utilizzata per leggere i dati della tastiera.
Andiamo ora a semplificare le cose con un esempio:

             scanf (“%d”,&numero1);

-Questa scanf ha due argomenti: “%d” e &numero1. Il primo indica il tipo di dato che dovrà essere immesso dall’utente. La specifica di conversione %d indica che il dato dovrà essere un intero . Il secondo argomento incomincia con una E commerciale & detta in C operatore di indirizzo, seguita dal nome della variabile. La E commerciale quando è combinata con il nome della variabile , indica alla scanf la locazione di memoria in cui è immagazzinata la  variabile numero1. Il computer quindi immagazzinerà il valore della variabile numero1 in quella locazione.


*L’istruzione
return 0;

restituisce il valore 0 all’ambiente del sistema operativo in cui il programma è stato eseguito.
In questa tabella sono riportate le specifiche di conversione per printf e scanf:

Tipi di dato                         specifiche conversione per 
                                                  printf-scanf

double                                            %f

float                                                %f

int                                                   %d

short                                               %hd

char                                                %c




PS: in seguito gli operatori aritmetici.
A presto :D

Visualizzazioni totali

 

Sample text

Sample Text

lokote barzus

Sample Text