Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Programmazione 1, 9 CFU => Topic started by: Vilelm on 12-11-2010, 19:03:06



Title: Esercizi programmazione
Post by: Vilelm 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


Title: Re:Esercizi programmazione
Post by: Luxandro 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*


Title: Re:Esercizi programmazione
Post by: fabryxio 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


Title: Re:Esercizi programmazione
Post by: Stardust 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!  .applausi


Title: Re:Esercizi programmazione
Post by: Luxandro on 13-11-2010, 11:58:00
Inizio col confessarti che sono tutto tranne che ESPERTO  :-)|

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  .rido

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);
   }
}



Title: Re:Esercizi programmazione
Post by: Luxandro on 13-11-2010, 12:02:49
Ovviamente ci sarebbero tantissimi modi per ottenere lo stesso risultato  .rido


Title: Re:Esercizi programmazione
Post by: Impact 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++;
}
}
}


Title: Re:Esercizi programmazione
Post by: Vilelm on 15-11-2010, 15:39:25
Ma come mai utilizzate solo il ciclo while e non ad esempio un for?


Title: Re:Esercizi programmazione
Post by: fabryxio 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);


Title: Re:Esercizi programmazione
Post by: Luxandro 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


Title: Re:Esercizi programmazione
Post by: Vilelm 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);
}
}


Title: Re:Esercizi programmazione
Post by: Vilelm 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);
}
}


Title: Re:Esercizi programmazione
Post by: Impact 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..  |-O


Title: Re:Esercizi programmazione
Post by: fabryxio 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


Title: Re:Esercizi programmazione
Post by: fabryxio 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


Title: Re:Esercizi programmazione
Post by: fabryxio on 16-11-2010, 01:10:20
Dato che dovete utilizzare e spremervi su while e if il primo è completo così due in uno xD
Code:
public class Ex01
{
public static void main(String[]args)
{
String s="", t="";
int j=10;
int j1=1;

while (j>=1)  //Crescente e Decrescente
{
s+=j;
j--;

if(j1<=10)
{
t+=j1;
j1++;
}
}

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

Usate il println per questo genere di esercizi che vi riporta alla fine il cursore a capo se no viene l'ultima stringa:

10987654321<Exitcode=0

è brutto a vedersi xD


Title: Re:Esercizi programmazione
Post by: slentini91 on 21-11-2010, 09:27:20
import javax.swing.*;

public class Output_Strano
{
   public static void main(String args[])
    {
   String InputNumero;
   int InputNum = 0 , i , j =0 ;
      InputNumero = JOptionPane.showInputDialog("Inserisci un numero dal quale è possibile iniziare");
      InputNum = Integer.parseInt(InputNumero);
      while(j<InputNum){
      for(i=0;i<(InputNum + 1);i++)
      {
         System.out.print(i);
      }
      System.out.println();
      for(i=InputNum; i>=0;i--)
      {
         System.out.print(i);
      }
      System.out.println();
      j++;
      } 
   System.exit(0);   
   }
}

Credo che dia un risultato simile


Title: Re:Esercizi programmazione
Post by: Stardust on 23-11-2010, 23:35:49
Il professore ha fatto esempi cn degli esercizi sulle classi! il mio dubbio è come fai a fare l' esercizio se nn hai la classe a disposizione nn da errore di compilazione?! perchè poi ha detto di provarne a fare alcuni  :-)|


Title: Re:Esercizi programmazione
Post by: Impact on 24-11-2010, 16:42:39
Il prof intende di farli a penna.. e non al pc. ovviamente quindi senza compilare