Piano delle esercitazioni di laboratorio di Informatica
A.A. 2005-2006

12 dicembre 2005

  1. Sia dato un file text in cui ogni riga è composta da una terna di numeri interi; ciascuna terna è detta terna dati. Scrivere un programma C che:
    1. acquisisca da input 3 terne di interi (a1,a2,a3), (b1,b2,b3), (c1,c2,c3), dette terne di confronto;
    2. per ogni terna dati (x1,x2,x3), visualizzi la terna dati e accanto ad essa il numero (1,2, o 3) della terna di confronto le cui componenti sostituite ordinatamente alle y nella seguente formula la rendono minima: |x1-y1|+|x2-y2|+|x3-y3|. Ad esempio, se per una certa terna dati, diciamo (x1,x2,x3), sostituendo b1 a y1,b2 a y2, b3 a y3 nella formula si ottiene un valore inferiore o uguale a quelli ottenuti sostituendo a1 a y1, a2 a y2, a3 a y3, oppure c1 a y1, c2 a y2, c3 a y3, allora si deve visualizzare:
      x1 x2 x3 2
      Nota: il valore assoluto si calcola con la funzione
      int abs(int j);
      dichiarata in
      stdlib.h
      Nel caso le terne siano composte di reali anziché di interi, conviene utilizzare la funzione
      float fabsf(float x);
      dichiarata in
      math.h
  2. È dato un file text che rappresenta frequenze assolute delle modalità di un carattere ordinabile in un insieme di osservazioni. Si assume che il text sia ordinato per modalità. Scrivere in un secondo testo le frequenze percentuali e le frequenze percentuali cumulate.
    Esempio
    primo file text:
           1 250
           2 315
           3 475
           4 114
           5 77
           
    secondo file text
           1     250   20.31%   20.31%
           2     315   25.59%   45.90%
           3     475   38.59%   84.48%
           4     114    9.26%   93.74%
           5      77    6.26%  100.00%
           

Soluzioni

  1. Può essere risolto con e senza impiego di array, a seconda della generalità della soluzione. La soluzione seguente impiega array
    vicini.c
20 dicembre 2005 -Stefano Lodi