Operazione spostamento

di il
3 risposte

Operazione spostamento

Ciao ragazzi, dovrei creare un metodo che, dato :
int [] operazione (int[] v,int x)
1)mi faccia lo spostamento a destra a partire da una posizione x;
2)// // // // sinistra a partire da una posizione x;
3) cerca il max da posizione>=x
4)cerca il min da posizione >=x;
5)spostamento circolare destra;
6)spostamento circolare sinistra.

Chi saprebbe darmi un idea? grazie
per es. io ho delle casella [][][][][][] su cui dovro fare lo spostamento a dx o sx.

3 Risposte

  • Re: Operazione spostamento

    Mi sembra un esercio molto semplice sulla scansione dei vettori.

    partiamo col dire che esercizi "non ne svolgo", ma possiamo analizzarlo insieme per arrivare ad una soluzione.

    Punto 1: sai usare i vettori???
    Punto 2: hai ben chiaro cosa ti chiedono gli esercizi?
    Punto 3: hai fatto una schematizzazione delle risoluzione degli esercizi?

    se abbiamo un vettore così composto [3,4,5,6,7,8] e dobbiamo fare 1 shift a sinistra della posizione 4 (in questo caso quindi del valore 7) dovremmo trovare una situazione finale così [4,5,6,7,8,0] (nel caso di shift circolare [4,5,6,7,8,3]).

    Ora ragionando sugli indici dei due vettori(partenza e destinazione) dovrebbe essere abbastanza intuitivo raggiungere il tuo obiettivo

    come ulteriore input posso dirti che convine farti una copia del vettore in ingresso v per quanto riguarda la dimenzione e lavorare direttamente sulla copia, che poi restituirai (la definizione del metodo indica che devi restituire un vettore finale).
  • Re: Operazione spostamento

    Potresti farmi vedere l'esempio di uno?
    grazie
  • Re: Operazione spostamento

    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package view;
    
    /**
     *
     * @author Utente1
     */
    public class NewClass {
    
        public static void main(String arg[]) {
            int[] v = {3, 4, 5, 6, 7, 8};
            xstampa(shiftDestra(v, 3));
        }
    
        public static void xstampa(int[] v) {
            for (int i = 0; i < v.length; ++i) {
                System.out.println(" " + v[i]);
            }
        }
    
        public static int[] shiftDestra(int v[], int x) {
            int nuovoVettore[] = new int[v.length];
            for (int i = 0; i < nuovoVettore.length; ++i) {
                if (i < x) {
                    nuovoVettore[i] = v[i];
                } else if (i == x) {
                    nuovoVettore[i] = 0;
                } else {
                    nuovoVettore[i] = v[i - 1];
                }
            }
            return nuovoVettore;
        }
    }
    
Devi accedere o registrarti per scrivere nel forum
3 risposte