Questo sito ha bisogno della pubblicità per poter essere mantenuto. Gentilmente disabilita il blocco della pubblicità nel tuo browser per questo sito web.
Caricamento in corso...Caricamento in corso...
Caricamento in corso...

Matrice e target

Costruire un modulo che ha in input :una tabella bidimensionale non ordinata di numeri reali, un numero intero j (indice di colonna), un numero reale (il target). 
Il modulo restituisce :l’indice  di riga relativo al primo elemento il cui valore è uguale al target (se il target è presente nella colonna j della tabella) oppure il valore -1 (se il target non è presente nella colonna j della tabella).

 

/*
  http://www.highlevel.it
  Description: il modulo ha in input una tabella bidimensionale non ordinata di 
               numeri reali, un numero intero j (indice di colonna), 
               un numero reale (il target). Il modulo restituisce :l'indice 
               di riga relativo al primo elemento il cui valore è uguale al 
               target (se il target è presente nella colonna j della tabella) 
               oppureil valore -1 (se il target non è presente nella colonna j 
               della tabella).
*/
// DIRETTIVE
#include <stdio.h>
#include <stdlib.h>
// Dichiarazione funzioni
void visualizza (int i,int j,float tabella[3][3]);
int trova (int i, int j, float tabella[3][3], float t);

int
main (void)
{
     //Dichiarazioni variabili
     float tabella[3][3] ={-3.2, 2.2, -1.14, 5.5, 12.2, 11.1, -6.2, 10.3, -2.6};// matrice
     float target;// numero da trovare
     int colonna;// colonna in cui fare il controllo
     
     printf("\n Inserire il numero da cercare nella colonna \n");
     scanf("%f",&target);
     
     
     printf("\n Inserire il numero della colonna su cui fare la ricerca max 3 \n");
     scanf("%d",&colonna);
     
     
     colonna=colonna-1;// la colonna viene diminuita di uno xkè la matrice parte da 0
     trova(3,colonna,tabella,target);//chiama la funzione trova
     visualizza (3,3,tabella);//chiama la funzione visualizza
     system("pause");

/* PRECONDIZIONI: la matrice abbia degli elementi
   POSTCONDIZIONI: la matrice viene visualizzata*/                
void 
visualizza (int i,int j,float tabella[3][3])
{
     for (j=0; j<3;++j)//iterazione sulle colonne
        { for(i=0; i<3; ++i)// iterazione sulle righe
                 { printf("\n elemento di colonna %d riga %d ---> %.1f", j+1,i+1,tabella[i][j]);
                 }
        }
}
/* PRECONDIZIONI: la matrice abbia degli elementi
   POSTCONDIZIONI: trova la colonna dove si trova il targhet in caso non ci sia 
                   restituisce -1 
*/
int 
trova (int i, int j, float tabella[3][3], float t)

      int verifica;
         for(i=0; i<=3; ++i)// iterazione sulle righe
                {  
                 if (tabella[i][j]==t)// cerca nella matrice il target
                   { 
                      printf(" \n Il valore %.1f si trova nella riga %d", t,i+1);
                      verifica=t;// serve a controllare se il target è stato trovato
                   }
                }
          if (verifica != t)  /*se non è stato trovato il target nella matrice 
                              viene restituito il valore -1 */
         printf ("\n -1 il valore %.1f non si trova in questa colonna provare in un'altra", t);
         return(t);
}