Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico
Forte della piattaforma Qualcomm Snapdragon X, il notebook Lenovo IdeaPad Slim 3 riesce a coniugare caratteristiche tecniche interessanti ad uno chassis robusto, con autonomia di funzionamento a batteria che va ben oltre la tipica giornata di lavoro. Un notebook dal costo accessibile pensato per l'utilizzo domestico o in ufficio, soprattutto con applicazioni native per architettura ARM
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli
OnePlus risponde alle esigenze di chi cerca un dispositivo indossabile dalle dimensioni contenute con OnePlus Watch 3 43mm. La versione ridotta del flagship mantiene gran parte delle caratteristiche del modello maggiore, offrendo un'esperienza completa in un formato compatto. Il suo limite più grande è abbastanza ovvio: l'autonomia non è il punto di forza di questo modello, ma si raggiungono comodamente le due giornate piene con un uso normale.
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura
BOOX Note Air4 C rappresenta l'ultima incarnazione della categoria dei tablet E Ink a colori di Onyx, e combina le prestazioni di un dispositivo Android con l'ottima tecnologia Kaleido 3 per il display. Con schermo da 10,3 pollici, un processore Qualcomm Snapdragon 750G e 6 GB di RAM, promette un'esperienza completa per lettura, scrittura e produttività. Il prezzo lo posiziona nel segmento premium, ma questo dispositivo è un vero spettacolo!
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-03-2013, 21:59   #1
Dim11
Junior Member
 
L'Avatar di Dim11
 
Iscritto dal: Mar 2013
Messaggi: 18
[java]è efficente?(codice banale)

Ciao a tutti, ho da poco iniziato a studiare un po' Java dato che sono diplomato come perito informatico e sono a digiuno dalla programmazione da qualche anno..(secondo voi ne vale la pena per avere possibilità di lavoro?).
Ho due domande stupide su questo piccolo codice che ho fatto prima:

-come mai se ometto l'ELSE l'IF non funziona nel modo corretto? non dovrebbe essere facoltativo se è presente solo un'istruzione 'alternativa' all'if?
-a vederlo così il codice mi sembra ridondante e che si potrebbe scrivere in modi più efficenti..se si, come?
Tnx
Codice:
import javax.swing.*;
public class es8
{
  public static void main (String argv[])
  {
  	int n;
  	int j;
  	int m;
  	int k=Integer.parseInt(JOptionPane.showInputDialog(null,"inserisci un valore:"));

  	for(int i=k;i>=2;i--)
  	{
  	   System.out.print("\r"+i+" -> ");
  	   if(i%2==0)	
  	     n=i/2;
  	   else 
  	     n=((3*i)+1); 
  	   System.out.print("f("+i+")="+n);
	
  	   for(j=n;j>1;)
  	  {
  	     System.out.print(" -> ");
  	     if(j%2==0)	
  	       m=j/2;
  	     else  
  	       m=((3*j)+1); 
  	     System.out.print("f("+j+")="+m);
  	     j=m;
  	  }	
  	  j=n;	
  	}
  }
}
Dim11 è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2013, 17:32   #2
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Io l'ho fatto così:
Codice:
import java.util.*;
import javax.swing.JOptionPane;

/**
 * Computing Collatz sequences 
 * see http://www.hwupgrade.it/forum/showthread.php?t=2554545
 *
 * CollatzComputer
 * - launcher. Accepts a "gui" arguments to launch the GUI version, otherwise
 * - the Consolle version is used.
 * 
 * CollatzGuiApp
 * - the GUI app. Use javax.swing.JOptionPane for input/output.
 * 
 * CollatzConsolleApp
 * - the consolle app. Use java.io.System for input/output.
 * 
 * CollatzSeq
 * - Istances of this class rappresent Collatz Sequences.
 * 
 */
public class CollatzComputer {
    
    public static void main(String[] args) {
        if (args.length > 0 && "gui".equalsIgnoreCase(args[0])) {
            CollatzGuiApp.run();
        } else {
            CollatzConsolleApp.run();
        }
    }
}


class CollatzGuiApp {

    static void run() {
        String inputMsg = "Please, insert an integer N bigger than zero.";
        String errorMsg = "Invalid input!";
        int n;
        
        while (true) {
            try {
                n = Integer.parseInt(JOptionPane.showInputDialog(null, inputMsg));
            } catch (NumberFormatException ex) {
                JOptionPane.showMessageDialog(null, errorMsg);
                continue;
            }
            if (n > 0) break;
        };
        
        StringBuilder buffer = new StringBuilder();
        for (int i=n; i>0; i--) {
            CollatzSeq sequence = CollatzSeq.forInteger(i);
            buffer.append(sequence).append("\n");
        }
        
        JOptionPane.showMessageDialog(null, buffer);
    }
    
}

class CollatzConsolleApp {

    static void run() {     
        System.out.println("CollatzConsolleApp > Welcome.");
        
        Scanner scanner = new Scanner(System.in);
        scanner.useDelimiter("\n");
        String inputMsg = "Please, insert an integer N bigger than zero.";
        String errorMsg = "Invalid input!";
        int n;
        
        while (true) {
            System.out.println(inputMsg);
            try {
                n = Integer.parseInt(scanner.next());
            } catch (NumberFormatException ex) {
                System.out.println(errorMsg);
                continue;
            }
            if (n > 0) break;
        };
        
        for (int i=n; i>0; i--) {
            CollatzSeq sequence = CollatzSeq.forInteger(i);
            System.out.println(sequence);
        }
        
        System.out.println("End.");
    }
    
}

/**
 * A Collatz sequence.
 */
final class CollatzSeq implements Iterable<Integer> {
    
    /**
     * Compute the Collatz sequence for the integer n
     * @param n the first integer in the Collatz sequence to compute
     * @return the Collatz sequence starting from n to 1 inclusive
     */
    static CollatzSeq forInteger(int n) {
        return new CollatzSeq(n);
    }
    
    // compute the Collatz sequence [n..1] - iterative method
    private static List<Integer> iterativeSequence(int n) {
        List<Integer> list = new ArrayList<>();
        
        while (n > 1) {
            list.add(n);
            if (n % 2 == 0) {
                n = n/2;
            } else {
                n = 3*n + 1;
            }
        }
        
        list.add(1);
        
        return list;
    }
    
    // compute the Collatz sequence [n..1] - trampoline
    private static List<Integer> recursiveSequence(int n) {
        List<Integer> list = new ArrayList<>();
        recursiveSequence0(n, list);
        return list;
    }
    
    // compute the Collatz sequence [n..1] - recursive method with accumulator
    private static void recursiveSequence0(int n, List<Integer> acc) {
        acc.add(n);
        
        if (n == 1) return;
        
        if (n % 2 == 0) {
            recursiveSequence0(n/2, acc);
        } else {
            recursiveSequence0(3*n+1, acc);
        }
    }
    
    // For testing purposes
    public static void main(String[] args) {
        CollatzSeq.test101(1);
        CollatzSeq.test101(4);
        CollatzSeq.test101(10);
        CollatzSeq.test101(79);
        CollatzSeq.test101(101);
    }
    
    private static void test101(int n) {
        CollatzSeq sequence = CollatzSeq.forInteger(n);
        System.out.println(sequence);
        System.out.println(sequence.count() + " elements");
        System.out.println("");
    }
    
    private final List<Integer> sequence;
    
    /**
     * Private 'ctor. 
     * Use static method CollatzSeq.forInteger to create instances.
     */
    private CollatzSeq(int n) {
        //List<Integer> list = recursiveSequence(n);
        List<Integer> list = iterativeSequence(n);
        sequence = Collections.unmodifiableList(list);
    }
    
    /**
     * @return the number of integers in this CollatzSeq
     */
    public int count() {
        return sequence.size();
    }
    
    @Override
    public String toString() {
        StringBuilder buffer = new StringBuilder().append("[");
        
        Iterator<Integer> it = sequence.iterator();
        while (it.hasNext()) {
            buffer.append(it.next());
            if (it.hasNext()) buffer.append(" -> ");
        }
        
        return buffer.append("]").toString();
    }
    
    @Override 
    public Iterator<Integer> iterator() {
        return sequence.iterator();
    }
}
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Lenovo IdeaPad Slim 3: un notebook Snapdragon X economico Lenovo IdeaPad Slim 3: un notebook Snapdragon X ...
Recensione OnePlus Watch 3 43mm: lo smartwatch che mancava per i polsi più piccoli Recensione OnePlus Watch 3 43mm: lo smartwatch c...
BOOX Note Air4 C è uno spettacolo: il tablet E Ink con Android per lettura e scrittura BOOX Note Air4 C è uno spettacolo: il tab...
Recensione Sony Xperia 1 VII: lo smartphone per gli appassionati di fotografia Recensione Sony Xperia 1 VII: lo smartphone per ...
Attenti a Poco F7: può essere il best buy del 2025. Recensione Attenti a Poco F7: può essere il best buy...
Apple annuncia l'evento del 9 settembre:...
Broadcom annuncia l'integrazione dell'IA...
AirPods Pro 3: il debutto è vicin...
Corsair XENEON EDGE: il mini-monitor che...
iPhone 17 Pro: tra le novità anche una n...
Incredibile ma vero: Tesla apre le vendi...
Klarna torna alla carica: IPO in vista c...
L'IA arriva sui NAS Synology con l'integ...
Comet, il browser AI di Perplexity, vuln...
NIO arranca, gli ultimi modelli sono un'...
Spotify introduce i messaggi in-app: arr...
Riese & Müller blocca le e-bike verso gl...
Google elimina 77 app dal Play Store: ru...
Il nuovo miracolo cinese si chiama Wulin...
Il pianeta nano Cerere avrebbe potuto so...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 18:32.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v