Pages: [1] 2   Go Down
Print
Author Topic: Esercizi programmazione  (Read 3872 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Vilelm
Matricola
*
Offline Offline

Gender: Male
Posts: 13



« on: 12-11-2010, 19:03:06 »

Salve a tutti, visto che per motivi di lavoro non posso seguire le lezioni, vorrei sapere se ci sono degli esercizi da svolgere lasciati dal professore proprio durante le lezioni. Se si qualcuno sarebbe così gentile da postarli qui? Grazie in anticipo
Logged
Luxandro
Apprendista Forumista
**
Offline Offline

Posts: 307



« Reply #1 on: 12-11-2010, 19:33:16 »

Stampare a video il seguente output:

10987654321
12345678910
10987654321
12345678910
10987654321
12345678910
10987654321

Dato in input un intero n stampare a video il seguente output fino all'elemento n-esimo:

*
**
***
****
...
...
...
n*
Logged

"Quando non stai guardando è come un'onda. Quando guardi è come una particella!"
fabryxio
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 343

Chi l'ha duro....... l'ha duro!


WWW
« Reply #2 on: 12-11-2010, 23:36:11 »

Sul sito del prof cincotti ne trovi un sacco.. e se vai indietro nel forum ne trovi un sacco xD
Logged

Stardust
Apprendista Forumista
**
Offline Offline

Posts: 450


L'amore è attesa di una gioia che qnd arrva annoia


« Reply #3 on: 13-11-2010, 10:10:40 »

Dato in input un intero n stampare a video il seguente output fino all'elemento n-esimo:

*
**
***
****
...
...
...
n*
Questa cosa dei caratteri l' ho fatta in qst modo:
Code:
public static void main(String[]args){
int righe=5;
String s="";
while(righe!=0) {
s+='*';
righe--;

System.out.println(s);
}
Credo che sia sbagliato perchè la System è messa dentro il ciclo quindi stampa sempre i valori fino a qll finale. Se la System si mette fuori stampa solo ***** che sarebbe il valore qll reale ottenuto e nn la specie di mezza piramide ottenuta ciclando... quindi fondamentalmente l' esercizio nn so se giusto!Un PARERE DI qualche ESPERTO! 
Logged

L'acqua ni vagna...u ventu n'asciuca e... u RUM e PERA n'aiutaaaa...
Luxandro
Apprendista Forumista
**
Offline Offline

Posts: 307



« Reply #4 on: 13-11-2010, 11:58:00 »

Inizio col confessarti che sono tutto tranne che ESPERTO  testate

Cmq a me sembra corretto con la print dentro il while...anche perchè la stringa la stampi con un "println". Ovvero ti stampa n'*' ad ogni "linea" e  ad ogni ciclo va a capo; quindi è corretto che venga messo dentro il while.

Infatti, se metti la print fuori, accade che prima concatena le 5 stringhe e poi le stampa!

Io l'ho svolto esattamente come hai fatto tu! L'unica differenza è che ho inserito n da tastiera, ma la sostanza è quella  

Un altro metodo, sicuramente meno elegante, è il seguente



import javax.swing.*;

public class Aster
{
   public static void main(String[] args)
   {
      int n=Integer.parseInt(JOptionPane.showInputDialog("Inserire n"));
      int i=1;
      int k=1;
      
      while(i<=n)
      {
         while(i>=k)
         {
            System.out.print("*");
            k++;
         }
      
      k=1;
      i++;
      System.out.print("\n");
      }
   
      System.exit(0);
   }
}

« Last Edit: 13-11-2010, 12:18:55 by Luxandro » Logged

"Quando non stai guardando è come un'onda. Quando guardi è come una particella!"
Luxandro
Apprendista Forumista
**
Offline Offline

Posts: 307



« Reply #5 on: 13-11-2010, 12:02:49 »

Ovviamente ci sarebbero tantissimi modi per ottenere lo stesso risultato 
Logged

"Quando non stai guardando è come un'onda. Quando guardi è come una particella!"
Impact
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 107



« Reply #6 on: 15-11-2010, 15:09:31 »

Io l'ho fatto così:

Code:
public class Ex02
{
public static void main (String[] args)
{
int n = 10;
int i = 1;
int j;
while (i <= n)
{
j=1;
while (j<=i)
{
System.out.print("*");
j++;
}
System.out.print("\n");
i++;
}
}
}
Logged
Vilelm
Matricola
*
Offline Offline

Gender: Male
Posts: 13



« Reply #7 on: 15-11-2010, 15:39:25 »

Ma come mai utilizzate solo il ciclo while e non ad esempio un for?
Logged
fabryxio
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 343

Chi l'ha duro....... l'ha duro!


WWW
« Reply #8 on: 15-11-2010, 15:47:13 »

Ma come mai utilizzate solo il ciclo while e non ad esempio un for?

quoto xD metà righe di comando con il for  yoh
basta porre:
Code:
for(int i=1;i<=n;i++)
e ovviamente:
Code:
str+='*';
System.out.println(str);
« Last Edit: 15-11-2010, 16:01:12 by fabryxio » Logged

Luxandro
Apprendista Forumista
**
Offline Offline

Posts: 307



« Reply #9 on: 15-11-2010, 16:36:53 »

Perchè quando il prof. l'ha assegnato ha specificato che si potevano usare solo if e while.
E' ovvio che si potrebbe usare un for, e sicuramente sarebbe più efficiente, ma probabilmente il prof. vuole prima "spremerci" a fondo sugli if e while  boh
Logged

"Quando non stai guardando è come un'onda. Quando guardi è come una particella!"
Vilelm
Matricola
*
Offline Offline

Gender: Male
Posts: 13



« Reply #10 on: 15-11-2010, 17:13:59 »

Ah, allora ok pray
Sarà perchè così bisogna esplicitare i contatori, mentre il for fa tutto da se! A questo punto, io farei semplicemente così, come del resto ha già postato Stardust (Ziggy??):
Code:
import javax.swing.*;

public class Ex02
{
public static void main (String[]args)
{
int n = Integer.parseInt(JOptionPane.showInputDialog("n="));
int i=0;
String s="";

while (i<n)
{
s+="*";
System.out.println(s);
i++;
}
exit(0);
}
}
Logged
Vilelm
Matricola
*
Offline Offline

Gender: Male
Posts: 13



« Reply #11 on: 15-11-2010, 17:41:16 »

Il primo invece l'ho fatto così, qualcuno ha qualche altra idea?
Code:
public class Ex01
{
public static void main(String[]args)
{
String s="", t="";
int j=10;

while (j>=1)  //Crea la stringa decrescente
{
s+=j;
j--;
}
j++;
while (j<=10) //Crea la stringa crescente
{
t+=j;
j++;
}

System.out.print(s+"\n"+t+"\n"+s+"\n"+t+"\n"+s+"\n"+t+"\n"+s);
}
}
Logged
Impact
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 107



« Reply #12 on: 15-11-2010, 23:47:09 »

Perchè quando il prof. l'ha assegnato ha specificato che si potevano usare solo if e while.
E' ovvio che si potrebbe usare un for, e sicuramente sarebbe più efficiente, ma probabilmente il prof. vuole prima "spremerci" a fondo sugli if e while  boh
Concordo..  univ
Logged
fabryxio
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 343

Chi l'ha duro....... l'ha duro!


WWW
« Reply #13 on: 16-11-2010, 00:49:54 »

ed è la stessa cosa..
prima del while metti i=1
nel while la condizione i<=n
l'istruzioni del while sono sempre le stesse , in + si deve mettere l'incremento di i con i++ =)
quando la condizione sarà falsa uscira dal while ...


p.s non vedo il motivo di mettere quell' exit(0) dopo il while :S
Logged

fabryxio
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 343

Chi l'ha duro....... l'ha duro!


WWW
« Reply #14 on: 16-11-2010, 01:03:03 »

Il primo invece l'ho fatto così, qualcuno ha qualche altra idea?
Code:
public class Ex01
{
public static void main(String[]args)
{
String s="", t="";
int j=10;

while (j>=1)  //Crea la stringa decrescente
{
s+=j;
j--;
}
j++;
while (j<=10) //Crea la stringa crescente
{
t+=j;
j++;
}

System.out.print(s+"\n"+t+"\n"+s+"\n"+t+"\n"+s+"\n"+t+"\n"+s);
}
}

così è giusto.. =) evitando casini di valori di variabile dove magari uno si potrebbe confendere durante l'esame, potresti mettere una variabile j per crescente e una i per decrescente.. ma alla fine la cosa va ottimizzata.. è giusto cmq in tutti e due i modi sia con due variabili ke con una.. io avrei utilizzato i for xD
Logged

Pages: [1] 2   Go Up
Print
Jump to: