Pagina 1 di 2

chi ha le palle quadrate in JAVA? (help programming)

MessaggioInviato: lun mar 27, 2006 12:32 pm
da Roger-It
per l'esame di programmazione ho avuto un caso di studio tra i pi? astrusi che abbia mai visto.. :(
chi ? un genio in java, che mi pu? dare una mano ?

:x

MessaggioInviato: lun mar 27, 2006 12:48 pm
da Barattolo
io, ma il mio tempo a disposizione e' pochissimo, se scrivi qui di cosa si tratta ci posso pensare anche se difficilmente sara' un problema liquidabile in un post o un giorno

MessaggioInviato: lun mar 27, 2006 12:53 pm
da Roger-It
wow, grazie barattolo !!!
devo consegnarlo entro il 12 aprile .. :(
ecco qui:

Si richiede di progettare un programma per la simulazione di estrazioni del lotto, in grado di gestire anche le puntate ed il calcolo delle vincite, secondo l'attuale disciplina.
Si richiede, altres?, che le informazioni vengano registrate in maniera permanente su file.
(suggerimento: occorre qualche nozione di calcolo combinatorio, cfr. wikipedia seguendo questo link http://it.wikipedia.org/wiki/Calcolo_combinatorio)

Re: chi ha le palle quadrate in JAVA? (help programming)

MessaggioInviato: lun mar 27, 2006 1:00 pm
da beautifulday
Roger-It ha scritto:per l'esame di programmazione ho avuto un caso di studio tra i pi? astrusi che abbia mai visto.. :(
chi ? un genio in java, che mi pu? dare una mano ?

:x


a oggetti o procedurale?

MessaggioInviato: lun mar 27, 2006 2:06 pm
da Roger-It
java .. che ? a oggetti :(

MessaggioInviato: lun mar 27, 2006 4:13 pm
da tittu82
300? ed ? fatto eug?! OK? :) :o

MessaggioInviato: lun mar 27, 2006 5:32 pm
da tittu82
Cmq, a livello di cronaca, ecco la traccia per l'esame "Laboratorio di Programmazione" fatto da me ad aprile 2002 con votazione 26/30 (E MI SONO ROTTO IL KUL!!!):

P.S. Sono iscritto ad Ingegneria Informatica presso L'UNICAL - Universit? della Calabria - Cosenza!

Progetto 1 (linee guida)

Si scriva un programma C++, orientato agli oggetti e che utilizzi le librerie standard del linguaggio, per la realizzazione di un?applicazione interattiva di supporto ad un sistema di gestione di un?agenzia turistica. Si considerino i seguenti tipi di dati:
- Cliente, caratterizzato almeno dai seguenti attributi: nome, data nascita, residenza, professione;
- Viaggio, caratterizzato almeno dai seguenti attributi: data di partenza, durata in giorni, prezzo, sequenza delle localit? attraversate, numero massimo di viaggiatori;
- Prenotazione, che associa un cliente ad un viaggio ed ? caratterizzato almeno dai seguenti attributi: data, stato (accettata o in lista d?attesa), sconto (numero reale compreso fra 0 e 1).

Il costo effettivo di un viaggio per un cliente ? ottenuto moltiplicando il prezzo del viaggio per lo sconto riportato nella prenotazione corrspondente. Si noti che per calcolare l?incasso totale di un viaggio si devono considerare solo le prenotazioni accettate.

Le principali funzionalit? da progettare sono:
1. inserire un cliente;
2. inserire un viaggio;
3. inserire una prenotazione;
4. cancellare un viaggio (con conseguente rimozione delle prenotazioni relative);
5. cancellare una prenotazione (con gestione opportuna della coda d?attesa del viaggio relativo);
6. calcolare la collezione, ordinata per valori decrescenti del numero di viaggi prenotati, dei clienti residenti in una citt? data;
7. calcolare la collezione, ordinata per incasso decrescente, dei viaggi con durata inferiore ad un valore dato;
8. verificare che due viaggi dati siano stati prenotati dal medesimo insieme di clienti;
9. data una collezione X di citt?, calcolare, se esiste, una collezione di viaggi Y che soddisfi le condizioni a) e b) di seguito indicate, ordinata per data di partenza crescente:
a) per ogni citt? di X esista almeno un viaggio di Y che attraversi tale citt?;
b) la media dei prezzi dei viaggi di Y sia minima.

? possibile (ed ? consigliato) completare e personalizzare liberamente le specifiche dell?applicazione.

Si progetti e implementi l?applicazione in modo modulare, separando, tra l?altro, gli aspetti di gestione dell?archivio di informazioni dalle operazioni di interfacciamento con l?utente (immissione dei dati e visualizzazione dei risultati).

Per poter sostenere l?esame, si dovr? consegnare (almeno 4 giorni prima della data fissata per l?inizio delle prove orali), assieme al codice prodotto, una relazione contenente:
- la descrizione sintetica delle specifiche dell?applicazione realizzata;
- la descrizione delle scelte progettuali operate;
- l?analisi di complessit? delle principali funzioni implementate;
- il listato del codice.


E, se ci? non basta, ecco le tracce dei 3 ( :!: ) progetti per fare l'esame di "Ingegneria del Software" (ancora, me tapino, non ho fatto quest'esame):


1) CarLockControlSystem
Si vuole progettare una classe CarLockControlSystem il cui utilizzo su una automobile potrebbe scoraggiare i ladri ed impedire la guida ad un autista ubriaco.
Per scoraggiare i ladri, una volta chiusa la portiera dell?automobile ed averla bloccata (vedi sotto), per poterla riaprire occorre fornire una combinazione di cinque cifre. Al termine di una successione di 5 cifre se la combinazione ? errata si attiva una sirena allarme. Altrimenti si sblocca la portiera.
La strategia per impedire la guida agli automobilisti ubriachi consiste nel richiedere che l?input di una combinazione corretta debba avvenire ?velocemente?. Sia midd (maximum inter digit delay, es. 1 sec) il ritardo massimo ammesso tra una cifra e la successiva. Se la prossima cifra ? digitata prima che sia trascorso un intervallo di tempo pari a midd dalla cifra precedente, il relativo timer ? azzerato. Diversamente si genera un timeout che annulla l?eventuale parziale combinazione fornita e occorre ripartire con la prima cifra.
Il sistema ammette i seguenti dispositivi di I/O: un tastierino con 10 pulsanti corrispondenti alle cifre tra 0 e 9, un bottone LockButton per richiedere, alla chiusura della portiera, l?attivazione del sistema di controllo, la sirena di allarme e il lucchetto della portiera. La specificazione della combinazione di sblocco ? un?operazione che va effettuata all?atto della chiusura della portiera. Naturalmente, occorre evitare situazioni ?spiacevoli? tipo: il proprietario ? all?interno della vettura, e qualcuno da fuori (per scherzo od altro) inserisce una nuova combinazione. In questi casi, deve essere sempre possibile, per il proprietario, di ?uscire? dalla propria autovettura? Si suggerisce di modellare il sistema come statechart (semplificato) di UML.

2) Espressione aritmetica intera con contesto + iterator

<espressione>::=<termine>{<addop><termine>}
<termine>::=<fattore>{<mulop><fattore>}
<fattore>::=<costante>|<variabile>|(<espressione>)
<costante>::=<interosenzasegno>
<variabile>::=<identificatore>
<interosenzasegno>::=<cifra>{<cifra>}
<identificatore>::=<lettera>{<lettera>|<cifra>}
<cifra>::=0|?|9
<lettera>::=a|?|z|A|?|Z
<addop>::=+|-
<mulop>::=*|/

Contesto
? un ambiente, cio? una lista coppie <nome variabile,valore>. Un contesto pu? essere fornito mediante un file testo e/o interattivamente da GUI.

Scopo del programma ? leggere e costruire, con la mediazione di un builder, un?espressione aritmetica. Quindi scriverne il contenuto (infisso e postfisso) su output. Quindi valutarla con l?ausilio del contesto. Stampa e valutazione devono basarsi su visitors e su iterators.

3) Application Framework
Si deve predisporre un framework basato su Template Method che legga una serie di N nomi di file di tipo testo da riga di comando e provveda ad aprire in lettura i primi N-1 file, ed in scrittura l?ultimo file. Scopo del framework ? di applicare una politica non meglio conosciuta per generare il contenuto dell?ultimo file a partire dagli altri N-1.
Specializzare il framework in modo da creare due concrete applicazioni per:
a) convertire a maiuscolo tutte le lettere in ogni file
b) ricercare in tutti i file le parole che appaiono nel primo file.
Successivamente, re-implementare il framework utilizzando il pattern strategy per impostare la politica di elaborazione dei file.

MessaggioInviato: mar mar 28, 2006 12:39 am
da beautifulday
sono abbastanza ferrato in java. il problema?

MessaggioInviato: mar mar 28, 2006 7:08 am
da Roger-It
leggi sopra beautiful, ho postato il caso di studio in grassetto

MessaggioInviato: mar mar 28, 2006 1:56 pm
da beautifulday
bhe... approssimativamente si richiede un programma che crei dei numeri randomici interi senza ripetizione da 1 a 90. se non sbaglio.
cinque x 10.
non? richiesto calcolo di probabilit? varie...
cmq per questo esiste una funzione matematica (la mathrandom), per evitare la ripetizione ti conviene fare una serie di controlli con degli if.
se vuoi ti stendo una bozza della prima parte del programma. per quanto riguarda la seconda parte riguardande la memorizzazione non so aiutarti.
per il calcolo delle vincite ? necessario il calcolo combinatorio che ho visto il link su wikipedia...

vediamo cosa posso fare...

una domanda,,,
la divisione delle combinazioni come ? organizzata?
cio? quali sono i dati che mi permettono di calcolare la divisione delle vincite?

MessaggioInviato: mar mar 28, 2006 2:34 pm
da Tenebral
Sicuramente ci stanno gi? pensando gli altri.. ? inutile che mi metta al lavoro :mrgreen:

MessaggioInviato: mar mar 28, 2006 3:17 pm
da Barattolo
primo: che tipo di interfaccia usi? console(a caratteri insomma) o grafica?
secondo: ... da dove parti, a livello di conoscenze?

MessaggioInviato: mar mar 28, 2006 5:54 pm
da Roger-It
@ beautiful: boh ? forse per le vincite, si intende: se hai fatto cinquina, quaterna, terno, ambo .. non compare tipo un "premio" ma "hai fatto ambo" o "hai fatto terno" e cos? via ..

@ barattolo: interfaccia a caratteri .. il livello ? medio-basso :mrgreen: nel senso che la cosa dev'essere semplice ma che funzioni

MessaggioInviato: mer mar 29, 2006 10:24 am
da Barattolo
beh io gestirei tutto con una cascata di menu' (meglio fare una classe apposta), una classe "puntata" con la ruota (enumerator) e un array di 5 interi (i numeri), raccogli tutte le puntate in un'arraylist e poi fai l'estrazione (altra classe apposita), logghi ogni operazione sul file (altra classe apposita)
comunque se alla prof bastava la scrittina "hai fatto ambo" non ti avrebbe dato il link per il calcolo combinatorio :p
cmq alla fine e' piuttosto semplice... comincio a sospettare che tu voglia il codice per intero... ?

MessaggioInviato: mer mar 29, 2006 12:07 pm
da Roger-It
magari .. :P :mrgreen:

Barattolo ha scritto:cmq alla fine e' piuttosto semplice... comincio a sospettare che tu voglia il codice per intero... ?

MessaggioInviato: mar apr 11, 2006 10:38 pm
da Roger-It
non sembra vero .. ma ci sono riuscito .. :o

MessaggioInviato: mar apr 11, 2006 10:47 pm
da beautifulday
grande roger... io stavo iniziando a perderci i capelli sopra...

MessaggioInviato: mar apr 11, 2006 10:55 pm
da Roger-It
la cosa pi? brutta ? stata fare il testing ..
e vai a controllare tutte le eccezioni !! :D

MessaggioInviato: mar apr 11, 2006 11:08 pm
da lollo
mionkia che trip,
scusate l'off topic,ho letto tutto il topic e mi sento stordito come dopo 3 canne una di fila all'altra!!! :D
maccheminkia studiate? :D

MessaggioInviato: mer apr 12, 2006 10:39 am
da Barattolo
io ingegneria informatica, non sai che sballo sono 2 ore di elettronica industriale, altro che acidi! non parliamo di algebra lineare e geometria analitica, spacciavamo i libri al posto dell'ero :o

MessaggioInviato: mer apr 12, 2006 12:37 pm
da Roger-It
io studio informatica e tecnologie per la produzione del software, penso che basti .. :oops:

MessaggioInviato: sab feb 26, 2011 7:37 pm
da filo
riuppo perchè vorrei imparare PHP e Java (Mysql a cosa serve?)
mi servirebbero manuali buoni in pdf e tanti consigli
io vorrei programmare da mac quindi vi chiedo anche dove (in quale software) scrivere i codici
sono abbastanza ignorante ma disposto a studiare
ho xcode

MessaggioInviato: sab feb 26, 2011 8:05 pm
da kom
su PHP non ti so aiutare,per ora,per con java me la cavicchio diciamo. mysql riguarda la gestione dei database.
ti vuoi buttare nella programmazione web?

MessaggioInviato: sab feb 26, 2011 9:00 pm
da filo
yes
hai materiale su Java?
dove scrivo nel mac il codice?

MessaggioInviato: sab feb 26, 2011 10:59 pm
da Shanik
Per il Java scaricati il framework ECLIPSE e il pacchetto JDK della Oracle.
Poi ti consiglio il libro "Thinking in Java" di Bruce Heckel - 4th edition (in italiano si trova solo originale, altrimenti in inglese lo trovi per il web in pdf)

Poi vieni sul forum della mia facoltà che trovi un casino di materiale ;)

http://www.r0x.it/viewforum.php?f=15


Per il php e mysql leggiti qualche guida su internet:

http://php.html.it/guide/

http://php.html.it/guide/leggi/77/guida ... l-pratica/

MessaggioInviato: dom feb 27, 2011 11:18 am
da Tenebral
filo ha scritto:riuppo perchè vorrei imparare PHP e Java (Mysql a cosa serve?)
mi servirebbero manuali buoni in pdf e tanti consigli
io vorrei programmare da mac quindi vi chiedo anche dove (in quale software) scrivere i codici


MySQL è un DBMS, ovvero un software di gestione di database. Ti serve quando realizzi un'applicazione che deve leggere e memorizzare dei dati. Su un sito statico non ne hai bisogno, ma se devi usare un CMS (tipo Joomla!), mettere su un forum come questo o più semplicemente creare uno spazio in cui gli utenti possano in qualche modo intervenire (e non vuoi utilizzare i file di testo, che ti complicano la vita) ovviamente ti serve. Comunque il suo utilizzo non è immediato e dato che non ne hai mai sentito parlare dovresti prima studiarti i database in teoria, poi l'SQL e infine fare pratica con MySQL. Ci sono manuali ridotti che ti danno una buona panoramica.
Ti suggerisco anche le guide di html.it.
Non so cosa sia disponibile per Mac, ma per chi è alle prime armi normalmente esistono dei software come EasyPHP che ti consentono di installare velocemente la piattaforma Apache + PHP + MySQL, indispensabile per testare le tue applicazioni. Comunque cerca sul WEB. La prima installazione di Apache incasina tutti, ma una volta che funziona correttamente con PHP è tutto in discesa!
Per quanto riguarda lo sviluppo, per PHP ti può bastare anche un blocco note, che tanto non devi compilare nulla!

MessaggioInviato: dom feb 27, 2011 11:55 am
da kom
come ambiente di sviluppo io mi sento di consigliarti netbeans. se parti proprio da zero però ti consiglio di scegliere una guida che consti anche di una parte introduttiva generale sulla programmazione

MessaggioInviato: dom feb 27, 2011 11:56 am
da filo
ieri notte ho studiato un bel pò e mi è sembrato che Php sia abbastanza intuitivo
per poter scrivere e compilare (thanks Tenebrai) o scrivere e creare qualcosa vado a cercarmi easyPHP

altri dubbi:
- non ho ancora capito bene cosa è apache
- si parla di server che devo avere; spiegatemi meglio

Per i manuali sto guardando quelli della hoepli che conosco ed apprezzo molto
se ne conoscete altri (anche epub) fatevi sotto

grazie a tutti

@Kom: ora vado a leggermi anche quello

MessaggioInviato: dom feb 27, 2011 1:21 pm
da Barattolo
apache è un web server, praticamente quando il tuo browser (es. firefox, internet explorer, safari) chiede una tale pagina a un sito, il web server riceve la richiesta e risponde con la pagina.
ad esempio tu apri "www.labatteria.it"
apache riceve la richiesta della pagina principale del sito
va a cercare il file "index.html" oppure "index.php", che è il nome predefinito della pagina principale, nel suo filesystem (infatti se provi a aprire "www.labatteria.it" oppure "www.labatteria.it/index.php" vedi che sono assolutamente identici)
se il file contiene del PHP, allora prima esegue il codice PHP
per finire manda al tuo browser il contenuto del file e/o il risultato dell'esecuzione del codice PHP

stesso discorso, mutatis mutandis, vale anche per java... ovviamente ci sono un altro po' di cose che fa (impedisce gli accessi a certe pagine, puoi definire dei "reindirizzamenti", ...) ma penso (e spero) che ti basti sapere quello, cioè in pratica poterti dimenticare che esiste

MessaggioInviato: dom feb 27, 2011 6:06 pm
da filo
thanks barattolo, ho quasi capito cosa è apache
in pratica mi manca un passaggio: è un software che si installa sul mio mac o è un qualcosa di estreno che fa da interfaccia e io sul mac installo solo una parte per gestirlo?
easy php se non ho capito male non va su mac
devo usare MAMP?
manuali in pdf o epub validi?