![]() |
Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Fondamenti di architettura e programmazione (http://www.dsy.it/forum/forumdisplay.php?forumid=234)
-- Compitino Laboratorio martedì 25 novembre[Capra] (http://www.dsy.it/forum/showthread.php?threadid=37030)
Compitino Laboratorio martedì 25 novembre[Capra]
Vi descrivo le richieste dell'esercitazione di oggi.
1) Il contesto era una fantomatica Lotteria per cui i vincitori erano coloro i quali avevano la data di nascita uguale a una certa data estratta. La richiesta era:
Costruire nella classe Lotteria con:
-un metodo statico
public static Data estraiData();
che estragga una data a caso tra l'anno 1920 e il 2007 tenendo conto però del fatto che esistono gli anni bisestili (un anno è bisestile se è divisibile per 4), perciò non devono uscire date come 29 febbraio se l'anno non è bisestile o come 31 settembre ,31 novembre.
- un metodo main che estragga n date con n deciso dall'utente e le visualizzi.
2)Costruire una classe di libreria Appuntamento i cui oggetti sono appuntamenti caratterizzati da una Data, un Orario e una Stringa contenente una nota.
Il prof forniva una collezione di prototipi di metodi da sviluppare (i piu comuni come getData(),setOrario() etc...) inoltre chiedeva un metodo compareTo() e un metodo statico parse() che data una stringa costruisse un Appuntamento.
3)Costruire un'applicazione che calcoli la lunghezza media delle parole contenute in un file di testo
4)Costruire un metodo toString in una classe ArrayChar che dato un array di caratteri restituisca la stringa formata dall'accostamento di tutti i caratteri presenti nell'array.
(so che c'era l'altro thread aperto, così metto in rilievo il testo e se ne può parlare! come vi è andato?
)
Era particolarmente ostico il parse, per il resto era fattibile...
oh! grazie Andrewz di aver messo su cosa vi ha chiesto!
perchè almeno ho un'idea più concreta! ![]()
p.s. alors avete potuto consultare gli appunti?
Era abbastanza difficile ma alla fine l'ho svolto tutto... Il mio consiglio a coloro che si devono esercitare per giovedì è: cercate di fare gli esercizi che non avete fatto in classe e guardare le soluzioni solo se proprio non riuscite a farli.
Dico ciò perchè non mi è sembrato che il prof fosse molto incline ad aiutarci nella stesura del codice...cioè se si avevano dubbi sulla comprensione del testo era prontissimo a spiegare meglio l'esercizio però non dava molti consigli su come completare il codice...
Perciò purtroppo dovete cercare di essere il più possibile autonomi nello svolgere gli esercizi perchè è difficile che il prof vi dia una grossa mano!
Esatto, piu che altro impratichirsi e imparare gli errori piu frequenti e sapere come risolverli....quante bestemmie per una cazzo di graffa dimenticata in 5 if uno dietro l'altro...
Figo, questa sera stessa cercherò di farli grazie mille!
Ragazzi ma io nel primo non so neanche da dove devo cominciare! La vedo dura giovedì 
uhm...
public class Blablabla .... look:
__________________
Emily89: Hai la faccia da fiera del fumetto!
I miei pargoli: Farshee, Hirugashi, Noren
emily per aiutarti fallo prima su carta, cioè pensa al ragionamento che fai nella tua testa e scrivilo.
math.random() restituisce un numero tra 0 e 1. Quindi moltiplicalo per 2008 e ti uscira un numero tra 0 e 2007.
metti questo in un do while o un for e fallo uscire dal ciclo solo quando l'anno riportato sarà tra 1920 e 2007.
Parti da questo!
Mi sono messa d'impegno e penso di essere vicina alla soluzione del primo, solo che non capisco come si possa usare il metodo isInAnnoBisestile() se la data è ancora da costruire... mha, mi sa che ho fatto un macello.. se fossi stata al turno di oggi mi sarei disperata, beati voi che dite che era fattibile..
Emily ma cazzo ![]()
if anno%4=0 && mese=2
//anno bisestile, quindi se il mese estratto è 2, febbraio avrà 29 giorni
giorno= math.random()*29 //o trenta, vedila come vuoi...
Siii ci sono arrivata ieri notte a letto alla soluzione, mi succede sempre così XD Ma voi avete già avuto esperienza in programmazione? Perchè io nella mia vita passata zero... Provengo da un Liceo Sientifico!
qualcosina con visualbasic, quindi praticamente da zero, visto che è un linguaggio che non c'entra una beata minchia ![]()
Bè, almeno sei già nelle mentalità giusta.. la mia testa invece, con tutte le materie letterarie che abbiamo fatto, è ancora tra le nuvole!!
io mi trovo peggio in mate
cmq scusate se scrivo qui ma come funziona il test di inglese?
ho aperto un thread in "lingua inglese" e nex ha risposto..
http://www.ccdinf.unimi.it/it/avvisi/6113.html
Originally posted by ViPah
emily per aiutarti fallo prima su carta, cioè pensa al ragionamento che fai nella tua testa e scrivilo.
math.random() restituisce un numero tra 0 e 1. Quindi moltiplicalo per 2008 e ti uscira un numero tra 0 e 2007.
metti questo in un do while o un for e fallo uscire dal ciclo solo quando l'anno riportato sarà tra 1920 e 2007.
Parti da questo!
Grazie mille, ho provato a farli... All'inizio bisogna pensarci un po, ma nn son difficilissimi.
Un consiglio per il primo es. della data da estrarre:
int x = (int)((Math.random()*(2008-1920))+1920);
In questo modo, prendo il range da 1920 a 2007.
Grazie per aver messo il testo della prova ![]()
personalmente, mi sembra molto piu intuitivo moltiplicarlo per 2008 e fare un while...
..peccato che con il while come dici tu è possibile (una probabilità remota) che non estragga mai una data nel range richiesto...inoltre il computer fatica in modo notevolmente maggiore in quanto deve attuare un ciclo fino a che non esce una data compresa nell'intervallo dovuto, cosa facilmente aggirabile con la linea di codice suggerita dagli altri.
Mi accodo ai sostenitori del (int)(Math.random()*88)+1920; 
Originally posted by Andrewz
..peccato che con il while come dici tu è possibile (una probabilità remota) che non estragga mai una data nel range richiesto...inoltre il computer fatica in modo notevolmente maggiore in quanto deve attuare un ciclo fino a che non esce una data compresa nell'intervallo dovuto, cosa facilmente aggirabile con la linea di codice suggerita dagli altri.
Mi accodo ai sostenitori del (int)(Math.random()*88)+1920;![]()
perchè secondo te il pc fa fatica a moltiplicare 2008 * 0<x<1? farà un milione di calcoli al secondo se ha un processore lento -.-''
è diverso: se tu metti un ciclo while che ti calcola
int anno;
while (anno<1920){
anno=(Math.random()*2008);
}
il programma calcola n volte l'istruzione finchè non esce un numero compreso nell'intervallo che vuoi (in questo caso 1920-2007).Perciò il computer svolge l'istruzione n volte prima di trovare il numero che tu cerchi, contro la unica volta necessaria se si utilizza l'istruzione :
(Math.random()*88)+1920;.
Sono d'accordo che i computer di oggi sono molto veloci e di questo problema se ne possono fregare alla grande, però da un punto di vista di efficienza del codice è innegabile che eseguire una istruzione una volta è assolutamente più auspicabile che eseguirla almeno una volta.
Per concludere:le due soluzioni funzionano entrambe e a questi livelli di programmazione sono esattamente equivalenti, ma nel caso di un programma molto più complicato in cui il computer deve eseguire grandissime quantità di istruzioni non avrebbe tanto senso utilizzare la ripetizione di un gruppo di istruzioni per risolvere un problema per il quale ne occorrerebbe in realtà una sola !
Son d'accordo con te, ma il problema si sarebbe posto nel caso di calcoli abnormi, il primo milione di numeri primi o cose del genere...
ok siamo d'accordo però siamo d'accordo anche che più un codice è efficiente maggiore è la sua qualità 
Originally posted by ViPah
Son d'accordo con te, ma il problema si sarebbe posto nel caso di calcoli abnormi, il primo milione di numeri primi o cose del genere...
Non può avere soluzione è una cagata, è un ipotesi remotissima che non si verificherà quasi mai. Al test del programma, appena schiacciavo "invio" andava, anche con 100 date mi restituiva subito l'output. Sull'efficienza del programma ok, ma con un codice e un problema di questa entità, le due soluzioni sono equivalenti...Tantè che alla fine ho usato anche io la tecnica del 88 che rendeva il codice piu leggibile, visto che mi era rimasto un poco di tempo
ahahah dai questa discussione sta durando da tanto e direi che va bene così, alla fine siamo un po tutti d'accordo vedo...
Piuttosto..chissà com'era il compitino di oggi!
hihihi, stasera sentiremo le bestemmie ![]()
Originally posted by ViPah
Non può avere soluzione è una cagata, è un ipotesi remotissima che non si verificherà quasi mai. Al test del programma, appena schiacciavo "invio" andava, anche con 100 date mi restituiva subito l'output. Sull'efficienza del programma ok, ma con un codice e un problema di questa entità, le due soluzioni sono equivalenti...Tantè che alla fine ho usato anche io la tecnica del 88 che rendeva il codice piu leggibile, visto che mi era rimasto un poco di tempo
qualcuno sa qualcosa del test di inglese?
http://www.ccdinf.unimi.it/it/avvisi/6113.html
si sa che ci si iscrive e non c'è il corso prima
__________________
Emily89: Hai la faccia da fiera del fumetto!
I miei pargoli: Farshee, Hirugashi, Noren
ma nn si sa su cos'è?
stasera quel gran figo di capra mette fuori i voti! (cosi ha detto...)
| All times are GMT. The time now is 23:31. | Show all 33 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.