Esercizi Java C++ - Alessandro Barazzuol

Esercizi Java C++

#include<iostream>

using namespace std;



/*
Caricare, con inserimento da tastiera, in un array denominato NUMERI, N valori
numerici (con N scelto dall'utente e massimo di 100). Successivamente il programma deve
caricare un nuovo vettore (denominato FATT) contenente i rispettivi valori del fattoriale di
ciascun numero. Successivamente visualizzare il contenuto dei due vettori.
*/

int carica_N_Numeri(int NUMERI[]);
int fatt(int N);
void carica_fattoriali(int FATT[], int N, int NUMERI[]);
void print(int FATT[], int N, int NUMERI[]);

/*costante che definisce la dimensione degli array FATT e NUMERI*/
const int DIM=100;


/*funzione che chiede N numeri e riempie l'array, torna il numero di numeri */
int carica_N_Numeri(int NUMERI[])
{
	int N=101;
	int num;
	cout<<"Quanti numeri vuoi caricare ?\n ";
	
	/*loop che chiede finche l'utente immette un N <=100*/
	while(N>100)
	{
		    cout<<": ";
			cin>>N;
	}
    
    /*for che riempie l'array NUMERI */
    for(int i=0;i<N;i++)
    {
    	cout<<"N: ";
    	cin>>num;
    	NUMERI[i]=num;
    	cout<<endl;
	}
	
	return N;
}

/*funzione fatt ricorsiva che calcola il fattoriale*/
int fatt(int N)
{
	if(N==1)
	return 1;
	else
	return N*fatt(N-1);
}

/*funzione che carica i fattoriali di NUMERI in FATT*/
void carica_fattoriali(int FATT[], int N, int NUMERI[])
{
	for(int i=0;i<N;i++)
	{
		FATT[i]=fatt(NUMERI[i]);
	}
}

/*stampa entrambi gli array: NUMERI e FATT*/
void print(int FATT[], int N, int NUMERI[])
{
	cout<<"Il vettore NUMERI \212 :\n";
	for(int i=0;i<N;i++)
	cout<<NUMERI[i]<<" ";
	cout<<endl;
	
	
	cout<<"Il vettore FATT \212 :\n";
	for(int i=0;i<N;i++)
	cout<<FATT[i]<<" ";
	cout<<endl;
}

int main()
{
	
	int NUMERI[DIM],FATT[DIM];
	
	int N=carica_N_Numeri(NUMERI);
	carica_fattoriali(FATT, N, NUMERI);
	print(FATT, N, NUMERI);
	

	
}

Lo stesso Esercizio risolto in Java

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package esercizio;

import java.util.Scanner;

/**
 *
 * @author aless
 */
public class Numeri {
    
    
    final int dim=100;
    private int n;
    private int[] NUMERI;
    private int[] FATT;
    
    private int fatt(int n)
    {
        if(n==1)
            return 1;
        else
            return n*fatt(n-1);
    }
    
    public Numeri()
    {
       
     
      NUMERI =new int[dim];
      FATT = new int[dim]; 
      Scanner inp =new Scanner(System.in);
      n=101;
      
        while(n>100)
        {
         inp=new Scanner(System.in);
                 
         n=inp.nextInt();
        } 
        
        System.out.println("Immetti "+ n +" numeri");
        Scanner input_numeri =new Scanner(System.in);
      
        for(int i=0;i<n;i++)
        {
            NUMERI[i]=input_numeri.nextInt();
        }
        
        riempi();
        
        
        
    }
    
    private void riempi()
    {
         for(int i=0;i<n;i++)
        {
            FATT[i]=fatt(NUMERI[i]);
        }
         
         
    }
    
    public void print()
    {
        System.out.println("Il vettore dei numeri è ");
        for(int i=0;i<n;i++)
        {
            System.out.print(NUMERI[i]+ " ");
        }
         System.out.println("\nIl vettore dei fattori è ");
        for(int i=0;i<n;i++)
        {
            System.out.print(FATT[i]+ " ");
        }
    }
}
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package esercizio;

/**
 *
 * @author aless
 */
public class Esercizio {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       new Numeri().print();
       
    }
    
}