mercoledì 14 marzo 2012

Le Operazioni Aritmetiche in C

Entriamo nel vivo della programmazione, analizzando le operazioni che è possibile fare con il linguaggio C. Creare un programma in C ci serve per risolvere dei problemi che spesso, anzi sempre, si riconducono a problemi matematici.

E' quindi chiara la necessità di poter svolgere delle operazioni con il nostro linguaggio di programmazione, affinché possiamo creare dei programmi. Vediamo quindi le principali operazioni in C, dividendole in tre categorie: operazioni aritmetiche, operazioni logiche ed operazioni di confronto.

Fuori da queste categorie c'è l'operazione di assegnamento. Come dice stesso il nome, l'assegnamento è un'operazione che permette di assegnare un valore ad una variabile. In C, l'operatore di assegnamento è il simbolo uguale (=). Vediamo un esempio:

#include <stdio.h>
int main()
{
  int a;
  a=5;
  printf("Valore di a: %d", &a);
  return 0;
}


martedì 13 marzo 2012

Dichiarazione di Variabili e Costanti

Gli ultimi due post (quello sui tipi di dati e sulla differenza fra variabili e costanti) ci permettono di proseguire il cammino nella conoscenza del linguaggio C. Questo perché i due argomenti sono uniti fra loro dal processo di dichiarazione di variabili e costanti.

Torniamo un attimo indietro:

  • Variabileelemento del programma a cui si assegna un valore che può cambiare da un'istanza all'altra del programma o anche durante la stessa istanza del programma.
  • Costante: elemento del programma cui si assegna un valore che rimane statico per qualsiasi esecuzione del programma.
Ricordiamo poi anche i tipi di dati:

  • int
  • float
  • char
  • void
  • boolean 

La dichiarazione non è altro che un procedimento, con il quale creeremo una variabile di un particolare tipo. E' con la dichiarazione, quindi, che diremo il tipo di una variabile. In C, la dichiarazione di una variabile è fatta in questo modo:

typeOfData nameVariable;

a sinistra, quindi, metteremo il tipo di dato (int, float ...) e a destra il nome della variabile, seguito da punto e virgola (in C sono fondamentali!!). Se vogliamo creare una variabile intera lo faremo in questo modo:

int variabile;

Più variabili di uno stesso tipo.

In C possiamo dichiarare più variabili di uno stesso tipo su una sola riga. Immaginiamo di voler dichiarare tre variabili intere. Dovremmo scrivere in questo modo:

int a;
int b;
int c;

Il linguaggio C, invece, ci da la possibilità di accorpare queste dichiarazioni, separando i vari nomi delle variabili con la virgola. Per cui otteniamo:

int a,b,c;


lunedì 12 marzo 2012

Variabili e Costanti

Nel post precedente abbiamo parlato di tipi di dati. Ci avviamo, quindi, verso il cuore della programmazione in C, anche se per il momento siamo ancora alle basi.

Più volte ho parlato di variabili meno volte invece di costanti. Vediamo cosa sono e cosa c'entrano con la programmazione, in particolare con la programmazione in C.

Le Variabili


Facciamo un ragionamento sul nome: variabile mi da l'idea di un qualcosa che varia nel tempo. Pensiamo ad esempio alla temperatura di una giornata: questa cambia durante il corso del tempo, avvertendo temperature più basse al mattino e più calde verso il pomeriggio. Possiamo dire che l'informazione temperatura è una variabile in funzione del tempo.

Il concetto di variabile in C non assume un significato differente, solo che al tempo dobbiamo sostituire l'esecuzione di un programma. Ad esempio, immaginiamo di scrivere un programma che calcoli la somma di due numeri. Non sappiamo a priori quali sono i numeri sui quali calcoleremo la somma. Possiamo inserire (5,2) oppure (4,6) oppure ancora (123, 34). Sono elementi che variano da un'istanza ad un'altra del programma. Tali informazioni sono appunto variabili. Veniamo allora alla definizione:

Una variabile è un elemento del programma a cui si assegna un valore che può cambiare da un'istanza all'altra del programma o anche durante la stessa istanza del programma.

Nell'esempio fatto all'inizio della guida, che riporto qui sotto, a è una variabile di tipo intero.


#include <stdio.h>
int main(void) 
{
   int a;
   printf("Scrivi un numero: ");
   scanf("%d", &a);
   printf("\nHai scritto il numero: %d", a);
   System("PAUSE");
}


Le costanti


Analogamente per il ragionamento fatto sulle variabili, una costante è qualcosa che rimane statico, fermo nel tempo. Vediamo un esempio, calcolando l'area di un cerchio. La formula ci dice che l'area del cerchio è data dalla misura del raggio al quadrato per il valore PiGreco. E' evidente che il raggio è una variabile, ma PiGreco? Cambia nel tempo?
Certamente no (in matematica è definito numero fisso del cerchio), qualsiasi siano le misure del raggio, il valore del numero fisso sarà sempre 3,14...

E' chiaro quindi che PiGreco è una costante per il nostro programma. Più in generale:

una costante è un elemento del programma cui si assegna un valore che rimane statico per qualsiasi esecuzione del programma.


In questo esempio, MAX è una costante con valore 100.


#include <stdio.h>
#define MAX 100
int main(void) 
{
   int a;
   printf("Scrivi un numero: ");
   scanf("%d", &a);
   printf("\nHai scritto il numero: %d", a);
   System("PAUSE");
}






venerdì 9 marzo 2012

Tipi di dati in C

Il linguaggio C è un linguaggio fortemente tipato: questo significa che ogni variabile dovrà avere un tipo, e questo rimarrà tale per tutta la durata dell'esecuzione.
Anzitutto, definiamo cosa è un tipo di dato:

un tipo di dato rappresenta l'insieme dei valori che quel dato può avere. In parole povere rappresenta il dominio dei valori corretti.

domenica 18 dicembre 2011

Leggere l'input da tastiera: scanf

Dopo aver fatto una panoramica sul linguaggio C, vediamo ora come è possibile prendere l'input da tastiera mediante la funzione scanf.
 

Molte volte torna utile chiedere all'utente un valore (se ad esempio vogliamo creare una piccola calcolatrice è ovvio che sia l'utente a scegliere cosa vuole sommare) da utilizzare nei propri programmi. Questo trova riscontro in diversi ambiti:
  • Per calcolare l'output di un'operazione (ad esempio una somma)
  • Per permettere all'utente di compiere una scelta
  • Per leggere dei dati
Vogliamo quindi far si che il programma rimanga in attesa di un nostro valore da tastiera come in questo caso.


Il programma che vedremo oggi in analisi sarà molto semplice, non farà altro che stampare a video il valore che scriverete. Utilizzeremo la funzione scanf, una funzione base di C che memorizza in una variabile il valore che andremo a scrivere.

scanf("type", &variable);

Affronteremo il discorso dei tipi e delle variabili nel prossimo post, per ora ricordiamoci che useremo come tipo il %d (che si riferisce ai numeri interi) e dichiareremo come variabile a intera.

#include <stdio.h>
int main(void) 
{
   int a;
   printf("Scrivi un numero: ");
   scanf("%d", &a);
   printf("\nHai scritto il numero: %d", a);
   System("PAUSE");
}

Il risultato che avremo è il seguente:


Nel prossimo post faremo una parentesi teorica sui tipi di dati ;-)


venerdì 9 dicembre 2011

Il primo programma in C

Nel post di oggi vedremo una introduzione al linguaggio C, uno dei due linguaggi ammessi per le competizioni delle Olimpiadi Internazionali. In realtà il blog si dedicherà in modo preciso quasi esclusivamente al C, dando uno sguardo solo sommario al Pascal.

Innanzi tutto c'è da dire che il C è un linguaggio di programmazione molto utilizzato soprattutto nella programmazione di sistema e questo lo fa essere un linguaggio di medio livello sebbene non è distante dalla forma e dalla sintassi dei linguaggi ad alto livello.

Scrivere codice in C

Per poter programmare in C è opportuno dotarsi degli strumenti necessari. Se usi Windows dovrai installare dev c (che puoi scaricare da qui). Se invece utilizzi linux quel che dovrai fare è installare il compilatore gcc attraverso questo semplice comando:

sudo apt-get install gcc

Una volta procurati gli strumenti dovremo aprire un nuovo file di testo (in Dev-C lo farai dal menu File) e salvarlo con estensione .c che è la tipica estensione del linguaggio C.

Ciao Mondo!

Vediamo ora il codice del nostro primo programma in C, il classico Hello World! stampato a video.


#include <stdio.h>



int main(void) {
   printf("Hello World!\n");
}
Su Windows c'è una piccola variazione:

#include <stdio.h>


int main(void) {
   printf("Hello World!\n");
   System("PAUSE");
}

Eseguiamo il codice

Vediamo ora se questo codice funziona: se stiamo utilizzando Dev-C andiamo in alto a sinistra e clicchiamo su un bottone a quattro colori che significa "Compila ed Esegui". Si aprirà la schermata del dos:

Hello World!
Premi un tasto per continuare...



Su Linux invece, giacché utilizziamo GCC dovremo compilare ed eseguire il codice a riga di comando in questo modo:


gcc nomefile.c




E poi:


./a.out



Comparirà la scritta:

Hello World!

Questo è tutto per oggi!
Stay tuned!

giovedì 8 dicembre 2011

Benvenuti su Olimpiadi di Informatica

Benvenuti su questo blog ;-)


Sono contento di poter condividere la mia passione per l'Informatica con voi, in particolare per una delle più belle competizioni che esistano, ovvero le Olimpiadi di Informatica che ogni anno mettono in competizione milioni di studenti di tutto il mondo.

Anche io vi ho partecipato, e sono arrivato alle fasi territoriali. Ora ho deciso di aprire questo blog per condividere con voi queste mie esperienze affinché siano utili ad altri che passeranno di qui.

Buona permanenza.
Alfonso