Pages: [1]   Go Down
Print
Author Topic: Es.asterischi  (Read 1775 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Meluccio10
Apprendista Forumista
**
Offline Offline

Posts: 108


« on: 12-11-2011, 16:30:05 »

ehi ragazzi sapete suggerirmi un soluzione per avere in output la seguente rappresentazione:
    +
   ++
  +++
 ++++
+++++
 ++++
  +++
   ++
    +


grazie mille anticipatamente...
Logged
Saro Newland
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 159



WWW
« Reply #1 on: 12-11-2011, 17:35:25 »

ehi ragazzi sapete suggerirmi un soluzione per avere in output la seguente rappresentazione:
    +
   ++
  +++
 ++++
+++++
 ++++
  +++
   ++
    +


grazie mille anticipatamente...

io ho fatto così, ma credo che sia troppo grossolana come situazione
http://paste.ubuntu.com/734736/
Logged
rEDTUNING
Matricola
*
Offline Offline

Gender: Male
Posts: 26


Siamo β-ridotti male


« Reply #2 on: 12-11-2011, 19:22:51 »

io ho fatto così, ma credo che sia troppo grossolana come situazione
http://paste.ubuntu.com/734736/

mmm penso che non vada bene, il senso dell'esercizio è sfruttare le iterazioni per creare quella figura in modo "automatico". Tu in pratica hai messo gli spazi in modo graduale aumentandoli\diminuendoli e hai usato le iterazioni solo per fare n simboli in ogni riga. Il senso dell'esercizio a mio parere non è questo ma è fare un programma che in automatico generi quella figura grazie a delle iterazioni. Un pò come l'esempio della matrice che andava a righe alterne da 1 a 10 e da 10 a 1.
Logged

Vincenzo 'rEDTUNING' Greco

Se i compilatori potessero prendere vita mi prenderebbero a schiaffi per tutti gli errori che faccio.
VanDir
Matricola
*
Offline Offline

Posts: 68


« Reply #3 on: 12-11-2011, 21:20:27 »

Ciao ragazzi io molto probabilmente mi sono complicato la vita però alla fine sono riuscito a risolverlo. In pratica bisogna implementare un while che stampa gli spazi e uno che stampa i caratteri. Di sotto ho scritto il codice(all'aumentare del numero che vi chiede all'inizio aumenta la lunghezza dell'altezza).

Qui c'è il codice:

Code:
import javax.swing.JOptionPane;
public class romboPiu1
{
        public static void main(String[] args)
{
char x = '+';
String space = " ";
int riga = 1;
int contI = 1;
                String figura = "";
int n = Integer.parseInt(JOptionPane.showInputDialog("Scrivi un numero:"));
while (riga <= n)
{
contI = riga;
while (contI < n)
{
System.out.print(space);
contI++;
}
figura += x;
System.out.println(figura);
riga++;
}
figura = "";
contI = 1;
riga = 1;
while (riga < n)
{
contI = riga;
System.out.print(space);
space += " ";
while (contI < n-1)
{
System.out.print(x);
contI++;
}
System.out.println(x);
riga++;
}
System.exit(0);
}
}

o così(non mi ricordavo bene l'output scritto alla lavagna):

Code:
import javax.swing.JOptionPane;
public class romboPiu2
{
        public static void main(String[] args)
{
int riga = 1;
int contatore = 1;
int n = Integer.parseInt(JOptionPane.showInputDialog("Scrivi un numero(non troppo grande):"));
char x = '+';
String spazio = "  ";
                String figura = "+";

while (riga <= n)   
{
contatore = riga;  //serve a far diminuire il numero di spazi da stampare nel prossimo ciclo interno
while (contatore < n)  //stampa un numero di spazi senza andare a capo che va a diminuire con la ripetizione del ciclo più esterno
{
System.out.print(spazio);
contatore++;
}
System.out.println(figura); //stampa (andando a capo) un numero di asterisci che va sempre ad aumentare con la ripetizione del ciclo
figura += x + "" + x;
riga++;
}

riga = 1;

while (riga < n)
{
contatore = riga;
System.out.print(spazio);
spazio += "  ";
while (contatore < n-1)
{
System.out.print(x+""+x);
contatore++;
}
System.out.println(x);
riga++;
}

System.exit(0);
}
}

« Last Edit: 14-11-2011, 15:54:54 by VanDir » Logged
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #4 on: 12-11-2011, 23:48:56 »

Sicuro che la progressione di asterischi (o comunque di simboli) vada letta, riga per riga, come incrementale di una sola unità ?
Te lo chiedo perché per disegnare quel "rombo" penso si utilizzi la console, che è una matrice rettangolare di caratteri, e purtroppo, proprio per tale reticolarità, non è possibile mostrare due simboli centrandoli entrambi sotto uno stesso simbolo.

Forse per caso la rappresentazione dovrebbe incrementare di 2? Ad esempio, così:

   *        1 simbolo
  ***       
3 (1+2) simboli
 *****     
5 (3+2) simboli
*******     
7 (5+2) simboli, ecc...
 *****
  ***
   *
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
rEDTUNING
Matricola
*
Offline Offline

Gender: Male
Posts: 26


Siamo β-ridotti male


« Reply #5 on: 13-11-2011, 00:18:38 »

Sicuro che la progressione di asterischi (o comunque di simboli) vada letta, riga per riga, come incrementale di una sola unità ?
Te lo chiedo perché per disegnare quel "rombo" penso si utilizzi la console, che è una matrice rettangolare di caratteri, e purtroppo, proprio per tale reticolarità, non è possibile mostrare due simboli centrandoli entrambi sotto uno stesso simbolo.

Forse per caso la rappresentazione dovrebbe incrementare di 2? Ad esempio, così:

   *        1 simbolo
  ***       
3 (1+2) simboli
 *****     
5 (3+2) simboli
*******     
7 (5+2) simboli, ecc...
 *****
  ***
   *


Questo in effetti me lo chiedevo pure io, non ricordo il prof cosa di preciso avesse chiesto come esercizio, se lo ricordate scrivetelo qui
Logged

Vincenzo 'rEDTUNING' Greco

Se i compilatori potessero prendere vita mi prenderebbero a schiaffi per tutti gli errori che faccio.
matteo
Matricola
*
Offline Offline

Posts: 11


« Reply #6 on: 14-11-2011, 11:29:15 »

io l'ho fatto pure.... spero che sia di aiuto... non dovrebbe essere troppo difficile... se lo eseguite con qualsiasi valore della variabile numero funziona correttamente. numero corrisponde al numero massimo di + che vengono stampati al centro.


public class eserciziopiufattodame
{
   public static void main(String[] args)
   {
      
   double riga,j,i,i1,i2,j1,j2,j3;
      
      
   double numero;
      
   
   riga = 1.0;
   numero = 17.0;   
   i=1;
   j= (numero/2)-0.5;
   i2 = (numero-2);
      j3=1;      
      while ((riga <= (numero/2)+0.5)){
      
         j1=j;
         while(j1>0){
            System.out.print("   ");
            j1--;
         }
         
         
         
         i1=i;
         while(i1>0){
            System.out.print("+");
            i1--;
         }
      
      j--;
      i=i+2;
      riga ++;
      System.out.print("\n");
      }
      
      while(riga<=numero){
         
         j2=1;
         while(j2<=j3){
            System.out.print("   ");
            j2++;
         }
         
         i1=1;
         while(i1<=i2){
            System.out.print("+");
            i1++;
         }
         j3++;
         i2=i2-2;
         riga++;
         System.out.print("\n");
      }
      
      
   }
}
   
Logged
LtWorf
Forumista Esperto
****
Offline Offline

Posts: 1.079

Ogni cosa da me scritta è da intendersi come opinione personale e non come dato di fatto. Anche le eventuali dimostrazioni matematiche da me scritte saranno opinioni personali e quindi dovranno venire dimostrate da una terza parte di fiducia


WWW
« Reply #7 on: 15-11-2011, 02:36:34 »

C'è un qualche motivo che mi sfugge per usare variabili double invece che interi?
Logged

There are some OO programming languages. I will create the first -_-' language.

LtWorf
matteo
Matricola
*
Offline Offline

Posts: 11


« Reply #8 on: 15-11-2011, 10:29:45 »

no nessun motivo... tranne per alcune variabili di cui eseguo la divisione... comunque ho notato che il mio programma su windows gira diversamente... diciamo che gli spazi li legge in maniera diversa quindi non prendetelo per buono... il l'ho compilato su ubuntu e mi funzionava bene... se riuscirò a risolvere lo posterò nuovamente..
Logged
LtWorf
Forumista Esperto
****
Offline Offline

Posts: 1.079

Ogni cosa da me scritta è da intendersi come opinione personale e non come dato di fatto. Anche le eventuali dimostrazioni matematiche da me scritte saranno opinioni personali e quindi dovranno venire dimostrate da una terza parte di fiducia


WWW
« Reply #9 on: 15-11-2011, 17:42:12 »

Probabilmente usi output su qualcosa con font a larghezza variabile. Per sbrigarmi io lo proverei sul terminale, che è a larghezza fissa.

Logged

There are some OO programming languages. I will create the first -_-' language.

LtWorf
Ocelot92
Apprendista Forumista
**
Offline Offline

Posts: 301



« Reply #10 on: 17-11-2011, 18:41:30 »

Vi consiglio di usare come IDE Geany o Netbeans così potete impostare il font "monospace". Su scite ai tempi non ci riuscii a farlo  .

O se preferite usare Scite e Linux andate di terminale  yoh
Logged

I'm happy to tell you all that...
((λf.λx.f(f(x))) (λy.y^2)) (5)  = 5^4

"Si ma dillo che bisogna cliccare APPLY per crearle le partizioni…" - cit. Utente dopo aver seguito un How-To... .-.
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #11 on: 17-11-2011, 19:22:58 »

Per programmazione 1 io abolirei (leggasi sconsiglierei ) l'uso degli IDE... poco istruttivi a mio avviso ...
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Pages: [1]   Go Up
Print
Jump to: