Percorso: ilMac.net > Scuola di Mac > Corsi > Il linguaggio C


Il linguaggio C

Introduzione alla programmazione

“Per l’eleganza della sintassi e le compattezza dei costrutti, il C è una sfida permanente alle capacità intellettuali del programmatore”.
(‘Guida al C’ MC GRAW HILL).

Che dite, lo impariamo?
Il C è un linguaggio di alto livello con un insieme ristretto di costrutti di controllo e parole chiave (circa trenta), ma possiede un buon numero di operatori. Tra i linguaggi di basso livello è quello di piu’ alto livello. Attenzione a non confondervi: linguaggio a basso livello non significa piu’ facile da imparare ma, al contrario, è piu’ difficile poiché in grado di operare anche a basso livello nel computer, con istruzioni che si fanno via via piu’ incomprensibili.

Il C e' diventato un linguaggio professionale ampiamente utilizzato perché ha appunto strutture di alto livello ma puo' maneggiare attivita' di basso livello. Produce inoltre programmi efficienti e puo' essere compilato su un'ampia gamma di sistemi operativi.
Il suo trampolino di lancio è stato UNIX, sistema operativo di grandissima stabilità. Il C ne ha seguito le sorti fin dall’inizio divenendo il linguaggio di programmazione preferito da studenti universitari e istituti di ricerca.
Lo standard per i programmi C in origine era dato dalle caratteristiche messe a punto da Dennis Ritchie. In seguito, al fine di rendere il linguaggio piu' accettabile a livello internazionale, venne messo a punto uno standard internazionale chiamato ANSI C (American National Standards Institute). Il C non venne modificato e, nella versione ANSI attuale include un numero limitato di istruzioni, ma ogni funzione diversa dai costrutti di controllo o dalle operazioni standard è affidata a un insieme di librerie esterne. Ogni programmatore puo’ aggiungerne di nuove rendendo la programmazione estremamente versatile e flessibile.

Ma iniziamo...

Ecco il classico “Hello World”.

#include <stdio.h>

main()
{
printf(“Hello World”);

}

Cerchiamo di analizzarlo.
L’istruzione #include <stdio.h> significa includi <stdio.h> che sta per ‘standard input/output’. Con questa istruzione includiamo nel nostro programma la libreria standard del linguaggio C che consente di gestire i flussi in entrata e in uscita. Per esempio la lettura di un dato immesso con la tastiera (ovvero un input), oppure l’apparizione di una stringa di testo sullo schermo (un output).

Il main() è il corpo del programma, dove saranno racchiuse le nostre istruzioni. Bisogna aprire e chiudere le graffe rispettivamente all’inizio e alla fine del main.

L’istruzione printf(“ “) è l’istruzione che ordina di scrivere una stringa di testo. Il testo andrà scritto tra doppi apici che a loro volta saranno racchiusi tra le parentesi tonde. Alla fine di ogni linea di codice occorre sempre aggiungere un punto e virgola.

Come editore/compilatore consiglio CodeWarrior. Per l’apprendimento del linguaggio va bene anche la versione Lite reperibile gratuitamente su Internet.

Cosa sono l’editor ed il compilatore?
L’editor è simile ad un programma di videoscrittura con il quale scrivete le linee di codice (vedi anche ScriptEditor negli articoli su AppleScript) e che ha al suo interno un debugger, ovvero un sistema che ricerca gli errori eventualmente commessi all’interno del vostro listato e ve li segnala.
Un programma come CodeWarrior ha integrato sia il sistema di editing che di debugging e di compilazione. Ma è anche possibile usare strumenti diversi, ad esempio scrivere il listato con SimpleText e compilarlo con un compilatore. Tuttavia, per comodità è preferibile l’utilizzo di un sistema integrato.
Il compilatore traduce le istruzioni scritte in C in linguaggio comprensibile al microprocessore, ovvero in Assembler. Il computer infatti non lavorerà con le istruzioni scritte da noi, ma con le istruzioni molto piu’ a basso livello tipiche di tale linguaggio. Non ci occuperemo di Assembler, ma accludo qui sotto un esempio di listato per fare mente locale su questo linguaggio e mostrarvi quanto appaia incomprensibile di primo acchito e non solo, poiché richiede uno studio molto piu’ approfondito rispetto agli altri linguaggi.


CSEG
main_: jmp inizio
mess db 'ABC’,10,13,13
mess2 db ' ABCDEF',10,13,10,13,'$'
hjkf db ' '
inizio:
MOV AX,CS
MOV DS,AX
MOV AH,9 ;
MOV DX,OFFSET mess2
INT 21H

MOV AH,4CH ;per finire programma
INT 21H ;fine programma
RET
END


Le variabili

Se avete seguito il mio corso di AppleScript sarete piu’ facilitati nell’apprendimento di alcuni concetti.
Iniziamo a parlare delle variabili (vedi relativo articolo di AppleScript).
Ecco all’interno di un listato C come si dichiara una variabile. In questo caso è un numero intero (int) ma puo’ essere anche a virgola mobile (float):

#include <stdio.h>

main() {

int a;

}

int a, ovvero numero intero a.
Ora vediamo l’uso di una variabile in un listato piu’ “useful”. Ecco per esempio il listato di un programma che scrive a video la somma di due numeri interi.

#include <stdio.h>

main() {

int a = 5;
int b = 4;
int c = a+b;

printf("Risultato: %d",c);
}

Abbiamo dichiarato due variabili ( a , b) di tipo intero (int) e abbiamo assegnato loro un valore (ad a 5, a b 4), in seguito è abbiamo dichiarato un’altra variabile sempre int il cui valore sarà quello dato da a + b.
Infine per mostrare il risultato a video ecco l’istruzione printf.
Se deve essere stampato, oltre al testo prestabilito (“Risultato:”), anche una variabile, dobbiamo scrivere tra i doppi apici %d nel caso di una variabile intera, %f nel caso di una variabile a virgola mobile (dichiarata come float), e fuori dagli apici, ma prima della chiusura della tonda, dobbiamo dichiarare la variabile da stampare a video. %d serve esclusivamente ad indicare il punto all’interno della stringa di testo nel quale dovrà essere stampata la variabile.



Data di pubblicazione: 25-04-1999
L'intero contenuto di questo sito dal 1998 del Team di ilMac.net, vietata ogni riproduzione senza il consenso scritto da parte degli autori. - Pantarei srl - P.IVA 02162920645