Advertisement
Jordimario

BambaFunction

May 2nd, 2019
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.91 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define MAX 100
  4. typedef enum { false, true } bool;  ///!creo la variabile bool
  5. void cVet(int len,int v[MAX],bool view);                 ///Carica Vettore se il bool è settato a vero visualizzarà il risultato
  6. void vVet(int len,int v[MAX])
  7. void vMat(int lenX, int lenY, int m[MAX][MAX]);  ///visualizza la matrice
  8. void cMat(int lenX, int lenY, int m[MAX][MAX]);  ///Carica Matrice
  9. int MultiploDi(int n,int mul);                           ///n Multiplo di Mul
  10. bool Primo(int n);                                       ///Visualizza se il numero è primo
  11. void BubbleSort(int a[MAX],int len);                     ///Ordina crescente l'array col metodo BubbleSort
  12. int MaggioriMinori(int di,int nel[MAX],int len,bool MODE);///Conta quanti numeri in un vettore "nel" sono maggiori(MODE 0)/minori(MODE 1) di "di"
  13. int VetSommatoR(int v[MAX],int len);///Somma i fattori dentro il vettore in un unica variabile (Recursive)
  14.  
  15.  
  16.  
  17. int main(){}
  18.  
  19.  
  20. int VetSommatoR(int v[MAX],int len){
  21. if(len--<=0)                        ///len diminuisce ed se è minore o uguale di 0 andra a rompre il ciclo ricorsivo
  22. return 0;                           ///con un return di 0 la funzione chiamata in precedenza avra 0 come risultato rompendo il suo ciclo ricorsivo
  23.  
  24. else
  25. return v[len]+VetSommatoR(v,len);   ///la funzione richiamera' se stessa sommando a v[len] il risultato prodotto dal richiamo
  26. }
  27.  
  28. void BubbleSort(int a[MAX],int len){
  29. int i=0;
  30.  
  31. while(i<len){   ///il ciclo si ripeterà finche l'array non sarà visualizzato del tutto
  32.     if(a[i]<=a[i+1]){///se il numero accanto è maggiore del numero precedente significa che l'array è in ordine crescente per il momento
  33.         i++;
  34.     }
  35.  
  36.     else{                   ///se il numero non è maggiore il programma eseguirà un cambio fra le due variabili
  37.         a[i]=a[i]+a[i+1];   ///il numero successivo viene sommato a quello corrente
  38.         a[i+1]=a[i]-a[i+1]; ///verra estratto dal numero successivo
  39.         a[i]=a[i]-a[i+1];   ///levo il numero successivo con quello corrente per estrarre il numero del successivo
  40.         i=0;                ///riparto da 0
  41.     }
  42. }
  43. }
  44.  
  45. int MaggioriMinori(int di,int nel[MAX],int len,bool MODE){
  46. int i;
  47. int cont=0;
  48. for(i=0;i<len;i++){
  49. if(MODE) cont += (di>nel[i]);   //restituisce il risultato booleano (0/1) dell'operazione
  50. else cont += (di<nel[i]);       //restituisce il risultato booleano (0/1) dell'operazione
  51.  }
  52.  return cont;
  53.  }
  54.  
  55.  
  56.  
  57. int MultiploDi(int n,int mul){
  58. return (n%mul==0);
  59. }
  60.  
  61. bool Primo(int n){
  62. if(n<0){n*=-1;}                     ///anche i numeri negativi sono primi cosi li trasformo in positivi per adattarli al codice
  63.  
  64. int div=1;                          ///variabile per le divisioni
  65.  
  66.     do{
  67.         div++;                      ///inizio le divisioni da 2 e da qui incremento
  68.  
  69.     if(n%div==0 && n!=2 || n==1){   ///se un numero puo essere diviso con un altro che non sia 1 o se stesso senza resto il numero è primo, (1) non e' primo per definizione
  70.         div = (bool) false;         ///div da integrale diventa un booleano falso
  71.         }
  72.        
  73.     }while(div<n/2 && div);         ///il ciclo continua finche div non e' minore di n o finche div diventa falso
  74.  
  75.     if(div>0)div = (bool) true;     ///se div non è falso (integrale maggiore di 0) allora diventa un booleano vero
  76. return div;
  77. }
  78.  
  79. void vVet(int len,int v[MAX]){
  80.     int i
  81.     printf("Il vettore cariato è [%d",v[0]);
  82.         for(i=1;i<len;i++)printf(",%d",v[i]);
  83.     printf("]\n");
  84.  
  85. }
  86.  
  87. void cVet(int len,int v[MAX],bool view){
  88. int i;
  89.     for(i=0;i<len;i++) {printf("inserisci il %d numero ",i);scanf("%d",&v[i]);}
  90.     if(view){vVet(len,v);}
  91. }
  92.  
  93. void cMat(int lenX, int lenY, int m[MAX][MAX]){  ///Carica Matrice
  94. int y;
  95. int x;
  96. for(y=0;y<lenY;y++){
  97.     for(x=0;x<lenX;x++) {printf("inserisci il numero [%d][%d] ",x,y);scanf("%d",&m[x][y]);}
  98. }
  99. vMat(lenX,lenY,m);    
  100. }
  101.  
  102. void vMat(int lenX, int lenY, int m[MAX][MAX]){
  103. int y;
  104. int x;
  105.     for(y=0;y<lenY;y++){
  106.     for(x=0;x<lenX;x++) {printf("[%d]\t",m[x][y]);}
  107.     printf("\n");
  108. }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement