ESERCITAZIONI: linguaggio C


pagine di Roberto Ricci L.S. "A. Righi", Bologna. Ultima revisione


 
 
 

Per iniziare


 
  1. Creare sul floppy A: con [Tasto Destro]Nuovo/Cartella una cartella dal nome lab2
  2. Salvare il corrente file in A: con il nome A:Es2
  3. Copiare in A: anche i file tc.gif, compila.gif e esegui.gif
  4. Usare Riduci a icona per mettere da parte la finestra sul floppy senza chiuderla
  5. Aprire il file A:Es2.htm per leggere e seguire il resto dell'esercitazione
  6. Ridurre le dimensioni della finestra su A: che deve restare visibile ma consentire la visibilità di un'altra nuova finestra

 
 

Variabili intere, indirizzo e contenuto; istruzione 'printf'


 
  1. Aprire l'ambiente TuboC++ con Start/Programmi/Turbo C++ 4.5/Turbo C++ oppure facendo doppio clic sull'icona presente sul Desktop
  2. ridimensionare la finestra in modo che sia visibile anche quella con il resto dell'esercitazione
  3. eventualmente aprire con File/New una finestra di editor
  4. selezionare il testo seguente, catturarlo con Modifica|Copia e poi trasferirlo nella finestra di editor del Turbo C++ mediante Edit|Paste
    int n;
    printf("l'indirizzo di della variabile n è %lu e il suo contenuto è %d",&n,n);
    n=0;
    printf("\nl'indirizzo di della variabile n è %lu e il suo contenuto è %d",&n,n);
    
  5. completarlo affinché divenga un programma
  6. salvare con File/Save as..., compilare con Project/Compile, eventualmente correggere e salvare di nuovo a compilazione corretta
  7. eseguire con Debug/Run
Una variabile ha

Tutte le variabili devono essere dichiarate prima di essere usate. La forma di una tale dichiarazione è:

  <tipo della variabile> <elenco di identificatori>;
Il simbolo '=' di uguale consente di assegnare un valore a una variabile.
n=0;
Il valore di una variabile viene visualizzato sulla console con l'istruzione
  printf(< stringa per il formato >,<elenco di identificatori o espressioni>);
Nella stringa di formato sono presenti caratteri preceduti dal simbolo '%'. In particolare:
Simbolo            Tipo di conversione  
                     
d                    	decimale                      
o                  	ottale senza segno                    
X                  	esadecimale senza segno                         
u                  	decimale senza segno                     
c                  	carattere singolo
s			stringa
e			reale in forma scientifica
f			reale con parte intera seguita da decimi, centesimi, ..
g     			reale con scelta automatica tra i due precedenti
Sono presenti inoltre altre sequenze di simboli come '\n' che ha la funzione di andare a capo della riga seguente.
 
 

Variabili intere, 'unsigned' e 'long'


 
  1. Selezionare il testo seguente, catturarlo con Modifica|Copia e poi trasferirlo nella finestra di editor del Turbo C++ mediante Edit|Paste
    int n=2*2*2*2*2*2*2*2*2*2*2*2*2*2*2-1;        // 2^15 - 1
    unsigned int m=2*(n+1)-1;                     // 2^16 - 1
    long int k=(n+1)*(m+1)-1;                     // 2^31 - 1
    unsigned long int l=2*(k+1)-1;                // 2^32 - 1
    
    printf("Una variabile di tipo 'int' occupa %d byte",sizeof(int));
    printf("\n       e ha valore compreso tra %d e %d",-n-1,n);
    printf("\nUna variabile di tipo 'short int' occupa %d byte",sizeof(short int));
    printf("\n       e ha valore compreso tra %d e %d",-n-1,n);
    printf("\nUna variabile di tipo 'unsigned int' occupa %d byte",sizeof(unsigned int));
    printf("\n       e ha valore compreso tra 0 e %u",m);
    printf("\nUna variabile di tipo 'long int' occupa %d byte",sizeof(long int));
    printf("\n       e ha valore compreso tra %ld e %ld",-k-1,k);
    printf("\nUna variabile di tipo 'unsigned long int' occupa %d byte",sizeof(unsigned long int));
    printf("\n       e ha valore compreso tra 0 e %lu",l);
    
  2. completarlo affinché divenga un programma; la function predefinita sizeof(<tipo di dati>) fornisce la dimensione, in byte, del tipo di dati che è indicato come argomento
  3. salvare con File/Save as..., compilare premendo sull'icona , eventualmente correggere e salvare di nuovo a compilazione corretta
  4. eseguire premendo sull'icona
  5. la dimensione dei tipi dipende dalla piattaforma sulla quale viene eseguito il programma. Questo è un difetto del linguaggio C. Modificare eventualmente il programma.
I simboli 'd', 'u', 'o', 'X' della stringa di formato dell'istruzione printf possono essere preceduti da 'l' per specificare che il corrispondente argomento è un long int, da 'h' per specificare che il corrispondente argomento è uno short int, mentre i simboli 'e', 'f', 'g' possono essere preceduti da 'l' per indicare un double.
 
 

Ripetizione 'for', istruzione 'scanf'

  1. Selezionare il testo seguente, catturarlo con Modifica|Copia e poi trasferirlo nella finestra di editor del Turbo C++ mediante Edit|Paste
    unsigned int n;
    unsigned long int somma=0;
    printf("Introduci un numero intero positivo: ");
    scanf("%u",&n);
    for (int i=0; i<= n; i++){
    	somma = somma + i;
    }
    printf("\nLa somma dei primi %u numeri interi positivi è %lu",n,somma); 
    
  2. completarlo affinché divenga un programma
  3. salvare e compilare, eventualmente correggere e salvare di nuovo a compilazione corretta
  4. eseguire scegliendo 100 come input
  5. eseguire un passo alla volta
  6. inserire nel programma un'altra variabile per calcolare n*(n+1)/2, visualizzarne il valore per confrontare con quello della variabile somma
Il valore di una variabile viene letto da console con l'istruzione
  scanf(< stringa per il formato >,<elenco di puntatori a variabili>);
Un puntatore a variabile è in questi casi semplicemente l'espressione &<nome varabile> che esprime l'indirizzo della variabile.
La stringa di formato è composta unicamente di caratteri preceduti dal simbolo '%' per interpretare la sequenza di immissione dei dati. Tali caratteri sono gli stessi già visti nel caso dell'istruzione printf, dove i simboli 'd', 'u', 'o', 'x' possono essere preceduti da 'l' per specificare che il corrispondente argomento è un long int, da 'h' per specificare che il corrispondente argomento è uno short int, mentre i simboli 'e', 'f', 'g' possono essere preceduti da 'l' per indicare un double.
 
 
  NOTA: Al termine di ogni sessione di lavoro fare una copia del floppy e poi spegnere il computer con Start/Chiudi sessione/Arresta il sistema.
pagine di Roberto Ricci L.S. "A. Righi", Bologna. Ultima revisione