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 lab6
  2. Salvare il corrente file in A: con il nome A:Es6
  3. Usare Riduci a icona per mettere da parte la finestra sul floppy senza chiuderla
  4. Aprire il file A:Es6.htm per leggere e seguire il resto dell'esercitazione
  5. Ridurre le dimensioni della finestra su A: che deve restare visibile ma consentire la visibilitÓ di un'altra nuova finestra

 
 

Ambito di una variabile e suo tempo di vita


 
  1. Selezionare il testo seguente, catturarlo con Modifica|Copia, poi trasferirlo nella finestra di editor del Turbo C++ mediante Edit|Paste, infine salvarlo e compilarlo
    #include <stdio.h>
    
    int a=1;
    
    main() {
      int b=2;
      {
    	int temp;
    	temp = a;
    	a = b;
    	b = temp;
      }
    }
    
  2. aprire con View/Watch la finestra di Watch, eventualmente selezionare e cancellare le variabili giÓ presenti nella finestra, con Debug|Add watch inserire la variabile a e ripetere per la variabile b
  3. fare il watch delle variabili definite eseguendo il programma con Debug|Step over [F8]

 
 

Variabili carattere, codice ASCII, conversione di tipo


 
  1. Selezionare il testo del programma seguente e con un copia-incolla trasferirlo nella finestra di editor del Turbo C++. La sua esecuzione mostra il codice ASCII di un carattere introdotto da tastiera.
    #include <stdio.h>
    
    main(){
    	 char C,CM;
    	 printf("Introduci un carattere:  ");
    	 scanf("%c",&C);
    	 printf("\nIl codice ASCII del carattere '%c' Ŕ %d\n",C,C);
    	 if (C >= 'a' && C<='z'){
    		 CM = C - ('a' - 'A');
    		 printf("Il maiuscolo '%c' ha codice ASCII  %d\n",CM,CM);
    	 } else {
    		 if (C >= 'A' && C<='Z'){
    			 CM = C - ('A' - 'a');
    			 printf("Il minuscolo '%c' ha codice ASCII  %d\n",CM,CM);
    		 }
    	 }
    }
    
  2. Per vedere invece tutto i codice ANSI extend ASCII esegire il programma seguente
    #include <stdio.h>
    
    main(){
    	 printf("Codice ASCII\n\n");
    
    	  for (int i=0; i<255; i++){
    			printf("%d ------> %c \n",i,i);
    	  }
    }
    
  3. Cosa calcola il seguente programma?
    #include <stdio.h>
    
    char c;
    unsigned long int n=0;
    
    main(){
    	printf("Inserisci una stringa di '1' oppure '0': ");
    	do{
    		c=getchar();
    		n= (c =='\n')? n : n*2 + (int) c - 48 ;
    	}while ( c=='1' || c=='0');
     	printf("\nHo calcolato:  %lu",n);
    }
    

 
 

Selezione 'switch'


 
  1. Analizzare, copilare, eseguire il seguente programma
    #include <stdio.h>
    
    char c;
    unsigned long int n=0;
    
    main(){
    	printf("Vuoi che scriva qualcosa o no?  (s=si n=no) ");
    	c=getchar();
            switch (c) {
    	case 's':
    	case 'S':	
    	 	printf("\n qualcosa");
    		break;
    	case 'n':
    	case 'N':	
    	 	printf("\n no");
    	default:
    		printf("\n come non detto!");
    	}
    }
    
  2. Realizzare un programma che produca una colonna casuale di '1', 'x' e '2' della schedina del totocalcio
  3. Realizzare un programma che letto un carattere verifichi che corrisponde a una cifra e poi lo converte in una variabile di tipo int. Provare eventualmente a fare a meno di istruzioni di selezione mediante il 'cast' e il codice ASCII

 
  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