Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Programmazione 1, 9 CFU => Topic started by: fabryxio on 14-09-2010, 09:54:19



Title: Esame del 14 / 09 / 2010
Post by: fabryxio on 14-09-2010, 09:54:19
Testo esercizi:

1 - Scrivere un metodo che prenda in input una matrice quadrata di byte e restituisca un boolean che indichi se esiste una diagonale parallela alla diagonale secondaria la cui somma degli elementi è un multiplo di 7

2 - Scrivere un metodo che prenda in input un byte n, e restituisca un array bidimensionale frastagliato A di stringhe con n righe ed un numero casuale di colonne per ogni riga. Ad ogni locazione di A si assegni una stringa di caratteri casuali in 'g'.....'m' di lunghezza casuale

 :-)| :-)| :-)| :-)| ho combinato un casinooooooo...delucidazioni pleaseeeee  :[Emoticon] PC Asd: :[Emoticon] PC Asd: :[Emoticon] PC Asd: :[Emoticon] PC Asd:


Title: Re:Esame del 14 / 09 / 2010
Post by: markus182 on 14-09-2010, 10:18:56
Testo esercizi:

1 - Scrivere un metodo che prenda in input una matrice quadrata di byte e restituisca un boolean che indichi se esiste una diagonale parallela alla diagonale secondaria la cui somma degli elementi è un multiplo di 7

2 - Scrivere un metodo che prenda in input un byte n, e restituisca un array bidimensionale frastagliato A di stringhe con n righe ed un numero casuale di colonne per ogni riga. Ad ogni locazione di A si assegni una stringa di caratteri casuali in 'g'.....'m' di lunghezza casuale

 :-)| :-)| :-)| :-)| ho combinato un casinooooooo...delucidazioni pleaseeeee  :[Emoticon] PC Asd: :[Emoticon] PC Asd: :[Emoticon] PC Asd: :[Emoticon] PC Asd:
.quoto qualcuno posti la soluzione per favore!!  :pray
grazie in anticipo!!  .ciaociao


Title: Re:Esame del 14 / 09 / 2010
Post by: fabryxio on 14-09-2010, 10:26:13
Non chiedetemi di postare la mia soluzione perkè anke io la reputo INDECENTE   :-)L :-)L :-)L  .poverinoi .poverinoi .poverinoi  .huh


Title: Re:Esame del 14 / 09 / 2010
Post by: jos90 on 14-09-2010, 17:40:44
Non è andato bene neanche a me, ho provato a metterci 6 cicli for XD niente difficile questa volta il primo esercizio .__. il secondo era piu semplice invece °-°


Title: Re:Esame del 14 / 09 / 2010
Post by: fabryxio on 14-09-2010, 19:32:12
Non è andato bene neanche a me, ho provato a metterci 6 cicli for XD niente difficile questa volta il primo esercizio .__. il secondo era piu semplice invece °-°

Il prof aveva detto ke erano facili  .poverinoi 11 eravamo oggi ..assurdo..!!
Cmq si è vero il secondo era + facile.. ma sbagliare il primo significa 0.. quindi..
o direttamente fare solo il secondo... ma alla fine con 12 - 13 - 14 punti non si passa..  .poverinoi
Qualke geniaccio ke ci aiuta con la soluzione di questo problemaaa xD? ..
grazieeeeeeeeeeeeeeeeeeeeeeeee


Title: Re:Esame del 14 / 09 / 2010
Post by: jos90 on 15-09-2010, 00:51:35
Non è andato bene neanche a me, ho provato a metterci 6 cicli for XD niente difficile questa volta il primo esercizio .__. il secondo era piu semplice invece °-°

Il prof aveva detto ke erano facili  .poverinoi 11 eravamo oggi ..assurdo..!!
Cmq si è vero il secondo era + facile.. ma sbagliare il primo significa 0.. quindi..
o direttamente fare solo il secondo... ma alla fine con 12 - 13 - 14 punti non si passa..  .poverinoi
Qualke geniaccio ke ci aiuta con la soluzione di questo problemaaa xD? ..
grazieeeeeeeeeeeeeeeeeeeeeeeee
|-O

Se fosse stata la diagonale principale sarebbe stato semplice, vabbè comunque credo fosse logico che ironizzava per metterci alla prova!


Title: Re:Esame del 14 / 09 / 2010
Post by: fabryxio on 15-09-2010, 09:11:00
no no quale ironizzava ..era troppo convinto quando ha detto ke gli eserc erano facili!


Title: Re:Esame del 14 / 09 / 2010
Post by: cristina89 on 15-09-2010, 09:11:38
ciao ragazzi volevo un informazione..per caso il prof ha detto che giorno era il laboratorio? grazie in anticipo  .ciaociao


Title: Re:Esame del 14 / 09 / 2010
Post by: jos90 on 15-09-2010, 11:43:03
Se non sbaglio ha detto Martedì 21 per l'orario non ne sono sicuro, ma credo di aver capito 9 o 9 e 30 massimo perchè poi alle 11,30 c'è la terza prova!

OT a parte, se qualcuno è riuscito a risolvere gli esercizi sovrastanti sarebbe fantastico che ci aiutasse a comprenderli *o*


Title: Re:Esame del 14 / 09 / 2010
Post by: cristina89 on 15-09-2010, 14:56:19
ok grazie mille  .wink


Title: Re:Esame del 14 / 09 / 2010
Post by: diprob88 on 15-09-2010, 22:35:40
allora ragazzi vi posto le mie soluzioni spero siano di aiuto a qualcuno:

Code:
/*1 - Scrivere un metodo che prenda in input una matrice quadrata di byte e restituisca
    un boolean che indichi se esiste una diagonale parallela
    alla diagonale secondaria la cui somma degli elementi e' un multiplo di 7*/
    
    public static boolean escompitopeppe(byte m[][])
    {
        
        int d=m.length+(m.length-1);
        int []vett=new int[d];
        
        for(int k=0;k<d;k++)
                for(int i=0;i<m.length;i++)
                    for(int j=0;j<m[0].length;j++)
                        if(i+j==k)
                            vett[k]+=m[i][j];
                        
                        boolean controllo=false;
                        for(int p=0;(p<vett.length)&&(controllo==false);p++)
                        if(vett[p]%7==0)
                            controllo=true;
                        
                        
                        
        return controllo;
    }

   
Premetto che potevo farlo senza array usiliario, ma ho preferito metterlo per confondermi di meno




questo invece è il 2°:


Code:
    /*2 - Scrivere un metodo che prenda in input un byte n, e restituisca un array bidimensionale frastagliato A
    di stringhe con n righe ed un numero casuale di colonne per ogni riga.
    Ad ogni locazione di A si assegni una stringa di caratteri casuali in 'g'.....'m' di lunghezza casuale*/
    public static String[][] escompitopeppe2(byte n)
    {
        String [][]out=new String[n][];
        for(int i=0;i<out.length;i++)
        {
            out[i]=new String[(int)((7-2+1)*Math.random())+2];
            for(int j=0;j<out[i].length;j++)
            {
                out[i][j]="";
                int l=(int)((7-5+1)*Math.random())+5;
                for(int k=0;k<l;k++)
                out[i][j]+=(char)((('m'-'g'+1)*Math.random())+'g');
            }
        }
        return out;
    }


Title: Re:Esame del 14 / 09 / 2010
Post by: ɹǝǝuıƃuǝsɹǝʌǝɹ on 15-09-2010, 22:38:02
allora ragazzi vi posto il codice del 1° esercizio funzionate, appena testato, spero sia di aiuto a qualcuno:
Il codice è illegibile.

Suggerisco di modificare il messaggio e includere il codice in un tag CODE apposito.


Title: Re:Esame del 14 / 09 / 2010
Post by: Luckino on 16-09-2010, 09:51:02
è la decima volta che gli sento dire: "questa volta gli esercizi sono facilissimi!!!"


Title: Re:Esame del 14 / 09 / 2010
Post by: ɹǝǝuıƃuǝsɹǝʌǝɹ on 16-09-2010, 11:46:34
Allora ragazzi vi posto le mie soluzioni spero siano di aiuto a qualcuno:
Molto bene, sono corrette tutt'e due :-OK.

E confermo che gli esercizi non penso siano di tutta questa gran difficoltà .smile...
Insomma, non vi hanno nemmeno richiesto di non usare array ausiliari! :boh


Title: Re:Esame del 14 / 09 / 2010
Post by: fabryxio on 16-09-2010, 14:40:09
Allora ragazzi vi posto le mie soluzioni spero siano di aiuto a qualcuno:
Molto bene, sono corrette tutt'e due :-OK.

E confermo che gli esercizi non penso siano di tutta questa gran difficoltà .smile...
Insomma, non vi hanno nemmeno richiesto di non usare array ausiliari! :boh

beh rileggendo ora la soluzione.. direi di no , probabilmente ho fatto tanta confusione :(  .poverinoi


Title: Re:Esame del 14 / 09 / 2010
Post by: Stardust on 17-09-2010, 23:32:26
Per diagonale secondaria cosa si intendeva??.. e le parallele...??   .penso


Title: Re:Esame del 14 / 09 / 2010
Post by: ɹǝǝuıƃuǝsɹǝʌǝɹ on 17-09-2010, 23:57:44
In input si ha una matrice quadrata.

In una matrice quadrata non degenere (cioè non vuota) esistono sempre due diagonali, una diciamo "principale" che va da nord-ovest a sud-est e l'altra "secondaria" che va da nord-est a sud-ovest.

Se n è la lunghezza del lato della matrice, di quest'ultima diagonale ("secondaria") fanno parte solo le celle della matrice che hanno somma degli indici costante pari a n-1 (se contiamo la prima riga/colonna con indice 0) oppure a n (se contiamo la prima riga/colonna con indice 1).

Le righe parallele alla diagonale secondaria hanno sempre somma degli indici costante, ma stavolta pari a un numero fra agli altri numeri dell'intervallo di interi \[{0, 2n - 1}\] (se si conta da 0) oppure \[{2, 2n}\] (se si conta da 1). .ciaociao


Title: Re:Esame del 14 / 09 / 2010
Post by: Stardust on 18-09-2010, 00:06:31
non si può fare un esempio pratico??!  :pray
Nel senso ho la matrice:
Code:
int [][] A={{5,3,3}, 
                {2,0,6}, 
{7,8,9}};
e poi?...


Title: Re:Esame del 14 / 09 / 2010
Post by: Stardust on 18-09-2010, 10:44:12
Mi riferivo ad un esempio numerico per chi non l'avesse capito!!! :boh


Title: Re:Esame del 14 / 09 / 2010
Post by: ɹǝǝuıƃuǝsɹǝʌǝɹ on 18-09-2010, 13:06:58
non si può fare un esempio pratico??!  :pray
Nel senso ho la matrice:
Code:
int [][] A={{5,3,3}, 
                {2,0,6}, 
{7,8,9}};
e poi?...
E poi cosa? Cosa vuoi sapere?


Title: Re:Esame del 14 / 09 / 2010
Post by: fabryxio on 18-09-2010, 16:12:26
Per diagonale secondaria cosa si intendeva??.. e le parallele...??   .penso

Ecco se vuoi un immagine..
La diagonale in ROSSO è la diagonale secondaria , il resto sono tutte le sue parallele..
Spero sia giusto e di non essermi confuso parekkio xD xD

(http://img259.imageshack.us/img259/451/diagonalesecondariamatr.jpg)

l'esempio pratico è questo , compilalo e vedi ke funziona.. ti restitusce TRUE, perkè la somma di 6 + 8 è 14
Code:
class compito
 {
     public static boolean escompitopeppe(byte m[][])
    {
        
        int d=m.length+(m.length-1);
        int []vett=new int[d];
        
        for(int k=0;k<d;k++)
                for(int i=0;i<m.length;i++)
                    for(int j=0;j<m[0].length;j++)
                        if(i+j==k)
                            vett[k]+=m[i][j];
                        
                        boolean controllo=false;
                        for(int p=0;(p<vett.length)&&(controllo==false);p++)
                        if(vett[p]%7==0)
                            controllo=true;
                        
                        
                        
        return controllo;
    }
    public static void main(String args[])
    {
        byte [][]m={{5,3,3},  
                            {2,0,6},  
                            {7,8,9}};
        System.out.println(escompitopeppe(m));
    }
    }
prova a variare i valori per capire bene il suo funzionamento!

Grazie a peppe per il suo ottimo e funzionante compito xD



Title: Re:Esame del 14 / 09 / 2010
Post by: diprob88 on 18-09-2010, 17:51:06
Per diagonale secondaria cosa si intendeva??.. e le parallele...??   .penso


Grazie a peppe per il suo ottimo e funzionante compito xD



In realtà mi chiamo Roberto, Peppe è un mio amico che come voi non e riuscito nell'esercizio .leggo


Title: Re:Esame del 14 / 09 / 2010
Post by: fabryxio on 18-09-2010, 19:13:03
Per diagonale secondaria cosa si intendeva??.. e le parallele...??   .penso


Grazie a peppe per il suo ottimo e funzionante compito xD



In realtà mi chiamo Roberto, Peppe è un mio amico che come voi non e riuscito nell'esercizio .leggo

ahauahuauhuahhuahuahuahu allora mi correggo grazie Roberto  :-)| va bè grazie u stissu .. xD


Title: Re:Esame del 14 / 09 / 2010
Post by: Stardust on 18-09-2010, 20:31:37
Per diagonale secondaria cosa si intendeva??.. e le parallele...??   .penso

Ecco se vuoi un immagine..
La diagonale in ROSSO è la diagonale secondaria , il resto sono tutte le sue parallele..
Spero sia giusto e di non essermi confuso parekkio xD xD

(http://img259.imageshack.us/img259/451/diagonalesecondariamatr.jpg)
Allora in pratica quella centrale è la diagonale secondaria e il resto tutto parellele???


Title: Re:Esame del 14 / 09 / 2010
Post by: fabryxio on 19-09-2010, 10:27:34
Per diagonale secondaria cosa si intendeva??.. e le parallele...??   .penso

Ecco se vuoi un immagine..
La diagonale in ROSSO è la diagonale secondaria , il resto sono tutte le sue parallele..
Spero sia giusto e di non essermi confuso parekkio xD xD

(http://img259.imageshack.us/img259/451/diagonalesecondariamatr.jpg)
Allora in pratica quella centrale è la diagonale secondaria e il resto tutto parellele???

Si! se le diagonali le metti al contrario , avrai una diagonale principale e tutte le sue parallele....


Title: Re:Esame del 14 / 09 / 2010
Post by: Luckino on 20-09-2010, 10:38:41
scusate ma i risultati?? il prof aveva detto che domani ci dovrebbe essere le altre due prove ma i risultati ancora non sono usciti....7 giorni mi sembrano un pò troppi per corregere 10 compiti...o forse sono usciti e sono diventato cieco io... :boh :boh :boh


Title: Re:Esame del 14 / 09 / 2010
Post by: dani89 on 20-09-2010, 11:10:30
scusate ma i risultati?? il prof aveva detto che domani ci dovrebbe essere le altre due prove ma i risultati ancora non sono usciti....7 giorni mi sembrano un pò troppi per corregere 10 compiti...o forse sono usciti e sono diventato cieco io... :boh :boh :boh
tranquillo mi ricordo che quando l'ho fatto io l'esame i risultati sono usciti la sera prima della seconda prova....


Title: Re:Esame del 14 / 09 / 2010
Post by: Luckino on 20-09-2010, 16:00:25
sono usciti i risultati http://www.dmi.unict.it/~cincotti/prog1/risultati.htm

era talmente facile che nessuno è passato!!! .poverinoi .poverinoi


Title: Re:Esame del 14 / 09 / 2010
Post by: fabryxio on 20-09-2010, 16:57:45
aahahhahahahahah TUTTI 0 xD