Seconda Esercitazione Autoguidata

Contenuti di questa esercitazione:

  1. Verifica delle impostazioni del compilatore [ANSI C (e non C++)]
  2. Gestione delle finestre del compilatore TurboC
  3. Primo esercizio
  4. Secondo esercizio
  5. Ispezione delle variabili
  6. Terzo esercizio
  1. VERIFICA DELLE IMPOSTAZIONI DEL COMPILATORE [ANSI C (e non C++)]

    Prima di iniziare è opportuno impostare il compilatore in modo che compili utilizzando esclusivamente le opzioni del linguaggio C (e non quelle del C++).

    Per fare questo si devono eseguire i seguenti passi:

    1. controllare che l'estensione automatica sia .C verificando che nella finestra
      Options -> Environment -> Editor
      il campo Default Extension sia impostato a .C (e non a CPP).
    2. verificare che il compilatore C++ sia utilizzato solo nel caso in cui l'estensione sia .CPP, controllando che nella finestra
      Options -> Compiler -> C++ options
      il campo Use C++ Compiler sia impostato a CPP extension (e non C++ always).
    3. infine, per fare riferimento allo standard ANSI del linguaggio C, è opportuno scegliere nella finestra
      Options -> Compiler -> Source options
      le Keywords ANSI
  2. GESTIONE DELLE FINESTRE DEL COMPILATORE TURBO C

    Spesso nelle varie fasi di realizzazione di un programma (scrittura, compilazione, esecuzione e correzione) è utile visualizzare contemporaneamente più finestre del compilatore (in particolare, oltre alla finestra di Edit, la finestra Output, la finestra Watch, e la finestra Message).

    NB: in ogni fase di utilizzo del compilatore c'è un'unica finestra attiva, anche se possono esserci più finestre aperte.
    La finestra attiva si distingue dalle altre perché ha la cornice evidenziata da una doppia linea.

    Di seguito descriviamo i comandi che possono tornare utili per gestire le finestre del compilatore, ai quali si accede dal menù Window.

    • Tile: dispone tutte le finestre aperte sullo schermo
    • Close (Alt F3): chiude la finestra attiva
    • Next (F6): consente di spostarsi da una finestra all'altra (rendendola attiva)
    • Size/Move (Ctrl F5): permette di spostare (utilizzando i tasti freccia) o ridimensionare (utilizzando il tasto Shift combinato con i tasti freccia) la finestra attiva
    • Zoom (F5): permette di ingrandire a tutto schermo la finestra attiva
  3. PRIMO ESERCIZIO

    Scrivere un programma che, leggendo dallo standard input i sei coefficienti di un sistema di due equazioni lineari, verifichi se esiste una soluzione reale ed eventualmente la calcoli, restituendola sullo standard output (supponiamo che le equazioni siano date nella forma ax+by=c)

    Il problema si può suddividere nei seguenti sottoproblemi:

    1. lettura dei dati da input
    2. discussione del determinante
    3. produzione dell'output

    Quello che segue è un possibile algoritmo di soluzione del problema:

    Algoritmo: calcolo della soluzione di un sistema lineare di due equazioni del tipo
                 a1 x + b1 y = c1
                 a2 x + b2 y = c2
    
      leggi i coefficienti;
      calcola D = a1*b2 - a2*b1 - determinante del sistema -
      calcola Dx = c1*b2 - c2*b1
      calcola Dy = a1*c2 - a2*c1
    
      SE D = 0
      ALLORA SE Dx = 0
             ALLORA il sistema e` indeterminato
    	 ALTRIMENTI il sistema non ammette soluzioni
      ALTRIMENTI calcola x = Dx/D
                 calcola y = Dy/D
                 scrivi le soluzioni
    

    Dopo aver compilato il programma, iniziare l'esecuzione passo passo con il comando Trace e verificare il funzionamento con serie opportune di coefficienti.

  4. SECONDO ESERCIZIO

    Scrivere un programma che, prendendo in input un numero intero, verifichi se questo è un numero primo, fornendo in uscita il più piccolo divisore (maggiore di uno).

  5. ISPEZIONE DELLE VARIABILI

    Durante l'esecuzione passo passo di un programma è possibile "osservare" i valori assunti da una variabile del programma selezionata opportunamente nella finestra Watch.

    Per impostare la variabile da ispezionare: selezionare
    Debug -> Watches -> Add watch
    e scrivere il nome della variabile nel campo Watch Expression.

    Per es. nel programma precedente potrebbe essere interessante controllare l'evoluzione del contatore.
    Dopo aver aggiunto questa variabile nella finestra di Watch iniziare l'esecuzione passo passo avendo cura di disporre le finestre Edit e Watch contemporaneamente visibili.

  6. TERZO ESERCIZIO

    Scrivere un programma che legga un numero intero di due cifre e che produca il seguente output:

    • se entrambi le cifre sono pari --> le cifre stesse
      (es. 46 --> 4 6)
    • se entrambi le cifre sono dispari --> le cifre in lettere
      (es.: 13 --> uno tre)
    • altrimenti le cifre dispari come numeri, quelle pari in lettere
      (es. 32 --> 3 due, 65 --> sei 5)