Benvenuto su Inforge
Rimuovi la pubblicità e partecipa alla più grande comunità italiana sul mondo digitale presente sul web sin dal 2007.
Iscriviti

Discussione Ufficiale Programmiamo con Inforge | Esercitazione 01 in C | Livello base

Una Discussione Ufficiale punta a raccogliere tutte le informazioni su un argomento o un fatto di attualità, con costanti aggiornamenti da parte del creatore e dei partecipanti.
Lv.105 - Middleschool - International SV
Supporta Inforge con una donazione

Sax3r28

Utente Gold
8 Aprile 2016
589
293
218
Ultima modifica:
Sono più arrugginito di quanto pensassi ma a prima vista la logica penso di averla azzeccata, ovviamente il codice non parte mai al primo tentativo ma lo condivido lo stesso :rofl:

C++:
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <fstream>
#include <malloc.h>


double array_mean(double arr_1[],int dim)
{
    double med=0,temp=0;
 
    for(int i=0;i<dim;i++)
    {
        temp+=arr_1[i];
    }
    med=temp/dim;
 
    return med; 
}


void array_print_to_screen(double arr_1[],int dim)
{
    for(int i=0;i<dim;i++)
    {
        printf("\narr_1[%d]= %f",i,arr_1[i]);
    } 
}


double array_input(double arr_1[],int dim)
{
    for(int i=0;i<dim;i++)
    {
        printf("\nInserire %do valore: ",i+1);
        scanf("%f",&arr_1[i]);
    }     
}


double* array_alloc(int dim)
{
    double* arr_1;
    arr_1=(double*)malloc(dim*sizeof(double));
    if (arr_1 == NULL) {
        printf("\nMalloc non riuscito.");
        exit(0);
    }
    else
    {
        printf("\nMalloc riuscito."); 
    }
 
    return arr_1;
}


double array_min_index(double arr_1[],int dim)
{
    double min=0;
 
    for(int i=1;i<=dim;i++)
    {
        if(arr_1[i-1]<arr_1[i])
        {
            min=arr_1[i-1];
        }
        else
        {
            min=arr_1[i];
        }
    }
 
    return min;
}


double array_sort(double arr_1[],int dim)
{
    for(int i=0; i<dim; i++)
    {
        for(int j=i+1;j<dim;j++)
        {
            if(arr_1[j]<arr_1[i])
            {
                float temp;
                temp=arr_1[j];
                arr_1[j]=arr_1[i];
                arr_1[i]=temp;                             
            }     
        }
    }
}


void array_write_to_file(double arr_1[],int dim,FILE* Wfile)
{
    for(int i=0;i<dim;i++)
    {
        fprintf(Wfile,"%d.%f\n",i+1,arr_1[i]);
    } 
}


int main()
{ 
    int dim=0;
    printf("Dimensione array: ");
    scanf("%d",&dim);
 
    double* arr_1; 
    FILE * Wfile; 
 
    arr_1=array_alloc(dim);
    array_input(arr_1,dim);
    array_print_to_screen(arr_1,dim);
 
    array_sort(arr_1,dim);
    array_print_to_screen(arr_1,dim);
 
    Wfile=fopen("values.dat","w");
    if (arr_1 != NULL)
    {
        array_write_to_file(arr_1,dim,Wfile);
    }
    fclose(Wfile);
 
    free(arr_1);
 
    return 0; 
}
 
Lv.105 - Middleschool - International SV
Supporta Inforge con una donazione

ConanDP

Utente Bronze
15 Giugno 2016
24
10
36
Ecco il mio codice, spero sia almeno decente ahahah

C++:
#include <iostream>
#include <fstream>


// Calcolo media array (esercizio 1)
float array_mean(float array[], int number_of_items) {
    int i;
    float media;
    
    for(i = 0; i < number_of_items; i++) {
        media = media + array[i];
    }
    
    media = media / number_of_items;
    
    return media;
}

// Stampa array (esercizio 2)
void array_print_to_screen(float array[], int number_of_items) {
    
    using namespace std;
    
    int i;
    for(i = 0; i < number_of_items; i++) {
        cout<<array[i]<<" ";
    }
}


// Richiesta input dei valori float (esercizio 3)
void array_input(float array[], int number_of_items) {
    
    using namespace std;
    
    int i;
    for(i = 0; i < number_of_items; i++) {
        cout<<"\nInserisci "<<i+1<<"*"<<" valore float\n";
        cin>>array[i];
    }
}

// Allocazione array dinamico (esercizio 4)
void array_alloc(float **array, int number_of_items) {
    *array = new float[number_of_items];
}

// Restituzione del numero più piccolo dell'array (esercizio 5)
void array_min_index(float *array, int number_of_items) {
    
    using namespace std;
    
    int i, j, max;
    float com;
        
    // Ordinamento array dal più piccolo al più grande
    for(j = number_of_items-1; j > 0; j--) {
        for(i=0; i<j; i++) {
            if(array[i] > array[i+1]) {
                com = array[i]; 
                array[i] = array[i+1]; 
                array[i+1] = com;
            }
        } 
    }
    // Stampa array
    cout<<"\nStampa array ordinato ";
    array_print_to_screen(array, number_of_items);
    cout<<"\n";
    
    // Stampa dell'elemento più piccolo
    cout<<"Elemento piu piccolo array: "<<array[0];
}

// Stampa vettore ordinato (esercizio 6) -> Viene già fatto nel 5


// Salvataggio vettore su un file e deallocamento dello stesso (esercizio 7)
void array_write_to_file(float array[], int number_of_items) {
    
    using namespace std;
    
    int i;
    
    ofstream OutFile;
    OutFile.open("values.dat");
    if(!OutFile) {
        cout<<"Error";
    } else {
        OutFile<<"Array:\n";
        for(i=0;i<number_of_items;i++) {
            OutFile<<array[i]<<" ";
        }
        OutFile.close();
    }
}





int main() {
    
    using namespace std;
    
    int number_of_items, i;
    float media;
    float* array;
    
    cout<<"Numero elementi array ";
    cin>>number_of_items;
    
    // Allocazione array dinamico
    array_alloc(&array, number_of_items);
    
    // Richiesta input dei valori float
    array_input(array, number_of_items);
    
    
    // Calcolo media array
    media = array_mean(array, number_of_items);
    
    // Stampa array
    cout<<"\nStampa array ";
    array_print_to_screen(array, number_of_items);
    
    // Numero più piccolo
    array_min_index(array, number_of_items);
    
    // File
    array_write_to_file(array, number_of_items);
    
    cout<<"\nMedia: " << media;
    
    // Deallocazione array (esercizio 8)
    delete[] array;
    
    return 0;
}
 

Morabyte

Utente Iron
24 Febbraio 2021
4
4
7
Ecco il mio codice, spero sia almeno decente ahahah

C++:
#include <iostream>
#include <fstream>


// Calcolo media array (esercizio 1)
float array_mean(float array[], int number_of_items) {
    int i;
    float media;
   
    for(i = 0; i < number_of_items; i++) {
        media = media + array[i];
    }
   
    media = media / number_of_items;
   
    return media;
}

// Stampa array (esercizio 2)
void array_print_to_screen(float array[], int number_of_items) {
   
    using namespace std;
   
    int i;
    for(i = 0; i < number_of_items; i++) {
        cout<<array[i]<<" ";
    }
}


// Richiesta input dei valori float (esercizio 3)
void array_input(float array[], int number_of_items) {
   
    using namespace std;
   
    int i;
    for(i = 0; i < number_of_items; i++) {
        cout<<"\nInserisci "<<i+1<<"*"<<" valore float\n";
        cin>>array[i];
    }
}

// Allocazione array dinamico (esercizio 4)
void array_alloc(float **array, int number_of_items) {
    *array = new float[number_of_items];
}

// Restituzione del numero più piccolo dell'array (esercizio 5)
void array_min_index(float *array, int number_of_items) {
   
    using namespace std;
   
    int i, j, max;
    float com;
       
    // Ordinamento array dal più piccolo al più grande
    for(j = number_of_items-1; j > 0; j--) {
        for(i=0; i<j; i++) {
            if(array[i] > array[i+1]) {
                com = array[i];
                array[i] = array[i+1];
                array[i+1] = com;
            }
        }
    }
    // Stampa array
    cout<<"\nStampa array ordinato ";
    array_print_to_screen(array, number_of_items);
    cout<<"\n";
   
    // Stampa dell'elemento più piccolo
    cout<<"Elemento piu piccolo array: "<<array[0];
}

// Stampa vettore ordinato (esercizio 6) -> Viene già fatto nel 5


// Salvataggio vettore su un file e deallocamento dello stesso (esercizio 7)
void array_write_to_file(float array[], int number_of_items) {
   
    using namespace std;
   
    int i;
   
    ofstream OutFile;
    OutFile.open("values.dat");
    if(!OutFile) {
        cout<<"Error";
    } else {
        OutFile<<"Array:\n";
        for(i=0;i<number_of_items;i++) {
            OutFile<<array[i]<<" ";
        }
        OutFile.close();
    }
}





int main() {
   
    using namespace std;
   
    int number_of_items, i;
    float media;
    float* array;
   
    cout<<"Numero elementi array ";
    cin>>number_of_items;
   
    // Allocazione array dinamico
    array_alloc(&array, number_of_items);
   
    // Richiesta input dei valori float
    array_input(array, number_of_items);
   
   
    // Calcolo media array
    media = array_mean(array, number_of_items);
   
    // Stampa array
    cout<<"\nStampa array ";
    array_print_to_screen(array, number_of_items);
   
    // Numero più piccolo
    array_min_index(array, number_of_items);
   
    // File
    array_write_to_file(array, number_of_items);
   
    cout<<"\nMedia: " << media;
   
    // Deallocazione array (esercizio 8)
    delete[] array;
   
    return 0;
}
[/CODE}
[/QUOTE]
Molto bene, sei stato bravo.
Messaggio unito automaticamente:

Ecco il mio codice, spero sia almeno decente ahahah

C++:
#include <iostream>
#include <fstream>


// Calcolo media array (esercizio 1)
float array_mean(float array[], int number_of_items) {
    int i;
    float media;
   
    for(i = 0; i < number_of_items; i++) {
        media = media + array[i];
    }
   
    media = media / number_of_items;
   
    return media;
}

// Stampa array (esercizio 2)
void array_print_to_screen(float array[], int number_of_items) {
   
    using namespace std;
   
    int i;
    for(i = 0; i < number_of_items; i++) {
        cout<<array[i]<<" ";
    }
}


// Richiesta input dei valori float (esercizio 3)
void array_input(float array[], int number_of_items) {
   
    using namespace std;
   
    int i;
    for(i = 0; i < number_of_items; i++) {
        cout<<"\nInserisci "<<i+1<<"*"<<" valore float\n";
        cin>>array[i];
    }
}

// Allocazione array dinamico (esercizio 4)
void array_alloc(float **array, int number_of_items) {
    *array = new float[number_of_items];
}

// Restituzione del numero più piccolo dell'array (esercizio 5)
void array_min_index(float *array, int number_of_items) {
   
    using namespace std;
   
    int i, j, max;
    float com;
       
    // Ordinamento array dal più piccolo al più grande
    for(j = number_of_items-1; j > 0; j--) {
        for(i=0; i<j; i++) {
            if(array[i] > array[i+1]) {
                com = array[i];
                array[i] = array[i+1];
                array[i+1] = com;
            }
        }
    }
    // Stampa array
    cout<<"\nStampa array ordinato ";
    array_print_to_screen(array, number_of_items);
    cout<<"\n";
   
    // Stampa dell'elemento più piccolo
    cout<<"Elemento piu piccolo array: "<<array[0];
}

// Stampa vettore ordinato (esercizio 6) -> Viene già fatto nel 5


// Salvataggio vettore su un file e deallocamento dello stesso (esercizio 7)
void array_write_to_file(float array[], int number_of_items) {
   
    using namespace std;
   
    int i;
   
    ofstream OutFile;
    OutFile.open("values.dat");
    if(!OutFile) {
        cout<<"Error";
    } else {
        OutFile<<"Array:\n";
        for(i=0;i<number_of_items;i++) {
            OutFile<<array[i]<<" ";
        }
        OutFile.close();
    }
}





int main() {
   
    using namespace std;
   
    int number_of_items, i;
    float media;
    float* array;
   
    cout<<"Numero elementi array ";
    cin>>number_of_items;
   
    // Allocazione array dinamico
    array_alloc(&array, number_of_items);
   
    // Richiesta input dei valori float
    array_input(array, number_of_items);
   
   
    // Calcolo media array
    media = array_mean(array, number_of_items);
   
    // Stampa array
    cout<<"\nStampa array ";
    array_print_to_screen(array, number_of_items);
   
    // Numero più piccolo
    array_min_index(array, number_of_items);
   
    // File
    array_write_to_file(array, number_of_items);
   
    cout<<"\nMedia: " << media;
   
    // Deallocazione array (esercizio 8)
    delete[] array;
   
    return 0;
}
Bravoooh
 
  • Mi piace
  • Love
Reactions: Valley e ConanDP
Supporta Inforge con una donazione
Lv.105 - Middleschool - International SV
Lv.105 - Middleschool - International SV
Supporta Inforge con una donazione
Lv.105 - Middleschool - International SV
Supporta Inforge con una donazione