Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Esercitazione del 30 marzo 2020
- Leggere in input una sequenza di numeri reali.
- Individuare tutte le sotto-sequenze (prive di intersezione) in cui la somma degli elementi sia
- minore della media tra l’elemento massimo e minimo dell’intera sequenza.
- Stampare le sotto-sequenze individuate
- 2 4 6 66 8 3 55 dim=7
- min= 2
- max= 66
- media= 34
- sottosequenza= 2 4 6 8 3
- N.B.
- Realizzare pseudocodice e codice in linguaggio C, e inviare tutto via e-mail entro le 17.30.
- Ricordatevi le convenzioni per nominare i file e rispettate l’ orario
- */
- //Librerie
- #include <stdio.h>
- #include <stdlib.h>
- //Costanti
- #define D1 50
- #define D2 20
- //Prototipi
- int Scrittura(int vet[] , int dim );
- int Minimo(int vet[], int dim);
- int Massimo(int vet[], int dim);
- int Media( int min , int max );
- int IndividuaSottoSequenze( int vet[] , int dim ,int m ,int vett[] );
- int main(void) {
- //dichiarazioni variabili
- int Sequenza[D1];
- int Sotto_Sequenza[D2] = { 0 };
- int dim;
- int i;
- int j;
- int valore_minimo;
- int valore_massimo;
- int media;
- int nullo= 0;
- //Fase di input
- printf("\nInserisci la dimensione: ");
- scanf("%d",&dim);
- printf("\n\n");
- Sequenza[dim] = Scrittura(Sequenza , dim);
- //lettura di verifica
- i=0;
- while(i<dim){
- printf("%d\t",Sequenza[i]);
- i++;
- }
- //Fase di elaborazione
- valore_minimo = Minimo(Sequenza,dim);
- printf("\nvalore minimo: %d\n",valore_minimo);
- valore_massimo = Massimo(Sequenza,dim);
- printf("\nvalore massimo: %d\n",valore_massimo);
- media= Media( valore_minimo ,valore_massimo );
- printf( "\nmedia: %d\n" , media );
- Sotto_Sequenza[dim] = IndividuaSottoSequenze( Sequenza , dim , media , Sotto_Sequenza );
- //Fase di output
- //lettura della sottosequenza
- printf("\n\n");
- printf("Le sottosequenze individuate: \n\n");
- j=0;
- while(j<dim-1){
- if(Sotto_Sequenza[j]==nullo){
- printf("\t");
- j=j+1;
- }
- printf("%d\t",Sotto_Sequenza[j]);
- j=j+1;
- }
- return 0;
- }
- int Scrittura(int vet[] , int dim ){
- int i;
- i=0;
- while(i<dim){
- printf("(%d): ",i);
- scanf("%d",&vet[i]);
- i++;
- }
- return *vet;
- }
- int Minimo(int vet[], int dim){
- int i=0;
- int min= vet[i];
- i=0;
- while(i<dim){
- if( vet[i] < min ){
- min = vet[i];
- }
- i++;
- }
- return min;
- }
- int Massimo(int vet[], int dim){
- int i=0;
- int max= vet[i];
- i=0;
- while(i<dim){
- if( vet[i] > max ){
- max = vet[i];
- }
- i++;
- }
- return max;
- }
- int Media( int min , int max ){
- int media_valore;
- media_valore= ( min + max ) / 2;
- return media_valore;
- }
- int IndividuaSottoSequenze( int vet[] , int dim , int m , int vett[] ){
- int i= 0;
- int s= 0;
- //2 4 6 66 8 3 55 dim=7
- do{
- s= s+vet[ i ];//somma ricorsiva per controllare i valori da inserire nella sottosequenza
- if(s<m){
- printf( "%d\t" , vet[ i ] );
- vett[ i ] = vet[ i ];
- }
- if(s >= m ){
- printf( "vet[%d] = %d\t" , i , vet[ i ] );
- s= 0;
- vett[i]= s;
- }
- i=i+1;
- }while(i<dim);
- return *vett;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement