Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define MAX 100
- typedef enum { false, true } bool; ///!creo la variabile bool
- void cVet(int len,int v[MAX],bool view); ///Carica Vettore se il bool è settato a vero visualizzarà il risultato
- void vVet(int len,int v[MAX])
- void vMat(int lenX, int lenY, int m[MAX][MAX]); ///visualizza la matrice
- void cMat(int lenX, int lenY, int m[MAX][MAX]); ///Carica Matrice
- int MultiploDi(int n,int mul); ///n Multiplo di Mul
- bool Primo(int n); ///Visualizza se il numero è primo
- void BubbleSort(int a[MAX],int len); ///Ordina crescente l'array col metodo BubbleSort
- 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"
- int VetSommatoR(int v[MAX],int len);///Somma i fattori dentro il vettore in un unica variabile (Recursive)
- int main(){}
- int VetSommatoR(int v[MAX],int len){
- if(len--<=0) ///len diminuisce ed se è minore o uguale di 0 andra a rompre il ciclo ricorsivo
- return 0; ///con un return di 0 la funzione chiamata in precedenza avra 0 come risultato rompendo il suo ciclo ricorsivo
- else
- return v[len]+VetSommatoR(v,len); ///la funzione richiamera' se stessa sommando a v[len] il risultato prodotto dal richiamo
- }
- void BubbleSort(int a[MAX],int len){
- int i=0;
- while(i<len){ ///il ciclo si ripeterà finche l'array non sarà visualizzato del tutto
- if(a[i]<=a[i+1]){///se il numero accanto è maggiore del numero precedente significa che l'array è in ordine crescente per il momento
- i++;
- }
- else{ ///se il numero non è maggiore il programma eseguirà un cambio fra le due variabili
- a[i]=a[i]+a[i+1]; ///il numero successivo viene sommato a quello corrente
- a[i+1]=a[i]-a[i+1]; ///verra estratto dal numero successivo
- a[i]=a[i]-a[i+1]; ///levo il numero successivo con quello corrente per estrarre il numero del successivo
- i=0; ///riparto da 0
- }
- }
- }
- int MaggioriMinori(int di,int nel[MAX],int len,bool MODE){
- int i;
- int cont=0;
- for(i=0;i<len;i++){
- if(MODE) cont += (di>nel[i]); //restituisce il risultato booleano (0/1) dell'operazione
- else cont += (di<nel[i]); //restituisce il risultato booleano (0/1) dell'operazione
- }
- return cont;
- }
- int MultiploDi(int n,int mul){
- return (n%mul==0);
- }
- bool Primo(int n){
- if(n<0){n*=-1;} ///anche i numeri negativi sono primi cosi li trasformo in positivi per adattarli al codice
- int div=1; ///variabile per le divisioni
- do{
- div++; ///inizio le divisioni da 2 e da qui incremento
- 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
- div = (bool) false; ///div da integrale diventa un booleano falso
- }
- }while(div<n/2 && div); ///il ciclo continua finche div non e' minore di n o finche div diventa falso
- if(div>0)div = (bool) true; ///se div non è falso (integrale maggiore di 0) allora diventa un booleano vero
- return div;
- }
- void vVet(int len,int v[MAX]){
- int i
- printf("Il vettore cariato è [%d",v[0]);
- for(i=1;i<len;i++)printf(",%d",v[i]);
- printf("]\n");
- }
- void cVet(int len,int v[MAX],bool view){
- int i;
- for(i=0;i<len;i++) {printf("inserisci il %d numero ",i);scanf("%d",&v[i]);}
- if(view){vVet(len,v);}
- }
- void cMat(int lenX, int lenY, int m[MAX][MAX]){ ///Carica Matrice
- int y;
- int x;
- for(y=0;y<lenY;y++){
- for(x=0;x<lenX;x++) {printf("inserisci il numero [%d][%d] ",x,y);scanf("%d",&m[x][y]);}
- }
- vMat(lenX,lenY,m);
- }
- void vMat(int lenX, int lenY, int m[MAX][MAX]){
- int y;
- int x;
- for(y=0;y<lenY;y++){
- for(x=0;x<lenX;x++) {printf("[%d]\t",m[x][y]);}
- printf("\n");
- }}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement