Esercizio: String e Int

di il
8 risposte

Esercizio: String e Int

Ciao a tutti,
Si scrive un programma che legge un intero di quattro cifre per esempio 2010 e quindi lo visualizzi una cifra per riga.
2
0
1
0

Il fatto che lo devo fare anche in sotto forma di stringhe.

Il fatto che non riesco a trovare le soluzioni per risolvere questo esercizio.
Se gentilmente mi potete dare un suggerimento sia come risolvere in forma di stringhe e sia come risolvere in forma di interi.

Grazie

8 Risposte

  • Re: Esercizio: String e Int

    robot ha scritto:


    Il fatto che non riesco a trovare le soluzioni per risolvere questo esercizio.
    Quello che chiedi si può fare in diversi modi ma dipende anche da cosa ti è permesso utilizzare, essendo un "esercizio". Puoi sfruttare una formattazione in stringa dell'intero? (a quel punto estrarre le singole cifre è banale). Devi solo poter usare operazioni matematiche per spezzare l'intero?
  • Re: Esercizio: String e Int

    In stringhe posso utilizzare tutto.
    Invece in forma Intero bisogna trovare il calcolo giusto utilizzando operatori / e %.
    Qualche suggerimento????????
  • Re: Esercizio: String e Int

    robot ha scritto:


    Invece in forma Intero bisogna trovare il calcolo giusto utilizzando operatori / e %.
    E quale è il dubbio/problema? Basta sfruttare resto e divisione in modo opportuno, ad esempio per 10 andando a prendere man mano le cifre dalla meno significativa.
    1234 % 10 ---> 4, poi 1234 / 10 ---> 123
    123 % 10 ---> 3, poi 123 / 10 ---> 12
    ecc...

    Ovviamente così ottieni le cifre al contrario rispetto a come si dovrebbero stampare. Ma o tieni un array e poi stampi nel senso giusto oppure sfrutti un approccio "ricorsivo" (ammesso che ti sia stato spiegato e/o permesso) in modo da fare questi calcoli e stampare anche nel senso giusto.
  • Re: Esercizio: String e Int

    Invece in stringhe come si risolve?
  • Re: Esercizio: String e Int

    robot ha scritto:


    Invece in stringhe come si risolve?
    Se hai una stringa es. "2010", si accede ai singoli caratteri per indice (0-based) con charAt(int index) di String
  • Re: Esercizio: String e Int

    Grazie, ci provo, e ti farò sapere.
  • Re: Esercizio: String e Int

    In formato Stringhe l'ho fatto cosi, ma mi devi correggere:
    
    import java.util.*;
    
    public class EsSei {
    
    	public static void main(String[] args) {
    		
    		/*Si scrive un programma che legge un intero di quattro cifre come una Stringa, per esempio 2010
    		 * e quindi lo visualizzi, una cifra per riga
    		 * 2
    		 * 0
    		 * 1
    		 * 0
    		 * 
    		 * Se hai una stringa es. "2010", 
    		 * si accede ai singoli caratteri per indice (0-based) con charAt(int index) di String
    		 */
    		
    		Scanner in = new Scanner(System.in);
    		
    		String n;
    		char r1,r2,r3,r4;
    		
    		System.out.println("Inserisci quattro cifre interi in formato stringhe:");
    		n = in.nextLine();
    		
    		r1 = n.charAt(0);
    		r2 = n.charAt(1);
    		r3 = n.charAt(2);
    		r4 = n.charAt(3);
    		
    		System.out.println(r1);
    		System.out.println(r2);
    		System.out.println(r3);
    		System.out.println(r4);
    	}
    
    

    Invece in formato con gli interi, ho avuto dei problemi se mi puoi dire come posso correggere:
    
    import java.util.*;
    
    public class EsCinque {
    
    	public static void main(String[] args) {
    		
    		/*Si scrive un programma che legge un intero di quattro cifre, per esempio 2010
    		 * e quindi lo visualizzi, una cifra per riga
    		
    		 * 2
    		 * 0
    		 * 1
    		 * 0
    		
    		 */
    		
    		Scanner in = new Scanner(System.in);
    		
    		int n, n1, n2, n3, n4, n5, n6, n7;
    		System.out.println("Inserisci quattro cifre interi:");
    		n = in.nextInt();
    		
    		n1 = n % 10;
    		n2 = n / 10;
    		n3 = n2 % 10;
    		n4 = n3 / 10;
    		n5 = n4 % 10;
    		n6 = n5 / 10;
    		
    		
    		System.out.println( "la scomposizione del primo numero:" + n1);
    		System.out.println( "la scomposizione del secondo numero:" + n3);
    		System.out.println( "la scomposizione del secondo numero:" + n5);
    		System.out.println( "la scomposizione del secondo numero:" + n6);
    
    	}
    
    }
    
    
    
  • Re: Esercizio: String e Int

    robot ha scritto:


    
    public class EsSei {
       .............
    
    Di per sé è corretto, fa quanto chiesto. Chiaramente è limitato a solo 4 caratteri (che possono essere qualunque, non solo cifre). Se volessi generalizzarlo, potresti fare un ciclo for sulla lunghezza della stringa e stampare quindi il carattere i-esimo. Quindi funzionerebbe per 1, 4, 10, 20, ecc... caratteri.

    robot ha scritto:


    Invece in formato con gli interi, ho avuto dei problemi se mi puoi dire come posso correggere:
    
    import java.util.*;
    
    public class EsCinque {
       .............
    
    No, questo non va bene. Ma volendo "fissare" il tutto a solo 4 cifre (e senza tirare in ballo altri metodi o la ricorsione), ti assicuro che è più semplice di quanto credi.

    Ti bastano 5 variabili numeriche, n, poi n1 ... n4.

    Prima calcoli n4 come resto di n diviso 10 (questa è la cifra MENO significativa!).
    Poi dividi n per 10 e ATTENZIONE, riassegni a n (non importa se "perdi" il valore che prima aveva n).
    Poi calcoli n3 allo stesso modo di n4.
    Ecc...

    Alla fine stampi n1, n2, n3, n4
Devi accedere o registrarti per scrivere nel forum
8 risposte